1656756000
A Flutter plugin to show incoming call in your Flutter app! Alpha version(not ready for production!)
To use this plugin:
<activity
android:name="com.github.alezhka.flutter_incoming_call.IncomingCallActivity"
android:theme="@style/Theme.AppCompat"
android:screenOrientation="portrait"
android:showOnLockScreen="true">
<intent-filter>
<action android:name="com.github.alezhka.flutter_incoming_call.activity.ACTION_INCOMING_CALL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<receiver android:name="com.github.alezhka.flutter_incoming_call.CallBroadcastReceiver"
android:enabled="true"
android:exported="false"/>
FlutterIncomingCall.configure(
appName: 'example_incoming_call',
duration: 30000,
android: ConfigAndroid(
vibration: true,
ringtonePath: 'default',
channelId: 'calls',
channelName: 'Calls channel name',
channelDescription: 'Calls channel description',
),
ios: ConfigIOS(
iconName: 'AppIcon40x40',
ringtonePath: null,
includesCallsInRecents: false,
supportsVideo: true,
maximumCallGroups: 2,
maximumCallsPerCallGroup: 1,
)
)
FlutterIncomingCall.onEvent.listen((event) {
if(event is CallEvent) { // Android | IOS
} else if(event is HoldEvent) { // IOS
} else if(event is MuteEvent) { // IOS
} else if(event is DmtfEvent) { // IOS
} else if(event is AudioSessionEvent) { // IOS
}
});
FlutterIncomingCall.displayIncomingCall(String uid, String name, String avatar, String handle, String type, bool isVideo);
FlutterIncomingCall.endCall(String uuid);
FlutterIncomingCall.endAllCalls();
ios | ios (Lockscreen) | Android | Android (Lockscreen) |
---|---|---|---|
![]() | ![]() |
Check out the example in the example project folder for a working example.
Run this command:
With Flutter:
$ flutter pub add flutter_incoming_call
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
flutter_incoming_call: ^0.1.1
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:flutter_incoming_call/flutter_incoming_call.dart';
example/lib/main.dart
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter_incoming_call/flutter_incoming_call.dart';
import 'package:uuid/uuid.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
var uuid = Uuid();
BaseCallEvent? _lastEvent;
CallEvent? _lastCallEvent;
HoldEvent? _lastHoldEvent;
MuteEvent? _lastMuteEvent;
DmtfEvent? _lastDmtfEvent;
AudioSessionEvent? _lastAudioSessionEvent;
void _incomingCall() {
final uid = uuid.v4();
final name = 'Daenerys Targaryen';
final avatar = 'https://scontent.fhel6-1.fna.fbcdn.net/v/t1.0-9/62009611_2487704877929752_6506356917743386624_n.jpg?_nc_cat=102&_nc_sid=09cbfe&_nc_ohc=cIgJjOYlVj0AX_J7pnl&_nc_ht=scontent.fhel6-1.fna&oh=ef2b213b74bd6999cd74e3d5de235cf4&oe=5F6E3331';
final handle = 'example_incoming_call';
final type = HandleType.generic;
final isVideo = true;
FlutterIncomingCall.displayIncomingCall(uid, name, avatar, handle, type, isVideo);
}
void _endCurrentCall() {
if(_lastEvent != null) {
FlutterIncomingCall.endCall(_lastCallEvent!.uuid);
}
}
void _endAllCalls() {
FlutterIncomingCall.endAllCalls();
}
@override
void initState() {
super.initState();
FlutterIncomingCall.configure(
appName: 'example_incoming_call',
duration: 30000,
android: ConfigAndroid(
vibration: true,
ringtonePath: 'default',
channelId: 'calls',
channelName: 'Calls channel name',
channelDescription: 'Calls channel description',
),
ios: ConfigIOS(
iconName: 'AppIcon40x40',
ringtonePath: null,
includesCallsInRecents: false,
supportsVideo: true,
maximumCallGroups: 2,
maximumCallsPerCallGroup: 1,
)
);
FlutterIncomingCall.onEvent.listen((event) {
setState(() { _lastEvent = event; });
if(event is CallEvent) {
setState(() { _lastCallEvent = event; });
} else if(event is HoldEvent) {
setState(() { _lastHoldEvent = event; });
} else if(event is MuteEvent) {
setState(() { _lastMuteEvent = event; });
} else if(event is DmtfEvent) {
setState(() { _lastDmtfEvent = event; });
} else if(event is AudioSessionEvent) {
setState(() { _lastAudioSessionEvent = event; });
}
});
}
@override
void dispose() {
_endAllCalls();
super.dispose();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
TextButton(
child: Text('Incoming call now'),
onPressed: _incomingCall,
),
SizedBox(height: 16),
TextButton(
child: Text('Incoming call delay 5 sec'),
onPressed: () => Future.delayed(Duration(seconds: 5), _incomingCall),
),
SizedBox(height: 16),
TextButton(
child: Text('End current call'),
onPressed: _endCurrentCall,
),
SizedBox(height: 16),
TextButton(
child: Text('End all calls'),
onPressed: _endAllCalls,
),
SizedBox(height: 16),
Text(
'Last event:',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
Text(
_lastEvent != null ? _lastEvent.toString() : 'Not event',
style: TextStyle(
fontSize: 16
),
),
if(_lastCallEvent != null) ...[
Text(
'Last call event:',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
Text(
_lastCallEvent.toString(),
style: TextStyle(
fontSize: 16
),
)
],
if(_lastHoldEvent != null) ...[
Text(
'Last hold event:',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
Text(
_lastHoldEvent.toString(),
style: TextStyle(
fontSize: 16
),
)
],
if(_lastMuteEvent != null) ...[
Text(
'Last mute event:',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
Text(
_lastMuteEvent.toString(),
style: TextStyle(
fontSize: 16
),
)
],
if(_lastDmtfEvent != null) ...[
Text(
'Last dmtf event:',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
Text(
_lastDmtfEvent.toString(),
style: TextStyle(
fontSize: 16
),
)
],
if(_lastAudioSessionEvent != null) ...[
Text(
'Last audio session event:',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
Text(
_lastAudioSessionEvent.toString(),
style: TextStyle(
fontSize: 16
),
)
]
],
),
),
),
);
}
}
Author: Alezhka
Source code: https://github.com/Alezhka/flutter_incoming_call
License: GPL-3.0 license
1656756000
BidmadPlugin is a plugin for using Bidmad, a mobile app advertisement SDK, in Flutter.
You can use the plugin to serve banner/interstitial/reward ads in your flutter mobile app.
*If you are using a version lower than 1.0.0, please check here first before proceeding to the guide below.
Add the options below to gradle.properties
...
android.enableDexingArtifactTransform=false
If you are using Proguard, add the rule below.
...
-keep class com.adop.sdk.** { *; }
-keep class ad.helper.openbidding.** { *; }
-keep class com.adop.adapter.fc.** { *; }
-keep class com.adop.adapter.fnc.** { *; }
-keepnames class * implements java.io.Serializable
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static !transient <fields>;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
# Pangle
-keep class com.bytedance.sdk.** { *; }
-keep class com.bykv.vk.openvk.component.video.api.** { *; }
# Tapjoy
-keep class com.tapjoy.** { *; }
-keep class com.moat.** { *; }
-keepattributes JavascriptInterface
-keepattributes *Annotation*
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
-keep class com.google.android.gms.ads.identifier.** { *; }
-dontwarn com.tapjoy.**
After fetching our plugin into your app by "flutter pub get", a "Podfile" will be generated in your project's iOS Folder.
Select "No" for Enable Bitcode under your Build Setting.
To use AdNetworks provided by BidmadSDK, you need to add SKAdNetworkIdentifier to Info.plist. Please add SKAdNetworkItems below to info.plist.
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cstr6suwn9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>v9wttpbfk9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>n38lu8286q.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4dzt52r2t5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>bvpn9ufa9b.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>2u9pt9hc89.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4468km3ulz.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4fzdc2evr5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>7ug5zh24hu.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>8s468mfl3y.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9rd848q2bz.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>9t245vhmpl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>av6w8kgt66.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f38h382jlk.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>hs6bdukanm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>kbd757ywx3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ludvb6z3bs.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>m8dbw4sv7c.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mlmmfzh3r3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>prcb7njmu6.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>t38b2kh725.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>tl55sbb4fm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>wzmmz9fp6w.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>yclnxrl5pm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ydx93a7ass.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>238da6jt44.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>22mmun2rn5.skadnetwork</string>
</dict>
</array>
Also, please add NSUserTrackingUsageDescription with your own description of why you would like to track user data (e.g. "App would like to access IDFA for tracking purpose") into info.plist
...
<key>NSUserTrackingUsageDescription</key>
<string>App would like to access IDFA for tracking purpose</string>
...
At the starting point of your app, please call initializeSdk(). If initializeSdk method is not called, SDK initializes itself on your first loading, which subsequently may delay your first ad loading.
FlutterBidmadCommon().initializeSdk();
For interstitial and rewarded ads, instead of calling initializeSdk(), load your first ad at the starting point of your app by following the interstitial and rewarded ad loading guide below, and show your ad at the point of your choice.
The following is an example of requesting a Banner ad.
3.1.1 Banner placement based on position
....//Banner init
FlutterBidmadCommon common = FlutterBidmadCommon();
FlutterBaseBanner banner;
common.initBannerChannel().then((value) {
String _channelNm = value;
banner = FlutterBaseBanner(
channelName: _channelNm
);
banner.setAdInfo("Your Zone Id");
banner.setCallbackListener(
onLoadAd: (String zoneId){
print("banner onLoadAd");
},
onFailAd: (String zoneId){
print("banner onFailAd");
}
);
//option
//banner.setInterval(120); //banner refresh time(60s~120s)
});
....//Banner Load
banner.load(300); //set Position Y(height)
....//Banner Remove
banner.removeAdView();
3.1.2 Banner Widget
....//Banner Widget init
Container(
child: BidmadBannerWidget(
onBidmadBannerWidgetCreated: _onWidgetTestCreated,
),
height: 50.0, //Banner Height(50, 100, 250)
),
....//onBidmadBannerWidgetCreated
void _onWidgetTestCreated(FlutterBaseBanner controller){
controller.setAdInfo("Your Zone Id");
controller.setCallbackListener(
onLoadAd: (String zoneId){
print("banner onLoadAd");
},
onFailAd: (String zoneId){
print("banner onFailAd");
}
);
controller.loadWidget();
}
The following is an example of requesting a Interstitial ad.
....//Interstitial init
FlutterBidmadCommon common = FlutterBidmadCommon();
FlutterBaseInterstitial interstitial;
common.initInterstitialChannel().then((value) {
String _channelNm = value;
interstitial = FlutterBaseInterstitial(
channelName: _channelNm
);
interstitial.setAdInfo("Your Zone Id");
interstitial.setCallbackListener(
onLoadAd: (String zoneId){
print("interstitial onLoadAd");
},
onShowAd: (String zoneId){
print("interstitial onShowAd" );
interstitial.load(); //Ad Reload
},
onCloseAd: (String zoneId){
print("interstitial onCloseAd");
},
onFailAd: (String zoneId){
print("interstitial onFailAd");
}
);
});
....//Interstitial Load
interstitial.load();
....//Interstitial Show
interstitial.isLoaded().then((value){
if(value){
interstitial.show();
}
});
The following is an example of requesting a Reward ad.
....//Reward init
FlutterBidmadCommon common = FlutterBidmadCommon();
FlutterBaseReward reward;
common.initRewardChannel().then((value) {
String _channelNm = value;
reward = FlutterBaseReward(
channelName: _channelNm
);
reward.setAdInfo("Your Zone Id");
reward.setCallbackListener(
onLoadAd: (String zoneId){
print("reward onLoadAd");
},
onShowAd: (String zoneId){
print("reward onShowAd");
reward.load();
},
onCompleteAd: (String zoneId){
print("reward onCompleteAd");
},
onSkipAd: (String zoneId){
print("reward onSkippedAd");
},
onCloseAd: (String zoneId){
print("reward onCloseAd");
},
onClickAd: (String zoneId){
print("reward onClickAd");
},
onFailAd: (String zoneId){
print("reward onFailAd");
}
);
});
....//Reward Load
reward.load();
....//Reward Show
reward.isLoaded().then((value){
if(value){
reward.show();
}
});
reqAdTrackingAuthorization() displays a popup, requesting for App Tracking Consent from user. And the function will return set of number string values, showing the result.
FlutterBidmadCommon common = FlutterBidmadCommon();
common.reqAdTrackingAuthorization().then(
(value) {
switch (value) {
case "0":
print("App Tracking Not Determined");
break;
case "1":
print("App Tracking Restricted Authoriziation Status");
break;
case "2":
print("App Tracking Denied Authorization Status");
break;
case "3":
print("App Tracking Authorized Authorization Status");
break;
case "4":
print("user is on lower version than iOS 14");
break;
}
}
);
For App Tracking Not Determined, the function will return 0, For App Tracking Restricted Authoriziation Status, the function will return 1, For App Tracking Denied Authorization Status, the function will return 2, For App Tracking Authorized Authorization Status the function will return 3, and Lastly, if the user is on lower version than iOS 14 then it will return 4.
If you wish to obtain app tracking consent through a method other than what's provided by Plugin, If the user agrees, True, and if rejected, pass False to setAdvertiserTrackingEnabled.
common.setAdvertiserTrackingEnabled(false);
print(common.getAdvertiserTrackingEnabled());
*Banner ads are handled through FlutterBaseBanner and this is a list of functions for that.
Function | Description |
---|---|
FlutterBaseBanner(@required String channelName) | This is the FlutterBaseBanner constructor, Receives the Name for Channel creation as a Param. |
Future(void) load(int y) | Request a banner ad. When a banner ad is exposed, the banner is exposed at height y (center alignment). |
Future(void) loadWidget() | Request a banner ad. In order for the function to function properly, FlutterBaseBanner object must be obtained through the BidmadBannerWidget Class. |
Future(void) setInterval(int sec) | Set the banner refresh cycle.(60s~120s) |
Future(void) setAdInfo(String zoneId) | Set the issued ZoneId. |
Future(void) setCUID(String cuid) | Set the CUID property of each ad type. recommend encrypting text using sha256 or higher. |
Future(void) hideBanner() | Hide the banner View |
Future(void) showBanner() | Show the banner View. |
Future(void) removeBanner() | Remove the exposed banner. |
void Function(String zoneId) onLoadAd | If a listener is registered, the registered function is called when ad load. |
void Function(String zoneId) onFailAd | If a listener is registered, the registered function is called when ad load fail. |
*For banner ads in the form of a widget, it must be processed through BidmadBannerWidget, and this is a list of functions for that.
Function | Description |
---|---|
BidmadBannerWidget(BidmadBannerWidgetCreatedCallback onBidmadBannerWidgetCreated) | This is the BidmadBannerWidget constructor. After creating the widget, it receives a callback for processing. |
onBidmadBannerWidgetCreated(FlutterBaseBanner controller) | It is a callback that can receive a FlutterBaseBanner and handle banner related processing. |
*Interstitial ads are handled through FlutterBaseInterstitial and this is a list of functions for that.
Function | Description |
---|---|
FlutterBaseInterstitial(@required String channelName) | This is the FlutterBaseInterstitial constructor, Receives the Name for Channel creation as a Param. |
Future(void) load() | Request a interstitial ad |
Future(void) show() | Display the loaded interstitial ad |
Future(bool) isLoaded() | Check if the ad is loaded. |
Future(void) setAdInfo(String zoneId) | Set the issued ZoneId. |
Future(void) setCUID(String cuid) | Set the CUID property of each ad type. recommend encrypting text using sha256 or higher. |
void Function(String zoneId) onLoadAd | If a listener is registered, the registered function is called when ad load. |
void Function(String zoneId) onShowAd | If a listener is registered, the registered function is called when ad show. |
void Function(String zoneId) onFailAd | If a listener is registered, the registered function is called when ad load fail. |
void Function(String zoneId) onCloseAd | If a listener is registered, the registered function is called when ad close. |
*Reward ads are handled through FlutterBaseReward and this is a list of functions for that.
Function | Description |
---|---|
FlutterBaseReward(@required String channelName) | This is the FlutterBaseReward constructor, Receives the Name for Channel creation as a Param. |
Future(void) load() | Request a reward ad. |
Future(void) show() | Display the loaded reward ad. |
Future(bool) isLoaded() | Check if the ad is loaded. |
Future(void) setAdInfo(String zoneId) | Set the issued ZoneId. |
Future(void) setCUID(String cuid) | Set the CUID property of each ad type. recommend encrypting text using sha256 or higher. |
void Function(String zoneId) onLoadAd | If a listener is registered, the registered function is called when ad load. |
void Function(String zoneId) onShowAd | If a listener is registered, the registered function is called when ad show. |
void Function(String zoneId) onFailAd | If a listener is registered, the registered function is called when ad load fail. |
void Function(String zoneId) onCompleteAd | If a listener is registered, the registered function is called when ad complate. |
void Function(String zoneId) onCloseAd | If a listener is registered, the registered function is called when ad close. |
void Function(String zoneId) onClickAd | If a listener is registered, the registered function is called when ad click. |
void Function(String zoneId) onSkipAd | If a listener is registered, the registered function is called when ad skip. |
*This is a list of functions available through BidmadCommon.
Function | Description |
---|---|
FlutterBidmadCommon() | This is the FlutterBidmadCommon constructor |
Future(void) setDebugging(bool isDebug) | Debugging log output |
Future(void) initializeSdk() | Initialize BidmadSDK's supported ad networks |
Future(String) initBannerChannel() | Creating a channel for controlling banner ad |
Future(String) initInterstitialChannel() | Creating a channel for controlling interstitial ad |
Future(String) initRewardChannel() | Creating a channel for controlling reward ad |
Future(String) reqAdTrackingAuthorization() | Requesting for App Tracking Consent from user |
Future(void) setAdvertiserTrackingEnabled(bool enable) | Setting ATT Setting manually |
Future(bool) getAdvertiserTrackingEnabled() | Getting ATT Setting, true if consent and false if not consent |
Run this command:
With Flutter:
$ flutter pub add bidmad_plugin
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
bidmad_plugin: ^1.3.0
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:bidmad_plugin/BidmadBannerWidget.dart';
import 'package:bidmad_plugin/BidmadFlutterPlugin.dart';
import 'package:bidmad_plugin/FlutterBaseBanner.dart';
import 'package:bidmad_plugin/FlutterBaseInterstitial.dart';
import 'package:bidmad_plugin/FlutterBaseReward.dart';
import 'package:bidmad_plugin/FlutterBidmadCommon.dart';
import 'package:bidmad_plugin/FlutterBidmadGDPRforGoogle.dart';
Author:
Source code: https://pub.dev/packages/bidmad_plugin/install
License:
1656750905
This library allows you to play a wizard game.
Run this command:
With Dart:
$ dart pub add question_wizard
With Flutter:
$ flutter pub add question_wizard
This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get
):
dependencies:
question_wizard: ^0.0.1
Alternatively, your editor might support dart pub get
or flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:question_wizard/question_wizard.dart';
example/main.dart
import 'package:question_wizard/question_wizard.dart';
void main() {
final List<Option> options = [
new Option(label: 'choose a blue color', value: '#0000FF'),
new Option(label: 'choose a green color', value: '#00FF00'),
];
Prompter prompter = Prompter();
String? colorCode = prompter.askMultiple('select a color:', options);
bool answer = prompter.askBinary('do you like this package 🥰');
if (answer) {
print("thank's a lot buddy 😊");
} else {
print("I know that's not a great package. 😔");
}
}
Original article source at: https://pub.dev/packages/question_wizard
1656750127
Vm compilers for users of package:build
.
This package is intended to be used as a development dependency for users of package:build
who want to run code in the Dart vm with precompiled kernel files. This allows you to share compilation of dependencies between multiple entrypoints, instead of doing a monolithic compile of each entrypoint like the Dart VM would normally do on each run.
Note: If you want to use this package for running tests with dart run build_runner test
you will also need a build_test
dev dependency.
This package creates a .vm.app.dill
file corresponding to each .dart
file that contains a main
function.
These files can be passed directly to the vm, instead of the dart script, and the vm will skip its initial parse and compile step.
You can find the output either by using the -o <dir>
option for build_runner, or by finding it in the generated cache directory, which is located at .dart_tool/build/generated/<your-package>
.
There are no configuration options available at this time.
If you are using a custom build script, you will need to add the following builder applications to what you already have, sometime after the build_modules
builder applications:
apply('build_vm_compilers|entrypoint',
[vmKernelEntrypointBuilder], toRoot(),
hideOutput: true,
// These globs should match your entrypoints only.
defaultGenerateFor: const InputSet(
include: const ['bin/**', 'tool/**', 'test/**.vm_test.dart'])),
]
Run this command:
With Dart:
$ dart pub add build_vm_compilers
With Flutter:
$ flutter pub add build_vm_compilers
This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get
):
dependencies:
build_vm_compilers: ^1.0.11
Alternatively, your editor might support dart pub get
or flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:build_vm_compilers/build_vm_compilers.dart';
Download Details:
Author: build
Source Code: https://github.com/dart-lang/build/tree/master/build_vm_compilers
1656746365
Inspired by moment.js
Convert DateTime
to human-readable text.
Helper classes
Import the package
import 'package:moment_dart/moment_dart.dart';
Create Moment instance
final Moment now = Moment.now();
final Moment epoch = Moment.fromMillisecondsSinceEpoch(0, isUtc: true);
/// Using extension
final Moment bday = DateTime(2003, 6, 1, 5, 1).toMoment();
/// or from [DateTime]
final Moment bday = Moment(DateTime(2003, 6, 1, 5, 1));
As of version 0.7.0, DateTime is now superclass of Moment
class Moment extends DateTime { ... }
final Moment yesterday = Moment.now() - Duration(days: 1);
yesterday.fromNow(); // a day ago
// You can omit prefix/suffix
yesterday.fromNow(true); // a day
yesterday.from(yesterday - Duration(days: 365)); // a year ago
now.subtract(const Duration(days: 1)).calendar(); // Yesterday at 10:02AM
now.calendar(); // Today at 10:02AM
now.subtract(const Duration(days: 1)).calendar(); // Tomorrow at 10:02AM
// [reference] - defaults to Moment.now(), acts as an anchor.
// [omitHours] - omits the hour part. Hour part is formatted by "LT" token.
now.calendar(
reference: (now - const Duration(days: 1)),
omitHours: true,
); // Tomorrow
final Moment tada =
DateTime(2022, 6, 19, 21, 9, 33).toMoment(); // June 19 2022 09:09 PM
tada.startOf(DurationUnit.day); // June 19 2022 12:00 AM
// OR
tada.startOfDay(); // June 19 2022 12:00 AM
Works on DateTime
and Moment
We're always dealing with local date times here. If the date is UTC, it's converted to local beforehand.
final Moment tada =
DateTime(2022, 6, 19, 21, 9, 33).toMoment(); // June 19 2022 09:09 PM
tada.nextMonday(); // June 20 2022 09:09 PM
tada.lastMonday(); // June 13 2022 09:09 PM
// Note that "today" is neither last/next Sunday
tada.lastSunday(); // June 12 2022 09:09 PM
Works on DateTime
and Moment
final DateTime otherBday = DateTime(2003,6,19);
final Moment spiritRoverOnMars = DateTime(2003,6,10).toMoment();
otherBday.isAtSameMonthAs(spiritRoverOnMars); // true
otherBday.isAtSameYearAs(spiritRoverOnMars); // true
⚠️ It takes timezones into account
final DateTime bday = DateTime(2003,6,1,5,33); // 2003-05-31 21:33:00.000Z (Local time zone was GMT+08:00)
final Moment spiritRoverOnMars = DateTime(2003,6,10).toMoment(); // 2003-06-09 16:00:00.000Z
bday.isAtSameMonthAs(spiritRoverOnMars); // false; didn't happen in same month. Bday was in May, Spirit Rover landed in June.
bday.isAtSameYearAs(spiritRoverOnMars); // true
now.format("YYYY MMMM Do - hh:mm:ssa"); //2003 June 1st - 05:01:00am
now.format("LTS"); //5:01:00 AM
now.format("dddd"); //Sunday
now.format("MMM Do YY"); //Jun 1st 03
Escape strings by encasulating them in square brackets ([]).
epoch.format("YYYY [YYYY] MMMM [MMMM] Do [Do] LT [A]"); // 1970 YYYY January MMMM 1st Do 12:00 AM A
Alternatively, unmatched tokens will be left as is
epoch.format("YYYY년 MMM D일 ddd A h:mm"); // 1970년 1월 1일 목 오전 8:00 (Localization: KO)
Currently uses DateTime.parse()
COMING SOON 💫
Localization defaults to MomentLocalizations.enUS()
final Moment hangulday2022 = Moment(DateTime(2022,10,9), localization: MomentLocalizations.ko());
hangulday2022.format("ll"); // 2022년 10월 9일
hangulday2022.format("LL"); // 2022년 10월 9일
Localizations are classes that extend MomentLocalization
See how you can create your own localization
Moment provides an extension with set of useful functions. Can be called on either Moment
or DateTime
instance
final Moment date = DateTime(2022,03,29).toMoment();
// It can also work on [DateTime] too!
final DateTime date = DateTime(2022,03,29);
//Returns the ISO Week number of the year
//
// [1,2,3,...,52,53]
date.week == 13; // true
// Returns the year according to ISO Week
date.weekYear == 2022; // true
// Returns the quarter of the year. [][Jan,Feb,Mar][Apr,May,Jun][Jul,Aug,Sep][Oct,Nov,Dec]
//
// [1,2,3,4]
date.quarter == 1; // true
// Returns if the [year] is leap year
date.isLeapYear == false; // true
/// Returns ordinal day of the year
///
/// [1,2,3,...,365,366]
date.dayOfYear == 88; // true
Comparison can be called on either Moment
or DateTime
. Accounts UTC/Local timezone.
Available for all units: year, month, day, hour, minute, second, millisecond, microsecond
final DateTime local = DateTime(1972, 1, 1, 7); // Jan 1, 1972 at 7AM @GMT+8
final DateTime utc = local.toUtc(); // Dec 31, 1971 at 11PM @UTC
local.isAtSameYearAs(utc); // true
Read more about ISO week on Wikipedia
Extend MomentLocalization
class to get started.
Almost everything is declared as function, so you can freely achieve the unique features of your language.
I highly recommend copying one of the existing implementations then work on top of it!
CatLanguage extends MomentLocalization {
@override
String relative(Duration duration, [bool dropPrefixOrSuffix = false]) => "a two meow ago";
@override
String weekdayName(int i) => "Meowday #$i";
@override
String calendar(Moment moment, {Moment? reference, bool weekStartOnSunday = false, bool omitHours = false}) => "Last Meowday";
/// Please refer to the [FormatterToken] enum for details.
///
/// It contains almost all of the tokens mentioned in https://momentjs.com/docs/#/parsing/string-format/
Map<FormatterToken, FormatterTokenFn?> formats() => {};
@override
String languageCodeISO() => "meow";
@override
String endonym() => "Meow-meow meow";
@override
String locale() => "meow";
@override
String languageNameInEnglish() => "Cat tongue";
}
Encapsulate string in square brackets ([]) to escape.
Type | Token | Examples | Description |
---|---|---|---|
Month | M | 1 2 ... 11 12 | |
Mo | 1st 2nd ... 11th 12th | ||
MM | 01 02 ... 11 12 | ||
MMM | Jan Feb ... Nov Dec | ||
MMMM | January February ... November December | ||
Quarter of year | Q | 1 2 3 4 | |
Qo | 1st 2nd 3rd 4th | ||
Day of month | D | 1 2 ... 30 31 | |
Do | 1st 2nd ... 30th 31st | ||
DD | 01 02 ... 30 31 | ||
Day of year | DDD | 1 2 ... 364 365 | |
DDDo | 1st 2nd ... 364th 365th | ||
DDDD | 001 002 ... 364 365 | ||
Day of week | d | 1 2 ...6 7 | Moment.js uses `0-6`. However, we'll be using `1-7` to be in accordance with [DateTime] |
d_o | 1st 2nd ... 6th 7th | "do" is Dart language keyword | |
dd | Mo Tu ... Sa Su | ||
ddd | Mon Tue ... Sat Sun | ||
dddd | Monday ... Saturday Sunday | ||
Day of week (ISO) | e | 1 2 ... 6 7 | |
Week of year (ISO) | w | 1 2 ... 52 53 | |
wo | 1st 2nd ... 52nd 53rd | ||
ww | 01 02 ... 52 53 | ||
Year | YY | 70 71 ... 29 30 | |
YYYY | 1970 1971 ... 2029 2030 | ||
Era Year | y | 1 2 ... 2020 ... | |
Era | NN | BC AD | Abbr era name |
NNNN | Before Christ, Anno Domini | Full era name | |
NNNNN | BC AD | Narrow era name | |
Week year | gg | 70 71 ... 29 30 | |
gggg | 1970 1971 ... 2029 2030 | ||
AM/PM | A | AM PM | UPPERCASE |
a | am pm | lowercase | |
Hour | H | 0 1 ... 22 23 | |
HH | 00 01 ... 22 23 | ||
h | 1 2 ... 11 12 | ||
hh | 01 02 ... 11 12 | ||
k | 1 2 ... 23 24 | ||
kk | 01 02 ... 23 24 | ||
Minute | m | 0 1 ... 58 59 | |
mm | 00 01 ... 58 59 | ||
Second | s | 0 1 ... 58 59 | |
ss | 00 01 ... 58 59 | ||
Fractional second | S | 0 1 ... 8 9 | |
SS | 00 01 ... 98 99 | ||
SSS | 000 001 ... 998 999 | ||
SSSS | 0000 0001 ... 9998,9999 | ||
SSSSS | 00000 00001 ... 99998,99999 | ||
SSSSSS | 000000 000001 ... 999998,999999 | ||
Timezone | Z | -07:00 -06:00 ... +06:00 +07:00 | |
ZZ | -0700 -0600 ... +0600 +0700 | ||
Timezone name | ZZZ | Returns [DateTime.timeZoneName], result may not be consistent across platforms | |
Unix timestamp in seconds | X | 1654063960 | |
Unix timestamp | x | 1654063974620 | |
Localization Defaults | l | 9/4/1986 | Date (in local format, shorter) |
L | 09/04/1986 | Date (in local format) | |
ll | Sep 4 1986 | Month name, day of month, year (shorter) | |
LL | September 04 1986 | Month name, day of month, year | |
lll | Sep 4 1986 8:30 PM | Month name, day of month, year, time | |
LLL | September 04 1986 8:30 PM | Month name, day of month, year, time | |
llll | Thu, Sep 4 1986 8:30 PM | Day of week, month name, day of month, year, time (shorter) | |
LLLL | Thursday, September 04 1986 8:30 PM | Day of week, month name, day of month, year, time | |
LT | 8:30 PM | Time (without seconds) | |
LTS | 8:30:00 PM | Time (with seconds) |
Run this command:
With Dart:
$ dart pub add moment_dart
With Flutter:
$ flutter pub add moment_dart
This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get
):
dependencies:
moment_dart: ^0.7.2
Alternatively, your editor might support dart pub get
or flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:moment_dart/moment_dart.dart';
example/moment_dart_example.dart
import "package:moment_dart/moment_dart.dart";
void main() {
final MomentLocalization localization = MomentLocalizations.enUS();
/// If localization is omitted, it defaults to English (United States)
final Moment moment =
Moment.now(localization: localization) - Duration(days: 1);
final Moment epoch =
Moment(DateTime.fromMicrosecondsSinceEpoch(0, isUtc: true));
final Moment epochPlusFiveDays = epoch + Duration(days: 5);
final Moment epochPlusAYear = epoch + Duration(days: 365);
localization.relative(const Duration(seconds: 2)); //in a few seconds
localization.weekdayName(epoch.weekday); // "Thursday"
epochPlusFiveDays.from(epoch, true); // "5 days"
epochPlusFiveDays.from(epoch); // "in 5 days"
epoch.calendar(
reference: epochPlusFiveDays, omitHours: true); // "Last Thursday"
epochPlusFiveDays.calendar(reference: epoch, omitHours: true); // "Tuesday"
epochPlusAYear.from(epoch); //"in a year"
epochPlusAYear.calendar(reference: epoch); // "01/01/1971 at 12:00AM"
/// Returns relative string, such as `Yesterday`, `Last Sunday`, or default date format concatenated with default hour format.
///
/// You can omit the hours using [omitHours] argument.
///
/// [reference] is `Moment.now()` by default.
moment.calendar();
/// Example when using [LocalizationEnUs]:
///
/// If [this] is yesterday, will result `"a day ago"`
///
/// If [this] is tomorrow, will result `"in a day"`
///
/// moment.js's `toNow()` function has been omitted, since this function prefixes/suffixes appropriately.
moment.fromNow();
/// Unmatched strings will be left as is.
moment.format("YYYY년 MMMM Do dddd A hh:mm");
}
Download Details:
Author: theirontnt
Source Code: https://github.com/theirontnt/moment_dart
1656746160
This project implements Dart definitions and API helpers for the Bungie.net API. It's based on bungie-api-ts that is meant for use in Destiny Item Manager, but should be general enough to use in any project. The code is completely generated from Bungie's documentation - I considered using something like Swagger Codegen, but instead opted for a custom generator so we could make the result as nice as possible.
Install
add this to your dependencies block in pubspec.yaml
dependencies:
bungie_api: ^12.2.4
Interfaces and Enums
There are definitions for every type defined in the Bungie.net services. See their documentation for a list - the interface names are the last part of the full name (for example, Destiny.Definitions.DestinyVendorActionDefinition
becomes DestinyVendorActionDefinition
). There are a few exceptions, like SingleComponentResponseOfDestinyInventoryComponent
, which have been mapped into nicer forms like SingleComponentResponse<DestinyInventoryComponent>
, and the server responses, which are now ServerResponse<T>
instead of something like DestinyCharacterResponse
.
API Helpers
In addition to the types, there are also simple helper functions for each API endpoint. They define the inputs and outputs to that endpoint, and will call a user-provided function with HTTP request info that you can then use to make an HTTP request. This pattern was used so the API helpers could provide full type information. These helpers are not a full API client - they assist in building one. An example:
import 'dart:async';
import 'package:http/http.dart' as http;
import 'package:bungie_api_dart/destiny2.dart';
class BungieApiService{
Future<ServerResponse<DestinyManifest>> getManifest(){
return getDestinyManifest(new Client());
}
}
class Client implements HttpClient{
static const API_KEY = "your_key";
@override
Future<Object> request(HttpClientConfig config) {
if(config.method == 'GET'){
return http.get(config.url, headers: {'X-API-Key': API_KEY});
}
return http.post(config.url, headers: {'X-API-Key': API_KEY});
}
}
Build
./install.sh && ./build.sh
Installing
Run this command:
With Dart:
$ dart pub add bungie_api
With Flutter:
$ flutter pub add bungie_api
This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get
):
dependencies:
bungie_api: ^13.14.0
Alternatively, your editor might support dart pub get
or flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:bungie_api/api/app.dart';
import 'package:bungie_api/api/community_content.dart';
import 'package:bungie_api/api/content.dart';
import 'package:bungie_api/api/destiny2.dart';
import 'package:bungie_api/api/fireteam.dart';
import 'package:bungie_api/api/forum.dart';
import 'package:bungie_api/api/get_available_locales.dart';
import 'package:bungie_api/api/global_alerts.dart';
import 'package:bungie_api/api/group_v2.dart';
import 'package:bungie_api/api/settings.dart';
import 'package:bungie_api/api/social.dart';
import 'package:bungie_api/api/tokens.dart';
import 'package:bungie_api/api/trending.dart';
import 'package:bungie_api/api/user.dart';
import 'package:bungie_api/api/user_system_overrides.dart';
import 'package:bungie_api/app.dart';
import 'package:bungie_api/applications.dart';
import 'package:bungie_api/common.dart';
import 'package:bungie_api/communitycontent.dart';
import 'package:bungie_api/components.dart';
import 'package:bungie_api/config.dart';
import 'package:bungie_api/content.dart';
import 'package:bungie_api/core.dart';
import 'package:bungie_api/dates.dart';
import 'package:bungie_api/destiny2.dart';
import 'package:bungie_api/entities.dart';
import 'package:bungie_api/enums/activity_graph_node_highlight_type.dart';
import 'package:bungie_api/enums/application_scopes.dart';
import 'package:bungie_api/enums/application_status.dart';
import 'package:bungie_api/enums/awa_response_reason.dart';
import 'package:bungie_api/enums/awa_type.dart';
import 'package:bungie_api/enums/awa_user_selection.dart';
import 'package:bungie_api/enums/bucket_category.dart';
import 'package:bungie_api/enums/bucket_scope.dart';
import 'package:bungie_api/enums/bungie_credential_type.dart';
import 'package:bungie_api/enums/bungie_membership_type.dart';
import 'package:bungie_api/enums/capabilities.dart';
import 'package:bungie_api/enums/chat_security_setting.dart';
import 'package:bungie_api/enums/community_content_sort_mode.dart';
import 'package:bungie_api/enums/component_privacy_setting.dart';
import 'package:bungie_api/enums/content_property_data_type_enum.dart';
import 'package:bungie_api/enums/damage_type.dart';
import 'package:bungie_api/enums/destiny_activity_difficulty_tier.dart';
import 'package:bungie_api/enums/destiny_activity_mode_category.dart';
import 'package:bungie_api/enums/destiny_activity_mode_type.dart';
import 'package:bungie_api/enums/destiny_activity_nav_point_type.dart';
import 'package:bungie_api/enums/destiny_ammunition_type.dart';
import 'package:bungie_api/enums/destiny_breaker_type.dart';
import 'package:bungie_api/enums/destiny_class.dart';
import 'package:bungie_api/enums/destiny_collectible_state.dart';
import 'package:bungie_api/enums/destiny_component_type.dart';
import 'package:bungie_api/enums/destiny_energy_type.dart';
import 'package:bungie_api/enums/destiny_game_privacy_setting.dart';
import 'package:bungie_api/enums/destiny_game_versions.dart';
import 'package:bungie_api/enums/destiny_gating_scope.dart';
import 'package:bungie_api/enums/destiny_gender.dart';
import 'package:bungie_api/enums/destiny_graph_node_state.dart';
import 'package:bungie_api/enums/destiny_item_sort_type.dart';
import 'package:bungie_api/enums/destiny_item_sub_type.dart';
import 'package:bungie_api/enums/destiny_item_type.dart';
import 'package:bungie_api/enums/destiny_join_closed_reasons.dart';
import 'package:bungie_api/enums/destiny_milestone_display_preference.dart';
import 'package:bungie_api/enums/destiny_milestone_type.dart';
import 'package:bungie_api/enums/destiny_objective_grant_style.dart';
import 'package:bungie_api/enums/destiny_objective_ui_style.dart';
import 'package:bungie_api/enums/destiny_party_member_states.dart';
import 'package:bungie_api/enums/destiny_presentation_display_style.dart';
import 'package:bungie_api/enums/destiny_presentation_node_state.dart';
import 'package:bungie_api/enums/destiny_presentation_node_type.dart';
import 'package:bungie_api/enums/destiny_presentation_screen_style.dart';
import 'package:bungie_api/enums/destiny_progression_reward_item_acquisition_behavior.dart';
import 'package:bungie_api/enums/destiny_progression_reward_item_state.dart';
import 'package:bungie_api/enums/destiny_progression_scope.dart';
import 'package:bungie_api/enums/destiny_progression_step_display_effect.dart';
import 'package:bungie_api/enums/destiny_race.dart';
import 'package:bungie_api/enums/destiny_record_state.dart';
import 'package:bungie_api/enums/destiny_record_toast_style.dart';
import 'package:bungie_api/enums/destiny_record_value_style.dart';
import 'package:bungie_api/enums/destiny_reward_source_category.dart';
import 'package:bungie_api/enums/destiny_scope.dart';
import 'package:bungie_api/enums/destiny_socket_array_type.dart';
import 'package:bungie_api/enums/destiny_socket_category_style.dart';
import 'package:bungie_api/enums/destiny_socket_visibility.dart';
import 'package:bungie_api/enums/destiny_stat_aggregation_type.dart';
import 'package:bungie_api/enums/destiny_stat_category.dart';
import 'package:bungie_api/enums/destiny_stats_category_type.dart';
import 'package:bungie_api/enums/destiny_stats_group_type.dart';
import 'package:bungie_api/enums/destiny_stats_merge_method.dart';
import 'package:bungie_api/enums/destiny_talent_node_state.dart';
import 'package:bungie_api/enums/destiny_talent_node_step_damage_types.dart';
import 'package:bungie_api/enums/destiny_talent_node_step_guardian_attributes.dart';
import 'package:bungie_api/enums/destiny_talent_node_step_impact_effects.dart';
import 'package:bungie_api/enums/destiny_talent_node_step_light_abilities.dart';
import 'package:bungie_api/enums/destiny_talent_node_step_weapon_performances.dart';
import 'package:bungie_api/enums/destiny_unlock_value_uistyle.dart';
import 'package:bungie_api/enums/destiny_vendor_filter.dart';
import 'package:bungie_api/enums/destiny_vendor_interaction_reward_selection.dart';
import 'package:bungie_api/enums/destiny_vendor_item_refund_policy.dart';
import 'package:bungie_api/enums/destiny_vendor_item_state.dart';
import 'package:bungie_api/enums/destiny_vendor_progression_type.dart';
import 'package:bungie_api/enums/destiny_vendor_reply_type.dart';
import 'package:bungie_api/enums/developer_role.dart';
import 'package:bungie_api/enums/equip_failure_reason.dart';
import 'package:bungie_api/enums/equipping_item_block_attributes.dart';
import 'package:bungie_api/enums/fireteam_date_range.dart';
import 'package:bungie_api/enums/fireteam_platform.dart';
import 'package:bungie_api/enums/fireteam_platform_invite_result.dart';
import 'package:bungie_api/enums/fireteam_public_search_option.dart';
import 'package:bungie_api/enums/fireteam_slot_search.dart';
import 'package:bungie_api/enums/forum_flags_enum.dart';
import 'package:bungie_api/enums/forum_media_type.dart';
import 'package:bungie_api/enums/forum_post_category_enums.dart';
import 'package:bungie_api/enums/forum_post_popularity.dart';
import 'package:bungie_api/enums/forum_post_sort_enum.dart';
import 'package:bungie_api/enums/forum_recruitment_intensity_label.dart';
import 'package:bungie_api/enums/forum_recruitment_tone_label.dart';
import 'package:bungie_api/enums/forum_topics_category_filters_enum.dart';
import 'package:bungie_api/enums/forum_topics_quick_date_enum.dart';
import 'package:bungie_api/enums/forum_topics_sort_enum.dart';
import 'package:bungie_api/enums/friend_relationship_state.dart';
import 'package:bungie_api/enums/global_alert_level.dart';
import 'package:bungie_api/enums/global_alert_type.dart';
import 'package:bungie_api/enums/group_alliance_status.dart';
import 'package:bungie_api/enums/group_application_resolve_state.dart';
import 'package:bungie_api/enums/group_date_range.dart';
import 'package:bungie_api/enums/group_homepage.dart';
import 'package:bungie_api/enums/group_member_count_filter.dart';
import 'package:bungie_api/enums/group_post_publicity.dart';
import 'package:bungie_api/enums/group_potential_member_status.dart';
import 'package:bungie_api/enums/group_sort_by.dart';
import 'package:bungie_api/enums/group_type.dart';
import 'package:bungie_api/enums/groups_for_member_filter.dart';
import 'package:bungie_api/enums/host_guided_games_permission_level.dart';
import 'package:bungie_api/enums/ignore_length.dart';
import 'package:bungie_api/enums/ignore_status.dart';
import 'package:bungie_api/enums/item_bind_status.dart';
import 'package:bungie_api/enums/item_location.dart';
import 'package:bungie_api/enums/item_perk_visibility.dart';
import 'package:bungie_api/enums/item_state.dart';
import 'package:bungie_api/enums/membership_option.dart';
import 'package:bungie_api/enums/opt_in_flags.dart';
import 'package:bungie_api/enums/period_type.dart';
import 'package:bungie_api/enums/platform_error_codes.dart';
import 'package:bungie_api/enums/platform_friend_type.dart';
import 'package:bungie_api/enums/plug_availability_mode.dart';
import 'package:bungie_api/enums/plug_ui_styles.dart';
import 'package:bungie_api/enums/presence_online_state_flags.dart';
import 'package:bungie_api/enums/presence_status.dart';
import 'package:bungie_api/enums/runtime_group_member_type.dart';
import 'package:bungie_api/enums/socket_plug_sources.dart';
import 'package:bungie_api/enums/socket_type_action_type.dart';
import 'package:bungie_api/enums/special_item_type.dart';
import 'package:bungie_api/enums/tier_type.dart';
import 'package:bungie_api/enums/transfer_statuses.dart';
import 'package:bungie_api/enums/trending_entry_type.dart';
import 'package:bungie_api/enums/unit_type.dart';
import 'package:bungie_api/enums/vendor_display_category_sort_order.dart';
import 'package:bungie_api/enums/vendor_interaction_type.dart';
import 'package:bungie_api/enums/vendor_item_status.dart';
import 'package:bungie_api/exceptions.dart';
import 'package:bungie_api/fireteam.dart';
import 'package:bungie_api/forum.dart';
import 'package:bungie_api/forums.dart';
import 'package:bungie_api/getavailablelocales.dart';
import 'package:bungie_api/globalalerts.dart';
import 'package:bungie_api/groupsv2.dart';
import 'package:bungie_api/groupv2.dart';
import 'package:bungie_api/helpers/base_bungie_net_response.dart';
import 'package:bungie_api/helpers/bungie_net_token.dart';
import 'package:bungie_api/helpers/http.dart';
import 'package:bungie_api/helpers/oauth.dart';
import 'package:bungie_api/ignores.dart';
import 'package:bungie_api/interpolation.dart';
import 'package:bungie_api/links.dart';
import 'package:bungie_api/models/api_usage.dart';
import 'package:bungie_api/models/application.dart';
import 'package:bungie_api/models/application_developer.dart';
import 'package:bungie_api/models/awa_authorization_result.dart';
import 'package:bungie_api/models/awa_initialize_response.dart';
import 'package:bungie_api/models/awa_permission_requested.dart';
import 'package:bungie_api/models/awa_user_response.dart';
import 'package:bungie_api/models/bungie_friend.dart';
import 'package:bungie_api/models/bungie_friend_list_response.dart';
import 'package:bungie_api/models/bungie_friend_request_list_response.dart';
import 'package:bungie_api/models/clan_banner.dart';
import 'package:bungie_api/models/clan_banner_decal.dart';
import 'package:bungie_api/models/clan_banner_source.dart';
import 'package:bungie_api/models/comment_summary.dart';
import 'package:bungie_api/models/component_response.dart';
import 'package:bungie_api/models/content_item_public_contract.dart';
import 'package:bungie_api/models/content_preview.dart';
import 'package:bungie_api/models/content_representation.dart';
import 'package:bungie_api/models/content_type_default_value.dart';
import 'package:bungie_api/models/content_type_description.dart';
import 'package:bungie_api/models/content_type_property.dart';
import 'package:bungie_api/models/content_type_property_section.dart';
import 'package:bungie_api/models/core_setting.dart';
import 'package:bungie_api/models/core_settings_configuration.dart';
import 'package:bungie_api/models/core_system.dart';
import 'package:bungie_api/models/cross_save_user_membership.dart';
import 'package:bungie_api/models/datapoint.dart';
import 'package:bungie_api/models/date_range.dart';
import 'package:bungie_api/models/destiny2_core_settings.dart';
import 'package:bungie_api/models/destiny_action_request.dart';
import 'package:bungie_api/models/destiny_activity.dart';
import 'package:bungie_api/models/destiny_activity_challenge_definition.dart';
import 'package:bungie_api/models/destiny_activity_definition.dart';
import 'package:bungie_api/models/destiny_activity_graph_art_element_definition.dart';
import 'package:bungie_api/models/destiny_activity_graph_connection_definition.dart';
import 'package:bungie_api/models/destiny_activity_graph_definition.dart';
import 'package:bungie_api/models/destiny_activity_graph_display_objective_definition.dart';
import 'package:bungie_api/models/destiny_activity_graph_display_progression_definition.dart';
import 'package:bungie_api/models/destiny_activity_graph_list_entry_definition.dart';
import 'package:bungie_api/models/destiny_activity_graph_node_activity_definition.dart';
import 'package:bungie_api/models/destiny_activity_graph_node_definition.dart';
import 'package:bungie_api/models/destiny_activity_graph_node_featuring_state_definition.dart';
import 'package:bungie_api/models/destiny_activity_graph_node_state_entry.dart';
import 'package:bungie_api/models/destiny_activity_guided_block_definition.dart';
import 'package:bungie_api/models/destiny_activity_history_results.dart';
import 'package:bungie_api/models/destiny_activity_insertion_point_definition.dart';
import 'package:bungie_api/models/destiny_activity_loadout_requirement.dart';
import 'package:bungie_api/models/destiny_activity_loadout_requirement_set.dart';
import 'package:bungie_api/models/destiny_activity_matchmaking_block_definition.dart';
import 'package:bungie_api/models/destiny_activity_mode_definition.dart';
import 'package:bungie_api/models/destiny_activity_modifier_definition.dart';
import 'package:bungie_api/models/destiny_activity_modifier_reference_definition.dart';
import 'package:bungie_api/models/destiny_activity_playlist_item_definition.dart';
import 'package:bungie_api/models/destiny_activity_reward_definition.dart';
import 'package:bungie_api/models/destiny_activity_type_definition.dart';
import 'package:bungie_api/models/destiny_activity_unlock_string_definition.dart';
import 'package:bungie_api/models/destiny_aggregate_activity_results.dart';
import 'package:bungie_api/models/destiny_aggregate_activity_stats.dart';
import 'package:bungie_api/models/destiny_animation_reference.dart';
import 'package:bungie_api/models/destiny_art_dye_reference.dart';
import 'package:bungie_api/models/destiny_artifact_character_scoped.dart';
import 'package:bungie_api/models/destiny_artifact_definition.dart';
import 'package:bungie_api/models/destiny_artifact_profile_scoped.dart';
import 'package:bungie_api/models/destiny_artifact_tier.dart';
import 'package:bungie_api/models/destiny_artifact_tier_definition.dart';
import 'package:bungie_api/models/destiny_artifact_tier_item.dart';
import 'package:bungie_api/models/destiny_artifact_tier_item_definition.dart';
import 'package:bungie_api/models/destiny_base_item_component_set_ofint32.dart';
import 'package:bungie_api/models/destiny_base_item_component_set_ofint64.dart';
import 'package:bungie_api/models/destiny_base_item_component_set_ofuint32.dart';
import 'package:bungie_api/models/destiny_breaker_type_definition.dart';
import 'package:bungie_api/models/destiny_bubble_definition.dart';
import 'package:bungie_api/models/destiny_challenge_status.dart';
import 'package:bungie_api/models/destiny_character_action_request.dart';
import 'package:bungie_api/models/destiny_character_activities_component.dart';
import 'package:bungie_api/models/destiny_character_component.dart';
import 'package:bungie_api/models/destiny_character_customization.dart';
import 'package:bungie_api/models/destiny_character_peer_view.dart';
import 'package:bungie_api/models/destiny_character_progression_component.dart';
import 'package:bungie_api/models/destiny_character_records_component.dart';
import 'package:bungie_api/models/destiny_character_render_component.dart';
import 'package:bungie_api/models/destiny_character_response.dart';
import 'package:bungie_api/models/destiny_checklist_definition.dart';
import 'package:bungie_api/models/destiny_checklist_entry_definition.dart';
import 'package:bungie_api/models/destiny_clan_aggregate_stat.dart';
import 'package:bungie_api/models/destiny_class_definition.dart';
import 'package:bungie_api/models/destiny_collectible_acquisition_block.dart';
import 'package:bungie_api/models/destiny_collectible_component.dart';
import 'package:bungie_api/models/destiny_collectible_definition.dart';
import 'package:bungie_api/models/destiny_collectible_node_detail_response.dart';
import 'package:bungie_api/models/destiny_collectible_state_block.dart';
import 'package:bungie_api/models/destiny_collectibles_component.dart';
import 'package:bungie_api/models/destiny_color.dart';
import 'package:bungie_api/models/destiny_craftable_component.dart';
import 'package:bungie_api/models/destiny_craftable_socket_component.dart';
import 'package:bungie_api/models/destiny_craftable_socket_plug_component.dart';
import 'package:bungie_api/models/destiny_craftables_component.dart';
import 'package:bungie_api/models/destiny_currencies_component.dart';
import 'package:bungie_api/models/destiny_damage_type_definition.dart';
import 'package:bungie_api/models/destiny_definition.dart';
import 'package:bungie_api/models/destiny_derived_item_category_definition.dart';
import 'package:bungie_api/models/destiny_derived_item_definition.dart';
import 'package:bungie_api/models/destiny_destination_bubble_setting_definition.dart';
import 'package:bungie_api/models/destiny_destination_definition.dart';
import 'package:bungie_api/models/destiny_display_category_definition.dart';
import 'package:bungie_api/models/destiny_display_properties_definition.dart';
import 'package:bungie_api/models/destiny_energy_capacity_entry.dart';
import 'package:bungie_api/models/destiny_energy_cost_entry.dart';
import 'package:bungie_api/models/destiny_energy_type_definition.dart';
import 'package:bungie_api/models/destiny_entity_search_result.dart';
import 'package:bungie_api/models/destiny_entity_search_result_item.dart';
import 'package:bungie_api/models/destiny_environment_location_mapping.dart';
import 'package:bungie_api/models/destiny_equip_item_result.dart';
import 'package:bungie_api/models/destiny_equip_item_results.dart';
import 'package:bungie_api/models/destiny_equipment_slot_definition.dart';
import 'package:bungie_api/models/destiny_equipping_block_definition.dart';
import 'package:bungie_api/models/destiny_error_profile.dart';
import 'package:bungie_api/models/destiny_faction_definition.dart';
import 'package:bungie_api/models/destiny_faction_progression.dart';
import 'package:bungie_api/models/destiny_faction_vendor_definition.dart';
import 'package:bungie_api/models/destiny_gear_art_arrangement_reference.dart';
import 'package:bungie_api/models/destiny_gender_definition.dart';
import 'package:bungie_api/models/destiny_historical_stats_account_result.dart';
import 'package:bungie_api/models/destiny_historical_stats_activity.dart';
import 'package:bungie_api/models/destiny_historical_stats_by_period.dart';
import 'package:bungie_api/models/destiny_historical_stats_definition.dart';
import 'package:bungie_api/models/destiny_historical_stats_per_character.dart';
import 'package:bungie_api/models/destiny_historical_stats_period_group.dart';
import 'package:bungie_api/models/destiny_historical_stats_results.dart';
import 'package:bungie_api/models/destiny_historical_stats_value.dart';
import 'package:bungie_api/models/destiny_historical_stats_value_pair.dart';
import 'package:bungie_api/models/destiny_historical_stats_with_merged.dart';
import 'package:bungie_api/models/destiny_historical_weapon_stats.dart';
import 'package:bungie_api/models/destiny_historical_weapon_stats_data.dart';
import 'package:bungie_api/models/destiny_icon_sequence_definition.dart';
import 'package:bungie_api/models/destiny_insert_plug_action_definition.dart';
import 'package:bungie_api/models/destiny_insert_plugs_action_request.dart';
import 'package:bungie_api/models/destiny_insert_plugs_free_action_request.dart';
import 'package:bungie_api/models/destiny_insert_plugs_request_entry.dart';
import 'package:bungie_api/models/destiny_inventory_bucket_definition.dart';
import 'package:bungie_api/models/destiny_inventory_component.dart';
import 'package:bungie_api/models/destiny_inventory_item_definition.dart';
import 'package:bungie_api/models/destiny_inventory_item_stat_definition.dart';
import 'package:bungie_api/models/destiny_item_action_block_definition.dart';
import 'package:bungie_api/models/destiny_item_action_request.dart';
import 'package:bungie_api/models/destiny_item_action_required_item_definition.dart';
import 'package:bungie_api/models/destiny_item_category_definition.dart';
import 'package:bungie_api/models/destiny_item_change_response.dart';
import 'package:bungie_api/models/destiny_item_component.dart';
import 'package:bungie_api/models/destiny_item_component_set_ofint32.dart';
import 'package:bungie_api/models/destiny_item_component_set_ofint64.dart';
import 'package:bungie_api/models/destiny_item_component_set_ofuint32.dart';
import 'package:bungie_api/models/destiny_item_crafting_block_bonus_plug_definition.dart';
import 'package:bungie_api/models/destiny_item_crafting_block_definition.dart';
import 'package:bungie_api/models/destiny_item_creation_entry_level_definition.dart';
import 'package:bungie_api/models/destiny_item_gearset_block_definition.dart';
import 'package:bungie_api/models/destiny_item_instance_component.dart';
import 'package:bungie_api/models/destiny_item_instance_energy.dart';
import 'package:bungie_api/models/destiny_item_intrinsic_socket_entry_definition.dart';
import 'package:bungie_api/models/destiny_item_inventory_block_definition.dart';
import 'package:bungie_api/models/destiny_item_investment_stat_definition.dart';
import 'package:bungie_api/models/destiny_item_metric_block_definition.dart';
import 'package:bungie_api/models/destiny_item_objective_block_definition.dart';
import 'package:bungie_api/models/destiny_item_objectives_component.dart';
import 'package:bungie_api/models/destiny_item_peer_view.dart';
import 'package:bungie_api/models/destiny_item_perk_entry_definition.dart';
import 'package:bungie_api/models/destiny_item_perks_component.dart';
import 'package:bungie_api/models/destiny_item_plug.dart';
import 'package:bungie_api/models/destiny_item_plug_base.dart';
import 'package:bungie_api/models/destiny_item_plug_component.dart';
import 'package:bungie_api/models/destiny_item_plug_definition.dart';
import 'package:bungie_api/models/destiny_item_plug_objectives_component.dart';
import 'package:bungie_api/models/destiny_item_preview_block_definition.dart';
import 'package:bungie_api/models/destiny_item_quality_block_definition.dart';
import 'package:bungie_api/models/destiny_item_quantity.dart';
import 'package:bungie_api/models/destiny_item_render_component.dart';
import 'package:bungie_api/models/destiny_item_response.dart';
import 'package:bungie_api/models/destiny_item_reusable_plugs_component.dart';
import 'package:bungie_api/models/destiny_item_sack_block_definition.dart';
import 'package:bungie_api/models/destiny_item_set_action_request.dart';
import 'package:bungie_api/models/destiny_item_set_block_definition.dart';
import 'package:bungie_api/models/destiny_item_set_block_entry_definition.dart';
import 'package:bungie_api/models/destiny_item_socket_block_definition.dart';
import 'package:bungie_api/models/destiny_item_socket_category_definition.dart';
import 'package:bungie_api/models/destiny_item_socket_entry_definition.dart';
import 'package:bungie_api/models/destiny_item_socket_entry_plug_item_definition.dart';
import 'package:bungie_api/models/destiny_item_socket_entry_plug_item_randomized_definition.dart';
import 'package:bungie_api/models/destiny_item_socket_state.dart';
import 'package:bungie_api/models/destiny_item_sockets_component.dart';
import 'package:bungie_api/models/destiny_item_source_block_definition.dart';
import 'package:bungie_api/models/destiny_item_source_definition.dart';
import 'package:bungie_api/models/destiny_item_stat_block_definition.dart';
import 'package:bungie_api/models/destiny_item_state_request.dart';
import 'package:bungie_api/models/destiny_item_stats_component.dart';
import 'package:bungie_api/models/destiny_item_summary_block_definition.dart';
import 'package:bungie_api/models/destiny_item_talent_grid_block_definition.dart';
import 'package:bungie_api/models/destiny_item_talent_grid_component.dart';
import 'package:bungie_api/models/destiny_item_tier_type_definition.dart';
import 'package:bungie_api/models/destiny_item_tier_type_infusion_block.dart';
import 'package:bungie_api/models/destiny_item_tooltip_notification.dart';
import 'package:bungie_api/models/destiny_item_transfer_request.dart';
import 'package:bungie_api/models/destiny_item_translation_block_definition.dart';
import 'package:bungie_api/models/destiny_item_value_block_definition.dart';
import 'package:bungie_api/models/destiny_item_vendor_source_reference.dart';
import 'package:bungie_api/models/destiny_item_version_definition.dart';
import 'package:bungie_api/models/destiny_kiosk_item.dart';
import 'package:bungie_api/models/destiny_kiosks_component.dart';
import 'package:bungie_api/models/destiny_leaderboard.dart';
import 'package:bungie_api/models/destiny_leaderboard_entry.dart';
import 'package:bungie_api/models/destiny_leaderboard_results.dart';
import 'package:bungie_api/models/destiny_linked_graph_definition.dart';
import 'package:bungie_api/models/destiny_linked_graph_entry_definition.dart';
import 'package:bungie_api/models/destiny_linked_profiles_response.dart';
import 'package:bungie_api/models/destiny_location_definition.dart';
import 'package:bungie_api/models/destiny_location_release_definition.dart';
import 'package:bungie_api/models/destiny_lore_definition.dart';
import 'package:bungie_api/models/destiny_manifest.dart';
import 'package:bungie_api/models/destiny_material_requirement.dart';
import 'package:bungie_api/models/destiny_material_requirement_set_definition.dart';
import 'package:bungie_api/models/destiny_medal_tier_definition.dart';
import 'package:bungie_api/models/destiny_metric_component.dart';
import 'package:bungie_api/models/destiny_metric_definition.dart';
import 'package:bungie_api/models/destiny_metrics_component.dart';
import 'package:bungie_api/models/destiny_milestone.dart';
import 'package:bungie_api/models/destiny_milestone_activity.dart';
import 'package:bungie_api/models/destiny_milestone_activity_completion_status.dart';
import 'package:bungie_api/models/destiny_milestone_activity_definition.dart';
import 'package:bungie_api/models/destiny_milestone_activity_phase.dart';
import 'package:bungie_api/models/destiny_milestone_activity_variant.dart';
import 'package:bungie_api/models/destiny_milestone_activity_variant_definition.dart';
import 'package:bungie_api/models/destiny_milestone_challenge_activity.dart';
import 'package:bungie_api/models/destiny_milestone_challenge_activity_definition.dart';
import 'package:bungie_api/models/destiny_milestone_challenge_activity_graph_node_entry.dart';
import 'package:bungie_api/models/destiny_milestone_challenge_activity_phase.dart';
import 'package:bungie_api/models/destiny_milestone_challenge_definition.dart';
import 'package:bungie_api/models/destiny_milestone_content.dart';
import 'package:bungie_api/models/destiny_milestone_content_item_category.dart';
import 'package:bungie_api/models/destiny_milestone_definition.dart';
import 'package:bungie_api/models/destiny_milestone_quest.dart';
import 'package:bungie_api/models/destiny_milestone_quest_definition.dart';
import 'package:bungie_api/models/destiny_milestone_quest_reward_item.dart';
import 'package:bungie_api/models/destiny_milestone_quest_rewards_definition.dart';
import 'package:bungie_api/models/destiny_milestone_reward_category.dart';
import 'package:bungie_api/models/destiny_milestone_reward_category_definition.dart';
import 'package:bungie_api/models/destiny_milestone_reward_entry.dart';
import 'package:bungie_api/models/destiny_milestone_reward_entry_definition.dart';
import 'package:bungie_api/models/destiny_milestone_value_definition.dart';
import 'package:bungie_api/models/destiny_milestone_vendor.dart';
import 'package:bungie_api/models/destiny_milestone_vendor_definition.dart';
import 'package:bungie_api/models/destiny_node_activation_requirement.dart';
import 'package:bungie_api/models/destiny_node_socket_replace_response.dart';
import 'package:bungie_api/models/destiny_node_step_definition.dart';
import 'package:bungie_api/models/destiny_objective_definition.dart';
import 'package:bungie_api/models/destiny_objective_display_properties.dart';
import 'package:bungie_api/models/destiny_objective_perk_entry_definition.dart';
import 'package:bungie_api/models/destiny_objective_progress.dart';
import 'package:bungie_api/models/destiny_objective_stat_entry_definition.dart';
import 'package:bungie_api/models/destiny_parent_item_override.dart';
import 'package:bungie_api/models/destiny_perk_reference.dart';
import 'package:bungie_api/models/destiny_place_definition.dart';
import 'package:bungie_api/models/destiny_platform_silver_component.dart';
import 'package:bungie_api/models/destiny_player.dart';
import 'package:bungie_api/models/destiny_plug_item_crafting_requirements.dart';
import 'package:bungie_api/models/destiny_plug_item_crafting_unlock_requirement.dart';
import 'package:bungie_api/models/destiny_plug_rule_definition.dart';
import 'package:bungie_api/models/destiny_plug_set_definition.dart';
import 'package:bungie_api/models/destiny_plug_sets_component.dart';
import 'package:bungie_api/models/destiny_plug_whitelist_entry_definition.dart';
import 'package:bungie_api/models/destiny_position_definition.dart';
import 'package:bungie_api/models/destiny_post_game_carnage_report_data.dart';
import 'package:bungie_api/models/destiny_post_game_carnage_report_entry.dart';
import 'package:bungie_api/models/destiny_post_game_carnage_report_extended_data.dart';
import 'package:bungie_api/models/destiny_post_game_carnage_report_team_entry.dart';
import 'package:bungie_api/models/destiny_postmaster_transfer_request.dart';
import 'package:bungie_api/models/destiny_power_cap_definition.dart';
import 'package:bungie_api/models/destiny_presentation_child_block.dart';
import 'package:bungie_api/models/destiny_presentation_node_base_definition.dart';
import 'package:bungie_api/models/destiny_presentation_node_child_entry.dart';
import 'package:bungie_api/models/destiny_presentation_node_child_entry_base.dart';
import 'package:bungie_api/models/destiny_presentation_node_children_block.dart';
import 'package:bungie_api/models/destiny_presentation_node_collectible_child_entry.dart';
import 'package:bungie_api/models/destiny_presentation_node_component.dart';
import 'package:bungie_api/models/destiny_presentation_node_craftable_child_entry.dart';
import 'package:bungie_api/models/destiny_presentation_node_definition.dart';
import 'package:bungie_api/models/destiny_presentation_node_metric_child_entry.dart';
import 'package:bungie_api/models/destiny_presentation_node_record_child_entry.dart';
import 'package:bungie_api/models/destiny_presentation_node_requirements_block.dart';
import 'package:bungie_api/models/destiny_presentation_nodes_component.dart';
import 'package:bungie_api/models/destiny_profile_collectibles_component.dart';
import 'package:bungie_api/models/destiny_profile_component.dart';
import 'package:bungie_api/models/destiny_profile_progression_component.dart';
import 'package:bungie_api/models/destiny_profile_records_component.dart';
import 'package:bungie_api/models/destiny_profile_response.dart';
import 'package:bungie_api/models/destiny_profile_transitory_component.dart';
import 'package:bungie_api/models/destiny_profile_transitory_current_activity.dart';
import 'package:bungie_api/models/destiny_profile_transitory_joinability.dart';
import 'package:bungie_api/models/destiny_profile_transitory_party_member.dart';
import 'package:bungie_api/models/destiny_profile_transitory_tracking_entry.dart';
import 'package:bungie_api/models/destiny_profile_user_info_card.dart';
import 'package:bungie_api/models/destiny_progression.dart';
import 'package:bungie_api/models/destiny_progression_definition.dart';
import 'package:bungie_api/models/destiny_progression_display_properties_definition.dart';
import 'package:bungie_api/models/destiny_progression_level_requirement_definition.dart';
import 'package:bungie_api/models/destiny_progression_mapping_definition.dart';
import 'package:bungie_api/models/destiny_progression_reset_entry.dart';
import 'package:bungie_api/models/destiny_progression_reward_definition.dart';
import 'package:bungie_api/models/destiny_progression_reward_item_quantity.dart';
import 'package:bungie_api/models/destiny_progression_step_definition.dart';
import 'package:bungie_api/models/destiny_public_activity_status.dart';
import 'package:bungie_api/models/destiny_public_milestone.dart';
import 'package:bungie_api/models/destiny_public_milestone_activity.dart';
import 'package:bungie_api/models/destiny_public_milestone_activity_variant.dart';
import 'package:bungie_api/models/destiny_public_milestone_challenge.dart';
import 'package:bungie_api/models/destiny_public_milestone_challenge_activity.dart';
import 'package:bungie_api/models/destiny_public_milestone_quest.dart';
import 'package:bungie_api/models/destiny_public_milestone_vendor.dart';
import 'package:bungie_api/models/destiny_public_vendor_component.dart';
import 'package:bungie_api/models/destiny_public_vendor_sale_item_component.dart';
import 'package:bungie_api/models/destiny_public_vendors_response.dart';
import 'package:bungie_api/models/destiny_quest_status.dart';
import 'package:bungie_api/models/destiny_race_definition.dart';
import 'package:bungie_api/models/destiny_record_completion_block.dart';
import 'package:bungie_api/models/destiny_record_component.dart';
import 'package:bungie_api/models/destiny_record_definition.dart';
import 'package:bungie_api/models/destiny_record_expiration_block.dart';
import 'package:bungie_api/models/destiny_record_interval_block.dart';
import 'package:bungie_api/models/destiny_record_interval_objective.dart';
import 'package:bungie_api/models/destiny_record_interval_rewards.dart';
import 'package:bungie_api/models/destiny_record_title_block.dart';
import 'package:bungie_api/models/destiny_records_component.dart';
import 'package:bungie_api/models/destiny_report_offense_pgcr_request.dart';
import 'package:bungie_api/models/destiny_report_reason_category_definition.dart';
import 'package:bungie_api/models/destiny_report_reason_definition.dart';
import 'package:bungie_api/models/destiny_reward_source_definition.dart';
import 'package:bungie_api/models/destiny_sandbox_perk_definition.dart';
import 'package:bungie_api/models/destiny_scored_presentation_node_base_definition.dart';
import 'package:bungie_api/models/destiny_season_definition.dart';
import 'package:bungie_api/models/destiny_season_pass_definition.dart';
import 'package:bungie_api/models/destiny_season_preview_definition.dart';
import 'package:bungie_api/models/destiny_season_preview_image_definition.dart';
import 'package:bungie_api/models/destiny_socket_category_definition.dart';
import 'package:bungie_api/models/destiny_socket_type_definition.dart';
import 'package:bungie_api/models/destiny_socket_type_scalar_material_requirement_entry.dart';
import 'package:bungie_api/models/destiny_stat.dart';
import 'package:bungie_api/models/destiny_stat_definition.dart';
import 'package:bungie_api/models/destiny_stat_display_definition.dart';
import 'package:bungie_api/models/destiny_stat_group_definition.dart';
import 'package:bungie_api/models/destiny_stat_override_definition.dart';
import 'package:bungie_api/models/destiny_string_variables_component.dart';
import 'package:bungie_api/models/destiny_talent_exclusive_group.dart';
import 'package:bungie_api/models/destiny_talent_grid_definition.dart';
import 'package:bungie_api/models/destiny_talent_node.dart';
import 'package:bungie_api/models/destiny_talent_node_category.dart';
import 'package:bungie_api/models/destiny_talent_node_definition.dart';
import 'package:bungie_api/models/destiny_talent_node_exclusive_set_definition.dart';
import 'package:bungie_api/models/destiny_talent_node_stat_block.dart';
import 'package:bungie_api/models/destiny_talent_node_step_groups.dart';
import 'package:bungie_api/models/destiny_trait_category_definition.dart';
import 'package:bungie_api/models/destiny_trait_definition.dart';
import 'package:bungie_api/models/destiny_unlock_definition.dart';
import 'package:bungie_api/models/destiny_unlock_expression_definition.dart';
import 'package:bungie_api/models/destiny_unlock_status.dart';
import 'package:bungie_api/models/destiny_unlock_value_definition.dart';
import 'package:bungie_api/models/destiny_vendor_accepted_item_definition.dart';
import 'package:bungie_api/models/destiny_vendor_action_definition.dart';
import 'package:bungie_api/models/destiny_vendor_base_component.dart';
import 'package:bungie_api/models/destiny_vendor_categories_component.dart';
import 'package:bungie_api/models/destiny_vendor_category.dart';
import 'package:bungie_api/models/destiny_vendor_category_entry_definition.dart';
import 'package:bungie_api/models/destiny_vendor_category_overlay_definition.dart';
import 'package:bungie_api/models/destiny_vendor_component.dart';
import 'package:bungie_api/models/destiny_vendor_definition.dart';
import 'package:bungie_api/models/destiny_vendor_display_properties_definition.dart';
import 'package:bungie_api/models/destiny_vendor_group.dart';
import 'package:bungie_api/models/destiny_vendor_group_component.dart';
import 'package:bungie_api/models/destiny_vendor_group_definition.dart';
import 'package:bungie_api/models/destiny_vendor_group_reference.dart';
import 'package:bungie_api/models/destiny_vendor_interaction_definition.dart';
import 'package:bungie_api/models/destiny_vendor_interaction_reply_definition.dart';
import 'package:bungie_api/models/destiny_vendor_interaction_sack_entry_definition.dart';
import 'package:bungie_api/models/destiny_vendor_inventory_flyout_bucket_definition.dart';
import 'package:bungie_api/models/destiny_vendor_inventory_flyout_definition.dart';
import 'package:bungie_api/models/destiny_vendor_item_definition.dart';
import 'package:bungie_api/models/destiny_vendor_item_quantity.dart';
import 'package:bungie_api/models/destiny_vendor_item_socket_override.dart';
import 'package:bungie_api/models/destiny_vendor_location_definition.dart';
import 'package:bungie_api/models/destiny_vendor_receipt.dart';
import 'package:bungie_api/models/destiny_vendor_receipts_component.dart';
import 'package:bungie_api/models/destiny_vendor_requirement_display_entry_definition.dart';
import 'package:bungie_api/models/destiny_vendor_response.dart';
import 'package:bungie_api/models/destiny_vendor_sale_item_action_block_definition.dart';
import 'package:bungie_api/models/destiny_vendor_sale_item_base_component.dart';
import 'package:bungie_api/models/destiny_vendor_sale_item_component.dart';
import 'package:bungie_api/models/destiny_vendor_sale_item_set_component_of_destiny_public_vendor_sale_item_component.dart';
import 'package:bungie_api/models/destiny_vendor_sale_item_set_component_of_destiny_vendor_sale_item_component.dart';
import 'package:bungie_api/models/destiny_vendor_service_definition.dart';
import 'package:bungie_api/models/destiny_vendors_response.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint32_and_destiny_item_instance_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint32_and_destiny_item_objectives_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint32_and_destiny_item_perks_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint32_and_destiny_item_plug_objectives_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint32_and_destiny_item_render_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint32_and_destiny_item_reusable_plugs_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint32_and_destiny_item_sockets_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint32_and_destiny_item_stats_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint32_and_destiny_item_talent_grid_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint32_and_destiny_vendor_sale_item_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_character_activities_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_character_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_character_progression_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_character_records_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_character_render_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_collectibles_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_craftables_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_currencies_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_inventory_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_item_instance_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_item_objectives_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_item_perks_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_item_plug_objectives_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_item_render_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_item_reusable_plugs_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_item_sockets_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_item_stats_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_item_talent_grid_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_kiosks_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_plug_sets_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_presentation_nodes_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofint64_and_destiny_string_variables_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_destiny_item_instance_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_destiny_item_objectives_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_destiny_item_perks_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_destiny_item_plug_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_destiny_item_plug_objectives_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_destiny_item_render_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_destiny_item_reusable_plugs_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_destiny_item_sockets_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_destiny_item_stats_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_destiny_item_talent_grid_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_destiny_public_vendor_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_destiny_vendor_categories_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_destiny_vendor_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_personal_destiny_vendor_sale_item_set_component.dart';
import 'package:bungie_api/models/dictionary_component_response_ofuint32_and_public_destiny_vendor_sale_item_set_component.dart';
import 'package:bungie_api/models/dye_reference.dart';
import 'package:bungie_api/models/email_opt_in_definition.dart';
import 'package:bungie_api/models/email_setting_localization.dart';
import 'package:bungie_api/models/email_setting_subscription_localization.dart';
import 'package:bungie_api/models/email_settings.dart';
import 'package:bungie_api/models/email_subscription_definition.dart';
import 'package:bungie_api/models/email_view_definition.dart';
import 'package:bungie_api/models/email_view_definition_setting.dart';
import 'package:bungie_api/models/entity_action_result.dart';
import 'package:bungie_api/models/exact_search_request.dart';
import 'package:bungie_api/models/fireteam_member.dart';
import 'package:bungie_api/models/fireteam_response.dart';
import 'package:bungie_api/models/fireteam_summary.dart';
import 'package:bungie_api/models/fireteam_user_info_card.dart';
import 'package:bungie_api/models/forum_recruitment_detail.dart';
import 'package:bungie_api/models/gear_asset_data_base_definition.dart';
import 'package:bungie_api/models/general_user.dart';
import 'package:bungie_api/models/get_credential_types_for_account_response.dart';
import 'package:bungie_api/models/get_groups_for_member_response.dart';
import 'package:bungie_api/models/global_alert.dart';
import 'package:bungie_api/models/group_application_list_request.dart';
import 'package:bungie_api/models/group_application_request.dart';
import 'package:bungie_api/models/group_application_response.dart';
import 'package:bungie_api/models/group_ban.dart';
import 'package:bungie_api/models/group_ban_request.dart';
import 'package:bungie_api/models/group_edit_action.dart';
import 'package:bungie_api/models/group_features.dart';
import 'package:bungie_api/models/group_member.dart';
import 'package:bungie_api/models/group_member_application.dart';
import 'package:bungie_api/models/group_member_leave_result.dart';
import 'package:bungie_api/models/group_membership.dart';
import 'package:bungie_api/models/group_membership_base.dart';
import 'package:bungie_api/models/group_membership_search_response.dart';
import 'package:bungie_api/models/group_name_search_request.dart';
import 'package:bungie_api/models/group_optional_conversation.dart';
import 'package:bungie_api/models/group_optional_conversation_add_request.dart';
import 'package:bungie_api/models/group_optional_conversation_edit_request.dart';
import 'package:bungie_api/models/group_options_edit_action.dart';
import 'package:bungie_api/models/group_potential_member.dart';
import 'package:bungie_api/models/group_potential_membership.dart';
import 'package:bungie_api/models/group_potential_membership_search_response.dart';
import 'package:bungie_api/models/group_query.dart';
import 'package:bungie_api/models/group_response.dart';
import 'package:bungie_api/models/group_search_response.dart';
import 'package:bungie_api/models/group_theme.dart';
import 'package:bungie_api/models/group_user_base.dart';
import 'package:bungie_api/models/group_user_info_card.dart';
import 'package:bungie_api/models/group_v2.dart';
import 'package:bungie_api/models/group_v2_card.dart';
import 'package:bungie_api/models/group_v2_clan_info.dart';
import 'package:bungie_api/models/group_v2_clan_info_and_investment.dart';
import 'package:bungie_api/models/hard_linked_user_membership.dart';
import 'package:bungie_api/models/hyperlink_reference.dart';
import 'package:bungie_api/models/ignore_response.dart';
import 'package:bungie_api/models/image_pyramid_entry.dart';
import 'package:bungie_api/models/interpolation_point.dart';
import 'package:bungie_api/models/interpolation_point_float.dart';
import 'package:bungie_api/models/inventory_changed_response.dart';
import 'package:bungie_api/models/paged_query.dart';
import 'package:bungie_api/models/partner_offer_claim_request.dart';
import 'package:bungie_api/models/partner_offer_history_response.dart';
import 'package:bungie_api/models/partner_offer_sku_history_response.dart';
import 'package:bungie_api/models/personal_destiny_vendor_sale_item_set_component.dart';
import 'package:bungie_api/models/platform_friend.dart';
import 'package:bungie_api/models/platform_friend_response.dart';
import 'package:bungie_api/models/poll_response.dart';
import 'package:bungie_api/models/poll_result.dart';
import 'package:bungie_api/models/post_response.dart';
import 'package:bungie_api/models/post_search_response.dart';
import 'package:bungie_api/models/public_destiny_vendor_sale_item_set_component.dart';
import 'package:bungie_api/models/schema_record_state_block.dart';
import 'package:bungie_api/models/search_result.dart';
import 'package:bungie_api/models/search_result_of_content_item_public_contract.dart';
import 'package:bungie_api/models/search_result_of_destiny_entity_search_result_item.dart';
import 'package:bungie_api/models/search_result_of_fireteam_response.dart';
import 'package:bungie_api/models/search_result_of_fireteam_summary.dart';
import 'package:bungie_api/models/search_result_of_group_ban.dart';
import 'package:bungie_api/models/search_result_of_group_member.dart';
import 'package:bungie_api/models/search_result_of_group_member_application.dart';
import 'package:bungie_api/models/search_result_of_group_membership.dart';
import 'package:bungie_api/models/search_result_of_group_potential_membership.dart';
import 'package:bungie_api/models/search_result_of_group_v2_card.dart';
import 'package:bungie_api/models/search_result_of_post_response.dart';
import 'package:bungie_api/models/search_result_of_trending_entry.dart';
import 'package:bungie_api/models/series.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_character_activities_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_character_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_character_progression_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_character_records_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_character_render_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_collectibles_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_currencies_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_inventory_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_item_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_item_instance_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_item_objectives_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_item_perks_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_item_plug_objectives_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_item_render_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_item_reusable_plugs_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_item_sockets_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_item_stats_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_item_talent_grid_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_kiosks_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_metrics_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_platform_silver_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_plug_sets_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_presentation_nodes_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_profile_collectibles_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_profile_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_profile_progression_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_profile_records_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_profile_transitory_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_string_variables_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_vendor_categories_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_vendor_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_vendor_group_component.dart';
import 'package:bungie_api/models/single_component_response_of_destiny_vendor_receipts_component.dart';
import 'package:bungie_api/models/stream_info.dart';
import 'package:bungie_api/models/tag_metadata_definition.dart';
import 'package:bungie_api/models/tag_metadata_item.dart';
import 'package:bungie_api/models/tag_response.dart';
import 'package:bungie_api/models/trending_categories.dart';
import 'package:bungie_api/models/trending_category.dart';
import 'package:bungie_api/models/trending_detail.dart';
import 'package:bungie_api/models/trending_entry.dart';
import 'package:bungie_api/models/trending_entry_community_creation.dart';
import 'package:bungie_api/models/trending_entry_destiny_activity.dart';
import 'package:bungie_api/models/trending_entry_destiny_item.dart';
import 'package:bungie_api/models/trending_entry_destiny_ritual.dart';
import 'package:bungie_api/models/trending_entry_news.dart';
import 'package:bungie_api/models/trending_entry_support_article.dart';
import 'package:bungie_api/models/user_info_card.dart';
import 'package:bungie_api/models/user_membership.dart';
import 'package:bungie_api/models/user_membership_data.dart';
import 'package:bungie_api/models/user_search_prefix_request.dart';
import 'package:bungie_api/models/user_search_response.dart';
import 'package:bungie_api/models/user_search_response_detail.dart';
import 'package:bungie_api/models/user_theme.dart';
import 'package:bungie_api/models/user_to_user_context.dart';
import 'package:bungie_api/queries.dart';
import 'package:bungie_api/responses/api_usage_response.dart';
import 'package:bungie_api/responses/awa_authorization_result_response.dart';
import 'package:bungie_api/responses/awa_initialize_response_response.dart';
import 'package:bungie_api/responses/boolean_response.dart';
import 'package:bungie_api/responses/bungie_friend_list_response_response.dart';
import 'package:bungie_api/responses/bungie_friend_request_list_response_response.dart';
import 'package:bungie_api/responses/cedictionary_ofstring_andstring_response.dart';
import 'package:bungie_api/responses/celist_of_forum_recruitment_detail_response.dart';
import 'package:bungie_api/responses/celist_of_global_alert_response.dart';
import 'package:bungie_api/responses/celist_of_group_optional_conversation_response.dart';
import 'package:bungie_api/responses/celist_of_partner_offer_sku_history_response_response.dart';
import 'package:bungie_api/responses/clan_banner_source_response.dart';
import 'package:bungie_api/responses/content_item_public_contract_response.dart';
import 'package:bungie_api/responses/content_type_description_response.dart';
import 'package:bungie_api/responses/core_settings_configuration_response.dart';
import 'package:bungie_api/responses/destiny_activity_history_results_response.dart';
import 'package:bungie_api/responses/destiny_aggregate_activity_results_response.dart';
import 'package:bungie_api/responses/destiny_character_response_response.dart';
import 'package:bungie_api/responses/destiny_collectible_node_detail_response_response.dart';
import 'package:bungie_api/responses/destiny_definition_response.dart';
import 'package:bungie_api/responses/destiny_entity_search_result_response.dart';
import 'package:bungie_api/responses/destiny_equip_item_results_response.dart';
import 'package:bungie_api/responses/destiny_historical_stats_account_result_response.dart';
import 'package:bungie_api/responses/destiny_historical_stats_results_response.dart';
import 'package:bungie_api/responses/destiny_historical_weapon_stats_data_response.dart';
import 'package:bungie_api/responses/destiny_item_change_response_response.dart';
import 'package:bungie_api/responses/destiny_item_response_response.dart';
import 'package:bungie_api/responses/destiny_leaderboard_results_response.dart';
import 'package:bungie_api/responses/destiny_linked_profiles_response_response.dart';
import 'package:bungie_api/responses/destiny_manifest_response.dart';
import 'package:bungie_api/responses/destiny_milestone_content_response.dart';
import 'package:bungie_api/responses/destiny_milestone_response.dart';
import 'package:bungie_api/responses/destiny_post_game_carnage_report_data_response.dart';
import 'package:bungie_api/responses/destiny_profile_response_response.dart';
import 'package:bungie_api/responses/destiny_public_vendors_response_response.dart';
import 'package:bungie_api/responses/destiny_vendor_response_response.dart';
import 'package:bungie_api/responses/destiny_vendors_response_response.dart';
import 'package:bungie_api/responses/dictionary_ofint32_andstring_response.dart';
import 'package:bungie_api/responses/dictionary_ofstring_and_core_system_response.dart';
import 'package:bungie_api/responses/dictionary_ofuint32_and_destiny_public_milestone_response.dart';
import 'package:bungie_api/responses/fireteam_response_response.dart';
import 'package:bungie_api/responses/general_user_response.dart';
import 'package:bungie_api/responses/get_groups_for_member_response_response.dart';
import 'package:bungie_api/responses/group_application_response_response.dart';
import 'package:bungie_api/responses/group_member_leave_result_response.dart';
import 'package:bungie_api/responses/group_membership_search_response_response.dart';
import 'package:bungie_api/responses/group_potential_membership_search_response_response.dart';
import 'package:bungie_api/responses/group_response_response.dart';
import 'package:bungie_api/responses/group_search_response_response.dart';
import 'package:bungie_api/responses/hard_linked_user_membership_response.dart';
import 'package:bungie_api/responses/ienumerable_of_application_response.dart';
import 'package:bungie_api/responses/ienumerable_of_user_info_card_response.dart';
import 'package:bungie_api/responses/int32_response.dart';
import 'package:bungie_api/responses/int64_response.dart';
import 'package:bungie_api/responses/iread_only_collection_of_content_item_public_contract_response.dart';
import 'package:bungie_api/responses/list_of_destiny_clan_aggregate_stat_response.dart';
import 'package:bungie_api/responses/list_of_entity_action_result_response.dart';
import 'package:bungie_api/responses/list_of_get_credential_types_for_account_response_response.dart';
import 'package:bungie_api/responses/list_of_group_theme_response.dart';
import 'package:bungie_api/responses/list_of_group_v2_card_response.dart';
import 'package:bungie_api/responses/list_of_tag_response_response.dart';
import 'package:bungie_api/responses/list_of_user_theme_response.dart';
import 'package:bungie_api/responses/platform_friend_response_response.dart';
import 'package:bungie_api/responses/post_search_response_response.dart';
import 'package:bungie_api/responses/read_only_dictionary_ofstring_and_destiny_historical_stats_definition_response.dart';
import 'package:bungie_api/responses/search_result_of_content_item_public_contract_response.dart';
import 'package:bungie_api/responses/search_result_of_fireteam_response_response.dart';
import 'package:bungie_api/responses/search_result_of_fireteam_summary_response.dart';
import 'package:bungie_api/responses/search_result_of_group_ban_response.dart';
import 'package:bungie_api/responses/search_result_of_group_member_application_response.dart';
import 'package:bungie_api/responses/search_result_of_group_member_response.dart';
import 'package:bungie_api/responses/search_result_of_trending_entry_response.dart';
import 'package:bungie_api/responses/trending_categories_response.dart';
import 'package:bungie_api/responses/trending_detail_response.dart';
import 'package:bungie_api/responses/user_membership_data_response.dart';
import 'package:bungie_api/responses/user_search_response_response.dart';
import 'package:bungie_api/settings.dart';
import 'package:bungie_api/social.dart';
import 'package:bungie_api/tags.dart';
import 'package:bungie_api/tokens.dart';
import 'package:bungie_api/trending.dart';
import 'package:bungie_api/user.dart';
import 'package:bungie_api/usersystemoverrides.dart';
Author: LittleLightForDestiny
Source Code: https://github.com/LittleLightForDestiny/bungie-api-dart
License: MIT license
1656745200
This repo contains Flutter plugins maintained by the flutter-tizen team. We're in process of adding Tizen platform support to existing first and third-party plugins on pub.dev based on their popularity. If the plugin you're looking for isn't implemented for Tizen yet, consider filing an issue or creating a package by yourself. (We welcome your pull requests!)
To build Flutter applications with plugins, use the flutter-tizen tool.
For how to extend existing plugins for Tizen, see Writing custom platform-specific code and Federated plugins from the Flutter docs. If the original plugin uses the federated plugins approach, you can implement its platform interface either in Dart (inheriting directly) or C++ (using a fallback method channel).
The "non-endorsed" status means that the plugin is not endorsed by the original author. In such case, you must set both foobar
and foobar_tizen
package dependencies in pubspec.yaml
file to achieve full functionality.
Package name | Watch | Watch emulator | TV | TV emulator | Remarks |
---|---|---|---|---|---|
audioplayers_tizen | ✔️ | ✔️ | ⚠️ | ⚠️ | Functional limitations (see README) |
battery_plus_tizen | ✔️ | ✔️ | ❌ | ❌ | No battery |
camera_tizen | ❌ | ❌ | ❌ | ❌ | No camera |
connectivity_plus_tizen | ✔️ | ⚠️ | ✔️ | ✔️ | Returns incorrect connection status |
device_info_plus_tizen | ✔️ | ✔️ | ✔️ | ✔️ | |
flutter_tts_tizen | ✔️ | ✔️ | ✔️ | ✔️ | |
geolocator_tizen | ✔️ | ✔️ | ❌ | ❌ | Not applicable for TV |
google_maps_flutter_tizen | ❌ | ❌ | ✔️ | ❌ | Dependent library unavailable |
image_picker_tizen | ⚠️ | ❌ | ❌ | ❌ | No camera No file manager app |
integration_test_tizen | ✔️ | ✔️ | ✔️ | ✔️ | |
messageport_tizen | ✔️ | ✔️ | ✔️ | ✔️ | |
network_info_plus_tizen | ✔️ | ❌ | ✔️ | ❌ | API not supported on emulator |
package_info_plus_tizen | ✔️ | ✔️ | ✔️ | ✔️ | |
path_provider_tizen | ✔️ | ✔️ | ✔️ | ✔️ | |
permission_handler_tizen | ✔️ | ✔️ | ⚠️ | ⚠️ | Not applicable for TV |
sensors_plus_tizen | ✔️ | ✔️ | ❌ | ❌ | No sensor hardware |
share_plus_tizen | ⚠️ | ⚠️ | ❌ | ❌ | No SMS or e-mail app |
shared_preferences_tizen | ✔️ | ✔️ | ✔️ | ✔️ | |
sqflite_tizen | ✔️ | ✔️ | ✔️ | ✔️ | |
tizen_app_control | ✔️ | ✔️ | ✔️ | ✔️ | |
tizen_app_manager | ✔️ | ✔️ | ✔️ | ✔️ | |
tizen_audio_manager | ✔️ | ✔️ | ✔️ | ✔️ | |
tizen_log | ✔️ | ✔️ | ❌ | ❌ | Not applicable for TV |
tizen_notification | ❌ | ✔️ | ✔️ | ✔️ | API not supported |
tizen_package_manager | ✔️ | ✔️ | ✔️ | ✔️ | |
url_launcher_tizen | ✔️ | ❌ | ✔️ | ❌ | No browser app |
video_player_tizen | ✔️ | ✔️ | ⚠️ | ❌ | Functional limitations (see README) TV emulator issue |
wakelock_tizen | ✔️ | ✔️ | ❌ | ❌ | Cannot override system display setting |
wearable_rotary | ✔️ | ✔️ | ❌ | ❌ | Not applicable for TV |
webview_flutter_tizen | ❌ | ❌ | ✔️ | ❌ | Dependent library unavailable |
The battery
plugin has been replaced by the Flutter Community Plus Plugins version, battery_plus
. Consider migrating to battery_plus
and its Tizen implementation battery_plus_tizen
.
The Tizen implementation of battery
.
This package is not an endorsed implementation of battery
. Therefore, you have to include battery_tizen
alongside battery
as dependencies in your pubspec.yaml
file.
dependencies:
battery: ^2.0.1
battery_tizen: ^2.0.2
Then you can import battery
in your Dart code:
import 'package:battery/battery.dart';
For detailed usage, see https://pub.dev/packages/battery#usage.
Run this command:
With Dart:
$ dart pub add battery_tizen
With Flutter:
$ flutter pub add battery_tizen
This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get
):
dependencies:
battery_tizen: ^2.0.2
Alternatively, your editor might support dart pub get
or flutter pub get
. Check the docs for your editor to learn more.
example/lib/main.dart
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// ignore_for_file: public_member_api_docs
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:battery/battery.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final Battery _battery = Battery();
BatteryState? _batteryState;
late StreamSubscription<BatteryState> _batteryStateSubscription;
@override
void initState() {
super.initState();
_batteryStateSubscription =
_battery.onBatteryStateChanged.listen((BatteryState state) {
setState(() {
_batteryState = state;
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: Text('$_batteryState'),
),
floatingActionButton: FloatingActionButton(
child: const Icon(Icons.battery_unknown),
onPressed: () async {
final int batteryLevel = await _battery.batteryLevel;
// ignore: unawaited_futures
showDialog<void>(
context: context,
builder: (_) => AlertDialog(
content: Text('Battery: $batteryLevel%'),
actions: <Widget>[
TextButton(
child: const Text('OK'),
onPressed: () {
Navigator.pop(context);
},
)
],
),
);
},
),
);
}
@override
void dispose() {
super.dispose();
if (_batteryStateSubscription != null) {
_batteryStateSubscription.cancel();
}
}
}
Author: flutter-tizen
Source code: https://github.com/flutter-tizen/plugins
License:
1656745200
High-level APIs for Amazon Web Services (AWS) in Dart
Generated sources are checked into the repository. To generate the sources, run the following command at the root of the generator
folder:
dart bin/generate.dart generate
All commands in generate.dart
has the --help
command available for more information on usage.
TODO
Run this command:
With Dart:
$ dart pub add aws_machinelearning_api
With Flutter:
$ flutter pub add aws_machinelearning_api
This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get
):
dependencies:
aws_machinelearning_api: ^1.2.0
Alternatively, your editor might support dart pub get
or flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:aws_machinelearning_api/machinelearning-2014-12-12.dart';
example/README.md
import 'package:aws_machinelearning_api/machinelearning-2014-12-12.dart';
void main() {
final service = MachineLearning(region: 'eu-west-1');
// See documentation on how to use MachineLearning
}
Author: agilord
Source code: https://github.com/agilord/aws_client
License:
1656743400
This package provides unofficial localization support for Central Kurdish Branch Sorani (Kurdish: سۆرانی ,Soranî).
import 'package:flutter_kurdish_localization/flutter_kurdish_localization.dart';
Add these two delegates to localizationsDelegates array
KurdishMaterialLocalizations.delegate For text and dates localization KurdishWidgetLocalizations.delegate For text and UI directionality
return MaterialApp(
localizationsDelegates: [
..
KurdishMaterialLocalizations.delegate,
KurdishWidgetLocalizations.delegate,
...
],
supportedLocales: [ Locale('ku') ]
ocale: Locale('ku')
)
Run this command:
With Flutter:
$ flutter pub add flutter_kurdish_localization
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
flutter_kurdish_localization: ^0.0.9
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:flutter_kurdish_localization/flutter_kurdish_localization.dart';
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_kurdish_localization/flutter_kurdish_localization.dart';
import 'package:flutter_kurdish_localization_example/util/constants.dart';
import 'package:flutter_kurdish_localization_example/localization/demo_localization.dart';
import 'package:flutter_kurdish_localization_example/router/custom_router.dart';
import 'package:flutter_kurdish_localization_example/router/route_constants.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'localization/language_constants.dart';
bool? landingScreen;
void main() async {
WidgetsFlutterBinding.ensureInitialized();
SharedPreferences _prefs = await SharedPreferences.getInstance();
landingScreen = (_prefs.getBool('landing') ?? false);
if (landingScreen == true) {
debugPrint("Landing : $landingScreen");
} else {
debugPrint("Landing : $landingScreen");
}
runApp(const MyApp());
}
const List<Locale> supportedLocales = [
Locale('en'),
Locale('ku'),
Locale('ar'),
];
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
static void setLocale(BuildContext context, Locale newLocale) {
_MyAppState state = context.findAncestorStateOfType<_MyAppState>()!;
state.setLocale(newLocale);
}
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
Locale? _locale;
setLocale(Locale locale) {
setState(() {
_locale = locale;
});
}
@override
void didChangeDependencies() {
getLocale().then((locale) {
setState(() {
_locale = locale;
});
});
super.didChangeDependencies();
}
@override
Widget build(BuildContext context) {
SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
systemNavigationBarColor: Colors.transparent, // navigation bar color
statusBarColor: primaryColor, // status bar color
statusBarIconBrightness: Brightness.light));
return MaterialApp(
debugShowCheckedModeBanner: false,
title: "Flutter Multi Localization Demo",
theme: ThemeData(primarySwatch: Colors.deepOrange),
locale: _locale,
supportedLocales: supportedLocales,
localizationsDelegates: const [
DemoLocalization.delegate,
KurdishMaterialLocalizations.delegate,
KurdishWidgetLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate
],
localeResolutionCallback: (locale, supportedLocales) {
for (var supportedLocale in supportedLocales) {
if (supportedLocale.languageCode == locale!.languageCode &&
supportedLocale.countryCode == locale.countryCode) {
return supportedLocale;
}
}
return supportedLocales.first;
},
onGenerateRoute: CustomRouter.generatedRoute,
initialRoute: landingScreen! ? homeRoute : landingRoute,
);
}
}
Author: Aminsamad
Source Code: https://github.com/aminsamad/flutter_kurdish_localization
License: GPL-3.0 license
1656740040
lifecycle_lite
通过简单几步,就可以让你使用whenShow()/whenHide()方法来监听页面的生命周期(退回到了该页面/打开其他页面挡着了该页面)了
这个库的实现很简单,你完全可以通过阅读代码后自己扩展实现。主要就是在MaterialApp
中添加一个对路由的监听,也就是MaterialApp#navigatorObservers
,之后通过对路由的监听来记录一个路由的栈。再在对应的State#initState
方法或StatelessWidget#createElement
中绑定两个生命周期方法的实现到最上层路由。 这样在每次监听到路由变化时,去调用顶层路由对应的绑定方法就OK了。 记得在路由被移出的时候对应的方法也要移出哦~
import 'package:lifecycle/lifecycle_mixin.dart';
1.首先在你的根布局MaterialApp
中绑定一个路由监听LifeNavigatorObserver()
.
MaterialApp(
navigatorObservers: [
LifeNavigatorObserver(),
],
);
2.在你需要添加监听的State中混入LifecycleMixin,并在initState中调用bindImplIntoRoute()方法。
2.StatefulWidget
的话,需要混入LifecycleStatefulMixin
,对应的StatelessWidget
,使用的是LifecycleStatelessMixin
3.实现whenShow()/whenHide()
方法,代码看起来是下面的样子。
///Statefule page
class WorksDetailState extends State with LifecycleStatefulMixin{
@override
whenShow() {
super.whenShow();
print("LifeNavigatorObserver---Show了");
}
@override
whenHide() {
super.whenHide();
print("LifeNavigatorObserver---Hide了");
}
}
///Stateless page
class StatelessPage extends StatelessWidget with LifecycleStatelessMixin{
@override
whenShow() {
super.whenShow();
print("LifeNavigatorObserver---Show了");
}
@override
whenHide() {
super.whenHide();
print("LifeNavigatorObserver---Hide了");
}
}
尽情享用吧 :P;
Run this command:
With Flutter:
$ flutter pub add lifecycle_lite
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
lifecycle_lite: ^0.0.3
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:lifecycle_lite/life_navigator_observer.dart';
import 'package:lifecycle_lite/lifecycle.dart';
import 'package:lifecycle_lite/lifecycle_export.dart';
import 'package:lifecycle_lite/lifecycle_mixin.dart';
import 'package:lifecycle_lite/utils.dart';
1656738420
A light-weight library for working with commits that follow the Conventional Commits specification.
git --no-pager log --no-decorate
command output.Commit
items has releasable commits following the convention.A simple usage example:
import 'package:conventional/conventional.dart';
main() {
final List<Commit> commits = Commit.parseCommits(testLog);
if (hasReleasableCommits(commits)) {
writeChangelog(
commits: commits,
changelogFilePath: 'CHANGELOG.md',
version: '1.2.0',
now: DateTime.now(),
);
}
}
Run this command:
With Dart:
$ dart pub add conventional
With Flutter:
$ flutter pub add conventional
This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get
):
dependencies:
conventional: ^0.3.0
Alternatively, your editor might support dart pub get
or flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:conventional/conventional.dart';
example/conventional_example.dart
import 'package:conventional/conventional.dart';
// ignore_for_file: avoid_print
const testLog = '''
commit fc9d8117b1074c3c965c5c1ccf845d784c026ac7
Author: Jane Doe <jane.doe@example.com>
Date: Mon Feb 8 15:26:49 2021 +0800
ci: fix release workflow
commit cf6080079cd96cb4ccc2edca2ba9cacbcfd64704
Author: Jane Doe <jane.doe@example.com>
Date: Sun Feb 7 12:58:06 2021 +0800
ci: try fixing problem with release
commit 925fcd38fe8bd2653ea70d67155b8e31082cf4b2
Author: Jane Doe <jane.doe@example.com>
Date: Fri Feb 5 16:24:38 2021 +0800
chore: fix analysis errors
- disabled checking for non null-safe libraries (temporary)
- annotation for DatabaseLogWrapper
commit 43cf9b78f77a0180ad408cb87e8a774a530619ce
Author: Jane Doe <jane.doe@example.com>
Date: Fri Feb 5 11:56:26 2021 +0800
feat: null-safety and piechart cache
BREAKING CHANGE: uses null-safety
commit e86efaced15f875ae9e11fd0d79b72d85578f79a
Author: Jane Doe <jane.doe@example.com>
Date: Wed Jan 27 18:20:41 2021 +0800
chore: wip to null-safety
commit 18bf98f5cddfecc69b26285b6edca063f1a8b1ec
Merge: b457270 dc60e12
Author: Jane Doe <jane.doe@example.com>
Date: Sat Dec 19 13:28:47 2020 +0800
ci: Merge pull request #3 from asartalo/semantic-release
ci: fixing semantic-release config
''';
void main() {
// Parse commits
final List<Commit> commits = Commit.parseCommits(testLog);
final firstCommit = commits.first;
print(firstCommit.author.name); // "Jane Doe"
print(firstCommit.author.email); // "jane.doe@example.com"
print(firstCommit.breaking); // false
print(firstCommit.type); // "ci"
print(firstCommit.description); // "fix release workflow"
// Check if we have releasable commits
final shouldRelease = hasReleasableCommits(commits);
print(shouldRelease); // true
if (shouldRelease) {
// Write to a changelog file
writeChangelog(
commits: commits,
changelogFilePath: 'CHANGELOG.md',
version: '1.2.0',
now: DateTime.now(),
);
}
}
Please file feature requests and bugs at the issue tracker. PR's are welcome and appreciated!
Author: Asartalo
Source Code: https://github.com/asartalo/conventional
License: MIT license
1656735373
Helpful Ruby-on-Rails style helpers to make the code readable.
Run this command:
With Dart:
$ dart pub add active_dart
With Flutter:
$ flutter pub add active_dart
This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get
):
dependencies:
active_dart: ^1.1.1
Alternatively, your editor might support dart pub get
or flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:active_dart/active_dart.dart';
Author: Robturtle
Source Code: https://github.com/robturtle/active_dart
License: MIT license
1656734400
MonoRepo for Dart/Flutter Packages:
These are the available plugins in this repository.
Plugin | Pub | Points | Popularity | Likes |
---|---|---|---|---|
kit | ||||
better_ui | ||||
web3 | ||||
crypto_wallet | ||||
wallet_connect |
make install
make init
task create-pkg
task publish-web3
better_ui: ^0.0.1
# used by local path:
better_ui:
path: /your-local-path-to-here/better-dart/pkg/packages/better_ui # local path
kit: ^0.0.1
wallet-connect: wallet connect for flutter App
how to use:
# used by git repo:
wallet_connect:
git:
url: https://github.com/better-dart/pkg.git # repo http clone url
ref: "babee6d" # git tag or git commit-id
path: packages/wallet_connect # pkg path
# used by git repo:
web3:
git:
url: https://github.com/better-dart/pkg.git # repo http clone url
ref: "babee6d" # git tag or git commit-id
path: packages/web3 # pkg path
Run this command:
With Flutter:
$ flutter pub add better_app
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
better_app: ^0.0.1
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:better_app/better_app.dart';
Author: better-dart
Source code: https://github.com/better-dart/pkg
License: MIT license
1656734400
Graph algorithms which do not specify a particular approach for representing a Graph.
Functions in this package will take arguments that provide the mechanism for traversing the graph. For example two common approaches for representing a graph:
class Graph {
Map<Node, List<Node>> nodes;
}
class Node {
// Interesting data
}
class Graph {
Node root;
}
class Node {
List<Node> edges;
// Interesting data
}
Any representation can be adapted to the needs of the algorithm:
T
does not correctly or efficiently implement hashCode
or ==
, you may provide optional equals
and/or hashCode
functions are parameters.edges
function which provides the reachable nodes.(node) => graph[node]
(node) => node.edges
Graphs which are resolved asynchronously will have similar functions which return FutureOr
.
Run this command:
With Dart:
$ dart pub add graphs
With Flutter:
$ flutter pub add graphs
This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get
):
dependencies:
graphs: ^2.1.0
Alternatively, your editor might support dart pub get
or flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:graphs/graphs.dart';
example/example.dart
// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:graphs/graphs.dart';
/// A representation of a directed graph.
///
/// Data is stored on the [Node] class.
class Graph {
final Map<Node, List<Node>> nodes;
Graph(this.nodes);
}
class Node {
final String id;
final int data;
Node(this.id, this.data);
@override
bool operator ==(Object other) => other is Node && other.id == id;
@override
int get hashCode => id.hashCode;
@override
String toString() => '<$id -> $data>';
}
void main() {
var nodeA = Node('A', 1);
var nodeB = Node('B', 2);
var nodeC = Node('C', 3);
var nodeD = Node('D', 4);
var graph = Graph({
nodeA: [nodeB, nodeC],
nodeB: [nodeC, nodeD],
nodeC: [nodeB, nodeD]
});
var components = stronglyConnectedComponents<Node>(
graph.nodes.keys, (node) => graph.nodes[node] ?? []);
print(components);
}
Author: dart-lang
Source code: https://github.com/dart-lang/graphs
License: BSD-3-Clause license
#flutter #dart
1656730800
Flutter/Dart lints configuration based on software engineering industry standards (ISO/IEC, NIST) and best practices.
Usage
Add dependency in your pubspec.yaml:
dev_dependencies:
solid_lints: <INSERT LATEST VERSION>
And then include solid_lints
into your project top-level analysis_options.yaml
:
include: package:solid_lints/analysis_options.yaml
Also you can use a specialized rule set designed for Dart tests. Add an analysis_options.yaml
file under the test/
directory, and include the ruleset:
include: package:solid_lints/analysis_options_test.yaml
Then you can see suggestions in your IDE or you can run checks manually:
dart analyze;
dart run dart_code_metrics:metrics analyze lib test;
dart run dart_code_metrics:metrics check-unused-files lib test;
dart run dart_code_metrics:metrics check-unused-l10n lib test;
Beware that some of the dart_code_metrics
checks are not displayed in IDE so running checks manually or in your actions (CI) is essential.
Learn more: https://github.com/dart-code-checker/dart-code-metrics#cli
Badge
To indicate that your project is using Solid Lints, you can use the following badge:
[](https://pub.dev/packages/solid_lints)
Run this command:
With Dart:
$ dart pub add solid_lints
With Flutter:
$ flutter pub add solid_lints
This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get
):
dependencies:
solid_lints: ^0.0.11
Alternatively, your editor might support dart pub get
or flutter pub get
. Check the docs for your editor to learn more.
example/lib/solid_lints_example.dart
void main() {
sum(1, 1);
}
/// Sum of two numbers. Standard dart overflow rules apply.
int sum(int p1, int p2) => p1 + p2;
Author: Solid-software
Source Code: https://github.com/solid-software/solid_lints
License: MIT license