From bd6ef9eb8a9257c334ad5793b6deb642ebae3f7b Mon Sep 17 00:00:00 2001 From: mtrezza Date: Thu, 25 May 2023 19:16:53 +0000 Subject: [PATCH 1/5] deploy: 40ae17e733c0485168a06e2311917ca9ae338fc8 --- .nojekyll | 0 flutter/flutter/__404error.html | 111 + flutter/flutter/categories.json | 1 + .../ChildBuilder.html | 292 + .../CoreStoreSembastImp-class.html | 629 ++ .../CoreStoreSembastImp/clear.html | 169 + .../CoreStoreSembastImp/containsKey.html | 167 + .../CoreStoreSembastImp/get.html | 167 + .../CoreStoreSembastImp/getBool.html | 167 + .../CoreStoreSembastImp/getDouble.html | 167 + .../CoreStoreSembastImp/getInstance.html | 169 + .../CoreStoreSembastImp/getInt.html | 167 + .../CoreStoreSembastImp/getString.html | 167 + .../CoreStoreSembastImp/getStringList.html | 168 + .../CoreStoreSembastImp/remove.html | 167 + .../CoreStoreSembastImp/setBool.html | 169 + .../CoreStoreSembastImp/setDouble.html | 169 + .../CoreStoreSembastImp/setInt.html | 168 + .../CoreStoreSembastImp/setString.html | 169 + .../CoreStoreSembastImp/setStringList.html | 169 + .../CoreStoreSharedPrefsImp-class.html | 629 ++ .../CoreStoreSharedPrefsImp/clear.html | 168 + .../CoreStoreSharedPrefsImp/containsKey.html | 169 + .../CoreStoreSharedPrefsImp/get.html | 169 + .../CoreStoreSharedPrefsImp/getBool.html | 169 + .../CoreStoreSharedPrefsImp/getDouble.html | 169 + .../CoreStoreSharedPrefsImp/getInstance.html | 169 + .../CoreStoreSharedPrefsImp/getInt.html | 169 + .../CoreStoreSharedPrefsImp/getString.html | 169 + .../getStringList.html | 169 + .../CoreStoreSharedPrefsImp/remove.html | 169 + .../CoreStoreSharedPrefsImp/setBool.html | 170 + .../CoreStoreSharedPrefsImp/setDouble.html | 170 + .../CoreStoreSharedPrefsImp/setInt.html | 170 + .../CoreStoreSharedPrefsImp/setString.html | 170 + .../setStringList.html | 170 + .../flutter_parse_sdk_flutter/DataGetter.html | 291 + .../Parse-class.html | 672 ++ .../Parse/Parse.html | 154 + .../Parse/checkConnectivity.html | 179 + .../Parse/connectivityStream.html | 183 + .../Parse/didChangeAppLifecycleState.html | 178 + .../Parse/initialize.html | 262 + .../ParseLiveGridWidget-class.html | 842 +++ .../ParseLiveGridWidget.html | 222 + .../animationController.html | 176 + .../ParseLiveGridWidget/childAspectRatio.html | 176 + .../ParseLiveGridWidget/childBuilder.html | 176 + .../ParseLiveGridWidget/createState.html | 200 + .../ParseLiveGridWidget/crossAxisCount.html | 176 + .../ParseLiveGridWidget/crossAxisSpacing.html | 176 + .../defaultChildBuilder.html | 198 + .../ParseLiveGridWidget/duration.html | 176 + .../gridLoadingElement.html | 176 + .../ParseLiveGridWidget/lazyLoading.html | 176 + .../listenOnAllSubItems.html | 176 + .../listeningIncludes.html | 176 + .../ParseLiveGridWidget/mainAxisSpacing.html | 176 + .../ParseLiveGridWidget/padding.html | 176 + .../ParseLiveGridWidget/preloadedColumns.html | 176 + .../ParseLiveGridWidget/primary.html | 176 + .../ParseLiveGridWidget/query.html | 176 + .../queryEmptyElement.html | 176 + .../removedItemBuilder.html | 176 + .../ParseLiveGridWidget/reverse.html | 176 + .../ParseLiveGridWidget/scrollController.html | 176 + .../ParseLiveGridWidget/scrollDirection.html | 176 + .../ParseLiveGridWidget/scrollPhysics.html | 176 + .../ParseLiveGridWidget/shrinkWrap.html | 176 + .../ParseLiveListElementWidget-class.html | 630 ++ .../ParseLiveListElementWidget.html | 172 + .../childBuilder.html | 158 + .../createState.html | 184 + .../ParseLiveListElementWidget/duration.html | 158 + .../loadedData.html | 158 + .../preLoadedData.html | 158 + .../sizeFactor.html | 158 + .../ParseLiveListElementWidget/stream.html | 158 + .../ParseLiveListWidget-class.html | 782 +++ .../ParseLiveListWidget.html | 207 + .../ParseLiveListWidget/childBuilder.html | 171 + .../ParseLiveListWidget/createState.html | 195 + .../defaultChildBuilder.html | 194 + .../ParseLiveListWidget/duration.html | 171 + .../ParseLiveListWidget/lazyLoading.html | 171 + .../listLoadingElement.html | 171 + .../listenOnAllSubItems.html | 171 + .../listeningIncludes.html | 171 + .../ParseLiveListWidget/padding.html | 171 + .../ParseLiveListWidget/preloadedColumns.html | 171 + .../ParseLiveListWidget/primary.html | 171 + .../ParseLiveListWidget/query.html | 171 + .../queryEmptyElement.html | 171 + .../removedItemBuilder.html | 171 + .../ParseLiveListWidget/reverse.html | 171 + .../ParseLiveListWidget/scrollController.html | 171 + .../ParseLiveListWidget/scrollDirection.html | 171 + .../ParseLiveListWidget/scrollPhysics.html | 171 + .../ParseLiveListWidget/shrinkWrap.html | 171 + .../ParseNotification-class.html | 453 ++ .../ParseNotification/ParseNotification.html | 148 + .../ParseNotification/instance.html | 147 + .../keyNotificationChannelName.html | 147 + .../ParseNotification/showNotification.html | 161 + .../ParsePush-class.html | 521 ++ .../ParsePush/ParsePush.html | 153 + .../ParsePush/getSubscribedChannels.html | 163 + .../ParsePush/initialize.html | 178 + .../ParsePush/instance.html | 152 + .../ParsePush/keyPushType.html | 152 + .../ParsePush/keyType.html | 152 + .../ParsePush/onMessage.html | 171 + .../ParsePush/subscribeToChannel.html | 164 + .../ParsePush/unsubscribeFromChannel.html | 164 + .../StreamGetter.html | 291 + .../dbDirectory.html | 299 + .../flutter_parse_sdk_flutter-library.html | 2228 +++++++ flutter/flutter/index.html | 993 +++ flutter/flutter/index.json | 1 + flutter/flutter/search.html | 101 + flutter/flutter/static-assets/docs.dart.js | 5922 +++++++++++++++++ .../flutter/static-assets/docs.dart.js.map | 16 + flutter/flutter/static-assets/favicon.png | Bin 0 -> 1767 bytes flutter/flutter/static-assets/github.css | 99 + .../flutter/static-assets/highlight.pack.js | 775 +++ flutter/flutter/static-assets/play_button.svg | 1 + flutter/flutter/static-assets/readme.md | 22 + flutter/flutter/static-assets/search.svg | 1 + flutter/flutter/static-assets/styles.css | 1200 ++++ 129 files changed, 35167 insertions(+) create mode 100644 .nojekyll create mode 100644 flutter/flutter/__404error.html create mode 100644 flutter/flutter/categories.json create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ChildBuilder.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/clear.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/containsKey.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/get.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getBool.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getDouble.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInstance.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInt.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getString.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getStringList.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/remove.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setBool.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setDouble.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setInt.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setString.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setStringList.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/clear.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/containsKey.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/get.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getBool.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getDouble.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInstance.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInt.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getString.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getStringList.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/remove.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setBool.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setDouble.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setInt.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setString.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setStringList.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/DataGetter.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/Parse-class.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/Parse/Parse.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/Parse/checkConnectivity.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/Parse/connectivityStream.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/Parse/didChangeAppLifecycleState.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/Parse/initialize.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/ParseLiveGridWidget.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/animationController.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childAspectRatio.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childBuilder.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/createState.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisCount.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisSpacing.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/defaultChildBuilder.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/duration.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/gridLoadingElement.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/lazyLoading.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listenOnAllSubItems.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listeningIncludes.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/mainAxisSpacing.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/padding.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/preloadedColumns.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/primary.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/query.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/queryEmptyElement.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/removedItemBuilder.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/reverse.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollController.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollDirection.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollPhysics.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/shrinkWrap.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/ParseLiveListElementWidget.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/childBuilder.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/createState.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/duration.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/loadedData.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/preLoadedData.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/sizeFactor.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/stream.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget-class.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/ParseLiveListWidget.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/childBuilder.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/createState.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/defaultChildBuilder.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/duration.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/lazyLoading.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listLoadingElement.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listenOnAllSubItems.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listeningIncludes.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/padding.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/preloadedColumns.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/primary.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/query.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/queryEmptyElement.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/removedItemBuilder.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/reverse.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollController.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollDirection.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollPhysics.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/shrinkWrap.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseNotification-class.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/ParseNotification.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/instance.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/keyNotificationChannelName.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/showNotification.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParsePush-class.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParsePush/ParsePush.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParsePush/getSubscribedChannels.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParsePush/initialize.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParsePush/instance.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParsePush/keyPushType.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParsePush/keyType.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParsePush/onMessage.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParsePush/subscribeToChannel.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/ParsePush/unsubscribeFromChannel.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/StreamGetter.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/dbDirectory.html create mode 100644 flutter/flutter/flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html create mode 100644 flutter/flutter/index.html create mode 100644 flutter/flutter/index.json create mode 100644 flutter/flutter/search.html create mode 100644 flutter/flutter/static-assets/docs.dart.js create mode 100644 flutter/flutter/static-assets/docs.dart.js.map create mode 100644 flutter/flutter/static-assets/favicon.png create mode 100644 flutter/flutter/static-assets/github.css create mode 100644 flutter/flutter/static-assets/highlight.pack.js create mode 100644 flutter/flutter/static-assets/play_button.svg create mode 100644 flutter/flutter/static-assets/readme.md create mode 100644 flutter/flutter/static-assets/search.svg create mode 100644 flutter/flutter/static-assets/styles.css diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/flutter/flutter/__404error.html b/flutter/flutter/__404error.html new file mode 100644 index 000000000..f6fa0fcec --- /dev/null +++ b/flutter/flutter/__404error.html @@ -0,0 +1,111 @@ + + + + + + + + + parse_server_sdk_flutter - Dart API docs + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
parse_server_sdk_flutter
+ +
+ +
+
+
+ +
+

404: Something's gone wrong :-(

+ +
+

You've tried to visit a page that doesn't exist. Luckily this site + has other pages.

+

If you were looking for something specific, try searching: +

+

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/categories.json b/flutter/flutter/categories.json new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/flutter/flutter/categories.json @@ -0,0 +1 @@ +[] diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ChildBuilder.html b/flutter/flutter/flutter_parse_sdk_flutter/ChildBuilder.html new file mode 100644 index 000000000..3a62e47e1 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ChildBuilder.html @@ -0,0 +1,292 @@ + + + + + + + + ChildBuilder typedef - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
ChildBuilder
+ +
+ +
+
+
+ +
+
+

ChildBuilder<T extends ParseObject> typedef + +

+ +
+ ChildBuilder<T extends ParseObject> = + Widget Function(BuildContext context, ParseLiveListElementSnapshot<T> snapshot) + +
+ + + + +
+

Implementation

+
typedef ChildBuilder<T extends sdk.ParseObject> = Widget Function(
+    BuildContext context, sdk.ParseLiveListElementSnapshot<T> snapshot);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html new file mode 100644 index 000000000..d859f1be2 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html @@ -0,0 +1,629 @@ + + + + + + + + CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
CoreStoreSembastImp
+ +
+ +
+
+
+ +
+
+

CoreStoreSembastImp class + +

+ + + + +
+
+ + + +
Implemented types
+
+ +
+ + + + + + + +
+
+ + + +
+

Properties

+ +
+
+ hashCode + int + +
+
+ The hash code for this object. +
read-onlyinherited
+ +
+ +
+ runtimeType + Type + +
+
+ A representation of the runtime type of the object. +
read-onlyinherited
+ +
+ +
+
+ + +
+

Methods

+
+
+ clear() + Future<bool> + + + +
+
+ +
override
+ +
+ +
+ containsKey(String key) + Future<bool> + + + +
+
+ +
override
+ +
+ +
+ get(String key) + Future + + + +
+
+ +
override
+ +
+ +
+ getBool(String key) + Future<bool?> + + + +
+
+ +
override
+ +
+ +
+ getDouble(String key) + Future<double?> + + + +
+
+ +
override
+ +
+ +
+ getInt(String key) + Future<int?> + + + +
+
+ +
override
+ +
+ +
+ getString(String key) + Future<String?> + + + +
+
+ +
override
+ +
+ +
+ getStringList(String key) + Future<List<String>?> + + + +
+
+ +
override
+ +
+ +
+ noSuchMethod(Invocation invocation) + → dynamic + + + +
+
+ Invoked when a nonexistent method or property is accessed. +
inherited
+ +
+ +
+ remove(String key) + Future<void> + + + +
+
+ +
override
+ +
+ +
+ setBool(String key, bool value) + Future<void> + + + +
+
+ +
override
+ +
+ +
+ setDouble(String key, double value) + Future<void> + + + +
+
+ +
override
+ +
+ +
+ setInt(String key, int value) + Future<void> + + + +
+
+ +
override
+ +
+ +
+ setString(String key, String value) + Future<void> + + + +
+
+ +
override
+ +
+ +
+ setStringList(String key, List<String> values) + Future<void> + + + +
+
+ +
override
+ +
+ +
+ toString() + String + + + +
+
+ A string representation of this object. +
inherited
+ +
+ +
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + + + +
+
+ The equality operator. +
inherited
+ +
+ +
+
+ + +
+

Static Methods

+
+
+ getInstance({DatabaseFactory? factory, String? password}) + Future<CoreStoreSembastImp> + + + +
+
+ +
override
+ +
+ +
+
+ + + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/clear.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/clear.html new file mode 100644 index 000000000..aed719c4e --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/clear.html @@ -0,0 +1,169 @@ + + + + + + + + clear method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
clear
+ +
+ +
+
+
+ +
+
+

clear method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<bool> +clear() + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<bool> clear() async {
+  await _sembastImp!.clear();
+  return true;
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/containsKey.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/containsKey.html new file mode 100644 index 000000000..3b63b83fb --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/containsKey.html @@ -0,0 +1,167 @@ + + + + + + + + containsKey method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
containsKey
+ +
+ +
+
+
+ +
+
+

containsKey method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<bool> +containsKey(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<bool> containsKey(String key) => _sembastImp!.containsKey(key);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/get.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/get.html new file mode 100644 index 000000000..522e42697 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/get.html @@ -0,0 +1,167 @@ + + + + + + + + get method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
get
+ +
+ +
+
+
+ +
+
+

get method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future +get(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<dynamic> get(String key) => _sembastImp!.get(key);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getBool.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getBool.html new file mode 100644 index 000000000..49b93cd3e --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getBool.html @@ -0,0 +1,167 @@ + + + + + + + + getBool method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
getBool
+ +
+ +
+
+
+ +
+
+

getBool method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<bool?> +getBool(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<bool?> getBool(String key) => _sembastImp!.getBool(key);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getDouble.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getDouble.html new file mode 100644 index 000000000..d79e47eba --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getDouble.html @@ -0,0 +1,167 @@ + + + + + + + + getDouble method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
getDouble
+ +
+ +
+
+
+ +
+
+

getDouble method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<double?> +getDouble(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<double?> getDouble(String key) => _sembastImp!.getDouble(key);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInstance.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInstance.html new file mode 100644 index 000000000..7f20b3eed --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInstance.html @@ -0,0 +1,169 @@ + + + + + + + + getInstance method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
getInstance
+ +
+ +
+
+
+ +
+
+

getInstance static method +

+ +
+ + +Future<CoreStoreSembastImp> +getInstance(
  1. {DatabaseFactory? factory,
  2. +
  3. String? password}
  4. +
) + +
override
+ +
+ + + + +
+

Implementation

+
static Future<CoreStoreSembastImp> getInstance(
+    {DatabaseFactory? factory, String? password}) async {
+  _sembastImp ??= await sdk.CoreStoreSembastImp.getInstance(
+      await dbDirectory(),
+      factory: factory,
+      password: password);
+  return CoreStoreSembastImp._();
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInt.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInt.html new file mode 100644 index 000000000..1b573f21b --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInt.html @@ -0,0 +1,167 @@ + + + + + + + + getInt method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
getInt
+ +
+ +
+
+
+ +
+
+

getInt method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<int?> +getInt(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<int?> getInt(String key) => _sembastImp!.getInt(key);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getString.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getString.html new file mode 100644 index 000000000..af75efc55 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getString.html @@ -0,0 +1,167 @@ + + + + + + + + getString method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
getString
+ +
+ +
+
+
+ +
+
+

getString method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<String?> +getString(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<String?> getString(String key) => _sembastImp!.getString(key);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getStringList.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getStringList.html new file mode 100644 index 000000000..f855b6e08 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getStringList.html @@ -0,0 +1,168 @@ + + + + + + + + getStringList method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
getStringList
+ +
+ +
+
+
+ +
+
+

getStringList method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<List<String>?> +getStringList(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<List<String>?> getStringList(String key) =>
+    _sembastImp!.getStringList(key);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/remove.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/remove.html new file mode 100644 index 000000000..5c0cf8011 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/remove.html @@ -0,0 +1,167 @@ + + + + + + + + remove method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
remove
+ +
+ +
+
+
+ +
+
+

remove method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<void> +remove(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<void> remove(String key) => _sembastImp!.remove(key);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setBool.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setBool.html new file mode 100644 index 000000000..910a69a74 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setBool.html @@ -0,0 +1,169 @@ + + + + + + + + setBool method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
setBool
+ +
+ +
+
+
+ +
+
+

setBool method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<void> +setBool(
  1. String key,
  2. +
  3. bool value
  4. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<void> setBool(String key, bool value) =>
+    _sembastImp!.setBool(key, value);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setDouble.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setDouble.html new file mode 100644 index 000000000..3ad11d185 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setDouble.html @@ -0,0 +1,169 @@ + + + + + + + + setDouble method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
setDouble
+ +
+ +
+
+
+ +
+
+

setDouble method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<void> +setDouble(
  1. String key,
  2. +
  3. double value
  4. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<void> setDouble(String key, double value) =>
+    _sembastImp!.setDouble(key, value);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setInt.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setInt.html new file mode 100644 index 000000000..0c3b56d44 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setInt.html @@ -0,0 +1,168 @@ + + + + + + + + setInt method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
setInt
+ +
+ +
+
+
+ +
+
+

setInt method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<void> +setInt(
  1. String key,
  2. +
  3. int value
  4. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<void> setInt(String key, int value) => _sembastImp!.setInt(key, value);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setString.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setString.html new file mode 100644 index 000000000..236918e6c --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setString.html @@ -0,0 +1,169 @@ + + + + + + + + setString method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
setString
+ +
+ +
+
+
+ +
+
+

setString method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<void> +setString(
  1. String key,
  2. +
  3. String value
  4. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<void> setString(String key, String value) =>
+    _sembastImp!.setString(key, value);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setStringList.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setStringList.html new file mode 100644 index 000000000..fee50f443 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setStringList.html @@ -0,0 +1,169 @@ + + + + + + + + setStringList method - CoreStoreSembastImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
setStringList
+ +
+ +
+
+
+ +
+
+

setStringList method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<void> +setStringList(
  1. String key,
  2. +
  3. List<String> values
  4. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<void> setStringList(String key, List<String> values) =>
+    _sembastImp!.setStringList(key, values);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html new file mode 100644 index 000000000..a804071d7 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html @@ -0,0 +1,629 @@ + + + + + + + + CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
CoreStoreSharedPrefsImp
+ +
+ +
+
+
+ +
+
+

CoreStoreSharedPrefsImp class + +

+ + + + +
+
+ + + +
Implemented types
+
+ +
+ + + + + + + +
+
+ + + +
+

Properties

+ +
+
+ hashCode + int + +
+
+ The hash code for this object. +
read-onlyinherited
+ +
+ +
+ runtimeType + Type + +
+
+ A representation of the runtime type of the object. +
read-onlyinherited
+ +
+ +
+
+ + +
+

Methods

+
+
+ clear() + Future<bool> + + + +
+
+ +
override
+ +
+ +
+ containsKey(String key) + Future<bool> + + + +
+
+ +
override
+ +
+ +
+ get(String key) + Future + + + +
+
+ +
override
+ +
+ +
+ getBool(String key) + Future<bool?> + + + +
+
+ +
override
+ +
+ +
+ getDouble(String key) + Future<double?> + + + +
+
+ +
override
+ +
+ +
+ getInt(String key) + Future<int?> + + + +
+
+ +
override
+ +
+ +
+ getString(String key) + Future<String?> + + + +
+
+ +
override
+ +
+ +
+ getStringList(String key) + Future<List<String>?> + + + +
+
+ +
override
+ +
+ +
+ noSuchMethod(Invocation invocation) + → dynamic + + + +
+
+ Invoked when a nonexistent method or property is accessed. +
inherited
+ +
+ +
+ remove(String key) + Future<bool> + + + +
+
+ +
override
+ +
+ +
+ setBool(String key, bool value) + Future<void> + + + +
+
+ +
override
+ +
+ +
+ setDouble(String key, double value) + Future<void> + + + +
+
+ +
override
+ +
+ +
+ setInt(String key, int value) + Future<void> + + + +
+
+ +
override
+ +
+ +
+ setString(String key, String value) + Future<void> + + + +
+
+ +
override
+ +
+ +
+ setStringList(String key, List<String> values) + Future<void> + + + +
+
+ +
override
+ +
+ +
+ toString() + String + + + +
+
+ A string representation of this object. +
inherited
+ +
+ +
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + + + +
+
+ The equality operator. +
inherited
+ +
+ +
+
+ + +
+

Static Methods

+
+
+ getInstance({SharedPreferences? store}) + Future<CoreStoreSharedPrefsImp> + + + +
+
+ + + +
+ +
+
+ + + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/clear.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/clear.html new file mode 100644 index 000000000..b3634fd70 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/clear.html @@ -0,0 +1,168 @@ + + + + + + + + clear method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
clear
+ +
+ +
+
+
+ +
+
+

clear method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<bool> +clear() + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<bool> clear() {
+  return _store.clear();
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/containsKey.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/containsKey.html new file mode 100644 index 000000000..3618339fb --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/containsKey.html @@ -0,0 +1,169 @@ + + + + + + + + containsKey method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
containsKey
+ +
+ +
+
+
+ +
+
+

containsKey method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<bool> +containsKey(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<bool> containsKey(String key) async {
+  return _store.containsKey(key);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/get.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/get.html new file mode 100644 index 000000000..18355b419 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/get.html @@ -0,0 +1,169 @@ + + + + + + + + get method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
get
+ +
+ +
+
+
+ +
+
+

get method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future +get(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<dynamic> get(String key) async {
+  return _store.get(key);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getBool.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getBool.html new file mode 100644 index 000000000..953b01bec --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getBool.html @@ -0,0 +1,169 @@ + + + + + + + + getBool method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
getBool
+ +
+ +
+
+
+ +
+
+

getBool method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<bool?> +getBool(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<bool?> getBool(String key) async {
+  return _store.getBool(key);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getDouble.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getDouble.html new file mode 100644 index 000000000..9da213729 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getDouble.html @@ -0,0 +1,169 @@ + + + + + + + + getDouble method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
getDouble
+ +
+ +
+
+
+ +
+
+

getDouble method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<double?> +getDouble(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<double?> getDouble(String key) async {
+  return _store.getDouble(key);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInstance.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInstance.html new file mode 100644 index 000000000..01c0d4b8a --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInstance.html @@ -0,0 +1,169 @@ + + + + + + + + getInstance method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
getInstance
+ +
+ +
+
+
+ +
+
+

getInstance static method +

+ +
+ + +Future<CoreStoreSharedPrefsImp> +getInstance(
  1. {SharedPreferences? store}
  2. +
) + + + +
+ + + + +
+

Implementation

+
static Future<CoreStoreSharedPrefsImp> getInstance(
+    {SharedPreferences? store}) async {
+  if (_instance == null) {
+    store ??= await SharedPreferences.getInstance();
+    _instance = CoreStoreSharedPrefsImp._internal(store);
+  }
+
+  return _instance!;
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInt.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInt.html new file mode 100644 index 000000000..d748bdac0 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInt.html @@ -0,0 +1,169 @@ + + + + + + + + getInt method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
getInt
+ +
+ +
+
+
+ +
+
+

getInt method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<int?> +getInt(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<int?> getInt(String key) async {
+  return _store.getInt(key);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getString.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getString.html new file mode 100644 index 000000000..a9da48391 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getString.html @@ -0,0 +1,169 @@ + + + + + + + + getString method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
getString
+ +
+ +
+
+
+ +
+
+

getString method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<String?> +getString(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<String?> getString(String key) async {
+  return _store.getString(key);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getStringList.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getStringList.html new file mode 100644 index 000000000..a449aeffa --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getStringList.html @@ -0,0 +1,169 @@ + + + + + + + + getStringList method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
getStringList
+ +
+ +
+
+
+ +
+
+

getStringList method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<List<String>?> +getStringList(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<List<String>?> getStringList(String key) async {
+  return _store.getStringList(key);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/remove.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/remove.html new file mode 100644 index 000000000..d68c904fe --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/remove.html @@ -0,0 +1,169 @@ + + + + + + + + remove method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
remove
+ +
+ +
+
+
+ +
+
+

remove method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<bool> +remove(
  1. String key
  2. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<bool> remove(String key) async {
+  return _store.remove(key);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setBool.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setBool.html new file mode 100644 index 000000000..95a09bab9 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setBool.html @@ -0,0 +1,170 @@ + + + + + + + + setBool method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
setBool
+ +
+ +
+
+
+ +
+
+

setBool method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<void> +setBool(
  1. String key,
  2. +
  3. bool value
  4. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<void> setBool(String key, bool value) {
+  return _store.setBool(key, value);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setDouble.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setDouble.html new file mode 100644 index 000000000..d219a72f8 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setDouble.html @@ -0,0 +1,170 @@ + + + + + + + + setDouble method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
setDouble
+ +
+ +
+
+
+ +
+
+

setDouble method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<void> +setDouble(
  1. String key,
  2. +
  3. double value
  4. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<void> setDouble(String key, double value) {
+  return _store.setDouble(key, value);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setInt.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setInt.html new file mode 100644 index 000000000..caa71e7cc --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setInt.html @@ -0,0 +1,170 @@ + + + + + + + + setInt method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
setInt
+ +
+ +
+
+
+ +
+
+

setInt method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<void> +setInt(
  1. String key,
  2. +
  3. int value
  4. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<void> setInt(String key, int value) {
+  return _store.setInt(key, value);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setString.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setString.html new file mode 100644 index 000000000..130fad935 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setString.html @@ -0,0 +1,170 @@ + + + + + + + + setString method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
setString
+ +
+ +
+
+
+ +
+
+

setString method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<void> +setString(
  1. String key,
  2. +
  3. String value
  4. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<void> setString(String key, String value) {
+  return _store.setString(key, value);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setStringList.html b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setStringList.html new file mode 100644 index 000000000..228a2e80a --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setStringList.html @@ -0,0 +1,170 @@ + + + + + + + + setStringList method - CoreStoreSharedPrefsImp class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
setStringList
+ +
+ +
+
+
+ +
+
+

setStringList method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<void> +setStringList(
  1. String key,
  2. +
  3. List<String> values
  4. +
) + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<void> setStringList(String key, List<String> values) {
+  return _store.setStringList(key, values);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/DataGetter.html b/flutter/flutter/flutter_parse_sdk_flutter/DataGetter.html new file mode 100644 index 000000000..fab0e3038 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/DataGetter.html @@ -0,0 +1,291 @@ + + + + + + + + DataGetter typedef - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
DataGetter
+ +
+ +
+
+
+ +
+
+

DataGetter<T extends ParseObject> typedef + +

+ +
+ DataGetter<T extends ParseObject> = + T? Function() + +
+ + + + +
+

Implementation

+
typedef DataGetter<T extends sdk.ParseObject> = T? Function();
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/Parse-class.html b/flutter/flutter/flutter_parse_sdk_flutter/Parse-class.html new file mode 100644 index 000000000..3823d439b --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/Parse-class.html @@ -0,0 +1,672 @@ + + + + + + + + Parse class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
Parse
+ +
+ +
+
+
+ +
+
+

Parse class + +

+ + + + +
+
+ +
Inheritance
+
+ +
+ + +
Implemented types
+
+ +
+ +
Mixed in types
+
+ +
+ + + + + + +
+
+ + +
+

Constructors

+ +
+
+ Parse() +
+
+ +
+
+
+ +
+

Properties

+ +
+
+ connectivityStream + Stream<ParseConnectivityResult> + +
+
+ +
read-onlyoverride
+ +
+ +
+ hashCode + int + +
+
+ The hash code for this object. +
read-onlyinherited
+ +
+ +
+ runtimeType + Type + +
+
+ A representation of the runtime type of the object. +
read-onlyinherited
+ +
+ +
+
+ + +
+

Methods

+
+
+ checkConnectivity() + Future<ParseConnectivityResult> + + + +
+
+ +
override
+ +
+ +
+ didChangeAccessibilityFeatures() + → void + + + +
+
+ Called when the system changes the set of currently active accessibility +features. +
inherited
+ +
+ +
+ didChangeAppLifecycleState(AppLifecycleState state) + → void + + + +
+
+ Called when the system puts the app in the background or returns +the app to the foreground. +
override
+ +
+ +
+ didChangeLocales(List<Locale>? locales) + → void + + + +
+
+ Called when the system tells the app that the user's locale has +changed. For example, if the user changes the system language +settings. +
inherited
+ +
+ +
+ didChangeMetrics() + → void + + + +
+
+ Called when the application's dimensions change. For example, +when a phone is rotated. +
inherited
+ +
+ +
+ didChangePlatformBrightness() + → void + + + +
+
+ Called when the platform brightness changes. +
inherited
+ +
+ +
+ didChangeTextScaleFactor() + → void + + + +
+
+ Called when the platform's text scale factor changes. +
inherited
+ +
+ +
+ didHaveMemoryPressure() + → void + + + +
+
+ Called when the system is running low on memory. +
inherited
+ +
+ +
+ didPopRoute() + Future<bool> + + + +
+
+ Called when the system tells the app to pop the current route. +For example, on Android, this is called when the user presses +the back button. +
inherited
+ +
+ +
+ didPushRoute(String route) + Future<bool> + + + +
+
+ Called when the host tells the application to push a new route onto the +navigator. +
inherited
+ +
+ +
+ didPushRouteInformation(RouteInformation routeInformation) + Future<bool> + + + +
+
+ Called when the host tells the application to push a new +RouteInformation and a restoration state onto the router. +
inherited
+ +
+ +
+ didRequestAppExit() + Future<AppExitResponse> + + + +
+
+ Called when a request is received from the system to exit the application. +
inherited
+ +
+ +
+ hasParseBeenInitialized() + bool + + + +
+
+ +
inherited
+ +
+ +
+ healthCheck({bool? debug, ParseClient? client, bool? sendSessionIdByDefault}) + Future<ParseResponse> + + + +
+
+ +
inherited
+ +
+ +
+ initialize(String appId, String serverUrl, {bool debug = false, String? appName, String? appVersion, String? appPackageName, String? locale, String? liveQueryUrl, String? clientKey, String? masterKey, String? sessionId, bool autoSendSessionId = true, SecurityContext? securityContext, CoreStore? coreStore, Map<String, ParseObjectConstructor>? registeredSubClassMap, ParseUserConstructor? parseUserConstructor, ParseFileConstructor? parseFileConstructor, List<int>? liveListRetryIntervals, ParseConnectivityProvider? connectivityProvider, String? fileDirectory, Stream<void>? appResumedStream, ParseClientCreator? clientCreator}) + Future<Parse> + + + +
+
+ To initialize Parse Server in your application +
override
+ +
+ +
+ noSuchMethod(Invocation invocation) + → dynamic + + + +
+
+ Invoked when a nonexistent method or property is accessed. +
inherited
+ +
+ +
+ toString() + String + + + +
+
+ A string representation of this object. +
inherited
+ +
+ +
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + + + +
+
+ The equality operator. +
inherited
+ +
+ +
+
+ + + + + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/Parse/Parse.html b/flutter/flutter/flutter_parse_sdk_flutter/Parse/Parse.html new file mode 100644 index 000000000..256507f43 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/Parse/Parse.html @@ -0,0 +1,154 @@ + + + + + + + + Parse constructor - Parse - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
Parse
+ +
+ +
+
+
+ +
+
+

Parse constructor +

+ +
+ + Parse() +
+ + + + + + + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/Parse/checkConnectivity.html b/flutter/flutter/flutter_parse_sdk_flutter/Parse/checkConnectivity.html new file mode 100644 index 000000000..02c12fd1a --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/Parse/checkConnectivity.html @@ -0,0 +1,179 @@ + + + + + + + + checkConnectivity method - Parse class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
checkConnectivity
+ +
+ +
+
+
+ +
+
+

checkConnectivity method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<ParseConnectivityResult> +checkConnectivity() + +
override
+ +
+ + + + +
+

Implementation

+
@override
+Future<sdk.ParseConnectivityResult> checkConnectivity() async {
+  switch (await Connectivity().checkConnectivity()) {
+    case ConnectivityResult.wifi:
+      return sdk.ParseConnectivityResult.wifi;
+    case ConnectivityResult.mobile:
+      return sdk.ParseConnectivityResult.mobile;
+    case ConnectivityResult.none:
+      return sdk.ParseConnectivityResult.none;
+    default:
+      return sdk.ParseConnectivityResult.wifi;
+  }
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/Parse/connectivityStream.html b/flutter/flutter/flutter_parse_sdk_flutter/Parse/connectivityStream.html new file mode 100644 index 000000000..3af78ac18 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/Parse/connectivityStream.html @@ -0,0 +1,183 @@ + + + + + + + + connectivityStream property - Parse class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
connectivityStream
+ +
+ +
+
+
+ +
+
+

connectivityStream property +

+ + + +
+ +
+ +
+
    +
  1. @override
  2. +
+
+ Stream<ParseConnectivityResult> + connectivityStream +
override
+ +
+ + + + +
+

Implementation

+
@override
+Stream<sdk.ParseConnectivityResult> get connectivityStream {
+  return Connectivity().onConnectivityChanged.map((ConnectivityResult event) {
+    switch (event) {
+      case ConnectivityResult.wifi:
+        return sdk.ParseConnectivityResult.wifi;
+      case ConnectivityResult.mobile:
+        return sdk.ParseConnectivityResult.mobile;
+      default:
+        return sdk.ParseConnectivityResult.none;
+    }
+  });
+}
+
+ +
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/Parse/didChangeAppLifecycleState.html b/flutter/flutter/flutter_parse_sdk_flutter/Parse/didChangeAppLifecycleState.html new file mode 100644 index 000000000..551d40189 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/Parse/didChangeAppLifecycleState.html @@ -0,0 +1,178 @@ + + + + + + + + didChangeAppLifecycleState method - Parse class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
didChangeAppLifecycleState
+ +
+ +
+
+
+ +
+
+

didChangeAppLifecycleState method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +void +didChangeAppLifecycleState(
  1. AppLifecycleState state
  2. +
) + +
override
+ +
+ +
+

Called when the system puts the app in the background or returns +the app to the foreground.

+

An example of implementing this method is provided in the class-level +documentation for the WidgetsBindingObserver class.

+

This method exposes notifications from SystemChannels.lifecycle.

+
+ + + +
+

Implementation

+
@override
+void didChangeAppLifecycleState(AppLifecycleState state) {
+  _appResumedStreamController.sink.add(null);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/Parse/initialize.html b/flutter/flutter/flutter_parse_sdk_flutter/Parse/initialize.html new file mode 100644 index 000000000..ffc7e5f0a --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/Parse/initialize.html @@ -0,0 +1,262 @@ + + + + + + + + initialize method - Parse class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
initialize
+ +
+ +
+
+
+ +
+
+

initialize method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +Future<Parse> +initialize(
  1. String appId,
  2. +
  3. String serverUrl,
  4. +
  5. {bool debug = false,
  6. +
  7. String? appName,
  8. +
  9. String? appVersion,
  10. +
  11. String? appPackageName,
  12. +
  13. String? locale,
  14. +
  15. String? liveQueryUrl,
  16. +
  17. String? clientKey,
  18. +
  19. String? masterKey,
  20. +
  21. String? sessionId,
  22. +
  23. bool autoSendSessionId = true,
  24. +
  25. SecurityContext? securityContext,
  26. +
  27. CoreStore? coreStore,
  28. +
  29. Map<String, ParseObjectConstructor>? registeredSubClassMap,
  30. +
  31. ParseUserConstructor? parseUserConstructor,
  32. +
  33. ParseFileConstructor? parseFileConstructor,
  34. +
  35. List<int>? liveListRetryIntervals,
  36. +
  37. ParseConnectivityProvider? connectivityProvider,
  38. +
  39. String? fileDirectory,
  40. +
  41. Stream<void>? appResumedStream,
  42. +
  43. ParseClientCreator? clientCreator}
  44. +
) + +
override
+ +
+ +
+

To initialize Parse Server in your application

+

This should be initialized in MyApp() creation

+
Parse().initialize(
+       "PARSE_APP_ID",
+       "https://parse.myaddress.com/parse/,+%20%20%20%20%20%20%20clientKey:"asd23rjh234r234r234r",
+       debug: true,
+       liveQuery: true);
+
+

appName, appVersion and appPackageName are automatically set on Android and IOS, if they are not defined. You should provide a value on web. +fileDirectory is not used on web

+
+ + + +
+

Implementation

+
@override
+Future<Parse> initialize(
+  String appId,
+  String serverUrl, {
+  bool debug = false,
+  String? appName,
+  String? appVersion,
+  String? appPackageName,
+  String? locale,
+  String? liveQueryUrl,
+  String? clientKey,
+  String? masterKey,
+  String? sessionId,
+  bool autoSendSessionId = true,
+  SecurityContext? securityContext,
+  sdk.CoreStore? coreStore,
+  Map<String, sdk.ParseObjectConstructor>? registeredSubClassMap,
+  sdk.ParseUserConstructor? parseUserConstructor,
+  sdk.ParseFileConstructor? parseFileConstructor,
+  List<int>? liveListRetryIntervals,
+  sdk.ParseConnectivityProvider? connectivityProvider,
+  String? fileDirectory,
+  Stream<void>? appResumedStream,
+  sdk.ParseClientCreator? clientCreator,
+}) async {
+  if (appName == null || appVersion == null || appPackageName == null) {
+    final PackageInfo packageInfo = await PackageInfo.fromPlatform();
+    appName ??= packageInfo.appName;
+    appVersion ??= packageInfo.version;
+    appPackageName ??= packageInfo.packageName;
+  }
+
+  return await super.initialize(
+    appId,
+    serverUrl,
+    debug: debug,
+    appName: appName,
+    appVersion: appVersion,
+    appPackageName: appPackageName,
+    locale: locale ??
+        (sdk.parseIsWeb
+            ? PlatformDispatcher.instance.locale.toString()
+            : Platform.localeName),
+    liveQueryUrl: liveQueryUrl,
+    clientKey: clientKey,
+    masterKey: masterKey,
+    sessionId: sessionId,
+    autoSendSessionId: autoSendSessionId,
+    securityContext: securityContext,
+    coreStore: coreStore ?? await CoreStoreSharedPrefsImp.getInstance(),
+    registeredSubClassMap: registeredSubClassMap,
+    parseUserConstructor: parseUserConstructor,
+    parseFileConstructor: parseFileConstructor,
+    liveListRetryIntervals: liveListRetryIntervals,
+    connectivityProvider: connectivityProvider ?? this,
+    fileDirectory:
+        fileDirectory ?? (await CoreStoreDirectory().getTempDirectory()),
+    appResumedStream: appResumedStream ?? _appResumedStreamController.stream,
+    clientCreator: clientCreator,
+  ) as Parse;
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html new file mode 100644 index 000000000..2fb112838 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html @@ -0,0 +1,842 @@ + + + + + + + + ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
ParseLiveGridWidget
+ +
+ +
+
+
+ +
+
+

ParseLiveGridWidget<T extends ParseObject> class + +

+ + + + +
+
+ +
Inheritance
+
+ +
+ + + + + + + + + +
+
+ + +
+

Constructors

+ +
+
+ ParseLiveGridWidget({Key? key, required QueryBuilder<T> query, Widget? gridLoadingElement, Widget? queryEmptyElement, Duration duration = const Duration(milliseconds: 300), ScrollPhysics? scrollPhysics, ScrollController? scrollController, Axis scrollDirection = Axis.vertical, EdgeInsetsGeometry? padding, bool? primary, bool reverse = false, ChildBuilder<T>? childBuilder, bool shrinkWrap = false, ChildBuilder<T>? removedItemBuilder, bool? listenOnAllSubItems, List<String>? listeningIncludes, bool lazyLoading = true, List<String>? preloadedColumns, AnimationController? animationController, int crossAxisCount = 3, double crossAxisSpacing = 5.0, double mainAxisSpacing = 5.0, double childAspectRatio = 0.80}) +
+
+ +
const
+
+
+
+ +
+

Properties

+ +
+
+ animationController + AnimationController? + +
+
+ +
final
+ +
+ +
+ childAspectRatio + double + +
+
+ +
final
+ +
+ +
+ childBuilder + ChildBuilder<T>? + +
+
+ +
final
+ +
+ +
+ crossAxisCount + int + +
+
+ +
final
+ +
+ +
+ crossAxisSpacing + double + +
+
+ +
final
+ +
+ +
+ duration + Duration + +
+
+ +
final
+ +
+ +
+ gridLoadingElement + Widget? + +
+
+ +
final
+ +
+ +
+ hashCode + int + +
+
+ The hash code for this object. +
read-onlyinherited
+ +
+ +
+ key + Key? + +
+
+ Controls how one widget replaces another widget in the tree. +
finalinherited
+ +
+ +
+ lazyLoading + bool + +
+
+ +
final
+ +
+ +
+ listeningIncludes + List<String>? + +
+
+ +
final
+ +
+ +
+ listenOnAllSubItems + bool? + +
+
+ +
final
+ +
+ +
+ mainAxisSpacing + double + +
+
+ +
final
+ +
+ +
+ padding + EdgeInsetsGeometry? + +
+
+ +
final
+ +
+ +
+ preloadedColumns + List<String>? + +
+
+ +
final
+ +
+ +
+ primary + bool? + +
+
+ +
final
+ +
+ +
+ query + QueryBuilder<T> + +
+
+ +
final
+ +
+ +
+ queryEmptyElement + Widget? + +
+
+ +
final
+ +
+ +
+ removedItemBuilder + ChildBuilder<T>? + +
+
+ +
final
+ +
+ +
+ reverse + bool + +
+
+ +
final
+ +
+ +
+ runtimeType + Type + +
+
+ A representation of the runtime type of the object. +
read-onlyinherited
+ +
+ +
+ scrollController + ScrollController? + +
+
+ +
final
+ +
+ +
+ scrollDirection + Axis + +
+
+ +
final
+ +
+ +
+ scrollPhysics + ScrollPhysics? + +
+
+ +
final
+ +
+ +
+ shrinkWrap + bool + +
+
+ +
final
+ +
+ +
+
+ + +
+

Methods

+
+
+ createElement() + StatefulElement + + + +
+
+ Creates a StatefulElement to manage this widget's location in the tree. +
inherited
+ +
+ +
+ createState() + State<ParseLiveGridWidget<T>> + + + +
+
+ Creates the mutable state for this widget at a given location in the tree. +
override
+ +
+ +
+ debugDescribeChildren() + List<DiagnosticsNode> + + + +
+
+ Returns a list of DiagnosticsNode objects describing this node's +children. +
inherited
+ +
+ +
+ debugFillProperties(DiagnosticPropertiesBuilder properties) + → void + + + +
+
+ Add additional properties associated with the node. +
inherited
+ +
+ +
+ noSuchMethod(Invocation invocation) + → dynamic + + + +
+
+ Invoked when a nonexistent method or property is accessed. +
inherited
+ +
+ +
+ toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) + DiagnosticsNode + + + +
+
+ Returns a debug representation of the object that is used by debugging +tools and by DiagnosticsNode.toStringDeep. +
inherited
+ +
+ +
+ toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) + String + + + +
+
+ A string representation of this object. +
inherited
+ +
+ +
+ toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug}) + String + + + +
+
+ Returns a string representation of this node and its descendants. +
inherited
+ +
+ +
+ toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) + String + + + +
+
+ Returns a one-line detailed description of the object. +
inherited
+ +
+ +
+ toStringShort() + String + + + +
+
+ A short, textual description of this widget. +
inherited
+ +
+ +
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + + + +
+
+ The equality operator. +
inherited
+ +
+ +
+
+ + +
+

Static Methods

+
+
+ defaultChildBuilder<T extends ParseObject>(BuildContext context, ParseLiveListElementSnapshot<T> snapshot) + Widget + + + +
+
+ + + +
+ +
+
+ + + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/ParseLiveGridWidget.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/ParseLiveGridWidget.html new file mode 100644 index 000000000..670348034 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/ParseLiveGridWidget.html @@ -0,0 +1,222 @@ + + + + + + + + ParseLiveGridWidget constructor - ParseLiveGridWidget - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
ParseLiveGridWidget
+ +
+ +
+
+
+ +
+
+

ParseLiveGridWidget<T extends ParseObject> constructor +

+ +
+ const + ParseLiveGridWidget<T extends ParseObject>(
  1. {Key? key,
  2. +
  3. required QueryBuilder<T> query,
  4. +
  5. Widget? gridLoadingElement,
  6. +
  7. Widget? queryEmptyElement,
  8. +
  9. Duration duration = const Duration(milliseconds: 300),
  10. +
  11. ScrollPhysics? scrollPhysics,
  12. +
  13. ScrollController? scrollController,
  14. +
  15. Axis scrollDirection = Axis.vertical,
  16. +
  17. EdgeInsetsGeometry? padding,
  18. +
  19. bool? primary,
  20. +
  21. bool reverse = false,
  22. +
  23. ChildBuilder<T>? childBuilder,
  24. +
  25. bool shrinkWrap = false,
  26. +
  27. ChildBuilder<T>? removedItemBuilder,
  28. +
  29. bool? listenOnAllSubItems,
  30. +
  31. List<String>? listeningIncludes,
  32. +
  33. bool lazyLoading = true,
  34. +
  35. List<String>? preloadedColumns,
  36. +
  37. AnimationController? animationController,
  38. +
  39. int crossAxisCount = 3,
  40. +
  41. double crossAxisSpacing = 5.0,
  42. +
  43. double mainAxisSpacing = 5.0,
  44. +
  45. double childAspectRatio = 0.80}
  46. +
) +
+ + + + + +
+

Implementation

+
const ParseLiveGridWidget({
+  Key? key,
+  required this.query,
+  this.gridLoadingElement,
+  this.queryEmptyElement,
+  this.duration = const Duration(milliseconds: 300),
+  this.scrollPhysics,
+  this.scrollController,
+  this.scrollDirection = Axis.vertical,
+  this.padding,
+  this.primary,
+  this.reverse = false,
+  this.childBuilder,
+  this.shrinkWrap = false,
+  this.removedItemBuilder,
+  this.listenOnAllSubItems,
+  this.listeningIncludes,
+  this.lazyLoading = true,
+  this.preloadedColumns,
+  this.animationController,
+  this.crossAxisCount = 3,
+  this.crossAxisSpacing = 5.0,
+  this.mainAxisSpacing = 5.0,
+  this.childAspectRatio = 0.80,
+}) : super(key: key);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/animationController.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/animationController.html new file mode 100644 index 000000000..161da72db --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/animationController.html @@ -0,0 +1,176 @@ + + + + + + + + animationController property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
animationController
+ +
+ +
+
+
+ +
+
+

animationController property +

+ +
+ + AnimationController? + animationController +
final
+ +
+ + + +
+

Implementation

+
final AnimationController? animationController;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childAspectRatio.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childAspectRatio.html new file mode 100644 index 000000000..fdf1aaecc --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childAspectRatio.html @@ -0,0 +1,176 @@ + + + + + + + + childAspectRatio property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
childAspectRatio
+ +
+ +
+
+
+ +
+
+

childAspectRatio property +

+ +
+ + double + childAspectRatio +
final
+ +
+ + + +
+

Implementation

+
final double childAspectRatio;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childBuilder.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childBuilder.html new file mode 100644 index 000000000..960572521 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childBuilder.html @@ -0,0 +1,176 @@ + + + + + + + + childBuilder property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
childBuilder
+ +
+ +
+
+
+ +
+
+

childBuilder property +

+ +
+ + ChildBuilder<T>? + childBuilder +
final
+ +
+ + + +
+

Implementation

+
final ChildBuilder<T>? childBuilder;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/createState.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/createState.html new file mode 100644 index 000000000..100aa17dd --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/createState.html @@ -0,0 +1,200 @@ + + + + + + + + createState method - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
createState
+ +
+ +
+
+
+ +
+
+

createState method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +State<ParseLiveGridWidget<T>> +createState() + +
override
+ +
+ +
+

Creates the mutable state for this widget at a given location in the tree.

+

Subclasses should override this method to return a newly created +instance of their associated State subclass:

+
@override
+State<SomeWidget> createState() => _SomeWidgetState();
+
+

The framework can call this method multiple times over the lifetime of +a StatefulWidget. For example, if the widget is inserted into the tree +in multiple locations, the framework will create a separate State object +for each location. Similarly, if the widget is removed from the tree and +later inserted into the tree again, the framework will call createState +again to create a fresh State object, simplifying the lifecycle of +State objects.

+
+ + + +
+

Implementation

+
@override
+State<ParseLiveGridWidget<T>> createState() => _ParseLiveGridWidgetState<T>();
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisCount.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisCount.html new file mode 100644 index 000000000..413f5510c --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisCount.html @@ -0,0 +1,176 @@ + + + + + + + + crossAxisCount property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
crossAxisCount
+ +
+ +
+
+
+ +
+
+

crossAxisCount property +

+ +
+ + int + crossAxisCount +
final
+ +
+ + + +
+

Implementation

+
final int crossAxisCount;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisSpacing.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisSpacing.html new file mode 100644 index 000000000..28f6ba73f --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisSpacing.html @@ -0,0 +1,176 @@ + + + + + + + + crossAxisSpacing property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
crossAxisSpacing
+ +
+ +
+
+
+ +
+
+

crossAxisSpacing property +

+ +
+ + double + crossAxisSpacing +
final
+ +
+ + + +
+

Implementation

+
final double crossAxisSpacing;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/defaultChildBuilder.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/defaultChildBuilder.html new file mode 100644 index 000000000..a7b93dc98 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/defaultChildBuilder.html @@ -0,0 +1,198 @@ + + + + + + + + defaultChildBuilder method - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
defaultChildBuilder
+ +
+ +
+
+
+ +
+
+

defaultChildBuilder<T extends ParseObject> static method +

+ +
+ + +Widget +defaultChildBuilder<T extends ParseObject>(
  1. BuildContext context,
  2. +
  3. ParseLiveListElementSnapshot<T> snapshot
  4. +
) + + + +
+ + + + +
+

Implementation

+
static Widget defaultChildBuilder<T extends sdk.ParseObject>(
+    BuildContext context, sdk.ParseLiveListElementSnapshot<T> snapshot) {
+  Widget child;
+  if (snapshot.failed) {
+    child = const Text('something went wrong!');
+  } else if (snapshot.hasData) {
+    child = ListTile(
+      title: Text(
+        snapshot.loadedData!.get<String>(sdk.keyVarObjectId)!,
+      ),
+    );
+  } else {
+    child = const ListTile(
+      leading: CircularProgressIndicator(),
+    );
+  }
+  return child;
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/duration.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/duration.html new file mode 100644 index 000000000..fc936afa6 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/duration.html @@ -0,0 +1,176 @@ + + + + + + + + duration property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
duration
+ +
+ +
+
+
+ +
+
+

duration property +

+ +
+ + Duration + duration +
final
+ +
+ + + +
+

Implementation

+
final Duration duration;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/gridLoadingElement.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/gridLoadingElement.html new file mode 100644 index 000000000..3b610ac2a --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/gridLoadingElement.html @@ -0,0 +1,176 @@ + + + + + + + + gridLoadingElement property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
gridLoadingElement
+ +
+ +
+
+
+ +
+
+

gridLoadingElement property +

+ +
+ + Widget? + gridLoadingElement +
final
+ +
+ + + +
+

Implementation

+
final Widget? gridLoadingElement;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/lazyLoading.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/lazyLoading.html new file mode 100644 index 000000000..0de9f85d3 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/lazyLoading.html @@ -0,0 +1,176 @@ + + + + + + + + lazyLoading property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
lazyLoading
+ +
+ +
+
+
+ +
+
+

lazyLoading property +

+ +
+ + bool + lazyLoading +
final
+ +
+ + + +
+

Implementation

+
final bool lazyLoading;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listenOnAllSubItems.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listenOnAllSubItems.html new file mode 100644 index 000000000..c7d171b1b --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listenOnAllSubItems.html @@ -0,0 +1,176 @@ + + + + + + + + listenOnAllSubItems property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
listenOnAllSubItems
+ +
+ +
+
+
+ +
+
+

listenOnAllSubItems property +

+ +
+ + bool? + listenOnAllSubItems +
final
+ +
+ + + +
+

Implementation

+
final bool? listenOnAllSubItems;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listeningIncludes.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listeningIncludes.html new file mode 100644 index 000000000..2d5ad175a --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listeningIncludes.html @@ -0,0 +1,176 @@ + + + + + + + + listeningIncludes property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
listeningIncludes
+ +
+ +
+
+
+ +
+
+

listeningIncludes property +

+ +
+ + List<String>? + listeningIncludes +
final
+ +
+ + + +
+

Implementation

+
final List<String>? listeningIncludes;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/mainAxisSpacing.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/mainAxisSpacing.html new file mode 100644 index 000000000..e978303b1 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/mainAxisSpacing.html @@ -0,0 +1,176 @@ + + + + + + + + mainAxisSpacing property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
mainAxisSpacing
+ +
+ +
+
+
+ +
+
+

mainAxisSpacing property +

+ +
+ + double + mainAxisSpacing +
final
+ +
+ + + +
+

Implementation

+
final double mainAxisSpacing;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/padding.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/padding.html new file mode 100644 index 000000000..03540750a --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/padding.html @@ -0,0 +1,176 @@ + + + + + + + + padding property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
padding
+ +
+ +
+
+
+ +
+
+

padding property +

+ +
+ + EdgeInsetsGeometry? + padding +
final
+ +
+ + + +
+

Implementation

+
final EdgeInsetsGeometry? padding;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/preloadedColumns.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/preloadedColumns.html new file mode 100644 index 000000000..a9733f8bc --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/preloadedColumns.html @@ -0,0 +1,176 @@ + + + + + + + + preloadedColumns property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
preloadedColumns
+ +
+ +
+
+
+ +
+
+

preloadedColumns property +

+ +
+ + List<String>? + preloadedColumns +
final
+ +
+ + + +
+

Implementation

+
final List<String>? preloadedColumns;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/primary.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/primary.html new file mode 100644 index 000000000..9b2a7e781 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/primary.html @@ -0,0 +1,176 @@ + + + + + + + + primary property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
primary
+ +
+ +
+
+
+ +
+
+

primary property +

+ +
+ + bool? + primary +
final
+ +
+ + + +
+

Implementation

+
final bool? primary;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/query.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/query.html new file mode 100644 index 000000000..a4a7d92f0 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/query.html @@ -0,0 +1,176 @@ + + + + + + + + query property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
query
+ +
+ +
+
+
+ +
+
+

query property +

+ +
+ + QueryBuilder<T> + query +
final
+ +
+ + + +
+

Implementation

+
final sdk.QueryBuilder<T> query;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/queryEmptyElement.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/queryEmptyElement.html new file mode 100644 index 000000000..6aa0ed8b0 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/queryEmptyElement.html @@ -0,0 +1,176 @@ + + + + + + + + queryEmptyElement property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
queryEmptyElement
+ +
+ +
+
+
+ +
+
+

queryEmptyElement property +

+ +
+ + Widget? + queryEmptyElement +
final
+ +
+ + + +
+

Implementation

+
final Widget? queryEmptyElement;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/removedItemBuilder.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/removedItemBuilder.html new file mode 100644 index 000000000..6db1d222a --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/removedItemBuilder.html @@ -0,0 +1,176 @@ + + + + + + + + removedItemBuilder property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
removedItemBuilder
+ +
+ +
+
+
+ +
+
+

removedItemBuilder property +

+ +
+ + ChildBuilder<T>? + removedItemBuilder +
final
+ +
+ + + +
+

Implementation

+
final ChildBuilder<T>? removedItemBuilder;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/reverse.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/reverse.html new file mode 100644 index 000000000..68d1914e4 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/reverse.html @@ -0,0 +1,176 @@ + + + + + + + + reverse property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
reverse
+ +
+ +
+
+
+ +
+
+

reverse property +

+ +
+ + bool + reverse +
final
+ +
+ + + +
+

Implementation

+
final bool reverse;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollController.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollController.html new file mode 100644 index 000000000..3a373ce31 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollController.html @@ -0,0 +1,176 @@ + + + + + + + + scrollController property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
scrollController
+ +
+ +
+
+
+ +
+
+

scrollController property +

+ +
+ + ScrollController? + scrollController +
final
+ +
+ + + +
+

Implementation

+
final ScrollController? scrollController;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollDirection.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollDirection.html new file mode 100644 index 000000000..3387eec4d --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollDirection.html @@ -0,0 +1,176 @@ + + + + + + + + scrollDirection property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
scrollDirection
+ +
+ +
+
+
+ +
+
+

scrollDirection property +

+ +
+ + Axis + scrollDirection +
final
+ +
+ + + +
+

Implementation

+
final Axis scrollDirection;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollPhysics.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollPhysics.html new file mode 100644 index 000000000..6e929e224 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollPhysics.html @@ -0,0 +1,176 @@ + + + + + + + + scrollPhysics property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
scrollPhysics
+ +
+ +
+
+
+ +
+
+

scrollPhysics property +

+ +
+ + ScrollPhysics? + scrollPhysics +
final
+ +
+ + + +
+

Implementation

+
final ScrollPhysics? scrollPhysics;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/shrinkWrap.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/shrinkWrap.html new file mode 100644 index 000000000..0e197a11b --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/shrinkWrap.html @@ -0,0 +1,176 @@ + + + + + + + + shrinkWrap property - ParseLiveGridWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
shrinkWrap
+ +
+ +
+
+
+ +
+
+

shrinkWrap property +

+ +
+ + bool + shrinkWrap +
final
+ +
+ + + +
+

Implementation

+
final bool shrinkWrap;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html new file mode 100644 index 000000000..b189bdc32 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html @@ -0,0 +1,630 @@ + + + + + + + + ParseLiveListElementWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
ParseLiveListElementWidget
+ +
+ +
+
+
+ +
+
+

ParseLiveListElementWidget<T extends ParseObject> class + +

+ + + + +
+
+ +
Inheritance
+
+ +
+ + + + + + + + + +
+
+ + +
+

Constructors

+ +
+
+ ParseLiveListElementWidget({Key? key, StreamGetter<T>? stream, DataGetter<T>? loadedData, DataGetter<T>? preLoadedData, required Animation<double> sizeFactor, required Duration duration, required ChildBuilder<T> childBuilder}) +
+
+ +
const
+
+
+
+ +
+

Properties

+ +
+
+ childBuilder + ChildBuilder<T> + +
+
+ +
final
+ +
+ +
+ duration + Duration + +
+
+ +
final
+ +
+ +
+ hashCode + int + +
+
+ The hash code for this object. +
read-onlyinherited
+ +
+ +
+ key + Key? + +
+
+ Controls how one widget replaces another widget in the tree. +
finalinherited
+ +
+ +
+ loadedData + DataGetter<T>? + +
+
+ +
final
+ +
+ +
+ preLoadedData + DataGetter<T>? + +
+
+ +
final
+ +
+ +
+ runtimeType + Type + +
+
+ A representation of the runtime type of the object. +
read-onlyinherited
+ +
+ +
+ sizeFactor + Animation<double> + +
+
+ +
final
+ +
+ +
+ stream + StreamGetter<T>? + +
+
+ +
final
+ +
+ +
+
+ + +
+

Methods

+
+
+ createElement() + StatefulElement + + + +
+
+ Creates a StatefulElement to manage this widget's location in the tree. +
inherited
+ +
+ +
+ createState() + State<ParseLiveListElementWidget<T>> + + + +
+
+ Creates the mutable state for this widget at a given location in the tree. +
override
+ +
+ +
+ debugDescribeChildren() + List<DiagnosticsNode> + + + +
+
+ Returns a list of DiagnosticsNode objects describing this node's +children. +
inherited
+ +
+ +
+ debugFillProperties(DiagnosticPropertiesBuilder properties) + → void + + + +
+
+ Add additional properties associated with the node. +
inherited
+ +
+ +
+ noSuchMethod(Invocation invocation) + → dynamic + + + +
+
+ Invoked when a nonexistent method or property is accessed. +
inherited
+ +
+ +
+ toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) + DiagnosticsNode + + + +
+
+ Returns a debug representation of the object that is used by debugging +tools and by DiagnosticsNode.toStringDeep. +
inherited
+ +
+ +
+ toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) + String + + + +
+
+ A string representation of this object. +
inherited
+ +
+ +
+ toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug}) + String + + + +
+
+ Returns a string representation of this node and its descendants. +
inherited
+ +
+ +
+ toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) + String + + + +
+
+ Returns a one-line detailed description of the object. +
inherited
+ +
+ +
+ toStringShort() + String + + + +
+
+ A short, textual description of this widget. +
inherited
+ +
+ +
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + + + +
+
+ The equality operator. +
inherited
+ +
+ +
+
+ + + + + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/ParseLiveListElementWidget.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/ParseLiveListElementWidget.html new file mode 100644 index 000000000..45525f603 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/ParseLiveListElementWidget.html @@ -0,0 +1,172 @@ + + + + + + + + ParseLiveListElementWidget constructor - ParseLiveListElementWidget - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
ParseLiveListElementWidget
+ +
+ +
+
+
+ +
+
+

ParseLiveListElementWidget<T extends ParseObject> constructor +

+ +
+ const + ParseLiveListElementWidget<T extends ParseObject>(
  1. {Key? key,
  2. +
  3. StreamGetter<T>? stream,
  4. +
  5. DataGetter<T>? loadedData,
  6. +
  7. DataGetter<T>? preLoadedData,
  8. +
  9. required Animation<double> sizeFactor,
  10. +
  11. required Duration duration,
  12. +
  13. required ChildBuilder<T> childBuilder}
  14. +
) +
+ + + + + +
+

Implementation

+
const ParseLiveListElementWidget(
+    {Key? key,
+    this.stream,
+    this.loadedData,
+    this.preLoadedData,
+    required this.sizeFactor,
+    required this.duration,
+    required this.childBuilder})
+    : super(key: key);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/childBuilder.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/childBuilder.html new file mode 100644 index 000000000..7a57e33bb --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/childBuilder.html @@ -0,0 +1,158 @@ + + + + + + + + childBuilder property - ParseLiveListElementWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
childBuilder
+ +
+ +
+
+
+ +
+
+

childBuilder property +

+ +
+ + ChildBuilder<T> + childBuilder +
final
+ +
+ + + +
+

Implementation

+
final ChildBuilder<T> childBuilder;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/createState.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/createState.html new file mode 100644 index 000000000..3de9b3751 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/createState.html @@ -0,0 +1,184 @@ + + + + + + + + createState method - ParseLiveListElementWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
createState
+ +
+ +
+
+
+ +
+
+

createState method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +State<ParseLiveListElementWidget<T>> +createState() + +
override
+ +
+ +
+

Creates the mutable state for this widget at a given location in the tree.

+

Subclasses should override this method to return a newly created +instance of their associated State subclass:

+
@override
+State<SomeWidget> createState() => _SomeWidgetState();
+
+

The framework can call this method multiple times over the lifetime of +a StatefulWidget. For example, if the widget is inserted into the tree +in multiple locations, the framework will create a separate State object +for each location. Similarly, if the widget is removed from the tree and +later inserted into the tree again, the framework will call createState +again to create a fresh State object, simplifying the lifecycle of +State objects.

+
+ + + +
+

Implementation

+
@override
+State<ParseLiveListElementWidget<T>> createState() {
+  return _ParseLiveListElementWidgetState<T>();
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/duration.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/duration.html new file mode 100644 index 000000000..8f0ab55be --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/duration.html @@ -0,0 +1,158 @@ + + + + + + + + duration property - ParseLiveListElementWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
duration
+ +
+ +
+
+
+ +
+
+

duration property +

+ +
+ + Duration + duration +
final
+ +
+ + + +
+

Implementation

+
final Duration duration;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/loadedData.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/loadedData.html new file mode 100644 index 000000000..2ea2ce92b --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/loadedData.html @@ -0,0 +1,158 @@ + + + + + + + + loadedData property - ParseLiveListElementWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
loadedData
+ +
+ +
+
+
+ +
+
+

loadedData property +

+ +
+ + DataGetter<T>? + loadedData +
final
+ +
+ + + +
+

Implementation

+
final DataGetter<T>? loadedData;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/preLoadedData.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/preLoadedData.html new file mode 100644 index 000000000..425533b70 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/preLoadedData.html @@ -0,0 +1,158 @@ + + + + + + + + preLoadedData property - ParseLiveListElementWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
preLoadedData
+ +
+ +
+
+
+ +
+
+

preLoadedData property +

+ +
+ + DataGetter<T>? + preLoadedData +
final
+ +
+ + + +
+

Implementation

+
final DataGetter<T>? preLoadedData;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/sizeFactor.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/sizeFactor.html new file mode 100644 index 000000000..9c73c97b1 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/sizeFactor.html @@ -0,0 +1,158 @@ + + + + + + + + sizeFactor property - ParseLiveListElementWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
sizeFactor
+ +
+ +
+
+
+ +
+
+

sizeFactor property +

+ +
+ + Animation<double> + sizeFactor +
final
+ +
+ + + +
+

Implementation

+
final Animation<double> sizeFactor;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/stream.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/stream.html new file mode 100644 index 000000000..d555fd3fc --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/stream.html @@ -0,0 +1,158 @@ + + + + + + + + stream property - ParseLiveListElementWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
stream
+ +
+ +
+
+
+ +
+
+

stream property +

+ +
+ + StreamGetter<T>? + stream +
final
+ +
+ + + +
+

Implementation

+
final StreamGetter<T>? stream;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget-class.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget-class.html new file mode 100644 index 000000000..69aece7c8 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget-class.html @@ -0,0 +1,782 @@ + + + + + + + + ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
ParseLiveListWidget
+ +
+ +
+
+
+ +
+
+

ParseLiveListWidget<T extends ParseObject> class + +

+ + + + +
+
+ +
Inheritance
+
+ +
+ + + + + + + + + +
+
+ + +
+

Constructors

+ +
+
+ ParseLiveListWidget({Key? key, required QueryBuilder<T> query, Widget? listLoadingElement, Widget? queryEmptyElement, Duration duration = const Duration(milliseconds: 300), ScrollPhysics? scrollPhysics, ScrollController? scrollController, Axis scrollDirection = Axis.vertical, EdgeInsetsGeometry? padding, bool? primary, bool reverse = false, ChildBuilder<T>? childBuilder, bool shrinkWrap = false, ChildBuilder<T>? removedItemBuilder, bool? listenOnAllSubItems, List<String>? listeningIncludes, bool lazyLoading = true, List<String>? preloadedColumns}) +
+
+ +
const
+
+
+
+ +
+

Properties

+ +
+
+ childBuilder + ChildBuilder<T>? + +
+
+ +
final
+ +
+ +
+ duration + Duration + +
+
+ +
final
+ +
+ +
+ hashCode + int + +
+
+ The hash code for this object. +
read-onlyinherited
+ +
+ +
+ key + Key? + +
+
+ Controls how one widget replaces another widget in the tree. +
finalinherited
+ +
+ +
+ lazyLoading + bool + +
+
+ +
final
+ +
+ +
+ listeningIncludes + List<String>? + +
+
+ +
final
+ +
+ +
+ listenOnAllSubItems + bool? + +
+
+ +
final
+ +
+ +
+ listLoadingElement + Widget? + +
+
+ +
final
+ +
+ +
+ padding + EdgeInsetsGeometry? + +
+
+ +
final
+ +
+ +
+ preloadedColumns + List<String>? + +
+
+ +
final
+ +
+ +
+ primary + bool? + +
+
+ +
final
+ +
+ +
+ query + QueryBuilder<T> + +
+
+ +
final
+ +
+ +
+ queryEmptyElement + Widget? + +
+
+ +
final
+ +
+ +
+ removedItemBuilder + ChildBuilder<T>? + +
+
+ +
final
+ +
+ +
+ reverse + bool + +
+
+ +
final
+ +
+ +
+ runtimeType + Type + +
+
+ A representation of the runtime type of the object. +
read-onlyinherited
+ +
+ +
+ scrollController + ScrollController? + +
+
+ +
final
+ +
+ +
+ scrollDirection + Axis + +
+
+ +
final
+ +
+ +
+ scrollPhysics + ScrollPhysics? + +
+
+ +
final
+ +
+ +
+ shrinkWrap + bool + +
+
+ +
final
+ +
+ +
+
+ + +
+

Methods

+
+
+ createElement() + StatefulElement + + + +
+
+ Creates a StatefulElement to manage this widget's location in the tree. +
inherited
+ +
+ +
+ createState() + State<ParseLiveListWidget<T>> + + + +
+
+ Creates the mutable state for this widget at a given location in the tree. +
override
+ +
+ +
+ debugDescribeChildren() + List<DiagnosticsNode> + + + +
+
+ Returns a list of DiagnosticsNode objects describing this node's +children. +
inherited
+ +
+ +
+ debugFillProperties(DiagnosticPropertiesBuilder properties) + → void + + + +
+
+ Add additional properties associated with the node. +
inherited
+ +
+ +
+ noSuchMethod(Invocation invocation) + → dynamic + + + +
+
+ Invoked when a nonexistent method or property is accessed. +
inherited
+ +
+ +
+ toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) + DiagnosticsNode + + + +
+
+ Returns a debug representation of the object that is used by debugging +tools and by DiagnosticsNode.toStringDeep. +
inherited
+ +
+ +
+ toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) + String + + + +
+
+ A string representation of this object. +
inherited
+ +
+ +
+ toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug}) + String + + + +
+
+ Returns a string representation of this node and its descendants. +
inherited
+ +
+ +
+ toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) + String + + + +
+
+ Returns a one-line detailed description of the object. +
inherited
+ +
+ +
+ toStringShort() + String + + + +
+
+ A short, textual description of this widget. +
inherited
+ +
+ +
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + + + +
+
+ The equality operator. +
inherited
+ +
+ +
+
+ + +
+

Static Methods

+
+
+ defaultChildBuilder<T extends ParseObject>(BuildContext context, ParseLiveListElementSnapshot<T> snapshot) + Widget + + + +
+
+ + + +
+ +
+
+ + + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/ParseLiveListWidget.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/ParseLiveListWidget.html new file mode 100644 index 000000000..37ed2e2c8 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/ParseLiveListWidget.html @@ -0,0 +1,207 @@ + + + + + + + + ParseLiveListWidget constructor - ParseLiveListWidget - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
ParseLiveListWidget
+ +
+ +
+
+
+ +
+
+

ParseLiveListWidget<T extends ParseObject> constructor +

+ +
+ const + ParseLiveListWidget<T extends ParseObject>(
  1. {Key? key,
  2. +
  3. required QueryBuilder<T> query,
  4. +
  5. Widget? listLoadingElement,
  6. +
  7. Widget? queryEmptyElement,
  8. +
  9. Duration duration = const Duration(milliseconds: 300),
  10. +
  11. ScrollPhysics? scrollPhysics,
  12. +
  13. ScrollController? scrollController,
  14. +
  15. Axis scrollDirection = Axis.vertical,
  16. +
  17. EdgeInsetsGeometry? padding,
  18. +
  19. bool? primary,
  20. +
  21. bool reverse = false,
  22. +
  23. ChildBuilder<T>? childBuilder,
  24. +
  25. bool shrinkWrap = false,
  26. +
  27. ChildBuilder<T>? removedItemBuilder,
  28. +
  29. bool? listenOnAllSubItems,
  30. +
  31. List<String>? listeningIncludes,
  32. +
  33. bool lazyLoading = true,
  34. +
  35. List<String>? preloadedColumns}
  36. +
) +
+ + + + + +
+

Implementation

+
const ParseLiveListWidget({
+  Key? key,
+  required this.query,
+  this.listLoadingElement,
+  this.queryEmptyElement,
+  this.duration = const Duration(milliseconds: 300),
+  this.scrollPhysics,
+  this.scrollController,
+  this.scrollDirection = Axis.vertical,
+  this.padding,
+  this.primary,
+  this.reverse = false,
+  this.childBuilder,
+  this.shrinkWrap = false,
+  this.removedItemBuilder,
+  this.listenOnAllSubItems,
+  this.listeningIncludes,
+  this.lazyLoading = true,
+  this.preloadedColumns,
+}) : super(key: key);
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/childBuilder.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/childBuilder.html new file mode 100644 index 000000000..a609a7a2f --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/childBuilder.html @@ -0,0 +1,171 @@ + + + + + + + + childBuilder property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
childBuilder
+ +
+ +
+
+
+ +
+
+

childBuilder property +

+ +
+ + ChildBuilder<T>? + childBuilder +
final
+ +
+ + + +
+

Implementation

+
final ChildBuilder<T>? childBuilder;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/createState.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/createState.html new file mode 100644 index 000000000..5bf72e9b3 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/createState.html @@ -0,0 +1,195 @@ + + + + + + + + createState method - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
createState
+ +
+ +
+
+
+ +
+
+

createState method +

+ +
+ +
+
    +
  1. @override
  2. +
+
+ +State<ParseLiveListWidget<T>> +createState() + +
override
+ +
+ +
+

Creates the mutable state for this widget at a given location in the tree.

+

Subclasses should override this method to return a newly created +instance of their associated State subclass:

+
@override
+State<SomeWidget> createState() => _SomeWidgetState();
+
+

The framework can call this method multiple times over the lifetime of +a StatefulWidget. For example, if the widget is inserted into the tree +in multiple locations, the framework will create a separate State object +for each location. Similarly, if the widget is removed from the tree and +later inserted into the tree again, the framework will call createState +again to create a fresh State object, simplifying the lifecycle of +State objects.

+
+ + + +
+

Implementation

+
@override
+State<ParseLiveListWidget<T>> createState() => _ParseLiveListWidgetState<T>();
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/defaultChildBuilder.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/defaultChildBuilder.html new file mode 100644 index 000000000..be3d38a57 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/defaultChildBuilder.html @@ -0,0 +1,194 @@ + + + + + + + + defaultChildBuilder method - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
defaultChildBuilder
+ +
+ +
+
+
+ +
+
+

defaultChildBuilder<T extends ParseObject> static method +

+ +
+ + +Widget +defaultChildBuilder<T extends ParseObject>(
  1. BuildContext context,
  2. +
  3. ParseLiveListElementSnapshot<T> snapshot
  4. +
) + + + +
+ + + + +
+

Implementation

+
static Widget defaultChildBuilder<T extends sdk.ParseObject>(
+    BuildContext context, sdk.ParseLiveListElementSnapshot<T> snapshot) {
+  Widget child;
+  if (snapshot.failed) {
+    child = const Text('something went wrong!');
+  } else if (snapshot.hasData) {
+    child = ListTile(
+      title: Text(
+        snapshot.loadedData?.get<String>(sdk.keyVarObjectId) ??
+            'Missing Data!',
+      ),
+    );
+  } else {
+    child = const ListTile(
+      leading: CircularProgressIndicator(),
+    );
+  }
+  return child;
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/duration.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/duration.html new file mode 100644 index 000000000..e4f5e595c --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/duration.html @@ -0,0 +1,171 @@ + + + + + + + + duration property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
duration
+ +
+ +
+
+
+ +
+
+

duration property +

+ +
+ + Duration + duration +
final
+ +
+ + + +
+

Implementation

+
final Duration duration;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/lazyLoading.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/lazyLoading.html new file mode 100644 index 000000000..6f9dab18e --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/lazyLoading.html @@ -0,0 +1,171 @@ + + + + + + + + lazyLoading property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
lazyLoading
+ +
+ +
+
+
+ +
+
+

lazyLoading property +

+ +
+ + bool + lazyLoading +
final
+ +
+ + + +
+

Implementation

+
final bool lazyLoading;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listLoadingElement.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listLoadingElement.html new file mode 100644 index 000000000..b18c01243 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listLoadingElement.html @@ -0,0 +1,171 @@ + + + + + + + + listLoadingElement property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
listLoadingElement
+ +
+ +
+
+
+ +
+
+

listLoadingElement property +

+ +
+ + Widget? + listLoadingElement +
final
+ +
+ + + +
+

Implementation

+
final Widget? listLoadingElement;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listenOnAllSubItems.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listenOnAllSubItems.html new file mode 100644 index 000000000..fe8d27eea --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listenOnAllSubItems.html @@ -0,0 +1,171 @@ + + + + + + + + listenOnAllSubItems property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
listenOnAllSubItems
+ +
+ +
+
+
+ +
+
+

listenOnAllSubItems property +

+ +
+ + bool? + listenOnAllSubItems +
final
+ +
+ + + +
+

Implementation

+
final bool? listenOnAllSubItems;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listeningIncludes.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listeningIncludes.html new file mode 100644 index 000000000..1754b78d6 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listeningIncludes.html @@ -0,0 +1,171 @@ + + + + + + + + listeningIncludes property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
listeningIncludes
+ +
+ +
+
+
+ +
+
+

listeningIncludes property +

+ +
+ + List<String>? + listeningIncludes +
final
+ +
+ + + +
+

Implementation

+
final List<String>? listeningIncludes;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/padding.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/padding.html new file mode 100644 index 000000000..933c5378b --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/padding.html @@ -0,0 +1,171 @@ + + + + + + + + padding property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
padding
+ +
+ +
+
+
+ +
+
+

padding property +

+ +
+ + EdgeInsetsGeometry? + padding +
final
+ +
+ + + +
+

Implementation

+
final EdgeInsetsGeometry? padding;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/preloadedColumns.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/preloadedColumns.html new file mode 100644 index 000000000..5e0ac6453 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/preloadedColumns.html @@ -0,0 +1,171 @@ + + + + + + + + preloadedColumns property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
preloadedColumns
+ +
+ +
+
+
+ +
+
+

preloadedColumns property +

+ +
+ + List<String>? + preloadedColumns +
final
+ +
+ + + +
+

Implementation

+
final List<String>? preloadedColumns;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/primary.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/primary.html new file mode 100644 index 000000000..295f7dad6 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/primary.html @@ -0,0 +1,171 @@ + + + + + + + + primary property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
primary
+ +
+ +
+
+
+ +
+
+

primary property +

+ +
+ + bool? + primary +
final
+ +
+ + + +
+

Implementation

+
final bool? primary;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/query.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/query.html new file mode 100644 index 000000000..23661b9fb --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/query.html @@ -0,0 +1,171 @@ + + + + + + + + query property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
query
+ +
+ +
+
+
+ +
+
+

query property +

+ +
+ + QueryBuilder<T> + query +
final
+ +
+ + + +
+

Implementation

+
final sdk.QueryBuilder<T> query;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/queryEmptyElement.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/queryEmptyElement.html new file mode 100644 index 000000000..c1301c738 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/queryEmptyElement.html @@ -0,0 +1,171 @@ + + + + + + + + queryEmptyElement property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
queryEmptyElement
+ +
+ +
+
+
+ +
+
+

queryEmptyElement property +

+ +
+ + Widget? + queryEmptyElement +
final
+ +
+ + + +
+

Implementation

+
final Widget? queryEmptyElement;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/removedItemBuilder.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/removedItemBuilder.html new file mode 100644 index 000000000..eb319013a --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/removedItemBuilder.html @@ -0,0 +1,171 @@ + + + + + + + + removedItemBuilder property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
removedItemBuilder
+ +
+ +
+
+
+ +
+
+

removedItemBuilder property +

+ +
+ + ChildBuilder<T>? + removedItemBuilder +
final
+ +
+ + + +
+

Implementation

+
final ChildBuilder<T>? removedItemBuilder;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/reverse.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/reverse.html new file mode 100644 index 000000000..798aff4c1 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/reverse.html @@ -0,0 +1,171 @@ + + + + + + + + reverse property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
reverse
+ +
+ +
+
+
+ +
+
+

reverse property +

+ +
+ + bool + reverse +
final
+ +
+ + + +
+

Implementation

+
final bool reverse;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollController.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollController.html new file mode 100644 index 000000000..6d6d1fefc --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollController.html @@ -0,0 +1,171 @@ + + + + + + + + scrollController property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
scrollController
+ +
+ +
+
+
+ +
+
+

scrollController property +

+ +
+ + ScrollController? + scrollController +
final
+ +
+ + + +
+

Implementation

+
final ScrollController? scrollController;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollDirection.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollDirection.html new file mode 100644 index 000000000..d0f1f57c7 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollDirection.html @@ -0,0 +1,171 @@ + + + + + + + + scrollDirection property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
scrollDirection
+ +
+ +
+
+
+ +
+
+

scrollDirection property +

+ +
+ + Axis + scrollDirection +
final
+ +
+ + + +
+

Implementation

+
final Axis scrollDirection;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollPhysics.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollPhysics.html new file mode 100644 index 000000000..9e39619e0 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollPhysics.html @@ -0,0 +1,171 @@ + + + + + + + + scrollPhysics property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
scrollPhysics
+ +
+ +
+
+
+ +
+
+

scrollPhysics property +

+ +
+ + ScrollPhysics? + scrollPhysics +
final
+ +
+ + + +
+

Implementation

+
final ScrollPhysics? scrollPhysics;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/shrinkWrap.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/shrinkWrap.html new file mode 100644 index 000000000..91c1d3b46 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/shrinkWrap.html @@ -0,0 +1,171 @@ + + + + + + + + shrinkWrap property - ParseLiveListWidget class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
shrinkWrap
+ +
+ +
+
+
+ +
+
+

shrinkWrap property +

+ +
+ + bool + shrinkWrap +
final
+ +
+ + + +
+

Implementation

+
final bool shrinkWrap;
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification-class.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification-class.html new file mode 100644 index 000000000..6546213ff --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification-class.html @@ -0,0 +1,453 @@ + + + + + + + + ParseNotification class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
ParseNotification
+ +
+ +
+
+
+ +
+
+

ParseNotification class + +

+ + + + + + +
+

Constructors

+ +
+
+ ParseNotification() +
+
+ +
factory
+
+
+
+ +
+

Properties

+ +
+
+ hashCode + int + +
+
+ The hash code for this object. +
read-onlyinherited
+ +
+ +
+ runtimeType + Type + +
+
+ A representation of the runtime type of the object. +
read-onlyinherited
+ +
+ +
+
+ + +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + + + +
+
+ Invoked when a nonexistent method or property is accessed. +
inherited
+ +
+ +
+ showNotification(dynamic title) + → void + + + +
+
+ Show notification + + +
+ +
+ toString() + String + + + +
+
+ A string representation of this object. +
inherited
+ +
+ +
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + + + +
+
+ The equality operator. +
inherited
+ +
+ +
+
+ +
+

Static Properties

+ +
+
+ instance + ParseNotification + +
+
+ +
final
+ +
+ +
+ keyNotificationChannelName + String + +
+
+ +
read / write
+ +
+ +
+
+ + + + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/ParseNotification.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/ParseNotification.html new file mode 100644 index 000000000..2f7803ef3 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/ParseNotification.html @@ -0,0 +1,148 @@ + + + + + + + + ParseNotification constructor - ParseNotification - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
ParseNotification
+ +
+ +
+
+
+ +
+
+

ParseNotification constructor +

+ +
+ + ParseNotification() +
+ + + + + +
+

Implementation

+
factory ParseNotification() {
+  return instance;
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/instance.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/instance.html new file mode 100644 index 000000000..0042fc0ab --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/instance.html @@ -0,0 +1,147 @@ + + + + + + + + instance property - ParseNotification class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
instance
+ +
+ +
+
+
+ +
+
+

instance property +

+ +
+ + ParseNotification + instance +
final
+ +
+ + + +
+

Implementation

+
static final ParseNotification instance = ParseNotification._internal();
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/keyNotificationChannelName.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/keyNotificationChannelName.html new file mode 100644 index 000000000..73918c5a8 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/keyNotificationChannelName.html @@ -0,0 +1,147 @@ + + + + + + + + keyNotificationChannelName property - ParseNotification class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
keyNotificationChannelName
+ +
+ +
+
+
+ +
+
+

keyNotificationChannelName property +

+ +
+ + String + keyNotificationChannelName +
read / write
+ +
+ + + +
+

Implementation

+
static String keyNotificationChannelName = "parse";
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/showNotification.html b/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/showNotification.html new file mode 100644 index 000000000..87e2354fa --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/showNotification.html @@ -0,0 +1,161 @@ + + + + + + + + showNotification method - ParseNotification class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
showNotification
+ +
+ +
+
+
+ +
+
+

showNotification method +

+ +
+ + +void +showNotification(
  1. dynamic title
  2. +
) + + + +
+ +
+

Show notification

+
+ + + +
+

Implementation

+
void showNotification(title) {
+  AwesomeNotifications().createNotification(
+      content: NotificationContent(
+    id: Random().nextInt(1000),
+    channelKey: keyNotificationChannelName,
+    title: title,
+  ));
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush-class.html b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush-class.html new file mode 100644 index 000000000..1a4d154f1 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush-class.html @@ -0,0 +1,521 @@ + + + + + + + + ParsePush class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
ParsePush
+ +
+ +
+
+
+ +
+
+

ParsePush class + +

+ + + + + + +
+

Constructors

+ +
+
+ ParsePush() +
+
+ +
factory
+
+
+
+ +
+

Properties

+ +
+
+ hashCode + int + +
+
+ The hash code for this object. +
read-onlyinherited
+ +
+ +
+ runtimeType + Type + +
+
+ A representation of the runtime type of the object. +
read-onlyinherited
+ +
+ +
+
+ + +
+

Methods

+
+
+ getSubscribedChannels() + Future<List> + + + +
+
+ Returns an <List> containing all the channel names this device is subscribed to + + +
+ +
+ initialize(dynamic firebaseMessaging, {String? vapidKey}) + Future<void> + + + +
+
+ Initialize ParsePush; for web a vapidKey is required. + + +
+ +
+ noSuchMethod(Invocation invocation) + → dynamic + + + +
+
+ Invoked when a nonexistent method or property is accessed. +
inherited
+ +
+ +
+ onMessage(dynamic message) + → void + + + +
+
+ Handle push notification message + + +
+ +
+ subscribeToChannel(String value) + Future<void> + + + +
+
+ Subscribes the device to a channel of push notifications + + +
+ +
+ toString() + String + + + +
+
+ A string representation of this object. +
inherited
+ +
+ +
+ unsubscribeFromChannel(String value) + Future<void> + + + +
+
+ Unsubscribes the device to a channel of push notifications + + +
+ +
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + + + +
+
+ The equality operator. +
inherited
+ +
+ +
+
+ +
+

Static Properties

+ +
+
+ instance + ParsePush + +
+
+ +
final
+ +
+ +
+ keyPushType + String + +
+
+ +
read / write
+ +
+ +
+ keyType + String + +
+
+ +
read / write
+ +
+ +
+
+ + + + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/ParsePush.html b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/ParsePush.html new file mode 100644 index 000000000..f437f52e1 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/ParsePush.html @@ -0,0 +1,153 @@ + + + + + + + + ParsePush constructor - ParsePush - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
ParsePush
+ +
+ +
+
+
+ +
+
+

ParsePush constructor +

+ +
+ + ParsePush() +
+ + + + + +
+

Implementation

+
factory ParsePush() {
+  return instance;
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/getSubscribedChannels.html b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/getSubscribedChannels.html new file mode 100644 index 000000000..e61902a16 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/getSubscribedChannels.html @@ -0,0 +1,163 @@ + + + + + + + + getSubscribedChannels method - ParsePush class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
getSubscribedChannels
+ +
+ +
+
+
+ +
+
+

getSubscribedChannels method +

+ +
+ + +Future<List> +getSubscribedChannels() + + + +
+ +
+

Returns an <List> containing all the channel names this device is subscribed to

+
+ + + +
+

Implementation

+
Future<List<dynamic>> getSubscribedChannels() async {
+  sdk.ParseInstallation parseInstallation =
+      await sdk.ParseInstallation.currentInstallation();
+
+  return await parseInstallation.getSubscribedChannels();
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/initialize.html b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/initialize.html new file mode 100644 index 000000000..1d014720a --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/initialize.html @@ -0,0 +1,178 @@ + + + + + + + + initialize method - ParsePush class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
initialize
+ +
+ +
+
+
+ +
+
+

initialize method +

+ +
+ + +Future<void> +initialize(
  1. dynamic firebaseMessaging,
  2. +
  3. {String? vapidKey}
  4. +
) + + + +
+ +
+

Initialize ParsePush; for web a vapidKey is required.

+
+ + + +
+

Implementation

+
Future<void> initialize(
+  firebaseMessaging, {
+  String? vapidKey,
+}) async {
+  // Get Google Cloud Messaging (GCM) token
+  firebaseMessaging
+      .getToken(vapidKey: vapidKey)
+      .asStream()
+      .listen((event) async {
+    // Set token in installation
+    sdk.ParseInstallation parseInstallation =
+        await sdk.ParseInstallation.currentInstallation();
+
+    parseInstallation.deviceToken = event;
+    parseInstallation.set(keyPushType, keyType);
+
+    await parseInstallation.save();
+  });
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/instance.html b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/instance.html new file mode 100644 index 000000000..2cad22a3f --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/instance.html @@ -0,0 +1,152 @@ + + + + + + + + instance property - ParsePush class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
instance
+ +
+ +
+
+
+ +
+
+

instance property +

+ +
+ + ParsePush + instance +
final
+ +
+ + + +
+

Implementation

+
static final ParsePush instance = ParsePush._internal();
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/keyPushType.html b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/keyPushType.html new file mode 100644 index 000000000..a4d1273d8 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/keyPushType.html @@ -0,0 +1,152 @@ + + + + + + + + keyPushType property - ParsePush class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
keyPushType
+ +
+ +
+
+
+ +
+
+

keyPushType property +

+ +
+ + String + keyPushType +
read / write
+ +
+ + + +
+

Implementation

+
static String keyPushType = 'pushType';
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/keyType.html b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/keyType.html new file mode 100644 index 000000000..72c0aac20 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/keyType.html @@ -0,0 +1,152 @@ + + + + + + + + keyType property - ParsePush class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
keyType
+ +
+ +
+
+
+ +
+
+

keyType property +

+ +
+ + String + keyType +
read / write
+ +
+ + + +
+

Implementation

+
static String keyType = "gcm";
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/onMessage.html b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/onMessage.html new file mode 100644 index 000000000..735f14c61 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/onMessage.html @@ -0,0 +1,171 @@ + + + + + + + + onMessage method - ParsePush class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
onMessage
+ +
+ +
+
+
+ +
+
+

onMessage method +

+ +
+ + +void +onMessage(
  1. dynamic message
  2. +
) + + + +
+ +
+

Handle push notification message

+
+ + + +
+

Implementation

+
void onMessage(message) {
+  String pushId = message.data["push_id"] ?? "";
+  String timestamp = message.data["time"] ?? "";
+  String dataString = message.data["data"] ?? "";
+  String channel = message.data["channel"] ?? "";
+
+  Map<String, dynamic>? data;
+  try {
+    data = json.decode(dataString);
+  } catch (_) {}
+
+  _handlePush(pushId, timestamp, channel, data);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/subscribeToChannel.html b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/subscribeToChannel.html new file mode 100644 index 000000000..6af7385a3 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/subscribeToChannel.html @@ -0,0 +1,164 @@ + + + + + + + + subscribeToChannel method - ParsePush class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
subscribeToChannel
+ +
+ +
+
+
+ +
+
+

subscribeToChannel method +

+ +
+ + +Future<void> +subscribeToChannel(
  1. String value
  2. +
) + + + +
+ +
+

Subscribes the device to a channel of push notifications

+
+ + + +
+

Implementation

+
Future<void> subscribeToChannel(String value) async {
+  sdk.ParseInstallation parseInstallation =
+      await sdk.ParseInstallation.currentInstallation();
+
+  await parseInstallation.subscribeToChannel(value);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/unsubscribeFromChannel.html b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/unsubscribeFromChannel.html new file mode 100644 index 000000000..93ec572c1 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/unsubscribeFromChannel.html @@ -0,0 +1,164 @@ + + + + + + + + unsubscribeFromChannel method - ParsePush class - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
unsubscribeFromChannel
+ +
+ +
+
+
+ +
+
+

unsubscribeFromChannel method +

+ +
+ + +Future<void> +unsubscribeFromChannel(
  1. String value
  2. +
) + + + +
+ +
+

Unsubscribes the device to a channel of push notifications

+
+ + + +
+

Implementation

+
Future<void> unsubscribeFromChannel(String value) async {
+  sdk.ParseInstallation parseInstallation =
+      await sdk.ParseInstallation.currentInstallation();
+
+  await parseInstallation.unsubscribeFromChannel(value);
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/StreamGetter.html b/flutter/flutter/flutter_parse_sdk_flutter/StreamGetter.html new file mode 100644 index 000000000..257dc0c27 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/StreamGetter.html @@ -0,0 +1,291 @@ + + + + + + + + StreamGetter typedef - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
StreamGetter
+ +
+ +
+
+
+ +
+
+

StreamGetter<T extends ParseObject> typedef + +

+ +
+ StreamGetter<T extends ParseObject> = + Stream<T> Function() + +
+ + + + +
+

Implementation

+
typedef StreamGetter<T extends sdk.ParseObject> = Stream<T> Function();
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/dbDirectory.html b/flutter/flutter/flutter_parse_sdk_flutter/dbDirectory.html new file mode 100644 index 000000000..5569570a3 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/dbDirectory.html @@ -0,0 +1,299 @@ + + + + + + + + dbDirectory function - flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
dbDirectory
+ +
+ +
+
+
+ +
+
+

dbDirectory function + +

+ +
+ + +Future<String> +dbDirectory() + + + +
+ + + + +
+

Implementation

+
Future<String> dbDirectory() async {
+  String dbDirectory = '';
+  dbDirectory = await CoreStoreDirectory().getDatabaseDirectory();
+  return path.join('$dbDirectory/parse', 'parse.db');
+}
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html b/flutter/flutter/flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html new file mode 100644 index 000000000..3010abe40 --- /dev/null +++ b/flutter/flutter/flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html @@ -0,0 +1,2228 @@ + + + + + + + + flutter_parse_sdk_flutter library - Dart API + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
flutter_parse_sdk_flutter
+ +
+ +
+
+
+ +
+ +
+

flutter_parse_sdk_flutter library + +

+ + + + +
+

Classes

+ +
+
+ CoreStore + +
+
+ +
+ +
+ CoreStoreMemoryImp + +
+
+ +
+ +
+ CoreStoreSembastImp + +
+
+ +
+ +
+ CoreStoreSharedPrefsImp + +
+
+ +
+ +
+ LiveQuery + +
+
+ +
+ +
+ LiveQueryClient + +
+
+ +
+ +
+ LiveQueryReconnectingController + +
+
+ +
+ +
+ Parse + +
+
+ +
+ +
+ ParseACL + +
+
+ ParseACL is used to control which users can access or modify a particular object +ParseObject can have its own ParseACL +You can grant read and write permissions separately to specific users + or you can grant permissions to "the public" so that, for example, any user could read a particular object but +only a particular set of users could write to that object +
+ +
+ ParseBase + +
+
+ +
+ +
+ ParseClient + +
+
+ +
+ +
+ ParseCloneable + +
+
+ Creates method which can be used to deep clone objects +
+ +
+ ParseCloudFunction + +
+
+ +
+ +
+ ParseConfig + +
+
+ +
+ +
+ ParseConnectivityProvider + +
+
+ +
+ +
+ ParseCoreData + +
+
+ Singleton class that defines all user keys and data +
+ +
+ ParseDioClient + +
+
+ +
+ +
+ ParseError + +
+
+ ParseException is used in ParseResult to inform the user of the exception +
+ +
+ ParseFile + +
+
+ +
+ +
+ ParseFileBase + +
+
+ +
+ +
+ ParseGeoPoint + +
+
+ +
+ +
+ ParseHTTPClient + +
+
+ +
+ +
+ ParseInstallation + +
+
+ +
+ +
+ ParseLiveElement<T extends ParseObject> + +
+
+ +
+ +
+ ParseLiveGridWidget<T extends ParseObject> + +
+
+ +
+ +
+ ParseLiveList<T extends ParseObject> + +
+
+ +
+ +
+ ParseLiveListAddEvent<T extends ParseObject> + +
+
+ +
+ +
+ ParseLiveListDeleteEvent<T extends ParseObject> + +
+
+ +
+ +
+ ParseLiveListElement<T extends ParseObject> + +
+
+ +
+ +
+ ParseLiveListElementSnapshot<T extends ParseObject> + +
+
+ +
+ +
+ ParseLiveListElementWidget<T extends ParseObject> + +
+
+ +
+ +
+ ParseLiveListEvent<T extends ParseObject> + +
+
+ +
+ +
+ ParseLiveListUpdateEvent<T extends ParseObject> + +
+
+ +
+ +
+ ParseLiveListWidget<T extends ParseObject> + +
+
+ +
+ +
+ ParseNetworkByteResponse + +
+
+ +
+ +
+ ParseNetworkOptions + +
+
+ +
+ +
+ ParseNetworkResponse + +
+
+ +
+ +
+ ParseNotification + +
+
+ +
+ +
+ ParseObject + +
+
+ ParseObject is a local representation of data that can be saved and +retrieved from the Parse cloud. +
+ +
+ ParsePush + +
+
+ +
+ +
+ ParseRelation<T extends ParseObject> + +
+
+ +
+ +
+ ParseResponse + +
+
+ +
+ +
+ ParseSession + +
+
+ +
+ +
+ ParseSubClassHandler + +
+
+ +
+ +
+ ParseUser + +
+
+ +
+ +
+ ParseWebFile + +
+
+ +
+ +
+ PathKey + +
+
+ +
+ +
+ QueryBuilder<T extends ParseObject> + +
+
+ Class to create complex queries +
+ +
+ Subscription<T extends ParseObject> + +
+
+ +
+ +
+
+ + + +
+

Constants

+ +
+
+ keyAppIdentifier + → const String + + +
+
+ + + +
+ 'appIdentifier' +
+
+ +
+ keyAppName + → const String + + +
+
+ + + +
+ 'appName' +
+
+ +
+ keyAppVersion + → const String + + +
+
+ + + +
+ 'appVersion' +
+
+ +
+ keyClassInstallation + → const String + + +
+
+ + + +
+ '_Installation' +
+
+ +
+ keyClassMain + → const String + + +
+
+ + + +
+ 'ParseMain' +
+
+ +
+ keyClassSession + → const String + + +
+
+ + + +
+ '_Session' +
+
+ +
+ keyClassUser + → const String + + +
+
+ + + +
+ '_User' +
+
+ +
+ keyCode + → const String + + +
+
+ + + +
+ 'code' +
+
+ +
+ keyDeviceToken + → const String + + +
+
+ + + +
+ 'deviceToken' +
+
+ +
+ keyDeviceType + → const String + + +
+
+ + + +
+ 'deviceType' +
+
+ +
+ keyEndPointAggregate + → const String + + +
+
+ + + +
+ '/aggregate/' +
+
+ +
+ keyEndPointClasses + → const String + + +
+
+ + + +
+ '/classes/' +
+
+ +
+ keyEndPointHealth + → const String + + +
+
+ + + +
+ '/health' +
+
+ +
+ keyEndPointInstallations + → const String + + +
+
+ + + +
+ '/installations' +
+
+ +
+ keyEndPointLogin + → const String + + +
+
+ + + +
+ '/login' +
+
+ +
+ keyEndPointLogout + → const String + + +
+
+ + + +
+ '/logout' +
+
+ +
+ keyEndPointRequestPasswordReset + → const String + + +
+
+ + + +
+ '/requestPasswordReset' +
+
+ +
+ keyEndPointSessions + → const String + + +
+
+ + + +
+ '/sessions' +
+
+ +
+ keyEndPointUserName + → const String + + +
+
+ + + +
+ '/users/me' +
+
+ +
+ keyEndPointUsers + → const String + + +
+
+ + + +
+ '/users' +
+
+ +
+ keyEndPointVerificationEmail + → const String + + +
+
+ + + +
+ '/verificationEmailRequest' +
+
+ +
+ keyError + → const String + + +
+
+ + + +
+ 'error' +
+
+ +
+ keyFile + → const String + + +
+
+ + + +
+ 'File' +
+
+ +
+ keyFileClassname + → const String + + +
+
+ + + +
+ 'ParseFile' +
+
+ +
+ keyGeoPoint + → const String + + +
+
+ + + +
+ 'GeoPoint' +
+
+ +
+ keyHeaderApplicationId + → const String + + +
+
+ + + +
+ 'X-Parse-Application-Id' +
+
+ +
+ keyHeaderClientKey + → const String + + +
+
+ + + +
+ 'X-Parse-Client-Key' +
+
+ +
+ keyHeaderContentType + → const String + + +
+
+ + + +
+ 'content-type' +
+
+ +
+ keyHeaderContentTypeJson + → const String + + +
+
+ + + +
+ 'application/json' +
+
+ +
+ keyHeaderInstallationId + → const String + + +
+
+ + + +
+ 'X-Parse-Installation-Id' +
+
+ +
+ keyHeaderMasterKey + → const String + + +
+
+ + + +
+ 'X-Parse-Master-Key' +
+
+ +
+ keyHeaderRevocableSession + → const String + + +
+
+ + + +
+ 'X-Parse-Revocable-Session' +
+
+ +
+ keyHeaderSessionToken + → const String + + +
+
+ + + +
+ 'X-Parse-Session-Token' +
+
+ +
+ keyHeaderUserAgent + → const String + + +
+
+ + + +
+ 'user-agent' +
+
+ +
+ keyInstallationId + → const String + + +
+
+ + + +
+ 'installationId' +
+
+ +
+ keyLatitude + → const String + + +
+
+ + + +
+ 'latitude' +
+
+ +
+ keyLibraryName + → const String + + +
+
+ + + +
+ 'Flutter Parse SDK' +
+
+ +
+ keyLocaleIdentifier + → const String + + +
+
+ + + +
+ 'localeIdentifier' +
+
+ +
+ keyLongitude + → const String + + +
+
+ + + +
+ 'longitude' +
+
+ +
+ keyParamSessionToken + → const String + + +
+
+ + + +
+ 'sessionToken' +
+
+ +
+ keyParseStoreBase + → const String + + +
+
+ + + +
+ 'flutter_parse_sdk_' +
+
+ +
+ keyParseStoreInstallation + → const String + + +
+
+ + + +
+ '${keyParseStoreBase}installation' +
+
+ +
+ keyParseStoreUser + → const String + + +
+
+ + + +
+ '${keyParseStoreBase}user' +
+
+ +
+ keyParseVersion + → const String + + +
+
+ + + +
+ 'parseVersion' +
+
+ +
+ keyRelation + → const String + + +
+
+ + + +
+ 'Relation' +
+
+ +
+ keySdkVersion + → const String + + +
+
+ + + +
+ '5.1.1' +
+
+ +
+ keyTimeZone + → const String + + +
+
+ + + +
+ 'timeZone' +
+
+ +
+ keyVarAcl + → const String + + +
+
+ + + +
+ 'ACL' +
+
+ +
+ keyVarAuthData + → const String + + +
+
+ + + +
+ 'authData' +
+
+ +
+ keyVarClassName + → const String + + +
+
+ + + +
+ 'className' +
+
+ +
+ keyVarCreatedAt + → const String + + +
+
+ + + +
+ 'createdAt' +
+
+ +
+ keyVarCreatedWith + → const String + + +
+
+ + + +
+ 'createdWith' +
+
+ +
+ keyVarEmail + → const String + + +
+
+ + + +
+ 'email' +
+
+ +
+ keyVarExpiresAt + → const String + + +
+
+ + + +
+ 'expiresAt' +
+
+ +
+ keyVarInstallationId + → const String + + +
+
+ + + +
+ 'installationId' +
+
+ +
+ keyVarName + → const String + + +
+
+ + + +
+ 'name' +
+
+ +
+ keyVarObjectId + → const String + + +
+
+ + + +
+ 'objectId' +
+
+ +
+ keyVarPassword + → const String + + +
+
+ + + +
+ 'password' +
+
+ +
+ keyVarRestricted + → const String + + +
+
+ + + +
+ 'restricted' +
+
+ +
+ keyVarSessionToken + → const String + + +
+
+ + + +
+ 'sessionToken' +
+
+ +
+ keyVarUpdatedAt + → const String + + +
+
+ + + +
+ 'updatedAt' +
+
+ +
+ keyVarURL + → const String + + +
+
+ + + +
+ 'url' +
+
+ +
+ keyVarUser + → const String + + +
+
+ + + +
+ 'user' +
+
+ +
+ keyVarUsername + → const String + + +
+
+ + + +
+ 'username' +
+
+ +
+ parseIsWeb + → const bool + + +
+
+ + + +
+ identical(0, 0.0) +
+
+ +
+
+ + +
+

Functions

+ +
+
+ apple(String token, String id) + Map<String, dynamic> + + + +
+
+ + + +
+ +
+ batchRequest(List requests, List<ParseObject> objects, {ParseClient? client, bool? debug}) + Future<ParseResponse> + + + +
+
+ + + +
+ +
+ buildErrorResponse(ParseResponse response, ParseNetworkResponse apiResponse) + ParseResponse + + + +
+
+ Handles any errors returned in response + + +
+ +
+ buildParseResponseWithException(Exception exception) + ParseResponse + + + +
+
+ Handles exception instead of throwing an exception + + +
+ +
+ buildSuccessResponseWithNoResults(ParseResponse response, int code, String value) + ParseResponse + + + +
+
+ Handles successful responses with no results + + +
+ +
+ concatenateArray(List<String> list) + String + + + +
+
+ Convert list of strings to a string with commas + + +
+ +
+ convertValueToCorrectType(dynamic value) + → dynamic + + + +
+
+ Converts the object to the correct value for JSON, + + +
+ +
+ dateTimeEncoder(dynamic item) + → dynamic + + + +
+
+ Custom encoder for DateTime + + +
+ +
+ dbDirectory() + Future<String> + + + +
+
+ + + +
+ +
+ encodeObject(String className, String objectId) + Map<String, String> + + + +
+
+ + + +
+ +
+ facebook(String token, String id, DateTime expires) + Map<String, dynamic> + + + +
+
+ + + +
+ +
+ getCustomUri(ParseClient client, String path, {Map<String, dynamic>? queryParams, String? query}) + Uri + + + +
+
+ Sanitises a url + + +
+ +
+ getSanitisedUri(ParseClient client, String pathToAppend, {Map<String, dynamic>? queryParams, String? query}) + Uri + + + +
+
+ Sanitises a url + + +
+ +
+ getXXTeaSembastCodec({required String password}) + SembastCodec + + + +
+
+ Create a codec to use when opening an encrypted sembast database + + +
+ +
+ google(String token, String id, String idToken) + Map<String, dynamic> + + + +
+
+ + + +
+ +
+ handleException(Exception exception, ParseApiRQ type, bool debug, String className) + ParseResponse + + + +
+
+ Handles an API response and logs data if bool debug is enabled + + +
+ +
+ handleResponse<T>(dynamic object, ParseNetworkResponse response, ParseApiRQ type, bool debug, String className) + ParseResponse + + + +
+
+ Handles an API response and logs data if bool debug is enabled + + +
+ +
+ isDebugEnabled({bool? objectLevelDebug}) + bool + + + +
+
+ Checks whether debug is enabled + + +
+ +
+ isSuccessButNoResults(ParseNetworkResponse apiResponse) + bool + + + +
+
+ + + +
+ +
+ isUnsuccessfulResponse(ParseNetworkResponse apiResponse) + bool + + + +
+
+ + + +
+ +
+ logAPIResponse(String className, String type, ParseResponse parseResponse) + → void + + + +
+
+ + + +
+ +
+ logRequest(String? appName, String className, String type, String uri, String body) + → void + + + +
+
+ + + +
+ +
+ parseDecode(dynamic value) + → dynamic + + + +
+
+ Decode any type value + + +
+ +
+ parseEncode(dynamic value, {bool full = false}) + → dynamic + + + +
+
+ Custom json encoder for types related to parse + + +
+ +
+ removeDuplicateParseObjectByObjectId(Iterable iterable) + List + + + +
+
+ + + +
+ +
+ removeTrailingSlash(String serverUrl) + String + + + +
+
+ Removes unncessary / + + +
+ +
+ shouldReturnAsABaseResult(ParseApiRQ type) + bool + + + +
+
+ + + +
+ +
+
+ +
+

Enums

+ +
+
+ LiveQueryClientEvent + +
+
+ +
+ +
+ LiveQueryEvent + +
+
+ +
+ +
+ ParseApiRQ + +
+
+ Used to define the API calls made in ParseObject logs +
+ +
+ ParseConnectivityResult + +
+
+ Connection status check result. +
+ +
+ ParseNetworkResponseType + +
+
+ +
+ +
+
+ +
+

Typedefs

+ +
+ +
+ ChildBuilder<T extends ParseObject> + = Widget Function(BuildContext context, ParseLiveListElementSnapshot<T> snapshot) + + + +
+
+ + + +
+ + +
+ DataGetter<T extends ParseObject> + = T? Function() + + + +
+
+ + + +
+ + +
+ ParseClientCreator + = ParseClient Function({SecurityContext? securityContext, required bool sendSessionId}) + + + +
+
+ + + +
+ + +
+ ParseFileConstructor + = ParseFileBase Function({String? name, String? url}) + + + +
+
+ + + +
+ + +
+ ParseObjectConstructor + = ParseObject Function() + + + +
+
+ + + +
+ + +
+ ParseUserConstructor + = ParseUser Function(String? username, String? password, String? emailAddress, {ParseClient? client, bool? debug, String? sessionToken}) + + + +
+
+ + + +
+ + +
+ ProgressCallback + = void Function(int count, int total) + + + +
+
+ Callback to listen the progress for sending/receiving data. + + +
+ + +
+ StreamGetter<T extends ParseObject> + = Stream<T> Function() + + + +
+
+ + + +
+ +
+
+ +
+

Exceptions / Errors

+ +
+
+ ParseException + +
+
+ +
+ +
+ ParseOperationException + +
+
+ +
+ +
+ ParseRelationException + +
+
+ +
+ +
+
+ +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/index.html b/flutter/flutter/index.html new file mode 100644 index 000000000..1c1e1799a --- /dev/null +++ b/flutter/flutter/index.html @@ -0,0 +1,993 @@ + + + + + + + + + parse_server_sdk_flutter - Dart API docs + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
parse_server_sdk_flutter
+ +
+ +
+
+
+ +
+ +
+

parse-repository-header-sdk-flutter

+
+

This library gives you access to the powerful Parse Server backend from your Flutter app. For more information on Parse Platform and its features, visit parseplatform.org.

+
+ +
+

Compatibility

+

The Parse Flutter SDK is continuously tested with the most recent release of the Flutter framework to ensure compatibility. To give developers time to upgrade their app to the newest Flutter framework, previous Flutter framework releases are supported for at least 1 year after their release date. The Parse Flutter SDK depends on the Parse Dart SDK which may require a higher Dart framework version than the Flutter framework version, in which case the Flutter framework version cannot be supported even though its release date may have been less than a year ago.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersionEnd of SupportCompatible
Flutter 3.10May 2024❌ No
Flutter 3.7Apr 2024✅ Yes
Flutter 3.3Jan 2024✅ Yes
Flutter 3.0Jul 2023❌ No (Parse Flutter SDK requires Flutter >=3.3.0)
+

Example Apps

+

Example Flutter apps can be found in the GitHub repository's example directory.

+

Getting Started

+

To install add the dependency to your pubspec.yaml file.

+

Once you have the library added to your project, upon first call to your app (Similar to what your application class would be) add the following...

+
await Parse().initialize(
+        keyApplicationId,
+        keyParseServerUrl);
+
+

If you want to use secure storage or use the Flutter web/desktop SDK, please change to the below instance of CoreStorage as it has no dependencies on Flutter.

+

The CoreStoreSembastImp does not encrypt the data on web! (Web is not safe anyway. Encrypt fields manually as needed.)

+

+await Parse().initialize(
+  	keyParseApplicationId, 
+  	keyParseServerUrl,
+    coreStore: await CoreStoreSembastImp.getInstance());
+
+

It's possible to add other parameters to work with your instance of Parse Server:-

+
  await Parse().initialize(
+        keyApplicationId,
+        keyParseServerUrl,
+        clientKey: keyParseClientKey, // Required for some setups
+        debug: true, // When enabled, prints logs to console
+        liveQueryUrl: keyLiveQueryUrl, // Required if using LiveQuery 
+        autoSendSessionId: true, // Required for authentication and ACL
+        securityContext: securityContext, // Again, required for some setups
+	coreStore: await CoreStoreSharedPrefsImp.getInstance()); // Local data storage method. Will use SharedPreferences instead of Sembast as an internal DB
+
+

⚠️ Please note that the master key should only be used in safe environments and never on client side ‼️

+

Web support

+

Due to Cross-origin resource sharing (CORS) restrictions, this requires adding X-Parse-Installation-Id as an allowed header to parse-server. +When running directly via docker, set the env var PARSE_SERVER_ALLOW_HEADERS=X-Parse-Installation-Id. +When running via express, set ParseServerOptions allowHeaders: ['X-Parse-Installation-Id'].

+

Desktop Support (macOS)

+

The security entitlements posed by the macOS framework require that your app is granted permission to open outgoing network connections, so that the Parse Flutter SDK can communicate with Parse Server. To grant this permission, add the following lines:

+
<key>com.apple.security.network.client</key>
+<true/>
+
+

to the following files:

+
/macOS/Runner/Release.entitlements
+/macOS/Runner/DebugProfile.entitlements
+
+

to help the Parse SDK for Flutter communicate with the Web to access the server and send/retrive data.

+

Network client

+

By default, this SDK uses the ParseHTTPClient. +Another option is use ParseDioClient. This client supports the most features (for example a progress callback at the file upload), but a benchmark has shown, that dio is slower than http on web.

+

If you want to use the ParseDioClient, which uses the dio network library, +you can provide a custom ParseClientCreator at the initialization of the SDK.

+
await Parse().initialize(
+  //...
+  clientCreator: ({bool? sendSessionId, SecurityContext? securityContext}) => ParseDioClient(sendSessionId: sendSessionId, securityContext: securityContext),
+);
+
+

Objects

+

You can create custom objects by calling:

+
var dietPlan = ParseObject('DietPlan')
+	..set('Name', 'Ketogenic')
+	..set('Fat', 65);
+await dietPlan.save();
+
+

Or update existing object by its objectId by calling:

+
var dietPlan = ParseObject('DietPlan')
+	..objectId = 'R5EonpUDWy'
+	..set('Fat', 70);
+await dietPlan.save();
+
+

Verify that the object has been successfully saved using

+
var response = await dietPlan.save();
+if (response.success) {
+   dietPlan = response.results.first;
+}
+
+

Types supported:

+
    +
  • String
  • +
  • Double
  • +
  • Int
  • +
  • Boolean
  • +
  • DateTime
  • +
  • File
  • +
  • Geopoint
  • +
  • ParseObject/ParseUser (Pointer)
  • +
  • Map
  • +
  • List (all types supported)
  • +
+

You then have the ability to do the following with that object: +The features available are:-

+
    +
  • Get
  • +
  • GetAll
  • +
  • Create
  • +
  • Save
  • +
  • Query - By object Id
  • +
  • Delete
  • +
  • Complex queries as shown above
  • +
  • Pin
  • +
  • Plenty more
  • +
  • Counters
  • +
  • Array Operators
  • +
+

Custom Objects

+

You can create your own ParseObjects or convert your existing objects into Parse Objects by doing the following:

+
class DietPlan extends ParseObject implements ParseCloneable {
+
+  DietPlan() : super(_keyTableName);
+  DietPlan.clone(): this();
+
+  /// Looks strangely hacky but due to Flutter not using reflection, we have to
+  /// mimic a clone
+  @override clone(Map map) => DietPlan.clone()..fromJson(map);
+
+  static const String _keyTableName = 'Diet_Plans';
+  static const String keyName = 'Name';
+  
+  String get name => get<String>(keyName);
+  set name(String name) => set<String>(keyName, name);
+}
+  
+
+

When receiving an ParseObject from the SDK, you can often provide an instance of your custom object as an copy object. +To always use your custom object class, you can register your subclass at the initialization of the SDK.

+
Parse().initialize(
+   ...,
+   registeredSubClassMap: <String, ParseObjectConstructor>{
+     'Diet_Plans': () => DietPlan(),
+   },
+   parseUserConstructor: (username, password, emailAddress, {client, debug, sessionToken}) => CustomParseUser(username, password, emailAddress),
+);
+
+

Additionally you can register SubClasses after the initialization of the SDK.

+
ParseCoreData().registerSubClass('Diet_Plans', () => DietPlan());
+ParseCoreData().registerUserSubClass((username, password, emailAddress, {client, debug, sessionToken}) => CustomParseUser(username, password, emailAddress));
+
+

Providing a ParseObject as described above should still work, even if you have registered a different SubClass.

+

For custom file classes have a lock at here.

+

Add new values to objects

+

To add a variable to an object call and retrieve it, call

+
dietPlan.set<int>('RandomInt', 8);
+var randomInt = dietPlan.get<int>('RandomInt');
+
+

Save objects using pins

+

You can now save an object by calling .pin() on an instance of an object

+
dietPlan.pin();
+
+

and to retrieve it

+
var dietPlan = DietPlan().fromPin('OBJECT ID OF OBJECT');
+
+

Storage

+

We now have 2 types of storage, secure and unsecure. We currently rely on 2 third party options:

+
    +
  • SharedPreferences
  • +
  • Sembast +Sembast offers secured storage, whilst SharePreferences wraps NSUserDefaults (on iOS) and SharedPreferences (on Android).
  • +
+

The storage method is defined in the parameter coreStore in Parse().initialize

+

Check sample code for options

+

Increment Counter Values

+

Retrieve it, call

+
var response = await dietPlan.increment("count", 1);
+
+
+

or using with save function

+
dietPlan.setIncrement('count', 1);
+dietPlan.setDecrement('count', 1);
+var response = dietPlan.save()
+
+
+

Array Operator

+

Retrieve it, call

+
var response = await dietPlan.add("listKeywords", ["a", "a","d"]);
+
+var response = await dietPlan.addUnique("listKeywords", ["a", "a","d"]);
+
+var response = await dietPlan.remove("listKeywords", ["a"]);
+
+
+

or using with save function

+
dietPlan.setAdd('listKeywords', ['a','a','d']);
+dietPlan.setAddUnique('listKeywords', ['a','a','d']);
+dietPlan.setRemove('listKeywords', ['a']);
+var response = dietPlan.save()
+
+

Queries

+

Once you have setup the project and initialised the instance, you can then retreive data from your server by calling:

+
var apiResponse = await ParseObject('ParseTableName').getAll();
+
+if (apiResponse.success){
+  for (var testObject in apiResponse.result) {
+    print(ApplicationConstants.APP_NAME + ": " + testObject.toString());
+  }
+}
+
+

Or you can get an object by its objectId:

+
var dietPlan = await DietPlan().getObject('R5EonpUDWy');
+
+if (dietPlan.success) {
+  print(ApplicationConstants.keyAppName + ": " + (dietPlan.result as DietPlan).toString());
+} else {
+  print(ApplicationConstants.keyAppName + ": " + dietPlan.exception.message);
+}
+
+

To query for user objects, you could use the function ParseUser.forQuery() like this:

+
var queryBuilder  = QueryBuilder<ParseUser>(ParseUser.forQuery())
+  ..whereEqualTo('activated', true);
+
+var response = await queryBuilder.query();
+
+if (response.success) {
+  print(response.results);
+} else {
+  print(response.exception.message);
+}
+
+

Alternative Query Methods

+

The standard query method query() returns a ParseResponse that contains the result or the error. As an alternative, you can also use Future<List<T>> find() for receiving options. +This method returns an Future that either resolves in an error (equivalent of the error in the ParseResponse) or an List containing the queried objects. One difference, you should be aware of, is the fact, that Future<List<T>> find() will return an empty list instead of the 'No results' error you receive in case no object matches you query.

+

Choosing between query() and find() comes down to personal preference. Both methods can be used for querying a ParseQuery, just the output method differs.

+

Similar to find() the QueryBuilder also has a function called Future<T?> first(). Just like find() first() is just a convenience method that makes querying the first object satisfying the query simpler. first() returns an Future, that resoles in an error or the first object matching the query. In case no object satisfies the query, the result will be null.

+

Complex Queries

+

You can create complex queries to really put your database to the test:

+
var queryBuilder = QueryBuilder<DietPlan>(DietPlan())
+  ..startsWith(DietPlan.keyName, "Keto")
+  ..greaterThan(DietPlan.keyFat, 64)
+  ..lessThan(DietPlan.keyFat, 66)
+  ..equals(DietPlan.keyCarbs, 5);
+
+var response = await queryBuilder.query();
+
+if (response.success) {
+  print(ApplicationConstants.keyAppName + ": " + ((response.results as List<dynamic>).first as DietPlan).toString());
+} else {
+  print(ApplicationConstants.keyAppName + ": " + response.exception.message);
+}
+
+

if you want to find objects that match one of several queries, you can use QueryBuilder.or method to construct a query that is an OR of the queries passed in. For instance if you want to find players who either have a lot of wins or a few wins, you can do:

+
ParseObject playerObject = ParseObject("Player");
+
+QueryBuilder<ParseObject> lotsOfWins =
+    QueryBuilder<ParseObject>(playerObject))
+      ..whereGreaterThan('wins', 50);
+
+QueryBuilder<ParseObject> fewWins =
+    QueryBuilder<ParseObject>(playerObject)
+      ..whereLessThan('wins', 5);
+
+QueryBuilder<ParseObject> mainQuery = QueryBuilder.or(
+      playerObject,
+      [lotsOfWins, fewWins],
+    );
+
+var apiResponse = await mainQuery.query();
+
+

To find objects that match several queries use QueryBuilder.and. To find objects that do not match any given query use QueryBuilder.nor.

+

The features available are:-

+
    +
  • Equals
  • +
  • Contains
  • +
  • LessThan
  • +
  • LessThanOrEqualTo
  • +
  • GreaterThan
  • +
  • GreaterThanOrEqualTo
  • +
  • NotEqualTo
  • +
  • StartsWith
  • +
  • EndsWith
  • +
  • Exists
  • +
  • Near
  • +
  • WithinMiles
  • +
  • WithinKilometers
  • +
  • WithinRadians
  • +
  • WithinGeoBox
  • +
  • WithinPolygon
  • +
  • MatchesQuery
  • +
  • DoesNotMatchQuery
  • +
  • MatchesKeyInQuery
  • +
  • DoesNotMatchKeyInQuery
  • +
  • Regex
  • +
  • Order
  • +
  • Limit
  • +
  • Skip
  • +
  • Ascending
  • +
  • Descending
  • +
  • Plenty more!
  • +
+

Relational queries

+

If you want to retrieve objects where a field contains an object that matches another query, you can use the +whereMatchesQuery condition. +For example, imagine you have Post class and a Comment class, where each Comment has a pointer to its parent Post. +You can find comments on posts with images by doing:

+
QueryBuilder<ParseObject> queryPost =
+    QueryBuilder<ParseObject>(ParseObject('Post'))
+      ..whereValueExists('image', true);
+
+QueryBuilder<ParseObject> queryComment =
+    QueryBuilder<ParseObject>(ParseObject('Comment'))
+      ..whereMatchesQuery('post', queryPost);
+
+var apiResponse = await queryComment.query();
+
+

If you want to retrieve objects where a field contains an object that does not match another query, you can use the +whereDoesNotMatchQuery condition. +Imagine you have Post class and a Comment class, where each Comment has a pointer to its parent Post. +You can find comments on posts without images by doing:

+
QueryBuilder<ParseObject> queryPost =
+    QueryBuilder<ParseObject>(ParseObject('Post'))
+      ..whereValueExists('image', true);
+
+QueryBuilder<ParseObject> queryComment =
+    QueryBuilder<ParseObject>(ParseObject('Comment'))
+      ..whereDoesNotMatchQuery('post', queryPost);
+
+var apiResponse = await queryComment.query();
+
+

You can use the whereMatchesKeyInQuery method to get objects where a key matches the value of a key in a set of objects resulting from another query. For example, if you have a class containing sports teams and you store a user’s hometown in the user class, you can issue one query to find the list of users whose hometown teams have winning records. The query would look like::

+
QueryBuilder<ParseObject> teamQuery =
+    QueryBuilder<ParseObject>(ParseObject('Team'))
+      ..whereGreaterThan('winPct', 0.5);
+
+QueryBuilder<ParseUser> userQuery =
+    QueryBuilder<ParseUser>ParseUser.forQuery())
+      ..whereMatchesKeyInQuery('hometown', 'city', teamQuery);
+
+var apiResponse = await userQuery.query();
+
+

Conversely, to get objects where a key does not match the value of a key in a set of objects resulting from another query, use whereDoesNotMatchKeyInQuery. For example, to find users whose hometown teams have losing records:

+
QueryBuilder<ParseObject> teamQuery =
+    QueryBuilder<ParseObject>(ParseObject('Team'))
+      ..whereGreaterThan('winPct', 0.5);
+
+QueryBuilder<ParseUser> losingUserQuery =
+    QueryBuilder<ParseUser>ParseUser.forQuery())
+      ..whereDoesNotMatchKeyInQuery('hometown', 'city', teamQuery);
+
+var apiResponse = await losingUserQuery.query();
+
+

To filter rows based on objectId’s from pointers in a second table, you can use dot notation:

+
QueryBuilder<ParseObject> rolesOfTypeX =
+    QueryBuilder<ParseObject>(ParseObject('Role'))
+      ..whereEqualTo('type', 'x');
+
+QueryBuilder<ParseObject> groupsWithRoleX =
+    QueryBuilder<ParseObject>(ParseObject('Group')))
+      ..whereMatchesKeyInQuery('objectId', 'belongsTo.objectId', rolesOfTypeX);
+
+var apiResponse = await groupsWithRoleX.query();
+
+

Counting Objects

+

If you only care about the number of games played by a particular player:

+
QueryBuilder<ParseObject> queryPlayers =
+    QueryBuilder<ParseObject>(ParseObject('GameScore'))
+      ..whereEqualTo('playerName', 'Jonathan Walsh');
+var apiResponse = await queryPlayers.count();
+if (apiResponse.success && apiResponse.result != null) {
+  int countGames = apiResponse.count;
+}
+
+

Live Queries

+

This tool allows you to subscribe to a QueryBuilder you are interested in. Once subscribed, the server will notify clients +whenever a ParseObject that matches the QueryBuilder is created or updated, in real-time.

+

Parse LiveQuery contains two parts, the LiveQuery server and the LiveQuery clients. In order to use live queries, you need +to set up both of them.

+

The Parse Server configuration guide on the server is found here https://docs.parseplatform.org/parse-server/guide/#live-queries and is not part of this documentation.

+

Initialize the Parse Live Query by entering the parameter liveQueryUrl in Parse().initialize:

+
Parse().initialize(
+      keyApplicationId,
+      keyParseServerUrl,
+      clientKey: keyParseClientKey,
+      debug: true,
+      liveQueryUrl: keyLiveQueryUrl,
+      autoSendSessionId: true);
+
+

Declare LiveQuery:

+
final LiveQuery liveQuery = LiveQuery();
+
+

Set the QueryBuilder that will be monitored by LiveQuery:

+
QueryBuilder<ParseObject> query =
+  QueryBuilder<ParseObject>(ParseObject('TestAPI'))
+  ..whereEqualTo('intNumber', 1);
+
+

Create a subscription +You’ll get the LiveQuery events through this subscription. +The first time you call subscribe, we’ll try to open the WebSocket connection to the LiveQuery server for you.

+
Subscription subscription = await liveQuery.client.subscribe(query);
+
+

Event Handling +We define several types of events you’ll get through a subscription object:

+

Create event +When a new ParseObject is created and it fulfills the QueryBuilder you subscribe, you’ll get this event. +The object is the ParseObject which was created.

+
subscription.on(LiveQueryEvent.create, (value) {
+    print('*** CREATE ***: ${DateTime.now().toString()}\n $value ');
+    print((value as ParseObject).objectId);
+    print((value as ParseObject).updatedAt);
+    print((value as ParseObject).createdAt);
+    print((value as ParseObject).get('objectId'));
+    print((value as ParseObject).get('updatedAt'));
+    print((value as ParseObject).get('createdAt'));
+});
+
+

Update event +When an existing ParseObject which fulfills the QueryBuilder you subscribe is updated (The ParseObject fulfills the +QueryBuilder before and after changes), you’ll get this event. +The object is the ParseObject which was updated. Its content is the latest value of the ParseObject.

+
subscription.on(LiveQueryEvent.update, (value) {
+    print('*** UPDATE ***: ${DateTime.now().toString()}\n $value ');
+    print((value as ParseObject).objectId);
+    print((value as ParseObject).updatedAt);
+    print((value as ParseObject).createdAt);
+    print((value as ParseObject).get('objectId'));
+    print((value as ParseObject).get('updatedAt'));
+    print((value as ParseObject).get('createdAt'));
+});
+
+

Enter event +When an existing ParseObject’s old value does not fulfill the QueryBuilder but its new value fulfills the QueryBuilder, +you’ll get this event. The object is the ParseObject which enters the QueryBuilder. +Its content is the latest value of the ParseObject.

+
subscription.on(LiveQueryEvent.enter, (value) {
+    print('*** ENTER ***: ${DateTime.now().toString()}\n $value ');
+    print((value as ParseObject).objectId);
+    print((value as ParseObject).updatedAt);
+    print((value as ParseObject).createdAt);
+    print((value as ParseObject).get('objectId'));
+    print((value as ParseObject).get('updatedAt'));
+    print((value as ParseObject).get('createdAt'));
+});
+
+

Leave event +When an existing ParseObject’s old value fulfills the QueryBuilder but its new value doesn’t fulfill the QueryBuilder, +you’ll get this event. The object is the ParseObject which leaves the QueryBuilder. +Its content is the latest value of the ParseObject.

+
subscription.on(LiveQueryEvent.leave, (value) {
+    print('*** LEAVE ***: ${DateTime.now().toString()}\n $value ');
+    print((value as ParseObject).objectId);
+    print((value as ParseObject).updatedAt);
+    print((value as ParseObject).createdAt);
+    print((value as ParseObject).get('objectId'));
+    print((value as ParseObject).get('updatedAt'));
+    print((value as ParseObject).get('createdAt'));
+});
+
+

Delete event +When an existing ParseObject which fulfills the QueryBuilder is deleted, you’ll get this event. +The object is the ParseObject which is deleted

+
subscription.on(LiveQueryEvent.delete, (value) {
+    print('*** DELETE ***: ${DateTime.now().toString()}\n $value ');
+    print((value as ParseObject).objectId);
+    print((value as ParseObject).updatedAt);
+    print((value as ParseObject).createdAt);
+    print((value as ParseObject).get('objectId'));
+    print((value as ParseObject).get('updatedAt'));
+    print((value as ParseObject).get('createdAt'));
+});
+
+

Unsubscribe +If you would like to stop receiving events from a QueryBuilder, you can just unsubscribe the subscription. +After that, you won’t get any events from the subscription object and will close the WebSocket connection to the +LiveQuery server.

+
liveQuery.client.unSubscribe(subscription);
+
+

Disconnection +In case the client's connection to the server breaks, +LiveQuery will automatically try to reconnect. +LiveQuery will wait at increasing intervals between reconnection attempts. +By default, these intervals are set to [0, 500, 1000, 2000, 5000, 10000] for mobile and [0, 500, 1000, 2000, 5000] for web. +You can change these by providing a custom list using the liveListRetryIntervals parameter at Parse.initialize() ("-1" means "do not try to reconnect").

+

ParseLiveList

+

ParseLiveList makes implementing a dynamic List as simple as possible.

+

General Use

+

It ships with the ParseLiveList class itself, this class manages all elements of the list, sorts them, +keeps itself up to date and Notifies you on changes.

+

ParseLiveListWidget is a widget that handles all the communication with the ParseLiveList for you. +Using ParseLiveListWidget you can create a dynamic List by just providing a QueryBuilder.

+
ParseLiveListWidget<ParseObject>(
+      query: query,
+    );
+
+

To customize the List Elements, you can provide a childBuilder.

+
ParseLiveListWidget<ParseObject>(
+  query: query,
+  reverse: false,
+  childBuilder:
+      (BuildContext context, ParseLiveListElementSnapshot<ParseObject> snapshot) {
+    if (snapshot.failed) {
+      return const Text('something went wrong!');
+    } else if (snapshot.hasData) {
+      return ListTile(
+        title: Text(
+          snapshot.loadedData.get("text"),
+        ),
+      );
+    } else {
+      return const ListTile(
+        leading: CircularProgressIndicator(),
+      );
+    }
+  },
+);
+
+

Similar to the standard ListView, you can provide arguments like reverse or shrinkWrap. +By providing the listLoadingElement, you can show the user something while the list is loading.

+
ParseLiveListWidget<ParseObject>(
+  query: query,
+  childBuilder: childBuilder,
+  listLoadingElement: Center(
+    child: CircularProgressIndicator(),
+  ),
+);
+
+

By providing the duration argument, you can change the animation speed.

+
ParseLiveListWidget<ParseObject>(
+  query: query,
+  childBuilder: childBuilder,
+  duration: Duration(seconds: 1),
+);
+
+

Include Sub-Objects

+

By default, ParseLiveQuery will provide you with all the objects you included in your Query like this:

+
queryBuilder.includeObject(/*List of all the included sub-objects*/);
+
+

ParseLiveList will not listen for updates on this objects by default. +To activate listening for updates on all included objects, add listenOnAllSubItems: true to your ParseLiveListWidgets constructor. +If you want ParseLiveList to listen for updates on only some sub-objects, use listeningIncludes: const <String>[/*all the included sub-objects*/] instead. +Just as QueryBuilder, ParseLiveList supports nested sub-objects too.

+

Lazy Loading

+

By default, ParseLiveList lazy loads the content. +You can avoid that by setting lazyLoading: false. +In case you want to use lazyLoading but you need some columns to be preloaded, you can provide a list of preloadedColumns. +Preloading fields of a pointer is supported by using the dot-notation. +You can access the preloaded data is stored in the preLoadedData field of the ParseLiveListElementSnapshot.

+
ParseLiveListWidget<ParseObject>(
+  query: query,
+  lazyLoading: true,
+  preloadedColumns: ["test1", "sender.username"],
+  childBuilder:
+      (BuildContext context, ParseLiveListElementSnapshot<ParseObject> snapshot) {
+    if (snapshot.failed) {
+      return const Text('something went wrong!');
+    } else if (snapshot.hasData) {
+      return ListTile(
+        title: Text(
+          snapshot.loadedData.get<String>("text"),
+        ),
+      );
+    } else {
+      return ListTile(
+        title: Text(
+          "loading comment from: ${snapshot.preLoadedData?.get<ParseObject>("sender")?.get<String>("username")}",
+        ),
+      );
+    }
+  },
+);
+
+

NOTE: To use this features you have to enable Live Queries first.

+

Users

+

You can create and control users just as normal using this SDK.

+

To register a user, first create one :

+
var user =  ParseUser().create("TestFlutter", "TestPassword123", "TestFlutterSDK@gmail.com");
+
+

Then have the user sign up:

+
var response = await user.signUp();
+if (response.success) user = response.result;
+
+

You can also login with the user:

+
var response = await user.login();
+if (response.success) user = response.result;
+
+

You can also logout with the user:

+
var response = await user.logout();
+if (response.success) {
+    print('User logout');
+}
+
+

Also, once logged in you can manage sessions tokens. This feature can be called after Parse().init() on startup to check for a logged in user.

+
user = ParseUser.currentUser();
+
+

To add additional columns to the user:

+
var user = ParseUser("TestFlutter", "TestPassword123", "TestFlutterSDK@gmail.com")
+            ..set("userLocation", "FlutterLand");
+
+

Other user features are:-

+
    +
  • Request Password Reset
  • +
  • Verification Email Request
  • +
  • Get all users
  • +
  • Save
  • +
  • Destroy user
  • +
  • Queries
  • +
+

Facebook, OAuth and 3rd Party Login/User

+

Usually, each provider will provide their own library for logins, but the loginWith method on ParseUser accepts a name of provider, then a Map<String, dynamic> with the authentication details required. +For Facebook and the example below, we used the library provided at https://pub.dev/packages/flutter_facebook_login

+
Future<void> goToFacebookLogin() async {
+       final FacebookLogin facebookLogin = FacebookLogin();
+       final FacebookLoginResult result = await facebookLogin.logInWithReadPermissions(['email']);
+   
+       switch (result.status) {
+         case FacebookLoginStatus.loggedIn:
+           final ParseResponse response = await ParseUser.loginWith(
+               'facebook',
+               facebook(result.accessToken.token,
+                   result.accessToken.userId,
+                   result.accessToken.expires));
+   
+           if (response.success) {
+             // User is logged in, test with ParseUser.currentUser()
+           }
+           break;
+         case FacebookLoginStatus.cancelledByUser:
+               // User cancelled
+           break;
+         case FacebookLoginStatus.error:
+               // Error
+           break;
+       }
+     }
+
+

For Google and the example below, we used the library provided at https://pub.dev/packages/google_sign_in

+
class OAuthLogin {
+  final GoogleSignIn _googleSignIn = GoogleSignIn( scopes: ['email', 'https://www.googleapis.com/auth/contacts.readonly'] );
+  
+  signInGoogle() async {
+    GoogleSignInAccount account = await _googleSignIn.signIn();
+    GoogleSignInAuthentication authentication = await account.authentication;
+    await ParseUser.loginWith(
+          'google',
+          google(authentication.accessToken!, _googleSignIn.currentUser!.id,
+              authentication.idToken!));
+  }
+}
+
+

Security for Objects - ParseACL

+

For any object, you can specify which users are allowed to read the object, and which users are allowed to modify an object. +To support this type of security, each object has an access control list, implemented by the ParseACL class.

+

If ParseACL is not specified (with the exception of the ParseUser class) all objects are set to Public for read and write. +The simplest way to use a ParseACL is to specify that an object may only be read or written by a single user. +To create such an object, there must first be a logged in ParseUser. Then, new ParseACL(user) generates a ParseACL that +limits access to that user. An object’s ACL is updated when the object is saved, like any other property.

+
ParseUser user = await ParseUser.currentUser() as ParseUser;
+ParseACL parseACL = ParseACL(owner: user);
+  
+ParseObject parseObject = ParseObject("TestAPI");
+...
+parseObject.setACL(parseACL);
+var apiResponse = await parseObject.save();
+
+

Permissions can also be granted on a per-user basis. You can add permissions individually to a ParseACL using +setReadAccess and setWriteAccess

+
ParseUser user = await ParseUser.currentUser() as ParseUser;
+ParseACL parseACL = ParseACL();
+//grant total access to current user
+parseACL.setReadAccess(userId: user.objectId, allowed: true);
+parseACL.setWriteAccess(userId: user.objectId, allowed: true);
+//grant read access to userId: 'TjRuDjuSAO' 
+parseACL.setReadAccess(userId: 'TjRuDjuSAO', allowed: true);
+parseACL.setWriteAccess(userId: 'TjRuDjuSAO', allowed: false);
+
+ParseObject parseObject = ParseObject("TestAPI");
+...
+parseObject.setACL(parseACL);
+var apiResponse = await parseObject.save();
+
+

You can also grant permissions to all users at once using setPublicReadAccess and setPublicWriteAccess.

+
ParseACL parseACL = ParseACL();
+parseACL.setPublicReadAccess(allowed: true);
+parseACL.setPublicWriteAccess(allowed: true);
+
+ParseObject parseObject = ParseObject("TestAPI");
+...  
+parseObject.setACL(parseACL);
+var apiResponse = await parseObject.save();
+
+

Operations that are forbidden, such as deleting an object that you do not have write access to, result in a +ParseError with code 101: 'ObjectNotFound'. +For security purposes, this prevents clients from distinguishing which object ids exist but are secured, versus which +object ids do not exist at all.

+

You can retrieve the ACL list of an object using:

+
ParseACL parseACL = parseObject.getACL();
+
+

To set the ACL to ParseRole use:

+
parseACL.setReadAccess(userId: "role:ROLE_NAME", allowed: true);
+parseACL.setWriteAccess(userId: "role:ROLE_NAME", allowed: true);
+
+

Config

+

The SDK supports Parse Config. A map of all configs can be grabbed from the server by calling :

+
var response = await ParseConfig().getConfigs();
+
+

and to add a config:

+
ParseConfig().addConfig('TestConfig', 'testing');
+
+

Cloud Functions

+

The SDK supports call Cloud Functions.

+

Executes a cloud function that returns a ParseObject type

+
final ParseCloudFunction function = ParseCloudFunction('hello');
+final ParseResponse result =
+    await function.executeObjectFunction<ParseObject>();
+if (result.success) {
+  if (result.result is ParseObject) {
+    final ParseObject parseObject = result.result;
+    print(parseObject.className);
+  }
+}
+
+

Executes a cloud function with parameters

+
final ParseCloudFunction function = ParseCloudFunction('hello');
+final Map<String, String> params = <String, String>{'plan': 'paid'};
+function.execute(parameters: params);
+
+

Relation

+

The SDK supports Relation.

+

To add relation to object:

+
dietPlan.addRelation('fruits', [ParseObject("Fruits")..set("objectId", "XGadzYxnac")]);
+
+

To remove relation to object:

+
dietPlan.removeRelation('fruits', [ParseObject("Fruits")..set("objectId", "XGadzYxnac")]);
+
+

To Retrive a relation instance for user, call:

+
final relation = dietPlan.getRelation('fruits');
+
+

and then you can add a relation to the passed in object:

+
relation.add(dietPlan);
+final result = await user.save();
+
+

To retrieve objects that are members of Relation field of a parent object:

+
QueryBuilder<ParseObject> query =
+    QueryBuilder<ParseObject>(ParseObject('Fruits'))
+      ..whereRelatedTo('fruits', 'DietPlan', DietPlan.objectId);
+
+

File

+

There are three different file classes in this SDK:

+
    +
  • ParseFileBase is and abstract class and is the foundation of every file class that can be handled by this SDK.
  • +
  • ParseFile (former the only file class in the SDK) extends ParseFileBase and is by default used as the file class on every platform but web. +This class uses a File from dart:io for storing the raw file.
  • +
  • ParseWebFile is the equivalent to ParseFile used at Flutter Web. +This class uses an Uint8List for storing the raw file.
  • +
+

These classes are used by default to represent files, but you can also build your own class extending ParseFileBase and provide a custom ParseFileConstructor similar to the SubClasses.

+

Have a look at the example application for a small (non web) example.

+

When uploading or downloading a file, you can use the progressCallback-parameter to track the progress of the http request.

+
//A short example for showing an image from a ParseFileBase
+Widget buildImage(ParseFileBase image){
+  return FutureBuilder<ParseFileBase>(
+    future: image.download(),
+    builder: (BuildContext context,
+    AsyncSnapshot<ParseFileBase> snapshot) {
+      if (snapshot.hasData) {
+        if (kIsWeb) {
+          return Image.memory((snapshot.data as ParseWebFile).file);
+        } else {
+          return Image.file((snapshot.data as ParseFile).file);
+        }
+      } else {
+        return CircularProgressIndicator();
+      }
+    },
+  );
+}
+
+
//A short example for storing a selected picture
+//libraries: image_picker (https://pub.dev/packages/image_picker), image_picker_for_web (https://pub.dev/packages/image_picker_for_web)
+PickedFile pickedFile = await ImagePicker().getImage(source: ImageSource.gallery);
+ParseFileBase parseFile;
+if (kIsWeb) {
+  //Seems weird, but this lets you get the data from the selected file as an Uint8List very easily. 
+  ParseWebFile file = ParseWebFile(null, name: null, url: pickedFile.path);
+  await file.download();
+  parseFile = ParseWebFile(file.file, name: file.name);
+} else {
+  parseFile = ParseFile(File(pickedFile.path));
+}
+someParseObject.set("image", parseFile);
+//This saves the ParseObject as well as all of its children, and the ParseFileBase is such a child. 
+await someParseObject.save();
+
+

Other Features

+

Main:

+
    +
  • Installation (View the example application)
  • +
  • GeoPoints (View the example application)
  • +
  • Persistent storage
  • +
  • Debug Mode - Logging API calls
  • +
  • Manage Session ID's tokens
  • +
+

User:

+
    +
  • Queries
  • +
  • Anonymous (View the example application)
  • +
  • 3rd Party Authentication
  • +
+

Objects:

+
    +
  • Create new object
  • +
  • Extend Parse Object and create local objects that can be saved and retrieved
  • +
  • Queries
  • +
+
+ + +
+

Libraries

+
+
+ flutter_parse_sdk_flutter + +
+
+
+ +
+
+ +
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/index.json b/flutter/flutter/index.json new file mode 100644 index 000000000..075213a08 --- /dev/null +++ b/flutter/flutter/index.json @@ -0,0 +1 @@ +[{"name":"flutter_parse_sdk_flutter","qualifiedName":"flutter_parse_sdk_flutter","href":"flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html","type":"library","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":""},{"name":"ChildBuilder","qualifiedName":"flutter_parse_sdk_flutter.ChildBuilder","href":"flutter_parse_sdk_flutter/ChildBuilder.html","type":"typedef","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"flutter_parse_sdk_flutter","type":"library","href":"flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html"}},{"name":"CoreStoreSembastImp","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html","type":"class","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"flutter_parse_sdk_flutter","type":"library","href":"flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html"}},{"name":"clear","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.clear","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/clear.html","type":"method","overriddenDepth":2,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"containsKey","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.containsKey","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/containsKey.html","type":"method","overriddenDepth":2,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"get","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.get","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/get.html","type":"method","overriddenDepth":2,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"getBool","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.getBool","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/getBool.html","type":"method","overriddenDepth":2,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"getDouble","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.getDouble","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/getDouble.html","type":"method","overriddenDepth":2,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"getInstance","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.getInstance","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/getInstance.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"getInt","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.getInt","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/getInt.html","type":"method","overriddenDepth":2,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"getString","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.getString","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/getString.html","type":"method","overriddenDepth":2,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"getStringList","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.getStringList","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/getStringList.html","type":"method","overriddenDepth":2,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"remove","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.remove","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/remove.html","type":"method","overriddenDepth":2,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"setBool","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.setBool","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/setBool.html","type":"method","overriddenDepth":2,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"setDouble","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.setDouble","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/setDouble.html","type":"method","overriddenDepth":2,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"setInt","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.setInt","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/setInt.html","type":"method","overriddenDepth":2,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"setString","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.setString","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/setString.html","type":"method","overriddenDepth":2,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"setStringList","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSembastImp.setStringList","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp/setStringList.html","type":"method","overriddenDepth":2,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSembastImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html"}},{"name":"CoreStoreSharedPrefsImp","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html","type":"class","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"flutter_parse_sdk_flutter","type":"library","href":"flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html"}},{"name":"clear","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.clear","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/clear.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"containsKey","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.containsKey","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/containsKey.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"get","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.get","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/get.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"getBool","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.getBool","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getBool.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"getDouble","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.getDouble","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getDouble.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"getInstance","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.getInstance","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInstance.html","type":"method","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"getInt","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.getInt","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInt.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"getString","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.getString","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getString.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"getStringList","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.getStringList","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getStringList.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"remove","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.remove","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/remove.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"setBool","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.setBool","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setBool.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"setDouble","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.setDouble","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setDouble.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"setInt","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.setInt","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setInt.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"setString","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.setString","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setString.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"setStringList","qualifiedName":"flutter_parse_sdk_flutter.CoreStoreSharedPrefsImp.setStringList","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setStringList.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"CoreStoreSharedPrefsImp","type":"class","href":"flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html"}},{"name":"DataGetter","qualifiedName":"flutter_parse_sdk_flutter.DataGetter","href":"flutter_parse_sdk_flutter/DataGetter.html","type":"typedef","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"flutter_parse_sdk_flutter","type":"library","href":"flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html"}},{"name":"Parse","qualifiedName":"flutter_parse_sdk_flutter.Parse","href":"flutter_parse_sdk_flutter/Parse-class.html","type":"class","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"flutter_parse_sdk_flutter","type":"library","href":"flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html"}},{"name":"Parse","qualifiedName":"flutter_parse_sdk_flutter.Parse.Parse","href":"flutter_parse_sdk_flutter/Parse/Parse.html","type":"constructor","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"Parse","type":"class","href":"flutter_parse_sdk_flutter/Parse-class.html"}},{"name":"checkConnectivity","qualifiedName":"flutter_parse_sdk_flutter.Parse.checkConnectivity","href":"flutter_parse_sdk_flutter/Parse/checkConnectivity.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"Parse","type":"class","href":"flutter_parse_sdk_flutter/Parse-class.html"}},{"name":"connectivityStream","qualifiedName":"flutter_parse_sdk_flutter.Parse.connectivityStream","href":"flutter_parse_sdk_flutter/Parse/connectivityStream.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"Parse","type":"class","href":"flutter_parse_sdk_flutter/Parse-class.html"}},{"name":"didChangeAppLifecycleState","qualifiedName":"flutter_parse_sdk_flutter.Parse.didChangeAppLifecycleState","href":"flutter_parse_sdk_flutter/Parse/didChangeAppLifecycleState.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"Called when the system puts the app in the background or returns\nthe app to the foreground.","enclosedBy":{"name":"Parse","type":"class","href":"flutter_parse_sdk_flutter/Parse-class.html"}},{"name":"initialize","qualifiedName":"flutter_parse_sdk_flutter.Parse.initialize","href":"flutter_parse_sdk_flutter/Parse/initialize.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"To initialize Parse Server in your application","enclosedBy":{"name":"Parse","type":"class","href":"flutter_parse_sdk_flutter/Parse-class.html"}},{"name":"ParseLiveGridWidget","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html","type":"class","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"flutter_parse_sdk_flutter","type":"library","href":"flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html"}},{"name":"ParseLiveGridWidget","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.ParseLiveGridWidget","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/ParseLiveGridWidget.html","type":"constructor","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"animationController","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.animationController","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/animationController.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"childAspectRatio","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.childAspectRatio","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/childAspectRatio.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"childBuilder","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.childBuilder","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/childBuilder.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"createState","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.createState","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/createState.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"Creates the mutable state for this widget at a given location in the tree.","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"crossAxisCount","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.crossAxisCount","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisCount.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"crossAxisSpacing","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.crossAxisSpacing","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisSpacing.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"defaultChildBuilder","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.defaultChildBuilder","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/defaultChildBuilder.html","type":"method","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"duration","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.duration","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/duration.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"gridLoadingElement","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.gridLoadingElement","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/gridLoadingElement.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"lazyLoading","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.lazyLoading","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/lazyLoading.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"listenOnAllSubItems","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.listenOnAllSubItems","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/listenOnAllSubItems.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"listeningIncludes","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.listeningIncludes","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/listeningIncludes.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"mainAxisSpacing","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.mainAxisSpacing","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/mainAxisSpacing.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"padding","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.padding","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/padding.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"preloadedColumns","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.preloadedColumns","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/preloadedColumns.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"primary","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.primary","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/primary.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"query","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.query","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/query.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"queryEmptyElement","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.queryEmptyElement","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/queryEmptyElement.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"removedItemBuilder","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.removedItemBuilder","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/removedItemBuilder.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"reverse","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.reverse","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/reverse.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"scrollController","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.scrollController","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollController.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"scrollDirection","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.scrollDirection","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollDirection.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"scrollPhysics","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.scrollPhysics","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollPhysics.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"shrinkWrap","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveGridWidget.shrinkWrap","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget/shrinkWrap.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveGridWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html"}},{"name":"ParseLiveListElementWidget","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListElementWidget","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html","type":"class","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"flutter_parse_sdk_flutter","type":"library","href":"flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html"}},{"name":"ParseLiveListElementWidget","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListElementWidget.ParseLiveListElementWidget","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget/ParseLiveListElementWidget.html","type":"constructor","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListElementWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html"}},{"name":"childBuilder","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListElementWidget.childBuilder","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget/childBuilder.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListElementWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html"}},{"name":"createState","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListElementWidget.createState","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget/createState.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"Creates the mutable state for this widget at a given location in the tree.","enclosedBy":{"name":"ParseLiveListElementWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html"}},{"name":"duration","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListElementWidget.duration","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget/duration.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListElementWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html"}},{"name":"loadedData","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListElementWidget.loadedData","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget/loadedData.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListElementWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html"}},{"name":"preLoadedData","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListElementWidget.preLoadedData","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget/preLoadedData.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListElementWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html"}},{"name":"sizeFactor","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListElementWidget.sizeFactor","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget/sizeFactor.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListElementWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html"}},{"name":"stream","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListElementWidget.stream","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget/stream.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListElementWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html"}},{"name":"ParseLiveListWidget","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html","type":"class","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"flutter_parse_sdk_flutter","type":"library","href":"flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html"}},{"name":"ParseLiveListWidget","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.ParseLiveListWidget","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/ParseLiveListWidget.html","type":"constructor","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"childBuilder","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.childBuilder","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/childBuilder.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"createState","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.createState","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/createState.html","type":"method","overriddenDepth":1,"packageName":"parse_server_sdk_flutter","desc":"Creates the mutable state for this widget at a given location in the tree.","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"defaultChildBuilder","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.defaultChildBuilder","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/defaultChildBuilder.html","type":"method","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"duration","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.duration","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/duration.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"lazyLoading","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.lazyLoading","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/lazyLoading.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"listLoadingElement","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.listLoadingElement","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/listLoadingElement.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"listenOnAllSubItems","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.listenOnAllSubItems","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/listenOnAllSubItems.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"listeningIncludes","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.listeningIncludes","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/listeningIncludes.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"padding","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.padding","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/padding.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"preloadedColumns","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.preloadedColumns","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/preloadedColumns.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"primary","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.primary","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/primary.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"query","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.query","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/query.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"queryEmptyElement","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.queryEmptyElement","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/queryEmptyElement.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"removedItemBuilder","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.removedItemBuilder","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/removedItemBuilder.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"reverse","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.reverse","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/reverse.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"scrollController","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.scrollController","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/scrollController.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"scrollDirection","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.scrollDirection","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/scrollDirection.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"scrollPhysics","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.scrollPhysics","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/scrollPhysics.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"shrinkWrap","qualifiedName":"flutter_parse_sdk_flutter.ParseLiveListWidget.shrinkWrap","href":"flutter_parse_sdk_flutter/ParseLiveListWidget/shrinkWrap.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseLiveListWidget","type":"class","href":"flutter_parse_sdk_flutter/ParseLiveListWidget-class.html"}},{"name":"ParseNotification","qualifiedName":"flutter_parse_sdk_flutter.ParseNotification","href":"flutter_parse_sdk_flutter/ParseNotification-class.html","type":"class","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"flutter_parse_sdk_flutter","type":"library","href":"flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html"}},{"name":"ParseNotification","qualifiedName":"flutter_parse_sdk_flutter.ParseNotification.ParseNotification","href":"flutter_parse_sdk_flutter/ParseNotification/ParseNotification.html","type":"constructor","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseNotification","type":"class","href":"flutter_parse_sdk_flutter/ParseNotification-class.html"}},{"name":"instance","qualifiedName":"flutter_parse_sdk_flutter.ParseNotification.instance","href":"flutter_parse_sdk_flutter/ParseNotification/instance.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseNotification","type":"class","href":"flutter_parse_sdk_flutter/ParseNotification-class.html"}},{"name":"keyNotificationChannelName","qualifiedName":"flutter_parse_sdk_flutter.ParseNotification.keyNotificationChannelName","href":"flutter_parse_sdk_flutter/ParseNotification/keyNotificationChannelName.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParseNotification","type":"class","href":"flutter_parse_sdk_flutter/ParseNotification-class.html"}},{"name":"showNotification","qualifiedName":"flutter_parse_sdk_flutter.ParseNotification.showNotification","href":"flutter_parse_sdk_flutter/ParseNotification/showNotification.html","type":"method","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"Show notification","enclosedBy":{"name":"ParseNotification","type":"class","href":"flutter_parse_sdk_flutter/ParseNotification-class.html"}},{"name":"ParsePush","qualifiedName":"flutter_parse_sdk_flutter.ParsePush","href":"flutter_parse_sdk_flutter/ParsePush-class.html","type":"class","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"flutter_parse_sdk_flutter","type":"library","href":"flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html"}},{"name":"ParsePush","qualifiedName":"flutter_parse_sdk_flutter.ParsePush.ParsePush","href":"flutter_parse_sdk_flutter/ParsePush/ParsePush.html","type":"constructor","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParsePush","type":"class","href":"flutter_parse_sdk_flutter/ParsePush-class.html"}},{"name":"getSubscribedChannels","qualifiedName":"flutter_parse_sdk_flutter.ParsePush.getSubscribedChannels","href":"flutter_parse_sdk_flutter/ParsePush/getSubscribedChannels.html","type":"method","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"Returns an <List> containing all the channel names this device is subscribed to","enclosedBy":{"name":"ParsePush","type":"class","href":"flutter_parse_sdk_flutter/ParsePush-class.html"}},{"name":"initialize","qualifiedName":"flutter_parse_sdk_flutter.ParsePush.initialize","href":"flutter_parse_sdk_flutter/ParsePush/initialize.html","type":"method","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"Initialize ParsePush; for web a vapidKey is required.","enclosedBy":{"name":"ParsePush","type":"class","href":"flutter_parse_sdk_flutter/ParsePush-class.html"}},{"name":"instance","qualifiedName":"flutter_parse_sdk_flutter.ParsePush.instance","href":"flutter_parse_sdk_flutter/ParsePush/instance.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParsePush","type":"class","href":"flutter_parse_sdk_flutter/ParsePush-class.html"}},{"name":"keyPushType","qualifiedName":"flutter_parse_sdk_flutter.ParsePush.keyPushType","href":"flutter_parse_sdk_flutter/ParsePush/keyPushType.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParsePush","type":"class","href":"flutter_parse_sdk_flutter/ParsePush-class.html"}},{"name":"keyType","qualifiedName":"flutter_parse_sdk_flutter.ParsePush.keyType","href":"flutter_parse_sdk_flutter/ParsePush/keyType.html","type":"property","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"ParsePush","type":"class","href":"flutter_parse_sdk_flutter/ParsePush-class.html"}},{"name":"onMessage","qualifiedName":"flutter_parse_sdk_flutter.ParsePush.onMessage","href":"flutter_parse_sdk_flutter/ParsePush/onMessage.html","type":"method","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"Handle push notification message","enclosedBy":{"name":"ParsePush","type":"class","href":"flutter_parse_sdk_flutter/ParsePush-class.html"}},{"name":"subscribeToChannel","qualifiedName":"flutter_parse_sdk_flutter.ParsePush.subscribeToChannel","href":"flutter_parse_sdk_flutter/ParsePush/subscribeToChannel.html","type":"method","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"Subscribes the device to a channel of push notifications","enclosedBy":{"name":"ParsePush","type":"class","href":"flutter_parse_sdk_flutter/ParsePush-class.html"}},{"name":"unsubscribeFromChannel","qualifiedName":"flutter_parse_sdk_flutter.ParsePush.unsubscribeFromChannel","href":"flutter_parse_sdk_flutter/ParsePush/unsubscribeFromChannel.html","type":"method","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"Unsubscribes the device to a channel of push notifications","enclosedBy":{"name":"ParsePush","type":"class","href":"flutter_parse_sdk_flutter/ParsePush-class.html"}},{"name":"StreamGetter","qualifiedName":"flutter_parse_sdk_flutter.StreamGetter","href":"flutter_parse_sdk_flutter/StreamGetter.html","type":"typedef","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"flutter_parse_sdk_flutter","type":"library","href":"flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html"}},{"name":"dbDirectory","qualifiedName":"flutter_parse_sdk_flutter.dbDirectory","href":"flutter_parse_sdk_flutter/dbDirectory.html","type":"function","overriddenDepth":0,"packageName":"parse_server_sdk_flutter","desc":"","enclosedBy":{"name":"flutter_parse_sdk_flutter","type":"library","href":"flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html"}}] diff --git a/flutter/flutter/search.html b/flutter/flutter/search.html new file mode 100644 index 000000000..bbc2c93c0 --- /dev/null +++ b/flutter/flutter/search.html @@ -0,0 +1,101 @@ + + + + + + + + + parse_server_sdk_flutter - Dart API docs + + + + + + + + + + + + + + + + + +
+ +
+ menu + +
parse_server_sdk_flutter
+ +
+ +
+
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + diff --git a/flutter/flutter/static-assets/docs.dart.js b/flutter/flutter/static-assets/docs.dart.js new file mode 100644 index 000000000..a2d14b806 --- /dev/null +++ b/flutter/flutter/static-assets/docs.dart.js @@ -0,0 +1,5922 @@ +(function dartProgram(){function copyProperties(a,b){var s=Object.keys(a) +for(var r=0;r=0)return true +if(typeof version=="function"&&version.length==0){var q=version() +if(/^\d+\.\d+\.\d+\.\d+$/.test(q))return true}}catch(p){}return false}() +function inherit(a,b){a.prototype.constructor=a +a.prototype["$i"+a.name]=a +if(b!=null){if(z){Object.setPrototypeOf(a.prototype,b.prototype) +return}var s=Object.create(b.prototype) +copyProperties(a.prototype,s) +a.prototype=s}}function inheritMany(a,b){for(var s=0;s").b(a))return new A.bY(a,b.l("@<0>").I(c).l("bY<1,2>")) +return new A.aP(a,b.l("@<0>").I(c).l("aP<1,2>"))}, +iU(a){return new A.d3("Field '"+a+"' has been assigned during initialization.")}, +hT(a){var s,r=a^48 +if(r<=9)return r +s=a|32 +if(97<=s&&s<=102)return s-87 +return-1}, +fC(a,b){a=a+b&536870911 +a=a+((a&524287)<<10)&536870911 +return a^a>>>6}, +kW(a){a=a+((a&67108863)<<3)&536870911 +a^=a>>>11 +return a+((a&16383)<<15)&536870911}, +f2(a,b,c){return a}, +iC(a){var s,r +for(s=$.b7.length,r=0;r").I(d).l("by<1,2>")) +return new A.aj(a,b,c.l("@<0>").I(d).l("aj<1,2>"))}, +i9(){return new A.bi("No element")}, +kC(){return new A.bi("Too many elements")}, +kV(a,b){A.dw(a,0,J.ax(a)-1,b)}, +dw(a,b,c,d){if(c-b<=32)A.kU(a,b,c,d) +else A.kT(a,b,c,d)}, +kU(a,b,c,d){var s,r,q,p,o +for(s=b+1,r=J.b4(a);s<=c;++s){q=r.h(a,s) +p=s +while(!0){if(!(p>b&&d.$2(r.h(a,p-1),q)>0))break +o=p-1 +r.j(a,p,r.h(a,o)) +p=o}r.j(a,p,q)}}, +kT(a3,a4,a5,a6){var s,r,q,p,o,n,m,l,k,j,i=B.c.aF(a5-a4+1,6),h=a4+i,g=a5-i,f=B.c.aF(a4+a5,2),e=f-i,d=f+i,c=J.b4(a3),b=c.h(a3,h),a=c.h(a3,e),a0=c.h(a3,f),a1=c.h(a3,d),a2=c.h(a3,g) +if(a6.$2(b,a)>0){s=a +a=b +b=s}if(a6.$2(a1,a2)>0){s=a2 +a2=a1 +a1=s}if(a6.$2(b,a0)>0){s=a0 +a0=b +b=s}if(a6.$2(a,a0)>0){s=a0 +a0=a +a=s}if(a6.$2(b,a1)>0){s=a1 +a1=b +b=s}if(a6.$2(a0,a1)>0){s=a1 +a1=a0 +a0=s}if(a6.$2(a,a2)>0){s=a2 +a2=a +a=s}if(a6.$2(a,a0)>0){s=a0 +a0=a +a=s}if(a6.$2(a1,a2)>0){s=a2 +a2=a1 +a1=s}c.j(a3,h,b) +c.j(a3,f,a0) +c.j(a3,g,a2) +c.j(a3,e,c.h(a3,a4)) +c.j(a3,d,c.h(a3,a5)) +r=a4+1 +q=a5-1 +if(J.b8(a6.$2(a,a1),0)){for(p=r;p<=q;++p){o=c.h(a3,p) +n=a6.$2(o,a) +if(n===0)continue +if(n<0){if(p!==r){c.j(a3,p,c.h(a3,r)) +c.j(a3,r,o)}++r}else for(;!0;){n=a6.$2(c.h(a3,q),a) +if(n>0){--q +continue}else{m=q-1 +if(n<0){c.j(a3,p,c.h(a3,r)) +l=r+1 +c.j(a3,r,c.h(a3,q)) +c.j(a3,q,o) +q=m +r=l +break}else{c.j(a3,p,c.h(a3,q)) +c.j(a3,q,o) +q=m +break}}}}k=!0}else{for(p=r;p<=q;++p){o=c.h(a3,p) +if(a6.$2(o,a)<0){if(p!==r){c.j(a3,p,c.h(a3,r)) +c.j(a3,r,o)}++r}else if(a6.$2(o,a1)>0)for(;!0;)if(a6.$2(c.h(a3,q),a1)>0){--q +if(qg){for(;J.b8(a6.$2(c.h(a3,r),a),0);)++r +for(;J.b8(a6.$2(c.h(a3,q),a1),0);)--q +for(p=r;p<=q;++p){o=c.h(a3,p) +if(a6.$2(o,a)===0){if(p!==r){c.j(a3,p,c.h(a3,r)) +c.j(a3,r,o)}++r}else if(a6.$2(o,a1)===0)for(;!0;)if(a6.$2(c.h(a3,q),a1)===0){--q +if(q36)throw A.b(A.S(b,2,36,"radix",n)) +if(b===10&&s!=null)return parseInt(a,10) +if(b<10||s==null){r=b<=10?47+b:86+b +q=m[1] +for(p=q.length,o=0;or)return n}return parseInt(a,b)}, +fy(a){return A.kO(a)}, +kO(a){var s,r,q,p +if(a instanceof A.y)return A.Q(A.bt(a),null) +s=J.b3(a) +if(s===B.K||s===B.M||t.o.b(a)){r=B.o(a) +if(r!=="Object"&&r!=="")return r +q=a.constructor +if(typeof q=="function"){p=q.name +if(typeof p=="string"&&p!=="Object"&&p!=="")return p}}return A.Q(A.bt(a),null)}, +kP(a){if(typeof a=="number"||A.hM(a))return J.ay(a) +if(typeof a=="string")return JSON.stringify(a) +if(a instanceof A.aA)return a.k(0) +return"Instance of '"+A.fy(a)+"'"}, +kQ(a,b,c){var s,r,q,p +if(c<=500&&b===0&&c===a.length)return String.fromCharCode.apply(null,a) +for(s=b,r="";s>>0,s&1023|56320)}}throw A.b(A.S(a,0,1114111,null,null))}, +cq(a,b){var s,r="index" +if(!A.jC(b))return new A.W(!0,b,r,null) +s=J.ax(a) +if(b<0||b>=s)return A.B(b,s,a,r) +return A.kR(b,r)}, +mx(a,b,c){if(a>c)return A.S(a,0,c,"start",null) +if(b!=null)if(bc)return A.S(b,a,c,"end",null) +return new A.W(!0,b,"end",null)}, +ms(a){return new A.W(!0,a,null,null)}, +b(a){var s,r +if(a==null)a=new A.ap() +s=new Error() +s.dartException=a +r=A.mY +if("defineProperty" in Object){Object.defineProperty(s,"message",{get:r}) +s.name=""}else s.toString=r +return s}, +mY(){return J.ay(this.dartException)}, +b6(a){throw A.b(a)}, +cs(a){throw A.b(A.aQ(a))}, +aq(a){var s,r,q,p,o,n +a=A.mS(a.replace(String({}),"$receiver$")) +s=a.match(/\\\$[a-zA-Z]+\\\$/g) +if(s==null)s=A.n([],t.s) +r=s.indexOf("\\$arguments\\$") +q=s.indexOf("\\$argumentsExpr\\$") +p=s.indexOf("\\$expr\\$") +o=s.indexOf("\\$method\\$") +n=s.indexOf("\\$receiver\\$") +return new A.fD(a.replace(new RegExp("\\\\\\$arguments\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$","g"),"((?:x|[^x])*)"),r,q,p,o,n)}, +fE(a){return function($expr$){var $argumentsExpr$="$arguments$" +try{$expr$.$method$($argumentsExpr$)}catch(s){return s.message}}(a)}, +j6(a){return function($expr$){try{$expr$.$method$}catch(s){return s.message}}(a)}, +id(a,b){var s=b==null,r=s?null:b.method +return new A.d2(a,r,s?null:b.receiver)}, +aw(a){if(a==null)return new A.fx(a) +if(a instanceof A.bA)return A.aM(a,a.a) +if(typeof a!=="object")return a +if("dartException" in a)return A.aM(a,a.dartException) +return A.mq(a)}, +aM(a,b){if(t.U.b(b))if(b.$thrownJsError==null)b.$thrownJsError=a +return b}, +mq(a){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e=null +if(!("message" in a))return a +s=a.message +if("number" in a&&typeof a.number=="number"){r=a.number +q=r&65535 +if((B.c.ad(r,16)&8191)===10)switch(q){case 438:return A.aM(a,A.id(A.o(s)+" (Error "+q+")",e)) +case 445:case 5007:p=A.o(s) +return A.aM(a,new A.bR(p+" (Error "+q+")",e))}}if(a instanceof TypeError){o=$.jW() +n=$.jX() +m=$.jY() +l=$.jZ() +k=$.k1() +j=$.k2() +i=$.k0() +$.k_() +h=$.k4() +g=$.k3() +f=o.L(s) +if(f!=null)return A.aM(a,A.id(s,f)) +else{f=n.L(s) +if(f!=null){f.method="call" +return A.aM(a,A.id(s,f))}else{f=m.L(s) +if(f==null){f=l.L(s) +if(f==null){f=k.L(s) +if(f==null){f=j.L(s) +if(f==null){f=i.L(s) +if(f==null){f=l.L(s) +if(f==null){f=h.L(s) +if(f==null){f=g.L(s) +p=f!=null}else p=!0}else p=!0}else p=!0}else p=!0}else p=!0}else p=!0}else p=!0 +if(p)return A.aM(a,new A.bR(s,f==null?e:f.method))}}return A.aM(a,new A.dN(typeof s=="string"?s:""))}if(a instanceof RangeError){if(typeof s=="string"&&s.indexOf("call stack")!==-1)return new A.bT() +s=function(b){try{return String(b)}catch(d){}return null}(a) +return A.aM(a,new A.W(!1,e,e,typeof s=="string"?s.replace(/^RangeError:\s*/,""):s))}if(typeof InternalError=="function"&&a instanceof InternalError)if(typeof s=="string"&&s==="too much recursion")return new A.bT() +return a}, +b5(a){var s +if(a instanceof A.bA)return a.b +if(a==null)return new A.cb(a) +s=a.$cachedTrace +if(s!=null)return s +return a.$cachedTrace=new A.cb(a)}, +jP(a){if(a==null||typeof a!="object")return J.i6(a) +else return A.ds(a)}, +my(a,b){var s,r,q,p=a.length +for(s=0;s=0}, +mS(a){if(/[[\]{}()*+?.\\^$|]/.test(a))return a.replace(/[[\]{}()*+?.\\^$|]/g,"\\$&") +return a}, +jI(a){return a}, +mV(a,b,c,d){var s,r,q,p=new A.fQ(b,a,0),o=t.F,n=0,m="" +for(;p.n();){s=p.d +if(s==null)s=o.a(s) +r=s.b +q=r.index +m=m+A.o(A.jI(B.a.m(a,n,q)))+A.o(c.$1(s)) +n=q+r[0].length}p=m+A.o(A.jI(B.a.O(a,n))) +return p.charCodeAt(0)==0?p:p}, +bv:function bv(){}, +aR:function aR(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.$ti=d}, +fD:function fD(a,b,c,d,e,f){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f}, +bR:function bR(a,b){this.a=a +this.b=b}, +d2:function d2(a,b,c){this.a=a +this.b=b +this.c=c}, +dN:function dN(a){this.a=a}, +fx:function fx(a){this.a=a}, +bA:function bA(a,b){this.a=a +this.b=b}, +cb:function cb(a){this.a=a +this.b=null}, +aA:function aA(){}, +cH:function cH(){}, +cI:function cI(){}, +dF:function dF(){}, +dA:function dA(){}, +bb:function bb(a,b){this.a=a +this.b=b}, +e0:function e0(a){this.a=a}, +du:function du(a){this.a=a}, +aV:function aV(a){var _=this +_.a=0 +_.f=_.e=_.d=_.c=_.b=null +_.r=0 +_.$ti=a}, +fm:function fm(a){this.a=a}, +fp:function fp(a,b){var _=this +_.a=a +_.b=b +_.d=_.c=null}, +ai:function ai(a,b){this.a=a +this.$ti=b}, +d5:function d5(a,b){var _=this +_.a=a +_.b=b +_.d=_.c=null}, +hU:function hU(a){this.a=a}, +hV:function hV(a){this.a=a}, +hW:function hW(a){this.a=a}, +fk:function fk(a,b){var _=this +_.a=a +_.b=b +_.d=_.c=null}, +ek:function ek(a){this.b=a}, +fQ:function fQ(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +lU(a){return a}, +kN(a){return new Int8Array(a)}, +at(a,b,c){if(a>>>0!==a||a>=c)throw A.b(A.cq(b,a))}, +lR(a,b,c){var s +if(!(a>>>0!==a))s=b>>>0!==b||a>b||b>c +else s=!0 +if(s)throw A.b(A.mx(a,b,c)) +return b}, +dc:function dc(){}, +bM:function bM(){}, +dd:function dd(){}, +bg:function bg(){}, +bK:function bK(){}, +bL:function bL(){}, +de:function de(){}, +df:function df(){}, +dg:function dg(){}, +dh:function dh(){}, +di:function di(){}, +dj:function dj(){}, +dk:function dk(){}, +bN:function bN(){}, +bO:function bO(){}, +c3:function c3(){}, +c4:function c4(){}, +c5:function c5(){}, +c6:function c6(){}, +j2(a,b){var s=b.c +return s==null?b.c=A.ip(a,b.y,!0):s}, +ii(a,b){var s=b.c +return s==null?b.c=A.cg(a,"aC",[b.y]):s}, +j3(a){var s=a.x +if(s===6||s===7||s===8)return A.j3(a.y) +return s===12||s===13}, +kS(a){return a.at}, +hR(a){return A.eO(v.typeUniverse,a,!1)}, +aK(a,b,a0,a1){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c=b.x +switch(c){case 5:case 1:case 2:case 3:case 4:return b +case 6:s=b.y +r=A.aK(a,s,a0,a1) +if(r===s)return b +return A.jm(a,r,!0) +case 7:s=b.y +r=A.aK(a,s,a0,a1) +if(r===s)return b +return A.ip(a,r,!0) +case 8:s=b.y +r=A.aK(a,s,a0,a1) +if(r===s)return b +return A.jl(a,r,!0) +case 9:q=b.z +p=A.cp(a,q,a0,a1) +if(p===q)return b +return A.cg(a,b.y,p) +case 10:o=b.y +n=A.aK(a,o,a0,a1) +m=b.z +l=A.cp(a,m,a0,a1) +if(n===o&&l===m)return b +return A.im(a,n,l) +case 12:k=b.y +j=A.aK(a,k,a0,a1) +i=b.z +h=A.mn(a,i,a0,a1) +if(j===k&&h===i)return b +return A.jk(a,j,h) +case 13:g=b.z +a1+=g.length +f=A.cp(a,g,a0,a1) +o=b.y +n=A.aK(a,o,a0,a1) +if(f===g&&n===o)return b +return A.io(a,n,f,!0) +case 14:e=b.y +if(e=0)p+=" "+r[q];++q}return p+"})"}, +jA(a3,a4,a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2=", " +if(a5!=null){s=a5.length +if(a4==null){a4=A.n([],t.s) +r=null}else r=a4.length +q=a4.length +for(p=s;p>0;--p)a4.push("T"+(q+p)) +for(o=t.X,n=t._,m="<",l="",p=0;p0){a0+=a1+"[" +for(a1="",p=0;p0){a0+=a1+"{" +for(a1="",p=0;p "+a}, +Q(a,b){var s,r,q,p,o,n,m=a.x +if(m===5)return"erased" +if(m===2)return"dynamic" +if(m===3)return"void" +if(m===1)return"Never" +if(m===4)return"any" +if(m===6){s=A.Q(a.y,b) +return s}if(m===7){r=a.y +s=A.Q(r,b) +q=r.x +return(q===12||q===13?"("+s+")":s)+"?"}if(m===8)return"FutureOr<"+A.Q(a.y,b)+">" +if(m===9){p=A.mp(a.y) +o=a.z +return o.length>0?p+("<"+A.jF(o,b)+">"):p}if(m===11)return A.mg(a,b) +if(m===12)return A.jA(a,b,null) +if(m===13)return A.jA(a.y,b,a.z) +if(m===14){n=a.y +return b[b.length-1-n]}return"?"}, +mp(a){var s=v.mangledGlobalNames[a] +if(s!=null)return s +return"minified:"+a}, +lu(a,b){var s=a.tR[b] +for(;typeof s=="string";)s=a.tR[s] +return s}, +lt(a,b){var s,r,q,p,o,n=a.eT,m=n[b] +if(m==null)return A.eO(a,b,!1) +else if(typeof m=="number"){s=m +r=A.ch(a,5,"#") +q=A.hw(s) +for(p=0;p0)p+="<"+A.cf(c)+">" +s=a.eC.get(p) +if(s!=null)return s +r=new A.T(null,null) +r.x=9 +r.y=b +r.z=c +if(c.length>0)r.c=c[0] +r.at=p +q=A.as(a,r) +a.eC.set(p,q) +return q}, +im(a,b,c){var s,r,q,p,o,n +if(b.x===10){s=b.y +r=b.z.concat(c)}else{r=c +s=b}q=s.at+(";<"+A.cf(r)+">") +p=a.eC.get(q) +if(p!=null)return p +o=new A.T(null,null) +o.x=10 +o.y=s +o.z=r +o.at=q +n=A.as(a,o) +a.eC.set(q,n) +return n}, +lp(a,b,c){var s,r,q="+"+(b+"("+A.cf(c)+")"),p=a.eC.get(q) +if(p!=null)return p +s=new A.T(null,null) +s.x=11 +s.y=b +s.z=c +s.at=q +r=A.as(a,s) +a.eC.set(q,r) +return r}, +jk(a,b,c){var s,r,q,p,o,n=b.at,m=c.a,l=m.length,k=c.b,j=k.length,i=c.c,h=i.length,g="("+A.cf(m) +if(j>0){s=l>0?",":"" +g+=s+"["+A.cf(k)+"]"}if(h>0){s=l>0?",":"" +g+=s+"{"+A.lj(i)+"}"}r=n+(g+")") +q=a.eC.get(r) +if(q!=null)return q +p=new A.T(null,null) +p.x=12 +p.y=b +p.z=c +p.at=r +o=A.as(a,p) +a.eC.set(r,o) +return o}, +io(a,b,c,d){var s,r=b.at+("<"+A.cf(c)+">"),q=a.eC.get(r) +if(q!=null)return q +s=A.ll(a,b,c,r,d) +a.eC.set(r,s) +return s}, +ll(a,b,c,d,e){var s,r,q,p,o,n,m,l +if(e){s=c.length +r=A.hw(s) +for(q=0,p=0;p0){n=A.aK(a,b,r,0) +m=A.cp(a,c,r,0) +return A.io(a,n,m,c!==m)}}l=new A.T(null,null) +l.x=13 +l.y=b +l.z=c +l.at=d +return A.as(a,l)}, +jf(a,b,c,d){return{u:a,e:b,r:c,s:[],p:0,n:d}}, +jh(a){var s,r,q,p,o,n,m,l=a.r,k=a.s +for(s=l.length,r=0;r=48&&q<=57)r=A.lc(r+1,q,l,k) +else if((((q|32)>>>0)-97&65535)<26||q===95||q===36||q===124)r=A.jg(a,r,l,k,!1) +else if(q===46)r=A.jg(a,r,l,k,!0) +else{++r +switch(q){case 44:break +case 58:k.push(!1) +break +case 33:k.push(!0) +break +case 59:k.push(A.aJ(a.u,a.e,k.pop())) +break +case 94:k.push(A.lo(a.u,k.pop())) +break +case 35:k.push(A.ch(a.u,5,"#")) +break +case 64:k.push(A.ch(a.u,2,"@")) +break +case 126:k.push(A.ch(a.u,3,"~")) +break +case 60:k.push(a.p) +a.p=k.length +break +case 62:A.le(a,k) +break +case 38:A.ld(a,k) +break +case 42:p=a.u +k.push(A.jm(p,A.aJ(p,a.e,k.pop()),a.n)) +break +case 63:p=a.u +k.push(A.ip(p,A.aJ(p,a.e,k.pop()),a.n)) +break +case 47:p=a.u +k.push(A.jl(p,A.aJ(p,a.e,k.pop()),a.n)) +break +case 40:k.push(-3) +k.push(a.p) +a.p=k.length +break +case 41:A.lb(a,k) +break +case 91:k.push(a.p) +a.p=k.length +break +case 93:o=k.splice(a.p) +A.ji(a.u,a.e,o) +a.p=k.pop() +k.push(o) +k.push(-1) +break +case 123:k.push(a.p) +a.p=k.length +break +case 125:o=k.splice(a.p) +A.lg(a.u,a.e,o) +a.p=k.pop() +k.push(o) +k.push(-2) +break +case 43:n=l.indexOf("(",r) +k.push(l.substring(r,n)) +k.push(-4) +k.push(a.p) +a.p=k.length +r=n+1 +break +default:throw"Bad character "+q}}}m=k.pop() +return A.aJ(a.u,a.e,m)}, +lc(a,b,c,d){var s,r,q=b-48 +for(s=c.length;a=48&&r<=57))break +q=q*10+(r-48)}d.push(q) +return a}, +jg(a,b,c,d,e){var s,r,q,p,o,n,m=b+1 +for(s=c.length;m>>0)-97&65535)<26||r===95||r===36||r===124))q=r>=48&&r<=57 +else q=!0 +if(!q)break}}p=c.substring(b,m) +if(e){s=a.u +o=a.e +if(o.x===10)o=o.y +n=A.lu(s,o.y)[p] +if(n==null)A.b6('No "'+p+'" in "'+A.kS(o)+'"') +d.push(A.hr(s,o,n))}else d.push(p) +return m}, +le(a,b){var s,r=a.u,q=A.je(a,b),p=b.pop() +if(typeof p=="string")b.push(A.cg(r,p,q)) +else{s=A.aJ(r,a.e,p) +switch(s.x){case 12:b.push(A.io(r,s,q,a.n)) +break +default:b.push(A.im(r,s,q)) +break}}}, +lb(a,b){var s,r,q,p,o,n=null,m=a.u,l=b.pop() +if(typeof l=="number")switch(l){case-1:s=b.pop() +r=n +break +case-2:r=b.pop() +s=n +break +default:b.push(l) +r=n +s=r +break}else{b.push(l) +r=n +s=r}q=A.je(a,b) +l=b.pop() +switch(l){case-3:l=b.pop() +if(s==null)s=m.sEA +if(r==null)r=m.sEA +p=A.aJ(m,a.e,l) +o=new A.eb() +o.a=q +o.b=s +o.c=r +b.push(A.jk(m,p,o)) +return +case-4:b.push(A.lp(m,b.pop(),q)) +return +default:throw A.b(A.cA("Unexpected state under `()`: "+A.o(l)))}}, +ld(a,b){var s=b.pop() +if(0===s){b.push(A.ch(a.u,1,"0&")) +return}if(1===s){b.push(A.ch(a.u,4,"1&")) +return}throw A.b(A.cA("Unexpected extended operation "+A.o(s)))}, +je(a,b){var s=b.splice(a.p) +A.ji(a.u,a.e,s) +a.p=b.pop() +return s}, +aJ(a,b,c){if(typeof c=="string")return A.cg(a,c,a.sEA) +else if(typeof c=="number"){b.toString +return A.lf(a,b,c)}else return c}, +ji(a,b,c){var s,r=c.length +for(s=0;sn)return!1 +m=n-o +l=s.b +k=r.b +j=l.length +i=k.length +if(o+j=d)return!1 +a1=f[b] +b+=3 +if(a00?new Array(q):v.typeUniverse.sEA +for(o=0;o0?new Array(a):v.typeUniverse.sEA}, +T:function T(a,b){var _=this +_.a=a +_.b=b +_.w=_.r=_.c=null +_.x=0 +_.at=_.as=_.Q=_.z=_.y=null}, +eb:function eb(){this.c=this.b=this.a=null}, +hq:function hq(a){this.a=a}, +e8:function e8(){}, +ce:function ce(a){this.a=a}, +l2(){var s,r,q={} +if(self.scheduleImmediate!=null)return A.mt() +if(self.MutationObserver!=null&&self.document!=null){s=self.document.createElement("div") +r=self.document.createElement("span") +q.a=null +new self.MutationObserver(A.bs(new A.fS(q),1)).observe(s,{childList:true}) +return new A.fR(q,s,r)}else if(self.setImmediate!=null)return A.mu() +return A.mv()}, +l3(a){self.scheduleImmediate(A.bs(new A.fT(a),0))}, +l4(a){self.setImmediate(A.bs(new A.fU(a),0))}, +l5(a){A.lh(0,a)}, +lh(a,b){var s=new A.ho() +s.bL(a,b) +return s}, +mc(a){return new A.dU(new A.H($.F,a.l("H<0>")),a.l("dU<0>"))}, +lP(a,b){a.$2(0,null) +b.b=!0 +return b.a}, +lM(a,b){A.lQ(a,b)}, +lO(a,b){b.aJ(0,a)}, +lN(a,b){b.aK(A.aw(a),A.b5(a))}, +lQ(a,b){var s,r,q=new A.hz(b),p=new A.hA(b) +if(a instanceof A.H)a.b7(q,p,t.z) +else{s=t.z +if(a instanceof A.H)a.aV(q,p,s) +else{r=new A.H($.F,t.M) +r.a=8 +r.c=a +r.b7(q,p,s)}}}, +mr(a){var s=function(b,c){return function(d,e){while(true)try{b(d,e) +break}catch(r){e=r +d=c}}}(a,1) +return $.F.br(new A.hP(s))}, +f6(a,b){var s=A.f2(a,"error",t.K) +return new A.cB(s,b==null?A.iJ(a):b)}, +iJ(a){var s +if(t.U.b(a)){s=a.gaa() +if(s!=null)return s}return B.I}, +ij(a,b){var s,r +for(;s=a.a,(s&4)!==0;)a=a.c +if((s&24)!==0){r=b.aE() +b.aq(a) +A.c_(b,r)}else{r=b.c +b.a=b.a&1|4 +b.c=a +a.b5(r)}}, +c_(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g={},f=g.a=a +for(;!0;){s={} +r=f.a +q=(r&16)===0 +p=!q +if(b==null){if(p&&(r&1)===0){f=f.c +A.iy(f.a,f.b)}return}s.a=b +o=b.a +for(f=b;o!=null;f=o,o=n){f.a=null +A.c_(g.a,f) +s.a=o +n=o.a}r=g.a +m=r.c +s.b=p +s.c=m +if(q){l=f.c +l=(l&1)!==0||(l&15)===8}else l=!0 +if(l){k=f.b.b +if(p){r=r.b===k +r=!(r||r)}else r=!1 +if(r){A.iy(m.a,m.b) +return}j=$.F +if(j!==k)$.F=k +else j=null +f=f.c +if((f&15)===8)new A.h8(s,g,p).$0() +else if(q){if((f&1)!==0)new A.h7(s,m).$0()}else if((f&2)!==0)new A.h6(g,s).$0() +if(j!=null)$.F=j +f=s.c +if(f instanceof A.H){r=s.a.$ti +r=r.l("aC<2>").b(f)||!r.z[1].b(f)}else r=!1 +if(r){i=s.a.b +if((f.a&24)!==0){h=i.c +i.c=null +b=i.ac(h) +i.a=f.a&30|i.a&1 +i.c=f.c +g.a=f +continue}else A.ij(f,i) +return}}i=s.a.b +h=i.c +i.c=null +b=i.ac(h) +f=s.b +r=s.c +if(!f){i.a=8 +i.c=r}else{i.a=i.a&1|16 +i.c=r}g.a=i +f=i}}, +mh(a,b){if(t.C.b(a))return b.br(a) +if(t.w.b(a))return a +throw A.b(A.i7(a,"onError",u.c))}, +me(){var s,r +for(s=$.bq;s!=null;s=$.bq){$.co=null +r=s.b +$.bq=r +if(r==null)$.cn=null +s.a.$0()}}, +ml(){$.ix=!0 +try{A.me()}finally{$.co=null +$.ix=!1 +if($.bq!=null)$.iE().$1(A.jK())}}, +jH(a){var s=new A.dV(a),r=$.cn +if(r==null){$.bq=$.cn=s +if(!$.ix)$.iE().$1(A.jK())}else $.cn=r.b=s}, +mk(a){var s,r,q,p=$.bq +if(p==null){A.jH(a) +$.co=$.cn +return}s=new A.dV(a) +r=$.co +if(r==null){s.b=p +$.bq=$.co=s}else{q=r.b +s.b=q +$.co=r.b=s +if(q==null)$.cn=s}}, +mT(a){var s,r=null,q=$.F +if(B.d===q){A.b1(r,r,B.d,a) +return}s=!1 +if(s){A.b1(r,r,q,a) +return}A.b1(r,r,q,q.bc(a))}, +ns(a){A.f2(a,"stream",t.K) +return new A.eB()}, +iy(a,b){A.mk(new A.hN(a,b))}, +jE(a,b,c,d){var s,r=$.F +if(r===c)return d.$0() +$.F=c +s=r +try{r=d.$0() +return r}finally{$.F=s}}, +mj(a,b,c,d,e){var s,r=$.F +if(r===c)return d.$1(e) +$.F=c +s=r +try{r=d.$1(e) +return r}finally{$.F=s}}, +mi(a,b,c,d,e,f){var s,r=$.F +if(r===c)return d.$2(e,f) +$.F=c +s=r +try{r=d.$2(e,f) +return r}finally{$.F=s}}, +b1(a,b,c,d){if(B.d!==c)d=c.bc(d) +A.jH(d)}, +fS:function fS(a){this.a=a}, +fR:function fR(a,b,c){this.a=a +this.b=b +this.c=c}, +fT:function fT(a){this.a=a}, +fU:function fU(a){this.a=a}, +ho:function ho(){}, +hp:function hp(a,b){this.a=a +this.b=b}, +dU:function dU(a,b){this.a=a +this.b=!1 +this.$ti=b}, +hz:function hz(a){this.a=a}, +hA:function hA(a){this.a=a}, +hP:function hP(a){this.a=a}, +cB:function cB(a,b){this.a=a +this.b=b}, +dY:function dY(){}, +bV:function bV(a,b){this.a=a +this.$ti=b}, +bn:function bn(a,b,c,d,e){var _=this +_.a=null +_.b=a +_.c=b +_.d=c +_.e=d +_.$ti=e}, +H:function H(a,b){var _=this +_.a=0 +_.b=a +_.c=null +_.$ti=b}, +fZ:function fZ(a,b){this.a=a +this.b=b}, +h5:function h5(a,b){this.a=a +this.b=b}, +h1:function h1(a){this.a=a}, +h2:function h2(a){this.a=a}, +h3:function h3(a,b,c){this.a=a +this.b=b +this.c=c}, +h0:function h0(a,b){this.a=a +this.b=b}, +h4:function h4(a,b){this.a=a +this.b=b}, +h_:function h_(a,b,c){this.a=a +this.b=b +this.c=c}, +h8:function h8(a,b,c){this.a=a +this.b=b +this.c=c}, +h9:function h9(a){this.a=a}, +h7:function h7(a,b){this.a=a +this.b=b}, +h6:function h6(a,b){this.a=a +this.b=b}, +dV:function dV(a){this.a=a +this.b=null}, +eB:function eB(){}, +hy:function hy(){}, +hN:function hN(a,b){this.a=a +this.b=b}, +hc:function hc(){}, +hd:function hd(a,b){this.a=a +this.b=b}, +iV(a,b,c){return A.my(a,new A.aV(b.l("@<0>").I(c).l("aV<1,2>")))}, +d6(a,b){return new A.aV(a.l("@<0>").I(b).l("aV<1,2>"))}, +bG(a){return new A.c0(a.l("c0<0>"))}, +ik(){var s=Object.create(null) +s[""]=s +delete s[""] +return s}, +la(a,b){var s=new A.c1(a,b) +s.c=a.e +return s}, +iW(a,b){var s,r,q=A.bG(b) +for(s=a.length,r=0;r=0)return null +return r}return null}, +l1(a,b,c,d){var s=a?$.k6():$.k5() +if(s==null)return null +if(0===c&&d===b.length)return A.jb(s,b) +return A.jb(s,b.subarray(c,A.aW(c,d,b.length)))}, +jb(a,b){var s,r +try{s=a.decode(b) +return s}catch(r){}return null}, +iK(a,b,c,d,e,f){if(B.c.am(f,4)!==0)throw A.b(A.K("Invalid base64 padding, padded length must be multiple of four, is "+f,a,c)) +if(d+e!==f)throw A.b(A.K("Invalid base64 padding, '=' not at the end",a,b)) +if(e>2)throw A.b(A.K("Invalid base64 padding, more than two '=' characters",a,b))}, +lJ(a){switch(a){case 65:return"Missing extension byte" +case 67:return"Unexpected extension byte" +case 69:return"Invalid UTF-8 byte" +case 71:return"Overlong encoding" +case 73:return"Out of unicode range" +case 75:return"Encoded surrogate" +case 77:return"Unfinished UTF-8 octet sequence" +default:return""}}, +lI(a,b,c){var s,r,q,p=c-b,o=new Uint8Array(p) +for(s=J.b4(a),r=0;r>>0!==0?255:q}return o}, +eg:function eg(a,b){this.a=a +this.b=b +this.c=null}, +eh:function eh(a){this.a=a}, +fO:function fO(){}, +fN:function fN(){}, +f8:function f8(){}, +f9:function f9(){}, +cK:function cK(){}, +cM:function cM(){}, +fd:function fd(){}, +fj:function fj(){}, +fi:function fi(){}, +fn:function fn(){}, +fo:function fo(a){this.a=a}, +fL:function fL(){}, +fP:function fP(){}, +hv:function hv(a){this.b=0 +this.c=a}, +fM:function fM(a){this.a=a}, +hu:function hu(a){this.a=a +this.b=16 +this.c=0}, +i0(a,b){var s=A.j0(a,b) +if(s!=null)return s +throw A.b(A.K(a,null,null))}, +kw(a,b){a=A.b(a) +a.stack=b.k(0) +throw a +throw A.b("unreachable")}, +iX(a,b,c,d){var s,r=c?J.kF(a,d):J.kE(a,d) +if(a!==0&&b!=null)for(s=0;s")) +for(s=a.gv(a);s.n();)r.push(s.gt(s)) +if(b)return r +return J.ib(r)}, +iY(a,b,c){var s=A.kK(a,c) +return s}, +kK(a,b){var s,r +if(Array.isArray(a))return A.n(a.slice(0),b.l("C<0>")) +s=A.n([],b.l("C<0>")) +for(r=J.ae(a);r.n();)s.push(r.gt(r)) +return s}, +j5(a,b,c){var s=A.kQ(a,b,A.aW(b,c,a.length)) +return s}, +ih(a,b){return new A.fk(a,A.iT(a,!1,b,!1,!1,!1))}, +j4(a,b,c){var s=J.ae(b) +if(!s.n())return a +if(c.length===0){do a+=A.o(s.gt(s)) +while(s.n())}else{a+=A.o(s.gt(s)) +for(;s.n();)a=a+c+A.o(s.gt(s))}return a}, +jt(a,b,c,d){var s,r,q,p,o,n="0123456789ABCDEF" +if(c===B.h){s=$.k9().b +s=s.test(b)}else s=!1 +if(s)return b +r=c.gcf().Y(b) +for(s=r.length,q=0,p="";q>>4]&1<<(o&15))!==0)p+=A.am(o) +else p=d&&o===32?p+"+":p+"%"+n[o>>>4&15]+n[o&15]}return p.charCodeAt(0)==0?p:p}, +fe(a){if(typeof a=="number"||A.hM(a)||a==null)return J.ay(a) +if(typeof a=="string")return JSON.stringify(a) +return A.kP(a)}, +cA(a){return new A.cz(a)}, +aN(a,b){return new A.W(!1,null,b,a)}, +i7(a,b,c){return new A.W(!0,a,b,c)}, +kR(a,b){return new A.bS(null,null,!0,a,b,"Value not in range")}, +S(a,b,c,d,e){return new A.bS(b,c,!0,a,d,"Invalid value")}, +aW(a,b,c){if(0>a||a>c)throw A.b(A.S(a,0,c,"start",null)) +if(b!=null){if(a>b||b>c)throw A.b(A.S(b,a,c,"end",null)) +return b}return c}, +j1(a,b){if(a<0)throw A.b(A.S(a,0,null,b,null)) +return a}, +B(a,b,c,d){return new A.d_(b,!0,a,d,"Index out of range")}, +r(a){return new A.dP(a)}, +j7(a){return new A.dM(a)}, +dz(a){return new A.bi(a)}, +aQ(a){return new A.cL(a)}, +K(a,b,c){return new A.fh(a,b,c)}, +kD(a,b,c){var s,r +if(A.iC(a)){if(b==="("&&c===")")return"(...)" +return b+"..."+c}s=A.n([],t.s) +$.b7.push(a) +try{A.mb(a,s)}finally{$.b7.pop()}r=A.j4(b,s,", ")+c +return r.charCodeAt(0)==0?r:r}, +ia(a,b,c){var s,r +if(A.iC(a))return b+"..."+c +s=new A.L(b) +$.b7.push(a) +try{r=s +r.a=A.j4(r.a,a,", ")}finally{$.b7.pop()}s.a+=c +r=s.a +return r.charCodeAt(0)==0?r:r}, +mb(a,b){var s,r,q,p,o,n,m,l=a.gv(a),k=0,j=0 +while(!0){if(!(k<80||j<3))break +if(!l.n())return +s=A.o(l.gt(l)) +b.push(s) +k+=s.length+2;++j}if(!l.n()){if(j<=5)return +r=b.pop() +q=b.pop()}else{p=l.gt(l);++j +if(!l.n()){if(j<=4){b.push(A.o(p)) +return}r=A.o(p) +q=b.pop() +k+=r.length+2}else{o=l.gt(l);++j +for(;l.n();p=o,o=n){n=l.gt(l);++j +if(j>100){while(!0){if(!(k>75&&j>3))break +k-=b.pop().length+2;--j}b.push("...") +return}}q=A.o(p) +r=A.o(o) +k+=r.length+q.length+4}}if(j>b.length+2){k+=5 +m="..."}else m=null +while(!0){if(!(k>80&&b.length>3))break +k-=b.pop().length+2 +if(m==null){k+=5 +m="..."}}if(m!=null)b.push(m) +b.push(q) +b.push(r)}, +iZ(a,b,c,d){var s,r=B.e.gB(a) +b=B.e.gB(b) +c=B.e.gB(c) +d=B.e.gB(d) +s=$.ka() +return A.kW(A.fC(A.fC(A.fC(A.fC(s,r),b),c),d))}, +fH(a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3=null,a4=a5.length +if(a4>=5){s=((B.a.p(a5,4)^58)*3|B.a.p(a5,0)^100|B.a.p(a5,1)^97|B.a.p(a5,2)^116|B.a.p(a5,3)^97)>>>0 +if(s===0)return A.j8(a4=14)r[7]=a4 +q=r[1] +if(q>=0)if(A.jG(a5,0,q,20,r)===20)r[7]=q +p=r[2]+1 +o=r[3] +n=r[4] +m=r[5] +l=r[6] +if(lq+3){j=a3 +k=!1}else{i=o>0 +if(i&&o+1===n){j=a3 +k=!1}else{if(!B.a.H(a5,"\\",n))if(p>0)h=B.a.H(a5,"\\",p-1)||B.a.H(a5,"\\",p-2) +else h=!1 +else h=!0 +if(h){j=a3 +k=!1}else{if(!(mn+2&&B.a.H(a5,"/..",m-3) +else h=!0 +if(h){j=a3 +k=!1}else{if(q===4)if(B.a.H(a5,"file",0)){if(p<=0){if(!B.a.H(a5,"/",n)){g="file:///" +s=3}else{g="file://" +s=2}a5=g+B.a.m(a5,n,a4) +q-=0 +i=s-0 +m+=i +l+=i +a4=a5.length +p=7 +o=7 +n=7}else if(n===m){++l +f=m+1 +a5=B.a.a_(a5,n,m,"/");++a4 +m=f}j="file"}else if(B.a.H(a5,"http",0)){if(i&&o+3===n&&B.a.H(a5,"80",o+1)){l-=3 +e=n-3 +m-=3 +a5=B.a.a_(a5,o,n,"") +a4-=3 +n=e}j="http"}else j=a3 +else if(q===5&&B.a.H(a5,"https",0)){if(i&&o+4===n&&B.a.H(a5,"443",o+1)){l-=4 +e=n-4 +m-=4 +a5=B.a.a_(a5,o,n,"") +a4-=3 +n=e}j="https"}else j=a3 +k=!0}}}}else j=a3 +if(k){if(a40)j=A.lC(a5,0,q) +else{if(q===0)A.bp(a5,0,"Invalid empty scheme") +j=""}if(p>0){d=q+3 +c=d9)k.$2("invalid character",s)}else{if(q===3)k.$2(m,s) +o=A.i0(B.a.m(a,r,s),null) +if(o>255)k.$2(l,r) +n=q+1 +j[q]=o +r=s+1 +q=n}}if(q!==3)k.$2(m,c) +o=A.i0(B.a.m(a,r,c),null) +if(o>255)k.$2(l,r) +j[q]=o +return j}, +j9(a,b,a0){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e=null,d=new A.fI(a),c=new A.fJ(d,a) +if(a.length<2)d.$2("address is too short",e) +s=A.n([],t.t) +for(r=b,q=r,p=!1,o=!1;r>>0) +s.push((k[2]<<8|k[3])>>>0)}if(p){if(s.length>7)d.$2("an address with a wildcard must have less than 7 parts",e)}else if(s.length!==8)d.$2("an address without a wildcard must contain exactly 8 parts",e) +j=new Uint8Array(16) +for(l=s.length,i=9-l,r=0,h=0;r=b&&q=b&&s>>4]&1<<(p&15))!==0){if(q&&65<=p&&90>=p){if(i==null)i=new A.L("") +if(r>>4]&1<<(o&15))!==0){if(p&&65<=o&&90>=o){if(q==null)q=new A.L("") +if(r>>4]&1<<(o&15))!==0)A.bp(a,s,"Invalid character") +else{if((o&64512)===55296&&s+1>>4]&1<<(q&15))!==0))A.bp(a,s,"Illegal scheme character") +if(65<=q&&q<=90)r=!0}a=B.a.m(a,b,c) +return A.lv(r?a.toLowerCase():a)}, +lv(a){if(a==="http")return"http" +if(a==="file")return"file" +if(a==="https")return"https" +if(a==="package")return"package" +return a}, +lD(a,b,c){return A.ck(a,b,c,B.P,!1,!1)}, +lA(a,b,c,d,e,f){var s,r=e==="file",q=r||f +if(a==null)return r?"/":"" +else s=A.ck(a,b,c,B.t,!0,!0) +if(s.length===0){if(r)return"/"}else if(q&&!B.a.C(s,"/"))s="/"+s +return A.lE(s,e,f)}, +lE(a,b,c){var s=b.length===0 +if(s&&!c&&!B.a.C(a,"/")&&!B.a.C(a,"\\"))return A.lG(a,!s||c) +return A.lH(a)}, +is(a,b,c,d){var s,r={} +if(a!=null){if(d!=null)throw A.b(A.aN("Both query and queryParameters specified",null)) +return A.ck(a,b,c,B.j,!0,!1)}if(d==null)return null +s=new A.L("") +r.a="" +d.D(0,new A.hs(new A.ht(r,s))) +r=s.a +return r.charCodeAt(0)==0?r:r}, +ly(a,b,c){return A.ck(a,b,c,B.j,!0,!1)}, +it(a,b,c){var s,r,q,p,o,n=b+2 +if(n>=a.length)return"%" +s=B.a.u(a,b+1) +r=B.a.u(a,n) +q=A.hT(s) +p=A.hT(r) +if(q<0||p<0)return"%" +o=q*16+p +if(o<127&&(B.i[B.c.ad(o,4)]&1<<(o&15))!==0)return A.am(c&&65<=o&&90>=o?(o|32)>>>0:o) +if(s>=97||r>=97)return B.a.m(a,b,b+3).toUpperCase() +return null}, +ir(a){var s,r,q,p,o,n="0123456789ABCDEF" +if(a<128){s=new Uint8Array(3) +s[0]=37 +s[1]=B.a.p(n,a>>>4) +s[2]=B.a.p(n,a&15)}else{if(a>2047)if(a>65535){r=240 +q=4}else{r=224 +q=3}else{r=192 +q=2}s=new Uint8Array(3*q) +for(p=0;--q,q>=0;r=128){o=B.c.c3(a,6*q)&63|r +s[p]=37 +s[p+1]=B.a.p(n,o>>>4) +s[p+2]=B.a.p(n,o&15) +p+=3}}return A.j5(s,0,null)}, +ck(a,b,c,d,e,f){var s=A.jr(a,b,c,d,e,f) +return s==null?B.a.m(a,b,c):s}, +jr(a,b,c,d,e,f){var s,r,q,p,o,n,m,l,k,j,i=null +for(s=!e,r=b,q=r,p=i;r>>4]&1<<(o&15))!==0)++r +else{if(o===37){n=A.it(a,r,!1) +if(n==null){r+=3 +continue}if("%"===n){n="%25" +m=1}else m=3}else if(o===92&&f){n="/" +m=1}else if(s&&o<=93&&(B.u[o>>>4]&1<<(o&15))!==0){A.bp(a,r,"Invalid character") +m=i +n=m}else{if((o&64512)===55296){l=r+1 +if(l=2&&A.jp(B.a.p(a,0)))for(s=1;s127||(B.r[r>>>4]&1<<(r&15))===0)break}return a}, +lx(a,b){var s,r,q +for(s=0,r=0;r<2;++r){q=B.a.p(a,b+r) +if(48<=q&&q<=57)s=s*16+q-48 +else{q|=32 +if(97<=q&&q<=102)s=s*16+q-87 +else throw A.b(A.aN("Invalid URL encoding",null))}}return s}, +iu(a,b,c,d,e){var s,r,q,p,o=b +while(!0){if(!(o127)throw A.b(A.aN("Illegal percent encoding in URI",null)) +if(r===37){if(o+3>q)throw A.b(A.aN("Truncated URI",null)) +p.push(A.lx(a,o+1)) +o+=2}else if(r===43)p.push(32) +else p.push(r)}}return B.a8.Y(p)}, +jp(a){var s=a|32 +return 97<=s&&s<=122}, +j8(a,b,c){var s,r,q,p,o,n,m,l,k="Invalid MIME type",j=A.n([b-1],t.t) +for(s=a.length,r=b,q=-1,p=null;rb)throw A.b(A.K(k,a,r)) +for(;p!==44;){j.push(r);++r +for(o=-1;r=0)j.push(o) +else{n=B.b.gai(j) +if(p!==44||r!==n+7||!B.a.H(a,"base64",n+1))throw A.b(A.K("Expecting '='",a,r)) +break}}j.push(r) +m=r+1 +if((j.length&1)===1)a=B.y.ct(0,a,m,s) +else{l=A.jr(a,m,s,B.j,!0,!1) +if(l!=null)a=B.a.a_(a,m,s,l)}return new A.fF(a,j,c)}, +lT(){var s,r,q,p,o,n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~!$&'()*+,;=",m=".",l=":",k="/",j="\\",i="?",h="#",g="/\\",f=A.n(new Array(22),t.m) +for(s=0;s<22;++s)f[s]=new Uint8Array(96) +r=new A.hE(f) +q=new A.hF() +p=new A.hG() +o=r.$2(0,225) +q.$3(o,n,1) +q.$3(o,m,14) +q.$3(o,l,34) +q.$3(o,k,3) +q.$3(o,j,227) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(14,225) +q.$3(o,n,1) +q.$3(o,m,15) +q.$3(o,l,34) +q.$3(o,g,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(15,225) +q.$3(o,n,1) +q.$3(o,"%",225) +q.$3(o,l,34) +q.$3(o,k,9) +q.$3(o,j,233) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(1,225) +q.$3(o,n,1) +q.$3(o,l,34) +q.$3(o,k,10) +q.$3(o,j,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(2,235) +q.$3(o,n,139) +q.$3(o,k,131) +q.$3(o,j,131) +q.$3(o,m,146) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(3,235) +q.$3(o,n,11) +q.$3(o,k,68) +q.$3(o,j,68) +q.$3(o,m,18) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(4,229) +q.$3(o,n,5) +p.$3(o,"AZ",229) +q.$3(o,l,102) +q.$3(o,"@",68) +q.$3(o,"[",232) +q.$3(o,k,138) +q.$3(o,j,138) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(5,229) +q.$3(o,n,5) +p.$3(o,"AZ",229) +q.$3(o,l,102) +q.$3(o,"@",68) +q.$3(o,k,138) +q.$3(o,j,138) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(6,231) +p.$3(o,"19",7) +q.$3(o,"@",68) +q.$3(o,k,138) +q.$3(o,j,138) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(7,231) +p.$3(o,"09",7) +q.$3(o,"@",68) +q.$3(o,k,138) +q.$3(o,j,138) +q.$3(o,i,172) +q.$3(o,h,205) +q.$3(r.$2(8,8),"]",5) +o=r.$2(9,235) +q.$3(o,n,11) +q.$3(o,m,16) +q.$3(o,g,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(16,235) +q.$3(o,n,11) +q.$3(o,m,17) +q.$3(o,g,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(17,235) +q.$3(o,n,11) +q.$3(o,k,9) +q.$3(o,j,233) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(10,235) +q.$3(o,n,11) +q.$3(o,m,18) +q.$3(o,k,10) +q.$3(o,j,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(18,235) +q.$3(o,n,11) +q.$3(o,m,19) +q.$3(o,g,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(19,235) +q.$3(o,n,11) +q.$3(o,g,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(11,235) +q.$3(o,n,11) +q.$3(o,k,10) +q.$3(o,j,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(12,236) +q.$3(o,n,12) +q.$3(o,i,12) +q.$3(o,h,205) +o=r.$2(13,237) +q.$3(o,n,13) +q.$3(o,i,13) +p.$3(r.$2(20,245),"az",21) +o=r.$2(21,245) +p.$3(o,"az",21) +p.$3(o,"09",21) +q.$3(o,"+-.",21) +return f}, +jG(a,b,c,d,e){var s,r,q,p,o=$.kb() +for(s=b;s95?31:q] +d=p&31 +e[p>>>5]=s}return d}, +z:function z(){}, +cz:function cz(a){this.a=a}, +ap:function ap(){}, +W:function W(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +bS:function bS(a,b,c,d,e,f){var _=this +_.e=a +_.f=b +_.a=c +_.b=d +_.c=e +_.d=f}, +d_:function d_(a,b,c,d,e){var _=this +_.f=a +_.a=b +_.b=c +_.c=d +_.d=e}, +dP:function dP(a){this.a=a}, +dM:function dM(a){this.a=a}, +bi:function bi(a){this.a=a}, +cL:function cL(a){this.a=a}, +dn:function dn(){}, +bT:function bT(){}, +fY:function fY(a){this.a=a}, +fh:function fh(a,b,c){this.a=a +this.b=b +this.c=c}, +u:function u(){}, +G:function G(){}, +y:function y(){}, +eE:function eE(){}, +L:function L(a){this.a=a}, +fK:function fK(a){this.a=a}, +fG:function fG(a){this.a=a}, +fI:function fI(a){this.a=a}, +fJ:function fJ(a,b){this.a=a +this.b=b}, +cj:function cj(a,b,c,d,e,f,g){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.z=_.y=_.w=$}, +ht:function ht(a,b){this.a=a +this.b=b}, +hs:function hs(a){this.a=a}, +fF:function fF(a,b,c){this.a=a +this.b=b +this.c=c}, +hE:function hE(a){this.a=a}, +hF:function hF(){}, +hG:function hG(){}, +ew:function ew(a,b,c,d,e,f,g,h){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=null}, +e2:function e2(a,b,c,d,e,f,g){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.z=_.y=_.w=$}, +l6(a,b){var s +for(s=b.gv(b);s.n();)a.appendChild(s.gt(s))}, +kv(a,b,c){var s=document.body +s.toString +s=new A.ar(new A.J(B.m.J(s,a,b,c)),new A.fc(),t.G.l("ar")) +return t.h.a(s.gW(s))}, +bz(a){var s,r="element tag unavailable" +try{r=a.tagName}catch(s){}return r}, +jd(a){var s=document.createElement("a"),r=new A.he(s,window.location) +r=new A.bo(r) +r.bJ(a) +return r}, +l7(a,b,c,d){return!0}, +l8(a,b,c,d){var s,r=d.a,q=r.a +q.href=c +s=q.hostname +r=r.b +if(!(s==r.hostname&&q.port===r.port&&q.protocol===r.protocol))if(s==="")if(q.port===""){r=q.protocol +r=r===":"||r===""}else r=!1 +else r=!1 +else r=!0 +return r}, +jj(){var s=t.N,r=A.iW(B.q,s),q=A.n(["TEMPLATE"],t.s) +s=new A.eH(r,A.bG(s),A.bG(s),A.bG(s),null) +s.bK(null,new A.ak(B.q,new A.hn(),t.E),q,null) +return s}, +l:function l(){}, +cw:function cw(){}, +cx:function cx(){}, +cy:function cy(){}, +ba:function ba(){}, +bu:function bu(){}, +aO:function aO(){}, +a0:function a0(){}, +cO:function cO(){}, +w:function w(){}, +bc:function bc(){}, +fb:function fb(){}, +N:function N(){}, +X:function X(){}, +cP:function cP(){}, +cQ:function cQ(){}, +cR:function cR(){}, +aS:function aS(){}, +cS:function cS(){}, +bw:function bw(){}, +bx:function bx(){}, +cT:function cT(){}, +cU:function cU(){}, +q:function q(){}, +fc:function fc(){}, +h:function h(){}, +c:function c(){}, +a1:function a1(){}, +cV:function cV(){}, +cW:function cW(){}, +cY:function cY(){}, +a2:function a2(){}, +cZ:function cZ(){}, +aU:function aU(){}, +bD:function bD(){}, +aD:function aD(){}, +bf:function bf(){}, +d7:function d7(){}, +d8:function d8(){}, +d9:function d9(){}, +fs:function fs(a){this.a=a}, +da:function da(){}, +ft:function ft(a){this.a=a}, +a4:function a4(){}, +db:function db(){}, +J:function J(a){this.a=a}, +m:function m(){}, +bP:function bP(){}, +a6:function a6(){}, +dq:function dq(){}, +dt:function dt(){}, +fz:function fz(a){this.a=a}, +dv:function dv(){}, +a7:function a7(){}, +dx:function dx(){}, +a8:function a8(){}, +dy:function dy(){}, +a9:function a9(){}, +dB:function dB(){}, +fB:function fB(a){this.a=a}, +U:function U(){}, +bU:function bU(){}, +dD:function dD(){}, +dE:function dE(){}, +bj:function bj(){}, +aY:function aY(){}, +aa:function aa(){}, +V:function V(){}, +dG:function dG(){}, +dH:function dH(){}, +dI:function dI(){}, +ab:function ab(){}, +dJ:function dJ(){}, +dK:function dK(){}, +P:function P(){}, +dR:function dR(){}, +dS:function dS(){}, +bm:function bm(){}, +dZ:function dZ(){}, +bX:function bX(){}, +ec:function ec(){}, +c2:function c2(){}, +ez:function ez(){}, +eF:function eF(){}, +dW:function dW(){}, +bZ:function bZ(a){this.a=a}, +e1:function e1(a){this.a=a}, +fV:function fV(a,b){this.a=a +this.b=b}, +fW:function fW(a,b){this.a=a +this.b=b}, +e7:function e7(a){this.a=a}, +bo:function bo(a){this.a=a}, +A:function A(){}, +bQ:function bQ(a){this.a=a}, +fv:function fv(a){this.a=a}, +fu:function fu(a,b,c){this.a=a +this.b=b +this.c=c}, +c8:function c8(){}, +hl:function hl(){}, +hm:function hm(){}, +eH:function eH(a,b,c,d,e){var _=this +_.e=a +_.a=b +_.b=c +_.c=d +_.d=e}, +hn:function hn(){}, +eG:function eG(){}, +bC:function bC(a,b){var _=this +_.a=a +_.b=b +_.c=-1 +_.d=null}, +he:function he(a,b){this.a=a +this.b=b}, +eQ:function eQ(a){this.a=a +this.b=0}, +hx:function hx(a){this.a=a}, +e_:function e_(){}, +e3:function e3(){}, +e4:function e4(){}, +e5:function e5(){}, +e6:function e6(){}, +e9:function e9(){}, +ea:function ea(){}, +ee:function ee(){}, +ef:function ef(){}, +el:function el(){}, +em:function em(){}, +en:function en(){}, +eo:function eo(){}, +ep:function ep(){}, +eq:function eq(){}, +et:function et(){}, +eu:function eu(){}, +ev:function ev(){}, +c9:function c9(){}, +ca:function ca(){}, +ex:function ex(){}, +ey:function ey(){}, +eA:function eA(){}, +eI:function eI(){}, +eJ:function eJ(){}, +cc:function cc(){}, +cd:function cd(){}, +eK:function eK(){}, +eL:function eL(){}, +eR:function eR(){}, +eS:function eS(){}, +eT:function eT(){}, +eU:function eU(){}, +eV:function eV(){}, +eW:function eW(){}, +eX:function eX(){}, +eY:function eY(){}, +eZ:function eZ(){}, +f_:function f_(){}, +jw(a){var s,r,q +if(a==null)return a +if(typeof a=="string"||typeof a=="number"||A.hM(a))return a +s=Object.getPrototypeOf(a) +if(s===Object.prototype||s===null)return A.aL(a) +if(Array.isArray(a)){r=[] +for(q=0;q")),r=new A.bV(s,b.l("bV<0>")) +a.then(A.bs(new A.i3(r),1),A.bs(new A.i4(r),1)) +return s}, +i3:function i3(a){this.a=a}, +i4:function i4(a){this.a=a}, +fw:function fw(a){this.a=a}, +ah:function ah(){}, +d4:function d4(){}, +al:function al(){}, +dl:function dl(){}, +dr:function dr(){}, +bh:function bh(){}, +dC:function dC(){}, +cC:function cC(a){this.a=a}, +j:function j(){}, +ao:function ao(){}, +dL:function dL(){}, +ei:function ei(){}, +ej:function ej(){}, +er:function er(){}, +es:function es(){}, +eC:function eC(){}, +eD:function eD(){}, +eM:function eM(){}, +eN:function eN(){}, +cD:function cD(){}, +cE:function cE(){}, +f7:function f7(a){this.a=a}, +cF:function cF(){}, +az:function az(){}, +dm:function dm(){}, +dX:function dX(){}, +mG(){var s=document,r=t.cD,q=r.a(s.getElementById("search-box")),p=r.a(s.getElementById("search-body")),o=r.a(s.getElementById("search-sidebar")) +s=window +r=$.cu() +A.jR(s.fetch(A.o(r)+"index.json",null),t.z).bt(new A.hY(new A.hZ(q,p,o),q,p,o),t.P)}, +jz(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g=null,f=b.length +if(f===0)return A.n([],t.O) +s=A.n([],t.L) +for(r=a.length,f=f>1,q="dart:"+b,p=0;p4294967295)throw A.b(A.S(a,0,4294967295,"length",null)) +return J.kG(new Array(a),b)}, +kF(a,b){if(a<0)throw A.b(A.aN("Length must be a non-negative integer: "+a,null)) +return A.n(new Array(a),b.l("C<0>"))}, +kG(a,b){return J.ib(A.n(a,b.l("C<0>")))}, +ib(a){a.fixed$length=Array +return a}, +kH(a,b){return J.kf(a,b)}, +iS(a){if(a<256)switch(a){case 9:case 10:case 11:case 12:case 13:case 32:case 133:case 160:return!0 +default:return!1}switch(a){case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8232:case 8233:case 8239:case 8287:case 12288:case 65279:return!0 +default:return!1}}, +kI(a,b){var s,r +for(s=a.length;b0;b=s){s=b-1 +r=B.a.u(a,s) +if(r!==32&&r!==13&&!J.iS(r))break}return b}, +b3(a){if(typeof a=="number"){if(Math.floor(a)==a)return J.bE.prototype +return J.d1.prototype}if(typeof a=="string")return J.aE.prototype +if(a==null)return J.bF.prototype +if(typeof a=="boolean")return J.d0.prototype +if(Array.isArray(a))return J.C.prototype +if(typeof a!="object"){if(typeof a=="function")return J.ag.prototype +return a}if(a instanceof A.y)return a +return J.hS(a)}, +b4(a){if(typeof a=="string")return J.aE.prototype +if(a==null)return a +if(Array.isArray(a))return J.C.prototype +if(typeof a!="object"){if(typeof a=="function")return J.ag.prototype +return a}if(a instanceof A.y)return a +return J.hS(a)}, +f3(a){if(a==null)return a +if(Array.isArray(a))return J.C.prototype +if(typeof a!="object"){if(typeof a=="function")return J.ag.prototype +return a}if(a instanceof A.y)return a +return J.hS(a)}, +mz(a){if(typeof a=="number")return J.be.prototype +if(typeof a=="string")return J.aE.prototype +if(a==null)return a +if(!(a instanceof A.y))return J.b_.prototype +return a}, +jM(a){if(typeof a=="string")return J.aE.prototype +if(a==null)return a +if(!(a instanceof A.y))return J.b_.prototype +return a}, +M(a){if(a==null)return a +if(typeof a!="object"){if(typeof a=="function")return J.ag.prototype +return a}if(a instanceof A.y)return a +return J.hS(a)}, +b8(a,b){if(a==null)return b==null +if(typeof a!="object")return b!=null&&a===b +return J.b3(a).N(a,b)}, +i5(a,b){if(typeof b==="number")if(Array.isArray(a)||typeof a=="string"||A.jO(a,a[v.dispatchPropertyName]))if(b>>>0===b&&b>>0===b&&b").I(b).l("af<1,2>"))}, +ag(a){if(!!a.fixed$length)A.b6(A.r("clear")) +a.length=0}, +U(a,b){var s,r=A.iX(a.length,"",!1,t.N) +for(s=0;ss)throw A.b(A.S(b,0,s,"start",null)) +if(cs)throw A.b(A.S(c,b,s,"end",null)) +if(b===c)return A.n([],A.cm(a)) +return A.n(a.slice(b,c),A.cm(a))}, +gcj(a){if(a.length>0)return a[0] +throw A.b(A.i9())}, +gai(a){var s=a.length +if(s>0)return a[s-1] +throw A.b(A.i9())}, +bb(a,b){var s,r=a.length +for(s=0;s=0&&b=0&&b=p){r.d=null +return!1}r.d=q[s] +r.c=s+1 +return!0}} +J.be.prototype={ +be(a,b){var s +if(ab)return 1 +else if(a===b){if(a===0){s=this.gaQ(b) +if(this.gaQ(a)===s)return 0 +if(this.gaQ(a))return-1 +return 1}return 0}else if(isNaN(a)){if(isNaN(b))return 0 +return 1}else return-1}, +gaQ(a){return a===0?1/a<0:a<0}, +a0(a){if(a>0){if(a!==1/0)return Math.round(a)}else if(a>-1/0)return 0-Math.round(0-a) +throw A.b(A.r(""+a+".round()"))}, +k(a){if(a===0&&1/a<0)return"-0.0" +else return""+a}, +gB(a){var s,r,q,p,o=a|0 +if(a===o)return o&536870911 +s=Math.abs(a) +r=Math.log(s)/0.6931471805599453|0 +q=Math.pow(2,r) +p=s<1?s/q:q/s +return((p*9007199254740992|0)+(p*3542243181176521|0))*599197+r*1259&536870911}, +am(a,b){var s=a%b +if(s===0)return 0 +if(s>0)return s +return s+b}, +aF(a,b){return(a|0)===a?a/b|0:this.c4(a,b)}, +c4(a,b){var s=a/b +if(s>=-2147483648&&s<=2147483647)return s|0 +if(s>0){if(s!==1/0)return Math.floor(s)}else if(s>-1/0)return Math.ceil(s) +throw A.b(A.r("Result of truncating division is "+A.o(s)+": "+A.o(a)+" ~/ "+b))}, +ad(a,b){var s +if(a>0)s=this.b6(a,b) +else{s=b>31?31:b +s=a>>s>>>0}return s}, +c3(a,b){if(0>b)throw A.b(A.ms(b)) +return this.b6(a,b)}, +b6(a,b){return b>31?0:a>>>b}, +gE(a){return A.b2(t.H)}, +$iE:1, +$iR:1} +J.bE.prototype={ +gE(a){return A.b2(t.S)}, +$it:1, +$ii:1} +J.d1.prototype={ +gE(a){return A.b2(t.i)}, +$it:1} +J.aE.prototype={ +u(a,b){if(b<0)throw A.b(A.cq(a,b)) +if(b>=a.length)A.b6(A.cq(a,b)) +return a.charCodeAt(b)}, +p(a,b){if(b>=a.length)throw A.b(A.cq(a,b)) +return a.charCodeAt(b)}, +by(a,b){return a+b}, +a_(a,b,c,d){var s=A.aW(b,c,a.length) +return a.substring(0,b)+d+a.substring(s)}, +H(a,b,c){var s +if(c<0||c>a.length)throw A.b(A.S(c,0,a.length,null,null)) +s=c+b.length +if(s>a.length)return!1 +return b===a.substring(c,s)}, +C(a,b){return this.H(a,b,0)}, +m(a,b,c){return a.substring(b,A.aW(b,c,a.length))}, +O(a,b){return this.m(a,b,null)}, +cE(a){return a.toLowerCase()}, +cF(a){var s,r,q,p=a.trim(),o=p.length +if(o===0)return p +if(this.p(p,0)===133){s=J.kI(p,1) +if(s===o)return""}else s=0 +r=o-1 +q=this.u(p,r)===133?J.kJ(p,r):o +if(s===0&&q===o)return p +return p.substring(s,q)}, +bz(a,b){var s,r +if(0>=b)return"" +if(b===1||a.length===0)return a +if(b!==b>>>0)throw A.b(B.G) +for(s=a,r="";!0;){if((b&1)===1)r=s+r +b=b>>>1 +if(b===0)break +s+=s}return r}, +ah(a,b,c){var s +if(c<0||c>a.length)throw A.b(A.S(c,0,a.length,null,null)) +s=a.indexOf(b,c) +return s}, +bm(a,b){return this.ah(a,b,0)}, +c9(a,b,c){var s=a.length +if(c>s)throw A.b(A.S(c,0,s,null,null)) +return A.f4(a,b,c)}, +G(a,b){return this.c9(a,b,0)}, +be(a,b){var s +if(a===b)s=0 +else s=a>6}r=r+((r&67108863)<<3)&536870911 +r^=r>>11 +return r+((r&16383)<<15)&536870911}, +gE(a){return A.b2(t.N)}, +gi(a){return a.length}, +$it:1, +$id:1} +A.aI.prototype={ +gv(a){var s=A.I(this) +return new A.cG(J.ae(this.ga5()),s.l("@<1>").I(s.z[1]).l("cG<1,2>"))}, +gi(a){return J.ax(this.ga5())}, +q(a,b){return A.I(this).z[1].a(J.cv(this.ga5(),b))}, +k(a){return J.ay(this.ga5())}} +A.cG.prototype={ +n(){return this.a.n()}, +gt(a){var s=this.a +return this.$ti.z[1].a(s.gt(s))}} +A.aP.prototype={ +ga5(){return this.a}} +A.bY.prototype={$if:1} +A.bW.prototype={ +h(a,b){return this.$ti.z[1].a(J.i5(this.a,b))}, +j(a,b,c){J.f5(this.a,b,this.$ti.c.a(c))}, +$if:1, +$ik:1} +A.af.prototype={ +af(a,b){return new A.af(this.a,this.$ti.l("@<1>").I(b).l("af<1,2>"))}, +ga5(){return this.a}} +A.d3.prototype={ +k(a){return"LateInitializationError: "+this.a}} +A.cJ.prototype={ +gi(a){return this.a.length}, +h(a,b){return B.a.u(this.a,b)}} +A.fA.prototype={} +A.f.prototype={} +A.a3.prototype={ +gv(a){return new A.bH(this,this.gi(this))}, +ak(a,b){return this.bG(0,b)}} +A.bH.prototype={ +gt(a){var s=this.d +return s==null?A.I(this).c.a(s):s}, +n(){var s,r=this,q=r.a,p=J.b4(q),o=p.gi(q) +if(r.b!==o)throw A.b(A.aQ(q)) +s=r.c +if(s>=o){r.d=null +return!1}r.d=p.q(q,s);++r.c +return!0}} +A.aj.prototype={ +gv(a){return new A.bJ(J.ae(this.a),this.b)}, +gi(a){return J.ax(this.a)}, +q(a,b){return this.b.$1(J.cv(this.a,b))}} +A.by.prototype={$if:1} +A.bJ.prototype={ +n(){var s=this,r=s.b +if(r.n()){s.a=s.c.$1(r.gt(r)) +return!0}s.a=null +return!1}, +gt(a){var s=this.a +return s==null?A.I(this).z[1].a(s):s}} +A.ak.prototype={ +gi(a){return J.ax(this.a)}, +q(a,b){return this.b.$1(J.cv(this.a,b))}} +A.ar.prototype={ +gv(a){return new A.dT(J.ae(this.a),this.b)}} +A.dT.prototype={ +n(){var s,r +for(s=this.a,r=this.b;s.n();)if(r.$1(s.gt(s)))return!0 +return!1}, +gt(a){var s=this.a +return s.gt(s)}} +A.bB.prototype={} +A.dO.prototype={ +j(a,b,c){throw A.b(A.r("Cannot modify an unmodifiable list"))}} +A.bk.prototype={} +A.cl.prototype={} +A.bv.prototype={ +k(a){return A.ie(this)}, +j(a,b,c){A.ku()}, +$ix:1} +A.aR.prototype={ +gi(a){return this.a}, +a6(a,b){if("__proto__"===b)return!1 +return this.b.hasOwnProperty(b)}, +h(a,b){if(!this.a6(0,b))return null +return this.b[b]}, +D(a,b){var s,r,q,p,o=this.c +for(s=o.length,r=this.b,q=0;q>>0}, +k(a){return"Closure '"+this.$_name+"' of "+("Instance of '"+A.fy(this.a)+"'")}} +A.e0.prototype={ +k(a){return"Reading static variable '"+this.a+"' during its initialization"}} +A.du.prototype={ +k(a){return"RuntimeError: "+this.a}} +A.aV.prototype={ +gi(a){return this.a}, +gF(a){return new A.ai(this,A.I(this).l("ai<1>"))}, +gbx(a){var s=A.I(this) +return A.kM(new A.ai(this,s.l("ai<1>")),new A.fm(this),s.c,s.z[1])}, +a6(a,b){var s=this.b +if(s==null)return!1 +return s[b]!=null}, +h(a,b){var s,r,q,p,o=null +if(typeof b=="string"){s=this.b +if(s==null)return o +r=s[b] +q=r==null?o:r.b +return q}else if(typeof b=="number"&&(b&0x3fffffff)===b){p=this.c +if(p==null)return o +r=p[b] +q=r==null?o:r.b +return q}else return this.cp(b)}, +cp(a){var s,r,q=this.d +if(q==null)return null +s=q[this.bn(a)] +r=this.bo(s,a) +if(r<0)return null +return s[r].b}, +j(a,b,c){var s,r,q=this +if(typeof b=="string"){s=q.b +q.aY(s==null?q.b=q.aC():s,b,c)}else if(typeof b=="number"&&(b&0x3fffffff)===b){r=q.c +q.aY(r==null?q.c=q.aC():r,b,c)}else q.cq(b,c)}, +cq(a,b){var s,r,q,p=this,o=p.d +if(o==null)o=p.d=p.aC() +s=p.bn(a) +r=o[s] +if(r==null)o[s]=[p.aD(a,b)] +else{q=p.bo(r,a) +if(q>=0)r[q].b=b +else r.push(p.aD(a,b))}}, +ag(a){var s=this +if(s.a>0){s.b=s.c=s.d=s.e=s.f=null +s.a=0 +s.b4()}}, +D(a,b){var s=this,r=s.e,q=s.r +for(;r!=null;){b.$2(r.a,r.b) +if(q!==s.r)throw A.b(A.aQ(s)) +r=r.c}}, +aY(a,b,c){var s=a[b] +if(s==null)a[b]=this.aD(b,c) +else s.b=c}, +b4(){this.r=this.r+1&1073741823}, +aD(a,b){var s,r=this,q=new A.fp(a,b) +if(r.e==null)r.e=r.f=q +else{s=r.f +s.toString +q.d=s +r.f=s.c=q}++r.a +r.b4() +return q}, +bn(a){return J.i6(a)&0x3fffffff}, +bo(a,b){var s,r +if(a==null)return-1 +s=a.length +for(r=0;r"]=s +delete s[""] +return s}} +A.fm.prototype={ +$1(a){var s=this.a,r=s.h(0,a) +return r==null?A.I(s).z[1].a(r):r}, +$S(){return A.I(this.a).l("2(1)")}} +A.fp.prototype={} +A.ai.prototype={ +gi(a){return this.a.a}, +gv(a){var s=this.a,r=new A.d5(s,s.r) +r.c=s.e +return r}} +A.d5.prototype={ +gt(a){return this.d}, +n(){var s,r=this,q=r.a +if(r.b!==q.r)throw A.b(A.aQ(q)) +s=r.c +if(s==null){r.d=null +return!1}else{r.d=s.a +r.c=s.c +return!0}}} +A.hU.prototype={ +$1(a){return this.a(a)}, +$S:25} +A.hV.prototype={ +$2(a,b){return this.a(a,b)}, +$S:39} +A.hW.prototype={ +$1(a){return this.a(a)}, +$S:18} +A.fk.prototype={ +k(a){return"RegExp/"+this.a+"/"+this.b.flags}, +gbW(){var s=this,r=s.c +if(r!=null)return r +r=s.b +return s.c=A.iT(s.a,r.multiline,!r.ignoreCase,r.unicode,r.dotAll,!0)}, +bU(a,b){var s,r=this.gbW() +r.lastIndex=b +s=r.exec(a) +if(s==null)return null +return new A.ek(s)}} +A.ek.prototype={ +gcg(a){var s=this.b +return s.index+s[0].length}, +h(a,b){return this.b[b]}, +$ifr:1, +$iig:1} +A.fQ.prototype={ +gt(a){var s=this.d +return s==null?t.F.a(s):s}, +n(){var s,r,q,p,o,n=this,m=n.b +if(m==null)return!1 +s=n.c +r=m.length +if(s<=r){q=n.a +p=q.bU(m,s) +if(p!=null){n.d=p +o=p.gcg(p) +if(p.b.index===o){if(q.b.unicode){s=n.c +q=s+1 +if(q=55296&&s<=56319){s=B.a.u(m,q) +s=s>=56320&&s<=57343}else s=!1}else s=!1}else s=!1 +o=(s?o+1:o)+1}n.c=o +return!0}}n.b=n.d=null +return!1}} +A.dc.prototype={ +gE(a){return B.X}, +$it:1} +A.bM.prototype={} +A.dd.prototype={ +gE(a){return B.Y}, +$it:1} +A.bg.prototype={ +gi(a){return a.length}, +$ip:1} +A.bK.prototype={ +h(a,b){A.at(b,a,a.length) +return a[b]}, +j(a,b,c){A.at(b,a,a.length) +a[b]=c}, +$if:1, +$ik:1} +A.bL.prototype={ +j(a,b,c){A.at(b,a,a.length) +a[b]=c}, +$if:1, +$ik:1} +A.de.prototype={ +gE(a){return B.Z}, +$it:1} +A.df.prototype={ +gE(a){return B.a_}, +$it:1} +A.dg.prototype={ +gE(a){return B.a0}, +h(a,b){A.at(b,a,a.length) +return a[b]}, +$it:1} +A.dh.prototype={ +gE(a){return B.a1}, +h(a,b){A.at(b,a,a.length) +return a[b]}, +$it:1} +A.di.prototype={ +gE(a){return B.a2}, +h(a,b){A.at(b,a,a.length) +return a[b]}, +$it:1} +A.dj.prototype={ +gE(a){return B.a4}, +h(a,b){A.at(b,a,a.length) +return a[b]}, +$it:1} +A.dk.prototype={ +gE(a){return B.a5}, +h(a,b){A.at(b,a,a.length) +return a[b]}, +$it:1} +A.bN.prototype={ +gE(a){return B.a6}, +gi(a){return a.length}, +h(a,b){A.at(b,a,a.length) +return a[b]}, +$it:1} +A.bO.prototype={ +gE(a){return B.a7}, +gi(a){return a.length}, +h(a,b){A.at(b,a,a.length) +return a[b]}, +$it:1, +$iaZ:1} +A.c3.prototype={} +A.c4.prototype={} +A.c5.prototype={} +A.c6.prototype={} +A.T.prototype={ +l(a){return A.hr(v.typeUniverse,this,a)}, +I(a){return A.ls(v.typeUniverse,this,a)}} +A.eb.prototype={} +A.hq.prototype={ +k(a){return A.Q(this.a,null)}} +A.e8.prototype={ +k(a){return this.a}} +A.ce.prototype={$iap:1} +A.fS.prototype={ +$1(a){var s=this.a,r=s.a +s.a=null +r.$0()}, +$S:9} +A.fR.prototype={ +$1(a){var s,r +this.a.a=a +s=this.b +r=this.c +s.firstChild?s.removeChild(r):s.appendChild(r)}, +$S:23} +A.fT.prototype={ +$0(){this.a.$0()}, +$S:8} +A.fU.prototype={ +$0(){this.a.$0()}, +$S:8} +A.ho.prototype={ +bL(a,b){if(self.setTimeout!=null)self.setTimeout(A.bs(new A.hp(this,b),0),a) +else throw A.b(A.r("`setTimeout()` not found."))}} +A.hp.prototype={ +$0(){this.b.$0()}, +$S:0} +A.dU.prototype={ +aJ(a,b){var s,r=this +if(b==null)b=r.$ti.c.a(b) +if(!r.b)r.a.aZ(b) +else{s=r.a +if(r.$ti.l("aC<1>").b(b))s.b0(b) +else s.au(b)}}, +aK(a,b){var s=this.a +if(this.b)s.a2(a,b) +else s.b_(a,b)}} +A.hz.prototype={ +$1(a){return this.a.$2(0,a)}, +$S:4} +A.hA.prototype={ +$2(a,b){this.a.$2(1,new A.bA(a,b))}, +$S:24} +A.hP.prototype={ +$2(a,b){this.a(a,b)}, +$S:19} +A.cB.prototype={ +k(a){return A.o(this.a)}, +$iz:1, +gaa(){return this.b}} +A.dY.prototype={ +aK(a,b){var s +A.f2(a,"error",t.K) +s=this.a +if((s.a&30)!==0)throw A.b(A.dz("Future already completed")) +if(b==null)b=A.iJ(a) +s.b_(a,b)}, +bf(a){return this.aK(a,null)}} +A.bV.prototype={ +aJ(a,b){var s=this.a +if((s.a&30)!==0)throw A.b(A.dz("Future already completed")) +s.aZ(b)}} +A.bn.prototype={ +cr(a){if((this.c&15)!==6)return!0 +return this.b.b.aU(this.d,a.a)}, +cm(a){var s,r=this.e,q=null,p=a.a,o=this.b.b +if(t.C.b(r))q=o.cA(r,p,a.b) +else q=o.aU(r,p) +try{p=q +return p}catch(s){if(t.r.b(A.aw(s))){if((this.c&1)!==0)throw A.b(A.aN("The error handler of Future.then must return a value of the returned future's type","onError")) +throw A.b(A.aN("The error handler of Future.catchError must return a value of the future's type","onError"))}else throw s}}} +A.H.prototype={ +aV(a,b,c){var s,r,q=$.F +if(q===B.d){if(b!=null&&!t.C.b(b)&&!t.w.b(b))throw A.b(A.i7(b,"onError",u.c))}else if(b!=null)b=A.mh(b,q) +s=new A.H(q,c.l("H<0>")) +r=b==null?1:3 +this.ap(new A.bn(s,r,a,b,this.$ti.l("@<1>").I(c).l("bn<1,2>"))) +return s}, +bt(a,b){return this.aV(a,null,b)}, +b7(a,b,c){var s=new A.H($.F,c.l("H<0>")) +this.ap(new A.bn(s,3,a,b,this.$ti.l("@<1>").I(c).l("bn<1,2>"))) +return s}, +c2(a){this.a=this.a&1|16 +this.c=a}, +aq(a){this.a=a.a&30|this.a&1 +this.c=a.c}, +ap(a){var s=this,r=s.a +if(r<=3){a.a=s.c +s.c=a}else{if((r&4)!==0){r=s.c +if((r.a&24)===0){r.ap(a) +return}s.aq(r)}A.b1(null,null,s.b,new A.fZ(s,a))}}, +b5(a){var s,r,q,p,o,n=this,m={} +m.a=a +if(a==null)return +s=n.a +if(s<=3){r=n.c +n.c=a +if(r!=null){q=a.a +for(p=a;q!=null;p=q,q=o)o=q.a +p.a=r}}else{if((s&4)!==0){s=n.c +if((s.a&24)===0){s.b5(a) +return}n.aq(s)}m.a=n.ac(a) +A.b1(null,null,n.b,new A.h5(m,n))}}, +aE(){var s=this.c +this.c=null +return this.ac(s)}, +ac(a){var s,r,q +for(s=a,r=null;s!=null;r=s,s=q){q=s.a +s.a=r}return r}, +bP(a){var s,r,q,p=this +p.a^=2 +try{a.aV(new A.h1(p),new A.h2(p),t.P)}catch(q){s=A.aw(q) +r=A.b5(q) +A.mT(new A.h3(p,s,r))}}, +au(a){var s=this,r=s.aE() +s.a=8 +s.c=a +A.c_(s,r)}, +a2(a,b){var s=this.aE() +this.c2(A.f6(a,b)) +A.c_(this,s)}, +aZ(a){if(this.$ti.l("aC<1>").b(a)){this.b0(a) +return}this.bO(a)}, +bO(a){this.a^=2 +A.b1(null,null,this.b,new A.h0(this,a))}, +b0(a){var s=this +if(s.$ti.b(a)){if((a.a&16)!==0){s.a^=2 +A.b1(null,null,s.b,new A.h4(s,a))}else A.ij(a,s) +return}s.bP(a)}, +b_(a,b){this.a^=2 +A.b1(null,null,this.b,new A.h_(this,a,b))}, +$iaC:1} +A.fZ.prototype={ +$0(){A.c_(this.a,this.b)}, +$S:0} +A.h5.prototype={ +$0(){A.c_(this.b,this.a.a)}, +$S:0} +A.h1.prototype={ +$1(a){var s,r,q,p=this.a +p.a^=2 +try{p.au(p.$ti.c.a(a))}catch(q){s=A.aw(q) +r=A.b5(q) +p.a2(s,r)}}, +$S:9} +A.h2.prototype={ +$2(a,b){this.a.a2(a,b)}, +$S:21} +A.h3.prototype={ +$0(){this.a.a2(this.b,this.c)}, +$S:0} +A.h0.prototype={ +$0(){this.a.au(this.b)}, +$S:0} +A.h4.prototype={ +$0(){A.ij(this.b,this.a)}, +$S:0} +A.h_.prototype={ +$0(){this.a.a2(this.b,this.c)}, +$S:0} +A.h8.prototype={ +$0(){var s,r,q,p,o,n,m=this,l=null +try{q=m.a.a +l=q.b.b.cw(q.d)}catch(p){s=A.aw(p) +r=A.b5(p) +q=m.c&&m.b.a.c.a===s +o=m.a +if(q)o.c=m.b.a.c +else o.c=A.f6(s,r) +o.b=!0 +return}if(l instanceof A.H&&(l.a&24)!==0){if((l.a&16)!==0){q=m.a +q.c=l.c +q.b=!0}return}if(l instanceof A.H){n=m.b.a +q=m.a +q.c=l.bt(new A.h9(n),t.z) +q.b=!1}}, +$S:0} +A.h9.prototype={ +$1(a){return this.a}, +$S:22} +A.h7.prototype={ +$0(){var s,r,q,p,o +try{q=this.a +p=q.a +q.c=p.b.b.aU(p.d,this.b)}catch(o){s=A.aw(o) +r=A.b5(o) +q=this.a +q.c=A.f6(s,r) +q.b=!0}}, +$S:0} +A.h6.prototype={ +$0(){var s,r,q,p,o,n,m=this +try{s=m.a.a.c +p=m.b +if(p.a.cr(s)&&p.a.e!=null){p.c=p.a.cm(s) +p.b=!1}}catch(o){r=A.aw(o) +q=A.b5(o) +p=m.a.a.c +n=m.b +if(p.a===r)n.c=p +else n.c=A.f6(r,q) +n.b=!0}}, +$S:0} +A.dV.prototype={} +A.eB.prototype={} +A.hy.prototype={} +A.hN.prototype={ +$0(){var s=this.a,r=this.b +A.f2(s,"error",t.K) +A.f2(r,"stackTrace",t.l) +A.kw(s,r)}, +$S:0} +A.hc.prototype={ +cC(a){var s,r,q +try{if(B.d===$.F){a.$0() +return}A.jE(null,null,this,a)}catch(q){s=A.aw(q) +r=A.b5(q) +A.iy(s,r)}}, +bc(a){return new A.hd(this,a)}, +cz(a){if($.F===B.d)return a.$0() +return A.jE(null,null,this,a)}, +cw(a){return this.cz(a,t.z)}, +cD(a,b){if($.F===B.d)return a.$1(b) +return A.mj(null,null,this,a,b)}, +aU(a,b){return this.cD(a,b,t.z,t.z)}, +cB(a,b,c){if($.F===B.d)return a.$2(b,c) +return A.mi(null,null,this,a,b,c)}, +cA(a,b,c){return this.cB(a,b,c,t.z,t.z,t.z)}, +cu(a){return a}, +br(a){return this.cu(a,t.z,t.z,t.z)}} +A.hd.prototype={ +$0(){return this.a.cC(this.b)}, +$S:0} +A.c0.prototype={ +gv(a){var s=new A.c1(this,this.r) +s.c=this.e +return s}, +gi(a){return this.a}, +G(a,b){var s,r +if(b!=="__proto__"){s=this.b +if(s==null)return!1 +return s[b]!=null}else{r=this.bS(b) +return r}}, +bS(a){var s=this.d +if(s==null)return!1 +return this.aB(s[this.av(a)],a)>=0}, +A(a,b){var s,r,q=this +if(typeof b=="string"&&b!=="__proto__"){s=q.b +return q.b1(s==null?q.b=A.ik():s,b)}else if(typeof b=="number"&&(b&1073741823)===b){r=q.c +return q.b1(r==null?q.c=A.ik():r,b)}else return q.bM(0,b)}, +bM(a,b){var s,r,q=this,p=q.d +if(p==null)p=q.d=A.ik() +s=q.av(b) +r=p[s] +if(r==null)p[s]=[q.ar(b)] +else{if(q.aB(r,b)>=0)return!1 +r.push(q.ar(b))}return!0}, +a7(a,b){var s +if(b!=="__proto__")return this.bZ(this.b,b) +else{s=this.bY(0,b) +return s}}, +bY(a,b){var s,r,q,p,o=this,n=o.d +if(n==null)return!1 +s=o.av(b) +r=n[s] +q=o.aB(r,b) +if(q<0)return!1 +p=r.splice(q,1)[0] +if(0===r.length)delete n[s] +o.b9(p) +return!0}, +b1(a,b){if(a[b]!=null)return!1 +a[b]=this.ar(b) +return!0}, +bZ(a,b){var s +if(a==null)return!1 +s=a[b] +if(s==null)return!1 +this.b9(s) +delete a[b] +return!0}, +b2(){this.r=this.r+1&1073741823}, +ar(a){var s,r=this,q=new A.hb(a) +if(r.e==null)r.e=r.f=q +else{s=r.f +s.toString +q.c=s +r.f=s.b=q}++r.a +r.b2() +return q}, +b9(a){var s=this,r=a.c,q=a.b +if(r==null)s.e=q +else r.b=q +if(q==null)s.f=r +else q.c=r;--s.a +s.b2()}, +av(a){return J.i6(a)&1073741823}, +aB(a,b){var s,r +if(a==null)return-1 +s=a.length +for(r=0;r").I(b).l("af<1,2>"))}, +ci(a,b,c,d){var s +A.aW(b,c,this.gi(a)) +for(s=b;s"))}return new A.eh(this)}, +j(a,b,c){var s,r,q=this +if(q.b==null)q.c.j(0,b,c) +else if(q.a6(0,b)){s=q.b +s[b]=c +r=q.a +if(r==null?s!=null:r!==s)r[b]=null}else q.c5().j(0,b,c)}, +a6(a,b){if(this.b==null)return this.c.a6(0,b) +return Object.prototype.hasOwnProperty.call(this.a,b)}, +D(a,b){var s,r,q,p,o=this +if(o.b==null)return o.c.D(0,b) +s=o.a3() +for(r=0;r=0){g=B.a.u("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f) +if(g===k)continue +k=g}else{if(f===-1){if(o<0){e=p==null?null:p.a.length +if(e==null)e=0 +o=e+(r-q) +n=r}++m +if(k===61)continue}k=g}if(f!==-2){if(p==null){p=new A.L("") +e=p}else e=p +e.a+=B.a.m(a1,q,r) +e.a+=A.am(k) +q=l +continue}}throw A.b(A.K("Invalid base64 data",a1,r))}if(p!=null){e=p.a+=B.a.m(a1,q,a3) +d=e.length +if(o>=0)A.iK(a1,n,a3,o,m,d) +else{c=B.c.am(d-1,4)+1 +if(c===1)throw A.b(A.K(a,a1,a3)) +for(;c<4;){e+="=" +p.a=e;++c}}e=p.a +return B.a.a_(a1,a2,a3,e.charCodeAt(0)==0?e:e)}b=a3-a2 +if(o>=0)A.iK(a1,n,a3,o,m,b) +else{c=B.c.am(b,4) +if(c===1)throw A.b(A.K(a,a1,a3)) +if(c>1)a1=B.a.a_(a1,a3,a3,c===2?"==":"=")}return a1}} +A.f9.prototype={} +A.cK.prototype={} +A.cM.prototype={} +A.fd.prototype={} +A.fj.prototype={ +k(a){return"unknown"}} +A.fi.prototype={ +Y(a){var s=this.bT(a,0,a.length) +return s==null?a:s}, +bT(a,b,c){var s,r,q,p +for(s=b,r=null;s":q=">" +break +case"/":q="/" +break +default:q=null}if(q!=null){if(r==null)r=new A.L("") +if(s>b)r.a+=B.a.m(a,b,s) +r.a+=q +b=s+1}}if(r==null)return null +if(c>b)r.a+=B.a.m(a,b,c) +p=r.a +return p.charCodeAt(0)==0?p:p}} +A.fn.prototype={ +cc(a,b,c){var s=A.mf(b,this.gce().a) +return s}, +gce(){return B.N}} +A.fo.prototype={} +A.fL.prototype={ +gcf(){return B.H}} +A.fP.prototype={ +Y(a){var s,r,q,p=A.aW(0,null,a.length),o=p-0 +if(o===0)return new Uint8Array(0) +s=o*3 +r=new Uint8Array(s) +q=new A.hv(r) +if(q.bV(a,0,p)!==p){B.a.u(a,p-1) +q.aI()}return new Uint8Array(r.subarray(0,A.lR(0,q.b,s)))}} +A.hv.prototype={ +aI(){var s=this,r=s.c,q=s.b,p=s.b=q+1 +r[q]=239 +q=s.b=p+1 +r[p]=191 +s.b=q+1 +r[q]=189}, +c6(a,b){var s,r,q,p,o=this +if((b&64512)===56320){s=65536+((a&1023)<<10)|b&1023 +r=o.c +q=o.b +p=o.b=q+1 +r[q]=s>>>18|240 +q=o.b=p+1 +r[p]=s>>>12&63|128 +p=o.b=q+1 +r[q]=s>>>6&63|128 +o.b=p+1 +r[p]=s&63|128 +return!0}else{o.aI() +return!1}}, +bV(a,b,c){var s,r,q,p,o,n,m,l=this +if(b!==c&&(B.a.u(a,c-1)&64512)===55296)--c +for(s=l.c,r=s.length,q=b;q=r)break +l.b=o+1 +s[o]=p}else{o=p&64512 +if(o===55296){if(l.b+4>r)break +n=q+1 +if(l.c6(p,B.a.p(a,n)))q=n}else if(o===56320){if(l.b+3>r)break +l.aI()}else if(p<=2047){o=l.b +m=o+1 +if(m>=r)break +l.b=m +s[o]=p>>>6|192 +l.b=m+1 +s[m]=p&63|128}else{o=l.b +if(o+2>=r)break +m=l.b=o+1 +s[o]=p>>>12|224 +o=l.b=m+1 +s[m]=p>>>6&63|128 +l.b=o+1 +s[o]=p&63|128}}}return q}} +A.fM.prototype={ +Y(a){var s=this.a,r=A.l0(s,a,0,null) +if(r!=null)return r +return new A.hu(s).ca(a,0,null,!0)}} +A.hu.prototype={ +ca(a,b,c,d){var s,r,q,p,o=this,n=A.aW(b,c,J.ax(a)) +if(b===n)return"" +s=A.lI(a,b,n) +r=o.aw(s,0,n-b,!0) +q=o.b +if((q&1)!==0){p=A.lJ(q) +o.b=0 +throw A.b(A.K(p,a,b+o.c))}return r}, +aw(a,b,c,d){var s,r,q=this +if(c-b>1000){s=B.c.aF(b+c,2) +r=q.aw(a,b,s,!1) +if((q.b&1)!==0)return r +return r+q.aw(a,s,c,d)}return q.cd(a,b,c,d)}, +cd(a,b,c,d){var s,r,q,p,o,n,m,l=this,k=65533,j=l.b,i=l.c,h=new A.L(""),g=b+1,f=a[b] +$label0$0:for(s=l.a;!0;){for(;!0;g=p){r=B.a.p("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHJEEBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKCCCCCCCCCCCCDCLONNNMEEEEEEEEEEE",f)&31 +i=j<=32?f&61694>>>r:(f&63|i<<6)>>>0 +j=B.a.p(" \x000:XECCCCCN:lDb \x000:XECCCCCNvlDb \x000:XECCCCCN:lDb AAAAA\x00\x00\x00\x00\x00AAAAA00000AAAAA:::::AAAAAGG000AAAAA00KKKAAAAAG::::AAAAA:IIIIAAAAA000\x800AAAAA\x00\x00\x00\x00 AAAAA",j+r) +if(j===0){h.a+=A.am(i) +if(g===c)break $label0$0 +break}else if((j&1)!==0){if(s)switch(j){case 69:case 67:h.a+=A.am(k) +break +case 65:h.a+=A.am(k);--g +break +default:q=h.a+=A.am(k) +h.a=q+A.am(k) +break}else{l.b=j +l.c=g-1 +return""}j=0}if(g===c)break $label0$0 +p=g+1 +f=a[g]}p=g+1 +f=a[g] +if(f<128){while(!0){if(!(p=128){o=n-1 +p=n +break}p=n}if(o-g<20)for(m=g;m32)if(s)h.a+=A.am(k) +else{l.b=77 +l.c=c +return""}l.b=j +l.c=i +s=h.a +return s.charCodeAt(0)==0?s:s}} +A.z.prototype={ +gaa(){return A.b5(this.$thrownJsError)}} +A.cz.prototype={ +k(a){var s=this.a +if(s!=null)return"Assertion failed: "+A.fe(s) +return"Assertion failed"}} +A.ap.prototype={} +A.W.prototype={ +gaA(){return"Invalid argument"+(!this.a?"(s)":"")}, +gaz(){return""}, +k(a){var s=this,r=s.c,q=r==null?"":" ("+r+")",p=s.d,o=p==null?"":": "+p,n=s.gaA()+q+o +if(!s.a)return n +return n+s.gaz()+": "+A.fe(s.gaP())}, +gaP(){return this.b}} +A.bS.prototype={ +gaP(){return this.b}, +gaA(){return"RangeError"}, +gaz(){var s,r=this.e,q=this.f +if(r==null)s=q!=null?": Not less than or equal to "+A.o(q):"" +else if(q==null)s=": Not greater than or equal to "+A.o(r) +else if(q>r)s=": Not in inclusive range "+A.o(r)+".."+A.o(q) +else s=qe.length +else s=!1 +if(s)f=null +if(f==null){if(e.length>78)e=B.a.m(e,0,75)+"..." +return g+"\n"+e}for(r=1,q=0,p=!1,o=0;o1?g+(" (at line "+r+", character "+(f-q+1)+")\n"):g+(" (at character "+(f+1)+")\n") +m=e.length +for(o=f;o78)if(f-q<75){l=q+75 +k=q +j="" +i="..."}else{if(m-f<75){k=m-75 +l=m +i=""}else{k=f-36 +l=f+36 +i="..."}j="..."}else{l=m +k=q +j="" +i=""}return g+j+B.a.m(e,k,l)+i+"\n"+B.a.bz(" ",f-k+j.length)+"^\n"}else return f!=null?g+(" (at offset "+A.o(f)+")"):g}} +A.u.prototype={ +af(a,b){return A.ko(this,A.I(this).l("u.E"),b)}, +ak(a,b){return new A.ar(this,b,A.I(this).l("ar"))}, +gi(a){var s,r=this.gv(this) +for(s=0;r.n();)++s +return s}, +gW(a){var s,r=this.gv(this) +if(!r.n())throw A.b(A.i9()) +s=r.gt(r) +if(r.n())throw A.b(A.kC()) +return s}, +q(a,b){var s,r +A.j1(b,"index") +s=this.gv(this) +for(r=b;s.n();){if(r===0)return s.gt(s);--r}throw A.b(A.B(b,b-r,this,"index"))}, +k(a){return A.kD(this,"(",")")}} +A.G.prototype={ +gB(a){return A.y.prototype.gB.call(this,this)}, +k(a){return"null"}} +A.y.prototype={$iy:1, +N(a,b){return this===b}, +gB(a){return A.ds(this)}, +k(a){return"Instance of '"+A.fy(this)+"'"}, +gE(a){return A.mB(this)}, +toString(){return this.k(this)}} +A.eE.prototype={ +k(a){return""}, +$iaH:1} +A.L.prototype={ +gi(a){return this.a.length}, +k(a){var s=this.a +return s.charCodeAt(0)==0?s:s}} +A.fK.prototype={ +$2(a,b){var s,r,q,p=B.a.bm(b,"=") +if(p===-1){if(b!=="")J.f5(a,A.iu(b,0,b.length,this.a,!0),"")}else if(p!==0){s=B.a.m(b,0,p) +r=B.a.O(b,p+1) +q=this.a +J.f5(a,A.iu(s,0,s.length,q,!0),A.iu(r,0,r.length,q,!0))}return a}, +$S:28} +A.fG.prototype={ +$2(a,b){throw A.b(A.K("Illegal IPv4 address, "+a,this.a,b))}, +$S:15} +A.fI.prototype={ +$2(a,b){throw A.b(A.K("Illegal IPv6 address, "+a,this.a,b))}, +$S:16} +A.fJ.prototype={ +$2(a,b){var s +if(b-a>4)this.a.$2("an IPv6 part can only contain a maximum of 4 hex digits",a) +s=A.i0(B.a.m(this.b,a,b),16) +if(s<0||s>65535)this.a.$2("each part must be in the range of `0x0..0xFFFF`",a) +return s}, +$S:17} +A.cj.prototype={ +gae(){var s,r,q,p,o=this,n=o.w +if(n===$){s=o.a +r=s.length!==0?""+s+":":"" +q=o.c +p=q==null +if(!p||s==="file"){s=r+"//" +r=o.b +if(r.length!==0)s=s+r+"@" +if(!p)s+=q +r=o.d +if(r!=null)s=s+":"+A.o(r)}else s=r +s+=o.e +r=o.f +if(r!=null)s=s+"?"+r +r=o.r +if(r!=null)s=s+"#"+r +n!==$&&A.ct() +n=o.w=s.charCodeAt(0)==0?s:s}return n}, +gB(a){var s,r=this,q=r.y +if(q===$){s=B.a.gB(r.gae()) +r.y!==$&&A.ct() +r.y=s +q=s}return q}, +gaS(){var s,r=this,q=r.z +if(q===$){s=r.f +s=A.ja(s==null?"":s) +r.z!==$&&A.ct() +q=r.z=new A.bl(s,t.V)}return q}, +gbw(){return this.b}, +gaN(a){var s=this.c +if(s==null)return"" +if(B.a.C(s,"["))return B.a.m(s,1,s.length-1) +return s}, +gaj(a){var s=this.d +return s==null?A.jn(this.a):s}, +gaR(a){var s=this.f +return s==null?"":s}, +gbg(){var s=this.r +return s==null?"":s}, +aT(a,b){var s,r,q,p,o=this,n=o.a,m=n==="file",l=o.b,k=o.d,j=o.c +if(!(j!=null))j=l.length!==0||k!=null||m?"":null +s=o.e +if(!m)r=j!=null&&s.length!==0 +else r=!0 +if(r&&!B.a.C(s,"/"))s="/"+s +q=s +p=A.is(null,0,0,b) +return A.iq(n,l,j,k,q,p,o.r)}, +gbi(){return this.c!=null}, +gbl(){return this.f!=null}, +gbj(){return this.r!=null}, +k(a){return this.gae()}, +N(a,b){var s,r,q=this +if(b==null)return!1 +if(q===b)return!0 +if(t.R.b(b))if(q.a===b.gan())if(q.c!=null===b.gbi())if(q.b===b.gbw())if(q.gaN(q)===b.gaN(b))if(q.gaj(q)===b.gaj(b))if(q.e===b.gbq(b)){s=q.f +r=s==null +if(!r===b.gbl()){if(r)s="" +if(s===b.gaR(b)){s=q.r +r=s==null +if(!r===b.gbj()){if(r)s="" +s=s===b.gbg()}else s=!1}else s=!1}else s=!1}else s=!1 +else s=!1 +else s=!1 +else s=!1 +else s=!1 +else s=!1 +else s=!1 +return s}, +$idQ:1, +gan(){return this.a}, +gbq(a){return this.e}} +A.ht.prototype={ +$2(a,b){var s=this.b,r=this.a +s.a+=r.a +r.a="&" +r=s.a+=A.jt(B.i,a,B.h,!0) +if(b!=null&&b.length!==0){s.a=r+"=" +s.a+=A.jt(B.i,b,B.h,!0)}}, +$S:14} +A.hs.prototype={ +$2(a,b){var s,r +if(b==null||typeof b=="string")this.a.$2(a,b) +else for(s=J.ae(b),r=this.a;s.n();)r.$2(a,s.gt(s))}, +$S:2} +A.fF.prototype={ +gbv(){var s,r,q,p,o=this,n=null,m=o.c +if(m==null){m=o.a +s=o.b[0]+1 +r=B.a.ah(m,"?",s) +q=m.length +if(r>=0){p=A.ck(m,r+1,q,B.j,!1,!1) +q=r}else p=n +m=o.c=new A.e2("data","",n,n,A.ck(m,s,q,B.t,!1,!1),p,n)}return m}, +k(a){var s=this.a +return this.b[0]===-1?"data:"+s:s}} +A.hE.prototype={ +$2(a,b){var s=this.a[a] +B.V.ci(s,0,96,b) +return s}, +$S:20} +A.hF.prototype={ +$3(a,b,c){var s,r +for(s=b.length,r=0;r>>0]=c}, +$S:10} +A.ew.prototype={ +gbi(){return this.c>0}, +gbk(){return this.c>0&&this.d+1r?B.a.m(this.a,r,s-1):""}, +gaN(a){var s=this.c +return s>0?B.a.m(this.a,s,this.d):""}, +gaj(a){var s,r=this +if(r.gbk())return A.i0(B.a.m(r.a,r.d+1,r.e),null) +s=r.b +if(s===4&&B.a.C(r.a,"http"))return 80 +if(s===5&&B.a.C(r.a,"https"))return 443 +return 0}, +gbq(a){return B.a.m(this.a,this.e,this.f)}, +gaR(a){var s=this.f,r=this.r +return s=s.r)return B.T +return new A.bl(A.ja(s.gaR(s)),t.V)}, +aT(a,b){var s,r,q,p,o,n=this,m=null,l=n.gan(),k=l==="file",j=n.c,i=j>0?B.a.m(n.a,n.b+3,j):"",h=n.gbk()?n.gaj(n):m +j=n.c +if(j>0)s=B.a.m(n.a,j,n.d) +else s=i.length!==0||h!=null||k?"":m +j=n.a +r=B.a.m(j,n.e,n.f) +if(!k)q=s!=null&&r.length!==0 +else q=!0 +if(q&&!B.a.C(r,"/"))r="/"+r +p=A.is(m,0,0,b) +q=n.r +o=q>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.bx.prototype={ +k(a){var s,r=a.left +r.toString +s=a.top +s.toString +return"Rectangle ("+A.o(r)+", "+A.o(s)+") "+A.o(this.ga1(a))+" x "+A.o(this.gZ(a))}, +N(a,b){var s,r +if(b==null)return!1 +if(t.q.b(b)){s=a.left +s.toString +r=b.left +r.toString +if(s===r){s=a.top +s.toString +r=b.top +r.toString +if(s===r){s=J.M(b) +s=this.ga1(a)===s.ga1(b)&&this.gZ(a)===s.gZ(b)}else s=!1}else s=!1}else s=!1 +return s}, +gB(a){var s,r=a.left +r.toString +s=a.top +s.toString +return A.iZ(r,s,this.ga1(a),this.gZ(a))}, +gb3(a){return a.height}, +gZ(a){var s=this.gb3(a) +s.toString +return s}, +gba(a){return a.width}, +ga1(a){var s=this.gba(a) +s.toString +return s}, +$iaX:1} +A.cT.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.cU.prototype={ +gi(a){return a.length}} +A.q.prototype={ +gc8(a){return new A.bZ(a)}, +gS(a){return new A.e7(a)}, +k(a){return a.localName}, +J(a,b,c,d){var s,r,q,p +if(c==null){s=$.iR +if(s==null){s=A.n([],t.Q) +r=new A.bQ(s) +s.push(A.jd(null)) +s.push(A.jj()) +$.iR=r +d=r}else d=s +s=$.iQ +if(s==null){d.toString +s=new A.eQ(d) +$.iQ=s +c=s}else{d.toString +s.a=d +c=s}}if($.aB==null){s=document +r=s.implementation.createHTMLDocument("") +$.aB=r +$.i8=r.createRange() +r=$.aB.createElement("base") +t.B.a(r) +s=s.baseURI +s.toString +r.href=s +$.aB.head.appendChild(r)}s=$.aB +if(s.body==null){r=s.createElement("body") +s.body=t.Y.a(r)}s=$.aB +if(t.Y.b(a)){s=s.body +s.toString +q=s}else{s.toString +q=s.createElement(a.tagName) +$.aB.body.appendChild(q)}if("createContextualFragment" in window.Range.prototype&&!B.b.G(B.O,a.tagName)){$.i8.selectNodeContents(q) +s=$.i8 +p=s.createContextualFragment(b)}else{q.innerHTML=b +p=$.aB.createDocumentFragment() +for(;s=q.firstChild,s!=null;)p.appendChild(s)}if(q!==$.aB.body)J.iG(q) +c.aX(p) +document.adoptNode(p) +return p}, +cb(a,b,c){return this.J(a,b,c,null)}, +sK(a,b){this.a9(a,b)}, +a9(a,b){a.textContent=null +a.appendChild(this.J(a,b,null,null))}, +gK(a){return a.innerHTML}, +$iq:1} +A.fc.prototype={ +$1(a){return t.h.b(a)}, +$S:11} +A.h.prototype={$ih:1} +A.c.prototype={ +M(a,b,c){this.bN(a,b,c,null)}, +bN(a,b,c,d){return a.addEventListener(b,A.bs(c,1),d)}} +A.a1.prototype={$ia1:1} +A.cV.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.cW.prototype={ +gi(a){return a.length}} +A.cY.prototype={ +gi(a){return a.length}} +A.a2.prototype={$ia2:1} +A.cZ.prototype={ +gi(a){return a.length}} +A.aU.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.bD.prototype={} +A.aD.prototype={$iaD:1} +A.bf.prototype={$ibf:1} +A.d7.prototype={ +k(a){return String(a)}} +A.d8.prototype={ +gi(a){return a.length}} +A.d9.prototype={ +h(a,b){return A.aL(a.get(b))}, +D(a,b){var s,r=a.entries() +for(;!0;){s=r.next() +if(s.done)return +b.$2(s.value[0],A.aL(s.value[1]))}}, +gF(a){var s=A.n([],t.s) +this.D(a,new A.fs(s)) +return s}, +gi(a){return a.size}, +j(a,b,c){throw A.b(A.r("Not supported"))}, +$ix:1} +A.fs.prototype={ +$2(a,b){return this.a.push(a)}, +$S:2} +A.da.prototype={ +h(a,b){return A.aL(a.get(b))}, +D(a,b){var s,r=a.entries() +for(;!0;){s=r.next() +if(s.done)return +b.$2(s.value[0],A.aL(s.value[1]))}}, +gF(a){var s=A.n([],t.s) +this.D(a,new A.ft(s)) +return s}, +gi(a){return a.size}, +j(a,b,c){throw A.b(A.r("Not supported"))}, +$ix:1} +A.ft.prototype={ +$2(a,b){return this.a.push(a)}, +$S:2} +A.a4.prototype={$ia4:1} +A.db.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.J.prototype={ +gW(a){var s=this.a,r=s.childNodes.length +if(r===0)throw A.b(A.dz("No elements")) +if(r>1)throw A.b(A.dz("More than one element")) +s=s.firstChild +s.toString +return s}, +P(a,b){var s,r,q,p,o +if(b instanceof A.J){s=b.a +r=this.a +if(s!==r)for(q=s.childNodes.length,p=0;p>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.a6.prototype={ +gi(a){return a.length}, +$ia6:1} +A.dq.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.dt.prototype={ +h(a,b){return A.aL(a.get(b))}, +D(a,b){var s,r=a.entries() +for(;!0;){s=r.next() +if(s.done)return +b.$2(s.value[0],A.aL(s.value[1]))}}, +gF(a){var s=A.n([],t.s) +this.D(a,new A.fz(s)) +return s}, +gi(a){return a.size}, +j(a,b,c){throw A.b(A.r("Not supported"))}, +$ix:1} +A.fz.prototype={ +$2(a,b){return this.a.push(a)}, +$S:2} +A.dv.prototype={ +gi(a){return a.length}} +A.a7.prototype={$ia7:1} +A.dx.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.a8.prototype={$ia8:1} +A.dy.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.a9.prototype={ +gi(a){return a.length}, +$ia9:1} +A.dB.prototype={ +h(a,b){return a.getItem(A.f0(b))}, +j(a,b,c){a.setItem(b,c)}, +D(a,b){var s,r,q +for(s=0;!0;++s){r=a.key(s) +if(r==null)return +q=a.getItem(r) +q.toString +b.$2(r,q)}}, +gF(a){var s=A.n([],t.s) +this.D(a,new A.fB(s)) +return s}, +gi(a){return a.length}, +$ix:1} +A.fB.prototype={ +$2(a,b){return this.a.push(a)}, +$S:5} +A.U.prototype={$iU:1} +A.bU.prototype={ +J(a,b,c,d){var s,r +if("createContextualFragment" in window.Range.prototype)return this.ao(a,b,c,d) +s=A.kv(""+b+"
",c,d) +r=document.createDocumentFragment() +new A.J(r).P(0,new A.J(s)) +return r}} +A.dD.prototype={ +J(a,b,c,d){var s,r +if("createContextualFragment" in window.Range.prototype)return this.ao(a,b,c,d) +s=document +r=s.createDocumentFragment() +s=new A.J(B.x.J(s.createElement("table"),b,c,d)) +s=new A.J(s.gW(s)) +new A.J(r).P(0,new A.J(s.gW(s))) +return r}} +A.dE.prototype={ +J(a,b,c,d){var s,r +if("createContextualFragment" in window.Range.prototype)return this.ao(a,b,c,d) +s=document +r=s.createDocumentFragment() +s=new A.J(B.x.J(s.createElement("table"),b,c,d)) +new A.J(r).P(0,new A.J(s.gW(s))) +return r}} +A.bj.prototype={ +a9(a,b){var s,r +a.textContent=null +s=a.content +s.toString +J.kc(s) +r=this.J(a,b,null,null) +a.content.appendChild(r)}, +$ibj:1} +A.aY.prototype={$iaY:1} +A.aa.prototype={$iaa:1} +A.V.prototype={$iV:1} +A.dG.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.dH.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.dI.prototype={ +gi(a){return a.length}} +A.ab.prototype={$iab:1} +A.dJ.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.dK.prototype={ +gi(a){return a.length}} +A.P.prototype={} +A.dR.prototype={ +k(a){return String(a)}} +A.dS.prototype={ +gi(a){return a.length}} +A.bm.prototype={$ibm:1} +A.dZ.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.bX.prototype={ +k(a){var s,r,q,p=a.left +p.toString +s=a.top +s.toString +r=a.width +r.toString +q=a.height +q.toString +return"Rectangle ("+A.o(p)+", "+A.o(s)+") "+A.o(r)+" x "+A.o(q)}, +N(a,b){var s,r +if(b==null)return!1 +if(t.q.b(b)){s=a.left +s.toString +r=b.left +r.toString +if(s===r){s=a.top +s.toString +r=b.top +r.toString +if(s===r){s=a.width +s.toString +r=J.M(b) +if(s===r.ga1(b)){s=a.height +s.toString +r=s===r.gZ(b) +s=r}else s=!1}else s=!1}else s=!1}else s=!1 +return s}, +gB(a){var s,r,q,p=a.left +p.toString +s=a.top +s.toString +r=a.width +r.toString +q=a.height +q.toString +return A.iZ(p,s,r,q)}, +gb3(a){return a.height}, +gZ(a){var s=a.height +s.toString +return s}, +gba(a){return a.width}, +ga1(a){var s=a.width +s.toString +return s}} +A.ec.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.c2.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.ez.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.eF.prototype={ +gi(a){return a.length}, +h(a,b){var s=a.length +if(b>>>0!==b||b>=s)throw A.b(A.B(b,s,a,null)) +return a[b]}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return a[b]}, +$if:1, +$ip:1, +$ik:1} +A.dW.prototype={ +D(a,b){var s,r,q,p,o,n +for(s=this.gF(this),r=s.length,q=this.a,p=0;p0)p[r]=q[0].toUpperCase()+B.a.O(q,1)}return B.b.U(p,"")}, +aG(a){var s,r,q,p,o +for(s=a.length,r=0,q="";r0?q+"-":q)+o}return q.charCodeAt(0)==0?q:q}} +A.fV.prototype={ +$2(a,b){if(B.a.C(a,"data-"))this.b.$2(this.a.b8(B.a.O(a,5)),b)}, +$S:5} +A.fW.prototype={ +$2(a,b){if(B.a.C(a,"data-"))this.b.push(this.a.b8(B.a.O(a,5)))}, +$S:5} +A.e7.prototype={ +T(){var s,r,q,p,o=A.bG(t.N) +for(s=this.a.className.split(" "),r=s.length,q=0;q") +return}if(!l.a.X(a)){l.a4(a,b) +window +s=A.o(b) +if(typeof console!="undefined")window.console.warn("Removing disallowed element <"+e+"> from "+s) +return}if(g!=null)if(!l.a.R(a,"is",g)){l.a4(a,b) +window +if(typeof console!="undefined")window.console.warn("Removing disallowed type extension <"+e+' is="'+g+'">') +return}s=f.gF(f) +r=A.n(s.slice(0),A.cm(s)) +for(q=f.gF(f).length-1,s=f.a,p="Removing disallowed attribute <"+e+" ";q>=0;--q){o=r[q] +n=l.a +m=J.kl(o) +A.f0(o) +if(!n.R(a,m,s.getAttribute(o))){window +n=s.getAttribute(o) +if(typeof console!="undefined")window.console.warn(p+o+'="'+A.o(n)+'">') +s.removeAttribute(o)}}if(t.f.b(a)){s=a.content +s.toString +l.aX(s)}}, +bA(a,b){switch(a.nodeType){case 1:this.c1(a,b) +break +case 8:case 11:case 3:case 4:break +default:this.a4(a,b)}}} +A.hx.prototype={ +$2(a,b){var s,r,q,p,o,n=this.a +n.bA(a,b) +s=a.lastChild +for(;s!=null;){r=null +try{r=s.previousSibling +if(r!=null){q=r.nextSibling +p=s +p=q==null?p!=null:q!==p +q=p}else q=!1 +if(q){q=A.dz("Corrupt HTML") +throw A.b(q)}}catch(o){q=s;++n.b +p=q.parentNode +if(a!==p){if(p!=null)p.removeChild(q)}else a.removeChild(q) +s=null +r=a.lastChild}if(s!=null)this.$2(s,a) +s=r}}, +$S:41} +A.e_.prototype={} +A.e3.prototype={} +A.e4.prototype={} +A.e5.prototype={} +A.e6.prototype={} +A.e9.prototype={} +A.ea.prototype={} +A.ee.prototype={} +A.ef.prototype={} +A.el.prototype={} +A.em.prototype={} +A.en.prototype={} +A.eo.prototype={} +A.ep.prototype={} +A.eq.prototype={} +A.et.prototype={} +A.eu.prototype={} +A.ev.prototype={} +A.c9.prototype={} +A.ca.prototype={} +A.ex.prototype={} +A.ey.prototype={} +A.eA.prototype={} +A.eI.prototype={} +A.eJ.prototype={} +A.cc.prototype={} +A.cd.prototype={} +A.eK.prototype={} +A.eL.prototype={} +A.eR.prototype={} +A.eS.prototype={} +A.eT.prototype={} +A.eU.prototype={} +A.eV.prototype={} +A.eW.prototype={} +A.eX.prototype={} +A.eY.prototype={} +A.eZ.prototype={} +A.f_.prototype={} +A.cN.prototype={ +aH(a){var s=$.jU().b +if(s.test(a))return a +throw A.b(A.i7(a,"value","Not a valid class token"))}, +k(a){return this.T().U(0," ")}, +aW(a,b){var s,r,q +this.aH(b) +s=this.T() +r=s.G(0,b) +if(!r){s.A(0,b) +q=!0}else{s.a7(0,b) +q=!1}this.al(s) +return q}, +gv(a){var s=this.T() +return A.la(s,s.r)}, +gi(a){return this.T().a}, +A(a,b){var s +this.aH(b) +s=this.cs(0,new A.fa(b)) +return s==null?!1:s}, +a7(a,b){var s,r +this.aH(b) +s=this.T() +r=s.a7(0,b) +this.al(s) +return r}, +q(a,b){return this.T().q(0,b)}, +cs(a,b){var s=this.T(),r=b.$1(s) +this.al(s) +return r}} +A.fa.prototype={ +$1(a){return a.A(0,this.a)}, +$S:35} +A.cX.prototype={ +gab(){var s=this.b,r=A.I(s) +return new A.aj(new A.ar(s,new A.ff(),r.l("ar")),new A.fg(),r.l("aj"))}, +j(a,b,c){var s=this.gab() +J.kk(s.b.$1(J.cv(s.a,b)),c)}, +gi(a){return J.ax(this.gab().a)}, +h(a,b){var s=this.gab() +return s.b.$1(J.cv(s.a,b))}, +gv(a){var s=A.kL(this.gab(),!1,t.h) +return new J.b9(s,s.length)}} +A.ff.prototype={ +$1(a){return t.h.b(a)}, +$S:11} +A.fg.prototype={ +$1(a){return t.h.a(a)}, +$S:29} +A.i3.prototype={ +$1(a){return this.a.aJ(0,a)}, +$S:4} +A.i4.prototype={ +$1(a){if(a==null)return this.a.bf(new A.fw(a===undefined)) +return this.a.bf(a)}, +$S:4} +A.fw.prototype={ +k(a){return"Promise was rejected with a value of `"+(this.a?"undefined":"null")+"`."}} +A.ah.prototype={$iah:1} +A.d4.prototype={ +gi(a){return a.length}, +h(a,b){if(b>>>0!==b||b>=a.length)throw A.b(A.B(b,this.gi(a),a,null)) +return a.getItem(b)}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return this.h(a,b)}, +$if:1, +$ik:1} +A.al.prototype={$ial:1} +A.dl.prototype={ +gi(a){return a.length}, +h(a,b){if(b>>>0!==b||b>=a.length)throw A.b(A.B(b,this.gi(a),a,null)) +return a.getItem(b)}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return this.h(a,b)}, +$if:1, +$ik:1} +A.dr.prototype={ +gi(a){return a.length}} +A.bh.prototype={$ibh:1} +A.dC.prototype={ +gi(a){return a.length}, +h(a,b){if(b>>>0!==b||b>=a.length)throw A.b(A.B(b,this.gi(a),a,null)) +return a.getItem(b)}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return this.h(a,b)}, +$if:1, +$ik:1} +A.cC.prototype={ +T(){var s,r,q,p,o=this.a.getAttribute("class"),n=A.bG(t.N) +if(o==null)return n +for(s=o.split(" "),r=s.length,q=0;q'+b+"",c) +q=o.createDocumentFragment() +o=new A.J(r) +p=o.gW(o) +for(;o=p.firstChild,o!=null;)q.appendChild(o) +return q}, +$ij:1} +A.ao.prototype={$iao:1} +A.dL.prototype={ +gi(a){return a.length}, +h(a,b){if(b>>>0!==b||b>=a.length)throw A.b(A.B(b,this.gi(a),a,null)) +return a.getItem(b)}, +j(a,b,c){throw A.b(A.r("Cannot assign element of immutable List."))}, +q(a,b){return this.h(a,b)}, +$if:1, +$ik:1} +A.ei.prototype={} +A.ej.prototype={} +A.er.prototype={} +A.es.prototype={} +A.eC.prototype={} +A.eD.prototype={} +A.eM.prototype={} +A.eN.prototype={} +A.cD.prototype={ +gi(a){return a.length}} +A.cE.prototype={ +h(a,b){return A.aL(a.get(b))}, +D(a,b){var s,r=a.entries() +for(;!0;){s=r.next() +if(s.done)return +b.$2(s.value[0],A.aL(s.value[1]))}}, +gF(a){var s=A.n([],t.s) +this.D(a,new A.f7(s)) +return s}, +gi(a){return a.size}, +j(a,b,c){throw A.b(A.r("Not supported"))}, +$ix:1} +A.f7.prototype={ +$2(a,b){return this.a.push(a)}, +$S:2} +A.cF.prototype={ +gi(a){return a.length}} +A.az.prototype={} +A.dm.prototype={ +gi(a){return a.length}} +A.dX.prototype={} +A.hL.prototype={ +$0(){var s,r=document.querySelector("body") +if(r.getAttribute("data-using-base-href")==="false"){s=r.getAttribute("data-base-href") +return s==null?"":s}else return""}, +$S:30} +A.hZ.prototype={ +$0(){var s,r="Failed to initialize search" +A.mR("Could not activate search functionality.") +s=this.a +if(s!=null)s.placeholder=r +s=this.b +if(s!=null)s.placeholder=r +s=this.c +if(s!=null)s.placeholder=r}, +$S:0} +A.hY.prototype={ +$1(a){var s=0,r=A.mc(t.P),q,p=this,o,n,m,l,k,j,i,h,g +var $async$$1=A.mr(function(b,c){if(b===1)return A.lN(c,r) +while(true)switch(s){case 0:t.e.a(a) +if(a.status===404){p.a.$0() +s=1 +break}i=J +h=t.j +g=B.F +s=3 +return A.lM(A.jR(a.text(),t.N),$async$$1) +case 3:o=i.ke(h.a(g.cc(0,c,null)),t.a) +n=o.$ti.l("ak") +m=A.iY(new A.ak(o,A.mU(),n),!0,n.l("a3.E")) +l=A.fH(String(window.location)).gaS().h(0,"search") +if(l!=null){k=A.jz(m,l) +if(k.length!==0){j=B.b.gcj(k).d +if(j!=null){window.location.assign(A.o($.cu())+j) +s=1 +break}}}n=p.b +if(n!=null)A.il(m).aO(0,n) +n=p.c +if(n!=null)A.il(m).aO(0,n) +n=p.d +if(n!=null)A.il(m).aO(0,n) +case 1:return A.lO(q,r)}}) +return A.lP($async$$1,r)}, +$S:31} +A.hJ.prototype={ +$1(a){var s,r=this.a,q=r.e +if(q==null)q=0 +s=B.U.h(0,r.c) +if(s==null)s=4 +this.b.push(new A.Y(r,(a-q*10)/s))}, +$S:32} +A.hH.prototype={ +$2(a,b){var s=B.e.a0(b.b-a.b) +if(s===0)return a.a.a.length-b.a.a.length +return s}, +$S:33} +A.hI.prototype={ +$1(a){return a.a}, +$S:34} +A.hf.prototype={ +gV(){var s,r,q=this,p=q.c +if(p===$){s=document.createElement("div") +s.setAttribute("role","listbox") +s.setAttribute("aria-expanded","false") +r=s.style +r.display="none" +J.a_(s).A(0,"tt-menu") +s.appendChild(q.gbp()) +s.appendChild(q.ga8()) +q.c!==$&&A.ct() +q.c=s +p=s}return p}, +gbp(){var s,r=this.d +if(r===$){s=document.createElement("div") +J.a_(s).A(0,"enter-search-message") +this.d!==$&&A.ct() +this.d=s +r=s}return r}, +ga8(){var s,r=this.e +if(r===$){s=document.createElement("div") +J.a_(s).A(0,"tt-search-results") +this.e!==$&&A.ct() +this.e=s +r=s}return r}, +aO(a,b){var s,r,q,p=this +b.disabled=!1 +b.setAttribute("placeholder","Search API Docs") +s=document +B.J.M(s,"keydown",new A.hg(b)) +r=s.createElement("div") +J.a_(r).A(0,"tt-wrapper") +B.f.bs(b,r) +b.setAttribute("autocomplete","off") +b.setAttribute("spellcheck","false") +b.classList.add("tt-input") +r.appendChild(b) +r.appendChild(p.gV()) +p.bB(b) +if(B.a.G(window.location.href,"search.html")){q=p.b.gaS().h(0,"q") +if(q==null)return +q=B.n.Y(q) +$.iz=$.hO +p.co(q,!0) +p.bC(q) +p.aM() +$.iz=10}}, +bC(a){var s,r,q,p,o,n="search-summary",m=document,l=m.getElementById("dartdoc-main-content") +if(l==null)return +l.textContent="" +s=m.createElement("section") +J.a_(s).A(0,n) +l.appendChild(s) +s=m.createElement("h2") +J.iH(s,"Search Results") +l.appendChild(s) +s=m.createElement("div") +r=J.M(s) +r.gS(s).A(0,n) +r.sK(s,""+$.hO+' results for "'+a+'"') +l.appendChild(s) +if($.b0.a!==0)for(m=$.b0.gbx($.b0),m=new A.bJ(J.ae(m.a),m.b),s=A.I(m).z[1];m.n();){r=m.a +l.appendChild(r==null?s.a(r):r)}else{q=m.createElement("div") +s=J.M(q) +s.gS(q).A(0,n) +s.sK(q,'There was not a match for "'+a+'". Want to try searching from additional Dart-related sites? ') +p=A.fH("https://dart.dev/search?cx=011220921317074318178%3A_yy-tmb5t_i&ie=UTF-8&hl=en&q=").aT(0,A.iV(["q",a],t.N,t.z)) +o=m.createElement("a") +o.setAttribute("href",p.gae()) +o.textContent="Search on dart.dev." +q.appendChild(o) +l.appendChild(q)}}, +aM(){var s=this.gV(),r=s.style +r.display="none" +s.setAttribute("aria-expanded","false") +return s}, +bu(a,b,c){var s,r,q,p,o=this +o.x=A.n([],t.O) +s=o.w +B.b.ag(s) +$.b0.ag(0) +o.ga8().textContent="" +r=b.length +if(r===0){o.aM() +return}for(q=0;q10?'Press "Enter" key to see all '+p+" results":""}, +cG(a,b){return this.bu(a,b,!1)}, +aL(a,b,c){var s,r,q,p=this +if(p.r===a&&!b)return +if(a==null||a.length===0){p.cG("",A.n([],t.O)) +return}s=A.jz(p.a,a) +r=s.length +$.hO=r +q=$.iz +if(r>q)s=B.b.bE(s,0,q) +p.r=a +p.bu(a,s,c)}, +co(a,b){return this.aL(a,!1,b)}, +bh(a){return this.aL(a,!1,!1)}, +cn(a,b){return this.aL(a,b,!1)}, +bd(a){var s,r=this +r.y=-1 +s=r.f +if(s!=null){a.value=s +r.f=null}r.aM()}, +bB(a){var s=this +B.f.M(a,"focus",new A.hh(s,a)) +B.f.M(a,"blur",new A.hi(s,a)) +B.f.M(a,"input",new A.hj(s,a)) +B.f.M(a,"keydown",new A.hk(s,a))}} +A.hg.prototype={ +$1(a){if(!t.v.b(a))return +if(a.key==="/"&&!t.p.b(document.activeElement)){a.preventDefault() +this.a.focus()}}, +$S:1} +A.hh.prototype={ +$1(a){this.a.cn(this.b.value,!0)}, +$S:1} +A.hi.prototype={ +$1(a){this.a.bd(this.b)}, +$S:1} +A.hj.prototype={ +$1(a){this.a.bh(this.b.value)}, +$S:1} +A.hk.prototype={ +$1(a){var s,r,q,p,o,n,m,l,k,j,i,h,g,f=this,e="tt-cursor" +if(a.type!=="keydown")return +t.v.a(a) +s=a.code +if(s==="Enter"){a.preventDefault() +s=f.a +r=s.y +if(r!==-1){s=s.w[r] +q=s.getAttribute("data-"+new A.e1(new A.bZ(s)).aG("href")) +if(q!=null)window.location.assign(A.o($.cu())+q) +return}else{p=B.n.Y(s.r) +o=A.fH(A.o($.cu())+"search.html").aT(0,A.iV(["q",p],t.N,t.z)) +window.location.assign(o.gae()) +return}}r=f.a +n=r.w +m=n.length-1 +l=r.y +if(s==="ArrowUp")if(l===-1)r.y=m +else r.y=l-1 +else if(s==="ArrowDown")if(l===m)r.y=-1 +else r.y=l+1 +else if(s==="Escape")r.bd(f.b) +else{if(r.f!=null){r.f=null +r.bh(f.b.value)}return}s=l!==-1 +if(s)J.a_(n[l]).a7(0,e) +k=r.y +if(k!==-1){j=n[k] +J.a_(j).A(0,e) +s=r.y +if(s===0)r.gV().scrollTop=0 +else if(s===m)r.gV().scrollTop=B.c.a0(B.e.a0(r.gV().scrollHeight)) +else{i=B.e.a0(j.offsetTop) +h=B.e.a0(r.gV().offsetHeight) +if(i"+A.o(a.h(0,0))+""}, +$S:36} +A.Y.prototype={} +A.ac.prototype={} +A.fX.prototype={} +A.i_.prototype={ +$1(a){var s=this.a +if(s!=null)J.a_(s).aW(0,"active") +s=this.b +if(s!=null)J.a_(s).aW(0,"active")}, +$S:37} +A.hX.prototype={ +$1(a){var s="dark-theme",r="colorTheme",q="light-theme",p=this.a,o=this.b +if(p.checked===!0){o.setAttribute("class",s) +p.setAttribute("value",s) +window.localStorage.setItem(r,"true")}else{o.setAttribute("class",q) +p.setAttribute("value",q) +window.localStorage.setItem(r,"false")}}, +$S:1};(function aliases(){var s=J.bd.prototype +s.bF=s.k +s=J.aF.prototype +s.bH=s.k +s=A.u.prototype +s.bG=s.ak +s=A.q.prototype +s.ao=s.J +s=A.c8.prototype +s.bI=s.R})();(function installTearOffs(){var s=hunkHelpers._static_2,r=hunkHelpers._static_1,q=hunkHelpers._static_0,p=hunkHelpers.installStaticTearOff +s(J,"m1","kH",38) +r(A,"mt","l3",3) +r(A,"mu","l4",3) +r(A,"mv","l5",3) +q(A,"jK","ml",0) +p(A,"mD",4,null,["$4"],["l7"],7,0) +p(A,"mE",4,null,["$4"],["l8"],7,0) +r(A,"mU","l9",27)})();(function inheritance(){var s=hunkHelpers.mixin,r=hunkHelpers.inherit,q=hunkHelpers.inheritMany +r(A.y,null) +q(A.y,[A.ic,J.bd,J.b9,A.u,A.cG,A.z,A.e,A.fA,A.bH,A.bJ,A.dT,A.bB,A.dO,A.bv,A.fD,A.fx,A.bA,A.cb,A.aA,A.v,A.fp,A.d5,A.fk,A.ek,A.fQ,A.T,A.eb,A.hq,A.ho,A.dU,A.cB,A.dY,A.bn,A.H,A.dV,A.eB,A.hy,A.an,A.hb,A.c1,A.eP,A.bI,A.cK,A.cM,A.fj,A.hv,A.hu,A.dn,A.bT,A.fY,A.fh,A.G,A.eE,A.L,A.cj,A.fF,A.ew,A.fb,A.bo,A.A,A.bQ,A.c8,A.eG,A.bC,A.he,A.eQ,A.fw,A.hf,A.Y,A.ac,A.fX]) +q(J.bd,[J.d0,J.bF,J.a,J.be,J.aE]) +q(J.a,[J.aF,J.C,A.dc,A.bM,A.c,A.cw,A.bu,A.X,A.w,A.e_,A.N,A.cR,A.cS,A.e3,A.bx,A.e5,A.cU,A.h,A.e9,A.a2,A.cZ,A.ee,A.d7,A.d8,A.el,A.em,A.a4,A.en,A.ep,A.a6,A.et,A.ev,A.a8,A.ex,A.a9,A.eA,A.U,A.eI,A.dI,A.ab,A.eK,A.dK,A.dR,A.eR,A.eT,A.eV,A.eX,A.eZ,A.ah,A.ei,A.al,A.er,A.dr,A.eC,A.ao,A.eM,A.cD,A.dX]) +q(J.aF,[J.dp,J.b_,J.ag]) +r(J.fl,J.C) +q(J.be,[J.bE,J.d1]) +q(A.u,[A.aI,A.f,A.aj,A.ar]) +q(A.aI,[A.aP,A.cl]) +r(A.bY,A.aP) +r(A.bW,A.cl) +r(A.af,A.bW) +q(A.z,[A.d3,A.ap,A.d2,A.dN,A.e0,A.du,A.e8,A.cz,A.W,A.dP,A.dM,A.bi,A.cL]) +q(A.e,[A.bk,A.J,A.cX]) +r(A.cJ,A.bk) +q(A.f,[A.a3,A.ai]) +r(A.by,A.aj) +q(A.a3,[A.ak,A.eh]) +r(A.aR,A.bv) +r(A.bR,A.ap) +q(A.aA,[A.cH,A.cI,A.dF,A.fm,A.hU,A.hW,A.fS,A.fR,A.hz,A.h1,A.h9,A.hF,A.hG,A.fc,A.fv,A.fu,A.hl,A.hm,A.hn,A.fa,A.ff,A.fg,A.i3,A.i4,A.hY,A.hJ,A.hI,A.hg,A.hh,A.hi,A.hj,A.hk,A.hC,A.hD,A.hK,A.i_,A.hX]) +q(A.dF,[A.dA,A.bb]) +q(A.v,[A.aV,A.eg,A.dW,A.e1]) +q(A.cI,[A.hV,A.hA,A.hP,A.h2,A.fq,A.fK,A.fG,A.fI,A.fJ,A.ht,A.hs,A.hE,A.fs,A.ft,A.fz,A.fB,A.fV,A.fW,A.hx,A.f7,A.hH]) +q(A.bM,[A.dd,A.bg]) +q(A.bg,[A.c3,A.c5]) +r(A.c4,A.c3) +r(A.bK,A.c4) +r(A.c6,A.c5) +r(A.bL,A.c6) +q(A.bK,[A.de,A.df]) +q(A.bL,[A.dg,A.dh,A.di,A.dj,A.dk,A.bN,A.bO]) +r(A.ce,A.e8) +q(A.cH,[A.fT,A.fU,A.hp,A.fZ,A.h5,A.h3,A.h0,A.h4,A.h_,A.h8,A.h7,A.h6,A.hN,A.hd,A.fO,A.fN,A.hL,A.hZ]) +r(A.bV,A.dY) +r(A.hc,A.hy) +q(A.an,[A.c7,A.cN]) +r(A.c0,A.c7) +r(A.ci,A.bI) +r(A.bl,A.ci) +q(A.cK,[A.f8,A.fd,A.fn]) +q(A.cM,[A.f9,A.fi,A.fo,A.fP,A.fM]) +r(A.fL,A.fd) +q(A.W,[A.bS,A.d_]) +r(A.e2,A.cj) +q(A.c,[A.m,A.cW,A.a7,A.c9,A.aa,A.V,A.cc,A.dS,A.cF,A.az]) +q(A.m,[A.q,A.a0,A.aS,A.bm]) +q(A.q,[A.l,A.j]) +q(A.l,[A.cx,A.cy,A.ba,A.aO,A.cY,A.aD,A.dv,A.bU,A.dD,A.dE,A.bj,A.aY]) +r(A.cO,A.X) +r(A.bc,A.e_) +q(A.N,[A.cP,A.cQ]) +r(A.e4,A.e3) +r(A.bw,A.e4) +r(A.e6,A.e5) +r(A.cT,A.e6) +r(A.a1,A.bu) +r(A.ea,A.e9) +r(A.cV,A.ea) +r(A.ef,A.ee) +r(A.aU,A.ef) +r(A.bD,A.aS) +r(A.P,A.h) +r(A.bf,A.P) +r(A.d9,A.el) +r(A.da,A.em) +r(A.eo,A.en) +r(A.db,A.eo) +r(A.eq,A.ep) +r(A.bP,A.eq) +r(A.eu,A.et) +r(A.dq,A.eu) +r(A.dt,A.ev) +r(A.ca,A.c9) +r(A.dx,A.ca) +r(A.ey,A.ex) +r(A.dy,A.ey) +r(A.dB,A.eA) +r(A.eJ,A.eI) +r(A.dG,A.eJ) +r(A.cd,A.cc) +r(A.dH,A.cd) +r(A.eL,A.eK) +r(A.dJ,A.eL) +r(A.eS,A.eR) +r(A.dZ,A.eS) +r(A.bX,A.bx) +r(A.eU,A.eT) +r(A.ec,A.eU) +r(A.eW,A.eV) +r(A.c2,A.eW) +r(A.eY,A.eX) +r(A.ez,A.eY) +r(A.f_,A.eZ) +r(A.eF,A.f_) +r(A.bZ,A.dW) +q(A.cN,[A.e7,A.cC]) +r(A.eH,A.c8) +r(A.ej,A.ei) +r(A.d4,A.ej) +r(A.es,A.er) +r(A.dl,A.es) +r(A.bh,A.j) +r(A.eD,A.eC) +r(A.dC,A.eD) +r(A.eN,A.eM) +r(A.dL,A.eN) +r(A.cE,A.dX) +r(A.dm,A.az) +s(A.bk,A.dO) +s(A.cl,A.e) +s(A.c3,A.e) +s(A.c4,A.bB) +s(A.c5,A.e) +s(A.c6,A.bB) +s(A.ci,A.eP) +s(A.e_,A.fb) +s(A.e3,A.e) +s(A.e4,A.A) +s(A.e5,A.e) +s(A.e6,A.A) +s(A.e9,A.e) +s(A.ea,A.A) +s(A.ee,A.e) +s(A.ef,A.A) +s(A.el,A.v) +s(A.em,A.v) +s(A.en,A.e) +s(A.eo,A.A) +s(A.ep,A.e) +s(A.eq,A.A) +s(A.et,A.e) +s(A.eu,A.A) +s(A.ev,A.v) +s(A.c9,A.e) +s(A.ca,A.A) +s(A.ex,A.e) +s(A.ey,A.A) +s(A.eA,A.v) +s(A.eI,A.e) +s(A.eJ,A.A) +s(A.cc,A.e) +s(A.cd,A.A) +s(A.eK,A.e) +s(A.eL,A.A) +s(A.eR,A.e) +s(A.eS,A.A) +s(A.eT,A.e) +s(A.eU,A.A) +s(A.eV,A.e) +s(A.eW,A.A) +s(A.eX,A.e) +s(A.eY,A.A) +s(A.eZ,A.e) +s(A.f_,A.A) +s(A.ei,A.e) +s(A.ej,A.A) +s(A.er,A.e) +s(A.es,A.A) +s(A.eC,A.e) +s(A.eD,A.A) +s(A.eM,A.e) +s(A.eN,A.A) +s(A.dX,A.v)})() +var v={typeUniverse:{eC:new Map(),tR:{},eT:{},tPV:{},sEA:[]},mangledGlobalNames:{i:"int",E:"double",R:"num",d:"String",ad:"bool",G:"Null",k:"List"},mangledNames:{},types:["~()","G(h)","~(d,@)","~(~())","~(@)","~(d,d)","@()","ad(q,d,d,bo)","G()","G(@)","~(aZ,d,i)","ad(m)","ad(a5)","ad(d)","~(d,d?)","~(d,i)","~(d,i?)","i(i,i)","@(d)","~(i,@)","aZ(@,@)","G(y,aH)","H<@>(@)","G(~())","G(@,aH)","@(@)","d(d)","ac(x)","x(x,d)","q(m)","d()","aC(@)","~(i)","i(Y,Y)","ac(Y)","ad(aG)","d(fr)","~(h)","i(@,@)","@(@,d)","~(y?,y?)","~(m,m?)"],interceptorsByTag:null,leafTags:null,arrayRti:Symbol("$ti")} +A.lr(v.typeUniverse,JSON.parse('{"dp":"aF","b_":"aF","ag":"aF","nk":"a","nl":"a","n1":"a","n_":"h","nh":"h","n2":"az","n0":"c","no":"c","nq":"c","mZ":"j","ni":"j","n3":"l","nn":"l","nr":"m","ng":"m","nH":"aS","nG":"V","n7":"P","n6":"a0","nt":"a0","nm":"q","nj":"aU","n8":"w","nb":"X","nd":"U","ne":"N","na":"N","nc":"N","d0":{"t":[]},"bF":{"G":[],"t":[]},"aF":{"a":[]},"C":{"k":["1"],"a":[],"f":["1"]},"fl":{"C":["1"],"k":["1"],"a":[],"f":["1"]},"be":{"E":[],"R":[]},"bE":{"E":[],"i":[],"R":[],"t":[]},"d1":{"E":[],"R":[],"t":[]},"aE":{"d":[],"t":[]},"aI":{"u":["2"]},"aP":{"aI":["1","2"],"u":["2"],"u.E":"2"},"bY":{"aP":["1","2"],"aI":["1","2"],"f":["2"],"u":["2"],"u.E":"2"},"bW":{"e":["2"],"k":["2"],"aI":["1","2"],"f":["2"],"u":["2"]},"af":{"bW":["1","2"],"e":["2"],"k":["2"],"aI":["1","2"],"f":["2"],"u":["2"],"e.E":"2","u.E":"2"},"d3":{"z":[]},"cJ":{"e":["i"],"k":["i"],"f":["i"],"e.E":"i"},"f":{"u":["1"]},"a3":{"f":["1"],"u":["1"]},"aj":{"u":["2"],"u.E":"2"},"by":{"aj":["1","2"],"f":["2"],"u":["2"],"u.E":"2"},"ak":{"a3":["2"],"f":["2"],"u":["2"],"a3.E":"2","u.E":"2"},"ar":{"u":["1"],"u.E":"1"},"bk":{"e":["1"],"k":["1"],"f":["1"]},"bv":{"x":["1","2"]},"aR":{"x":["1","2"]},"bR":{"ap":[],"z":[]},"d2":{"z":[]},"dN":{"z":[]},"cb":{"aH":[]},"aA":{"aT":[]},"cH":{"aT":[]},"cI":{"aT":[]},"dF":{"aT":[]},"dA":{"aT":[]},"bb":{"aT":[]},"e0":{"z":[]},"du":{"z":[]},"aV":{"v":["1","2"],"x":["1","2"],"v.V":"2"},"ai":{"f":["1"],"u":["1"],"u.E":"1"},"ek":{"ig":[],"fr":[]},"dc":{"a":[],"t":[]},"bM":{"a":[]},"dd":{"a":[],"t":[]},"bg":{"p":["1"],"a":[]},"bK":{"e":["E"],"p":["E"],"k":["E"],"a":[],"f":["E"]},"bL":{"e":["i"],"p":["i"],"k":["i"],"a":[],"f":["i"]},"de":{"e":["E"],"p":["E"],"k":["E"],"a":[],"f":["E"],"t":[],"e.E":"E"},"df":{"e":["E"],"p":["E"],"k":["E"],"a":[],"f":["E"],"t":[],"e.E":"E"},"dg":{"e":["i"],"p":["i"],"k":["i"],"a":[],"f":["i"],"t":[],"e.E":"i"},"dh":{"e":["i"],"p":["i"],"k":["i"],"a":[],"f":["i"],"t":[],"e.E":"i"},"di":{"e":["i"],"p":["i"],"k":["i"],"a":[],"f":["i"],"t":[],"e.E":"i"},"dj":{"e":["i"],"p":["i"],"k":["i"],"a":[],"f":["i"],"t":[],"e.E":"i"},"dk":{"e":["i"],"p":["i"],"k":["i"],"a":[],"f":["i"],"t":[],"e.E":"i"},"bN":{"e":["i"],"p":["i"],"k":["i"],"a":[],"f":["i"],"t":[],"e.E":"i"},"bO":{"e":["i"],"aZ":[],"p":["i"],"k":["i"],"a":[],"f":["i"],"t":[],"e.E":"i"},"e8":{"z":[]},"ce":{"ap":[],"z":[]},"H":{"aC":["1"]},"cB":{"z":[]},"bV":{"dY":["1"]},"c0":{"an":["1"],"aG":["1"],"f":["1"]},"e":{"k":["1"],"f":["1"]},"v":{"x":["1","2"]},"bI":{"x":["1","2"]},"bl":{"x":["1","2"]},"an":{"aG":["1"],"f":["1"]},"c7":{"an":["1"],"aG":["1"],"f":["1"]},"eg":{"v":["d","@"],"x":["d","@"],"v.V":"@"},"eh":{"a3":["d"],"f":["d"],"u":["d"],"a3.E":"d","u.E":"d"},"E":{"R":[]},"i":{"R":[]},"k":{"f":["1"]},"ig":{"fr":[]},"aG":{"f":["1"],"u":["1"]},"cz":{"z":[]},"ap":{"z":[]},"W":{"z":[]},"bS":{"z":[]},"d_":{"z":[]},"dP":{"z":[]},"dM":{"z":[]},"bi":{"z":[]},"cL":{"z":[]},"dn":{"z":[]},"bT":{"z":[]},"eE":{"aH":[]},"cj":{"dQ":[]},"ew":{"dQ":[]},"e2":{"dQ":[]},"w":{"a":[]},"q":{"m":[],"a":[]},"h":{"a":[]},"a1":{"a":[]},"a2":{"a":[]},"a4":{"a":[]},"m":{"a":[]},"a6":{"a":[]},"a7":{"a":[]},"a8":{"a":[]},"a9":{"a":[]},"U":{"a":[]},"aa":{"a":[]},"V":{"a":[]},"ab":{"a":[]},"bo":{"a5":[]},"l":{"q":[],"m":[],"a":[]},"cw":{"a":[]},"cx":{"q":[],"m":[],"a":[]},"cy":{"q":[],"m":[],"a":[]},"ba":{"q":[],"m":[],"a":[]},"bu":{"a":[]},"aO":{"q":[],"m":[],"a":[]},"a0":{"m":[],"a":[]},"cO":{"a":[]},"bc":{"a":[]},"N":{"a":[]},"X":{"a":[]},"cP":{"a":[]},"cQ":{"a":[]},"cR":{"a":[]},"aS":{"m":[],"a":[]},"cS":{"a":[]},"bw":{"e":["aX"],"k":["aX"],"p":["aX"],"a":[],"f":["aX"],"e.E":"aX"},"bx":{"a":[],"aX":["R"]},"cT":{"e":["d"],"k":["d"],"p":["d"],"a":[],"f":["d"],"e.E":"d"},"cU":{"a":[]},"c":{"a":[]},"cV":{"e":["a1"],"k":["a1"],"p":["a1"],"a":[],"f":["a1"],"e.E":"a1"},"cW":{"a":[]},"cY":{"q":[],"m":[],"a":[]},"cZ":{"a":[]},"aU":{"e":["m"],"k":["m"],"p":["m"],"a":[],"f":["m"],"e.E":"m"},"bD":{"m":[],"a":[]},"aD":{"q":[],"m":[],"a":[]},"bf":{"h":[],"a":[]},"d7":{"a":[]},"d8":{"a":[]},"d9":{"a":[],"v":["d","@"],"x":["d","@"],"v.V":"@"},"da":{"a":[],"v":["d","@"],"x":["d","@"],"v.V":"@"},"db":{"e":["a4"],"k":["a4"],"p":["a4"],"a":[],"f":["a4"],"e.E":"a4"},"J":{"e":["m"],"k":["m"],"f":["m"],"e.E":"m"},"bP":{"e":["m"],"k":["m"],"p":["m"],"a":[],"f":["m"],"e.E":"m"},"dq":{"e":["a6"],"k":["a6"],"p":["a6"],"a":[],"f":["a6"],"e.E":"a6"},"dt":{"a":[],"v":["d","@"],"x":["d","@"],"v.V":"@"},"dv":{"q":[],"m":[],"a":[]},"dx":{"e":["a7"],"k":["a7"],"p":["a7"],"a":[],"f":["a7"],"e.E":"a7"},"dy":{"e":["a8"],"k":["a8"],"p":["a8"],"a":[],"f":["a8"],"e.E":"a8"},"dB":{"a":[],"v":["d","d"],"x":["d","d"],"v.V":"d"},"bU":{"q":[],"m":[],"a":[]},"dD":{"q":[],"m":[],"a":[]},"dE":{"q":[],"m":[],"a":[]},"bj":{"q":[],"m":[],"a":[]},"aY":{"q":[],"m":[],"a":[]},"dG":{"e":["V"],"k":["V"],"p":["V"],"a":[],"f":["V"],"e.E":"V"},"dH":{"e":["aa"],"k":["aa"],"p":["aa"],"a":[],"f":["aa"],"e.E":"aa"},"dI":{"a":[]},"dJ":{"e":["ab"],"k":["ab"],"p":["ab"],"a":[],"f":["ab"],"e.E":"ab"},"dK":{"a":[]},"P":{"h":[],"a":[]},"dR":{"a":[]},"dS":{"a":[]},"bm":{"m":[],"a":[]},"dZ":{"e":["w"],"k":["w"],"p":["w"],"a":[],"f":["w"],"e.E":"w"},"bX":{"a":[],"aX":["R"]},"ec":{"e":["a2?"],"k":["a2?"],"p":["a2?"],"a":[],"f":["a2?"],"e.E":"a2?"},"c2":{"e":["m"],"k":["m"],"p":["m"],"a":[],"f":["m"],"e.E":"m"},"ez":{"e":["a9"],"k":["a9"],"p":["a9"],"a":[],"f":["a9"],"e.E":"a9"},"eF":{"e":["U"],"k":["U"],"p":["U"],"a":[],"f":["U"],"e.E":"U"},"dW":{"v":["d","d"],"x":["d","d"]},"bZ":{"v":["d","d"],"x":["d","d"],"v.V":"d"},"e1":{"v":["d","d"],"x":["d","d"],"v.V":"d"},"e7":{"an":["d"],"aG":["d"],"f":["d"]},"bQ":{"a5":[]},"c8":{"a5":[]},"eH":{"a5":[]},"eG":{"a5":[]},"cN":{"an":["d"],"aG":["d"],"f":["d"]},"cX":{"e":["q"],"k":["q"],"f":["q"],"e.E":"q"},"ah":{"a":[]},"al":{"a":[]},"ao":{"a":[]},"d4":{"e":["ah"],"k":["ah"],"a":[],"f":["ah"],"e.E":"ah"},"dl":{"e":["al"],"k":["al"],"a":[],"f":["al"],"e.E":"al"},"dr":{"a":[]},"bh":{"j":[],"q":[],"m":[],"a":[]},"dC":{"e":["d"],"k":["d"],"a":[],"f":["d"],"e.E":"d"},"cC":{"an":["d"],"aG":["d"],"f":["d"]},"j":{"q":[],"m":[],"a":[]},"dL":{"e":["ao"],"k":["ao"],"a":[],"f":["ao"],"e.E":"ao"},"cD":{"a":[]},"cE":{"a":[],"v":["d","@"],"x":["d","@"],"v.V":"@"},"cF":{"a":[]},"az":{"a":[]},"dm":{"a":[]},"kB":{"k":["i"],"f":["i"]},"aZ":{"k":["i"],"f":["i"]},"kZ":{"k":["i"],"f":["i"]},"kz":{"k":["i"],"f":["i"]},"kX":{"k":["i"],"f":["i"]},"kA":{"k":["i"],"f":["i"]},"kY":{"k":["i"],"f":["i"]},"kx":{"k":["E"],"f":["E"]},"ky":{"k":["E"],"f":["E"]}}')) +A.lq(v.typeUniverse,JSON.parse('{"b9":1,"bH":1,"bJ":2,"dT":1,"bB":1,"dO":1,"bk":1,"cl":2,"bv":2,"d5":1,"bg":1,"eB":1,"c1":1,"eP":2,"bI":2,"c7":1,"ci":2,"cK":2,"cM":2,"A":1,"bC":1}')) +var u={c:"Error handler must accept one Object or one Object and a StackTrace as arguments, and return a value of the returned future's type"} +var t=(function rtii(){var s=A.hR +return{B:s("ba"),Y:s("aO"),W:s("f<@>"),h:s("q"),U:s("z"),Z:s("aT"),p:s("aD"),k:s("C"),Q:s("C"),s:s("C"),m:s("C"),O:s("C"),L:s("C"),b:s("C<@>"),t:s("C"),T:s("bF"),g:s("ag"),D:s("p<@>"),e:s("a"),v:s("bf"),j:s("k<@>"),a:s("x"),E:s("ak"),d:s("ak"),P:s("G"),K:s("y"),I:s("np"),q:s("aX"),F:s("ig"),c:s("bh"),l:s("aH"),N:s("d"),u:s("j"),f:s("bj"),J:s("aY"),n:s("t"),r:s("ap"),o:s("b_"),V:s("bl"),R:s("dQ"),x:s("bm"),G:s("J"),M:s("H<@>"),y:s("ad"),i:s("E"),z:s("@"),w:s("@(y)"),C:s("@(y,aH)"),S:s("i"),A:s("0&*"),_:s("y*"),bc:s("aC?"),cD:s("aD?"),X:s("y?"),H:s("R")}})();(function constants(){var s=hunkHelpers.makeConstList +B.m=A.aO.prototype +B.J=A.bD.prototype +B.f=A.aD.prototype +B.K=J.bd.prototype +B.b=J.C.prototype +B.c=J.bE.prototype +B.e=J.be.prototype +B.a=J.aE.prototype +B.L=J.ag.prototype +B.M=J.a.prototype +B.V=A.bO.prototype +B.w=J.dp.prototype +B.x=A.bU.prototype +B.W=A.aY.prototype +B.l=J.b_.prototype +B.a9=new A.f9() +B.y=new A.f8() +B.aa=new A.fj() +B.n=new A.fi() +B.o=function getTagFallback(o) { + var s = Object.prototype.toString.call(o); + return s.substring(8, s.length - 1); +} +B.z=function() { + var toStringFunction = Object.prototype.toString; + function getTag(o) { + var s = toStringFunction.call(o); + return s.substring(8, s.length - 1); + } + function getUnknownTag(object, tag) { + if (/^HTML[A-Z].*Element$/.test(tag)) { + var name = toStringFunction.call(object); + if (name == "[object Object]") return null; + return "HTMLElement"; + } + } + function getUnknownTagGenericBrowser(object, tag) { + if (self.HTMLElement && object instanceof HTMLElement) return "HTMLElement"; + return getUnknownTag(object, tag); + } + function prototypeForTag(tag) { + if (typeof window == "undefined") return null; + if (typeof window[tag] == "undefined") return null; + var constructor = window[tag]; + if (typeof constructor != "function") return null; + return constructor.prototype; + } + function discriminator(tag) { return null; } + var isBrowser = typeof navigator == "object"; + return { + getTag: getTag, + getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag, + prototypeForTag: prototypeForTag, + discriminator: discriminator }; +} +B.E=function(getTagFallback) { + return function(hooks) { + if (typeof navigator != "object") return hooks; + var ua = navigator.userAgent; + if (ua.indexOf("DumpRenderTree") >= 0) return hooks; + if (ua.indexOf("Chrome") >= 0) { + function confirm(p) { + return typeof window == "object" && window[p] && window[p].name == p; + } + if (confirm("Window") && confirm("HTMLElement")) return hooks; + } + hooks.getTag = getTagFallback; + }; +} +B.A=function(hooks) { + if (typeof dartExperimentalFixupGetTag != "function") return hooks; + hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag); +} +B.B=function(hooks) { + var getTag = hooks.getTag; + var prototypeForTag = hooks.prototypeForTag; + function getTagFixed(o) { + var tag = getTag(o); + if (tag == "Document") { + if (!!o.xmlVersion) return "!Document"; + return "!HTMLDocument"; + } + return tag; + } + function prototypeForTagFixed(tag) { + if (tag == "Document") return null; + return prototypeForTag(tag); + } + hooks.getTag = getTagFixed; + hooks.prototypeForTag = prototypeForTagFixed; +} +B.D=function(hooks) { + var userAgent = typeof navigator == "object" ? navigator.userAgent : ""; + if (userAgent.indexOf("Firefox") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "GeoGeolocation": "Geolocation", + "Location": "!Location", + "WorkerMessageEvent": "MessageEvent", + "XMLDocument": "!Document"}; + function getTagFirefox(o) { + var tag = getTag(o); + return quickMap[tag] || tag; + } + hooks.getTag = getTagFirefox; +} +B.C=function(hooks) { + var userAgent = typeof navigator == "object" ? navigator.userAgent : ""; + if (userAgent.indexOf("Trident/") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "HTMLDDElement": "HTMLElement", + "HTMLDTElement": "HTMLElement", + "HTMLPhraseElement": "HTMLElement", + "Position": "Geoposition" + }; + function getTagIE(o) { + var tag = getTag(o); + var newTag = quickMap[tag]; + if (newTag) return newTag; + if (tag == "Object") { + if (window.DataView && (o instanceof window.DataView)) return "DataView"; + } + return tag; + } + function prototypeForTagIE(tag) { + var constructor = window[tag]; + if (constructor == null) return null; + return constructor.prototype; + } + hooks.getTag = getTagIE; + hooks.prototypeForTag = prototypeForTagIE; +} +B.p=function(hooks) { return hooks; } + +B.F=new A.fn() +B.G=new A.dn() +B.ab=new A.fA() +B.h=new A.fL() +B.H=new A.fP() +B.d=new A.hc() +B.I=new A.eE() +B.N=new A.fo(null) +B.q=A.n(s(["bind","if","ref","repeat","syntax"]),t.s) +B.k=A.n(s(["A::href","AREA::href","BLOCKQUOTE::cite","BODY::background","COMMAND::icon","DEL::cite","FORM::action","IMG::src","INPUT::src","INS::cite","Q::cite","VIDEO::poster"]),t.s) +B.i=A.n(s([0,0,24576,1023,65534,34815,65534,18431]),t.t) +B.O=A.n(s(["HEAD","AREA","BASE","BASEFONT","BR","COL","COLGROUP","EMBED","FRAME","FRAMESET","HR","IMAGE","IMG","INPUT","ISINDEX","LINK","META","PARAM","SOURCE","STYLE","TITLE","WBR"]),t.s) +B.r=A.n(s([0,0,26624,1023,65534,2047,65534,2047]),t.t) +B.P=A.n(s([0,0,32722,12287,65534,34815,65534,18431]),t.t) +B.t=A.n(s([0,0,65490,12287,65535,34815,65534,18431]),t.t) +B.u=A.n(s([0,0,32776,33792,1,10240,0,0]),t.t) +B.Q=A.n(s([0,0,32754,11263,65534,34815,65534,18431]),t.t) +B.v=A.n(s([]),t.s) +B.j=A.n(s([0,0,65490,45055,65535,34815,65534,18431]),t.t) +B.S=A.n(s(["*::class","*::dir","*::draggable","*::hidden","*::id","*::inert","*::itemprop","*::itemref","*::itemscope","*::lang","*::spellcheck","*::title","*::translate","A::accesskey","A::coords","A::hreflang","A::name","A::shape","A::tabindex","A::target","A::type","AREA::accesskey","AREA::alt","AREA::coords","AREA::nohref","AREA::shape","AREA::tabindex","AREA::target","AUDIO::controls","AUDIO::loop","AUDIO::mediagroup","AUDIO::muted","AUDIO::preload","BDO::dir","BODY::alink","BODY::bgcolor","BODY::link","BODY::text","BODY::vlink","BR::clear","BUTTON::accesskey","BUTTON::disabled","BUTTON::name","BUTTON::tabindex","BUTTON::type","BUTTON::value","CANVAS::height","CANVAS::width","CAPTION::align","COL::align","COL::char","COL::charoff","COL::span","COL::valign","COL::width","COLGROUP::align","COLGROUP::char","COLGROUP::charoff","COLGROUP::span","COLGROUP::valign","COLGROUP::width","COMMAND::checked","COMMAND::command","COMMAND::disabled","COMMAND::label","COMMAND::radiogroup","COMMAND::type","DATA::value","DEL::datetime","DETAILS::open","DIR::compact","DIV::align","DL::compact","FIELDSET::disabled","FONT::color","FONT::face","FONT::size","FORM::accept","FORM::autocomplete","FORM::enctype","FORM::method","FORM::name","FORM::novalidate","FORM::target","FRAME::name","H1::align","H2::align","H3::align","H4::align","H5::align","H6::align","HR::align","HR::noshade","HR::size","HR::width","HTML::version","IFRAME::align","IFRAME::frameborder","IFRAME::height","IFRAME::marginheight","IFRAME::marginwidth","IFRAME::width","IMG::align","IMG::alt","IMG::border","IMG::height","IMG::hspace","IMG::ismap","IMG::name","IMG::usemap","IMG::vspace","IMG::width","INPUT::accept","INPUT::accesskey","INPUT::align","INPUT::alt","INPUT::autocomplete","INPUT::autofocus","INPUT::checked","INPUT::disabled","INPUT::inputmode","INPUT::ismap","INPUT::list","INPUT::max","INPUT::maxlength","INPUT::min","INPUT::multiple","INPUT::name","INPUT::placeholder","INPUT::readonly","INPUT::required","INPUT::size","INPUT::step","INPUT::tabindex","INPUT::type","INPUT::usemap","INPUT::value","INS::datetime","KEYGEN::disabled","KEYGEN::keytype","KEYGEN::name","LABEL::accesskey","LABEL::for","LEGEND::accesskey","LEGEND::align","LI::type","LI::value","LINK::sizes","MAP::name","MENU::compact","MENU::label","MENU::type","METER::high","METER::low","METER::max","METER::min","METER::value","OBJECT::typemustmatch","OL::compact","OL::reversed","OL::start","OL::type","OPTGROUP::disabled","OPTGROUP::label","OPTION::disabled","OPTION::label","OPTION::selected","OPTION::value","OUTPUT::for","OUTPUT::name","P::align","PRE::width","PROGRESS::max","PROGRESS::min","PROGRESS::value","SELECT::autocomplete","SELECT::disabled","SELECT::multiple","SELECT::name","SELECT::required","SELECT::size","SELECT::tabindex","SOURCE::type","TABLE::align","TABLE::bgcolor","TABLE::border","TABLE::cellpadding","TABLE::cellspacing","TABLE::frame","TABLE::rules","TABLE::summary","TABLE::width","TBODY::align","TBODY::char","TBODY::charoff","TBODY::valign","TD::abbr","TD::align","TD::axis","TD::bgcolor","TD::char","TD::charoff","TD::colspan","TD::headers","TD::height","TD::nowrap","TD::rowspan","TD::scope","TD::valign","TD::width","TEXTAREA::accesskey","TEXTAREA::autocomplete","TEXTAREA::cols","TEXTAREA::disabled","TEXTAREA::inputmode","TEXTAREA::name","TEXTAREA::placeholder","TEXTAREA::readonly","TEXTAREA::required","TEXTAREA::rows","TEXTAREA::tabindex","TEXTAREA::wrap","TFOOT::align","TFOOT::char","TFOOT::charoff","TFOOT::valign","TH::abbr","TH::align","TH::axis","TH::bgcolor","TH::char","TH::charoff","TH::colspan","TH::headers","TH::height","TH::nowrap","TH::rowspan","TH::scope","TH::valign","TH::width","THEAD::align","THEAD::char","THEAD::charoff","THEAD::valign","TR::align","TR::bgcolor","TR::char","TR::charoff","TR::valign","TRACK::default","TRACK::kind","TRACK::label","TRACK::srclang","UL::compact","UL::type","VIDEO::controls","VIDEO::height","VIDEO::loop","VIDEO::mediagroup","VIDEO::muted","VIDEO::preload","VIDEO::width"]),t.s) +B.T=new A.aR(0,{},B.v,A.hR("aR")) +B.R=A.n(s(["topic","library","class","enum","mixin","extension","typedef","function","method","accessor","operator","constant","property","constructor"]),t.s) +B.U=new A.aR(14,{topic:2,library:2,class:2,enum:2,mixin:3,extension:3,typedef:3,function:4,method:4,accessor:4,operator:4,constant:4,property:4,constructor:4},B.R,A.hR("aR")) +B.X=A.Z("n4") +B.Y=A.Z("n5") +B.Z=A.Z("kx") +B.a_=A.Z("ky") +B.a0=A.Z("kz") +B.a1=A.Z("kA") +B.a2=A.Z("kB") +B.a3=A.Z("y") +B.a4=A.Z("kX") +B.a5=A.Z("kY") +B.a6=A.Z("kZ") +B.a7=A.Z("aZ") +B.a8=new A.fM(!1)})();(function staticFields(){$.ha=null +$.b7=A.n([],A.hR("C")) +$.j_=null +$.iN=null +$.iM=null +$.jN=null +$.jJ=null +$.jS=null +$.hQ=null +$.i1=null +$.iB=null +$.bq=null +$.cn=null +$.co=null +$.ix=!1 +$.F=B.d +$.aB=null +$.i8=null +$.iR=null +$.iQ=null +$.ed=A.d6(t.N,t.Z) +$.iz=10 +$.hO=0 +$.b0=A.d6(t.N,t.h)})();(function lazyInitializers(){var s=hunkHelpers.lazyFinal +s($,"nf","jV",()=>A.mA("_$dart_dartClosure")) +s($,"nu","jW",()=>A.aq(A.fE({ +toString:function(){return"$receiver$"}}))) +s($,"nv","jX",()=>A.aq(A.fE({$method$:null, +toString:function(){return"$receiver$"}}))) +s($,"nw","jY",()=>A.aq(A.fE(null))) +s($,"nx","jZ",()=>A.aq(function(){var $argumentsExpr$="$arguments$" +try{null.$method$($argumentsExpr$)}catch(r){return r.message}}())) +s($,"nA","k1",()=>A.aq(A.fE(void 0))) +s($,"nB","k2",()=>A.aq(function(){var $argumentsExpr$="$arguments$" +try{(void 0).$method$($argumentsExpr$)}catch(r){return r.message}}())) +s($,"nz","k0",()=>A.aq(A.j6(null))) +s($,"ny","k_",()=>A.aq(function(){try{null.$method$}catch(r){return r.message}}())) +s($,"nD","k4",()=>A.aq(A.j6(void 0))) +s($,"nC","k3",()=>A.aq(function(){try{(void 0).$method$}catch(r){return r.message}}())) +s($,"nI","iE",()=>A.l2()) +s($,"nE","k5",()=>new A.fO().$0()) +s($,"nF","k6",()=>new A.fN().$0()) +s($,"nJ","k7",()=>A.kN(A.lU(A.n([-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-2,-2,-2,-2,-2,62,-2,62,-2,63,52,53,54,55,56,57,58,59,60,61,-2,-2,-2,-1,-2,-2,-2,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-2,-2,-2,-2,63,-2,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-2,-2,-2,-2,-2],t.t)))) +s($,"nL","k9",()=>A.ih("^[\\-\\.0-9A-Z_a-z~]*$",!0)) +s($,"o_","ka",()=>A.jP(B.a3)) +s($,"o1","kb",()=>A.lT()) +s($,"nK","k8",()=>A.iW(["A","ABBR","ACRONYM","ADDRESS","AREA","ARTICLE","ASIDE","AUDIO","B","BDI","BDO","BIG","BLOCKQUOTE","BR","BUTTON","CANVAS","CAPTION","CENTER","CITE","CODE","COL","COLGROUP","COMMAND","DATA","DATALIST","DD","DEL","DETAILS","DFN","DIR","DIV","DL","DT","EM","FIELDSET","FIGCAPTION","FIGURE","FONT","FOOTER","FORM","H1","H2","H3","H4","H5","H6","HEADER","HGROUP","HR","I","IFRAME","IMG","INPUT","INS","KBD","LABEL","LEGEND","LI","MAP","MARK","MENU","METER","NAV","NOBR","OL","OPTGROUP","OPTION","OUTPUT","P","PRE","PROGRESS","Q","S","SAMP","SECTION","SELECT","SMALL","SOURCE","SPAN","STRIKE","STRONG","SUB","SUMMARY","SUP","TABLE","TBODY","TD","TEXTAREA","TFOOT","TH","THEAD","TIME","TR","TRACK","TT","U","UL","VAR","VIDEO","WBR"],t.N)) +s($,"n9","jU",()=>A.ih("^\\S+$",!0)) +s($,"o0","cu",()=>new A.hL().$0())})();(function nativeSupport(){!function(){var s=function(a){var m={} +m[a]=1 +return Object.keys(hunkHelpers.convertToFastObject(m))[0]} +v.getIsolateTag=function(a){return s("___dart_"+a+v.isolateTag)} +var r="___dart_isolate_tags_" +var q=Object[r]||(Object[r]=Object.create(null)) +var p="_ZxYxX" +for(var o=0;;o++){var n=s(p+"_"+o+"_") +if(!(n in q)){q[n]=1 +v.isolateTag=n +break}}v.dispatchPropertyName=v.getIsolateTag("dispatch_record")}() +hunkHelpers.setOrUpdateInterceptorsByTag({WebGL:J.bd,AnimationEffectReadOnly:J.a,AnimationEffectTiming:J.a,AnimationEffectTimingReadOnly:J.a,AnimationTimeline:J.a,AnimationWorkletGlobalScope:J.a,AuthenticatorAssertionResponse:J.a,AuthenticatorAttestationResponse:J.a,AuthenticatorResponse:J.a,BackgroundFetchFetch:J.a,BackgroundFetchManager:J.a,BackgroundFetchSettledFetch:J.a,BarProp:J.a,BarcodeDetector:J.a,BluetoothRemoteGATTDescriptor:J.a,Body:J.a,BudgetState:J.a,CacheStorage:J.a,CanvasGradient:J.a,CanvasPattern:J.a,CanvasRenderingContext2D:J.a,Client:J.a,Clients:J.a,CookieStore:J.a,Coordinates:J.a,Credential:J.a,CredentialUserData:J.a,CredentialsContainer:J.a,Crypto:J.a,CryptoKey:J.a,CSS:J.a,CSSVariableReferenceValue:J.a,CustomElementRegistry:J.a,DataTransfer:J.a,DataTransferItem:J.a,DeprecatedStorageInfo:J.a,DeprecatedStorageQuota:J.a,DeprecationReport:J.a,DetectedBarcode:J.a,DetectedFace:J.a,DetectedText:J.a,DeviceAcceleration:J.a,DeviceRotationRate:J.a,DirectoryEntry:J.a,webkitFileSystemDirectoryEntry:J.a,FileSystemDirectoryEntry:J.a,DirectoryReader:J.a,WebKitDirectoryReader:J.a,webkitFileSystemDirectoryReader:J.a,FileSystemDirectoryReader:J.a,DocumentOrShadowRoot:J.a,DocumentTimeline:J.a,DOMError:J.a,DOMImplementation:J.a,Iterator:J.a,DOMMatrix:J.a,DOMMatrixReadOnly:J.a,DOMParser:J.a,DOMPoint:J.a,DOMPointReadOnly:J.a,DOMQuad:J.a,DOMStringMap:J.a,Entry:J.a,webkitFileSystemEntry:J.a,FileSystemEntry:J.a,External:J.a,FaceDetector:J.a,FederatedCredential:J.a,FileEntry:J.a,webkitFileSystemFileEntry:J.a,FileSystemFileEntry:J.a,DOMFileSystem:J.a,WebKitFileSystem:J.a,webkitFileSystem:J.a,FileSystem:J.a,FontFace:J.a,FontFaceSource:J.a,FormData:J.a,GamepadButton:J.a,GamepadPose:J.a,Geolocation:J.a,Position:J.a,GeolocationPosition:J.a,Headers:J.a,HTMLHyperlinkElementUtils:J.a,IdleDeadline:J.a,ImageBitmap:J.a,ImageBitmapRenderingContext:J.a,ImageCapture:J.a,ImageData:J.a,InputDeviceCapabilities:J.a,IntersectionObserver:J.a,IntersectionObserverEntry:J.a,InterventionReport:J.a,KeyframeEffect:J.a,KeyframeEffectReadOnly:J.a,MediaCapabilities:J.a,MediaCapabilitiesInfo:J.a,MediaDeviceInfo:J.a,MediaError:J.a,MediaKeyStatusMap:J.a,MediaKeySystemAccess:J.a,MediaKeys:J.a,MediaKeysPolicy:J.a,MediaMetadata:J.a,MediaSession:J.a,MediaSettingsRange:J.a,MemoryInfo:J.a,MessageChannel:J.a,Metadata:J.a,MutationObserver:J.a,WebKitMutationObserver:J.a,MutationRecord:J.a,NavigationPreloadManager:J.a,Navigator:J.a,NavigatorAutomationInformation:J.a,NavigatorConcurrentHardware:J.a,NavigatorCookies:J.a,NavigatorUserMediaError:J.a,NodeFilter:J.a,NodeIterator:J.a,NonDocumentTypeChildNode:J.a,NonElementParentNode:J.a,NoncedElement:J.a,OffscreenCanvasRenderingContext2D:J.a,OverconstrainedError:J.a,PaintRenderingContext2D:J.a,PaintSize:J.a,PaintWorkletGlobalScope:J.a,PasswordCredential:J.a,Path2D:J.a,PaymentAddress:J.a,PaymentInstruments:J.a,PaymentManager:J.a,PaymentResponse:J.a,PerformanceEntry:J.a,PerformanceLongTaskTiming:J.a,PerformanceMark:J.a,PerformanceMeasure:J.a,PerformanceNavigation:J.a,PerformanceNavigationTiming:J.a,PerformanceObserver:J.a,PerformanceObserverEntryList:J.a,PerformancePaintTiming:J.a,PerformanceResourceTiming:J.a,PerformanceServerTiming:J.a,PerformanceTiming:J.a,Permissions:J.a,PhotoCapabilities:J.a,PositionError:J.a,GeolocationPositionError:J.a,Presentation:J.a,PresentationReceiver:J.a,PublicKeyCredential:J.a,PushManager:J.a,PushMessageData:J.a,PushSubscription:J.a,PushSubscriptionOptions:J.a,Range:J.a,RelatedApplication:J.a,ReportBody:J.a,ReportingObserver:J.a,ResizeObserver:J.a,ResizeObserverEntry:J.a,RTCCertificate:J.a,RTCIceCandidate:J.a,mozRTCIceCandidate:J.a,RTCLegacyStatsReport:J.a,RTCRtpContributingSource:J.a,RTCRtpReceiver:J.a,RTCRtpSender:J.a,RTCSessionDescription:J.a,mozRTCSessionDescription:J.a,RTCStatsResponse:J.a,Screen:J.a,ScrollState:J.a,ScrollTimeline:J.a,Selection:J.a,SharedArrayBuffer:J.a,SpeechRecognitionAlternative:J.a,SpeechSynthesisVoice:J.a,StaticRange:J.a,StorageManager:J.a,StyleMedia:J.a,StylePropertyMap:J.a,StylePropertyMapReadonly:J.a,SyncManager:J.a,TaskAttributionTiming:J.a,TextDetector:J.a,TextMetrics:J.a,TrackDefault:J.a,TreeWalker:J.a,TrustedHTML:J.a,TrustedScriptURL:J.a,TrustedURL:J.a,UnderlyingSourceBase:J.a,URLSearchParams:J.a,VRCoordinateSystem:J.a,VRDisplayCapabilities:J.a,VREyeParameters:J.a,VRFrameData:J.a,VRFrameOfReference:J.a,VRPose:J.a,VRStageBounds:J.a,VRStageBoundsPoint:J.a,VRStageParameters:J.a,ValidityState:J.a,VideoPlaybackQuality:J.a,VideoTrack:J.a,VTTRegion:J.a,WindowClient:J.a,WorkletAnimation:J.a,WorkletGlobalScope:J.a,XPathEvaluator:J.a,XPathExpression:J.a,XPathNSResolver:J.a,XPathResult:J.a,XMLSerializer:J.a,XSLTProcessor:J.a,Bluetooth:J.a,BluetoothCharacteristicProperties:J.a,BluetoothRemoteGATTServer:J.a,BluetoothRemoteGATTService:J.a,BluetoothUUID:J.a,BudgetService:J.a,Cache:J.a,DOMFileSystemSync:J.a,DirectoryEntrySync:J.a,DirectoryReaderSync:J.a,EntrySync:J.a,FileEntrySync:J.a,FileReaderSync:J.a,FileWriterSync:J.a,HTMLAllCollection:J.a,Mojo:J.a,MojoHandle:J.a,MojoWatcher:J.a,NFC:J.a,PagePopupController:J.a,Report:J.a,Request:J.a,Response:J.a,SubtleCrypto:J.a,USBAlternateInterface:J.a,USBConfiguration:J.a,USBDevice:J.a,USBEndpoint:J.a,USBInTransferResult:J.a,USBInterface:J.a,USBIsochronousInTransferPacket:J.a,USBIsochronousInTransferResult:J.a,USBIsochronousOutTransferPacket:J.a,USBIsochronousOutTransferResult:J.a,USBOutTransferResult:J.a,WorkerLocation:J.a,WorkerNavigator:J.a,Worklet:J.a,IDBCursor:J.a,IDBCursorWithValue:J.a,IDBFactory:J.a,IDBIndex:J.a,IDBKeyRange:J.a,IDBObjectStore:J.a,IDBObservation:J.a,IDBObserver:J.a,IDBObserverChanges:J.a,SVGAngle:J.a,SVGAnimatedAngle:J.a,SVGAnimatedBoolean:J.a,SVGAnimatedEnumeration:J.a,SVGAnimatedInteger:J.a,SVGAnimatedLength:J.a,SVGAnimatedLengthList:J.a,SVGAnimatedNumber:J.a,SVGAnimatedNumberList:J.a,SVGAnimatedPreserveAspectRatio:J.a,SVGAnimatedRect:J.a,SVGAnimatedString:J.a,SVGAnimatedTransformList:J.a,SVGMatrix:J.a,SVGPoint:J.a,SVGPreserveAspectRatio:J.a,SVGRect:J.a,SVGUnitTypes:J.a,AudioListener:J.a,AudioParam:J.a,AudioTrack:J.a,AudioWorkletGlobalScope:J.a,AudioWorkletProcessor:J.a,PeriodicWave:J.a,WebGLActiveInfo:J.a,ANGLEInstancedArrays:J.a,ANGLE_instanced_arrays:J.a,WebGLBuffer:J.a,WebGLCanvas:J.a,WebGLColorBufferFloat:J.a,WebGLCompressedTextureASTC:J.a,WebGLCompressedTextureATC:J.a,WEBGL_compressed_texture_atc:J.a,WebGLCompressedTextureETC1:J.a,WEBGL_compressed_texture_etc1:J.a,WebGLCompressedTextureETC:J.a,WebGLCompressedTexturePVRTC:J.a,WEBGL_compressed_texture_pvrtc:J.a,WebGLCompressedTextureS3TC:J.a,WEBGL_compressed_texture_s3tc:J.a,WebGLCompressedTextureS3TCsRGB:J.a,WebGLDebugRendererInfo:J.a,WEBGL_debug_renderer_info:J.a,WebGLDebugShaders:J.a,WEBGL_debug_shaders:J.a,WebGLDepthTexture:J.a,WEBGL_depth_texture:J.a,WebGLDrawBuffers:J.a,WEBGL_draw_buffers:J.a,EXTsRGB:J.a,EXT_sRGB:J.a,EXTBlendMinMax:J.a,EXT_blend_minmax:J.a,EXTColorBufferFloat:J.a,EXTColorBufferHalfFloat:J.a,EXTDisjointTimerQuery:J.a,EXTDisjointTimerQueryWebGL2:J.a,EXTFragDepth:J.a,EXT_frag_depth:J.a,EXTShaderTextureLOD:J.a,EXT_shader_texture_lod:J.a,EXTTextureFilterAnisotropic:J.a,EXT_texture_filter_anisotropic:J.a,WebGLFramebuffer:J.a,WebGLGetBufferSubDataAsync:J.a,WebGLLoseContext:J.a,WebGLExtensionLoseContext:J.a,WEBGL_lose_context:J.a,OESElementIndexUint:J.a,OES_element_index_uint:J.a,OESStandardDerivatives:J.a,OES_standard_derivatives:J.a,OESTextureFloat:J.a,OES_texture_float:J.a,OESTextureFloatLinear:J.a,OES_texture_float_linear:J.a,OESTextureHalfFloat:J.a,OES_texture_half_float:J.a,OESTextureHalfFloatLinear:J.a,OES_texture_half_float_linear:J.a,OESVertexArrayObject:J.a,OES_vertex_array_object:J.a,WebGLProgram:J.a,WebGLQuery:J.a,WebGLRenderbuffer:J.a,WebGLRenderingContext:J.a,WebGL2RenderingContext:J.a,WebGLSampler:J.a,WebGLShader:J.a,WebGLShaderPrecisionFormat:J.a,WebGLSync:J.a,WebGLTexture:J.a,WebGLTimerQueryEXT:J.a,WebGLTransformFeedback:J.a,WebGLUniformLocation:J.a,WebGLVertexArrayObject:J.a,WebGLVertexArrayObjectOES:J.a,WebGL2RenderingContextBase:J.a,ArrayBuffer:A.dc,ArrayBufferView:A.bM,DataView:A.dd,Float32Array:A.de,Float64Array:A.df,Int16Array:A.dg,Int32Array:A.dh,Int8Array:A.di,Uint16Array:A.dj,Uint32Array:A.dk,Uint8ClampedArray:A.bN,CanvasPixelArray:A.bN,Uint8Array:A.bO,HTMLAudioElement:A.l,HTMLBRElement:A.l,HTMLButtonElement:A.l,HTMLCanvasElement:A.l,HTMLContentElement:A.l,HTMLDListElement:A.l,HTMLDataElement:A.l,HTMLDataListElement:A.l,HTMLDetailsElement:A.l,HTMLDialogElement:A.l,HTMLDivElement:A.l,HTMLEmbedElement:A.l,HTMLFieldSetElement:A.l,HTMLHRElement:A.l,HTMLHeadElement:A.l,HTMLHeadingElement:A.l,HTMLHtmlElement:A.l,HTMLIFrameElement:A.l,HTMLImageElement:A.l,HTMLLIElement:A.l,HTMLLabelElement:A.l,HTMLLegendElement:A.l,HTMLLinkElement:A.l,HTMLMapElement:A.l,HTMLMediaElement:A.l,HTMLMenuElement:A.l,HTMLMetaElement:A.l,HTMLMeterElement:A.l,HTMLModElement:A.l,HTMLOListElement:A.l,HTMLObjectElement:A.l,HTMLOptGroupElement:A.l,HTMLOptionElement:A.l,HTMLOutputElement:A.l,HTMLParagraphElement:A.l,HTMLParamElement:A.l,HTMLPictureElement:A.l,HTMLPreElement:A.l,HTMLProgressElement:A.l,HTMLQuoteElement:A.l,HTMLScriptElement:A.l,HTMLShadowElement:A.l,HTMLSlotElement:A.l,HTMLSourceElement:A.l,HTMLSpanElement:A.l,HTMLStyleElement:A.l,HTMLTableCaptionElement:A.l,HTMLTableCellElement:A.l,HTMLTableDataCellElement:A.l,HTMLTableHeaderCellElement:A.l,HTMLTableColElement:A.l,HTMLTimeElement:A.l,HTMLTitleElement:A.l,HTMLTrackElement:A.l,HTMLUListElement:A.l,HTMLUnknownElement:A.l,HTMLVideoElement:A.l,HTMLDirectoryElement:A.l,HTMLFontElement:A.l,HTMLFrameElement:A.l,HTMLFrameSetElement:A.l,HTMLMarqueeElement:A.l,HTMLElement:A.l,AccessibleNodeList:A.cw,HTMLAnchorElement:A.cx,HTMLAreaElement:A.cy,HTMLBaseElement:A.ba,Blob:A.bu,HTMLBodyElement:A.aO,CDATASection:A.a0,CharacterData:A.a0,Comment:A.a0,ProcessingInstruction:A.a0,Text:A.a0,CSSPerspective:A.cO,CSSCharsetRule:A.w,CSSConditionRule:A.w,CSSFontFaceRule:A.w,CSSGroupingRule:A.w,CSSImportRule:A.w,CSSKeyframeRule:A.w,MozCSSKeyframeRule:A.w,WebKitCSSKeyframeRule:A.w,CSSKeyframesRule:A.w,MozCSSKeyframesRule:A.w,WebKitCSSKeyframesRule:A.w,CSSMediaRule:A.w,CSSNamespaceRule:A.w,CSSPageRule:A.w,CSSRule:A.w,CSSStyleRule:A.w,CSSSupportsRule:A.w,CSSViewportRule:A.w,CSSStyleDeclaration:A.bc,MSStyleCSSProperties:A.bc,CSS2Properties:A.bc,CSSImageValue:A.N,CSSKeywordValue:A.N,CSSNumericValue:A.N,CSSPositionValue:A.N,CSSResourceValue:A.N,CSSUnitValue:A.N,CSSURLImageValue:A.N,CSSStyleValue:A.N,CSSMatrixComponent:A.X,CSSRotation:A.X,CSSScale:A.X,CSSSkew:A.X,CSSTranslation:A.X,CSSTransformComponent:A.X,CSSTransformValue:A.cP,CSSUnparsedValue:A.cQ,DataTransferItemList:A.cR,XMLDocument:A.aS,Document:A.aS,DOMException:A.cS,ClientRectList:A.bw,DOMRectList:A.bw,DOMRectReadOnly:A.bx,DOMStringList:A.cT,DOMTokenList:A.cU,MathMLElement:A.q,Element:A.q,AbortPaymentEvent:A.h,AnimationEvent:A.h,AnimationPlaybackEvent:A.h,ApplicationCacheErrorEvent:A.h,BackgroundFetchClickEvent:A.h,BackgroundFetchEvent:A.h,BackgroundFetchFailEvent:A.h,BackgroundFetchedEvent:A.h,BeforeInstallPromptEvent:A.h,BeforeUnloadEvent:A.h,BlobEvent:A.h,CanMakePaymentEvent:A.h,ClipboardEvent:A.h,CloseEvent:A.h,CustomEvent:A.h,DeviceMotionEvent:A.h,DeviceOrientationEvent:A.h,ErrorEvent:A.h,ExtendableEvent:A.h,ExtendableMessageEvent:A.h,FetchEvent:A.h,FontFaceSetLoadEvent:A.h,ForeignFetchEvent:A.h,GamepadEvent:A.h,HashChangeEvent:A.h,InstallEvent:A.h,MediaEncryptedEvent:A.h,MediaKeyMessageEvent:A.h,MediaQueryListEvent:A.h,MediaStreamEvent:A.h,MediaStreamTrackEvent:A.h,MessageEvent:A.h,MIDIConnectionEvent:A.h,MIDIMessageEvent:A.h,MutationEvent:A.h,NotificationEvent:A.h,PageTransitionEvent:A.h,PaymentRequestEvent:A.h,PaymentRequestUpdateEvent:A.h,PopStateEvent:A.h,PresentationConnectionAvailableEvent:A.h,PresentationConnectionCloseEvent:A.h,ProgressEvent:A.h,PromiseRejectionEvent:A.h,PushEvent:A.h,RTCDataChannelEvent:A.h,RTCDTMFToneChangeEvent:A.h,RTCPeerConnectionIceEvent:A.h,RTCTrackEvent:A.h,SecurityPolicyViolationEvent:A.h,SensorErrorEvent:A.h,SpeechRecognitionError:A.h,SpeechRecognitionEvent:A.h,SpeechSynthesisEvent:A.h,StorageEvent:A.h,SyncEvent:A.h,TrackEvent:A.h,TransitionEvent:A.h,WebKitTransitionEvent:A.h,VRDeviceEvent:A.h,VRDisplayEvent:A.h,VRSessionEvent:A.h,MojoInterfaceRequestEvent:A.h,ResourceProgressEvent:A.h,USBConnectionEvent:A.h,IDBVersionChangeEvent:A.h,AudioProcessingEvent:A.h,OfflineAudioCompletionEvent:A.h,WebGLContextEvent:A.h,Event:A.h,InputEvent:A.h,SubmitEvent:A.h,AbsoluteOrientationSensor:A.c,Accelerometer:A.c,AccessibleNode:A.c,AmbientLightSensor:A.c,Animation:A.c,ApplicationCache:A.c,DOMApplicationCache:A.c,OfflineResourceList:A.c,BackgroundFetchRegistration:A.c,BatteryManager:A.c,BroadcastChannel:A.c,CanvasCaptureMediaStreamTrack:A.c,DedicatedWorkerGlobalScope:A.c,EventSource:A.c,FileReader:A.c,FontFaceSet:A.c,Gyroscope:A.c,XMLHttpRequest:A.c,XMLHttpRequestEventTarget:A.c,XMLHttpRequestUpload:A.c,LinearAccelerationSensor:A.c,Magnetometer:A.c,MediaDevices:A.c,MediaKeySession:A.c,MediaQueryList:A.c,MediaRecorder:A.c,MediaSource:A.c,MediaStream:A.c,MediaStreamTrack:A.c,MessagePort:A.c,MIDIAccess:A.c,MIDIInput:A.c,MIDIOutput:A.c,MIDIPort:A.c,NetworkInformation:A.c,Notification:A.c,OffscreenCanvas:A.c,OrientationSensor:A.c,PaymentRequest:A.c,Performance:A.c,PermissionStatus:A.c,PresentationAvailability:A.c,PresentationConnection:A.c,PresentationConnectionList:A.c,PresentationRequest:A.c,RelativeOrientationSensor:A.c,RemotePlayback:A.c,RTCDataChannel:A.c,DataChannel:A.c,RTCDTMFSender:A.c,RTCPeerConnection:A.c,webkitRTCPeerConnection:A.c,mozRTCPeerConnection:A.c,ScreenOrientation:A.c,Sensor:A.c,ServiceWorker:A.c,ServiceWorkerContainer:A.c,ServiceWorkerGlobalScope:A.c,ServiceWorkerRegistration:A.c,SharedWorker:A.c,SharedWorkerGlobalScope:A.c,SpeechRecognition:A.c,webkitSpeechRecognition:A.c,SpeechSynthesis:A.c,SpeechSynthesisUtterance:A.c,VR:A.c,VRDevice:A.c,VRDisplay:A.c,VRSession:A.c,VisualViewport:A.c,WebSocket:A.c,Window:A.c,DOMWindow:A.c,Worker:A.c,WorkerGlobalScope:A.c,WorkerPerformance:A.c,BluetoothDevice:A.c,BluetoothRemoteGATTCharacteristic:A.c,Clipboard:A.c,MojoInterfaceInterceptor:A.c,USB:A.c,IDBDatabase:A.c,IDBOpenDBRequest:A.c,IDBVersionChangeRequest:A.c,IDBRequest:A.c,IDBTransaction:A.c,AnalyserNode:A.c,RealtimeAnalyserNode:A.c,AudioBufferSourceNode:A.c,AudioDestinationNode:A.c,AudioNode:A.c,AudioScheduledSourceNode:A.c,AudioWorkletNode:A.c,BiquadFilterNode:A.c,ChannelMergerNode:A.c,AudioChannelMerger:A.c,ChannelSplitterNode:A.c,AudioChannelSplitter:A.c,ConstantSourceNode:A.c,ConvolverNode:A.c,DelayNode:A.c,DynamicsCompressorNode:A.c,GainNode:A.c,AudioGainNode:A.c,IIRFilterNode:A.c,MediaElementAudioSourceNode:A.c,MediaStreamAudioDestinationNode:A.c,MediaStreamAudioSourceNode:A.c,OscillatorNode:A.c,Oscillator:A.c,PannerNode:A.c,AudioPannerNode:A.c,webkitAudioPannerNode:A.c,ScriptProcessorNode:A.c,JavaScriptAudioNode:A.c,StereoPannerNode:A.c,WaveShaperNode:A.c,EventTarget:A.c,File:A.a1,FileList:A.cV,FileWriter:A.cW,HTMLFormElement:A.cY,Gamepad:A.a2,History:A.cZ,HTMLCollection:A.aU,HTMLFormControlsCollection:A.aU,HTMLOptionsCollection:A.aU,HTMLDocument:A.bD,HTMLInputElement:A.aD,KeyboardEvent:A.bf,Location:A.d7,MediaList:A.d8,MIDIInputMap:A.d9,MIDIOutputMap:A.da,MimeType:A.a4,MimeTypeArray:A.db,DocumentFragment:A.m,ShadowRoot:A.m,DocumentType:A.m,Node:A.m,NodeList:A.bP,RadioNodeList:A.bP,Plugin:A.a6,PluginArray:A.dq,RTCStatsReport:A.dt,HTMLSelectElement:A.dv,SourceBuffer:A.a7,SourceBufferList:A.dx,SpeechGrammar:A.a8,SpeechGrammarList:A.dy,SpeechRecognitionResult:A.a9,Storage:A.dB,CSSStyleSheet:A.U,StyleSheet:A.U,HTMLTableElement:A.bU,HTMLTableRowElement:A.dD,HTMLTableSectionElement:A.dE,HTMLTemplateElement:A.bj,HTMLTextAreaElement:A.aY,TextTrack:A.aa,TextTrackCue:A.V,VTTCue:A.V,TextTrackCueList:A.dG,TextTrackList:A.dH,TimeRanges:A.dI,Touch:A.ab,TouchList:A.dJ,TrackDefaultList:A.dK,CompositionEvent:A.P,FocusEvent:A.P,MouseEvent:A.P,DragEvent:A.P,PointerEvent:A.P,TextEvent:A.P,TouchEvent:A.P,WheelEvent:A.P,UIEvent:A.P,URL:A.dR,VideoTrackList:A.dS,Attr:A.bm,CSSRuleList:A.dZ,ClientRect:A.bX,DOMRect:A.bX,GamepadList:A.ec,NamedNodeMap:A.c2,MozNamedAttrMap:A.c2,SpeechRecognitionResultList:A.ez,StyleSheetList:A.eF,SVGLength:A.ah,SVGLengthList:A.d4,SVGNumber:A.al,SVGNumberList:A.dl,SVGPointList:A.dr,SVGScriptElement:A.bh,SVGStringList:A.dC,SVGAElement:A.j,SVGAnimateElement:A.j,SVGAnimateMotionElement:A.j,SVGAnimateTransformElement:A.j,SVGAnimationElement:A.j,SVGCircleElement:A.j,SVGClipPathElement:A.j,SVGDefsElement:A.j,SVGDescElement:A.j,SVGDiscardElement:A.j,SVGEllipseElement:A.j,SVGFEBlendElement:A.j,SVGFEColorMatrixElement:A.j,SVGFEComponentTransferElement:A.j,SVGFECompositeElement:A.j,SVGFEConvolveMatrixElement:A.j,SVGFEDiffuseLightingElement:A.j,SVGFEDisplacementMapElement:A.j,SVGFEDistantLightElement:A.j,SVGFEFloodElement:A.j,SVGFEFuncAElement:A.j,SVGFEFuncBElement:A.j,SVGFEFuncGElement:A.j,SVGFEFuncRElement:A.j,SVGFEGaussianBlurElement:A.j,SVGFEImageElement:A.j,SVGFEMergeElement:A.j,SVGFEMergeNodeElement:A.j,SVGFEMorphologyElement:A.j,SVGFEOffsetElement:A.j,SVGFEPointLightElement:A.j,SVGFESpecularLightingElement:A.j,SVGFESpotLightElement:A.j,SVGFETileElement:A.j,SVGFETurbulenceElement:A.j,SVGFilterElement:A.j,SVGForeignObjectElement:A.j,SVGGElement:A.j,SVGGeometryElement:A.j,SVGGraphicsElement:A.j,SVGImageElement:A.j,SVGLineElement:A.j,SVGLinearGradientElement:A.j,SVGMarkerElement:A.j,SVGMaskElement:A.j,SVGMetadataElement:A.j,SVGPathElement:A.j,SVGPatternElement:A.j,SVGPolygonElement:A.j,SVGPolylineElement:A.j,SVGRadialGradientElement:A.j,SVGRectElement:A.j,SVGSetElement:A.j,SVGStopElement:A.j,SVGStyleElement:A.j,SVGSVGElement:A.j,SVGSwitchElement:A.j,SVGSymbolElement:A.j,SVGTSpanElement:A.j,SVGTextContentElement:A.j,SVGTextElement:A.j,SVGTextPathElement:A.j,SVGTextPositioningElement:A.j,SVGTitleElement:A.j,SVGUseElement:A.j,SVGViewElement:A.j,SVGGradientElement:A.j,SVGComponentTransferFunctionElement:A.j,SVGFEDropShadowElement:A.j,SVGMPathElement:A.j,SVGElement:A.j,SVGTransform:A.ao,SVGTransformList:A.dL,AudioBuffer:A.cD,AudioParamMap:A.cE,AudioTrackList:A.cF,AudioContext:A.az,webkitAudioContext:A.az,BaseAudioContext:A.az,OfflineAudioContext:A.dm}) +hunkHelpers.setOrUpdateLeafTags({WebGL:true,AnimationEffectReadOnly:true,AnimationEffectTiming:true,AnimationEffectTimingReadOnly:true,AnimationTimeline:true,AnimationWorkletGlobalScope:true,AuthenticatorAssertionResponse:true,AuthenticatorAttestationResponse:true,AuthenticatorResponse:true,BackgroundFetchFetch:true,BackgroundFetchManager:true,BackgroundFetchSettledFetch:true,BarProp:true,BarcodeDetector:true,BluetoothRemoteGATTDescriptor:true,Body:true,BudgetState:true,CacheStorage:true,CanvasGradient:true,CanvasPattern:true,CanvasRenderingContext2D:true,Client:true,Clients:true,CookieStore:true,Coordinates:true,Credential:true,CredentialUserData:true,CredentialsContainer:true,Crypto:true,CryptoKey:true,CSS:true,CSSVariableReferenceValue:true,CustomElementRegistry:true,DataTransfer:true,DataTransferItem:true,DeprecatedStorageInfo:true,DeprecatedStorageQuota:true,DeprecationReport:true,DetectedBarcode:true,DetectedFace:true,DetectedText:true,DeviceAcceleration:true,DeviceRotationRate:true,DirectoryEntry:true,webkitFileSystemDirectoryEntry:true,FileSystemDirectoryEntry:true,DirectoryReader:true,WebKitDirectoryReader:true,webkitFileSystemDirectoryReader:true,FileSystemDirectoryReader:true,DocumentOrShadowRoot:true,DocumentTimeline:true,DOMError:true,DOMImplementation:true,Iterator:true,DOMMatrix:true,DOMMatrixReadOnly:true,DOMParser:true,DOMPoint:true,DOMPointReadOnly:true,DOMQuad:true,DOMStringMap:true,Entry:true,webkitFileSystemEntry:true,FileSystemEntry:true,External:true,FaceDetector:true,FederatedCredential:true,FileEntry:true,webkitFileSystemFileEntry:true,FileSystemFileEntry:true,DOMFileSystem:true,WebKitFileSystem:true,webkitFileSystem:true,FileSystem:true,FontFace:true,FontFaceSource:true,FormData:true,GamepadButton:true,GamepadPose:true,Geolocation:true,Position:true,GeolocationPosition:true,Headers:true,HTMLHyperlinkElementUtils:true,IdleDeadline:true,ImageBitmap:true,ImageBitmapRenderingContext:true,ImageCapture:true,ImageData:true,InputDeviceCapabilities:true,IntersectionObserver:true,IntersectionObserverEntry:true,InterventionReport:true,KeyframeEffect:true,KeyframeEffectReadOnly:true,MediaCapabilities:true,MediaCapabilitiesInfo:true,MediaDeviceInfo:true,MediaError:true,MediaKeyStatusMap:true,MediaKeySystemAccess:true,MediaKeys:true,MediaKeysPolicy:true,MediaMetadata:true,MediaSession:true,MediaSettingsRange:true,MemoryInfo:true,MessageChannel:true,Metadata:true,MutationObserver:true,WebKitMutationObserver:true,MutationRecord:true,NavigationPreloadManager:true,Navigator:true,NavigatorAutomationInformation:true,NavigatorConcurrentHardware:true,NavigatorCookies:true,NavigatorUserMediaError:true,NodeFilter:true,NodeIterator:true,NonDocumentTypeChildNode:true,NonElementParentNode:true,NoncedElement:true,OffscreenCanvasRenderingContext2D:true,OverconstrainedError:true,PaintRenderingContext2D:true,PaintSize:true,PaintWorkletGlobalScope:true,PasswordCredential:true,Path2D:true,PaymentAddress:true,PaymentInstruments:true,PaymentManager:true,PaymentResponse:true,PerformanceEntry:true,PerformanceLongTaskTiming:true,PerformanceMark:true,PerformanceMeasure:true,PerformanceNavigation:true,PerformanceNavigationTiming:true,PerformanceObserver:true,PerformanceObserverEntryList:true,PerformancePaintTiming:true,PerformanceResourceTiming:true,PerformanceServerTiming:true,PerformanceTiming:true,Permissions:true,PhotoCapabilities:true,PositionError:true,GeolocationPositionError:true,Presentation:true,PresentationReceiver:true,PublicKeyCredential:true,PushManager:true,PushMessageData:true,PushSubscription:true,PushSubscriptionOptions:true,Range:true,RelatedApplication:true,ReportBody:true,ReportingObserver:true,ResizeObserver:true,ResizeObserverEntry:true,RTCCertificate:true,RTCIceCandidate:true,mozRTCIceCandidate:true,RTCLegacyStatsReport:true,RTCRtpContributingSource:true,RTCRtpReceiver:true,RTCRtpSender:true,RTCSessionDescription:true,mozRTCSessionDescription:true,RTCStatsResponse:true,Screen:true,ScrollState:true,ScrollTimeline:true,Selection:true,SharedArrayBuffer:true,SpeechRecognitionAlternative:true,SpeechSynthesisVoice:true,StaticRange:true,StorageManager:true,StyleMedia:true,StylePropertyMap:true,StylePropertyMapReadonly:true,SyncManager:true,TaskAttributionTiming:true,TextDetector:true,TextMetrics:true,TrackDefault:true,TreeWalker:true,TrustedHTML:true,TrustedScriptURL:true,TrustedURL:true,UnderlyingSourceBase:true,URLSearchParams:true,VRCoordinateSystem:true,VRDisplayCapabilities:true,VREyeParameters:true,VRFrameData:true,VRFrameOfReference:true,VRPose:true,VRStageBounds:true,VRStageBoundsPoint:true,VRStageParameters:true,ValidityState:true,VideoPlaybackQuality:true,VideoTrack:true,VTTRegion:true,WindowClient:true,WorkletAnimation:true,WorkletGlobalScope:true,XPathEvaluator:true,XPathExpression:true,XPathNSResolver:true,XPathResult:true,XMLSerializer:true,XSLTProcessor:true,Bluetooth:true,BluetoothCharacteristicProperties:true,BluetoothRemoteGATTServer:true,BluetoothRemoteGATTService:true,BluetoothUUID:true,BudgetService:true,Cache:true,DOMFileSystemSync:true,DirectoryEntrySync:true,DirectoryReaderSync:true,EntrySync:true,FileEntrySync:true,FileReaderSync:true,FileWriterSync:true,HTMLAllCollection:true,Mojo:true,MojoHandle:true,MojoWatcher:true,NFC:true,PagePopupController:true,Report:true,Request:true,Response:true,SubtleCrypto:true,USBAlternateInterface:true,USBConfiguration:true,USBDevice:true,USBEndpoint:true,USBInTransferResult:true,USBInterface:true,USBIsochronousInTransferPacket:true,USBIsochronousInTransferResult:true,USBIsochronousOutTransferPacket:true,USBIsochronousOutTransferResult:true,USBOutTransferResult:true,WorkerLocation:true,WorkerNavigator:true,Worklet:true,IDBCursor:true,IDBCursorWithValue:true,IDBFactory:true,IDBIndex:true,IDBKeyRange:true,IDBObjectStore:true,IDBObservation:true,IDBObserver:true,IDBObserverChanges:true,SVGAngle:true,SVGAnimatedAngle:true,SVGAnimatedBoolean:true,SVGAnimatedEnumeration:true,SVGAnimatedInteger:true,SVGAnimatedLength:true,SVGAnimatedLengthList:true,SVGAnimatedNumber:true,SVGAnimatedNumberList:true,SVGAnimatedPreserveAspectRatio:true,SVGAnimatedRect:true,SVGAnimatedString:true,SVGAnimatedTransformList:true,SVGMatrix:true,SVGPoint:true,SVGPreserveAspectRatio:true,SVGRect:true,SVGUnitTypes:true,AudioListener:true,AudioParam:true,AudioTrack:true,AudioWorkletGlobalScope:true,AudioWorkletProcessor:true,PeriodicWave:true,WebGLActiveInfo:true,ANGLEInstancedArrays:true,ANGLE_instanced_arrays:true,WebGLBuffer:true,WebGLCanvas:true,WebGLColorBufferFloat:true,WebGLCompressedTextureASTC:true,WebGLCompressedTextureATC:true,WEBGL_compressed_texture_atc:true,WebGLCompressedTextureETC1:true,WEBGL_compressed_texture_etc1:true,WebGLCompressedTextureETC:true,WebGLCompressedTexturePVRTC:true,WEBGL_compressed_texture_pvrtc:true,WebGLCompressedTextureS3TC:true,WEBGL_compressed_texture_s3tc:true,WebGLCompressedTextureS3TCsRGB:true,WebGLDebugRendererInfo:true,WEBGL_debug_renderer_info:true,WebGLDebugShaders:true,WEBGL_debug_shaders:true,WebGLDepthTexture:true,WEBGL_depth_texture:true,WebGLDrawBuffers:true,WEBGL_draw_buffers:true,EXTsRGB:true,EXT_sRGB:true,EXTBlendMinMax:true,EXT_blend_minmax:true,EXTColorBufferFloat:true,EXTColorBufferHalfFloat:true,EXTDisjointTimerQuery:true,EXTDisjointTimerQueryWebGL2:true,EXTFragDepth:true,EXT_frag_depth:true,EXTShaderTextureLOD:true,EXT_shader_texture_lod:true,EXTTextureFilterAnisotropic:true,EXT_texture_filter_anisotropic:true,WebGLFramebuffer:true,WebGLGetBufferSubDataAsync:true,WebGLLoseContext:true,WebGLExtensionLoseContext:true,WEBGL_lose_context:true,OESElementIndexUint:true,OES_element_index_uint:true,OESStandardDerivatives:true,OES_standard_derivatives:true,OESTextureFloat:true,OES_texture_float:true,OESTextureFloatLinear:true,OES_texture_float_linear:true,OESTextureHalfFloat:true,OES_texture_half_float:true,OESTextureHalfFloatLinear:true,OES_texture_half_float_linear:true,OESVertexArrayObject:true,OES_vertex_array_object:true,WebGLProgram:true,WebGLQuery:true,WebGLRenderbuffer:true,WebGLRenderingContext:true,WebGL2RenderingContext:true,WebGLSampler:true,WebGLShader:true,WebGLShaderPrecisionFormat:true,WebGLSync:true,WebGLTexture:true,WebGLTimerQueryEXT:true,WebGLTransformFeedback:true,WebGLUniformLocation:true,WebGLVertexArrayObject:true,WebGLVertexArrayObjectOES:true,WebGL2RenderingContextBase:true,ArrayBuffer:true,ArrayBufferView:false,DataView:true,Float32Array:true,Float64Array:true,Int16Array:true,Int32Array:true,Int8Array:true,Uint16Array:true,Uint32Array:true,Uint8ClampedArray:true,CanvasPixelArray:true,Uint8Array:false,HTMLAudioElement:true,HTMLBRElement:true,HTMLButtonElement:true,HTMLCanvasElement:true,HTMLContentElement:true,HTMLDListElement:true,HTMLDataElement:true,HTMLDataListElement:true,HTMLDetailsElement:true,HTMLDialogElement:true,HTMLDivElement:true,HTMLEmbedElement:true,HTMLFieldSetElement:true,HTMLHRElement:true,HTMLHeadElement:true,HTMLHeadingElement:true,HTMLHtmlElement:true,HTMLIFrameElement:true,HTMLImageElement:true,HTMLLIElement:true,HTMLLabelElement:true,HTMLLegendElement:true,HTMLLinkElement:true,HTMLMapElement:true,HTMLMediaElement:true,HTMLMenuElement:true,HTMLMetaElement:true,HTMLMeterElement:true,HTMLModElement:true,HTMLOListElement:true,HTMLObjectElement:true,HTMLOptGroupElement:true,HTMLOptionElement:true,HTMLOutputElement:true,HTMLParagraphElement:true,HTMLParamElement:true,HTMLPictureElement:true,HTMLPreElement:true,HTMLProgressElement:true,HTMLQuoteElement:true,HTMLScriptElement:true,HTMLShadowElement:true,HTMLSlotElement:true,HTMLSourceElement:true,HTMLSpanElement:true,HTMLStyleElement:true,HTMLTableCaptionElement:true,HTMLTableCellElement:true,HTMLTableDataCellElement:true,HTMLTableHeaderCellElement:true,HTMLTableColElement:true,HTMLTimeElement:true,HTMLTitleElement:true,HTMLTrackElement:true,HTMLUListElement:true,HTMLUnknownElement:true,HTMLVideoElement:true,HTMLDirectoryElement:true,HTMLFontElement:true,HTMLFrameElement:true,HTMLFrameSetElement:true,HTMLMarqueeElement:true,HTMLElement:false,AccessibleNodeList:true,HTMLAnchorElement:true,HTMLAreaElement:true,HTMLBaseElement:true,Blob:false,HTMLBodyElement:true,CDATASection:true,CharacterData:true,Comment:true,ProcessingInstruction:true,Text:true,CSSPerspective:true,CSSCharsetRule:true,CSSConditionRule:true,CSSFontFaceRule:true,CSSGroupingRule:true,CSSImportRule:true,CSSKeyframeRule:true,MozCSSKeyframeRule:true,WebKitCSSKeyframeRule:true,CSSKeyframesRule:true,MozCSSKeyframesRule:true,WebKitCSSKeyframesRule:true,CSSMediaRule:true,CSSNamespaceRule:true,CSSPageRule:true,CSSRule:true,CSSStyleRule:true,CSSSupportsRule:true,CSSViewportRule:true,CSSStyleDeclaration:true,MSStyleCSSProperties:true,CSS2Properties:true,CSSImageValue:true,CSSKeywordValue:true,CSSNumericValue:true,CSSPositionValue:true,CSSResourceValue:true,CSSUnitValue:true,CSSURLImageValue:true,CSSStyleValue:false,CSSMatrixComponent:true,CSSRotation:true,CSSScale:true,CSSSkew:true,CSSTranslation:true,CSSTransformComponent:false,CSSTransformValue:true,CSSUnparsedValue:true,DataTransferItemList:true,XMLDocument:true,Document:false,DOMException:true,ClientRectList:true,DOMRectList:true,DOMRectReadOnly:false,DOMStringList:true,DOMTokenList:true,MathMLElement:true,Element:false,AbortPaymentEvent:true,AnimationEvent:true,AnimationPlaybackEvent:true,ApplicationCacheErrorEvent:true,BackgroundFetchClickEvent:true,BackgroundFetchEvent:true,BackgroundFetchFailEvent:true,BackgroundFetchedEvent:true,BeforeInstallPromptEvent:true,BeforeUnloadEvent:true,BlobEvent:true,CanMakePaymentEvent:true,ClipboardEvent:true,CloseEvent:true,CustomEvent:true,DeviceMotionEvent:true,DeviceOrientationEvent:true,ErrorEvent:true,ExtendableEvent:true,ExtendableMessageEvent:true,FetchEvent:true,FontFaceSetLoadEvent:true,ForeignFetchEvent:true,GamepadEvent:true,HashChangeEvent:true,InstallEvent:true,MediaEncryptedEvent:true,MediaKeyMessageEvent:true,MediaQueryListEvent:true,MediaStreamEvent:true,MediaStreamTrackEvent:true,MessageEvent:true,MIDIConnectionEvent:true,MIDIMessageEvent:true,MutationEvent:true,NotificationEvent:true,PageTransitionEvent:true,PaymentRequestEvent:true,PaymentRequestUpdateEvent:true,PopStateEvent:true,PresentationConnectionAvailableEvent:true,PresentationConnectionCloseEvent:true,ProgressEvent:true,PromiseRejectionEvent:true,PushEvent:true,RTCDataChannelEvent:true,RTCDTMFToneChangeEvent:true,RTCPeerConnectionIceEvent:true,RTCTrackEvent:true,SecurityPolicyViolationEvent:true,SensorErrorEvent:true,SpeechRecognitionError:true,SpeechRecognitionEvent:true,SpeechSynthesisEvent:true,StorageEvent:true,SyncEvent:true,TrackEvent:true,TransitionEvent:true,WebKitTransitionEvent:true,VRDeviceEvent:true,VRDisplayEvent:true,VRSessionEvent:true,MojoInterfaceRequestEvent:true,ResourceProgressEvent:true,USBConnectionEvent:true,IDBVersionChangeEvent:true,AudioProcessingEvent:true,OfflineAudioCompletionEvent:true,WebGLContextEvent:true,Event:false,InputEvent:false,SubmitEvent:false,AbsoluteOrientationSensor:true,Accelerometer:true,AccessibleNode:true,AmbientLightSensor:true,Animation:true,ApplicationCache:true,DOMApplicationCache:true,OfflineResourceList:true,BackgroundFetchRegistration:true,BatteryManager:true,BroadcastChannel:true,CanvasCaptureMediaStreamTrack:true,DedicatedWorkerGlobalScope:true,EventSource:true,FileReader:true,FontFaceSet:true,Gyroscope:true,XMLHttpRequest:true,XMLHttpRequestEventTarget:true,XMLHttpRequestUpload:true,LinearAccelerationSensor:true,Magnetometer:true,MediaDevices:true,MediaKeySession:true,MediaQueryList:true,MediaRecorder:true,MediaSource:true,MediaStream:true,MediaStreamTrack:true,MessagePort:true,MIDIAccess:true,MIDIInput:true,MIDIOutput:true,MIDIPort:true,NetworkInformation:true,Notification:true,OffscreenCanvas:true,OrientationSensor:true,PaymentRequest:true,Performance:true,PermissionStatus:true,PresentationAvailability:true,PresentationConnection:true,PresentationConnectionList:true,PresentationRequest:true,RelativeOrientationSensor:true,RemotePlayback:true,RTCDataChannel:true,DataChannel:true,RTCDTMFSender:true,RTCPeerConnection:true,webkitRTCPeerConnection:true,mozRTCPeerConnection:true,ScreenOrientation:true,Sensor:true,ServiceWorker:true,ServiceWorkerContainer:true,ServiceWorkerGlobalScope:true,ServiceWorkerRegistration:true,SharedWorker:true,SharedWorkerGlobalScope:true,SpeechRecognition:true,webkitSpeechRecognition:true,SpeechSynthesis:true,SpeechSynthesisUtterance:true,VR:true,VRDevice:true,VRDisplay:true,VRSession:true,VisualViewport:true,WebSocket:true,Window:true,DOMWindow:true,Worker:true,WorkerGlobalScope:true,WorkerPerformance:true,BluetoothDevice:true,BluetoothRemoteGATTCharacteristic:true,Clipboard:true,MojoInterfaceInterceptor:true,USB:true,IDBDatabase:true,IDBOpenDBRequest:true,IDBVersionChangeRequest:true,IDBRequest:true,IDBTransaction:true,AnalyserNode:true,RealtimeAnalyserNode:true,AudioBufferSourceNode:true,AudioDestinationNode:true,AudioNode:true,AudioScheduledSourceNode:true,AudioWorkletNode:true,BiquadFilterNode:true,ChannelMergerNode:true,AudioChannelMerger:true,ChannelSplitterNode:true,AudioChannelSplitter:true,ConstantSourceNode:true,ConvolverNode:true,DelayNode:true,DynamicsCompressorNode:true,GainNode:true,AudioGainNode:true,IIRFilterNode:true,MediaElementAudioSourceNode:true,MediaStreamAudioDestinationNode:true,MediaStreamAudioSourceNode:true,OscillatorNode:true,Oscillator:true,PannerNode:true,AudioPannerNode:true,webkitAudioPannerNode:true,ScriptProcessorNode:true,JavaScriptAudioNode:true,StereoPannerNode:true,WaveShaperNode:true,EventTarget:false,File:true,FileList:true,FileWriter:true,HTMLFormElement:true,Gamepad:true,History:true,HTMLCollection:true,HTMLFormControlsCollection:true,HTMLOptionsCollection:true,HTMLDocument:true,HTMLInputElement:true,KeyboardEvent:true,Location:true,MediaList:true,MIDIInputMap:true,MIDIOutputMap:true,MimeType:true,MimeTypeArray:true,DocumentFragment:true,ShadowRoot:true,DocumentType:true,Node:false,NodeList:true,RadioNodeList:true,Plugin:true,PluginArray:true,RTCStatsReport:true,HTMLSelectElement:true,SourceBuffer:true,SourceBufferList:true,SpeechGrammar:true,SpeechGrammarList:true,SpeechRecognitionResult:true,Storage:true,CSSStyleSheet:true,StyleSheet:true,HTMLTableElement:true,HTMLTableRowElement:true,HTMLTableSectionElement:true,HTMLTemplateElement:true,HTMLTextAreaElement:true,TextTrack:true,TextTrackCue:true,VTTCue:true,TextTrackCueList:true,TextTrackList:true,TimeRanges:true,Touch:true,TouchList:true,TrackDefaultList:true,CompositionEvent:true,FocusEvent:true,MouseEvent:true,DragEvent:true,PointerEvent:true,TextEvent:true,TouchEvent:true,WheelEvent:true,UIEvent:false,URL:true,VideoTrackList:true,Attr:true,CSSRuleList:true,ClientRect:true,DOMRect:true,GamepadList:true,NamedNodeMap:true,MozNamedAttrMap:true,SpeechRecognitionResultList:true,StyleSheetList:true,SVGLength:true,SVGLengthList:true,SVGNumber:true,SVGNumberList:true,SVGPointList:true,SVGScriptElement:true,SVGStringList:true,SVGAElement:true,SVGAnimateElement:true,SVGAnimateMotionElement:true,SVGAnimateTransformElement:true,SVGAnimationElement:true,SVGCircleElement:true,SVGClipPathElement:true,SVGDefsElement:true,SVGDescElement:true,SVGDiscardElement:true,SVGEllipseElement:true,SVGFEBlendElement:true,SVGFEColorMatrixElement:true,SVGFEComponentTransferElement:true,SVGFECompositeElement:true,SVGFEConvolveMatrixElement:true,SVGFEDiffuseLightingElement:true,SVGFEDisplacementMapElement:true,SVGFEDistantLightElement:true,SVGFEFloodElement:true,SVGFEFuncAElement:true,SVGFEFuncBElement:true,SVGFEFuncGElement:true,SVGFEFuncRElement:true,SVGFEGaussianBlurElement:true,SVGFEImageElement:true,SVGFEMergeElement:true,SVGFEMergeNodeElement:true,SVGFEMorphologyElement:true,SVGFEOffsetElement:true,SVGFEPointLightElement:true,SVGFESpecularLightingElement:true,SVGFESpotLightElement:true,SVGFETileElement:true,SVGFETurbulenceElement:true,SVGFilterElement:true,SVGForeignObjectElement:true,SVGGElement:true,SVGGeometryElement:true,SVGGraphicsElement:true,SVGImageElement:true,SVGLineElement:true,SVGLinearGradientElement:true,SVGMarkerElement:true,SVGMaskElement:true,SVGMetadataElement:true,SVGPathElement:true,SVGPatternElement:true,SVGPolygonElement:true,SVGPolylineElement:true,SVGRadialGradientElement:true,SVGRectElement:true,SVGSetElement:true,SVGStopElement:true,SVGStyleElement:true,SVGSVGElement:true,SVGSwitchElement:true,SVGSymbolElement:true,SVGTSpanElement:true,SVGTextContentElement:true,SVGTextElement:true,SVGTextPathElement:true,SVGTextPositioningElement:true,SVGTitleElement:true,SVGUseElement:true,SVGViewElement:true,SVGGradientElement:true,SVGComponentTransferFunctionElement:true,SVGFEDropShadowElement:true,SVGMPathElement:true,SVGElement:false,SVGTransform:true,SVGTransformList:true,AudioBuffer:true,AudioParamMap:true,AudioTrackList:true,AudioContext:true,webkitAudioContext:true,BaseAudioContext:false,OfflineAudioContext:true}) +A.bg.$nativeSuperclassTag="ArrayBufferView" +A.c3.$nativeSuperclassTag="ArrayBufferView" +A.c4.$nativeSuperclassTag="ArrayBufferView" +A.bK.$nativeSuperclassTag="ArrayBufferView" +A.c5.$nativeSuperclassTag="ArrayBufferView" +A.c6.$nativeSuperclassTag="ArrayBufferView" +A.bL.$nativeSuperclassTag="ArrayBufferView" +A.c9.$nativeSuperclassTag="EventTarget" +A.ca.$nativeSuperclassTag="EventTarget" +A.cc.$nativeSuperclassTag="EventTarget" +A.cd.$nativeSuperclassTag="EventTarget"})() +Function.prototype.$0=function(){return this()} +Function.prototype.$1=function(a){return this(a)} +Function.prototype.$2=function(a,b){return this(a,b)} +Function.prototype.$3=function(a,b,c){return this(a,b,c)} +Function.prototype.$4=function(a,b,c,d){return this(a,b,c,d)} +Function.prototype.$1$1=function(a){return this(a)} +Function.prototype.$1$0=function(){return this()} +convertAllToFastObject(w) +convertToFastObject($);(function(a){if(typeof document==="undefined"){a(null) +return}if(typeof document.currentScript!="undefined"){a(document.currentScript) +return}var s=document.scripts +function onLoad(b){for(var q=0;q","JsLinkedHashMap_values_closure","LinkedHashMapKeyIterable.length","LinkedHashMapKeyIterable.iterator","LinkedHashMapKeyIterator","LinkedHashMapKeyIterator.current","LinkedHashMapKeyIterator.moveNext","initHooks.","JSSyntaxRegExp.toString","JSSyntaxRegExp._nativeGlobalVersion","JSSyntaxRegExp._execGlobal","_MatchImplementation.end","_MatchImplementation.[]","_AllMatchesIterator.current","_AllMatchesIterator.moveNext","JSSyntaxRegExp.isUnicode","NativeByteBuffer.runtimeType","NativeByteData.runtimeType","NativeTypedArray.length","NativeTypedArrayOfDouble.[]","NativeTypedArrayOfDouble.[]=","NativeTypedArrayOfInt.[]=","NativeFloat32List.runtimeType","NativeFloat64List.runtimeType","NativeInt16List.runtimeType","NativeInt16List.[]","NativeInt32List.runtimeType","NativeInt32List.[]","NativeInt8List.runtimeType","NativeInt8List.[]","NativeUint16List.runtimeType","NativeUint16List.[]","NativeUint32List.runtimeType","NativeUint32List.[]","NativeUint8ClampedList.runtimeType","NativeUint8ClampedList.length","NativeUint8ClampedList.[]","NativeUint8List.runtimeType","NativeUint8List.length","NativeUint8List.[]","Rti._eval","Rti._bind","_Type.toString","_Error.toString","_AsyncRun._initializeScheduleImmediate.internalCallback","_AsyncRun._initializeScheduleImmediate.","_AsyncRun._scheduleImmediateJsOverride.internalCallback","_AsyncRun._scheduleImmediateWithSetImmediate.internalCallback","_TimerImpl.internalCallback","_AsyncAwaitCompleter.complete","_AsyncAwaitCompleter.completeError","_awaitOnObject.","_wrapJsFunctionForAsync.","AsyncError.toString","_Completer.completeError","_Completer.completeError[function-entry$1]","_AsyncCompleter.complete","_FutureListener.matchesErrorTest","_FutureListener.handleError","_Future.then","_Future.then[function-entry$1]","_Future._thenAwait","_Future._setErrorObject","_Future._cloneResult","_Future._addListener","_Future._prependListeners","_Future._removeListeners","_Future._reverseListeners","_Future._chainForeignFuture","_Future._completeWithValue","_Future._completeError","_Future._asyncComplete","_Future._asyncCompleteWithValue","_Future._chainFuture","_Future._asyncCompleteError","_Future._addListener.","_Future._prependListeners.","_Future._chainForeignFuture.","_Future._asyncCompleteWithValue.","_Future._chainFuture.","_Future._asyncCompleteError.","_Future._propagateToListeners.handleWhenCompleteCallback","_FutureListener.handleWhenComplete","_Future._propagateToListeners.handleWhenCompleteCallback.","_Future._propagateToListeners.handleValueCallback","_FutureListener.handleValue","_Future._propagateToListeners.handleError","_FutureListener.hasErrorCallback","_rootHandleError.","_RootZone.runGuarded","_RootZone.bindCallbackGuarded","_RootZone.run","_RootZone.run[function-entry$1]","_RootZone.runUnary","_RootZone.runUnary[function-entry$2]","_RootZone.runBinary","_RootZone.runBinary[function-entry$3]","_RootZone.registerBinaryCallback","_RootZone.registerBinaryCallback[function-entry$1]","_RootZone.bindCallbackGuarded.","_LinkedHashSet.iterator","_LinkedHashSet.length","_LinkedHashSet.contains","_LinkedHashSet._contains","_LinkedHashSet.add","_LinkedHashSet._add","_LinkedHashSet.remove","_LinkedHashSet._remove","_LinkedHashSet._addHashTableEntry","_LinkedHashSet._removeHashTableEntry","_LinkedHashSet._modified","_LinkedHashSet._newLinkedCell","_LinkedHashSet._unlinkCell","_LinkedHashSet._computeHashCode","_LinkedHashSet._findBucketIndex","_LinkedHashSetIterator.current","_LinkedHashSetIterator.moveNext","ListBase.iterator","ListBase.elementAt","ListBase.cast","ListBase.fillRange","ListBase.toString","MapBase.forEach","MapBase.length","MapBase.toString","MapBase.mapToString.","_UnmodifiableMapMixin.[]=","MapView.[]","MapView.[]=","MapView.length","MapView.toString","SetBase.addAll","SetBase.toString","SetBase.join","SetBase.elementAt","_JsonMap.[]","_JsonMap.length","_JsonMap.keys","_JsonMap.[]=","_JsonMap.containsKey","_JsonMap.forEach","_JsonMap._computeKeys","_JsonMap._upgrade","_JsonMap._process","_JsonMapKeyIterable.length","_JsonMapKeyIterable.elementAt","_JsonMapKeyIterable.iterator","Utf8Decoder._decoder.","Utf8Decoder._decoderNonfatal.","Base64Codec.normalize","HtmlEscapeMode.toString","HtmlEscape.convert","HtmlEscape._convert","JsonCodec.decode","JsonCodec.decoder","Utf8Codec.encoder","Utf8Encoder.convert","_Utf8Encoder._writeReplacementCharacter","_Utf8Encoder._writeSurrogate","_Utf8Encoder._fillBuffer","Utf8Decoder.convert","_Utf8Decoder.convertGeneral","_Utf8Decoder._convertRecursive","_Utf8Decoder.decodeGeneral","Error.stackTrace","AssertionError.toString","ArgumentError._errorName","ArgumentError._errorExplanation","ArgumentError.toString","RangeError.invalidValue","RangeError._errorName","RangeError._errorExplanation","IndexError.invalidValue","IndexError._errorName","IndexError._errorExplanation","UnsupportedError.toString","UnimplementedError.toString","StateError.toString","ConcurrentModificationError.toString","OutOfMemoryError.toString","OutOfMemoryError.stackTrace","StackOverflowError.toString","StackOverflowError.stackTrace","_Exception.toString","FormatException.toString","Iterable.cast","Iterable.where","Iterable.length","Iterable.single","Iterable.elementAt","Iterable.toString","Null.hashCode","Null.toString","Object.hashCode","Object.==","Object.toString","Object.runtimeType","_StringStackTrace.toString","StringBuffer.length","StringBuffer.toString","Uri.splitQueryString.","Uri._parseIPv4Address.error","Uri.parseIPv6Address.error","Uri.parseIPv6Address.parseHex","_Uri._text","_Uri._initializeText","_Uri._writeAuthority","_Uri.hashCode","_Uri.queryParameters","_Uri.userInfo","_Uri.host","_Uri.port","_Uri.query","_Uri.fragment","_Uri.replace","_Uri.hasAuthority","_Uri.hasQuery","_Uri.hasFragment","_Uri.toString","_Uri.==","_Uri._makeQuery.writeParameter","_Uri._makeQuery.","UriData.uri","UriData._computeUri","UriData.toString","_createTables.build","_createTables.setChars","_createTables.setRange","_SimpleUri.hasAuthority","_SimpleUri.hasPort","_SimpleUri.hasQuery","_SimpleUri.hasFragment","_SimpleUri.scheme","_SimpleUri._computeScheme","_SimpleUri.userInfo","_SimpleUri.host","_SimpleUri.port","_SimpleUri.path","_SimpleUri.query","_SimpleUri.fragment","_SimpleUri.queryParameters","_SimpleUri.replace","_SimpleUri.hashCode","_SimpleUri.==","_SimpleUri.toString","AccessibleNodeList.length","AnchorElement.toString","AreaElement.toString","CharacterData.length","CssPerspective.length","CssStyleDeclaration.length","CssTransformValue.length","CssUnparsedValue.length","DataTransferItemList.length","DomException.toString","DomRectList.length","DomRectList.[]","DomRectList.[]=","DomRectList.elementAt","DomRectReadOnly.toString","DomRectReadOnly.==","DomRectReadOnly.hashCode","DomRectReadOnly._height","DomRectReadOnly.height","DomRectReadOnly._width","DomRectReadOnly.width","DomStringList.length","DomStringList.[]","DomStringList.[]=","DomStringList.elementAt","DomTokenList.length","Element.attributes","Element.classes","Element.toString","Element.createFragment","NodeValidatorBuilder.common","NodeValidatorBuilder.allowHtml5","NodeValidatorBuilder.allowTemplating","Element._canBeUsedToCreateContextualFragment","Element.createFragment[function-entry$1$treeSanitizer]","Element.innerHtml","Element.setInnerHtml","Element.html.","EventTarget.addEventListener","EventTarget._addEventListener","FileList.length","FileList.[]","FileList.[]=","FileList.elementAt","FileWriter.length","FormElement.length","History.length","HtmlCollection.length","HtmlCollection.[]","HtmlCollection.[]=","HtmlCollection.elementAt","Location.toString","MediaList.length","MidiInputMap.[]","MidiInputMap.forEach","MidiInputMap.keys","MidiInputMap.length","MidiInputMap.[]=","MidiInputMap.keys.","MidiOutputMap.[]","MidiOutputMap.forEach","MidiOutputMap.keys","MidiOutputMap.length","MidiOutputMap.[]=","MidiOutputMap.keys.","MimeTypeArray.length","MimeTypeArray.[]","MimeTypeArray.[]=","MimeTypeArray.elementAt","_ChildNodeListLazy.single","_ChildNodeListLazy.addAll","_ChildNodeListLazy.[]=","_ChildNodeListLazy.iterator","ImmutableListMixin.iterator","_ChildNodeListLazy.length","_ChildNodeListLazy.[]","Node.remove","Node.replaceWith","Node._clearChildren","Node.toString","Node._replaceChild","NodeList.length","NodeList.[]","NodeList.[]=","NodeList.elementAt","Plugin.length","PluginArray.length","PluginArray.[]","PluginArray.[]=","PluginArray.elementAt","RtcStatsReport.[]","RtcStatsReport.forEach","RtcStatsReport.keys","RtcStatsReport.length","RtcStatsReport.[]=","RtcStatsReport.keys.","SelectElement.length","SourceBufferList.length","SourceBufferList.[]","SourceBufferList.[]=","SourceBufferList.elementAt","SpeechGrammarList.length","SpeechGrammarList.[]","SpeechGrammarList.[]=","SpeechGrammarList.elementAt","SpeechRecognitionResult.length","Storage.[]","Storage.[]=","Storage.forEach","Storage.keys","Storage.length","Storage.keys.","TableElement.createFragment","TableRowElement.createFragment","TableSectionElement.createFragment","TemplateElement.setInnerHtml","TextTrackCueList.length","TextTrackCueList.[]","TextTrackCueList.[]=","TextTrackCueList.elementAt","TextTrackList.length","TextTrackList.[]","TextTrackList.[]=","TextTrackList.elementAt","TimeRanges.length","TouchList.length","TouchList.[]","TouchList.[]=","TouchList.elementAt","TrackDefaultList.length","Url.toString","VideoTrackList.length","_CssRuleList.length","_CssRuleList.[]","_CssRuleList.[]=","_CssRuleList.elementAt","_DomRect.toString","_DomRect.==","_DomRect.hashCode","_DomRect._height","_DomRect.height","_DomRect._width","_DomRect.width","_GamepadList.length","_GamepadList.[]","_GamepadList.[]=","_GamepadList.elementAt","_NamedNodeMap.length","_NamedNodeMap.[]","_NamedNodeMap.[]=","_NamedNodeMap.elementAt","_SpeechRecognitionResultList.length","_SpeechRecognitionResultList.[]","_SpeechRecognitionResultList.[]=","_SpeechRecognitionResultList.elementAt","_StyleSheetList.length","_StyleSheetList.[]","_StyleSheetList.[]=","_StyleSheetList.elementAt","_AttributeMap.forEach","_ElementAttributeMap.[]","_AttributeMap.keys","_ElementAttributeMap.length","_DataAttributeMap.[]","_DataAttributeMap.[]=","_DataAttributeMap.forEach","_DataAttributeMap.keys","_DataAttributeMap.length","_DataAttributeMap._toCamelCase","_DataAttributeMap._toHyphenedName","_DataAttributeMap.forEach.","_DataAttributeMap.keys.","_ElementCssClassSet.readClasses","_ElementCssClassSet.writeClasses","_ElementCssClassSet.length","_ElementCssClassSet.add","_ElementCssClassSet.remove","_ElementCssClassSet.toggle","_ElementCssClassSet._toggle","_Html5NodeValidator.allowsElement","_Html5NodeValidator.allowsAttribute","NodeValidatorBuilder.allowsElement","NodeValidatorBuilder.allowsAttribute","NodeValidatorBuilder.allowsElement.","NodeValidatorBuilder.allowsAttribute.","_SimpleNodeValidator.allowsElement","_SimpleNodeValidator.allowsAttribute","_SimpleNodeValidator.","_TemplatingNodeValidator.allowsAttribute","_TemplatingNodeValidator.","_SvgNodeValidator.allowsElement","_SvgNodeValidator.allowsAttribute","FixedSizeListIterator.moveNext","FixedSizeListIterator.current","_ValidatingTreeSanitizer.sanitizeTree","_ValidatingTreeSanitizer._removeNode","_ValidatingTreeSanitizer._sanitizeUntrustedElement","_ValidatingTreeSanitizer._sanitizeElement","JSArray.toList","_ValidatingTreeSanitizer.sanitizeNode","_ValidatingTreeSanitizer.sanitizeTree.walk","CssClassSetImpl._validateToken","CssClassSetImpl.toString","CssClassSetImpl.toggle","CssClassSetImpl.iterator","CssClassSetImpl.length","CssClassSetImpl.add","CssClassSetImpl.remove","CssClassSetImpl.elementAt","CssClassSetImpl.modify","CssClassSetImpl.add.","FilteredElementList._iterable","WhereIterable.map","FilteredElementList.[]=","FilteredElementList.[]","FilteredElementList.length","FilteredElementList.iterator","FilteredElementList._iterable.","promiseToFuture.","NullRejectionException.toString","LengthList.length","LengthList.[]","LengthList.[]=","LengthList.elementAt","NumberList.length","NumberList.[]","NumberList.[]=","NumberList.elementAt","PointList.length","StringList.length","StringList.[]","StringList.[]=","StringList.elementAt","AttributeClassSet.readClasses","AttributeClassSet.writeClasses","SvgElement.classes","SvgElement.innerHtml","SvgElement.children","SvgElement.createFragment","NodeValidatorBuilder.allowSvg","NodeTreeSanitizer","TransformList.length","TransformList.[]","TransformList.[]=","TransformList.elementAt","AudioBuffer.length","AudioParamMap.[]","AudioParamMap.forEach","AudioParamMap.keys","AudioParamMap.length","AudioParamMap.[]=","AudioParamMap.keys.","AudioTrackList.length","OfflineAudioContext.length","_htmlBase.","init.disableSearch","print","init.","ListBase.map","_findMatches.score","_findMatches.","_Search.listBox","_Search.moreResults","_Search.searchResults","_Search.initialize","_Search.showSearchResultPage","JsLinkedHashMap.isNotEmpty","_Search.hideSuggestions","_Search.updateSuggestions","_Search.showSuggestions","_Search.updateSuggestions[function-entry$2]","_Search.handleSearch","_Search.handleSearch[function-entry$1$isSearchPage]","_Search.handleSearch[function-entry$1]","_Search.handleSearch[function-entry$1$forceUpdate]","_Search.clearSearch","_Search.setEventListeners","_Search.initialize.","_Search.setEventListeners.","Element.dataset","_createSuggestion.","_highlight.","init.toggleDrawerAndOverlay","DART_CLOSURE_PROPERTY_NAME","TypeErrorDecoder.noSuchMethodPattern","TypeErrorDecoder.notClosurePattern","TypeErrorDecoder.nullCallPattern","TypeErrorDecoder.nullLiteralCallPattern","TypeErrorDecoder.undefinedCallPattern","TypeErrorDecoder.undefinedLiteralCallPattern","TypeErrorDecoder.nullPropertyPattern","TypeErrorDecoder.nullLiteralPropertyPattern","TypeErrorDecoder.undefinedPropertyPattern","TypeErrorDecoder.undefinedLiteralPropertyPattern","_AsyncRun._scheduleImmediateClosure","Utf8Decoder._decoder","Utf8Decoder._decoderNonfatal","_Base64Decoder._inverseAlphabet","_Uri._needsNoEncoding","_hashSeed","_scannerTables","_Html5NodeValidator._allowedElements","CssClassSetImpl._validTokenRE","_htmlBase","setDispatchProperty","JS_INTEROP_INTERCEPTOR_TAG","init_closure","fromTearOff","StaticClosure","BoundClosure","forwardCallTo","_computeSignatureFunctionNewRti","fieldADI","TypeError","objectTypeName","_objectTypeNameNewRti","Object","iterableToFullString","StringBuffer","toStringVisiting","_writeAll","ArrayIterator","","safeToString","Closure","ListIterator","withLength","IndexError","value","AudioParamMap_keys_closure","_empty","LinkedHashMapCell","JsLinkedHashMap","mapToString","MapBase_mapToString_closure","MapBase","_identityHashCodeProperty","hash","combine","finish","eval","create","parse","handleDigit","handleIdentifier","toType","_lookupGenericFunctionParameterRti","_lookupTerminalRti","handleTypeArguments","handleExtendedOperations","_lookupStarRti","_lookupQuestionRti","_lookupFutureOrRti","handleArguments","toTypes","toTypesNamed","collectArray","_FunctionParameters","_lookupFunctionRti","_lookupRecordRti","_canonicalRecipeJoin","Rti","_installTypeTests","_canonicalRecipeJoinNamed","_createFutureOrRti","Future","_lookupInterfaceRti","_createQuestionRti","_getQuestionFromStar","_createStarRti","_lookupGenericFunctionRti","_lookupBindingRti","_createGenericFunctionRti","newArrayOrEmpty","indexToType","findRule","_getCanonicalRecipe","evalInEnvironment","LinkedHashMapKeyIterable","iterableToShortString","checkNotNegative","range","RangeError","RtcStatsReport_keys_closure","MidiOutputMap_keys_closure","MidiInputMap_keys_closure","Storage_keys_closure","FixedSizeListIterator","initNativeDispatchFlag","_JS_INTEROP_INTERCEPTOR_TAG","getTagFunction","dispatchRecordsForInstanceTags","interceptorsForUncacheableTags","alternateTagFunction","JavaScriptIndexingBehavior","prototypeForTagFunction","initHooks_closure","LateError","_CyclicInitializationError","evalRecipe","forwardInterceptedCallTo","cspForwardCall","receiverOf","_interceptorFieldNameCache","_computeFieldNamed","_receiverFieldNameCache","cspForwardInterceptedCall","interceptorOf","RuntimeError","markFixedList","forType","_TypeError","compose","findErasedType","fromMessage","_getFutureFromFutureOr","_isUnionOfFunctionType","List","bind","_Exception","init_disableSearch","MappedListIterable","ListBase","_IndexItem","ListIterable","of","_EnclosedBy","Iterable","CastIterator","EfficientLengthIterable","_EfficientLengthCastIterable","CastList","_current","_wrapJsFunctionForAsync_closure","_StreamIterator","ExceptionAndStackTrace","_StackTrace","NullThrownFromJavaScriptException","NullError","UnknownJsTypeError","StackOverflowError","extractPattern","TypeErrorDecoder","provokePropertyErrorOn","provokeCallErrorOn","_awaitOnObject_closure","_Future","_FutureListener","_Future__addListener_closure","_AsyncCallbackEntry","_lastCallback","_nextCallback","_isInCallbackLoop","_lastPriorityCallback","_initializeScheduleImmediate","_AsyncRun__initializeScheduleImmediate_internalCallback","_AsyncRun__initializeScheduleImmediate_closure","_TimerImpl_internalCallback","_AsyncRun__scheduleImmediateWithSetImmediate_internalCallback","_AsyncRun__scheduleImmediateJsOverride_internalCallback","_RootZone_bindCallbackGuarded_closure","_rootHandleError_closure","_throw","_propagateToListeners","_Future__propagateToListeners_handleWhenCompleteCallback","_Future__propagateToListeners_handleValueCallback","_Future__propagateToListeners_handleError","_chainCoreFuture","_Future__prependListeners_closure","defaultStackTrace","_Future__propagateToListeners_handleWhenCompleteCallback_closure","_AsyncAwaitCompleter","_Future__asyncCompleteError_closure","_Future__chainFuture_closure","_Future__chainForeignFuture_closure","_Future__asyncCompleteWithValue_closure","_Search_initialize_closure","_suggestionLimit","_suggestionLength","_containerMap","MappedIterator","EfficientLengthMappedIterable","_createSuggestion_closure","_defaultValidator","NodeValidatorBuilder","_defaultSanitizer","_ValidatingTreeSanitizer","_parseDocument","_parseRange","_ValidatingTreeSanitizer_sanitizeTree_walk","_safeTagName","_ElementAttributeMap","NodeValidatorBuilder_allowsAttribute_closure","_attributeValidators","NodeValidatorBuilder_allowsElement_closure","from","_LinkedHashSet","_newHashTable","_LinkedHashSetCell","_TemplatingNodeValidator_closure","_SimpleNodeValidator_closure","WhereIterable","WhereIterator","_SameOriginUriPolicy","FilteredElementList","_ChildNodeListLazy","_addAll","JSArray","FilteredElementList__iterable_closure","Element","_SvgNodeValidator","html","Element_Element$html_closure","noElement","tooMany","_highlight_closure","_AllMatchesIterator","checkValidRange","_MatchImplementation","makeNative","JSSyntaxRegExp","AttributeClassSet","_skipLeadingWhitespace","_skipTrailingWhitespace","_isWhitespace","CssClassSetImpl_add_closure","_ElementCssClassSet","_literal","_Search_setEventListeners_closure","_DataAttributeMap","_DataAttributeMap_keys_closure","filled","growable","fixed","markFixed","_DataAttributeMap_forEach_closure","_findMatches_score","_findMatches_closure","sort","_doSort","_insertionSort","_dualPivotQuicksort","_SearchMatch","_parse","_SimpleUri","_makeScheme","_fail","_makeUserInfo","_makeHost","parseInt","_makePort","_makePath","_makeQuery","_makeFragment","_internal","_defaultPort","splitQueryString","UnmodifiableMapView","Uri_splitQueryString_closure","_uriDecode","_throwUnmodifiable","CodeUnits","_hexCharPairToByte","_convertIntercepted","_Utf8Decoder","_makeUint8List","errorDescription","stringFromCharCode","fromCharCodes","stringFromNativeUint8List","_convertInterceptedUint8List","_useTextDecoder","Utf8Decoder__decoder_closure","Utf8Decoder__decoderNonfatal_closure","_Uri","_normalizeOrSubstring","_normalize","_normalizeEscape","_escapeChar","_Uri__makeQuery_closure","_Uri__makeQuery_writeParameter","_uriEncode","_Utf8Encoder","_normalizePath","_normalizeRelativePath","_removeDotSegments","_mayContainDotSegments","_escapeScheme","_isAlphabeticCharacter","_checkZoneID","_normalizeZoneID","parseIPv6Address","_normalizeRegName","Uri_parseIPv6Address_error","Uri_parseIPv6Address_parseHex","_parseIPv4Address","Uri__parseIPv4Address_error","_canonicalizeScheme","_createTables_build","_createTables_setChars","_createTables_setRange","_DataUri","UriData","_checkPadding","_create1","_of","_JsonMap","_JsonMapKeyIterable","_AsyncCompleter","promiseToFuture_closure","NullRejectionException","_htmlBase_closure","init_toggleDrawerAndOverlay","objectAssign","JS_CONST","Interceptor","TrustedGetRuntimeType","JSBool","Null","JSNull","JavaScriptObject","LegacyJavaScriptObject","PlainJavaScriptObject","UnknownJavaScriptObject","Function","JavaScriptFunction","JSUnmodifiableArray","double","num","JSNumber","int","JSInt","JSNumNotInt","String","JSString","_CastIterableBase","_CastListBase","SentinelValue","FixedLengthListMixin","UnmodifiableListMixin","UnmodifiableListBase","Map","ConstantMap","ConstantStringMap","StackTrace","Closure0Args","Closure2Args","TearOffClosure","RegExpMatch","Match","NativeByteBuffer","NativeTypedData","NativeByteData","NativeTypedArray","NativeTypedArrayOfDouble","NativeTypedArrayOfInt","NativeFloat32List","NativeFloat64List","NativeInt16List","NativeInt32List","NativeInt8List","NativeUint16List","NativeUint32List","NativeUint8ClampedList","Uint8List","NativeUint8List","_Error","Error","_Completer","_Zone","_RootZone","_UnmodifiableMapMixin","MapView","Set","SetBase","_SetBase","Base64Codec","Base64Encoder","Codec","Converter","Encoding","HtmlEscapeMode","HtmlEscape","JsonCodec","JsonDecoder","Utf8Codec","Utf8Encoder","Utf8Decoder","OutOfMemoryError","_StringStackTrace","Uri","HtmlElement","AbortPaymentEvent","AbsoluteOrientationSensor","AccessibleNodeList","AnchorElement","AnimationEffectReadOnly","AreaElement","AudioElement","BaseElement","Blob","BodyElement","CDataSection","CharacterData","CompositionEvent","CssCharsetRule","CssImageValue","CssMatrixComponent","CssPerspective","CssResourceValue","CssRule","CssStyleDeclaration","CssStyleDeclarationBase","CssStyleSheet","CssStyleValue","CssTransformComponent","CssTransformValue","CssUnparsedValue","CssurlImageValue","DataTransferItemList","Document","DocumentFragment","DomException","DomRectList","Rectangle","DomRectReadOnly","DomStringList","DomTokenList","bool","Node","Event","EventTarget","ExtendableEvent","File","FileList","FileWriter","FormElement","Gamepad","History","HtmlCollection","HtmlDocument","HtmlFormControlsCollection","InputElement","KeyboardEvent","KeyframeEffect","KeyframeEffectReadOnly","Location","MathMLElement","MediaElement","MediaList","MidiInputMap","MidiOutputMap","MimeType","MimeTypeArray","NodeList","OrientationSensor","Plugin","PluginArray","RtcStatsReport","SelectElement","Sensor","ShadowRoot","SourceBuffer","SourceBufferList","SpeechGrammar","SpeechGrammarList","SpeechRecognitionResult","Storage","StyleSheet","TableElement","TableRowElement","TableSectionElement","TemplateElement","Text","TextAreaElement","TextTrack","TextTrackCue","TextTrackCueList","TextTrackList","TimeRanges","Touch","TouchList","TrackDefaultList","UIEvent","Url","VideoTrackList","VttCue","XmlDocument","_Attr","_CssRuleList","_DomRect","_GamepadList","_NamedNodeMap","_SpeechRecognitionResultList","_StyleSheetList","_AttributeMap","NodeValidator","ImmutableListMixin","CssClassSetImpl","AElement","GraphicsElement","Length","LengthList","Number","NumberList","PointList","ScriptElement","StringList","SvgElement","Transform","TransformList","AudioBuffer","AudioContext","AudioParamMap","AudioTrackList","BaseAudioContext","OfflineAudioContext","__CastListBase&_CastIterableBase&ListMixin","_NativeTypedArrayOfDouble&NativeTypedArray&ListMixin","_NativeTypedArrayOfDouble&NativeTypedArray&ListMixin&FixedLengthListMixin","_NativeTypedArrayOfInt&NativeTypedArray&ListMixin","_NativeTypedArrayOfInt&NativeTypedArray&ListMixin&FixedLengthListMixin","_UnmodifiableMapView&MapView&_UnmodifiableMapMixin","_CssStyleDeclaration&JavaScriptObject&CssStyleDeclarationBase","_DomRectList&JavaScriptObject&ListMixin","_DomRectList&JavaScriptObject&ListMixin&ImmutableListMixin","_DomStringList&JavaScriptObject&ListMixin","_DomStringList&JavaScriptObject&ListMixin&ImmutableListMixin","_FileList&JavaScriptObject&ListMixin","_FileList&JavaScriptObject&ListMixin&ImmutableListMixin","_HtmlCollection&JavaScriptObject&ListMixin","_HtmlCollection&JavaScriptObject&ListMixin&ImmutableListMixin","_MidiInputMap&JavaScriptObject&MapMixin","_MidiOutputMap&JavaScriptObject&MapMixin","_MimeTypeArray&JavaScriptObject&ListMixin","_MimeTypeArray&JavaScriptObject&ListMixin&ImmutableListMixin","_NodeList&JavaScriptObject&ListMixin","_NodeList&JavaScriptObject&ListMixin&ImmutableListMixin","_PluginArray&JavaScriptObject&ListMixin","_PluginArray&JavaScriptObject&ListMixin&ImmutableListMixin","_RtcStatsReport&JavaScriptObject&MapMixin","_SourceBufferList&EventTarget&ListMixin","_SourceBufferList&EventTarget&ListMixin&ImmutableListMixin","_SpeechGrammarList&JavaScriptObject&ListMixin","_SpeechGrammarList&JavaScriptObject&ListMixin&ImmutableListMixin","_Storage&JavaScriptObject&MapMixin","_TextTrackCueList&JavaScriptObject&ListMixin","_TextTrackCueList&JavaScriptObject&ListMixin&ImmutableListMixin","_TextTrackList&EventTarget&ListMixin","_TextTrackList&EventTarget&ListMixin&ImmutableListMixin","_TouchList&JavaScriptObject&ListMixin","_TouchList&JavaScriptObject&ListMixin&ImmutableListMixin","__CssRuleList&JavaScriptObject&ListMixin","__CssRuleList&JavaScriptObject&ListMixin&ImmutableListMixin","__GamepadList&JavaScriptObject&ListMixin","__GamepadList&JavaScriptObject&ListMixin&ImmutableListMixin","__NamedNodeMap&JavaScriptObject&ListMixin","__NamedNodeMap&JavaScriptObject&ListMixin&ImmutableListMixin","__SpeechRecognitionResultList&JavaScriptObject&ListMixin","__SpeechRecognitionResultList&JavaScriptObject&ListMixin&ImmutableListMixin","__StyleSheetList&JavaScriptObject&ListMixin","__StyleSheetList&JavaScriptObject&ListMixin&ImmutableListMixin","_LengthList&JavaScriptObject&ListMixin","_LengthList&JavaScriptObject&ListMixin&ImmutableListMixin","_NumberList&JavaScriptObject&ListMixin","_NumberList&JavaScriptObject&ListMixin&ImmutableListMixin","_StringList&JavaScriptObject&ListMixin","_StringList&JavaScriptObject&ListMixin&ImmutableListMixin","_TransformList&JavaScriptObject&ListMixin","_TransformList&JavaScriptObject&ListMixin&ImmutableListMixin","_AudioParamMap&JavaScriptObject&MapMixin","_compareAny","addRules","addErasedTypes","_scheduleImmediateJsOverride","_scheduleImmediateWithSetImmediate","_scheduleImmediateWithTimer","_standardAttributeValidator","_uriAttributeValidator","_#fromMap#tearOff","noSuchMethodPattern","notClosurePattern","nullCallPattern","nullLiteralCallPattern","undefinedCallPattern","undefinedLiteralCallPattern","nullPropertyPattern","nullLiteralPropertyPattern","undefinedPropertyPattern","undefinedLiteralPropertyPattern","_scheduleImmediateClosure","_decoder","_decoderNonfatal","_inverseAlphabet","_needsNoEncoding","_allowedElements","_validTokenRE","ByteBuffer","ByteData","Float32List","Float64List","Int16List","Int32List","Int8List","Uint16List","Uint32List","Uint8ClampedList","Record","$intercepted$toString0$IJavaScriptFunctionLegacyJavaScriptObjectabnsux","getInterceptor$","$intercepted$get$iterator$ax","getInterceptor$asx","$intercepted$get$length$asx","$intercepted$forEach1$ax","$intercepted$$eq$Iux","getInterceptor$x","$intercepted$get$hashCode$ILegacyJavaScriptObjectabnsux","$intercepted$__$asx","$intercepted$get$runtimeType$Ibdinsux","$intercepted$cast10$ax","search__IndexItem___fromMap_tearOff$closure","$intercepted$elementAt1$ax","async___startMicrotaskLoop$closure","async__AsyncRun__scheduleImmediateJsOverride$closure","async__AsyncRun__scheduleImmediateWithSetImmediate$closure","async__AsyncRun__scheduleImmediateWithTimer$closure","$intercepted$get$classes$x","$intercepted$set$innerHtml$x","$intercepted$_clearChildren0$x","$intercepted$remove0$x","$intercepted$get$attributes$x","$intercepted$toLowerCase0$s","html__Html5NodeValidator__standardAttributeValidator$closure","html__Html5NodeValidator__uriAttributeValidator$closure","$intercepted$get$innerHtml$x","$intercepted$trim0$s","$intercepted$_replaceChild2$x","_interceptors_JSArray__compareAny$closure","$intercepted$compareTo1$ns","$intercepted$replaceWith1$x","$intercepted$___$ax","$intercepted$addEventListener2$x","getInterceptor$ax","getInterceptor$s","getInterceptor$ns","toString","allowsAttribute","where","createFragment","addEventListener","width","height","dart:html#_height","dart:html#_width","moveNext","current","length","elementAt","dart:core#_errorName","dart:core#_errorExplanation","invalidValue","keys","forEach","dart:_js_helper#_newHashTable","dart:_js_helper#_addHashTableEntry","internalSet","internalComputeHashCode","dart:_js_helper#_newLinkedCell","internalFindBucketIndex","dart:_js_helper#_modified","dart:_rti#_eval","dart:_rti#_bind","internalGet","hashCode","iterator","dart:html#_addEventListener","then","decode","queryParameters","first","initialize","dart:_internal#_source","registerBinaryCallback","completeError","dart:_interceptors#_shrOtherPositive","matchTypeError","dart:_interceptors#_shrBothPositive","complete","dart:async#_thenAwait","dart:async#_addListener","dart:async#_cloneResult","bindCallbackGuarded","runGuarded","dart:async#_reverseListeners","dart:async#_removeListeners","dart:async#_prependListeners","matchesErrorTest","handleError","stackTrace","runBinary","runUnary","run","dart:async#_completeError","dart:async#_asyncCompleteError","dart:async#_setErrorObject","dart:async#_asyncComplete","dart:async#_chainFuture","dart:async#_completeWithValue","dart:async#_chainForeignFuture","dart:async#_asyncCompleteWithValue","add","replaceWith","listBox","setEventListeners","contains","convert","handleSearch","showSearchResultPage","hideSuggestions","updateSuggestions","sublist","clear","searchResults","values","moreResults","classes","innerHtml=","setInnerHtml","sanitizeTree","sanitizeNode","dart:html#_sanitizeUntrustedElement","dart:html#_removeNode","dart:html#_sanitizeElement","allowsElement","any","allowsUri","dart:collection#_addHashTableEntry","dart:collection#_add","dart:collection#_computeHashCode","dart:collection#_newLinkedCell","dart:collection#_findBucketIndex","dart:collection#_modified","dart:collection#_contains","addAll","dart:html_common#_iterable","single","startsWith","substring","dart:_js_helper#_execGlobal","end","codeUnitAt","dart:_js_helper#_nativeGlobalVersion","dart:_interceptors#_codeUnitAt","readClasses","dart:html_common#_validateToken","modify","writeClasses","join","replace","dart:core#_text","dart:convert#_convert","dart:html#_toHyphenedName","clearSearch","remove","round","dart:html#_toCamelCase","dart:collection#_removeHashTableEntry","dart:collection#_remove","dart:collection#_unlinkCell","isNegative","dart:_interceptors#_tdivFast","dart:_interceptors#_tdivSlow","containsKey","uri","replaceRange","scheme","hasAuthority","userInfo","host","port","path","hasQuery","query","hasFragment","fragment","hasPort","dart:core#_computeScheme","fold","indexOf","convertGeneral","dart:convert#_convertRecursive","decodeGeneral","dart:_interceptors#_shrReceiverPositive","encoder","dart:convert#_fillBuffer","dart:convert#_writeReplacementCharacter","dart:convert#_writeSurrogate","last","fillRange","normalize","decoder","dart:convert#_computeKeys","dart:convert#_upgrade","dart:convert#_process","toggle","runtimeType","cast","compareTo","toLowerCase","trim","call","attributes","dart:html#_clearChildren","dart:html#_replaceChild","$add","$index","$indexSet","$mul","$mod","$eq","_","instanceTypeName","constructorNameFallback","objectToHumanReadableString","interceptorFieldName","receiverFieldName","_rtiEval","propertyGet","start","write","_setPrecomputed1","_lookupFutureRti","asString","asBool","allocate","_setRequiredPositional","_setOptionalPositional","_setNamed","asRti","instanceOf","_instanceFunctionType","_getRuntimeTypeOfArrayAsRti","_setCachedRuntimeType","_getKind","_setSpecializedTestResource","_recordSpecializedIsTest","_setIsTestFunction","_setAsCheckFunction","isSubtype","_getSpecializedTestResource","_isCheck","_getReturnType","_getPrimary","_getGenericFunctionParameterIndex","unmangleGlobalNameIfPreservedAnyways","_lookupErasedRti","_parseRecipe","_getEvalCache","_setEvalCache","_getBindCache","_setBindCache","_createTerminalRti","_setKind","_setCanonicalRecipe","_canonicalRecipeOfStar","_recipeJoin","_setPrimary","_canonicalRecipeOfQuestion","_canonicalRecipeOfFutureOr","_createGenericFunctionParameterRti","_canonicalRecipeOfInterface","_createInterfaceRti","_setRest","arrayConcat","_canonicalRecipeOfBinding","_recipeJoin5","_createBindingRti","_canonicalRecipeOfRecord","_createRecordRti","_canonicalRecipeOfFunction","_canonicalRecipeOfFunctionParameters","_createFunctionRti","_canonicalRecipeOfGenericFunction","_recipeJoin4","charCodeAt","toGenericFunctionParameter","_lookupDynamicRti","_lookupVoidRti","pushStackFrame","push","setPosition","handleOptionalGroup","arraySplice","handleNamedGroup","collectNamed","handleStartRecord","isDigit","evalTypeVariable","_lookupNeverRti","_lookupAnyRti","stringLessThan","lookupSupertype","_getInterfaceTypeArguments","_getRest","_createTimer","_future","future","_setValue","_isChained","_chainSource","_setChained","_hasError","_error","handleUncaughtError","handlesValue","_zone","handlesComplete","shouldChain","_isComplete","_removeListeners","_cloneResult","_setErrorObject","_scheduleImmediate","tryParse","makeListFixedLength","_stringFromUint8List","isEmpty","_writeOne","hasMatch","checkString","encode","writeCharCode","fromCharCode","_objectToString","writeAll","hash4","_startsWithData","notSimple","_writeString","_isZoneIDChar","_isRegNameChar","_isGeneralDelimiter","_isSchemeCharacter","_isUnreservedChar","isNotEmpty","codeUnits","nodes","_hiddenAnchor","allowedElements","allowedAttributes","allowedUriAttributes","map","isJavaScriptSimpleObject","fetch","toList","suggestionElements","suggestionsInfo","setAttribute","innerHtml","[]=","replaceAllMapped","splitMapJoin","fromMap","[]","compare","getRuntimeTypeOfInterceptorNotArray","castFrom","checkGrowable","checkMutable","listToString","_codeUnitAt","stringReplaceRangeUnchecked","_fetch","_containsTableEntry","_getBucket","_isMultiLine","group","isUnicode","_isUnicode","_isTrailSurrogate","_rtiBind","_mayComplete","_completeError","hasErrorTest","_errorTest","thenAwait","_mayAddListener","_setError","handleWhenComplete","_whenCompleteAction","handleValue","_onValue","hasErrorCallback","_onError","throwWithStackTrace","setToString","_isUpgraded","parseHexByte","withBufferSize","_combineSurrogatePair","_isLeadSurrogate","convertSingle","extractStackTrace","decodeQueryComponent","_initializeText","_writeAuthority","encodeQueryComponent","_computeUri","_isHttp","_isHttps","_isFile","_isPackage","left","top","common","_validators","allowHtml5","allowTemplating","head","_canBeUsedToCreateContextualFragment","_cannotBeUsedToCreateContextualFragment","_getItem","getAttribute","_matches","_attr","_strip","_classListLength","_add","_remove","_toggle","_toggleDefault","_toListGrowable","_removeNode","_filtered","children","allowSvg","printToConsole","jsonDecode","FetchResponseExtension|get#text","removeSelectedElement","showSuggestions","showEnterMessage","dataset","scrollTop","scrollHeight","offsetTop","offsetHeight","scrollIntoView","provokeCallErrorOnNull","provokeCallErrorOnUndefined","provokePropertyErrorOnNull","provokePropertyErrorOnUndefined","fromList","identityHashCode","patchInstance"], + "mappings": "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A;KMq6FnCA;AAYHA,KACEA,OAAOA,YAyBbA;KpC36FAC,WoCo5FcD,mBAGGA;OAOQA,YANrBA,SACiBA;AACfA,SACEA,UAAMA;AAERA,WACEA,SACEA,UAAMA;AAERA,OAAUA;AACVA,UACKA,UACLA;KAEAA,WAINA,ONv8FOA,CADKA,QMy8FdA,C;EAEYE,IACNA;AACJA,oBACFA,C;EAqwBeC,QASOA;OAIJA,wBAAhBA,SACSA;AACPA,kBAAwCA;AACxCA,WACEA;AAEEA,SAEFA,UAAMA,aAGVA,YAGEA,UAAMA;KAERA,SAEEA,UACAA;AAEAA,kBACSA;AACPA,WACEA,gBACKA,kBACLA,MAGJA,QACEA;KAG4BA;AAGvBA,2CACHA,UAAMA;AAERA,OAGJA;AAQmCA;KAPXA,eAEfA;KAKSA,cAAqCA;AAErDA,WACSA,kBAGXA,OAxiBFA,eAyiBAA,C;EA2McC,GAmPPA;AAhMMA;AAIEA;AAOFA;AAaAA;AAUTA;AACJA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AAEIA;AACJA;AACAA;AACAA;AACAA;AACAA;AACAA;AAEIA;AACJA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AAEIA;AACJA;AACAA;AACAA;AACAA;AACAA;AACAA;AAEIA;AACJA;AACAA;AACAA;AACAA;AACAA;AACAA;AAEIA;AACJA;AACAA;AACAA;AACAA;AACAA;AACAA;AAEIA;AACJA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AAEIA;AACJA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AACAA;AAEIA;AACJA;AACAA;AACAA;AACAA;AACAA;AACAA;AAEIA;AACJA;AACAA;AACAA;AACAA;AACAA;AACAA;AAGAA,KADIA;AAGAA;AACJA;AACAA;AACAA;AACAA;AACAA;AAEIA;AACJA;AACAA;AACAA;AACAA;AACAA;AAEIA;AACJA;AACAA;AACAA;AACAA;AACAA;AAEIA;AACJA;AACAA;AACAA;AACAA;AACAA;AACAA;AAEIA;AACJA;AACAA;AACAA;AACAA;AACAA;AAEIA;AACJ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", + "x_org_dartlang_dart2js": { + "minified_names": { + "global": "mF,349,mG,349,mH,349,hX,1060,kt,1061,dA,1062,bb,1063,iP,1064,kp,1065,iU,1066,b6,30,b,28,ap,1067,mY,29,mA,58,fy,1068,kO,1069,y,1070,bt,95,Q,153,mp,155,jF,148,mg,149,jA,150,n,91,jT,15,o,17,ia,1071,iC,6,L,1072,b7,1073,j4,1074,b9,1075,cs,31,aQ,1076,fe,1077,hM,129,kP,1077,aA,1078,cL,288,I,98,bH,1079,B,1080,d_,1081,at,79,cq,25,jC,136,W,278,kR,1082,f7,1083,aL,345,d6,1084,jw,344,fp,1085,aV,1086,ie,1087,fq,1088,v,1089,f0,145,jP,40,ds,40,j_,1090,iZ,1091,fC,1092,kW,1093,eO,1094,b2,104,jf,1095,jh,1096,lc,1097,jg,1098,aJ,1099,lo,1100,ch,1101,le,1102,ld,1103,jm,1104,ip,1105,jl,1106,lb,1107,ji,1108,lg,1109,je,1110,eb,1111,jk,1112,lp,1113,cA,1076,cz,277,cf,1114,T,1115,as,1116,lZ,111,m_,109,lj,1117,lk,1118,aC,1119,av,217,cg,1120,lm,1121,cr,216,j2,1122,ln,1123,io,1124,im,1125,ll,1126,hw,1127,aK,86,cp,87,mn,89,mo,88,lf,1128,lu,1129,kS,1130,hr,1131,jx,106,hq,107,ai,1132,kD,1133,mb,292,j1,1134,S,1135,bS,1136,d5,513,fz,1137,ft,1138,fs,1139,fB,1140,bC,1141,iB,1142,mJ,65,j7,1076,ha,1143,mO,60,jN,1144,hQ,1145,i1,1146,jJ,1147,i2,63,jQ,62,iD,366,p,1148,dM,286,mK,66,mI,68,jS,1149,mQ,64,br,69,hU,1150,hV,1150,hW,1150,d3,1151,e0,1152,km,1153,ks,1154,kq,1155,iO,1156,iM,1157,iL,1158,iN,1159,kr,1160,kn,1161,du,1162,ib,1163,aN,1076,O,1164,ce,1165,jc,1166,mm,103,jL,92,cm,97,mB,102,iw,99,m0,100,lt,1167,mC,101,jy,119,li,1168,lV,117,lL,127,lK,125,lX,118,f1,112,mL,93,D,210,ii,1169,jB,211,m3,212,m7,215,jv,214,j3,1170,k,1171,m6,124,au,110,ma,126,lY,114,jD,128,m2,123,m5,140,m8,144,mN,151,m4,116,m9,115,mw,70,lW,113,ls,1172,bs,44,mM,42,fY,1173,jR,346,hY,1060,hZ,1174,ak,1175,e,1176,ac,1177,a3,1178,iY,1179,fH,1096,jz,350,il,1076,lP,227,lM,228,lO,229,lN,230,mr,232,mc,225,fX,1180,u,1181,ko,1076,cG,1182,f,1183,bY,1184,aP,0,af,1185,F,1186,hP,1187,f2,5,eB,1188,aw,36,b5,39,bA,1189,cb,1190,fx,1191,aM,37,mq,38,id,1076,bR,1192,dN,1193,bT,1194,aq,1195,mS,73,fD,1196,j6,1197,fE,1198,d2,35,lQ,231,hz,1199,hA,1199,H,1200,i7,1082,mh,237,bn,1201,fZ,1202,b1,248,jH,240,dV,1203,cn,1204,bq,1205,ix,1206,me,238,co,1207,l2,1208,fS,1209,fR,1210,lh,1076,ho,224,hp,1211,r,1076,dP,285,fU,1212,fT,1213,hd,1214,jE,245,iy,244,hN,1215,mk,241,kw,1216,c_,1217,h8,1218,h7,1219,h6,1220,ij,1221,h5,1222,f6,1076,cB,233,iJ,1223,mj,246,mi,247,h9,1224,dU,1225,h_,1226,h4,1227,h1,1228,h2,1228,h3,1228,mT,242,h0,1229,hg,1230,iz,1231,hO,1232,b0,1233,lS,352,ct,364,fm,510,kM,1076,bJ,1234,by,1235,aj,7,iv,358,hC,1236,hD,1236,md,357,iR,1237,bQ,1238,jd,1076,jj,1076,iQ,1239,eQ,1240,aB,1241,i8,1242,hx,1243,dz,1076,bi,287,bz,1244,bZ,1245,fu,1246,ed,1247,fv,1248,iW,1249,bG,1076,c0,1250,ik,1251,hb,1252,c1,253,eH,341,hn,1253,hl,1254,hm,1254,ar,1255,dT,1256,he,1257,bo,336,cX,1258,J,1259,l6,1260,kL,1249,C,1261,ff,1262,fg,1262,q,1263,eG,1264,kv,1265,fc,1266,i9,1267,kC,1268,ih,1076,hK,1269,mV,75,fQ,1270,jI,74,aW,1271,ek,1272,iT,1273,K,1076,fh,289,fk,1274,f4,72,cC,1275,kI,1276,kJ,1277,iS,1278,fa,1279,la,1076,e7,1280,iV,1281,my,41,hh,1282,hi,1282,hj,1282,hk,1282,e1,1283,fW,1284,iX,1285,kF,1286,kE,1287,kG,1288,fV,1289,hf,351,hJ,1290,hH,1291,hI,1291,kV,1292,dw,1293,kU,1294,kT,1295,Y,1296,j8,1297,jG,330,ew,1298,lC,1299,bp,1300,lD,1301,lz,1302,j0,1303,lB,1304,lA,1305,is,1306,ly,1307,iq,1308,i0,1096,jn,1309,ja,1310,bl,1311,fK,1312,iu,1313,ku,1314,cJ,1315,lx,1316,l0,1317,hu,1318,lI,1319,lJ,1320,am,1321,j5,1322,kQ,1323,l1,1324,jb,1325,fO,1326,fN,1327,cj,1328,ck,1329,jr,1330,it,1331,ir,1332,ms,27,hT,2,hs,1333,ht,1334,jt,1335,hv,1336,lR,80,mx,26,lE,1337,lG,1338,lH,1339,jq,1340,jo,1341,jp,1342,lw,1343,js,1344,j9,1345,lF,1346,fI,1347,fJ,1348,l_,1349,fG,1350,lv,1351,lT,329,hE,1352,hF,1353,hG,1354,e2,1355,fF,1356,iK,1357,lU,77,kN,1358,kK,1359,mf,256,hB,257,eg,1360,eh,1361,mR,362,bV,1362,i3,1363,i4,1363,fw,1364,hL,1365,i_,1366,ju,1367,ic,1368,bd,1369,t,1370,d0,1371,G,1372,bF,1373,a,1374,aF,1375,dp,1376,b_,1377,aT,1378,ag,1379,fl,1380,E,1381,R,1382,be,1383,i,1384,bE,1385,d1,1386,d,1387,aE,1388,aI,1389,bW,1390,fA,1391,bB,1392,dO,1393,bk,1394,x,1395,bv,1396,aR,1397,aH,1398,cH,1399,cI,1400,dF,1401,ig,1402,fr,1403,dc,1404,bM,1405,dd,1406,bg,1407,bK,1408,bL,1409,de,1410,df,1411,dg,1412,dh,1413,di,1414,dj,1415,dk,1416,bN,1417,aZ,1418,bO,1419,e8,1420,z,1421,dY,1422,hy,1423,hc,1424,eP,1425,bI,1426,aG,1427,an,1428,c7,1429,f8,1430,f9,1431,cK,1432,cM,1433,fd,1434,fj,1435,fi,1436,fn,1437,fo,1438,fL,1439,fP,1440,fM,1441,dn,1442,eE,1443,dQ,1444,l,1445,n_,1446,n0,1447,cw,1448,cx,1449,n1,1450,cy,1451,n3,1452,ba,1453,bu,1454,aO,1455,n6,1456,a0,1457,n7,1458,n8,1459,na,1460,nb,1461,cO,1462,nc,1463,w,1464,bc,1465,fb,1466,nd,1467,N,1468,X,1469,cP,1470,cQ,1471,ne,1472,cR,1473,aS,1474,ng,1475,cS,1476,bw,1477,aX,1478,bx,1479,cT,1480,cU,1481,ad,1482,m,1483,h,1484,c,1485,nh,1486,a1,1487,cV,1488,cW,1489,cY,1490,a2,1491,cZ,1492,aU,1493,bD,1494,nj,1495,aD,1496,bf,1497,nk,1498,nl,1499,d7,1500,nm,1501,nn,1502,d8,1503,d9,1504,da,1505,a4,1506,db,1507,bP,1508,no,1509,a6,1510,dq,1511,dt,1512,dv,1513,nq,1514,nr,1515,a7,1516,dx,1517,a8,1518,dy,1519,a9,1520,dB,1521,U,1522,bU,1523,dD,1524,dE,1525,bj,1526,nt,1527,aY,1528,aa,1529,V,1530,dG,1531,dH,1532,dI,1533,ab,1534,dJ,1535,dK,1536,P,1537,dR,1538,dS,1539,nG,1540,nH,1541,bm,1542,dZ,1543,bX,1544,ec,1545,c2,1546,ez,1547,eF,1548,dW,1549,a5,1550,A,1551,c8,342,cN,1552,mZ,1553,ni,1554,ah,1555,d4,1556,al,1557,dl,1558,dr,1559,bh,1560,dC,1561,j,1562,ao,1563,dL,1564,cD,1565,n2,1566,cE,1567,cF,1568,az,1569,dm,1570,cl,1571,c3,1572,c4,1573,c5,1574,c6,1575,ci,1576,e_,1577,e3,1578,e4,1579,e5,1580,e6,1581,e9,1582,ea,1583,ee,1584,ef,1585,el,1586,em,1587,en,1588,eo,1589,ep,1590,eq,1591,et,1592,eu,1593,ev,1594,c9,1595,ca,1596,ex,1597,ey,1598,eA,1599,eI,1600,eJ,1601,cc,1602,cd,1603,eK,1604,eL,1605,eR,1606,eS,1607,eT,1608,eU,1609,eV,1610,eW,1611,eX,1612,eY,1613,eZ,1614,f_,1615,ei,1616,ej,1617,er,1618,es,1619,eC,1620,eD,1621,eM,1622,eN,1623,dX,1624,mP,365,hS,367,kH,1625,jO,16,iA,51,mW,57,o2,59,hR,85,Z,108,nM,130,nO,131,nN,132,nP,133,nR,134,nQ,135,nS,137,nU,138,nT,139,nV,141,nX,142,nW,143,nZ,146,nY,147,lr,1626,lq,1627,l3,1628,l4,1629,l5,1630,ml,239,ns,1076,l7,1631,l8,1632,l9,1633,mX,363,nf,1037,nu,1634,nv,1635,nw,1636,nx,1637,nA,1638,nB,1639,nz,1640,ny,1641,nD,1642,nC,1643,nI,1644,nE,1645,nF,1646,nJ,1647,nL,1648,o_,1053,o1,1054,nK,1649,n9,1650,o0,1057,n4,1651,n5,1652,kx,1653,ky,1654,kz,1655,kA,1656,kB,1657,kX,1658,kY,1659,kZ,1660,np,1661,jV,1037,ka,1053,cu,1057,jW,1634,jX,1635,jY,1636,jZ,1637,k1,1638,k2,1639,k0,1640,k_,1641,k4,1642,k3,1643,iE,1644,k8,1649,jU,1650,k6,1646,k5,1645,k9,1648,kb,1054,k7,1647,ay,1662,b3,1663,ae,1664,b4,1665,ax,1666,kg,1667,b8,1668,M,1669,i6,1670,i5,1671,kj,1672,ke,1673,mU,1674,cv,1675,jK,1676,mt,1677,mu,1678,mv,1679,a_,1680,iH,1681,kc,1682,iG,1683,kh,1684,kl,1685,mD,1686,mE,1687,ki,1688,iI,1689,kd,1690,m1,1691,kf,1692,kk,1693,f5,1694,iF,1695,f3,1696,jM,1697,mz,1698", + "instance": "bH,1699,bF,1699,bL,1076,bI,1700,bK,1076,bG,1701,bJ,1076,ao,1702,M,1703,a1,1704,ga1,1704,Z,1705,gZ,1705,b3,1706,gb3,1706,ba,1707,gba,1707,n,1708,t,1709,gt,1709,k,1699,i,1710,gi,1710,si,1710,q,1711,aA,1712,gaA,1712,az,1713,gaz,1713,aP,1714,gaP,1714,F,1715,gF,1715,D,1716,aC,1717,aY,1718,cq,1719,bn,1720,aD,1721,bo,1722,b4,1723,l,1724,I,1725,cp,1726,B,1727,gB,1727,v,1728,gv,1728,bN,1729,bt,1730,cc,1731,aS,1732,gaS,1732,cj,1733,gcj,1733,aO,1734,a5,1735,ga5,1735,br,1736,aK,1737,ad,1738,L,1739,b6,1740,aJ,1741,b7,1742,aV,1730,ap,1743,aq,1744,bc,1745,cC,1746,ac,1747,aE,1748,b5,1749,cr,1750,cm,1751,aa,1752,gaa,1752,cA,1753,aU,1754,cw,1755,a2,1756,b_,1757,c2,1758,aZ,1759,b0,1760,au,1761,bP,1762,bO,1763,A,1764,bs,1765,V,1766,gV,1766,bB,1767,G,1768,Y,1769,co,1770,bC,1771,aM,1772,cG,1773,bE,1774,bu,1773,ag,1775,a8,1776,ga8,1776,bx,1777,gbx,1777,bp,1778,gbp,1778,S,1779,gS,1779,K,1780,gK,1780,sK,1780,a9,1781,J,1702,aX,1782,bA,1783,c1,1784,a4,1785,c0,1786,X,1787,R,1700,bb,1788,c7,1789,b1,1790,bM,1791,av,1792,ar,1793,aB,1794,b2,1795,bS,1796,P,1797,ak,1701,ab,1798,gab,1798,cb,1702,W,1799,gW,1799,C,1800,m,1801,O,1801,bU,1802,cg,1803,gcg,1803,u,1804,bW,1805,gbW,1805,p,1806,T,1807,aH,1808,cs,1809,al,1810,U,1811,aT,1812,ae,1813,gae,1813,bT,1814,aG,1815,bd,1816,bh,1770,a7,1817,a0,1818,b8,1819,bZ,1820,bY,1821,b9,1822,cn,1770,bD,1292,aQ,1823,gaQ,1823,aF,1824,c4,1825,a6,1826,bv,1827,gbv,1827,H,1800,a_,1828,an,1829,gan,1829,bi,1830,gbi,1830,bw,1831,gbw,1831,aN,1832,gaN,1832,aj,1833,gaj,1833,bq,1834,gbq,1834,bl,1835,gbl,1835,aR,1836,gaR,1836,bj,1837,gbj,1837,bg,1838,gbg,1838,bk,1839,gbk,1839,bR,1840,cl,1841,bm,1842,ca,1843,aw,1844,cd,1845,c3,1846,cf,1847,gcf,1847,bV,1848,aI,1849,c6,1850,ai,1851,gai,1851,ah,1842,ci,1852,ct,1853,ce,1854,gce,1854,a3,1855,c5,1856,bX,1857,bf,1737,aW,1858,E,1859,gE,1859,af,1860,ck,1841,be,1861,cE,1862,cF,1863,c9,1768,cH,1864,gcH,1864,cz,1755,cD,1754,cB,1753,cu,1736,c8,1865,gc8,1865,cv,1817,bQ,1866,c_,1867,aL,1770,by,1868,h,1869,j,1870,bz,1871,am,1872,N,1873" + }, + "frames": "ohIAuEiBojCyC;QAEF8xByC;wcG4RF9xB2C;QAEF8xB2C;eAkqBwB9xBsB;eAEFA6B;qvHIplBb+xBiB;cAAAAa;6CAuBQCM;gJAYVDiB;+JA+BIEW;qbAkmBU3xBoB;0KAgCnBAwB;gBASAAuB;2BAmCcNa;sgBAoQZAmR;iZA+MJAW;8fA2DOA+B;qZAAAAiE;mBAkCcA+B;gBAOpBAkC;wFAKCAU;4EAWiBAqE;wHASjBAU;0EAiCuBAW;4DAGtBAW;gUA+FFAAGn2D0BAgE,A;iUH+9DtBAgD;AAEAA6O;gvCAyPFA4D;6sBAqF6BkyBuC;AACHCmC;yEA4HtBlyDAC/9DTmyDoB,M;qDDq/DcpyBiD;kKAuJXAY;u2BEv6EDv/BAA2BTq+B4G,A;8HAZSr+BAAYTq+B4G,A;6dArEuB/9BAAzChBsxDmD,A;qrBAiRSpxD4D;2nBKtIhB2nDADjBQ5oBgD,A;WCiBRynB0B;AAC+D6Ka;AAA7DCQ;oBACAAI;yBAGFAQ;2tDNnGQCmB;WASeCO;mBACfDiB;AADeCM;4qCAsdACO;AACICS;2LA4BsBCAA7PR5yBc,A;AA8PrB6yBM;AAEACM;AAEACK;iHAwCFCS;iEAaZtwDAA9CkCuwDK,A;sEAqEpCrwDAAxEuCqwDG,A;sUA8JdvwDAA3JWuwDkF,A;+DAgL5BhxD4B;6DA0EQixDoBAlFlBxwDAAxKsCuwDiB,A,A;4EAgQLEO;wBAOM9vDU;gBAAAAAAKrC+vDY,A;oBAQgB9vB0B;iBAGXtDAA0CTAAAAAAAACMozBG,A,A,W;6BAvCF/vDM;gBAAAAAAfA+vDY,A;oBA8CqBnxD0B;+DAoCrBkEmD;8BAGIktDG;+EAkBAAG;oMAsBACU;wEAUCCgB;mEASLCK;0CAsCArtDoC;8EAUAstDK;8PAsBGCmB;wHAwBOCG;iBAKV/wDAAlgBuCqwDG,A;8IAyhB7BUG;iBAKV/wDAA9hBuCqwDG,A;uYAumBvBrtBuB;sCAgBTguBS;imEAoPFztDAAm3DPkEG,6E;2DA12DmBwpDAAxtCCCO,A;20BAk2CJCAA90CIDG,A;gDDtPFEmB;qNCswDHCgB;iMAiCLCoC;gCAOMCG;cAGVCa;+BAIIFkC;kCAMMGI;cAGVCiB;+FAiDFbS;AACADQ;+DAyF8BeAAIpB3BAA/qDP5yBsB,A,AAgrDHw0BM,AACACM,0B;8BAKSCAA/CXCsB,A;oKAkEY/BAAzsDP5yBsB,A;AA0sDHw0BM;AACAIK;CACAHM;sCAMSIAAzEXFsB,A;yTAyGY/BAAlvDP5yBsB,A;AAmvDHw0BM;AACAIK;CACAHM;sCAMSKAAhHXHsB,A;4FA2HmBtBG;AACfltDiE;8BAGKssDgB;sCAKGGAA/wDP5yBsB,A;AAgxDHw0BM;AACAIK;CACAHM;gFAUAMAAKUnCAAjyDP5yBsB,A,AAkyDHw0BO,AACAIM,AACAHM,0B;kKAqBmB/BO;wEA0BVsC6B;kCAKMCAAKLrCAA71DP5yBsB,A,AA81DHw0BM,AACAIM,AACAMS,WAGE1CS,AAEFiCM,0B;2DAyBSUkB;QAEACGAlBNCuB,A;kCAuBYCAAKL1CAA14DP5yBsB,A,AA24DHw0BO,AACAIM,AACAMM,AACATM,0B;qBAgBScoC;gCAKTCAAKU5CAAx6DP5yBsB,A,AAy6DHw0BO,AACAIM,AACAMM,AACATM,0B;qBA6CSgBAAtCPCiB,AADYpyBO,AACZoyBkJ,A;8CA2CFCAAKU/CAAn+DP5yBsB,A,AAo+DHw0BO,AACAIM,AACAMM,AACATM,0B;uBAcSmBSARXCwB,A;8PA4CYjDAAzhEP5yBsB,A;AA0hEHw0BO;AACAIM;AACAMK;CACATM;6FAyKOqBgB;qUA4BCCmB;qBAIkB9BiB;qBAIA+BiB;sBAIACiB;sBAItBCAAgFRCS,AACACQ,A;qQAtCQFAAqCRCS,AACACQ,A;8CA9BQFAA6BRCS,AACACQ,A;cA1BQCAA2KSn0BYAoCEo0BI,gBAEnBFiC,A,A;uBA7MQFAAqBRCS,AACACQ,A;eAlBQGAAyKSCYAqCEFI,gBAEnBFiC,A,A;cA5MYK0BA+KZNqC,AAEADAApKACS,AACACQ,A,M;oXAsBoDMoB;2DAUpCCiH;6eAsFyC/DAAv5ElB5yBc,A;AAw5Ef6yBM;AAEACM;AAEACY;sKA+CA6DkB;wBAIACkB;0FAOLPI;gBAEnBFY;qmBA0IEjwD0B;q6CAgMsB6sDI;sDAQAAI;wDASAAM;8FAoBX8DS;oGAQAnEM;sBAEQKM;kIAuCE+DQ;2NAgBTCAA9gGwBCG,A;GA+gGxBDAA/gGwBCG,A;uFAmiGpBjEO;AACAAI;8wCWxuGZkES;4BA2BRl3BU;wBA4GWASAxCSm3BAAAAn3ByB,A,a;uCAuDHo3BE;yMA2DMp3BoB;AAAAq3BW;4HAiCX5PM;oLCuNI6PiB;AACICG;sDAQhBCiB;8EA0IuBCqB;gCAGYCG;AACxBCM;sHA+BcCG;2CACDCK;0CAIbFM;mDA4EIGG;wLAkBTCwB;wBAMgBCe;AACFCuB;AACZCyB;gDAcIDyB;iBAEVZiB;AAGAcmB;uQGhyBQCU;iBAUqBp4BqB;qCAKrBo4BU;sFAoBkBp4BiB;+KAuD3Bl0BW;iBCw0EGk0BqB;OAAAAU;0mDE57DmCAwC;kBAQ9BAuC;gBA8fMAsB;uIAqdnBAAAAAAO,A;uKGl4CeAkB;kFAoBN+mBG;oqBC7BA/mB+B;qmDfmFMq4BgB;0TAqQNCO;+LA2EECmC;0BA8EHv4BiC;kDA+DQw4BgB;AAEDCO;2BAGFAO;qBAGEAU;uFAyHoBCoBFrqBcCK,A;cE4qBnCCsB;oEAKRCAAzKaCyC,A;sKX1iBVCO;2vBgCuvBCCmB;8EAqBch5Ba;qBAGpBg5B6B;qBAMKjSG;uuBCzpBakSuC;4FCsrBFCyF;+sBAAAAS;YAAAAI;+eAsOTl5B0B;CAIGm5BiF;KAAAAsEA8dAdO,iG;KA9dAcyD;OAAAA4C;66DAo7BMxoBkC;iMAoCP3QiD;0GAeIAc;2GASXuyBAvBv+CJ6GO,A;+BuB2+CaC0B;+BAGIr5Bc;mJAHJq5Ba;2BAqBGr5Bc;AAAJuyBoB;kFAYLxLG;qLA4BQ/mBc;6GAWXuyBAvBnjDJ6GO,A;+BuBujDaE0B;+BAGIt5Bc;wDAQJu5ByB;0MAaGv5Bc;AAAJuyBoB;0GAaLxLG;sMAeAyS0B;gYA4CIhBa;sFAeAAY;iPAoBEx4Be;wCAuBN+mBG;+MAiCH0S2C;OAIYXkC;iuBAmGoBS0B;mMAkBpBv5Bc;AAAJuyBa;oBAAAACvB32DZ6GY,A;0DuBw3DOrSG;iOAwEQ2SACv7DOlBa,A;YDy7DLAY;4OAsCDAgC;iFAYLAQ;sBAA4CAiB;slBAuZhDzPK;2BAAAAU;mCAtBgC4QAJznFV35BW,A;+QI+oFtB+oBS;qnBAg1BQ+Ie;g/GE0mRC7KAUhxYyBjnBW,A;AVgxYzB45BAA6tUL55BQ,A;2BA7tUKinBAUhxYyBjnBkB,A;2GVmzpCZAAA+9FJAAAea65BAAAA75BoC,A,4B,A;cA/+FxCAQ;6DAoCiBysBoL;6EAgtDXzsBAA5KkC85BQ,AACECQ,AACGCc,A;AA2E7Ch6BU;AAkGci6BAD15sCDj6BU,A;+tGErTTk6B2B;gdCmdcl6BAsBusBSAA5CnoCvBAAAzB0Bo3BAAAAp3BiC,A,A,gC,A;qzBuB6B9Bm6BS;SAAAAa;uHA2DU3BQ;iZA+BKpNgB;AAAwBAmB;AAAxBAK;oBAEAAgB;AACPAmB;AAHOAK;sCAiBGgPM;YAAXHAJ+KMj6BW,A;iBI/KKo6BY;SAsCgCCoB;AACHCY;0HAoRnBCyC;0UAmBqBbAT/CzBlB6C,A;2ESkDI1lDSAoEpB0nDe,kB;AApEFCAHy+kCJF0B,A;6IGv9kCEvnDyIAkCoBunDyB,kD;+JAMsBGATxdhCCO,A;oCSwgBNCsFAOqB9IW,gH;OAPrB8IAAWY9Ia,yD;4pCE1jBT+IyC;AACcAsD;eAErBN0B;AACAA0B;AACOE2C;AAEPF0B;AACAA0B;AACOEwC;kwBlCuHO7mDAA8CgBmrB0D,A;qMAfhClrBAAmB0BkrBqF,A;8V4B4XR+7BqB;iyG5BpQY7IW;gBAqB5B8IgB;4a4BrLsBCA0ByFuBh7BkB,A;gC1BzFvBg7BA0ByFuBh7B4B,A;6B1B4C/Ci7B6B;ksBA0RACkB;+GAiE4BCe;gBAcEn7BoB;kJAmD9Bk7BuC;ilDLprBOEwB;8JAwFACiC;uwClC/FuBr7BS;iBAAAAe;OAAAAa;4YAoKPAmB;6BAAAAqC;2MG9IGAmB;yBAAAAc;iPA2UAAmB;0XA6DAAmB;ohBG1SPs7BK;oDAaVAO;2sBC48CmB9C+B;g5BAs2BVvGS;gKoBp5EPjyBmB;yDAAAAW;UAIqB+nBgB;YAAAAAAJrB/nB4B,A;8EAWFu7BS;qSA8CICG;wqBA8HgBx7BiC;ghBA0HlBAU;sBAAAAAA0BbAAAAAAO,A,A;mbd1Tey7BG;0JAmFFz7BW;qCAgDGsyBG;+CAQkBoJK;mNAuElBpJkB;AAIIqJAA5GECe,A;kEA+GVC0B;0rCLtJHzJiB;qDAMyB0JM;AAygC3BpIqB;02BW/2BG1zBc;iMChRI+7BW;iEAQZCS;6EAYYDW;qFAoHPEW;oBACEpEY;AAA6BqEI;8CAazBrEK;kGAQLDU;kRAkIkBnQW;kGAoBAznBuC;QACP8oBwD;wDASO9oB+B;QACPm8BwD;6GAgGbCG;6CAQiB7EQ;AACLSY;uBAQdlsDgB;gFAQEswDG;kGAiBiB7EQ;AACLSY;mCAQdlsDgB;mSAsGFurDW;oCAQAgFmB;iGAiEAvwDmB;4DAOY2rDmB;AAGR3rDgB;oEAgBJAmB;gkBAwEyBwwDGApjBlBzES,AAAU0Ea,A;gCAsjBwB7EE;2BACDAQ;mDAOcMiB;AAC3BPmB;IACqBCI;+LAkBjB8EC;IAAAAAA7nBxB3ES,AAA+B4EO,A;gIAsoBC/ES;iBAElBgFAA9oBdCU,A;0DAmpBsBjFa;kJC0kBvBkFsD;8HAyMJjFU;6eKzbS33BwB;KAAAAAA6XbAAAAAAU,A,A;yMAnWew7BiB;qzBA+JiBx7B+B;qhBwB1wCJAkB;sBAAAAW;8CA6QFg7BAevDuBh7BW,A;QfuDvBg7BAevDuBh7B8B,A;sFfkS5Bm7Be;sSrBlaf5Ie;AACAAAd2fJ6GU,A;Ac1fI7GW;sUwBGesKkB;4DA0CEpVG;eAAAAiB;mBAMKAe;AAFS+QuB;AAET/QG;AAAtB8Ke;AAAsB9KgB;0BAMHAG;AAFnB8KkB;AAEmB9KgB;sHA+FeAM;qBAAAAS;iIvB5IlCqVG;iJAWYAa;AAA2BpVK;sCAMvCoVU;AAAiC/UAHnH1B/nBM,G;kBGmH0B+nBOHnH1B/nBW,A;QGoHJAc;+BASH88BS;4HA+BAAS;4GAiCAAS;4QAgDAAS;2VA0DWAiB;0CASAAU;kCAEclUASuTC5oBuB,A;wdRjiBjB+8B2D;mNAqBmBrVqB;oEAQd1nBc;AAAJuyBa;mBAAAsGAhBgfGCiB,A;0FgBheYpRQ;uGASvB6KAhBkdN6GK,A;QgB9cyCrSG;omBuBsE1B/mBc;0FAQR+mBG;2DCnCqBsEa;UAAAAI;8MvBjHD2Rc;8DAYZtRqB;iKAmDFuRiC;mUAqCACU;qYAoJNl9BY;AAAAm9Be;8VA8QqBn9BoC;glBAatB64BAjBMWCa,A;iFiBGLDAjBHKCa,A;ciBQLDAjBRKCa,A;kBiBeLDAjBfKCe,A;AiBgBLDAjBhBKCC,AAAjBMa,A;wMiB4CQPAjB5CSCW,A;iFiBwDbDAjBxDaCmB,A;oCiBiEV/RG;gCjBxdgCqWmB;s1BXoQftVK;ihDgCzOiB9nBgB;UAAAAa;8frBnMXiyBc;qRuBovCpBoLsB;wEAKFAwB;AACAAyB;weAoNqBCMA+1ClB5DAJ/7EWlB2B,A,AIm8ElBtJa,+BAIFqOOA/BY7DAJx6EQlBsB,A,4BI+6EpBjG4B,A,yD;sLAr0C8D/CG;qCAA9DxvBG;wVAuackvBG;iBAEIwKAJnhDElBmC,A;qBI6hDyBAiB;iSA47B3CtJmB;IACACa;oEAIAIa;sBACACK;oBACACa;sBADADK;kPAnlBegOuC;AACU9DAJ74DPlBc,A;AI84DlBjGAvBlsDJ6GS,A;AuBmsDqBoEW;AAHFAa;0NAssCEC2FAgBdz9BG,A;0BAhBcy9B2B;6jBA02BjBCgC;aACAC6B;cACACwB;aACAC+B;8OAaAH+B;UACAC6B;oNAoDG39BI;AADFuvBQ;2MAgEemKAJhkIElBgC,A;wCI0kIkBAiB;ioCEurNpBsFoB;AAAOCgB;wIAKzBDoB;AAAcAiB;aACdCmB;AAAaAgB;0HAIeDoB;AAAMCK;CAAAAU;odAi9CI/9BmB;sCA8JXAW;mFAumBCg+BAAs8xBuBCc,cAyBvDDAAAAAAACEEAAoFAlTO,Y,AAnFAmTAAiKAnTO,+B,A,A,A;2BA7nyB4BhrB+B;+LAkBVo+BwB;iLAkBdCAA0BDCgF,A;u0CAk7P4BCkB;4TA0GAAkB;+lBAmhClB7WyB;sMAeuBAuB;0JAsFLmTe;SAGejSAAy6cnC5oBU,A;iCAz6cmC4oBAAy6cnC5oBQ,A;k5BAv5UoBu+BkB;wiCAg0DlB1DgB;mVA0aM76BoC;AACV45BAA1sME55BW,A;IA0sMiB45BAA1sMjB55BY,A;0IAiyMQA6B;AAId45BAAryMM55BU,A;uCAuyMO45BAAvyMP55BU,A;SAwyMF45BAAxyME55BW,A;IAwyMe45BAAxyMf55BQ,A;oJAg2MQA6B;AAId45BAAp2MM55BU,A;uCAs2MF45BAAt2ME55BW,A;IAs2MmB45BAAt2MnB55BQ,A;gGA27MF2rBQ;qzCA4pJWmSoB;AAAOCmB;AAAM3WqB;AAASCmB;qHAKxCyWoB;AAAcAiB;aACdCmB;AAAaAgB;aACb3WkB;6BACACmB;wFAE4ByWoB;AAAMCmB;AAAK3WqB;AAAOCQ;CAAAAU;upCA4oC9BwTU;8CAAAAAA4DX2DoB,A;kJAjDDCwB;uCAiDCDkB;qDAIPjEI;2DA0GkCMAA9G3B2DkB,A;mBA8G2B3DwB;AAAY6DQ;qBAG9CjEAA7GAFI,A;EA6GAEwB;AAAYiEa;8bAiBNDoB;UACAEI;MAAAAc;kCAQAFoB;YACOEI;MAAAAY;iIA+yBEnGY;2EAWCoGiB;sBAaTCoC;mBAImBCU;EAAAAuC;+BAInBCAAiDDCqB,A;+CAkhCmBxGQ;qPA+Cdx4BkB;sBAAAAW;+1BAitDC66BAA9xHL2DmC,A;mrBAkoKI3DAAloKJ2DG,kvB;iwBA0rKUpEADv/uCJ6ES,A;ACw/uCMvX0B;AAObmT6C;iCAAAAQ;YAAAAAAlsKC2D2B,A;AAosKiB3DAApsKjB2DmH,A;sVA6kKDUK;iEAAAAsBAwBJ7QiC,iB;4xBkBhiwCEqKgB;8OAqCyC9PW;wBAyBflBE;qTC3C5BTU;mBAAYgTAxDgZZnIS,A;AwDhZA7KATkJuCjnBW,A;WSlJvCinBATkJuCjnBgB,A;WSlJ3Bi6BAxDgZZnIiB,A;YwDrYE+IiB;KAAAAAAuG4BlTsB,A;gBADNDK;UAAAAG;kCACMCmB;SAGAwX8B;OAAUvWApBigBZ5oBoB,A;2MG9KxBAwB;u+BmBg7EmB66BArBgjgClB2DkB,A;qHqBrigCQhGY;0BAQf+BI;sCA6B6Bv6BkB;4FAoBnBitBO;AAAuBmSAAlBDp/BWFh7FT45BAnBqotBZ55Ba,A,A,A;QqBlsnBMw6BU;qCAWGwDArBg3mCiCC0B,AAyBvDDAAAAAAACEEAAoFAlTO,Y,AAnFAmTAAiKAnTO,Q,A,A,A;AqB5inCoBqUArBq+mCpBrUO,AAAQhrBY,A;AqBn+mCcAArB66pChBAW,A;AqB/6pCcg+B2B;gEAUEh+B6B;AAEF45BArB2qnBT55Ba,A;+gBsBptsBoBu+BkB;+enB1bxB1DAHu7lCA2DqD,A;AGr7lCK3DAHq7lCL2DmC,A;uGGx6lCP1iCAuBlBAwjCuD,A;uUvBkCiBCG;gBADSC6B;mBACTDqB;AACHtFAOqIsBj6BwB,A;APrIZo6BkB;aAAAAa;gFAQVVAJ6kBQlBa,A;kVI1hBLx4BsB;qPAyDWu6BiC;AAAAA2C;kcA2B5BA2D;8FAcAAqC;AAAAAsC;AAIIvPAHysnCG6T2B,A;6iBGvpnCWnFAhB1NIlBO,A;uBgB2NpB5PAxC0GwB5oBS,iB;AwC1GxBynBY;WAAAAG;sBAAAAwC;8QAaoB8SsB;AACKxT6C;qFAOHwTwC;6GAmBR/BQ;6KAgBhBiHM;AAEACiEAlFEnFuC,A;AAmFFoFmF;kGAUqCnHa;oOAiBrCiHS;+pBA+BqD5EAH4rlCnBAAA9G3B2DyB,A,A;AG9klC8CoBAHi9YhB5/BS,AAAkBqxBAA9LfrxBa,A,A;AGnxYa66BAH4rlCP6DY,A;+JGhrlCjB3XS;uHAgBvB0YY;kOA0BQIO;AAAoBCO;2BAEHCsB;AACQCS;qBAEcAiE;AAC7CC6D;0pBElaN1F0B;AACAA0B;AACOE2C;AAEPF0B;AACAA0B;AACOEM;ygsBtC+vCQyF0G;mEAUAC8G;iEAUACuD;mEAUAC2D;wHwBnxBgCCU;2cMkB/BCM;qtC5B1ZOCAAsE3B1hCAEnJAv+BuB,A,A;AA+EkBqTAA8CgBmrBAANKz+B" + } +} diff --git a/flutter/flutter/static-assets/favicon.png b/flutter/flutter/static-assets/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..43d2ffa079ca147a221437817dbc694d66a2a302 GIT binary patch literal 1767 zcmVr1gM)#AhSs$=eK0WK)CF2vH5m*T78Vv7 zOqGGvxA(cvvG46mUuvh$T1!8DmE**HzxO9;TsuQliJN|J!pK@zgpAc6W;K`ZbSrnoP`wF$fl7_5*8Ivypwf=W;~ z;08%MQORYPC_tGHZSh$O#Av43|^d-UX&HM!T~7!)g1(@JfEf{VV=B< z1V2h$vz|_)(42Iv;nMQ6gnaC=x-iE)V9>bg95MTIge3HB2W~Qqm*!+BpztvG$qKPZI96W} zvtB&GrNG5*kOai6|CR7-+*88m$TiE!O#Aqvg{$I60STah90fcj;bJTAHe50;DvqB` zEg>!%3Dgd1>303*qUn95wS&WE(*hLuC37)V?aQjQ(>?on4V>`^}$4&P2qUwF63p3!p z6R>6i5YrB(Dm-K?OMsE#XJVfc&SVMlTc3)@NKU0J3269ELe@xN0Za64hocS>SoY(& zL%m;r$g#En;{)>X$|7Ng63+K0K^DLzXfDCDx@#YPVSI{DxIP(XJHy#-j`B3b#X_yixgMa&bn3s?yPcssC4`0@Pr z>UDqkrA2oMvH(^Il;ArzoKINx_2)YKwKcf{c=joHgRLFHM+xq^ZVMp3+9h+pM_8DNoMAB-dVobWmYAS9rt1as~o-UgNSX!>_*0eKDx64<-L zsr_Sf&ksWK5X_wO=HsvVW@R@4avN{~b`kO)Q2hp=EFi=-pa;L0N~k1s7QiKN5q3y| z{H02#@|Qmd>8SNrVChicf`ASZgo+R(>{|f;A|&P#WC45@h!O<2gp5n*5WLs|%h5Io z&-zA4k|2tpV}-BR_;rW=0{Hbbr8g2rC_$(INdgxkz-9uI;7AhAx(eXe)2I^YTj5fu z07-%@V%uQ+#@-^?#TPmIvVf-~Xcr}rfKnDf$id05c9_^NzK{etcv%3Kz^)CFfYM7u z0sTc>5&YuI)(f)z1qhX(H3Ggi0-)qG;MpQ%*z;uxJkb6E_~m7Pp-})}1w7y{P|87X zMF?8JdR00$fprxiY?Jv$f)^#)PoTa$P7;P^(nEroXQBYUjX$q968u%Jy_6(e-Iwpz z`wQ&juE(vPtb`I*EA&`h0mZHYjw%V!O;ZVLl+daK6k%2i_w{N+cwBf+b515f%gmO% z0;CNdCA9us9ZyP?@Hi6?I4mR~j0z_-S>8&HnB#ImfGojJKnEEBu4V8D90ETn>T?(4 zMG`tr=$)vA?}qayISJ<{js z)mqSPcf)OyC94E3VQ2vf2>>`6^tPFngqTYhz5-+c150@O0%QqqUjRvn1qp9gfGmM1 zUw{G;1RSy*Qj(CpFloi)@B(OKcajFkv|3YK_es*=t)6!)-Mumr002ov JPDHLkV1ksy9Tflo literal 0 HcmV?d00001 diff --git a/flutter/flutter/static-assets/github.css b/flutter/flutter/static-assets/github.css new file mode 100644 index 000000000..791932b87 --- /dev/null +++ b/flutter/flutter/static-assets/github.css @@ -0,0 +1,99 @@ +/* + +github.com style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: #333; + background: #f8f8f8; +} + +.hljs-comment, +.hljs-quote { + color: #998; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-subst { + color: #333; + font-weight: bold; +} + +.hljs-number, +.hljs-literal, +.hljs-variable, +.hljs-template-variable, +.hljs-tag .hljs-attr { + color: #008080; +} + +.hljs-string, +.hljs-doctag { + color: #d14; +} + +.hljs-title, +.hljs-section, +.hljs-selector-id { + color: #900; + font-weight: bold; +} + +.hljs-subst { + font-weight: normal; +} + +.hljs-type, +.hljs-class .hljs-title { + color: #458; + font-weight: bold; +} + +.hljs-tag, +.hljs-name, +.hljs-attribute { + color: #000080; + font-weight: normal; +} + +.hljs-regexp, +.hljs-link { + color: #009926; +} + +.hljs-symbol, +.hljs-bullet { + color: #990073; +} + +.hljs-built_in, +.hljs-builtin-name { + color: #0086b3; +} + +.hljs-meta { + color: #999; + font-weight: bold; +} + +.hljs-deletion { + background: #fdd; +} + +.hljs-addition { + background: #dfd; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/flutter/flutter/static-assets/highlight.pack.js b/flutter/flutter/static-assets/highlight.pack.js new file mode 100644 index 000000000..dabdd3c0f --- /dev/null +++ b/flutter/flutter/static-assets/highlight.pack.js @@ -0,0 +1,775 @@ +/*! + Highlight.js v11.0.1 (git: 1cf31f015d) + (c) 2006-2021 Ivan Sagalaev and other contributors + License: BSD-3-Clause + */ +var hljs=function(){"use strict";var e={exports:{}};function t(e){ +return e instanceof Map?e.clear=e.delete=e.set=()=>{ +throw Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=()=>{ +throw Error("set is read-only") +}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((n=>{var i=e[n] +;"object"!=typeof i||Object.isFrozen(i)||t(i)})),e} +e.exports=t,e.exports.default=t;var n=e.exports;class i{constructor(e){ +void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} +ignoreMatch(){this.isMatchIgnored=!0}}function r(e){ +return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") +}function s(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t] +;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const o=e=>!!e.kind +;class a{constructor(e,t){ +this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){ +this.buffer+=r(e)}openNode(e){if(!o(e))return;let t=e.kind +;t=e.sublanguage?"language-"+t:((e,{prefix:t})=>{if(e.includes(".")){ +const n=e.split(".") +;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ") +}return`${t}${e}`})(t,{prefix:this.classPrefix}),this.span(t)}closeNode(e){ +o(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ +this.buffer+=``}}class l{constructor(){this.rootNode={ +children:[]},this.stack=[this.rootNode]}get top(){ +return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ +this.top.children.push(e)}openNode(e){const t={kind:e,children:[]} +;this.add(t),this.stack.push(t)}closeNode(){ +if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ +for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} +walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){ +return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t), +t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){ +"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ +l._collapse(e)})))}}class c extends l{constructor(e){super(),this.options=e} +addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())} +addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root +;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){ +return new a(this,this.options).value()}finalize(){return!0}}function g(e){ +return e?"string"==typeof e?e:e.source:null}function d(...e){ +return e.map((e=>g(e))).join("")}function u(...e){return"("+((e=>{ +const t=e[e.length-1] +;return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{} +})(e).capture?"":"?:")+e.map((e=>g(e))).join("|")+")"}function h(e){ +return RegExp(e.toString()+"|").exec("").length-1} +const f=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./ +;function p(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n +;let i=g(e),r="";for(;i.length>0;){const e=f.exec(i);if(!e){r+=i;break} +r+=i.substring(0,e.index), +i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?r+="\\"+(Number(e[1])+t):(r+=e[0], +"("===e[0]&&n++)}return r})).map((e=>`(${e})`)).join(t)} +const b="[a-zA-Z]\\w*",m="[a-zA-Z_]\\w*",E="\\b\\d+(\\.\\d+)?",x="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",y="\\b(0b[01]+)",w={ +begin:"\\\\[\\s\\S]",relevance:0},_={scope:"string",begin:"'",end:"'", +illegal:"\\n",contains:[w]},v={scope:"string",begin:'"',end:'"',illegal:"\\n", +contains:[w]},O=(e,t,n={})=>{const i=s({scope:"comment",begin:e,end:t, +contains:[]},n);i.contains.push({scope:"doctag", +begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", +end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0}) +;const r=u("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/) +;return i.contains.push({begin:d(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i +},k=O("//","$"),N=O("/\\*","\\*/"),S=O("#","$");var M=Object.freeze({ +__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:b,UNDERSCORE_IDENT_RE:m, +NUMBER_RE:E,C_NUMBER_RE:x,BINARY_NUMBER_RE:y, +RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", +SHEBANG:(e={})=>{const t=/^#![ ]*\// +;return e.binary&&(e.begin=d(t,/.*\b/,e.binary,/\b.*/)),s({scope:"meta",begin:t, +end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)}, +BACKSLASH_ESCAPE:w,APOS_STRING_MODE:_,QUOTE_STRING_MODE:v,PHRASAL_WORDS_MODE:{ +begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ +},COMMENT:O,C_LINE_COMMENT_MODE:k,C_BLOCK_COMMENT_MODE:N,HASH_COMMENT_MODE:S, +NUMBER_MODE:{scope:"number",begin:E,relevance:0},C_NUMBER_MODE:{scope:"number", +begin:x,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:y,relevance:0}, +REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//, +end:/\/[gimuy]*/,illegal:/\n/,contains:[w,{begin:/\[/,end:/\]/,relevance:0, +contains:[w]}]}]},TITLE_MODE:{scope:"title",begin:b,relevance:0}, +UNDERSCORE_TITLE_MODE:{scope:"title",begin:m,relevance:0},METHOD_GUARD:{ +begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{ +"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{ +t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function R(e,t){ +"."===e.input[e.index-1]&&t.ignoreMatch()}function j(e,t){ +void 0!==e.className&&(e.scope=e.className,delete e.className)}function A(e,t){ +t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", +e.__beforeBegin=R,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, +void 0===e.relevance&&(e.relevance=0))}function I(e,t){ +Array.isArray(e.illegal)&&(e.illegal=u(...e.illegal))}function B(e,t){ +if(e.match){ +if(e.begin||e.end)throw Error("begin & end are not supported with match") +;e.begin=e.match,delete e.match}}function T(e,t){ +void 0===e.relevance&&(e.relevance=1)}const L=(e,t)=>{if(!e.beforeMatch)return +;if(e.starts)throw Error("beforeMatch cannot be used with starts") +;const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t] +})),e.keywords=n.keywords, +e.begin=d(n.beforeMatch,d("(?=",n.begin,")")),e.starts={relevance:0, +contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch +},D=["of","and","for","in","not","or","if","then","parent","list","value"] +;function P(e,t,n="keyword"){const i=Object.create(null) +;return"string"==typeof e?r(n,e.split(" ")):Array.isArray(e)?r(n,e):Object.keys(e).forEach((n=>{ +Object.assign(i,P(e[n],t,n))})),i;function r(e,n){ +t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|") +;i[n[0]]=[e,C(n[0],n[1])]}))}}function C(e,t){ +return t?Number(t):(e=>D.includes(e.toLowerCase()))(e)?0:1}const H={},$=e=>{ +console.error(e)},U=(e,...t)=>{console.log("WARN: "+e,...t)},z=(e,t)=>{ +H[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),H[`${e}/${t}`]=!0) +},K=Error();function W(e,t,{key:n}){let i=0;const r=e[n],s={},o={} +;for(let e=1;e<=t.length;e++)o[e+i]=r[e],s[e+i]=!0,i+=h(t[e-1]) +;e[n]=o,e[n]._emit=s,e[n]._multi=!0}function X(e){(e=>{ +e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope, +delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={ +_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope +}),(e=>{if(Array.isArray(e.begin)){ +if(e.skip||e.excludeBegin||e.returnBegin)throw $("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), +K +;if("object"!=typeof e.beginScope||null===e.beginScope)throw $("beginScope must be object"), +K;W(e,e.begin,{key:"beginScope"}),e.begin=p(e.begin,{joinWith:""})}})(e),(e=>{ +if(Array.isArray(e.end)){ +if(e.skip||e.excludeEnd||e.returnEnd)throw $("skip, excludeEnd, returnEnd not compatible with endScope: {}"), +K +;if("object"!=typeof e.endScope||null===e.endScope)throw $("endScope must be object"), +K;W(e,e.end,{key:"endScope"}),e.end=p(e.end,{joinWith:""})}})(e)}function G(e){ +function t(t,n){return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))} +class n{constructor(){ +this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} +addRule(e,t){ +t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]), +this.matchAt+=h(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) +;const e=this.regexes.map((e=>e[1]));this.matcherRe=t(p(e,{joinWith:"|" +}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex +;const t=this.matcherRe.exec(e);if(!t)return null +;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n] +;return t.splice(0,n),Object.assign(t,i)}}class i{constructor(){ +this.rules=[],this.multiRegexes=[], +this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ +if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n +;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))), +t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){ +return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){ +this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){ +const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex +;let n=t.exec(e) +;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{ +const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)} +return n&&(this.regexIndex+=n.position+1, +this.regexIndex===this.count&&this.considerAll()),n}} +if(e.compilerExtensions||(e.compilerExtensions=[]), +e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") +;return e.classNameAliases=s(e.classNameAliases||{}),function n(r,o){const a=r +;if(r.isCompiled)return a +;[j,B,X,L].forEach((e=>e(r,o))),e.compilerExtensions.forEach((e=>e(r,o))), +r.__beforeBegin=null,[A,I,T].forEach((e=>e(r,o))),r.isCompiled=!0;let l=null +;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords), +l=r.keywords.$pattern, +delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=P(r.keywords,e.case_insensitive)), +a.keywordPatternRe=t(l,!0), +o&&(r.begin||(r.begin=/\B|\b/),a.beginRe=t(r.begin),r.end||r.endsWithParent||(r.end=/\B|\b/), +r.end&&(a.endRe=t(r.end)), +a.terminatorEnd=g(r.end)||"",r.endsWithParent&&o.terminatorEnd&&(a.terminatorEnd+=(r.end?"|":"")+o.terminatorEnd)), +r.illegal&&(a.illegalRe=t(r.illegal)), +r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>s(e,{ +variants:null},t)))),e.cachedVariants?e.cachedVariants:Z(e)?s(e,{ +starts:e.starts?s(e.starts):null +}):Object.isFrozen(e)?s(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{n(e,a) +})),r.starts&&n(r.starts,o),a.matcher=(e=>{const t=new i +;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin" +}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end" +}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(a),a}(e)}function Z(e){ +return!!e&&(e.endsWithParent||Z(e.starts))}const F=r,V=s,q=Symbol("nomatch") +;var J=(e=>{const t=Object.create(null),r=Object.create(null),s=[];let o=!0 +;const a="Could not find the language '{}', did you forget to load/include a language module?",l={ +disableAutodetect:!0,name:"Plain text",contains:[]};let g={ +ignoreUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i, +languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", +cssSelector:"pre code",languages:null,__emitter:c};function d(e){ +return g.noHighlightRe.test(e)}function u(e,t,n,i){let r="",s="" +;"object"==typeof t?(r=e, +n=t.ignoreIllegals,s=t.language,i=void 0):(z("10.7.0","highlight(lang, code, ...args) has been deprecated."), +z("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), +s=e,r=t),void 0===n&&(n=!0);const o={code:r,language:s};w("before:highlight",o) +;const a=o.result?o.result:h(o.language,o.code,n,i) +;return a.code=o.code,w("after:highlight",a),a}function h(e,n,r,s){ +const l=Object.create(null);function c(){if(!k.keywords)return void S.addText(M) +;let e=0;k.keywordPatternRe.lastIndex=0;let t=k.keywordPatternRe.exec(M),n="" +;for(;t;){n+=M.substring(e,t.index) +;const r=_.case_insensitive?t[0].toLowerCase():t[0],s=(i=r,k.keywords[i]);if(s){ +const[e,i]=s +;if(S.addText(n),n="",l[r]=(l[r]||0)+1,l[r]<=7&&(R+=i),e.startsWith("_"))n+=t[0];else{ +const n=_.classNameAliases[e]||e;S.addKeyword(t[0],n)}}else n+=t[0] +;e=k.keywordPatternRe.lastIndex,t=k.keywordPatternRe.exec(M)}var i +;n+=M.substr(e),S.addText(n)}function d(){null!=k.subLanguage?(()=>{ +if(""===M)return;let e=null;if("string"==typeof k.subLanguage){ +if(!t[k.subLanguage])return void S.addText(M) +;e=h(k.subLanguage,M,!0,N[k.subLanguage]),N[k.subLanguage]=e._top +}else e=f(M,k.subLanguage.length?k.subLanguage:null) +;k.relevance>0&&(R+=e.relevance),S.addSublanguage(e._emitter,e.language) +})():c(),M=""}function u(e,t){let n=1;for(;void 0!==t[n];){if(!e._emit[n]){n++ +;continue}const i=_.classNameAliases[e[n]]||e[n],r=t[n] +;i?S.addKeyword(r,i):(M=r,c(),M=""),n++}}function p(e,t){ +return e.scope&&"string"==typeof e.scope&&S.openNode(_.classNameAliases[e.scope]||e.scope), +e.beginScope&&(e.beginScope._wrap?(S.addKeyword(M,_.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), +M=""):e.beginScope._multi&&(u(e.beginScope,t),M="")),k=Object.create(e,{parent:{ +value:k}}),k}function b(e,t,n){let r=((e,t)=>{const n=e&&e.exec(t) +;return n&&0===n.index})(e.endRe,n);if(r){if(e["on:end"]){const n=new i(e) +;e["on:end"](t,n),n.isMatchIgnored&&(r=!1)}if(r){ +for(;e.endsParent&&e.parent;)e=e.parent;return e}} +if(e.endsWithParent)return b(e.parent,t,n)}function m(e){ +return 0===k.matcher.regexIndex?(M+=e[0],1):(I=!0,0)}function x(e){ +const t=e[0],i=n.substr(e.index),r=b(k,e,i);if(!r)return q;const s=k +;k.endScope&&k.endScope._wrap?(d(), +S.addKeyword(t,k.endScope._wrap)):k.endScope&&k.endScope._multi?(d(), +u(k.endScope,e)):s.skip?M+=t:(s.returnEnd||s.excludeEnd||(M+=t), +d(),s.excludeEnd&&(M=t));do{ +k.scope&&!k.isMultiClass&&S.closeNode(),k.skip||k.subLanguage||(R+=k.relevance), +k=k.parent}while(k!==r.parent) +;return r.starts&&p(r.starts,e),s.returnEnd?0:t.length}let y={};function w(t,s){ +const a=s&&s[0];if(M+=t,null==a)return d(),0 +;if("begin"===y.type&&"end"===s.type&&y.index===s.index&&""===a){ +if(M+=n.slice(s.index,s.index+1),!o){const t=Error(`0 width match regex (${e})`) +;throw t.languageName=e,t.badRule=y.rule,t}return 1} +if(y=s,"begin"===s.type)return(e=>{ +const t=e[0],n=e.rule,r=new i(n),s=[n.__beforeBegin,n["on:begin"]] +;for(const n of s)if(n&&(n(e,r),r.isMatchIgnored))return m(t) +;return n.skip?M+=t:(n.excludeBegin&&(M+=t), +d(),n.returnBegin||n.excludeBegin||(M=t)),p(n,e),n.returnBegin?0:t.length})(s) +;if("illegal"===s.type&&!r){ +const e=Error('Illegal lexeme "'+a+'" for mode "'+(k.scope||"")+'"') +;throw e.mode=k,e}if("end"===s.type){const e=x(s);if(e!==q)return e} +if("illegal"===s.type&&""===a)return 1 +;if(A>1e5&&A>3*s.index)throw Error("potential infinite loop, way more iterations than matches") +;return M+=a,a.length}const _=E(e) +;if(!_)throw $(a.replace("{}",e)),Error('Unknown language: "'+e+'"') +;const v=G(_);let O="",k=s||v;const N={},S=new g.__emitter(g);(()=>{const e=[] +;for(let t=k;t!==_;t=t.parent)t.scope&&e.unshift(t.scope) +;e.forEach((e=>S.openNode(e)))})();let M="",R=0,j=0,A=0,I=!1;try{ +for(k.matcher.considerAll();;){ +A++,I?I=!1:k.matcher.considerAll(),k.matcher.lastIndex=j +;const e=k.matcher.exec(n);if(!e)break;const t=w(n.substring(j,e.index),e) +;j=e.index+t}return w(n.substr(j)),S.closeAllNodes(),S.finalize(),O=S.toHTML(),{ +language:e,value:O,relevance:R,illegal:!1,_emitter:S,_top:k}}catch(t){ +if(t.message&&t.message.includes("Illegal"))return{language:e,value:F(n), +illegal:!0,relevance:0,_illegalBy:{message:t.message,index:j, +context:n.slice(j-100,j+100),mode:t.mode,resultSoFar:O},_emitter:S};if(o)return{ +language:e,value:F(n),illegal:!1,relevance:0,errorRaised:t,_emitter:S,_top:k} +;throw t}}function f(e,n){n=n||g.languages||Object.keys(t);const i=(e=>{ +const t={value:F(e),illegal:!1,relevance:0,_top:l,_emitter:new g.__emitter(g)} +;return t._emitter.addText(e),t})(e),r=n.filter(E).filter(y).map((t=>h(t,e,!1))) +;r.unshift(i);const s=r.sort(((e,t)=>{ +if(e.relevance!==t.relevance)return t.relevance-e.relevance +;if(e.language&&t.language){if(E(e.language).supersetOf===t.language)return 1 +;if(E(t.language).supersetOf===e.language)return-1}return 0})),[o,a]=s,c=o +;return c.secondBest=a,c}function p(e){let t=null;const n=(e=>{ +let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"" +;const n=g.languageDetectRe.exec(t);if(n){const t=E(n[1]) +;return t||(U(a.replace("{}",n[1])), +U("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"} +return t.split(/\s+/).find((e=>d(e)||E(e)))})(e);if(d(n))return +;w("before:highlightElement",{el:e,language:n +}),!g.ignoreUnescapedHTML&&e.children.length>0&&(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), +console.warn("https://github.com/highlightjs/highlight.js/issues/2886"), +console.warn(e)),t=e;const i=t.textContent,s=n?u(i,{language:n,ignoreIllegals:!0 +}):f(i);e.innerHTML=s.value,((e,t,n)=>{const i=t&&r[t]||n +;e.classList.add("hljs"),e.classList.add("language-"+i) +})(e,n,s.language),e.result={language:s.language,re:s.relevance, +relevance:s.relevance},s.secondBest&&(e.secondBest={ +language:s.secondBest.language,relevance:s.secondBest.relevance +}),w("after:highlightElement",{el:e,result:s,text:i})}let b=!1;function m(){ +"loading"!==document.readyState?document.querySelectorAll(g.cssSelector).forEach(p):b=!0 +}function E(e){return e=(e||"").toLowerCase(),t[e]||t[r[e]]} +function x(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ +r[e.toLowerCase()]=t}))}function y(e){const t=E(e) +;return t&&!t.disableAutodetect}function w(e,t){const n=e;s.forEach((e=>{ +e[n]&&e[n](t)}))} +"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ +b&&m()}),!1),Object.assign(e,{highlight:u,highlightAuto:f,highlightAll:m, +highlightElement:p, +highlightBlock:e=>(z("10.7.0","highlightBlock will be removed entirely in v12.0"), +z("10.7.0","Please use highlightElement now."),p(e)),configure:e=>{g=V(g,e)}, +initHighlighting:()=>{ +m(),z("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")}, +initHighlightingOnLoad:()=>{ +m(),z("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.") +},registerLanguage:(n,i)=>{let r=null;try{r=i(e)}catch(e){ +if($("Language definition for '{}' could not be registered.".replace("{}",n)), +!o)throw e;$(e),r=l} +r.name||(r.name=n),t[n]=r,r.rawDefinition=i.bind(null,e),r.aliases&&x(r.aliases,{ +languageName:n})},unregisterLanguage:e=>{delete t[e] +;for(const t of Object.keys(r))r[t]===e&&delete r[t]}, +listLanguages:()=>Object.keys(t),getLanguage:E,registerAliases:x, +autoDetection:y,inherit:V,addPlugin:e=>{(e=>{ +e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{ +e["before:highlightBlock"](Object.assign({block:t.el},t)) +}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{ +e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),s.push(e)} +}),e.debugMode=()=>{o=!1},e.safeMode=()=>{o=!0},e.versionString="11.0.1" +;for(const e in M)"object"==typeof M[e]&&n(M[e]);return Object.assign(e,M),e +})({}),Y=Object.freeze({__proto__:null});const Q=J +;for(const e of Object.keys(Y)){const t=e.replace("grmr_","") +;Q.registerLanguage(t,Y[e])}return Q}() +;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);hljs.registerLanguage("xml",(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")} +function a(...n){return n.map((n=>e(n))).join("")}function s(...n){ +return"("+((e=>{const n=e[e.length-1] +;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{} +})(n).capture?"":"?:")+n.map((n=>e(n))).join("|")+")"}return e=>{ +const t=a(/[A-Z_]/,a("(?:",/[A-Z0-9_.-]*:/,")?"),/[A-Z0-9_.-]*/),i={ +className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},c={begin:/\s/, +contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] +},r=e.inherit(c,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{ +className:"string"}),g=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),m={ +endsWithParent:!0,illegal:/`]+/}]}]}]};return{ +name:"HTML, XML", +aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], +case_insensitive:!0,contains:[{className:"meta",begin://, +relevance:10,contains:[c,g,l,r,{begin:/\[/,end:/\]/,contains:[{className:"meta", +begin://,contains:[c,r,g,l]}]}]},e.COMMENT(//,{ +relevance:10}),{begin://,relevance:10},i,{ +className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{ +end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{ +end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ +className:"tag",begin:/<>|<\/>/},{className:"tag", +begin:a(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name", +begin:t,relevance:0,starts:m}]},{className:"tag",begin:a(/<\//,n(a(t,/>/))), +contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0, +endsParent:!0}]}]}}})());hljs.registerLanguage("markdown",(()=>{"use strict";function n(...n){ +return n.map((n=>{return(e=n)?"string"==typeof e?e:e.source:null;var e +})).join("")}return e=>{const a={begin:/<\/?[A-Za-z_]/,end:">", +subLanguage:"xml",relevance:0},i={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0 +},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, +relevance:2},{begin:n(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), +relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ +begin:/\[.+?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{ +className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, +returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", +excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", +end:"\\]",excludeBegin:!0,excludeEnd:!0}]},s={className:"strong",contains:[], +variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},c={ +className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{ +begin:/_(?!_)/,end:/_/,relevance:0}]};s.contains.push(c),c.contains.push(s) +;let t=[a,i] +;return s.contains=s.contains.concat(t),c.contains=c.contains.concat(t), +t=t.concat(s,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ +className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:t},{ +begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", +contains:t}]}]},a,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", +end:"\\s+",excludeEnd:!0},s,c,{className:"quote",begin:"^>\\s+",contains:t, +end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ +begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ +begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", +contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ +begin:"^[-\\*]{3,}",end:"$"},i,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ +className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ +className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})());hljs.registerLanguage("css",(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse() +;return n=>{const a=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},HEXCOLOR:{ +scope:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"}, +ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0}}))(n),l=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS", +case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"}, +classNameAliases:{keyframePosition:"selector-tag"}, +contains:[n.C_BLOCK_COMMENT_MODE,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/ +},a.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0 +},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 +},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ +begin:":("+i.join("|")+")"},{begin:"::("+o.join("|")+")"}]},{ +className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{begin:":",end:"[;}]", +contains:[a.HEXCOLOR,a.IMPORTANT,a.CSS_NUMBER_MODE,...l,{ +begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" +},contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}] +},{className:"built_in",begin:/[\w-]+(?=\()/}]},{ +begin:(s=/@/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",s,")")), +end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword", +begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0, +relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only", +attribute:t.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute" +},...l,a.CSS_NUMBER_MODE]}]},{className:"selector-tag", +begin:"\\b("+e.join("|")+")\\b"}]};var s}})());hljs.registerLanguage("plaintext",(()=>{"use strict";return t=>({ +name:"Plain text",aliases:["text","txt"],disableAutodetect:!0})})());hljs.registerLanguage("bash",(()=>{"use strict";function e(...e){ +return e.map((e=>{return(s=e)?"string"==typeof s?s:s.source:null;var s +})).join("")}return s=>{const n={},t={begin:/\$\{/,end:/\}/,contains:["self",{ +begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{ +begin:e(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},t]});const a={ +className:"subst",begin:/\$\(/,end:/\)/,contains:[s.BACKSLASH_ESCAPE]},i={ +begin:/<<-?\s*(?=\w+)/,starts:{contains:[s.END_SAME_AS_BEGIN({begin:/(\w+)/, +end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/, +contains:[s.BACKSLASH_ESCAPE,n,a]};a.contains.push(c);const o={begin:/\$\(\(/, +end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},s.NUMBER_MODE,n] +},r=s.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 +}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, +contains:[s.inherit(s.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ +name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z._-]+\b/, +keyword:["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"], +literal:["true","false"], +built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp" +},contains:[r,s.SHEBANG(),l,o,s.HASH_COMMENT_MODE,i,c,{className:"",begin:/\\"/ +},{className:"string",begin:/'/,end:/'/},n]}}})());hljs.registerLanguage("kotlin",(()=>{"use strict" +;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={ +className:"number",variants:[{ +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ +begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{ +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], +relevance:0};return e=>{const n={ +keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual", +built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing", +literal:"true false null"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@" +},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},t={ +className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string", +variants:[{begin:'"""',end:'"""(?=[^"])',contains:[t,s]},{begin:"'",end:"'", +illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/, +contains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={ +className:"meta", +begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?" +},c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/, +end:/\)/,contains:[e.inherit(r,{className:"string"})]}] +},o=a,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={ +variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/, +contains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d], +{name:"Kotlin",aliases:["kt","kts"],keywords:n, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag", +begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,{className:"keyword", +begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol", +begin:/@\w+/}]}},i,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$", +returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{ +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://, +keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/, +endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/, +endsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0 +},e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{className:"class", +beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0, +illegal:"extends implements",contains:[{ +beginKeywords:"public protected internal private constructor" +},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0, +excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/, +excludeBegin:!0,returnEnd:!0},l,c]},r,{className:"meta",begin:"^#!/usr/bin/env", +end:"$",illegal:"\n"},o]}}})());hljs.registerLanguage("diff",(()=>{"use strict";function e(...e){ +return"("+((e=>{const n=e[e.length-1] +;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{} +})(e).capture?"":"?:")+e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null +;var n})).join("|")+")"}return n=>({name:"Diff",aliases:["patch"],contains:[{ +className:"meta",relevance:10, +match:e(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/) +},{className:"comment",variants:[{ +begin:e(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/), +end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{ +className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/, +end:/$/}]})})());hljs.registerLanguage("shell",(()=>{"use strict";return s=>({ +name:"Shell Session",aliases:["console","shellsession"],contains:[{ +className:"meta",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{ +end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]})})());hljs.registerLanguage("json",(()=>{"use strict";return e=>({name:"JSON", +contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01 +},{match:/[{}[\],:]/,className:"punctuation",relevance:0},e.QUOTE_STRING_MODE,{ +beginKeywords:"true false null" +},e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}) +})());hljs.registerLanguage("java",(()=>{"use strict" +;var e="\\.([0-9](_*[0-9])*)",a="[0-9a-fA-F](_*[0-9a-fA-F])*",n={ +className:"number",variants:[{ +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ +begin:`\\b0[xX]((${a})\\.?|(${a})?\\.(${a}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${a})[lL]?\\b`},{ +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], +relevance:0};function s(e,a,n){return-1===n?"":e.replace(a,(t=>s(e,a,n-1)))} +return e=>{ +const a="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",t=a+s("(?:<"+a+"~~~(?:\\s*,\\s*"+a+"~~~)*>)?",/~~~/g,2),i={ +keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do"], +literal:["false","true","null"], +type:["char","boolean","long","float","int","byte","short","double"], +built_in:["super","this"]},r={className:"meta",begin:"@"+a,contains:[{ +begin:/\(/,end:/\)/,contains:["self"]}]},l={className:"params",begin:/\(/, +end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0} +;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, +relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ +begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ +match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,a],className:{ +1:"keyword",3:"title.class"}},{begin:[a,/\s+/,a,/\s+/,/=/],className:{1:"type", +3:"variable",5:"operator"}},{begin:[/record/,/\s+/,a],className:{1:"keyword", +3:"title.class"},contains:[l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +beginKeywords:"new throw return else",relevance:0},{ +begin:["(?:"+t+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{ +2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/, +end:/\)/,keywords:i,relevance:0, +contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,n,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},n,r]}}})());hljs.registerLanguage("objectivec",(()=>{"use strict";return e=>{ +const n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n, +keyword:["@interface","@class","@protocol","@implementation"]};return{ +name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"], +keywords:{$pattern:n, +keyword:["int","float","while","char","export","sizeof","typedef","const","struct","for","union","unsigned","long","volatile","static","bool","mutable","if","do","return","goto","void","enum","else","break","extern","asm","case","short","default","double","register","explicit","signed","typename","this","switch","continue","wchar_t","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","super","unichar","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"], +literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"], +built_in:["BOOL","dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"] +},illegal:"/,end:/$/,illegal:"\\n" +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class", +begin:"("+_.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:_, +contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE, +relevance:0}]}}})());hljs.registerLanguage("dart",(()=>{"use strict";return e=>{const n={ +className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"}]},a={className:"subst", +variants:[{begin:/\$\{/,end:/\}/}],keywords:"true false null this is new super" +},t={className:"string",variants:[{begin:"r'''",end:"'''"},{begin:'r"""', +end:'"""'},{begin:"r'",end:"'",illegal:"\\n"},{begin:'r"',end:'"',illegal:"\\n" +},{begin:"'''",end:"'''",contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:'"""', +end:'"""',contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:"'",end:"'",illegal:"\\n", +contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:'"',end:'"',illegal:"\\n", +contains:[e.BACKSLASH_ESCAPE,n,a]}]};a.contains=[e.C_NUMBER_MODE,t] +;const i=["Comparable","DateTime","Duration","Function","Iterable","Iterator","List","Map","Match","Object","Pattern","RegExp","Set","Stopwatch","String","StringBuffer","StringSink","Symbol","Type","Uri","bool","double","int","num","Element","ElementList"],r=i.map((e=>e+"?")) +;return{name:"Dart",keywords:{ +keyword:["abstract","as","assert","async","await","break","case","catch","class","const","continue","covariant","default","deferred","do","dynamic","else","enum","export","extends","extension","external","factory","false","final","finally","for","Function","get","hide","if","implements","import","in","inferface","is","late","library","mixin","new","null","on","operator","part","required","rethrow","return","set","show","static","super","switch","sync","this","throw","true","try","typedef","var","void","while","with","yield"], +built_in:i.concat(r).concat(["Never","Null","dynamic","print","document","querySelector","querySelectorAll","window"]), +$pattern:/[A-Za-z][A-Za-z0-9_]*\??/}, +contains:[t,e.COMMENT(/\/\*\*(?!\/)/,/\*\//,{subLanguage:"markdown",relevance:0 +}),e.COMMENT(/\/{3,} ?/,/$/,{contains:[{subLanguage:"markdown",begin:".", +end:"$",relevance:0}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{ +className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0, +contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE] +},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"},{begin:"=>"}]}}})());hljs.registerLanguage("ruby",(()=>{"use strict";function e(e){ +return n("(?=",e,")")}function n(...e){return e.map((e=>{ +return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return a=>{ +const i="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",s={ +keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__", +built_in:"proc lambda",literal:"true false nil"},r={className:"doctag", +begin:"@[A-Za-z]+"},b={begin:"#<",end:">"},c=[a.COMMENT("#","$",{contains:[r] +}),a.COMMENT("^=begin","^=end",{contains:[r],relevance:10 +}),a.COMMENT("^__END__","\\n$")],t={className:"subst",begin:/#\{/,end:/\}/, +keywords:s},g={className:"string",contains:[a.BACKSLASH_ESCAPE,t],variants:[{ +begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/, +end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{ +begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/, +end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{ +begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{ +begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ +begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ +begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ +begin:n(/<<[-~]?'?/,e(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)), +contains:[a.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/, +contains:[a.BACKSLASH_ESCAPE,t]})]}]},d="[0-9](_?[0-9])*",l={className:"number", +relevance:0,variants:[{ +begin:`\\b([1-9](_?[0-9])*|0)(\\.(${d}))?([eE][+-]?(${d})|r)?i?\\b`},{ +begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b" +},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{ +begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ +begin:"\\b0(_?[0-7])+r?i?\\b"}]},o={className:"params",begin:"\\(",end:"\\)", +endsParent:!0,keywords:s},_=[g,{className:"class",beginKeywords:"class module", +end:"$|;",illegal:/=/,contains:[a.inherit(a.TITLE_MODE,{ +begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{ +begin:"("+a.IDENT_RE+"::)?"+a.IDENT_RE,relevance:0}]}].concat(c)},{ +className:"function",begin:n(/def\s+/,e(i+"\\s*(\\(|;|$)")),relevance:0, +keywords:"def",end:"$|;",contains:[a.inherit(a.TITLE_MODE,{begin:i +}),o].concat(c)},{begin:a.IDENT_RE+"::"},{className:"symbol", +begin:a.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", +begin:":(?!\\s)",contains:[g,{begin:i}],relevance:0},l,{className:"variable", +begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{ +className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:s},{ +begin:"("+a.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{ +className:"regexp",contains:[a.BACKSLASH_ESCAPE,t],illegal:/\n/,variants:[{ +begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(", +end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}] +}].concat(b,c),relevance:0}].concat(b,c);t.contains=_,o.contains=_;const E=[{ +begin:/^\s*=>/,starts:{end:"$",contains:_}},{className:"meta", +begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])", +starts:{end:"$",contains:_}}];return c.unshift(b),{name:"Ruby", +aliases:["rb","gemspec","podspec","thor","irb"],keywords:s,illegal:/\/\*/, +contains:[a.SHEBANG({binary:"ruby"})].concat(E).concat(c).concat(_)}}})());hljs.registerLanguage("yaml",(()=>{"use strict";return e=>{ +const n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={ +className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ +},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable", +variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{ +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={ +end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/, +end:/\}/,contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]", +contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{ +begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{ +begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$", +relevance:10},{className:"string", +begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ +begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, +relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type", +begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a +},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", +begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", +relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ +className:"number", +begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" +},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],c=[...b] +;return c.pop(),c.push(i),l.contains=c,{name:"YAML",case_insensitive:!0, +aliases:["yml"],contains:b}}})());hljs.registerLanguage("javascript",(()=>{"use strict" +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],t=["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],s=["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],r=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],i=["arguments","this","super","console","window","document","localStorage","module","global"],c=[].concat(r,t,s) +;function o(e){return l("(?=",e,")")}function l(...e){return e.map((e=>{ +return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return b=>{ +const g=e,d={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/, +isTrulyOpeningTag:(e,n)=>{const a=e[0].length+e.index,t=e.input[a] +;"<"!==t?">"===t&&(((e,{after:n})=>{const a="",B={ +match:[/const|var|let/,/\s+/,g,/\s*/,/=\s*/,o(C)],className:{1:"keyword", +3:"title.function"},contains:[w]};return{name:"Javascript", +aliases:["js","jsx","mjs","cjs"],keywords:u,exports:{PARAMS_CONTAINS:S}, +illegal:/#(?![$_A-z])/,contains:[b.SHEBANG({label:"shebang",binary:"node", +relevance:5}),{label:"use_strict",className:"meta",relevance:10, +begin:/^\s*['"]use (strict|asm)['"]/ +},b.APOS_STRING_MODE,b.QUOTE_STRING_MODE,N,f,A,v,y,O,{className:"attr", +begin:g+o(":"),relevance:0},B,{ +begin:"("+b.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", +keywords:"return throw case",relevance:0,contains:[v,b.REGEXP_MODE,{ +className:"function",begin:C,returnBegin:!0,end:"\\s*=>",contains:[{ +className:"params",variants:[{begin:b.UNDERSCORE_IDENT_RE,relevance:0},{ +className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0, +excludeEnd:!0,keywords:u,contains:S}]}]},{begin:/,/,relevance:0},{match:/\s+/, +relevance:0},{variants:[{begin:"<>",end:""},{begin:d.begin, +"on:begin":d.isTrulyOpeningTag,end:d.end}],subLanguage:"xml",contains:[{ +begin:d.begin,end:d.end,skip:!0,contains:["self"]}]}]},I,{ +beginKeywords:"while if switch catch for"},{ +begin:"\\b(?!function)"+b.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", +returnBegin:!0,label:"func.def",contains:[w,b.inherit(b.TITLE_MODE,{begin:g, +className:"title.function"})]},{match:/\.\.\./,relevance:0},M,{match:"\\$"+g, +relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, +contains:[w]},T,{relevance:0,match:/\b[A-Z][A-Z_]+\b/, +className:"variable.constant"},R,k,{match:/\$[(.]/}]}}})());hljs.registerLanguage("c",(()=>{"use strict";function e(e){ +return((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?:",e,")?") +}return n=>{const t=n.COMMENT("//","$",{contains:[{begin:/\\\n/}] +}),s="[a-zA-Z_]\\w*::",r="(decltype\\(auto\\)|"+e(s)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",a={ +className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{ +match:/\batomic_[a-z]{3,6}\b/}]},i={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[n.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},n.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},n.inherit(i,{className:"string"}),{ +className:"string",begin:/<.*?>/},t,n.C_BLOCK_COMMENT_MODE]},o={ +className:"title",begin:e(s)+n.IDENT_RE,relevance:0 +},d=e(s)+n.IDENT_RE+"\\s*\\(",u={ +keyword:["asm","auto","break","case","const","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","static","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"], +type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","complex","bool","imaginary"], +literal:"true false NULL", +built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr" +},g=[c,a,t,n.C_BLOCK_COMMENT_MODE,l,i],m={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:g.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:g.concat(["self"]),relevance:0}]),relevance:0},_={ +begin:"("+r+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)", +keywords:u,relevance:0},{begin:d,returnBegin:!0,contains:[n.inherit(o,{ +className:"title.function"})],relevance:0},{relevance:0,match:/,/},{ +className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0, +contains:[t,n.C_BLOCK_COMMENT_MODE,i,l,a,{begin:/\(/,end:/\)/,keywords:u, +relevance:0,contains:["self",t,n.C_BLOCK_COMMENT_MODE,i,l,a]}] +},a,t,n.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u, +disableAutodetect:!0,illegal:"=]/,contains:[{ +beginKeywords:"final class struct"},n.TITLE_MODE]}]),exports:{preprocessor:c, +strings:i,keywords:u}}}})());hljs.registerLanguage("swift",(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function a(e){return t("(?=",e,")")} +function t(...a){return a.map((a=>e(a))).join("")}function n(...a){ +return"("+((e=>{const a=e[e.length-1] +;return"object"==typeof a&&a.constructor===Object?(e.splice(e.length-1,1),a):{} +})(a).capture?"":"?:")+a.map((a=>e(a))).join("|")+")"} +const i=e=>t(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["actor","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],p=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],F=n(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),d=n(F,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=t(F,d,"*"),h=n(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=n(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=t(h,f,"*"),y=t(/[A-Z]/,f,"*"),g=["autoclosure",t(/convention\(/,n("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",t(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"] +;return e=>{const F={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{ +contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],A={match:[/\./,n(...s,...u)], +className:{2:"keyword"}},N={match:t(/\./,n(...r)),relevance:0 +},C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),D={variants:[{ +className:"keyword", +match:n(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},k={ +$pattern:n(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[A,N,D],_=[{ +match:t(/\./,n(...p)),relevance:0},{className:"built_in", +match:t(/\b/,n(...p),/(?=\()/)}],S={match:/->/,relevance:0},M=[S,{ +className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${d})+`}] +}],x="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,variants:[{ +match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{ +match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\b`},{ +match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},L=(e="")=>({ +className:"subst",variants:[{match:t(/\\/,e,/[0\\tnr"']/)},{ +match:t(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),O=(e="")=>({className:"subst", +match:t(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),T=(e="")=>({className:"subst", +label:"interpol",begin:t(/\\/,e,/\(/),end:/\)/}),$=(e="")=>({begin:t(e,/"""/), +end:t(/"""/,e),contains:[L(e),O(e),T(e)]}),j=(e="")=>({begin:t(e,/"/), +end:t(/"/,e),contains:[L(e),T(e)]}),P={className:"string", +variants:[$(),$("#"),$("##"),$("###"),j(),j("#"),j("##"),j("###")]},K={ +match:t(/`/,w,/`/)},z=[K,{className:"variable",match:/\$\d+/},{ +className:"variable",match:`\\$${f}+`}],q=[{match:/(@|#)available/, +className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E, +contains:[...M,I,P]}]}},{className:"keyword",match:t(/@/,n(...g))},{ +className:"meta",match:t(/@/,w)}],U={match:a(/\b[A-Z]/),relevance:0,contains:[{ +className:"type", +match:t(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+") +},{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{ +match:/\.\.\./,relevance:0},{match:t(/\s+&\s+/,a(y)),relevance:0}]},Z={ +begin://,keywords:k,contains:[...v,...B,...q,S,U]};U.contains.push(Z) +;const V={begin:/\(/,end:/\)/,relevance:0,keywords:k,contains:["self",{ +match:t(w,/\s*:/),keywords:"_|0",relevance:0 +},...v,...B,..._,...M,I,P,...z,...q,U]},W={begin://,contains:[...v,U] +},G={begin:/\(/,end:/\)/,keywords:k,contains:[{ +begin:n(a(t(w,/\s*:/)),a(t(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0,contains:[{ +className:"keyword",match:/\b_\b/},{className:"params",match:w}] +},...v,...B,...M,I,P,...q,U,V],endsParent:!0,illegal:/["']/},R={ +match:[/func/,/\s+/,n(K.match,w,b)],className:{1:"keyword",3:"title.function"}, +contains:[W,G,F],illegal:[/\[/,/%/]},X={ +match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"}, +contains:[W,G,F],illegal:/\[|%/},H={match:[/operator/,/\s+/,b],className:{ +1:"keyword",3:"title"}},J={begin:[/precedencegroup/,/\s+/,y],className:{ +1:"keyword",3:"title"},contains:[U],keywords:[...l,...o],end:/}/} +;for(const e of P.variants){const a=e.contains.find((e=>"interpol"===e.label)) +;a.keywords=k;const t=[...B,..._,...M,I,P,...z];a.contains=[...t,{begin:/\(/, +end:/\)/,contains:["self",...t]}]}return{name:"Swift",keywords:k, +contains:[...v,R,X,{beginKeywords:"struct protocol class extension enum actor", +end:"\\{",excludeEnd:!0,keywords:k,contains:[e.inherit(e.TITLE_MODE,{ +className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B] +},H,J,{beginKeywords:"import",end:/$/,contains:[...v],relevance:0 +},...B,..._,...M,I,P,...z,...q,U,V]}}})()); \ No newline at end of file diff --git a/flutter/flutter/static-assets/play_button.svg b/flutter/flutter/static-assets/play_button.svg new file mode 100644 index 000000000..c39a2f4a8 --- /dev/null +++ b/flutter/flutter/static-assets/play_button.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/flutter/flutter/static-assets/readme.md b/flutter/flutter/static-assets/readme.md new file mode 100644 index 000000000..357c11ca4 --- /dev/null +++ b/flutter/flutter/static-assets/readme.md @@ -0,0 +1,22 @@ +# highlight.js + +Generated from https://highlightjs.org/download/ on 2021-07-13 + +**Included languages:** + +* bash +* c +* css +* dart +* diff +* html, xml +* java +* javascript +* json +* kotlin +* markdown +* objective-c +* plaintext +* shell +* swift +* yaml diff --git a/flutter/flutter/static-assets/search.svg b/flutter/flutter/static-assets/search.svg new file mode 100644 index 000000000..58f4299fc --- /dev/null +++ b/flutter/flutter/static-assets/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/flutter/flutter/static-assets/styles.css b/flutter/flutter/static-assets/styles.css new file mode 100644 index 000000000..09b85b518 --- /dev/null +++ b/flutter/flutter/static-assets/styles.css @@ -0,0 +1,1200 @@ +.light-theme { + /*background-color body, listdropdown*/ + --main-bg-color: #fff; + /*header id-tittle*/ + --main-header-color: #eeeeee; + /*package-name*/ + --main-sidebar-color: #727272; + /*section-title and section subtitle, desc markdown(body, dd, h3), header a*/ + --main-text-color: #111111; + /*typehead search-box*/ + --main-search-bar: #fff; + /* scrollbar-thumb */ + --main-scrollbar-color: #CCC; + /* footer */ + --main-footer-background: #111111; + /*header text color*/ + --main-h-text: black; + /* hyperlinks*/ + --main-hyperlinks-color: #0175C2; + /*search background*/ + --main-search-background: transparent; + + /*code snippets*/ + --main-code-bg: #f8f8f8; + --main-keyword-color: #333; + --main-tag-color: #000080; + --main-section-color: #900; + --main-comment-color: #998; + --main-var-color: #008080; + --main-string-color: #d14; + + --main-number-filter: invert(0%); + --main-icon-color: black; +} + +.dark-theme { + /*background-color body, listdropdown*/ + --main-bg-color: #10161E; + /*header id-tittle*/ + --main-header-color: #1C2834; + /*package-name*/ + --main-sidebar-color: #fff; + /*section-title and section subtitle, desc markdown(body, dd, h3), header a*/ + --main-text-color: #fff; + /*typehead search-box*/ + --main-search-bar: #454545; + /* scrollbar-thumb */ + --main-scrollbar-color: #5f6368; + /* footer */ + --main-footer-background: #27323a; + /* hyperlinks*/ + --main-hyperlinks-color: #00D2FA; + /*search background*/ + --main-search-background: black; + + /*code snippets*/ + --main-code-bg: #10161E; + --main-keyword-color: white; + --main-tag-color: #00D2FA; + --main-section-color: #FF2D64; + --main-comment-color: #909CC3; + --main-var-color: #55A09B; + --main-string-color: #FF2D64; + + --main-number-filter: invert(100%); + --main-icon-color: white; +} + +#theme { + display: none; +} + +#theme-button { + position: absolute; + right: 30px; + height: 24px; +} + +#theme-button .material-symbols-outlined { + color: var(--main-icon-color); + user-select: none; + cursor: pointer; +} + +.light-theme #light-theme-button { + display: none; +} + +.dark-theme #dark-theme-button { + display: none; +} + +/* +Only show images that fit their theme using GitHub's syntax, see: +https://github.blog/changelog/2021-11-24-specify-theme-context-for-images-in-markdown/ +*/ +.dark-theme img[src$="#gh-light-mode-only"] { + display: none; +} + +.light-theme img[src$="#gh-dark-mode-only"] { + display: none; +} + +/* for layout */ +html, +body { + margin: 0; + padding: 0; + height: 100%; + width: 100%; + overflow: hidden; + box-sizing: border-box; +} + +*, *:before, *:after { + box-sizing: inherit; +} + +body { + display: flex; + flex-direction: column; + -webkit-overflow-scrolling: touch; +} + +header { + flex: 0 0 50px; + display: flex; + flex-direction: row; + align-items: center; + padding-left: 30px; + padding-right: 30px; + background-color: var(--main-header-color); +} + +header ol { + list-style: none; + margin: 0; + padding: 0; +} + +header ol li { + display: inline; +} + +header form { + display: flex; + flex: 1; + justify-content: flex-end; +} + +header#header-search-sidebar { + height: 50px; + margin-bottom: 25px; +} + +footer { + flex: 0 0 16px; + text-align: center; + padding: 16px 20px; +} + +main { + flex: 1; + display: flex; + flex-direction: row; + padding: 20px; + min-height: 0; +} + +.sidebar-offcanvas-left { + flex: 0 1 230px; + order: 1; + overflow-y: scroll; + padding: 20px 0 15px 30px; + margin: 5px 20px 0 0; +} + +::-webkit-scrollbar-button{ display: none; height: 13px; border-radius: 0; background-color: #AAA; } +::-webkit-scrollbar-button:hover{ background-color: #AAA; } +::-webkit-scrollbar-thumb{ background-color: var(--main-scrollbar-color); } +::-webkit-scrollbar-thumb:hover{ background-color: var(--main-scrollbar-color); } +::-webkit-scrollbar{ width: 4px; } + +.main-content::-webkit-scrollbar{ width: 8px; } + +.main-content { + flex: 1; + order: 2; + overflow-y: scroll; + padding: 10px 20px 0 20px; +} + +.sidebar-offcanvas-right { + flex: 0 1 12em; + order: 3; + overflow-y: scroll; + padding: 20px 15px 15px 15px; + margin-top: 5px; + margin-right: 20px; +} +/* end for layout */ + +body { + -webkit-text-size-adjust: 100%; + overflow-x: hidden; + font-family: Roboto, sans-serif; + font-size: 16px; + line-height: 1.42857143; + color: var(--main-text-color); + background-color: var(--main-bg-color); +} + +nav.navbar { + background-color: inherit; + min-height: 50px; + border: 0; +} + +@media (max-width: 840px) { + .hidden-xs { + display: none !important; + } +} + +@media (min-width: 841px) { + .hidden-l { + display: none !important; + } +} + +nav.navbar .row { + padding-top: 8px; +} + +nav .container { + white-space: nowrap; +} + +header { + background-color: var(--main-header-color); + box-shadow: 0 3px 5px rgba(0,0,0,0.1); +} + +.pre { + border: 1px solid #ddd; + font-size: 14px; +} + +.hljs-string, .hljs-doctag { + color: var(--main-string-color); +} + +.hljs-number, .hljs-literal, .hljs-variable, .hljs-template-variable, .hljs-tag .hljs-attr { + color: var(--main-var-color); +} + +.hljs-comment, .hljs-quote { + color: var(--main-comment-color); + font-style: italic; +} + +.hljs-title, .hljs-section, .hljs-selector-id { + color: var(--main-section-color); + font-weight: bold; +} + +.hljs-tag, .hljs-name, .hljs-attribute { + color: var(--main-tag-color); + font-weight: normal; +} + +.hljs-keyword, .hljs-selector-tag, .hljs-subst { + color: var(--main-keyword-color); + font-weight: bold; +} + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: var(--main-text-color); + background: var(--main-code-bg); +} + +a { + text-decoration: none; +} + +section { + margin-bottom: 36px; +} + +dl { + margin: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: Roboto, sans-serif; + font-weight: 400; + margin-top: 1.5em; + color: var(--main-text-color); +} + +h1.title { + overflow: hidden; + text-overflow: ellipsis; +} + +h1 { + font-size: 37px; + margin-top: 0; + margin-bottom: 0.67em; +} + +h2 { + font-size: 28px; +} + +h5 { + font-size: 16px; +} + +p { + margin-bottom: 1em; + margin-top: 0; +} + +a { + color: var(--main-hyperlinks-color); +} + +a:hover { + color: #13B9FD; +} + +pre.prettyprint { + font-family: 'Roboto Mono', Menlo, monospace; + color: black; + border-radius: 0; + font-size: 15px; + word-wrap: normal; + line-height: 1.4; + border: 0; + margin: 16px 0 16px 0; + padding: 8px; +} + +pre code { + white-space: pre; + word-wrap: initial; + font-size: 100% +} + +.fixed { + white-space: pre; +} + +pre { + border: 1px solid #ddd; + background-color: #eee; + font-size: 14px; +} + +code { + font-family: 'Roboto Mono', Menlo, monospace; + color: inherit; + padding: 0.2em 0.4em; + font-size: 85%; + background-color: rgba(27,31,35,0.05); + border-radius: 3px; +} + +@media(max-width: 840px) { + nav .container { + width: 100% + } + + h1 { + font-size: 24px; + } + + pre { + margin: 16px 0; + } +} + +header h1 { + font-weight: 400; + margin-bottom: 16px; +} + +header a, +header p, +header li { + color: #0175C2; +} + +header a:hover { + color: #0175C2; +} + +header h1 .kind { + color: #555; +} + +dt { + font-weight: normal; +} + +dd { + color: var(--main-text-color); + margin-bottom: 1em; + margin-left: 0; +} + +dd.callable, dd.constant, dd.property { + margin-bottom: 24px; +} + +dd p { + overflow-x: hidden; + text-overflow: ellipsis; + margin-bottom: 0; +} + +/* Enum values do not have their own pages; their full docs are presented on the + * enum class's page. */ +dt.constant + dd p { + margin-bottom: 1em; +} + +/* indents wrapped lines */ +section.summary dt { + margin-left: 24px; + text-indent: -24px; +} + +.dl-horizontal dd { + margin-left: initial; +} + +dl.dl-horizontal dt { + font-style: normal; + text-align: left; + color: #727272; + margin-right: 20px; + width: initial; +} + +dt .name { + font-weight: 500; +} + +dl dt.callable .name { + float: none; + width: auto; +} + +.type-parameter { + white-space: nowrap; +} + +.multi-line-signature .type-parameter .parameter { + margin-left: 0; + display: unset; +} + +.parameter-list { + display: table-cell; + margin-left: 10px; + list-style-type: none; + padding-inline-start: unset; +} + +.signature { + color: var(--main-text-color); +} + +.signature a { + color: var(--main-hyperlinks-color); +} + +.optional { + font-style: italic; +} + +.undocumented { + font-style: italic; +} + +.is-const { + font-style: italic; +} + +.deprecated { + text-decoration: line-through; +} + +.category.linked { + font-weight: bold; + opacity: 1; +} + +/* Colors for category based on categoryOrder in dartdoc_options.config. */ +.category.cp-0 { + background-color: #54b7c4 +} + +.category.cp-1 { + background-color: #54c47f +} + +.category.cp-2 { + background-color: #c4c254 +} + +.category.cp-3 { + background-color: #c49f54 +} + +.category.cp-4 { + background-color: #c45465 +} + +.category.cp-5 { + background-color: #c454c4 +} + +.category a { + color: white; +} + +.category { + padding: 2px 4px; + font-size: 12px; + border-radius: 4px; + background-color: #999; + text-transform: uppercase; + color: white; + opacity: .5; +} + +h1 .category { + vertical-align: middle; +} + +/* The badge under a declaration for things like "const", "read-only", etc. and for the badges inline like sealed or interface */ +/* See https://github.com/dart-lang/dartdoc/blob/main/lib/src/model/feature.dart */ +.feature { + display: inline-block; + background: var(--main-bg-color); + border: 1px solid var(--main-hyperlinks-color); + border-radius: 20px; + color: var(--main-hyperlinks-color); + + font-size: 12px; + padding: 1px 6px; + margin: 0 8px 0 0; +} + +a.feature:hover { + border-color: #13B9FD; +} + +h1 .feature { + vertical-align: middle; + margin: 0 -2px 0 0; +} + +.source-link { + padding: 18px 4px; + font-size: 18px; + vertical-align: middle; +} + +@media (max-width: 840px) { + .source-link { + padding: 7px 2px; + font-size: 10px; + } +} + +#external-links { + float: right; +} + +.btn-group { + position: relative; + display: inline-flex; + vertical-align: middle; +} + +footer { + color: #fff; + background-color: var(--main-footer-background); + width: 100%; +} + +footer p { + margin: 0; +} + +footer .no-break { + white-space: nowrap; +} + +footer .container { + padding-left: 0; + padding-right: 0; +} + +footer a, footer a:hover { + color: #fff; +} + +.markdown.desc { + max-width: 700px; +} + +.markdown h1 { + font-size: 24px; + margin-bottom: 8px; +} + +.markdown h2 { + font-size: 20px; + margin-top: 24px; + margin-bottom: 8px; +} + +.markdown h3 { + font-size: 18px; + margin-bottom: 8px; + color: var(--main-text-color); +} + +.markdown h4 { + font-size: 16px; + margin-bottom: 0; +} + +.markdown li p { + margin: 0; +} + +table { + margin-bottom: 1em; +} + +table, +th, +td { + border: 1px solid lightgrey; + border-collapse: collapse; +} + +th, +td { + padding: 8px; +} + +.gt-separated { + list-style: none; + padding: 0; + margin: 0; +} + +.gt-separated li { + display: inline-block; +} + +.gt-separated li:before { + background-image: url("data:image/svg+xml;utf8,"); + background-position: center; + content: "\00a0"; + margin: 0 6px 0 4px; + padding: 0 3px 0 0; +} + +.gt-separated.dark li:before { + background-image: url("data:image/svg+xml;utf8,"); +} + +.gt-separated li:first-child:before { + background-image: none; + content: ""; + margin: 0; + padding: 0; +} + +.multi-line-signature { + font-size: 17px; + color: #727272; +} + +.multi-line-signature .parameter { + margin-left: 24px; + display: block; +} + +.breadcrumbs { + padding: 0; + margin: 8px 0 8px 0; + white-space: nowrap; + line-height: 1; +} + +@media screen and (min-width: 840px) { + nav ol.breadcrumbs { + float: left; + } +} + +@media screen and (max-width: 840px) { + .breadcrumbs { + margin: 0 0 24px 0; + overflow-x: hidden; + } +} + +.breadcrumbs .gt-separated .dark .hidden-xs li+li:before { + color: var(--main-h-text); +} + +ol.breadcrumbs li a { + color: var(--main-hyperlinks-color); +} + +.self-crumb { + color: var(--main-h-text); +} + +.self-name { + color: #555; + display: none; +} + +.annotation-list { + list-style: none; + padding: 0; + display: inline; +} + +.comma-separated { + list-style: none; + padding: 0; + display: inline; +} + +.comma-separated li { + display: inline; +} + +.comma-separated li:after { + content: ", "; +} + +.comma-separated li:last-child:after { + content: ""; +} + +.end-with-period li:last-child:after { + content: "."; +} + +.container > section:first-child { + border: 0; +} + +.constructor-modifier { + font-style: italic; +} + +section.multi-line-signature div.parameters { + margin-left: 24px; +} + +/* sidebar styles */ + +.sidebar ol { + list-style: none; + line-height: 22px; + margin-top: 0; + margin-bottom: 0; + padding: 0 0 15px 0; +} + +.sidebar h5 a, +.sidebar h5 a:hover { + color: var(--main-sidebar-color); +} + +.sidebar h5, +.sidebar ol li { + text-overflow: ellipsis; + overflow: hidden; + padding: 3px 0 3px 3px; +} + +.sidebar h5 { + color: var(--main-sidebar-color); + font-size: 18px; + margin: 0 0 22px 0; + padding-top: 0; +} + +.sidebar ol li.section-title { + font-size: 18px; + font-weight: normal; + text-transform: uppercase; + padding-top: 25px; +} + +.sidebar ol li.section-subtitle a { + color: inherit; +} + +.sidebar ol li.section-subtitle { + font-weight: 400; + text-transform: uppercase; +} + +.sidebar ol li.section-subitem { + margin-left: 12px; +} + +.sidebar ol li:first-child { + padding-top: 3px; + margin-top: 0; +} + +button { + padding: 0; +} + +#sidenav-left-toggle { + display: none; + vertical-align: text-bottom; + padding: 0; + color: var(--main-icon-color); + user-select: none; + cursor: pointer; +} + +/* left-nav disappears, and can transition in from the left */ +@media screen and (max-width:840px) { + #sidenav-left-toggle { + display: inline; + width: 24px; + height: 24px; + border: none; + margin-right: 24px; + margin-left: 24px; + font-size: 24px; + } + + #overlay-under-drawer.active { + opacity: 0.4; + height: 100%; + z-index: 1999; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: black; + display: block; + } + + .sidebar-offcanvas-left { + left: -100%; + position: fixed; + -webkit-transition:all .25s ease-out; + -o-transition:all .25s ease-out; + transition:all .25s ease-out; + z-index: 2000; + top: 0; + width: 280px; /* works all the way down to an iphone 4 */ + height: 90%; + background-color: var(--main-bg-color); + overflow-y: scroll; /* TODO: how to hide scroll bars? */ + padding: 10px; + margin: 10px 10px; + box-shadow: 5px 5px 5px 5px #444444; + } + + ol#sidebar-nav { + font-size: 18px; + white-space: pre-line; + } + + .sidebar-offcanvas-left.active { + left: 0; /* this animates our drawer into the page */ + } + + .self-name { + display: inline-block; + color: var(--main-hyperlinks-color); + } +} + +.sidebar-offcanvas-left h5 { + margin-bottom: 10px; +} + +.sidebar-offcanvas-left h5:last-of-type { + border: 0; + margin-bottom: 25px; +} + +/* the right nav disappears out of view when the window shrinks */ +@media screen and (max-width: 992px) { + .sidebar-offcanvas-right { + display: none; + } +} + +#overlay-under-drawer { + display: none; +} + +/* find-as-you-type search box */ + +.form-control { + border-radius: 0; + border: 0; +} + +@media screen and (max-width: 840px) { + form.search { + display: none; + } +} + +.typeahead { + width: 200px; + padding: 2px 7px 1px 7px; + line-height: 20px; + outline: none; +} + +.tt-wrapper { + position: relative; + display: inline-block; +} + +.tt-input { + position: relative; + vertical-align: top; +} + +.navbar-right .tt-menu { + right: 0; + left: inherit !important; + width: 540px; + max-height: 280px; + overflow-y: scroll; +} + +.navbar-right { + padding-right: 60px; +} + +.tt-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 100; + font-size: 14px; + margin: 0; + background-color: var(--main-bg-color); + border: 1px solid var(--main-header-color); + -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2); + -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2); + box-shadow: 0 5px 10px rgba(0,0,0,.2); +} + + +.typeahead { + padding: 17px 17px 17px 50px; + width: 422px; + height: 20px; + font-size: 13px; + background-image: url("http://github.com/search.svg"); + background-repeat: no-repeat; + background-position: 4%; + outline: 0; + background-size: 20px; + filter: var(--main-number-filter); + -webkit-filter: var(--main-number-filter); +} + +.search-summary { + margin-bottom: 10px; +} + +a.tt-container { + font-size: 16px; + color: var(--main-hyperlinks-color); +} + +.enter-search-message { + position: -webkit-sticky; + position: sticky; + top: 0; + background-color: #AAA; + padding: 0; + font-size: 14px; + margin: 0; + clear: both; + text-align: center; + color: black; +} + +.tt-suggestion:hover { + cursor: pointer; + color: #fff; + background-color: #0097cf; +} + +.tt-suggestion:hover .search-from-lib { + color: #ddd; +} + +.tt-suggestion.tt-cursor { + color: #fff; + background-color: #0097cf; +} + +.tt-suggestion.tt-cursor .search-from-lib { + color: #ddd; +} + +.tt-suggestion p { + margin: 0; +} + +.tt-container { + font-size: 14px; + margin-bottom: 0; + margin-top: 15px; +} + +.tt-container-text { + color: var(--main-text-color); +} + + +/* Search results formatting for mini results below search bar. */ + +.tt-search-results .tt-container { + margin-top: 5px; + margin-bottom: 5px; +} + +/* Do not show the container as a section. */ +.tt-search-results .tt-container-text { + display: none +} + +/* An inline style. */ +.tt-search-results .tt-suggestion { + color: var(--main-text-color); + margin-top: 5px; + overflow: hidden; + padding-left: 10px; + padding-right: 10px; + text-overflow: ellipsis; + white-space: nowrap; +} + +.tt-search-results .tt-suggestion-title { + font-size: 14px; + padding-right: 5px; +} + +.tt-search-results .tt-suggestion-container { + color: var(--main-keyword-color); + font-size: 14px; + font-style: italic; + padding-right: 5px; +} + +.tt-search-results .one-line-description { + color: var(--main-keyword-color); + display: inline; + margin-left: 0; +} + + +.tt-search-results .one-line-description::before { + content: open-quote; +} + +.tt-search-results .one-line-description::after { + content: close-quote; +} + +/* Search results formatting for `search.html`. */ + +/* A block style. */ +#dartdoc-main-content .tt-suggestion { + color: var(--main-text-color); + margin-top: 5px; + margin-bottom: 10px; + border-style: solid; + border-color: lightgrey; + border-width: 0.5px; +} + +#dartdoc-main-content .tt-suggestion-title { + display: block; + font-weight: 500; + margin: 4px 10px 0; +} + +#dartdoc-main-content .one-line-description { + display: block; + margin: 2px 10px 3px; +} + +/* Do not show a result's container. */ +#dartdoc-main-content .tt-suggestion-container { + display: none; +} + +@media screen and (max-width: 840px) { + .typeahead { + padding: 17px 17px 17px 33px; + width: 240px; + height: 17px; + border: 1px solid #f5f5f5; + background-position: 3%; + margin: 10px 10px 10px 9px; + } + + header { + padding-left: 0; + } +} + +@media screen and (max-width: 320px) { + #sidenav-left-toggle { + margin-right: 10px; + margin-left: 20px; + } + + .self-name { + margin-right: 10px; + } +} + +::placeholder { + filter: brightness(0.85); +} + +.search-body { + border: 1px solid #7f7f7f; + max-width: 400px; + box-shadow: 3px 3px 5px rgba(0,0,0,0.1); +} + +section#setter { + border-top: 1px solid #ddd; + padding-top: 36px; +} + +li.inherited a { + opacity: 0.65; + font-style: italic; +} + +#instance-methods dt.inherited .name, +#instance-properties dt.inherited .name, +#operators dt.inherited .name { + font-weight: 400; + font-style: italic; +} + +#instance-methods dt.inherited .signature, +#instance-properties dt.inherited .signature, +#operators dt.inherited .signature { + font-weight: 400; +} + +@media print { + .subnav, .sidebar { + display: none; + } + + a[href]:after { + content: "" !important; + } +} \ No newline at end of file From 89f66f857bde361ff0020dfae8e4c728bd320050 Mon Sep 17 00:00:00 2001 From: mtrezza Date: Thu, 25 May 2023 19:27:19 +0000 Subject: [PATCH 2/5] deploy: 7fd7aa51c2c0ddce599a1c43b97abfd696665125 --- .../ISSUE_TEMPLATE/---1-report-an-issue.md | 47 - .../ISSUE_TEMPLATE/---2-feature-request.md | 31 - .github/ISSUE_TEMPLATE/config.yml | 8 - .github/pull_request_template.md | 20 - .github/workflows/ci.yml | 152 --- .github/workflows/release-automated.yml | 54 - .github/workflows/release-manual-docs.yml | 29 - .gitignore | 124 -- CONTRIBUTING.md | 23 - LICENSE | 176 --- NOTICE | 10 - README.md | 27 - docs/migrate-1-0-28.md | 1 - docs/migrate-2-0-0.md | 53 - flutter/{flutter => }/__404error.html | 0 flutter/{flutter => }/categories.json | 0 .../ChildBuilder.html | 0 .../CoreStoreSembastImp-class.html | 0 .../CoreStoreSembastImp/clear.html | 0 .../CoreStoreSembastImp/containsKey.html | 0 .../CoreStoreSembastImp/get.html | 0 .../CoreStoreSembastImp/getBool.html | 0 .../CoreStoreSembastImp/getDouble.html | 0 .../CoreStoreSembastImp/getInstance.html | 0 .../CoreStoreSembastImp/getInt.html | 0 .../CoreStoreSembastImp/getString.html | 0 .../CoreStoreSembastImp/getStringList.html | 0 .../CoreStoreSembastImp/remove.html | 0 .../CoreStoreSembastImp/setBool.html | 0 .../CoreStoreSembastImp/setDouble.html | 0 .../CoreStoreSembastImp/setInt.html | 0 .../CoreStoreSembastImp/setString.html | 0 .../CoreStoreSembastImp/setStringList.html | 0 .../CoreStoreSharedPrefsImp-class.html | 0 .../CoreStoreSharedPrefsImp/clear.html | 0 .../CoreStoreSharedPrefsImp/containsKey.html | 0 .../CoreStoreSharedPrefsImp/get.html | 0 .../CoreStoreSharedPrefsImp/getBool.html | 0 .../CoreStoreSharedPrefsImp/getDouble.html | 0 .../CoreStoreSharedPrefsImp/getInstance.html | 0 .../CoreStoreSharedPrefsImp/getInt.html | 0 .../CoreStoreSharedPrefsImp/getString.html | 0 .../getStringList.html | 0 .../CoreStoreSharedPrefsImp/remove.html | 0 .../CoreStoreSharedPrefsImp/setBool.html | 0 .../CoreStoreSharedPrefsImp/setDouble.html | 0 .../CoreStoreSharedPrefsImp/setInt.html | 0 .../CoreStoreSharedPrefsImp/setString.html | 0 .../setStringList.html | 0 .../flutter_parse_sdk_flutter/DataGetter.html | 0 .../Parse-class.html | 0 .../Parse/Parse.html | 0 .../Parse/checkConnectivity.html | 0 .../Parse/connectivityStream.html | 0 .../Parse/didChangeAppLifecycleState.html | 0 .../Parse/initialize.html | 0 .../ParseLiveGridWidget-class.html | 0 .../ParseLiveGridWidget.html | 0 .../animationController.html | 0 .../ParseLiveGridWidget/childAspectRatio.html | 0 .../ParseLiveGridWidget/childBuilder.html | 0 .../ParseLiveGridWidget/createState.html | 0 .../ParseLiveGridWidget/crossAxisCount.html | 0 .../ParseLiveGridWidget/crossAxisSpacing.html | 0 .../defaultChildBuilder.html | 0 .../ParseLiveGridWidget/duration.html | 0 .../gridLoadingElement.html | 0 .../ParseLiveGridWidget/lazyLoading.html | 0 .../listenOnAllSubItems.html | 0 .../listeningIncludes.html | 0 .../ParseLiveGridWidget/mainAxisSpacing.html | 0 .../ParseLiveGridWidget/padding.html | 0 .../ParseLiveGridWidget/preloadedColumns.html | 0 .../ParseLiveGridWidget/primary.html | 0 .../ParseLiveGridWidget/query.html | 0 .../queryEmptyElement.html | 0 .../removedItemBuilder.html | 0 .../ParseLiveGridWidget/reverse.html | 0 .../ParseLiveGridWidget/scrollController.html | 0 .../ParseLiveGridWidget/scrollDirection.html | 0 .../ParseLiveGridWidget/scrollPhysics.html | 0 .../ParseLiveGridWidget/shrinkWrap.html | 0 .../ParseLiveListElementWidget-class.html | 0 .../ParseLiveListElementWidget.html | 0 .../childBuilder.html | 0 .../createState.html | 0 .../ParseLiveListElementWidget/duration.html | 0 .../loadedData.html | 0 .../preLoadedData.html | 0 .../sizeFactor.html | 0 .../ParseLiveListElementWidget/stream.html | 0 .../ParseLiveListWidget-class.html | 0 .../ParseLiveListWidget.html | 0 .../ParseLiveListWidget/childBuilder.html | 0 .../ParseLiveListWidget/createState.html | 0 .../defaultChildBuilder.html | 0 .../ParseLiveListWidget/duration.html | 0 .../ParseLiveListWidget/lazyLoading.html | 0 .../listLoadingElement.html | 0 .../listenOnAllSubItems.html | 0 .../listeningIncludes.html | 0 .../ParseLiveListWidget/padding.html | 0 .../ParseLiveListWidget/preloadedColumns.html | 0 .../ParseLiveListWidget/primary.html | 0 .../ParseLiveListWidget/query.html | 0 .../queryEmptyElement.html | 0 .../removedItemBuilder.html | 0 .../ParseLiveListWidget/reverse.html | 0 .../ParseLiveListWidget/scrollController.html | 0 .../ParseLiveListWidget/scrollDirection.html | 0 .../ParseLiveListWidget/scrollPhysics.html | 0 .../ParseLiveListWidget/shrinkWrap.html | 0 .../ParseNotification-class.html | 0 .../ParseNotification/ParseNotification.html | 0 .../ParseNotification/instance.html | 0 .../keyNotificationChannelName.html | 0 .../ParseNotification/showNotification.html | 0 .../ParsePush-class.html | 0 .../ParsePush/ParsePush.html | 0 .../ParsePush/getSubscribedChannels.html | 0 .../ParsePush/initialize.html | 0 .../ParsePush/instance.html | 0 .../ParsePush/keyPushType.html | 0 .../ParsePush/keyType.html | 0 .../ParsePush/onMessage.html | 0 .../ParsePush/subscribeToChannel.html | 0 .../ParsePush/unsubscribeFromChannel.html | 0 .../StreamGetter.html | 0 .../dbDirectory.html | 0 .../flutter_parse_sdk_flutter-library.html | 0 flutter/{flutter => }/index.html | 0 flutter/{flutter => }/index.json | 0 flutter/{flutter => }/search.html | 0 .../{flutter => }/static-assets/docs.dart.js | 0 .../static-assets/docs.dart.js.map | 0 .../{flutter => }/static-assets/favicon.png | Bin .../{flutter => }/static-assets/github.css | 0 .../static-assets/highlight.pack.js | 0 .../static-assets/play_button.svg | 0 flutter/{flutter => }/static-assets/readme.md | 0 .../{flutter => }/static-assets/search.svg | 0 .../{flutter => }/static-assets/styles.css | 0 packages/dart/CHANGELOG.md | 336 ------ packages/dart/LICENSE | 176 --- packages/dart/NOTICE | 10 - packages/dart/README.md | 903 --------------- packages/dart/analysis_options.yaml | 1 - packages/dart/example/main.dart | 23 - packages/dart/example/pubspec.yaml | 14 - packages/dart/lib/parse_server_sdk.dart | 177 --- .../dart/lib/src/base/parse_constants.dart | 85 -- .../dart/lib/src/data/parse_core_data.dart | 136 --- .../lib/src/data/parse_subclass_handler.dart | 75 -- .../dart/lib/src/enums/parse_enum_api_rq.dart | 37 - .../dart/lib/src/network/dio_adapter_io.dart | 14 - .../dart/lib/src/network/dio_adapter_js.dart | 8 - .../dart/lib/src/network/http_client_io.dart | 6 - .../dart/lib/src/network/http_client_js.dart | 6 - packages/dart/lib/src/network/options.dart | 10 - .../dart/lib/src/network/parse_client.dart | 104 -- .../lib/src/network/parse_connectivity.dart | 18 - .../lib/src/network/parse_dio_client.dart | 302 ----- .../lib/src/network/parse_http_client.dart | 188 --- .../lib/src/network/parse_live_query.dart | 443 ------- .../dart/lib/src/network/parse_query.dart | 579 ---------- .../dart/lib/src/network/parse_websocket.dart | 2 - .../lib/src/network/parse_websocket_html.dart | 33 - .../lib/src/network/parse_websocket_io.dart | 31 - packages/dart/lib/src/objects/parse_acl.dart | 128 --- .../dart/lib/src/objects/parse_array.dart | 121 -- packages/dart/lib/src/objects/parse_base.dart | 332 ------ .../dart/lib/src/objects/parse_cloneable.dart | 6 - .../dart/lib/src/objects/parse_config.dart | 41 - .../dart/lib/src/objects/parse_error.dart | 306 ----- .../dart/lib/src/objects/parse_exception.dart | 44 - packages/dart/lib/src/objects/parse_file.dart | 123 -- .../dart/lib/src/objects/parse_file_base.dart | 55 - .../dart/lib/src/objects/parse_file_web.dart | 99 -- .../dart/lib/src/objects/parse_function.dart | 67 -- .../dart/lib/src/objects/parse_geo_point.dart | 31 - .../lib/src/objects/parse_installation.dart | 264 ----- .../dart/lib/src/objects/parse_number.dart | 128 --- .../dart/lib/src/objects/parse_object.dart | 680 ----------- .../parse_operation/parse_add_operation.dart | 39 - .../parse_add_relation_operation.dart | 40 - .../parse_add_unique_operation.dart | 52 - .../parse_increment_operation.dart | 33 - .../parse_operation/parse_operation.dart | 314 ----- .../parse_remove_operation.dart | 38 - .../parse_remove_relation_operation.dart | 45 - .../dart/lib/src/objects/parse_relation.dart | 273 ----- .../dart/lib/src/objects/parse_response.dart | 22 - .../objects/parse_save_state_aware_child.dart | 72 -- .../dart/lib/src/objects/parse_session.dart | 47 - packages/dart/lib/src/objects/parse_user.dart | 522 --------- .../response/parse_error_response.dart | 16 - .../response/parse_exception_response.dart | 27 - .../response/parse_response_builder.dart | 164 --- .../response/parse_response_utils.dart | 66 -- .../response/parse_success_no_results.dart | 10 - packages/dart/lib/src/storage/core_store.dart | 31 - .../lib/src/storage/core_store_memory.dart | 75 -- .../lib/src/storage/core_store_sem_impl.dart | 119 -- .../dart/lib/src/storage/xxtea_codec.dart | 60 - .../dart/lib/src/utils/parse_date_format.dart | 66 -- .../dart/lib/src/utils/parse_decoder.dart | 102 -- .../dart/lib/src/utils/parse_encoder.dart | 89 -- .../dart/lib/src/utils/parse_live_list.dart | 791 ------------- packages/dart/lib/src/utils/parse_logger.dart | 44 - .../lib/src/utils/parse_login_helpers.dart | 21 - packages/dart/lib/src/utils/parse_utils.dart | 129 --- packages/dart/lib/src/utils/valuable.dart | 15 - packages/dart/pubspec.yaml | 38 - packages/dart/screenshots/logo.png | Bin 198115 -> 0 bytes .../test/parse_client_configuration_test.dart | 34 - .../dart/test/parse_installation_test.dart | 30 - .../dart/test/parse_query_test.mocks.dart | 106 -- .../test/src/network/parse_query_test.dart | 469 -------- .../test/src/objects/parse_base_test.dart | 170 --- .../parse_object/parse_object_array_test.dart | 775 ------------- .../parse_object_create_test.dart | 159 --- .../parse_object_delete_test.dart | 230 ---- .../parse_object_distinct_test.dart | 167 --- .../parse_object/parse_object_fetch_test.dart | 174 --- .../parse_object_get_all_test.dart | 156 --- .../parse_object_get_object_test.dart | 170 --- ...parse_object_increment_decrement_test.dart | 428 ------- .../parse_object/parse_object_query_test.dart | 172 --- .../parse_object_relation_test.dart | 637 ---------- .../parse_object/parse_object_save_test.dart | 488 -------- .../parse_object/parse_object_test.dart | 24 - .../parse_object/parse_object_unset_test.dart | 198 ---- .../parse_object_update_test.dart | 221 ---- .../response/parse_response_utils_test.dart | 164 --- .../test/src/utils/parse_encoder_test.dart | 105 -- packages/dart/test/test_utils.dart | 127 -- packages/flutter/CHANGELOG.md | 106 -- packages/flutter/LICENSE | 176 --- packages/flutter/NOTICE | 10 - packages/flutter/PUSH.md | 76 -- packages/flutter/README.md | 1024 ----------------- packages/flutter/analysis_options.yaml | 28 - packages/flutter/example/.gitignore | 44 - packages/flutter/example/.metadata | 45 - packages/flutter/example/README.md | 14 - .../flutter/example/analysis_options.yaml | 29 - packages/flutter/example/android/.gitignore | 13 - .../flutter/example/android/app/build.gradle | 72 -- .../android/app/src/debug/AndroidManifest.xml | 7 - .../android/app/src/main/AndroidManifest.xml | 33 - .../flutter_plugin_example/MainActivity.kt | 6 - .../res/drawable-v21/launch_background.xml | 12 - .../main/res/drawable/launch_background.xml | 12 - .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 0 bytes .../app/src/main/res/values-night/styles.xml | 18 - .../app/src/main/res/values/styles.xml | 18 - .../app/src/profile/AndroidManifest.xml | 7 - packages/flutter/example/android/build.gradle | 31 - .../flutter/example/android/gradle.properties | 3 - .../gradle/wrapper/gradle-wrapper.properties | 5 - .../flutter/example/android/settings.gradle | 11 - packages/flutter/example/assets/parse.png | Bin 125704 -> 0 bytes .../flutter/example/fonts/Roboto/LICENSE.txt | 202 ---- .../example/fonts/Roboto/Roboto-Black.ttf | Bin 171480 -> 0 bytes .../example/fonts/Roboto/Roboto-Bold.ttf | Bin 170760 -> 0 bytes .../example/fonts/Roboto/Roboto-Light.ttf | Bin 170420 -> 0 bytes .../example/fonts/Roboto/Roboto-Medium.ttf | Bin 172064 -> 0 bytes .../example/fonts/Roboto/Roboto-Regular.ttf | Bin 171676 -> 0 bytes .../example/fonts/Roboto/Roboto-Thin.ttf | Bin 171904 -> 0 bytes packages/flutter/example/ios/.gitignore | 34 - .../ios/Flutter/AppFrameworkInfo.plist | 26 - .../example/ios/Flutter/Debug.xcconfig | 2 - .../example/ios/Flutter/Release.xcconfig | 2 - packages/flutter/example/ios/Podfile | 44 - .../ios/Runner.xcodeproj/project.pbxproj | 613 ---------- .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/WorkspaceSettings.xcsettings | 8 - .../xcshareddata/xcschemes/Runner.xcscheme | 98 -- .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/WorkspaceSettings.xcsettings | 8 - .../example/ios/Runner/AppDelegate.swift | 13 - .../AppIcon.appiconset/Contents.json | 122 -- .../Icon-App-1024x1024@1x.png | Bin 10932 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 295 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 406 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 450 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 282 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 462 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 704 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 406 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 586 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 862 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 862 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 1674 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 762 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 1226 -> 0 bytes .../Icon-App-83.5x83.5@2x.png | Bin 1418 -> 0 bytes .../LaunchImage.imageset/Contents.json | 23 - .../LaunchImage.imageset/LaunchImage.png | Bin 68 -> 0 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 68 -> 0 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 68 -> 0 bytes .../LaunchImage.imageset/README.md | 5 - .../Runner/Base.lproj/LaunchScreen.storyboard | 37 - .../ios/Runner/Base.lproj/Main.storyboard | 26 - .../flutter/example/ios/Runner/Info.plist | 51 - .../ios/Runner/Runner-Bridging-Header.h | 1 - .../example/ios/RunnerTests/RunnerTests.swift | 12 - .../example/lib/data/base/api_error.dart | 8 - .../example/lib/data/base/api_response.dart | 30 - .../flutter/example/lib/data/model/day.dart | 39 - .../example/lib/data/model/diet_plan.dart | 38 - .../flutter/example/lib/data/model/user.dart | 43 - .../contract_provider_diet_plan.dart | 20 - .../diet_plan/provider_api_diet_plan.dart | 74 -- .../diet_plan/provider_db_diet_plan.dart | 179 --- .../diet_plan/repository_diet_plan.dart | 165 --- .../user/contract_provider_user.dart | 17 - .../repositories/user/provider_api_user.dart | 63 - .../repositories/user/provider_db_user.dart | 108 -- .../repositories/user/repository_user.dart | 87 -- .../constants/application_constants.dart | 6 - .../lib/domain/utils/collection_utils.dart | 5 - .../example/lib/domain/utils/db_utils.dart | 11 - .../flutter/example/lib/live_list/main.dart | 202 ---- packages/flutter/example/lib/main.dart | 392 ------- .../example/lib/pages/decision_page.dart | 97 -- .../flutter/example/lib/pages/home_page.dart | 136 --- .../flutter/example/lib/pages/login_page.dart | 253 ---- packages/flutter/example/linux/.gitignore | 1 - packages/flutter/example/linux/CMakeLists.txt | 139 --- .../example/linux/flutter/CMakeLists.txt | 88 -- .../flutter/generated_plugin_registrant.cc | 11 - .../flutter/generated_plugin_registrant.h | 15 - .../linux/flutter/generated_plugins.cmake | 23 - packages/flutter/example/linux/main.cc | 6 - .../flutter/example/linux/my_application.cc | 104 -- .../flutter/example/linux/my_application.h | 18 - packages/flutter/example/macos/.gitignore | 7 - .../macos/Flutter/Flutter-Debug.xcconfig | 2 - .../macos/Flutter/Flutter-Release.xcconfig | 2 - packages/flutter/example/macos/Podfile | 43 - .../macos/Runner.xcodeproj/project.pbxproj | 695 ----------- .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/xcschemes/Runner.xcscheme | 98 -- .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../example/macos/Runner/AppDelegate.swift | 9 - .../AppIcon.appiconset/Contents.json | 68 -- .../AppIcon.appiconset/app_icon_1024.png | Bin 102994 -> 0 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 5680 -> 0 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 520 -> 0 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 14142 -> 0 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 1066 -> 0 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 36406 -> 0 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 2218 -> 0 bytes .../macos/Runner/Base.lproj/MainMenu.xib | 343 ------ .../macos/Runner/Configs/AppInfo.xcconfig | 14 - .../macos/Runner/Configs/Debug.xcconfig | 2 - .../macos/Runner/Configs/Release.xcconfig | 2 - .../macos/Runner/Configs/Warnings.xcconfig | 13 - .../macos/Runner/DebugProfile.entitlements | 12 - .../flutter/example/macos/Runner/Info.plist | 32 - .../macos/Runner/MainFlutterWindow.swift | 15 - .../example/macos/Runner/Release.entitlements | 8 - .../macos/RunnerTests/RunnerTests.swift | 12 - packages/flutter/example/pubspec.yaml | 56 - .../repository_diet_plan_api_test.dart | 184 --- .../repository_diet_plan_db_test.dart | 210 ---- .../repository/repository_mock_utils.dart | 47 - packages/flutter/example/web/favicon.png | Bin 917 -> 0 bytes .../flutter/example/web/icons/Icon-192.png | Bin 5292 -> 0 bytes .../flutter/example/web/icons/Icon-512.png | Bin 8252 -> 0 bytes .../example/web/icons/Icon-maskable-192.png | Bin 5594 -> 0 bytes .../example/web/icons/Icon-maskable-512.png | Bin 20998 -> 0 bytes packages/flutter/example/web/index.html | 59 - packages/flutter/example/web/manifest.json | 35 - packages/flutter/example/windows/.gitignore | 17 - .../flutter/example/windows/CMakeLists.txt | 102 -- .../example/windows/flutter/CMakeLists.txt | 104 -- .../flutter/generated_plugin_registrant.cc | 14 - .../flutter/generated_plugin_registrant.h | 15 - .../windows/flutter/generated_plugins.cmake | 24 - .../example/windows/runner/CMakeLists.txt | 40 - .../flutter/example/windows/runner/Runner.rc | 121 -- .../example/windows/runner/flutter_window.cpp | 66 -- .../example/windows/runner/flutter_window.h | 33 - .../flutter/example/windows/runner/main.cpp | 43 - .../flutter/example/windows/runner/resource.h | 16 - .../windows/runner/resources/app_icon.ico | Bin 33772 -> 0 bytes .../windows/runner/runner.exe.manifest | 20 - .../flutter/example/windows/runner/utils.cpp | 65 -- .../flutter/example/windows/runner/utils.h | 19 - .../example/windows/runner/win32_window.cpp | 288 ----- .../example/windows/runner/win32_window.h | 102 -- .../flutter/lib/parse_server_sdk_flutter.dart | 149 --- .../src/notification/parse_notification.dart | 34 - packages/flutter/lib/src/push/parse_push.dart | 88 -- .../src/storage/core_store_directory_io.dart | 87 -- .../src/storage/core_store_directory_web.dart | 12 - .../lib/src/storage/core_store_sembast.dart | 67 -- .../core_store_shared_preferences.dart | 95 -- .../lib/src/utils/parse_live_grid.dart | 198 ---- .../lib/src/utils/parse_live_list.dart | 292 ----- packages/flutter/pubspec.yaml | 44 - packages/flutter/screenshots/logo.png | Bin 198115 -> 0 bytes .../test/parse_client_configuration_test.dart | 34 - .../storage/core_store_directory_io_test.dart | 242 ---- res/values/strings_en.arb | 1 - tools/flutter-dependencies.bat | 8 - tools/flutter-dependencies.sh | 11 - 416 files changed, 25438 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/---1-report-an-issue.md delete mode 100644 .github/ISSUE_TEMPLATE/---2-feature-request.md delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/pull_request_template.md delete mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/release-automated.yml delete mode 100644 .github/workflows/release-manual-docs.yml delete mode 100644 .gitignore delete mode 100644 CONTRIBUTING.md delete mode 100644 LICENSE delete mode 100644 NOTICE delete mode 100644 README.md delete mode 120000 docs/migrate-1-0-28.md delete mode 100644 docs/migrate-2-0-0.md rename flutter/{flutter => }/__404error.html (100%) rename flutter/{flutter => }/categories.json (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ChildBuilder.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/clear.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/containsKey.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/get.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/getBool.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/getDouble.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInstance.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInt.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/getString.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/getStringList.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/remove.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/setBool.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/setDouble.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/setInt.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/setString.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSembastImp/setStringList.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/clear.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/containsKey.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/get.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getBool.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getDouble.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInstance.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInt.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getString.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getStringList.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/remove.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setBool.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setDouble.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setInt.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setString.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setStringList.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/DataGetter.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/Parse-class.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/Parse/Parse.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/Parse/checkConnectivity.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/Parse/connectivityStream.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/Parse/didChangeAppLifecycleState.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/Parse/initialize.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/ParseLiveGridWidget.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/animationController.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/childAspectRatio.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/childBuilder.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/createState.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisCount.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisSpacing.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/defaultChildBuilder.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/duration.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/gridLoadingElement.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/lazyLoading.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/listenOnAllSubItems.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/listeningIncludes.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/mainAxisSpacing.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/padding.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/preloadedColumns.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/primary.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/query.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/queryEmptyElement.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/removedItemBuilder.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/reverse.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollController.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollDirection.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollPhysics.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveGridWidget/shrinkWrap.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListElementWidget/ParseLiveListElementWidget.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListElementWidget/childBuilder.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListElementWidget/createState.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListElementWidget/duration.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListElementWidget/loadedData.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListElementWidget/preLoadedData.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListElementWidget/sizeFactor.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListElementWidget/stream.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget-class.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/ParseLiveListWidget.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/childBuilder.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/createState.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/defaultChildBuilder.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/duration.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/lazyLoading.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/listLoadingElement.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/listenOnAllSubItems.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/listeningIncludes.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/padding.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/preloadedColumns.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/primary.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/query.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/queryEmptyElement.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/removedItemBuilder.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/reverse.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollController.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollDirection.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollPhysics.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseLiveListWidget/shrinkWrap.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseNotification-class.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseNotification/ParseNotification.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseNotification/instance.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseNotification/keyNotificationChannelName.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParseNotification/showNotification.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParsePush-class.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParsePush/ParsePush.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParsePush/getSubscribedChannels.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParsePush/initialize.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParsePush/instance.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParsePush/keyPushType.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParsePush/keyType.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParsePush/onMessage.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParsePush/subscribeToChannel.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/ParsePush/unsubscribeFromChannel.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/StreamGetter.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/dbDirectory.html (100%) rename flutter/{flutter => }/flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html (100%) rename flutter/{flutter => }/index.html (100%) rename flutter/{flutter => }/index.json (100%) rename flutter/{flutter => }/search.html (100%) rename flutter/{flutter => }/static-assets/docs.dart.js (100%) rename flutter/{flutter => }/static-assets/docs.dart.js.map (100%) rename flutter/{flutter => }/static-assets/favicon.png (100%) rename flutter/{flutter => }/static-assets/github.css (100%) rename flutter/{flutter => }/static-assets/highlight.pack.js (100%) rename flutter/{flutter => }/static-assets/play_button.svg (100%) rename flutter/{flutter => }/static-assets/readme.md (100%) rename flutter/{flutter => }/static-assets/search.svg (100%) rename flutter/{flutter => }/static-assets/styles.css (100%) delete mode 100644 packages/dart/CHANGELOG.md delete mode 100644 packages/dart/LICENSE delete mode 100644 packages/dart/NOTICE delete mode 100644 packages/dart/README.md delete mode 100644 packages/dart/analysis_options.yaml delete mode 100644 packages/dart/example/main.dart delete mode 100644 packages/dart/example/pubspec.yaml delete mode 100644 packages/dart/lib/parse_server_sdk.dart delete mode 100644 packages/dart/lib/src/base/parse_constants.dart delete mode 100644 packages/dart/lib/src/data/parse_core_data.dart delete mode 100644 packages/dart/lib/src/data/parse_subclass_handler.dart delete mode 100644 packages/dart/lib/src/enums/parse_enum_api_rq.dart delete mode 100644 packages/dart/lib/src/network/dio_adapter_io.dart delete mode 100644 packages/dart/lib/src/network/dio_adapter_js.dart delete mode 100644 packages/dart/lib/src/network/http_client_io.dart delete mode 100644 packages/dart/lib/src/network/http_client_js.dart delete mode 100644 packages/dart/lib/src/network/options.dart delete mode 100644 packages/dart/lib/src/network/parse_client.dart delete mode 100644 packages/dart/lib/src/network/parse_connectivity.dart delete mode 100644 packages/dart/lib/src/network/parse_dio_client.dart delete mode 100644 packages/dart/lib/src/network/parse_http_client.dart delete mode 100644 packages/dart/lib/src/network/parse_live_query.dart delete mode 100644 packages/dart/lib/src/network/parse_query.dart delete mode 100644 packages/dart/lib/src/network/parse_websocket.dart delete mode 100644 packages/dart/lib/src/network/parse_websocket_html.dart delete mode 100644 packages/dart/lib/src/network/parse_websocket_io.dart delete mode 100644 packages/dart/lib/src/objects/parse_acl.dart delete mode 100644 packages/dart/lib/src/objects/parse_array.dart delete mode 100644 packages/dart/lib/src/objects/parse_base.dart delete mode 100644 packages/dart/lib/src/objects/parse_cloneable.dart delete mode 100644 packages/dart/lib/src/objects/parse_config.dart delete mode 100644 packages/dart/lib/src/objects/parse_error.dart delete mode 100644 packages/dart/lib/src/objects/parse_exception.dart delete mode 100644 packages/dart/lib/src/objects/parse_file.dart delete mode 100644 packages/dart/lib/src/objects/parse_file_base.dart delete mode 100644 packages/dart/lib/src/objects/parse_file_web.dart delete mode 100644 packages/dart/lib/src/objects/parse_function.dart delete mode 100644 packages/dart/lib/src/objects/parse_geo_point.dart delete mode 100644 packages/dart/lib/src/objects/parse_installation.dart delete mode 100644 packages/dart/lib/src/objects/parse_number.dart delete mode 100644 packages/dart/lib/src/objects/parse_object.dart delete mode 100644 packages/dart/lib/src/objects/parse_operation/parse_add_operation.dart delete mode 100644 packages/dart/lib/src/objects/parse_operation/parse_add_relation_operation.dart delete mode 100644 packages/dart/lib/src/objects/parse_operation/parse_add_unique_operation.dart delete mode 100644 packages/dart/lib/src/objects/parse_operation/parse_increment_operation.dart delete mode 100644 packages/dart/lib/src/objects/parse_operation/parse_operation.dart delete mode 100644 packages/dart/lib/src/objects/parse_operation/parse_remove_operation.dart delete mode 100644 packages/dart/lib/src/objects/parse_operation/parse_remove_relation_operation.dart delete mode 100644 packages/dart/lib/src/objects/parse_relation.dart delete mode 100644 packages/dart/lib/src/objects/parse_response.dart delete mode 100644 packages/dart/lib/src/objects/parse_save_state_aware_child.dart delete mode 100644 packages/dart/lib/src/objects/parse_session.dart delete mode 100644 packages/dart/lib/src/objects/parse_user.dart delete mode 100644 packages/dart/lib/src/objects/response/parse_error_response.dart delete mode 100644 packages/dart/lib/src/objects/response/parse_exception_response.dart delete mode 100644 packages/dart/lib/src/objects/response/parse_response_builder.dart delete mode 100644 packages/dart/lib/src/objects/response/parse_response_utils.dart delete mode 100644 packages/dart/lib/src/objects/response/parse_success_no_results.dart delete mode 100644 packages/dart/lib/src/storage/core_store.dart delete mode 100644 packages/dart/lib/src/storage/core_store_memory.dart delete mode 100644 packages/dart/lib/src/storage/core_store_sem_impl.dart delete mode 100644 packages/dart/lib/src/storage/xxtea_codec.dart delete mode 100644 packages/dart/lib/src/utils/parse_date_format.dart delete mode 100644 packages/dart/lib/src/utils/parse_decoder.dart delete mode 100644 packages/dart/lib/src/utils/parse_encoder.dart delete mode 100644 packages/dart/lib/src/utils/parse_live_list.dart delete mode 100644 packages/dart/lib/src/utils/parse_logger.dart delete mode 100644 packages/dart/lib/src/utils/parse_login_helpers.dart delete mode 100644 packages/dart/lib/src/utils/parse_utils.dart delete mode 100644 packages/dart/lib/src/utils/valuable.dart delete mode 100644 packages/dart/pubspec.yaml delete mode 100644 packages/dart/screenshots/logo.png delete mode 100644 packages/dart/test/parse_client_configuration_test.dart delete mode 100644 packages/dart/test/parse_installation_test.dart delete mode 100644 packages/dart/test/parse_query_test.mocks.dart delete mode 100644 packages/dart/test/src/network/parse_query_test.dart delete mode 100644 packages/dart/test/src/objects/parse_base_test.dart delete mode 100644 packages/dart/test/src/objects/parse_object/parse_object_array_test.dart delete mode 100644 packages/dart/test/src/objects/parse_object/parse_object_create_test.dart delete mode 100644 packages/dart/test/src/objects/parse_object/parse_object_delete_test.dart delete mode 100644 packages/dart/test/src/objects/parse_object/parse_object_distinct_test.dart delete mode 100644 packages/dart/test/src/objects/parse_object/parse_object_fetch_test.dart delete mode 100644 packages/dart/test/src/objects/parse_object/parse_object_get_all_test.dart delete mode 100644 packages/dart/test/src/objects/parse_object/parse_object_get_object_test.dart delete mode 100644 packages/dart/test/src/objects/parse_object/parse_object_increment_decrement_test.dart delete mode 100644 packages/dart/test/src/objects/parse_object/parse_object_query_test.dart delete mode 100644 packages/dart/test/src/objects/parse_object/parse_object_relation_test.dart delete mode 100644 packages/dart/test/src/objects/parse_object/parse_object_save_test.dart delete mode 100644 packages/dart/test/src/objects/parse_object/parse_object_test.dart delete mode 100644 packages/dart/test/src/objects/parse_object/parse_object_unset_test.dart delete mode 100644 packages/dart/test/src/objects/parse_object/parse_object_update_test.dart delete mode 100644 packages/dart/test/src/objects/response/parse_response_utils_test.dart delete mode 100644 packages/dart/test/src/utils/parse_encoder_test.dart delete mode 100644 packages/dart/test/test_utils.dart delete mode 100644 packages/flutter/CHANGELOG.md delete mode 100644 packages/flutter/LICENSE delete mode 100644 packages/flutter/NOTICE delete mode 100644 packages/flutter/PUSH.md delete mode 100644 packages/flutter/README.md delete mode 100644 packages/flutter/analysis_options.yaml delete mode 100644 packages/flutter/example/.gitignore delete mode 100644 packages/flutter/example/.metadata delete mode 100644 packages/flutter/example/README.md delete mode 100644 packages/flutter/example/analysis_options.yaml delete mode 100644 packages/flutter/example/android/.gitignore delete mode 100644 packages/flutter/example/android/app/build.gradle delete mode 100644 packages/flutter/example/android/app/src/debug/AndroidManifest.xml delete mode 100644 packages/flutter/example/android/app/src/main/AndroidManifest.xml delete mode 100644 packages/flutter/example/android/app/src/main/kotlin/com/example/flutter_plugin_example/MainActivity.kt delete mode 100644 packages/flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml delete mode 100644 packages/flutter/example/android/app/src/main/res/drawable/launch_background.xml delete mode 100644 packages/flutter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 packages/flutter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 packages/flutter/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 packages/flutter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 packages/flutter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 packages/flutter/example/android/app/src/main/res/values-night/styles.xml delete mode 100644 packages/flutter/example/android/app/src/main/res/values/styles.xml delete mode 100644 packages/flutter/example/android/app/src/profile/AndroidManifest.xml delete mode 100644 packages/flutter/example/android/build.gradle delete mode 100644 packages/flutter/example/android/gradle.properties delete mode 100644 packages/flutter/example/android/gradle/wrapper/gradle-wrapper.properties delete mode 100644 packages/flutter/example/android/settings.gradle delete mode 100644 packages/flutter/example/assets/parse.png delete mode 100644 packages/flutter/example/fonts/Roboto/LICENSE.txt delete mode 100644 packages/flutter/example/fonts/Roboto/Roboto-Black.ttf delete mode 100644 packages/flutter/example/fonts/Roboto/Roboto-Bold.ttf delete mode 100644 packages/flutter/example/fonts/Roboto/Roboto-Light.ttf delete mode 100644 packages/flutter/example/fonts/Roboto/Roboto-Medium.ttf delete mode 100644 packages/flutter/example/fonts/Roboto/Roboto-Regular.ttf delete mode 100644 packages/flutter/example/fonts/Roboto/Roboto-Thin.ttf delete mode 100644 packages/flutter/example/ios/.gitignore delete mode 100644 packages/flutter/example/ios/Flutter/AppFrameworkInfo.plist delete mode 100644 packages/flutter/example/ios/Flutter/Debug.xcconfig delete mode 100644 packages/flutter/example/ios/Flutter/Release.xcconfig delete mode 100644 packages/flutter/example/ios/Podfile delete mode 100644 packages/flutter/example/ios/Runner.xcodeproj/project.pbxproj delete mode 100644 packages/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 packages/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 packages/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings delete mode 100644 packages/flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme delete mode 100644 packages/flutter/example/ios/Runner.xcworkspace/contents.xcworkspacedata delete mode 100644 packages/flutter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 packages/flutter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings delete mode 100644 packages/flutter/example/ios/Runner/AppDelegate.swift delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png delete mode 100644 packages/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md delete mode 100644 packages/flutter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard delete mode 100644 packages/flutter/example/ios/Runner/Base.lproj/Main.storyboard delete mode 100644 packages/flutter/example/ios/Runner/Info.plist delete mode 100644 packages/flutter/example/ios/Runner/Runner-Bridging-Header.h delete mode 100644 packages/flutter/example/ios/RunnerTests/RunnerTests.swift delete mode 100644 packages/flutter/example/lib/data/base/api_error.dart delete mode 100644 packages/flutter/example/lib/data/base/api_response.dart delete mode 100644 packages/flutter/example/lib/data/model/day.dart delete mode 100644 packages/flutter/example/lib/data/model/diet_plan.dart delete mode 100644 packages/flutter/example/lib/data/model/user.dart delete mode 100644 packages/flutter/example/lib/data/repositories/diet_plan/contract_provider_diet_plan.dart delete mode 100644 packages/flutter/example/lib/data/repositories/diet_plan/provider_api_diet_plan.dart delete mode 100644 packages/flutter/example/lib/data/repositories/diet_plan/provider_db_diet_plan.dart delete mode 100644 packages/flutter/example/lib/data/repositories/diet_plan/repository_diet_plan.dart delete mode 100644 packages/flutter/example/lib/data/repositories/user/contract_provider_user.dart delete mode 100644 packages/flutter/example/lib/data/repositories/user/provider_api_user.dart delete mode 100644 packages/flutter/example/lib/data/repositories/user/provider_db_user.dart delete mode 100644 packages/flutter/example/lib/data/repositories/user/repository_user.dart delete mode 100644 packages/flutter/example/lib/domain/constants/application_constants.dart delete mode 100644 packages/flutter/example/lib/domain/utils/collection_utils.dart delete mode 100644 packages/flutter/example/lib/domain/utils/db_utils.dart delete mode 100644 packages/flutter/example/lib/live_list/main.dart delete mode 100644 packages/flutter/example/lib/main.dart delete mode 100644 packages/flutter/example/lib/pages/decision_page.dart delete mode 100644 packages/flutter/example/lib/pages/home_page.dart delete mode 100644 packages/flutter/example/lib/pages/login_page.dart delete mode 100644 packages/flutter/example/linux/.gitignore delete mode 100644 packages/flutter/example/linux/CMakeLists.txt delete mode 100644 packages/flutter/example/linux/flutter/CMakeLists.txt delete mode 100644 packages/flutter/example/linux/flutter/generated_plugin_registrant.cc delete mode 100644 packages/flutter/example/linux/flutter/generated_plugin_registrant.h delete mode 100644 packages/flutter/example/linux/flutter/generated_plugins.cmake delete mode 100644 packages/flutter/example/linux/main.cc delete mode 100644 packages/flutter/example/linux/my_application.cc delete mode 100644 packages/flutter/example/linux/my_application.h delete mode 100644 packages/flutter/example/macos/.gitignore delete mode 100644 packages/flutter/example/macos/Flutter/Flutter-Debug.xcconfig delete mode 100644 packages/flutter/example/macos/Flutter/Flutter-Release.xcconfig delete mode 100644 packages/flutter/example/macos/Podfile delete mode 100644 packages/flutter/example/macos/Runner.xcodeproj/project.pbxproj delete mode 100644 packages/flutter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 packages/flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme delete mode 100644 packages/flutter/example/macos/Runner.xcworkspace/contents.xcworkspacedata delete mode 100644 packages/flutter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 packages/flutter/example/macos/Runner/AppDelegate.swift delete mode 100644 packages/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 packages/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png delete mode 100644 packages/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png delete mode 100644 packages/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png delete mode 100644 packages/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png delete mode 100644 packages/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png delete mode 100644 packages/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png delete mode 100644 packages/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png delete mode 100644 packages/flutter/example/macos/Runner/Base.lproj/MainMenu.xib delete mode 100644 packages/flutter/example/macos/Runner/Configs/AppInfo.xcconfig delete mode 100644 packages/flutter/example/macos/Runner/Configs/Debug.xcconfig delete mode 100644 packages/flutter/example/macos/Runner/Configs/Release.xcconfig delete mode 100644 packages/flutter/example/macos/Runner/Configs/Warnings.xcconfig delete mode 100644 packages/flutter/example/macos/Runner/DebugProfile.entitlements delete mode 100644 packages/flutter/example/macos/Runner/Info.plist delete mode 100644 packages/flutter/example/macos/Runner/MainFlutterWindow.swift delete mode 100644 packages/flutter/example/macos/Runner/Release.entitlements delete mode 100644 packages/flutter/example/macos/RunnerTests/RunnerTests.swift delete mode 100644 packages/flutter/example/pubspec.yaml delete mode 100644 packages/flutter/example/test/data/repository/diet_plan/repository_diet_plan_api_test.dart delete mode 100644 packages/flutter/example/test/data/repository/diet_plan/repository_diet_plan_db_test.dart delete mode 100644 packages/flutter/example/test/data/repository/repository_mock_utils.dart delete mode 100644 packages/flutter/example/web/favicon.png delete mode 100644 packages/flutter/example/web/icons/Icon-192.png delete mode 100644 packages/flutter/example/web/icons/Icon-512.png delete mode 100644 packages/flutter/example/web/icons/Icon-maskable-192.png delete mode 100644 packages/flutter/example/web/icons/Icon-maskable-512.png delete mode 100644 packages/flutter/example/web/index.html delete mode 100644 packages/flutter/example/web/manifest.json delete mode 100644 packages/flutter/example/windows/.gitignore delete mode 100644 packages/flutter/example/windows/CMakeLists.txt delete mode 100644 packages/flutter/example/windows/flutter/CMakeLists.txt delete mode 100644 packages/flutter/example/windows/flutter/generated_plugin_registrant.cc delete mode 100644 packages/flutter/example/windows/flutter/generated_plugin_registrant.h delete mode 100644 packages/flutter/example/windows/flutter/generated_plugins.cmake delete mode 100644 packages/flutter/example/windows/runner/CMakeLists.txt delete mode 100644 packages/flutter/example/windows/runner/Runner.rc delete mode 100644 packages/flutter/example/windows/runner/flutter_window.cpp delete mode 100644 packages/flutter/example/windows/runner/flutter_window.h delete mode 100644 packages/flutter/example/windows/runner/main.cpp delete mode 100644 packages/flutter/example/windows/runner/resource.h delete mode 100644 packages/flutter/example/windows/runner/resources/app_icon.ico delete mode 100644 packages/flutter/example/windows/runner/runner.exe.manifest delete mode 100644 packages/flutter/example/windows/runner/utils.cpp delete mode 100644 packages/flutter/example/windows/runner/utils.h delete mode 100644 packages/flutter/example/windows/runner/win32_window.cpp delete mode 100644 packages/flutter/example/windows/runner/win32_window.h delete mode 100644 packages/flutter/lib/parse_server_sdk_flutter.dart delete mode 100644 packages/flutter/lib/src/notification/parse_notification.dart delete mode 100644 packages/flutter/lib/src/push/parse_push.dart delete mode 100644 packages/flutter/lib/src/storage/core_store_directory_io.dart delete mode 100644 packages/flutter/lib/src/storage/core_store_directory_web.dart delete mode 100644 packages/flutter/lib/src/storage/core_store_sembast.dart delete mode 100644 packages/flutter/lib/src/storage/core_store_shared_preferences.dart delete mode 100644 packages/flutter/lib/src/utils/parse_live_grid.dart delete mode 100644 packages/flutter/lib/src/utils/parse_live_list.dart delete mode 100644 packages/flutter/pubspec.yaml delete mode 100644 packages/flutter/screenshots/logo.png delete mode 100644 packages/flutter/test/parse_client_configuration_test.dart delete mode 100644 packages/flutter/test/src/storage/core_store_directory_io_test.dart delete mode 100644 res/values/strings_en.arb delete mode 100644 tools/flutter-dependencies.bat delete mode 100644 tools/flutter-dependencies.sh diff --git a/.github/ISSUE_TEMPLATE/---1-report-an-issue.md b/.github/ISSUE_TEMPLATE/---1-report-an-issue.md deleted file mode 100644 index 52fb548a0..000000000 --- a/.github/ISSUE_TEMPLATE/---1-report-an-issue.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -name: "\U0001F41B Report an issue" -about: A feature is not working as expected. -title: '' -labels: '' -assignees: '' - ---- - -### New Issue Checklist - - -- [ ] I am not disclosing a [vulnerability](https://github.com/parse-community/Parse-SDK-Flutter/security/policy). -- [ ] I am not just asking a [question](https://github.com/parse-community/.github/blob/main/SUPPORT.md). -- [ ] I have searched through [existing issues](https://github.com/parse-community/Parse-SDK-Flutter/issues?q=is%3Aissue). -- [ ] I can reproduce the issue with the latest version of [Parse Server](https://github.com/parse-community/parse-server/releases) and the [Parse Flutter SDK](https://github.com/parse-community/Parse-SDK-Flutter/releases). - -### Issue Description - - -### Steps to reproduce - - -### Actual Outcome - - -### Expected Outcome - - -### Environment - - -Parse Flutter SDK -- SDK version: `FILL_THIS_OUT` -- Flutter version: `FILL_THIS_OUT` -- Dart version: `FILL_THIS_OUT` -- Operating system version: `FILL_THIS_OUT` - -Server -- Parse Server version: `FILL_THIS_OUT` - -### Logs - diff --git a/.github/ISSUE_TEMPLATE/---2-feature-request.md b/.github/ISSUE_TEMPLATE/---2-feature-request.md deleted file mode 100644 index 77c685a50..000000000 --- a/.github/ISSUE_TEMPLATE/---2-feature-request.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -name: "\U0001F4A1 Request a feature" -about: Suggest new functionality or an enhancement of existing functionality. -title: '' -labels: '' -assignees: '' - ---- - -### New Feature / Enhancement Checklist - - -- [ ] I am not disclosing a [vulnerability](https://github.com/parse-community/Parse-SDK-Flutter/security/policy). -- [ ] I am not just asking a [question](https://github.com/parse-community/.github/blob/main/SUPPORT.md). -- [ ] I have searched through [existing issues](https://github.com/parse-community/Parse-SDK-Flutter/issues?q=is%3Aissue). - -### Current Limitation - - -### Feature / Enhancement Description - - -### Example Use Case - - -### Alternatives / Workarounds - diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index e5a8c3caa..000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,8 +0,0 @@ -blank_issues_enabled: false -contact_links: - - name: 🙋🏽‍♀️ Getting help with code - url: https://stackoverflow.com/questions/tagged/parse-platform - about: Get help with code-level questions on Stack Overflow. - - name: 🙋 Getting general help - url: https://community.parseplatform.org - about: Get help with other questions on our Community Forum. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index 50d80c826..000000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,20 +0,0 @@ - -## Pull Request - -- Report security issues [confidentially](https://github.com/parse-community/Parse-SDK-Flutter/security/policy). -- Any contribution is under this [license](https://github.com/parse-community/Parse-SDK-Flutter/blob/master/LICENSE). -- Link this pull request to an [issue](https://github.com/parse-community/Parse-SDK-Flutter/issues?q=is%3Aissue). - -## Issue - - -Closes: FILL_THIS_OUT - -## Approach - - -## Tasks - - -- [ ] Add tests -- [ ] Add changes to documentation (guides, repository pages, code comments) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 304d625c5..000000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,152 +0,0 @@ -name: ci -on: - push: - branches: - - "master" - - "development" - paths-ignore: - - "**/README.md" - - "docs/**" - pull_request: - branches: - - "**" -jobs: - check-dart: - runs-on: ${{ matrix.os }} - strategy: - matrix: - include: - # Dart framework may contain breaking changes in minor version releases, not following semver. - - name: Dart 3.0, Ubuntu - os: ubuntu-latest - sdk: 3.0.0 - - name: Dart 3.0, macOS - os: macos-latest - sdk: 3.0.0 - - name: Dart 3.0, Windows - os: windows-latest - sdk: 3.0.0 - # Only the latest Dart framework version (above) is tested with all architectures. Previous - # Dart framework versions (below) are only tested with Ubuntu to reduce CI resource usage. - - name: Dart 2.19 - os: ubuntu-latest - sdk: 2.19.6 - - name: Dart 2.18 - os: ubuntu-latest - sdk: 2.18.7 - - name: Dart beta - os: ubuntu-latest - sdk: beta - fail-fast: false - name: Test ${{ matrix.name }} - steps: - - name: Checkout code - uses: actions/checkout@v3 - - name: Setup dart - uses: dart-lang/setup-dart@v1.5.0 - with: - sdk: ${{ matrix.sdk }} - - name: Install dependencies - run: dart pub get --directory packages/dart - - name: Run build_runner - run: (cd packages/dart && dart run build_runner build --delete-conflicting-outputs) - - name: Analyze code - run: dart analyze packages/dart --fatal-infos - - name: Lint - run: dart format --output=none --set-exit-if-changed packages/dart - - name: Publish dry run - run: cd packages/dart && dart pub publish --dry-run - - name: Run tests - run: (cd packages/dart && dart test --coverage=coverage) - - name: Convert code coverage - # Needs to be adapted to collect the coverage at all platforms if platform specific code is added. - if: ${{ always() && matrix.os == 'ubuntu-latest' }} - working-directory: packages/dart - run: | - dart pub global activate coverage - dart pub global run coverage:format_coverage -i coverage/test -o coverage/lcov.info --lcov --packages=.dart_tool/package_config.json --report-on=lib - - name: Upload code coverage - uses: codecov/codecov-action@v2 - # Needs to be adapted to collect the coverage at all platforms if platform specific code is added. - if: ${{ always() && matrix.os == 'ubuntu-latest' }} - with: - files: packages/dart/coverage/lcov.info - fail_ci_if_error: true - check-flutter: - runs-on: ${{ matrix.os }} - strategy: - matrix: - include: - # Flutter framework may contain breaking changes in minor version releases, not following semver. - - name: Flutter 3.10, Ubuntu - os: ubuntu-latest - sdk: 3.10.x - - name: Flutter 3.10, macOS - os: macos-latest - sdk: 3.10.x - - name: Flutter 3.10, Windows - os: windows-latest - sdk: 3.10.x - # Only the latest Flutter framework version (above) is tested with all architectures. Previous - # Flutter framework versions (below) are only tested with Ubuntu to reduce CI resource usage. - - name: Flutter 3.7 - os: ubuntu-latest - sdk: 3.7.x - - name: Flutter 3.3 - os: ubuntu-latest - sdk: 3.3.x - - name: Flutter beta - os: ubuntu-latest - sdk: beta - fail-fast: false - name: Test ${{ matrix.name }} - steps: - - name: Checkout code - uses: actions/checkout@v3 - - name: Setup flutter (beta) - if: ${{ matrix.sdk == 'beta' }} - uses: subosito/flutter-action@v2 - with: - channel: "beta" - cache: true - - name: Setup flutter - if: ${{ matrix.sdk != 'beta' }} - uses: subosito/flutter-action@v2 - with: - flutter-version: ${{ matrix.sdk }} - cache: true - - name: Install dependencies on Ubuntu and MacOS - if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' - run: | - (cd packages/dart && flutter pub get) - (cd packages/flutter && flutter pub get) - - name: Install dependencies on Windows - if: matrix.os == 'windows-latest' - run: | - cmd /c "cd packages\dart && flutter pub get" - cmd /c "cd packages\flutter && flutter pub get" - - name: Analyze code - run: flutter analyze packages/flutter --fatal-infos - - name: Lint - run: dart format --output=none --set-exit-if-changed packages/flutter - - name: Publish dry run - run: cd packages/flutter && dart pub publish --dry-run - - name: Run tests - run: (cd packages/flutter && flutter test --coverage) - - name: Convert code coverage - # Needs to be adapted to collect the coverage at all platforms if platform specific code is added. - if: ${{ always() && matrix.os == 'ubuntu-latest' }} - working-directory: packages/flutter - run: | - escapedPath="$(echo `pwd` | sed 's/\//\\\//g')" - sed "s/^SF:lib/SF:$escapedPath\/lib/g" coverage/lcov.info > coverage/lcov-full.info - - name: Upload code coverage - uses: codecov/codecov-action@v2 - # Needs to be adapted to collect the coverage at all platforms if platform specific code is added. - if: ${{ always() && matrix.os == 'ubuntu-latest' }} - with: - files: packages/flutter/coverage/lcov-full.info - fail_ci_if_error: true -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true diff --git a/.github/workflows/release-automated.yml b/.github/workflows/release-automated.yml deleted file mode 100644 index 71736b297..000000000 --- a/.github/workflows/release-automated.yml +++ /dev/null @@ -1,54 +0,0 @@ -# To authenticate on pub.dev to publish a release via GitHub Actions, a tag -# needs to be pushed, see: https://dart.dev/tools/pub/automated-publishing -# -# Publishing cannot currently be triggered manually via a "workflow_dispatch", -# see: https://dart.dev/go/publishing-from-github - -name: release-automated -on: - push: - tags: - - "dart-[0-9]+.[0-9]+.[0-9]+*" - - "flutter-[0-9]+.[0-9]+.[0-9]+*" -env: - package: ${{ startsWith(github.ref_name, 'dart') && 'dart' || 'flutter' }} -jobs: - release: - runs-on: ubuntu-latest - timeout-minutes: 10 - permissions: - id-token: write # This is required for requesting the JWT - steps: - - name: Checkout code - uses: actions/checkout@v3 - with: - ref: ${{ github.ref_name }} - - name: Setup dart - uses: dart-lang/setup-dart@v1 - with: - sdk: '3.0.0' # Set to 3.0.0 due to Parse Dart SDK compatibility, can be removed later on - - name: Setup flutter - if: env.package == 'flutter' - uses: subosito/flutter-action@v2 - with: - channel: 'stable' - cache: true - - name: Install dart dependencies - run: dart pub get --directory 'packages/dart' - - name: Install flutter dependencies - if: env.package == 'flutter' - run: dart pub get --directory 'packages/flutter' - - name: Analyze dart - if: env.package == 'dart' - run: dart analyze --fatal-infos 'packages/${{ env.package }}' - - name: Analyze flutter - if: env.package == 'flutter' - run: flutter analyze --fatal-infos 'packages/${{ env.package }}' - - name: Lint - run: dart format --output=none --set-exit-if-changed 'packages/${{ env.package }}' - - name: Publish package (dry-run) - working-directory: 'packages/${{ env.package }}' - run: dart pub publish --dry-run - - name: Publish package - working-directory: 'packages/${{ env.package }}' - run: dart pub publish --force diff --git a/.github/workflows/release-manual-docs.yml b/.github/workflows/release-manual-docs.yml deleted file mode 100644 index f3b1ab09a..000000000 --- a/.github/workflows/release-manual-docs.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: release-manual-docs -on: - workflow_dispatch: - inputs: - tag: - default: '' - description: 'Version tag (dart-#.#.# or flutter-#.#.#):' -env: - package: ${{ startsWith(github.event.inputs.tag, 'dart') && 'dart' || 'flutter' }} -jobs: - docs-publish: - if: github.event.inputs.tag != '' - runs-on: ubuntu-latest - timeout-minutes: 15 - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.event.inputs.tag }} - - name: Setup dart - uses: dart-lang/setup-dart@v1 - - name: Generate Docs - run: | - dart doc ./packages/${{ env.package }}/ -o ./.api_docs/${{ env.package }}/ - - name: Deploy - uses: peaceiris/actions-gh-pages@v3.7.3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./.api_docs/ - destination_dir: ${{ env.package }} diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 00bf6f00c..000000000 --- a/.gitignore +++ /dev/null @@ -1,124 +0,0 @@ -# Miscellaneous -*.class -*.lock -*.log -*.pyc -*.swp -.DS_Store -.atom/ -.buildlog/ -.history -.svn/ - -# IntelliJ related -*.iml -*.ipr -*.iws -.idea/ - -# Visual Studio Code related -.classpath -.project -.settings/ -.vscode/ - -# Flutter repo-specific -/bin/cache/ -/bin/internal/bootstrap.bat -/bin/internal/bootstrap.sh -/bin/mingit/ -/dev/benchmarks/mega_gallery/ -/dev/bots/.recipe_deps -/dev/bots/android_tools/ -/dev/devicelab/ABresults*.json -/dev/docs/doc/ -/dev/docs/flutter.docs.zip -/dev/docs/lib/ -/dev/docs/pubspec.yaml -/dev/integration_tests/**/xcuserdata -/dev/integration_tests/**/Pods -/packages/flutter/coverage/ -version -analysis_benchmark.json - -# packages file containing multi-root paths -.packages.generated - -# Flutter/Dart/Pub related -**/doc/api/ -.dart_tool/ -.flutter-plugins -.flutter-plugins-dependencies -**/generated_plugin_registrant.dart -.packages -.pub-cache/ -.pub/ -build/ -flutter_*.png -linked_*.ds -unlinked.ds -unlinked_spec.ds - -# Android related -**/android/**/gradle-wrapper.jar -**/android/.gradle -**/android/captures/ -**/android/gradlew -**/android/gradlew.bat -**/android/local.properties -**/android/**/GeneratedPluginRegistrant.java -**/android/key.properties -*.jks - -# iOS/XCode related -**/ios/**/*.mode1v3 -**/ios/**/*.mode2v3 -**/ios/**/*.moved-aside -**/ios/**/*.pbxuser -**/ios/**/*.perspectivev3 -**/ios/**/*sync/ -**/ios/**/.sconsign.dblite -**/ios/**/.tags* -**/ios/**/.vagrant/ -**/ios/**/DerivedData/ -**/ios/**/Icon? -**/ios/**/Pods/ -**/ios/**/.symlinks/ -**/ios/**/profile -**/ios/**/xcuserdata -**/ios/.generated/ -**/ios/Flutter/.last_build_id -**/ios/Flutter/App.framework -**/ios/Flutter/Flutter.framework -**/ios/Flutter/Flutter.podspec -**/ios/Flutter/Generated.xcconfig -**/ios/Flutter/ephemeral -**/ios/Flutter/app.flx -**/ios/Flutter/app.zip -**/ios/Flutter/flutter_assets/ -**/ios/Flutter/flutter_export_environment.sh -**/ios/ServiceDefinitions.json -**/ios/Runner/GeneratedPluginRegistrant.* - -# macOS -**/macos/Flutter/GeneratedPluginRegistrant.swift -**/macos/Flutter/ephemeral/ - -# Linux -**/linux/flutter/ephemeral - -# Coverage -coverage/ -lcov.info - -# Symbols -app.*.symbols - -# Exceptions to above rules. -!**/ios/**/default.mode1v3 -!**/ios/**/default.mode2v3 -!**/ios/**/default.pbxuser -!**/ios/**/default.perspectivev3 -!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages -!/dev/ci/**/Gemfile.lock - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 5f35995ba..000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,23 +0,0 @@ -# Contributing to Parse SDK for Flutter - -We want to make contributing to this project as easy and transparent as possible. - -## Pull Requests - -We actively welcome your pull requests. When we get one, we'll run some Parse-specific integration tests on it first. From here, we'll need to get a core member to sign off on the changes and then merge the pull request. For API changes we may need to fix internal uses, which could cause some delay. We'll do our best to provide updates and feedback throughout the process. - -1. Fork the repo and create your branch from `master`. -2. Add unit tests for any new code you add. -3. If you've changed APIs, update the documentation. -4. Ensure the test suite passes. - -## Code of Conduct - -This project adheres to the [Contributor Covenant Code of Conduct](https://github.com/parse-community/parse-server/blob/master/CODE_OF_CONDUCT.md). By participating, you are expected to honor this code. - -## License - -By contributing to Parse SDK Flutter, you agree that your contributions will be licensed under its license. - -[stack-overflow]: http://stackoverflow.com/tags/parse.com -[bug-reports]: https://github.com/parse-community/parse-server diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 0e303d0f1..000000000 --- a/LICENSE +++ /dev/null @@ -1,176 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/NOTICE b/NOTICE deleted file mode 100644 index b23623122..000000000 --- a/NOTICE +++ /dev/null @@ -1,10 +0,0 @@ -Parse Dart / Flutter SDK - -Copyright 2021-present Parse Platform - -This product includes software developed at Parse Platform. -www.parseplatform.org - ---- - -As of October 19, 2021, the original author Phill Wiggins has transferred this code to the Parse Platform organization. \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index bb2ab9756..000000000 --- a/README.md +++ /dev/null @@ -1,27 +0,0 @@ -![parse-repository-header-sdk-flutterdart](https://user-images.githubusercontent.com/5673677/166121476-3838ac9f-a437-409c-bb28-6e1dfcc36b1c.png) - ---- - -[![Build Status](https://github.com/parse-community/Parse-SDK-Flutter/workflows/ci/badge.svg?branch=master)](https://github.com/parse-community/Parse-SDK-Flutter/actions?query=workflow%3Aci+branch%3Amaster) -[![Coverage](https://img.shields.io/codecov/c/github/parse-community/Parse-SDK-Flutter/master)](https://app.codecov.io/gh/parse-community/Parse-SDK-Flutter/branch/master) - -[![Backers on Open Collective](https://opencollective.com/parse-server/backers/badge.svg)][open-collective-link] -[![Sponsors on Open Collective](https://opencollective.com/parse-server/sponsors/badge.svg)][open-collective-link] -[![License](https://img.shields.io/badge/license-Apache%202.0-lightgrey.svg)](https://github.com/parse-community/Parse-SDK-Flutter/blob/master/LICENSE) -[![Forum](https://img.shields.io/discourse/https/community.parseplatform.org/topics.svg)](https://community.parseplatform.org/c/parse-server) -[![Twitter Follow](https://img.shields.io/twitter/follow/ParsePlatform.svg?label=Follow%20us&style=social)](https://twitter.com/intent/follow?screen_name=ParsePlatform) - ---- - -These libraries give you access to the powerful Parse Server backend from your Dart/Flutter app. For more information about Parse Platform and its features visit [parseplatform.org](https://parseplatform.org/). - -# Packages - -These packages are available in this repository: - -| Type | Name | Pub | -|---------|------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Dart | [parse_server_sdk](./packages/dart) | [![pub package](https://img.shields.io/pub/v/parse_server_sdk.svg)](https://pub.dev/packages/parse_server_sdk) [![likes](https://badges.bar/parse_server_sdk/likes)](https://pub.dev/packages/parse_server_sdk/score) [![popularity](https://badges.bar/parse_server_sdk/popularity)](https://pub.dev/packages/parse_server_sdk/score) [![pub points](https://badges.bar/parse_server_sdk/pub%20points)](https://pub.dev/packages/parse_server_sdk/score) | -| Flutter | [parse_server_sdk_flutter](./packages/flutter) | [![pub package](https://img.shields.io/pub/v/parse_server_sdk_flutter.svg)](https://pub.dev/packages/parse_server_sdk_flutter) [![likes](https://badges.bar/parse_server_sdk_flutter/likes)](https://pub.dev/packages/parse_server_sdk_flutter/score) [![popularity](https://badges.bar/parse_server_sdk_flutter/popularity)](https://pub.dev/packages/parse_server_sdk_flutter/score) [![pub points](https://badges.bar/parse_server_sdk_flutter/pub%20points)](https://pub.dev/packages/parse_server_sdk_flutter/score) | - -[open-collective-link]: https://opencollective.com/parse-server diff --git a/docs/migrate-1-0-28.md b/docs/migrate-1-0-28.md deleted file mode 120000 index fd18cf428..000000000 --- a/docs/migrate-1-0-28.md +++ /dev/null @@ -1 +0,0 @@ -migrate-2-0-0.md \ No newline at end of file diff --git a/docs/migrate-2-0-0.md b/docs/migrate-2-0-0.md deleted file mode 100644 index 802859310..000000000 --- a/docs/migrate-2-0-0.md +++ /dev/null @@ -1,53 +0,0 @@ -# Migrate your Flutter application to version 2.0.0 - -Starting with version 2.0.0, this repository is now separated in a pure dart (parse_server_sdk) and a flutter package (parse_server_sdk_flutter). -This was done in order to provide a dart package for the parse-server, while keeping maintenance simple. -You can find both packages in the package directory. - -### 1. pubspec.yaml -In your projects pubspec.yaml at the dependencies section, you have to change -``` -dependencies: - parse_server_sdk: ^1.0.27 -``` -to -``` -dependencies: - parse_server_sdk_flutter: ^2.0.0 -``` -This is the current released version of the parse_server_sdk_flutter package: [![pub package](https://img.shields.io/pub/v/parse_server_sdk_flutter.svg)](https://pub.dev/packages/parse_server_sdk_flutter) - -### 2. imports -As the package name changed, you have to change -``` -import 'package:parse_server_sdk/parse_server_sdk.dart'; -``` - to -``` -import 'package:parse_server_sdk_flutter/parse_server_sdk.dart'; -``` -in every file. - -It is recommended to do so by the replacement feature of your IDE. - -### optional: provide app information on web -As flutter web is now in beta, this SDK aims to be web compatible. -But there are some parts completely different on web. For example, the wep-app cant determine it's name, version or packagename. -That's why you should provide this information on web. -```dart -Parse().initialize( - ... - appName: kIsWeb ? "MyApplication" : null, - appVersion: kIsWeb ? "Version 1" : null, - appPackageName: kIsWeb ? "com.example.myapplication" : null, -); -``` - -### optional: adjust your tests -You tests might fail if the package tries to automatically discover facts like you applications name, version, package name or the default file directory. -You can avoid this automatic discovery by providing values for `appName`, `appVersion`, `appPackageName` as well as `fileDirectory` at you `Parse().initialize()` call. - -### changed network library -In order to provide a `ProgressCallback` for heavy file operations, -the network library was switched from [http](https://pub.dev/packages/http) to [dio](https://pub.dev/packages/dio). -There should be no breaking changes regarding this change, except if you are overriding the `ParseHTTPClient`. \ No newline at end of file diff --git a/flutter/flutter/__404error.html b/flutter/__404error.html similarity index 100% rename from flutter/flutter/__404error.html rename to flutter/__404error.html diff --git a/flutter/flutter/categories.json b/flutter/categories.json similarity index 100% rename from flutter/flutter/categories.json rename to flutter/categories.json diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ChildBuilder.html b/flutter/flutter_parse_sdk_flutter/ChildBuilder.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ChildBuilder.html rename to flutter/flutter_parse_sdk_flutter/ChildBuilder.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp-class.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/clear.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/clear.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/clear.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/clear.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/containsKey.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/containsKey.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/containsKey.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/containsKey.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/get.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/get.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/get.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/get.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getBool.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getBool.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getBool.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getBool.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getDouble.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getDouble.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getDouble.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getDouble.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInstance.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInstance.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInstance.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInstance.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInt.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInt.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInt.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getInt.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getString.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getString.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getString.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getString.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getStringList.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getStringList.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getStringList.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/getStringList.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/remove.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/remove.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/remove.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/remove.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setBool.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setBool.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setBool.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setBool.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setDouble.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setDouble.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setDouble.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setDouble.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setInt.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setInt.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setInt.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setInt.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setString.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setString.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setString.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setString.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setStringList.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setStringList.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setStringList.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSembastImp/setStringList.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp-class.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/clear.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/clear.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/clear.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/clear.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/containsKey.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/containsKey.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/containsKey.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/containsKey.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/get.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/get.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/get.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/get.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getBool.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getBool.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getBool.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getBool.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getDouble.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getDouble.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getDouble.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getDouble.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInstance.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInstance.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInstance.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInstance.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInt.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInt.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInt.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getInt.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getString.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getString.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getString.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getString.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getStringList.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getStringList.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getStringList.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/getStringList.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/remove.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/remove.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/remove.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/remove.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setBool.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setBool.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setBool.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setBool.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setDouble.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setDouble.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setDouble.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setDouble.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setInt.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setInt.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setInt.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setInt.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setString.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setString.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setString.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setString.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setStringList.html b/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setStringList.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setStringList.html rename to flutter/flutter_parse_sdk_flutter/CoreStoreSharedPrefsImp/setStringList.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/DataGetter.html b/flutter/flutter_parse_sdk_flutter/DataGetter.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/DataGetter.html rename to flutter/flutter_parse_sdk_flutter/DataGetter.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/Parse-class.html b/flutter/flutter_parse_sdk_flutter/Parse-class.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/Parse-class.html rename to flutter/flutter_parse_sdk_flutter/Parse-class.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/Parse/Parse.html b/flutter/flutter_parse_sdk_flutter/Parse/Parse.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/Parse/Parse.html rename to flutter/flutter_parse_sdk_flutter/Parse/Parse.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/Parse/checkConnectivity.html b/flutter/flutter_parse_sdk_flutter/Parse/checkConnectivity.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/Parse/checkConnectivity.html rename to flutter/flutter_parse_sdk_flutter/Parse/checkConnectivity.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/Parse/connectivityStream.html b/flutter/flutter_parse_sdk_flutter/Parse/connectivityStream.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/Parse/connectivityStream.html rename to flutter/flutter_parse_sdk_flutter/Parse/connectivityStream.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/Parse/didChangeAppLifecycleState.html b/flutter/flutter_parse_sdk_flutter/Parse/didChangeAppLifecycleState.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/Parse/didChangeAppLifecycleState.html rename to flutter/flutter_parse_sdk_flutter/Parse/didChangeAppLifecycleState.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/Parse/initialize.html b/flutter/flutter_parse_sdk_flutter/Parse/initialize.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/Parse/initialize.html rename to flutter/flutter_parse_sdk_flutter/Parse/initialize.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget-class.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/ParseLiveGridWidget.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/ParseLiveGridWidget.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/ParseLiveGridWidget.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/ParseLiveGridWidget.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/animationController.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/animationController.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/animationController.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/animationController.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childAspectRatio.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childAspectRatio.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childAspectRatio.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childAspectRatio.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childBuilder.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childBuilder.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childBuilder.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/childBuilder.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/createState.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/createState.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/createState.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/createState.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisCount.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisCount.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisCount.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisCount.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisSpacing.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisSpacing.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisSpacing.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/crossAxisSpacing.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/defaultChildBuilder.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/defaultChildBuilder.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/defaultChildBuilder.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/defaultChildBuilder.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/duration.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/duration.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/duration.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/duration.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/gridLoadingElement.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/gridLoadingElement.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/gridLoadingElement.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/gridLoadingElement.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/lazyLoading.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/lazyLoading.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/lazyLoading.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/lazyLoading.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listenOnAllSubItems.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listenOnAllSubItems.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listenOnAllSubItems.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listenOnAllSubItems.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listeningIncludes.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listeningIncludes.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listeningIncludes.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/listeningIncludes.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/mainAxisSpacing.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/mainAxisSpacing.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/mainAxisSpacing.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/mainAxisSpacing.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/padding.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/padding.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/padding.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/padding.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/preloadedColumns.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/preloadedColumns.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/preloadedColumns.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/preloadedColumns.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/primary.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/primary.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/primary.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/primary.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/query.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/query.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/query.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/query.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/queryEmptyElement.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/queryEmptyElement.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/queryEmptyElement.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/queryEmptyElement.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/removedItemBuilder.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/removedItemBuilder.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/removedItemBuilder.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/removedItemBuilder.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/reverse.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/reverse.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/reverse.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/reverse.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollController.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollController.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollController.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollController.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollDirection.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollDirection.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollDirection.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollDirection.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollPhysics.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollPhysics.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollPhysics.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/scrollPhysics.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/shrinkWrap.html b/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/shrinkWrap.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/shrinkWrap.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveGridWidget/shrinkWrap.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget-class.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/ParseLiveListElementWidget.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/ParseLiveListElementWidget.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/ParseLiveListElementWidget.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/ParseLiveListElementWidget.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/childBuilder.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/childBuilder.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/childBuilder.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/childBuilder.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/createState.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/createState.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/createState.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/createState.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/duration.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/duration.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/duration.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/duration.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/loadedData.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/loadedData.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/loadedData.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/loadedData.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/preLoadedData.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/preLoadedData.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/preLoadedData.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/preLoadedData.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/sizeFactor.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/sizeFactor.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/sizeFactor.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/sizeFactor.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/stream.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/stream.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/stream.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListElementWidget/stream.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget-class.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget-class.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget-class.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget-class.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/ParseLiveListWidget.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/ParseLiveListWidget.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/ParseLiveListWidget.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/ParseLiveListWidget.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/childBuilder.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/childBuilder.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/childBuilder.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/childBuilder.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/createState.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/createState.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/createState.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/createState.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/defaultChildBuilder.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/defaultChildBuilder.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/defaultChildBuilder.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/defaultChildBuilder.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/duration.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/duration.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/duration.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/duration.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/lazyLoading.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/lazyLoading.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/lazyLoading.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/lazyLoading.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listLoadingElement.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listLoadingElement.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listLoadingElement.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listLoadingElement.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listenOnAllSubItems.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listenOnAllSubItems.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listenOnAllSubItems.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listenOnAllSubItems.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listeningIncludes.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listeningIncludes.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listeningIncludes.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/listeningIncludes.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/padding.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/padding.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/padding.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/padding.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/preloadedColumns.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/preloadedColumns.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/preloadedColumns.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/preloadedColumns.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/primary.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/primary.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/primary.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/primary.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/query.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/query.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/query.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/query.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/queryEmptyElement.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/queryEmptyElement.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/queryEmptyElement.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/queryEmptyElement.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/removedItemBuilder.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/removedItemBuilder.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/removedItemBuilder.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/removedItemBuilder.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/reverse.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/reverse.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/reverse.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/reverse.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollController.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollController.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollController.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollController.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollDirection.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollDirection.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollDirection.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollDirection.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollPhysics.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollPhysics.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollPhysics.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/scrollPhysics.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/shrinkWrap.html b/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/shrinkWrap.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/shrinkWrap.html rename to flutter/flutter_parse_sdk_flutter/ParseLiveListWidget/shrinkWrap.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification-class.html b/flutter/flutter_parse_sdk_flutter/ParseNotification-class.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseNotification-class.html rename to flutter/flutter_parse_sdk_flutter/ParseNotification-class.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/ParseNotification.html b/flutter/flutter_parse_sdk_flutter/ParseNotification/ParseNotification.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/ParseNotification.html rename to flutter/flutter_parse_sdk_flutter/ParseNotification/ParseNotification.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/instance.html b/flutter/flutter_parse_sdk_flutter/ParseNotification/instance.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/instance.html rename to flutter/flutter_parse_sdk_flutter/ParseNotification/instance.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/keyNotificationChannelName.html b/flutter/flutter_parse_sdk_flutter/ParseNotification/keyNotificationChannelName.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/keyNotificationChannelName.html rename to flutter/flutter_parse_sdk_flutter/ParseNotification/keyNotificationChannelName.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/showNotification.html b/flutter/flutter_parse_sdk_flutter/ParseNotification/showNotification.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParseNotification/showNotification.html rename to flutter/flutter_parse_sdk_flutter/ParseNotification/showNotification.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush-class.html b/flutter/flutter_parse_sdk_flutter/ParsePush-class.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParsePush-class.html rename to flutter/flutter_parse_sdk_flutter/ParsePush-class.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/ParsePush.html b/flutter/flutter_parse_sdk_flutter/ParsePush/ParsePush.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParsePush/ParsePush.html rename to flutter/flutter_parse_sdk_flutter/ParsePush/ParsePush.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/getSubscribedChannels.html b/flutter/flutter_parse_sdk_flutter/ParsePush/getSubscribedChannels.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParsePush/getSubscribedChannels.html rename to flutter/flutter_parse_sdk_flutter/ParsePush/getSubscribedChannels.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/initialize.html b/flutter/flutter_parse_sdk_flutter/ParsePush/initialize.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParsePush/initialize.html rename to flutter/flutter_parse_sdk_flutter/ParsePush/initialize.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/instance.html b/flutter/flutter_parse_sdk_flutter/ParsePush/instance.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParsePush/instance.html rename to flutter/flutter_parse_sdk_flutter/ParsePush/instance.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/keyPushType.html b/flutter/flutter_parse_sdk_flutter/ParsePush/keyPushType.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParsePush/keyPushType.html rename to flutter/flutter_parse_sdk_flutter/ParsePush/keyPushType.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/keyType.html b/flutter/flutter_parse_sdk_flutter/ParsePush/keyType.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParsePush/keyType.html rename to flutter/flutter_parse_sdk_flutter/ParsePush/keyType.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/onMessage.html b/flutter/flutter_parse_sdk_flutter/ParsePush/onMessage.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParsePush/onMessage.html rename to flutter/flutter_parse_sdk_flutter/ParsePush/onMessage.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/subscribeToChannel.html b/flutter/flutter_parse_sdk_flutter/ParsePush/subscribeToChannel.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParsePush/subscribeToChannel.html rename to flutter/flutter_parse_sdk_flutter/ParsePush/subscribeToChannel.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/ParsePush/unsubscribeFromChannel.html b/flutter/flutter_parse_sdk_flutter/ParsePush/unsubscribeFromChannel.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/ParsePush/unsubscribeFromChannel.html rename to flutter/flutter_parse_sdk_flutter/ParsePush/unsubscribeFromChannel.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/StreamGetter.html b/flutter/flutter_parse_sdk_flutter/StreamGetter.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/StreamGetter.html rename to flutter/flutter_parse_sdk_flutter/StreamGetter.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/dbDirectory.html b/flutter/flutter_parse_sdk_flutter/dbDirectory.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/dbDirectory.html rename to flutter/flutter_parse_sdk_flutter/dbDirectory.html diff --git a/flutter/flutter/flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html b/flutter/flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html similarity index 100% rename from flutter/flutter/flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html rename to flutter/flutter_parse_sdk_flutter/flutter_parse_sdk_flutter-library.html diff --git a/flutter/flutter/index.html b/flutter/index.html similarity index 100% rename from flutter/flutter/index.html rename to flutter/index.html diff --git a/flutter/flutter/index.json b/flutter/index.json similarity index 100% rename from flutter/flutter/index.json rename to flutter/index.json diff --git a/flutter/flutter/search.html b/flutter/search.html similarity index 100% rename from flutter/flutter/search.html rename to flutter/search.html diff --git a/flutter/flutter/static-assets/docs.dart.js b/flutter/static-assets/docs.dart.js similarity index 100% rename from flutter/flutter/static-assets/docs.dart.js rename to flutter/static-assets/docs.dart.js diff --git a/flutter/flutter/static-assets/docs.dart.js.map b/flutter/static-assets/docs.dart.js.map similarity index 100% rename from flutter/flutter/static-assets/docs.dart.js.map rename to flutter/static-assets/docs.dart.js.map diff --git a/flutter/flutter/static-assets/favicon.png b/flutter/static-assets/favicon.png similarity index 100% rename from flutter/flutter/static-assets/favicon.png rename to flutter/static-assets/favicon.png diff --git a/flutter/flutter/static-assets/github.css b/flutter/static-assets/github.css similarity index 100% rename from flutter/flutter/static-assets/github.css rename to flutter/static-assets/github.css diff --git a/flutter/flutter/static-assets/highlight.pack.js b/flutter/static-assets/highlight.pack.js similarity index 100% rename from flutter/flutter/static-assets/highlight.pack.js rename to flutter/static-assets/highlight.pack.js diff --git a/flutter/flutter/static-assets/play_button.svg b/flutter/static-assets/play_button.svg similarity index 100% rename from flutter/flutter/static-assets/play_button.svg rename to flutter/static-assets/play_button.svg diff --git a/flutter/flutter/static-assets/readme.md b/flutter/static-assets/readme.md similarity index 100% rename from flutter/flutter/static-assets/readme.md rename to flutter/static-assets/readme.md diff --git a/flutter/flutter/static-assets/search.svg b/flutter/static-assets/search.svg similarity index 100% rename from flutter/flutter/static-assets/search.svg rename to flutter/static-assets/search.svg diff --git a/flutter/flutter/static-assets/styles.css b/flutter/static-assets/styles.css similarity index 100% rename from flutter/flutter/static-assets/styles.css rename to flutter/static-assets/styles.css diff --git a/packages/dart/CHANGELOG.md b/packages/dart/CHANGELOG.md deleted file mode 100644 index 459f3f8ab..000000000 --- a/packages/dart/CHANGELOG.md +++ /dev/null @@ -1,336 +0,0 @@ -## [5.1.1](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-5.1.0...dart-5.1.1) (2023-05-20) - -### Bug Fixes - -* Query conditions `inQuery` and `notInQuery` not working properly ([#869](https://github.com/parse-community/Parse-SDK-Flutter/pull/869)) - -## [5.1.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-5.0.0...dart-5.1.0) (2023-05-14) - -### Features - -* Downgrade collection dependency to ^1.16.0 for compatibility with Flutter >=3.3 ([#880](https://github.com/parse-community/Parse-SDK-Flutter/pull/880)) - -## [5.0.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-4.0.2...dart-5.0.0) (2023-05-14) - -### BREAKING CHANGES - -* The minimum required Dart SDK version is 2.18.0. ([#867](https://github.com/parse-community/Parse-SDK-Flutter/pull/867)) -* Performing an atomic update on a key of a Parse Object now returns the prospective value, instead of a map of the operation that will be sent to the server; for example for a Parse Object `obj` with a key `count`, the atomic update `obj.setIncrement('count', 1);` previously returned the value `{__op: Increment, amount: 1}` but now returns the prospective result of the operation, which would be `1` if the key's previous value was `0`. ([#860](https://github.com/parse-community/Parse-SDK-Flutter/pull/860)) - -### Bug Fixes - -* Incorrect Dart and Flutter SDKs compatibility range ([#867](https://github.com/parse-community/Parse-SDK-Flutter/pull/867)) -* Setting atomic operation on Parse Object returns operation instead of prospective value ([#860](https://github.com/parse-community/Parse-SDK-Flutter/pull/860)) - -## [4.0.2](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-4.0.1...dart-4.0.2) (2023-03-23) - -### Bug Fixes - -* Attempt to save `ParseObject` even if its nested `ParseObject` failed to save ([#859](https://github.com/parse-community/Parse-SDK-Flutter/pull/859)) - -## [4.0.1](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-4.0.0...dart-4.0.1) (2023-03-20) - -### Bug Fixes - -* Unhandled exception when saving a `ParseObject` but its nested object fails to save ([#858](https://github.com/parse-community/Parse-SDK-Flutter/pull/858)) - -## [4.0.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.14...dart-4.0.0) (2023-03-07) - -### BREAKING CHANGES - -* Upgrades to dio 5.x ([#824](https://github.com/parse-community/Parse-SDK-Flutter/pull/824)) - -### Feature - -* Upgrade various dependencies and fix warnings ([#824](https://github.com/parse-community/Parse-SDK-Flutter/pull/824)) - -## [3.1.15](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.14...dart-3.1.15) (2023-02-28) - -### Bug Fixes - -* Updating and deleting a ParseObject sends requests even if object ID is null ([#829](https://github.com/parse-community/Parse-SDK-Flutter/pull/829)) - -## [3.1.14](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.13...dart-3.1.14) (2023-02-26) - -### Bug Fixes - -* Dio error object holds a reference to null values ([#774](https://github.com/parse-community/Parse-SDK-Flutter/issues/774)) - -## [3.1.13](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.12...dart-3.1.13) (2023-02-15) - -### Bug Fixes - -* `ParseUser.save` fails when user is logged in ([#819](https://github.com/parse-community/Parse-SDK-Flutter/issues/819)) - -## [3.1.12](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.11...dart-3.1.12) (2023-02-01) - -### Bug Fixes - -* `ParseObject.fromJson` does not send proper payload to server ([#688](https://github.com/parse-community/Parse-SDK-Flutter/issues/688)) - -## [3.1.11](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.10...dart-3.1.11) (2023-01-21) - -### Features - -* Add query constraint `wherePolygonContains` to determine whether a point in within a polygon ([#777](https://github.com/parse-community/Parse-SDK-Flutter/issues/777)) - -## [3.1.10](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.9...dart-3.1.10) (2023-01-16) - -### Bug Fixes - -* Time zone data not set in `ParseInstallation` ([#96](https://github.com/parse-community/Parse-SDK-Flutter/issues/96)) - -## [3.1.9](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.8...dart-3.1.9) (2022-12-25) - -### Bug Fixes - -* Include option in `getObject` feature is not working ([#813](https://github.com/parse-community/Parse-SDK-Flutter/issues/813)) - -## [3.1.8](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.7...dart-3.1.8) (2022-12-23) - -### Features - -* Add `ParseObject.toJson()` to create a JSON representation ([#616](https://github.com/parse-community/Parse-SDK-Flutter/issues/616)) - -## [3.1.7](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.6...dart-3.1.7) (2022-12-22) - -### Features - -* Add `include` option to `getObject` and `fetch` ([#798](https://github.com/parse-community/Parse-SDK-Flutter/issues/798)) - -## [3.1.6](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.5...dart-3.1.6) (2022-12-21) - -### Bug Fixes - -* Add `and`, `nor` operators in QueryBuilder ([#795](https://github.com/parse-community/Parse-SDK-Flutter/issues/795)) - -## [3.1.5](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.4...dart-3.1.5) (2022-12-16) - -### Bug Fixes - -* Add upload / download cancel and progress callback for ParseFile ([#807](https://github.com/parse-community/Parse-SDK-Flutter/issues/807)) - -## [3.1.4](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.3...dart-3.1.4) (2022-12-14) - -### Bug Fixes - -* SDK crashes due to missing error code property in `ParseNetworkResponse.data` ([#799](https://github.com/parse-community/Parse-SDK-Flutter/issues/799)) - -## [3.1.3](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.2...dart-3.1.3) (2022-11-15) - -### Bug Fixes - -* Custom JSON encoder for List and Map doesn't work correctly in `full` mode ([#788](https://github.com/parse-community/Parse-SDK-Flutter/issues/788)) - -## [3.1.2](https://github.com/parse-community/Parse-SDK-Flutter/compare/dart-3.1.1...dart-3.1.2) (2022-07-09) - -### Bug Fixes - -* unhandled exception in `ParseRelation`, type `ParseObject` is not a subtype of type ([#696](https://github.com/parse-community/Parse-SDK-Flutter/issues/696)) -* error in progress callback ([#679](https://github.com/parse-community/Parse-SDK-Flutter/issues/679)) -* incorrect return type when calling `first()` ([#661](https://github.com/parse-community/Parse-SDK-Flutter/issues/661)) -* error in `ParseLiveListWidget` when enabling `lazyloading` ([#653](https://github.com/parse-community/Parse-SDK-Flutter/issues/653)) -* unexpected null value after call `user.logout()` ([#770](https://github.com/parse-community/Parse-SDK-Flutter/issues/770)) - -## [3.1.1](https://github.com/parse-community/Parse-SDK-Flutter/compare/V3.1.0...dart-3.1.1) (2022-05-30) - -### Refactors - -* fix analyzer code style warnings ([#733](https://github.com/parse-community/Parse-SDK-Flutter/issues/733)) - -# [3.1.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/V3.0.0...V3.1.0) (2021-06-28) - -### Bug Fixes - -* General improvements -* Updated dependencies - -# [3.0.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/2.1.0...V3.0.0) (2021-04-14) - -### Bug Fixes - -* Stable null safety release - -# [2.1.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/2.0.1...2.1.0) (2021-02-18) - -### BREAKING CHANGES - -* Changed to HTTP method POST for login -* Change in progress callback for file upload - -### Features - -* Option to use `ParseHTTPClient` (default) or `ParseDioClient` (slow on Flutter Web) -* Added method excludeKeys to exclude specific fields from the returned query - -### Bug Fixes - -* General improvements -* Updated dependencies - -## [2.0.1](https://github.com/parse-community/Parse-SDK-Flutter/compare/2.0.0...2.0.1) (2020-10-24) - -### Bug Fixes - -* Fixed network exceptions ([#482](https://github.com/parse-community/Parse-SDK-Flutter/pull/482)) - -## [2.0.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/1.0.28...2.0.0) (2020-10-13) - -### BREAKING CHANGES - -* From this release onwards the previous repository has been separated into a pure dart (parse_server_sdk) and a flutter package (parse_server_sdk_flutter). This was done in order to provide a dart package for the parse-server, while keeping maintenance simple. You can find both packages in the package directory. If you are using flutter you should migrate using [this guide](https://github.com/parse-community/Parse-SDK-Flutter/blob/release/2.0.0/docs/migrate-2-0-0.md). - -### Features - -* Added full web support -* Moved ParseHTTPClient to Dio [#459](https://github.com/parse-community/Parse-SDK-Flutter/pull/459) - -### Bug Fixes - -* General improvements - -## 1.0.28 - -1.0.28 was renamed to 2.0.0 - -## 1.0.27 - -User login / signUp / loginAnonymous delete SessionId stored in device before calling server - -## 1.0.26 - -LiveList -Bug fixes -Sembast update - -## 1.0.25 - -Update dependencies - -## 1.0.24 - -Fixed lint - -## 1.0.23 - -Fixed LiveQuery -Bug fixes - -## 1.0.22 - -Added dirty children -Added option of sembast or share_preferences - -## 1.0.21 - -LiveQuery fix -Logout fix - -## 1.0.20 - -ACL now working -emailVerified - -## 1.0.19 - -Bug fix - -## 1.0.18 - -Bug fix - -## 1.0.17 - -LiveQuery fix -Bug fixes - -## 1.0.16 - -Bug fixes -Fixed object delete -Added port support - -## 1.0.15 - -Fixed 'full' bool issue - -## 1.0.14 - -Corrected delete & path issue -Added Geo queries -Added ability to add login oAuth data - -## 1.0.13 - -Added full bool to convert objects to JSON correctly - -## 1.0.12 - -Fixed logout - -## 1.0.11 - -ParseFile fixed -Anonymous login -SecurityContext -CloudFunctions with objects - -## 1.0.10 - -Add ParseConfig. -Fixed whereEqualsTo('', PARSEOBJECT) and other queries - -## 1.0.9 - -Fixed Health Check issue - -## 1.0.8 - -Fixed some queries - -## 1.0.7 - -Some items now return a response rather than a ParseObject - -## 1.0.6 - -BREAK FIX - Fixed ParseUser return type so now returns ParseResponse -BREAK FIX - Changed query names to make more human readable -Fixed pinning and unpinning - -## 1.0.5 - -Corrected save. Now formatted items correctly for saving on server - -## 1.0.4 - -Bug fix for get all items -Can now pin/unpin/fromPin for all ParseObjects -Now supports generics -Cody tidy around extending - -## 1.0.3 - -Added persistent storage. When a logged in user closes the app, then reopens, the data -will now be persistent. Best practice would be to Parse.init, then Parse.currentUser. This -will return the current user session and allow auto login. Can also pin data in storage. - -## 1.0.2 - -Fixed login - -## 1.0.1 - -Added documentation and GeoPoints - -## 1.0.0 - -First full release! - -## 0.0.4 - -Added description - -## 0.0.3 - -Added more cloud functions diff --git a/packages/dart/LICENSE b/packages/dart/LICENSE deleted file mode 100644 index 0e303d0f1..000000000 --- a/packages/dart/LICENSE +++ /dev/null @@ -1,176 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/packages/dart/NOTICE b/packages/dart/NOTICE deleted file mode 100644 index 70eabd859..000000000 --- a/packages/dart/NOTICE +++ /dev/null @@ -1,10 +0,0 @@ -Parse Dart SDK - -Copyright 2021-present Parse Platform - -This product includes software developed at Parse Platform. -www.parseplatform.org - ---- - -As of October 19, 2021, the original author Phill Wiggins has transferred this code to the Parse Platform organization. \ No newline at end of file diff --git a/packages/dart/README.md b/packages/dart/README.md deleted file mode 100644 index 6a5b865ab..000000000 --- a/packages/dart/README.md +++ /dev/null @@ -1,903 +0,0 @@ -![parse-repository-header-sdk-dart](https://user-images.githubusercontent.com/5673677/166120960-ea1f58e3-a62b-4770-b541-f64186859339.png) - ---- - -This library gives you access to the powerful Parse Server backend from your Dart app. For more information on Parse Platform and its features, visit [parseplatform.org](https://parseplatform.org). The Flutter package was moved [here](https://pub.dev/packages/parse_server_sdk_flutter). If you are using Flutter see [this guide](https://github.com/parse-community/Parse-SDK-Flutter/blob/release/2.0.0/docs/migrate-2-0-0.md) for how to migrate. - ---- - -- [Compatibility](#compatibility) -- [Getting Started](#getting-started) - - [Early Web support](#early-web-support) -- [Objects](#objects) -- [Custom Objects](#custom-objects) -- [Add New Values to Objects](#add-new-values-to-objects) -- [Save Objects using Pins](#save-objects-using-pins) -- [Storage](#storage) -- [Increment Counter Values](#increment-counter-values) -- [Array Operator in Objects](#array-operator-in-objects) -- [Queries](#queries) - - [Alternative Query Methods](#alternative-query-methods) -- [Complex Queries](#complex-queries) -- [Relational queries](#relational-queries) -- [Counting objects](#counting-objects) -- [LiveQuery](#livequery) -- [ParseLiveList](#parselivelist) - - [General Use](#general-use) - - [Included Sub-Objects](#included-sub-objects) -- [Users](#users) -- [Facebook, OAuth and 3rd Party Login/User](#facebook-oauth-and-3rd-party-loginuser) -- [Security for Objects - ParseACL](#security-for-objects---parseacl) -- [Config](#config) -- [Cloud Functions](#cloud-functions) -- [Relation](#relation) -- [File](#file) -- [Other Features](#other-features) - ---- - -## Compatibility - -The Parse Dart SDK is continuously tested with the most recent release of the Dart framework to ensure compatibility. To give developers time to upgrade their app to the newest Dart framework, previous Dart framework releases are supported for at least 1 year after their [release date](https://dart.dev/get-dart/archive). - -| Version | Latest Version | End of Support | Compatible | -|-----------|----------------|----------------|----------------------------------------------| -| Dart 3.0 | 3.0.0 | May 2024 | ✅ Yes | -| Dart 2.19 | 2.19.6 | Mar 2024 | ✅ Yes | -| Dart 2.18 | 2.18.7 | Jan 2024 | ✅ Yes | -| Dart 2.17 | 2.17.7 | Aug 2023 | ❌ No (Parse Dart SDK requires Dart >=2.18.0) | - -## Getting Started - -To install, either add [dependency in your pubspec.yaml file](https://pub.dev/packages/parse_server_sdk/install). - -Once you have the library added to your project, upon first call to your app (Similar to what your application class would be) add the following... - -```dart -await Parse().initialize( - keyApplicationId, - keyParseServerUrl, - ); -``` - -If you want to use secure storage or use the Flutter web/desktop SDK, please change to the below instance of CoreStorage as it has no dependencies on Flutter. - -**The `CoreStoreSembastImp` does not encrypt the data on web!** (Web is not safe anyway. Encrypt fields manually as needed.) -```dart - -await Parse().initialize( - keyParseApplicationId, - keyParseServerUrl, - coreStore: await CoreStoreSembastImp.getInstance("/data")); -``` -It's possible to add other parameters to work with your instance of Parse Server:- - -```dart - await Parse().initialize( - keyApplicationId, - keyParseServerUrl, - clientKey: keyParseClientKey, // Required for some setups - debug: true, // When enabled, prints logs to console - liveQueryUrl: keyLiveQueryUrl, // Required if using LiveQuery - autoSendSessionId: true, // Required for authentication and ACL - securityContext: securityContext, // Again, required for some setups - coreStore: CoreStoreMemoryImp()); // Non persistent mode (default): Sdk will store everything in memmore instead of using Sembast as an internal DB. -``` -⚠️ Please note that the master key should only be used in safe environments and never on client side ‼️ Using this package on a server should be fine. - -#### Early Web support -Currently this requires adding `X-Parse-Installation-Id` as an allowed header to parse-server. -When running directly via docker, set the env var `PARSE_SERVER_ALLOW_HEADERS=X-Parse-Installation-Id`. -When running via express, set [ParseServerOptions](https://parseplatform.org/parse-server/api/master/ParseServerOptions.html) `allowHeaders: ['X-Parse-Installation-Id']`. - -Be aware that for web ParseInstallation does include app name, version or package identifier. - -## Objects -You can create custom objects by calling: -```dart -var dietPlan = ParseObject('DietPlan') - ..set('Name', 'Ketogenic') - ..set('Fat', 65); -await dietPlan.save(); -``` -Or update existing object by its objectId by calling: -```dart -var dietPlan = ParseObject('DietPlan') - ..objectId = 'R5EonpUDWy' - ..set('Fat', 70); -await dietPlan.save(); -``` -Verify that the object has been successfully saved using -```dart -var response = await dietPlan.save(); -if (response.success) { - dietPlan = response.results.first; -} -``` -Types supported: - * String - * Double - * Int - * Boolean - * DateTime - * File - * Geopoint - * ParseObject/ParseUser (Pointer) - * Map - * List (all types supported) - -You then have the ability to do the following with that object: -The features available are:- - * Get - * GetAll - * Create - * Save - * Query - By object Id - * Delete - * Complex queries as shown above - * Pin - * Plenty more - * Counters - * Array Operators - -## Custom Objects -You can create your own `ParseObjects` or convert your existing objects into Parse Objects by doing the following: - -```dart -class DietPlan extends ParseObject implements ParseCloneable { - - DietPlan() : super(_keyTableName); - DietPlan.clone(): this(); - - /// Looks strangely hacky but due to Flutter not using reflection, we have to - /// mimic a clone - @override clone(Map map) => DietPlan.clone()..fromJson(map); - - static const String _keyTableName = 'Diet_Plans'; - static const String keyName = 'Name'; - - String get name => get(keyName); - set name(String name) => set(keyName, name); -} - -``` - -When receiving an `ParseObject` from the SDK, you can often provide an instance of your custom object as an copy object. -To always use your custom object class, you can register your subclass at the initialization of the SDK. -```dart -Parse().initialize( - ..., - registeredSubClassMap: { - 'Diet_Plans': () => DietPlan(), - }, - parseUserConstructor: (username, password, emailAddress, {client, debug, sessionToken}) => CustomParseUser(username, password, emailAddress), -); -``` -Additionally you can register `SubClasses` after the initialization of the SDK. -```dart -ParseCoreData().registerSubClass('Diet_Plans', () => DietPlan()); -ParseCoreData().registerUserSubClass((username, password, emailAddress, {client, debug, sessionToken}) => CustomParseUser(username, password, emailAddress)); -``` -Providing a `ParseObject` as described above should still work, even if you have registered a different `SubClass`. - -For custom file classes have a lock at [here](#File). - -## Add New Values to Objects -To add a variable to an object call and retrieve it, call - -```dart -dietPlan.set('RandomInt', 8); -var randomInt = dietPlan.get('RandomInt'); -``` - -## Save Objects using Pins - -You can now save an object by calling `.pin()` on an instance of an object - -```dart -dietPlan.pin(); -``` - -and to retrieve it - -```dart -var dietPlan = DietPlan().fromPin('OBJECT ID OF OBJECT'); -``` - -## Storage - -We now have 2 types of storage, secure and unsecure. We currently rely on 2 third party options: - -- SharedPreferences -- Sembast -Sembast offers secured storage, whilst SharePreferences wraps NSUserDefaults (on iOS) and SharedPreferences (on Android). - -The storage method is defined in the parameter __coreStore__ in Parse().initialize - -Check sample code for options - -## Increment Counter Values - -Retrieve it, call - -```dart -var response = await dietPlan.increment("count", 1); - -``` -or using with save function - -```dart -dietPlan.setIncrement('count', 1); -dietPlan.setDecrement('count', 1); -var response = dietPlan.save() - -``` - -## Array Operator in Objects - -Retrieve it, call - -```dart -var response = await dietPlan.add("listKeywords", ["a", "a","d"]); - -var response = await dietPlan.addUnique("listKeywords", ["a", "a","d"]); - -var response = await dietPlan.remove("listKeywords", ["a"]); - -``` -or using with save function - -```dart -dietPlan.setAdd('listKeywords', ['a','a','d']); -dietPlan.setAddUnique('listKeywords', ['a','a','d']); -dietPlan.setRemove('listKeywords', ['a']); -var response = dietPlan.save() -``` - -## Queries -Once you have setup the project and initialised the instance, you can then retreive data from your server by calling: -```dart -var apiResponse = await ParseObject('ParseTableName').getAll(); - -if (apiResponse.success){ - for (var testObject in apiResponse.result) { - print(ApplicationConstants.APP_NAME + ": " + testObject.toString()); - } -} -``` -Or you can get an object by its objectId: - -```dart -var dietPlan = await DietPlan().getObject('R5EonpUDWy'); - -if (dietPlan.success) { - print(ApplicationConstants.keyAppName + ": " + (dietPlan.result as DietPlan).toString()); -} else { - print(ApplicationConstants.keyAppName + ": " + dietPlan.exception.message); -} -``` - -### Alternative Query Methods - -The standard query method `query()` returns a `ParseResponse` that contains the result or the error. As an alternative, you can also use `Future> find()` for receiving options. -This method returns an `Future` that either resolves in an error (equivalent of the error in the `ParseResponse`) or an `List` containing the queried objects. One difference, you should be aware of, is the fact, that `Future> find()` will return an empty list instead of the 'No results' error you receive in case no object matches you query. - -Choosing between `query()` and `find()` comes down to personal preference. Both methods can be used for querying a `ParseQuery`, just the output method differs. - -Similar to `find()` the `QueryBuilder` also has a function called `Future first()`. Just like `find()` `first()` is just a convenience method that makes querying the first object satisfying the query simpler. `first()` returns an `Future`, that resoles in an error or the first object matching the query. In case no object satisfies the query, the result will be `null`. - -## Complex Queries -You can create complex queries to really put your database to the test: - -```dart -var queryBuilder = QueryBuilder(DietPlan()) - ..startsWith(DietPlan.keyName, "Keto") - ..greaterThan(DietPlan.keyFat, 64) - ..lessThan(DietPlan.keyFat, 66) - ..equals(DietPlan.keyCarbs, 5); - -var response = await queryBuilder.query(); - -if (response.success) { - print(ApplicationConstants.keyAppName + ": " + ((response.results as List).first as DietPlan).toString()); -} else { - print(ApplicationConstants.keyAppName + ": " + response.exception.message); -} -``` - -if you want to find objects that match one of several queries, you can use __QueryBuilder.or__ method to construct a query that is an OR of the queries passed in. For instance if you want to find players who either have a lot of wins or a few wins, you can do: -```dart -ParseObject playerObject = ParseObject("Player"); - -QueryBuilder lotsOfWins = - QueryBuilder(playerObject)) - ..whereGreaterThan('wins', 50); - -QueryBuilder fewWins = - QueryBuilder(playerObject) - ..whereLessThan('wins', 5); - -QueryBuilder mainQuery = QueryBuilder.or( - playerObject, - [lotsOfWins, fewWins], - ); - -var apiResponse = await mainQuery.query(); -``` - -To find objects that match several queries use __QueryBuilder.and__. To find objects that do not match any given query use __QueryBuilder.nor__. - -The features available are:- - * Equals - * Contains - * LessThan - * LessThanOrEqualTo - * GreaterThan - * GreaterThanOrEqualTo - * NotEqualTo - * StartsWith - * EndsWith - * Exists - * Near - * WithinMiles - * WithinKilometers - * WithinRadians - * WithinGeoBox - * WithinPolygon - * MatchesQuery - * DoesNotMatchQuery - * MatchesKeyInQuery - * DoesNotMatchKeyInQuery - * Regex - * Order - * Limit - * Skip - * Ascending - * Descending - * Plenty more! - -## Relational queries -If you want to retrieve objects where a field contains an object that matches another query, you can use the -__whereMatchesQuery__ condition. -For example, imagine you have Post class and a Comment class, where each Comment has a pointer to its parent Post. -You can find comments on posts with images by doing: - -```dart -QueryBuilder queryPost = - QueryBuilder(ParseObject('Post')) - ..whereValueExists('image', true); - -QueryBuilder queryComment = - QueryBuilder(ParseObject('Comment')) - ..whereMatchesQuery('post', queryPost); - -var apiResponse = await queryComment.query(); -``` - -If you want to retrieve objects where a field contains an object that does not match another query, you can use the -__whereDoesNotMatchQuery__ condition. -Imagine you have Post class and a Comment class, where each Comment has a pointer to its parent Post. -You can find comments on posts without images by doing: - -```dart -QueryBuilder queryPost = - QueryBuilder(ParseObject('Post')) - ..whereValueExists('image', true); - -QueryBuilder queryComment = - QueryBuilder(ParseObject('Comment')) - ..whereDoesNotMatchQuery('post', queryPost); - -var apiResponse = await queryComment.query(); -``` - -You can use the __whereMatchesKeyInQuery__ method to get objects where a key matches the value of a key in a set of objects resulting from another query. For example, if you have a class containing sports teams and you store a user’s hometown in the user class, you can issue one query to find the list of users whose hometown teams have winning records. The query would look like:: - -```dart -QueryBuilder teamQuery = - QueryBuilder(ParseObject('Team')) - ..whereGreaterThan('winPct', 0.5); - -QueryBuilder userQuery = - QueryBuilderParseUser.forQuery()) - ..whereMatchesKeyInQuery('hometown', 'city', teamQuery); - -var apiResponse = await userQuery.query(); -``` - -Conversely, to get objects where a key does not match the value of a key in a set of objects resulting from another query, use __whereDoesNotMatchKeyInQuery__. For example, to find users whose hometown teams have losing records: - -```dart -QueryBuilder teamQuery = - QueryBuilder(ParseObject('Team')) - ..whereGreaterThan('winPct', 0.5); - -QueryBuilder losingUserQuery = - QueryBuilderParseUser.forQuery()) - ..whereDoesNotMatchKeyInQuery('hometown', 'city', teamQuery); - -var apiResponse = await losingUserQuery.query(); -``` - -To filter rows based on objectId’s from pointers in a second table, you can use dot notation: -```dart -QueryBuilder rolesOfTypeX = - QueryBuilder(ParseObject('Role')) - ..whereEqualTo('type', 'x'); - -QueryBuilder groupsWithRoleX = - QueryBuilder(ParseObject('Group'))) - ..whereMatchesKeyInQuery('objectId', 'belongsTo.objectId', rolesOfTypeX); - -var apiResponse = await groupsWithRoleX.query(); -``` - -## Counting objects -If you only care about the number of games played by a particular player: - -```dart -QueryBuilder queryPlayers = - QueryBuilder(ParseObject('GameScore')) - ..whereEqualTo('playerName', 'Jonathan Walsh'); -var apiResponse = await queryPlayers.count(); -if (apiResponse.success && apiResponse.result != null) { - int countGames = apiResponse.count; -} -``` - -## LiveQuery - -This tool allows you to subscribe to a QueryBuilder you are interested in. Once subscribed, the server will notify clients -whenever a ParseObject that matches the QueryBuilder is created or updated, in real-time. - -Parse LiveQuery contains two parts, the LiveQuery server and the LiveQuery clients. In order to use live queries, you need -to set up both of them. - -The Parse Server configuration guide on the server is found here https://docs.parseplatform.org/parse-server/guide/#live-queries and is not part of this documentation. - -Initialize the Parse Live Query by entering the parameter liveQueryUrl in Parse().initialize: -```dart -Parse().initialize( - keyApplicationId, - keyParseServerUrl, - clientKey: keyParseClientKey, - debug: true, - liveQueryUrl: keyLiveQueryUrl, - autoSendSessionId: true); -``` - -Declare LiveQuery: -```dart -final LiveQuery liveQuery = LiveQuery(); -``` - -Set the QueryBuilder that will be monitored by LiveQuery: -```dart -QueryBuilder query = - QueryBuilder(ParseObject('TestAPI')) - ..whereEqualTo('intNumber', 1); -``` -__Create a subscription__ -You’ll get the LiveQuery events through this subscription. -The first time you call subscribe, we’ll try to open the WebSocket connection to the LiveQuery server for you. - -```dart -Subscription subscription = await liveQuery.client.subscribe(query); -``` - -__Event Handling__ -We define several types of events you’ll get through a subscription object: - -__Create event__ -When a new ParseObject is created and it fulfills the QueryBuilder you subscribe, you’ll get this event. -The object is the ParseObject which was created. -```dart -subscription.on(LiveQueryEvent.create, (value) { - print('*** CREATE ***: ${DateTime.now().toString()}\n $value '); - print((value as ParseObject).objectId); - print((value as ParseObject).updatedAt); - print((value as ParseObject).createdAt); - print((value as ParseObject).get('objectId')); - print((value as ParseObject).get('updatedAt')); - print((value as ParseObject).get('createdAt')); -}); -``` - -__Update event__ -When an existing ParseObject which fulfills the QueryBuilder you subscribe is updated (The ParseObject fulfills the -QueryBuilder before and after changes), you’ll get this event. -The object is the ParseObject which was updated. Its content is the latest value of the ParseObject. -```dart -subscription.on(LiveQueryEvent.update, (value) { - print('*** UPDATE ***: ${DateTime.now().toString()}\n $value '); - print((value as ParseObject).objectId); - print((value as ParseObject).updatedAt); - print((value as ParseObject).createdAt); - print((value as ParseObject).get('objectId')); - print((value as ParseObject).get('updatedAt')); - print((value as ParseObject).get('createdAt')); -}); -``` - -__Enter event__ -When an existing ParseObject’s old value does not fulfill the QueryBuilder but its new value fulfills the QueryBuilder, -you’ll get this event. The object is the ParseObject which enters the QueryBuilder. -Its content is the latest value of the ParseObject. -```dart -subscription.on(LiveQueryEvent.enter, (value) { - print('*** ENTER ***: ${DateTime.now().toString()}\n $value '); - print((value as ParseObject).objectId); - print((value as ParseObject).updatedAt); - print((value as ParseObject).createdAt); - print((value as ParseObject).get('objectId')); - print((value as ParseObject).get('updatedAt')); - print((value as ParseObject).get('createdAt')); -}); -``` - -__Leave event__ -When an existing ParseObject’s old value fulfills the QueryBuilder but its new value doesn’t fulfill the QueryBuilder, -you’ll get this event. The object is the ParseObject which leaves the QueryBuilder. -Its content is the latest value of the ParseObject. -```dart -subscription.on(LiveQueryEvent.leave, (value) { - print('*** LEAVE ***: ${DateTime.now().toString()}\n $value '); - print((value as ParseObject).objectId); - print((value as ParseObject).updatedAt); - print((value as ParseObject).createdAt); - print((value as ParseObject).get('objectId')); - print((value as ParseObject).get('updatedAt')); - print((value as ParseObject).get('createdAt')); -}); -``` - -__Delete event__ -When an existing ParseObject which fulfills the QueryBuilder is deleted, you’ll get this event. -The object is the ParseObject which is deleted -```dart -subscription.on(LiveQueryEvent.delete, (value) { - print('*** DELETE ***: ${DateTime.now().toString()}\n $value '); - print((value as ParseObject).objectId); - print((value as ParseObject).updatedAt); - print((value as ParseObject).createdAt); - print((value as ParseObject).get('objectId')); - print((value as ParseObject).get('updatedAt')); - print((value as ParseObject).get('createdAt')); -}); -``` - -__Unsubscribe__ -If you would like to stop receiving events from a QueryBuilder, you can just unsubscribe the subscription. -After that, you won’t get any events from the subscription object and will close the WebSocket connection to the -LiveQuery server. - -```dart -liveQuery.client.unSubscribe(subscription); -``` - -__Disconnection__ -In case the client's connection to the server breaks, -LiveQuery will automatically try to reconnect. -LiveQuery will wait at increasing intervals between reconnection attempts. -By default, these intervals are set to `[0, 500, 1000, 2000, 5000, 10000]` for mobile and `[0, 500, 1000, 2000, 5000]` for web. -You can change these by providing a custom list using the `liveListRetryIntervals` parameter at `Parse.initialize()` ("-1" means "do not try to reconnect"). - -## ParseLiveList -ParseLiveList makes implementing a dynamic List as simple as possible. - -### General Use -It ships with the ParseLiveList class itself, this class manages all elements of the list, sorts them, -keeps itself up to date and Notifies you on changes. - -### Included Sub-Objects - -By default, ParseLiveQuery will provide you with all the objects you included in your Query like this: -```dart -queryBuilder.includeObject(/*List of all the included sub-objects*/); -``` -ParseLiveList will not listen for updates on this objects by default. -To activate listening for updates on all included objects, add `listenOnAllSubItems: true` to your ParseLiveListWidgets constructor. -If you want ParseLiveList to listen for updates on only some sub-objects, use `listeningIncludes: const [/*all the included sub-objects*/]` instead. -Just as QueryBuilder, ParseLiveList supports nested sub-objects too. - -**NOTE:** To use this features you have to enable [Live Queries](#live-queries) first. - -## Users - -You can create and control users just as normal using this SDK. - -To register a user, first create one : -```dart -var user = ParseUser().create("TestFlutter", "TestPassword123", "TestFlutterSDK@gmail.com"); -``` -Then have the user sign up: - -```dart -var response = await user.signUp(); -if (response.success) user = response.result; -``` -You can also login with the user: -```dart -var response = await user.login(); -if (response.success) user = response.result; -``` -You can also logout with the user: -```dart -var response = await user.logout(); -if (response.success) { - print('User logout'); -} -``` -Also, once logged in you can manage sessions tokens. This feature can be called after Parse().init() on startup to check for a logged in user. -```dart -user = ParseUser.currentUser(); -``` - -To add additional columns to the user: -```dart -var user = ParseUser("TestFlutter", "TestPassword123", "TestFlutterSDK@gmail.com") - ..set("userLocation", "FlutterLand"); -``` - -Other user features are:- - * Request Password Reset - * Verification Email Request - * Get all users - * Save - * Destroy user - * Queries - - ## Facebook, OAuth and 3rd Party Login/User - - Usually, each provider will provide their own library for logins, but the loginWith method on ParseUser accepts a name of provider, then a Map with the authentication details required. - For Facebook and the example below, we used the library provided at https://pub.dev/packages/flutter_facebook_login - - ``` - Future goToFacebookLogin() async { - final FacebookLogin facebookLogin = FacebookLogin(); - final FacebookLoginResult result = await facebookLogin.logInWithReadPermissions(['email']); - - switch (result.status) { - case FacebookLoginStatus.loggedIn: - final ParseResponse response = await ParseUser.loginWith( - 'facebook', - facebook(result.accessToken.token, - result.accessToken.userId, - result.accessToken.expires)); - - if (response.success) { - // User is logged in, test with ParseUser.currentUser() - } - break; - case FacebookLoginStatus.cancelledByUser: - // User cancelled - break; - case FacebookLoginStatus.error: - // Error - break; - } - } -``` - -For Google and the example below, we used the library provided at https://pub.dev/packages/google_sign_in - -``` -class OAuthLogin { - final GoogleSignIn _googleSignIn = GoogleSignIn( scopes: ['email', 'https://www.googleapis.com/auth/contacts.readonly'] ); - - sigInGoogle() async { - GoogleSignInAccount account = await _googleSignIn.signIn(); - GoogleSignInAuthentication authentication = await account.authentication; - await ParseUser.loginWith( - 'google', - google(_googleSignIn.currentUser.id, - authentication.accessToken, - authentication.idToken)); - } -} -``` - -## Security for Objects - ParseACL -For any object, you can specify which users are allowed to read the object, and which users are allowed to modify an object. -To support this type of security, each object has an access control list, implemented by the __ParseACL__ class. - -If ParseACL is not specified (with the exception of the ParseUser class) all objects are set to Public for read and write. -The simplest way to use a ParseACL is to specify that an object may only be read or written by a single user. -To create such an object, there must first be a logged in ParseUser. Then, new ParseACL(user) generates a ParseACL that -limits access to that user. An object’s ACL is updated when the object is saved, like any other property. - -```dart -ParseUser user = await ParseUser.currentUser() as ParseUser; -ParseACL parseACL = ParseACL(owner: user); - -ParseObject parseObject = ParseObject("TestAPI"); -... -parseObject.setACL(parseACL); -var apiResponse = await parseObject.save(); -``` -Permissions can also be granted on a per-user basis. You can add permissions individually to a ParseACL using -__setReadAccess__ and __setWriteAccess__ -```dart -ParseUser user = await ParseUser.currentUser() as ParseUser; -ParseACL parseACL = ParseACL(); -//grant total access to current user -parseACL.setReadAccess(userId: user.objectId, allowed: true); -parseACL.setWriteAccess(userId: user.objectId, allowed: true); -//grant read access to userId: 'TjRuDjuSAO' -parseACL.setReadAccess(userId: 'TjRuDjuSAO', allowed: true); -parseACL.setWriteAccess(userId: 'TjRuDjuSAO', allowed: false); - -ParseObject parseObject = ParseObject("TestAPI"); -... -parseObject.setACL(parseACL); -var apiResponse = await parseObject.save(); -``` -You can also grant permissions to all users at once using setPublicReadAccess and setPublicWriteAccess. -```dart -ParseACL parseACL = ParseACL(); -parseACL.setPublicReadAccess(allowed: true); -parseACL.setPublicWriteAccess(allowed: true); - -ParseObject parseObject = ParseObject("TestAPI"); -... -parseObject.setACL(parseACL); -var apiResponse = await parseObject.save(); -``` -Operations that are forbidden, such as deleting an object that you do not have write access to, result in a -ParseError with code 101: 'ObjectNotFound'. -For security purposes, this prevents clients from distinguishing which object ids exist but are secured, versus which -object ids do not exist at all. - -You can retrieve the ACL list of an object using: -```dart -ParseACL parseACL = parseObject.getACL(); -``` - -To set the ACL to `ParseRole` use: - -```dart -parseACL.setReadAccess(userId: "role:ROLE_NAME", allowed: true); -parseACL.setWriteAccess(userId: "role:ROLE_NAME", allowed: true); - -``` -## Config -The SDK supports Parse Config. A map of all configs can be grabbed from the server by calling : -```dart -var response = await ParseConfig().getConfigs(); -``` - -and to add a config: -```dart -ParseConfig().addConfig('TestConfig', 'testing'); -``` - -## Cloud Functions -The SDK supports call Cloud Functions. - -Executes a cloud function that returns a ParseObject type -```dart -final ParseCloudFunction function = ParseCloudFunction('hello'); -final ParseResponse result = - await function.executeObjectFunction(); -if (result.success) { - if (result.result is ParseObject) { - final ParseObject parseObject = result.result; - print(parseObject.className); - } -} -``` - -Executes a cloud function with parameters -```dart -final ParseCloudFunction function = ParseCloudFunction('hello'); -final Map params = {'plan': 'paid'}; -function.execute(parameters: params); -``` - -## Relation - -The SDK supports Relation. - -To add relation to object: - -```dart -dietPlan.addRelation('fruits', [ParseObject("Fruits")..set("objectId", "XGadzYxnac")]); -``` - -To remove relation to object: - -```dart -dietPlan.removeRelation('fruits', [ParseObject("Fruits")..set("objectId", "XGadzYxnac")]); -``` - -To Retrive a relation instance for user, call: -```dart -final relation = dietPlan.getRelation('fruits'); -``` - -and then you can add a relation to the passed in object: -``` -relation.add(dietPlan); -final result = await user.save(); -``` - -To retrieve objects that are members of Relation field of a parent object: -```dart -QueryBuilder query = - QueryBuilder(ParseObject('Fruits')) - ..whereRelatedTo('fruits', 'DietPlan', DietPlan.objectId); -``` - -## File -There are three different file classes in this SDK: -- `ParseFileBase` is and abstract class and is the foundation of every file class that can be handled by this SDK. -- `ParseFile` (former the only file class in the SDK) extends ParseFileBase and is by default used as the file class on every platform but web. -This class uses a `File` from `dart:io` for storing the raw file. -- `ParseWebFile` is the equivalent to ParseFile used at Flutter Web. -This class uses an `Uint8List` for storing the raw file. - -These classes are used by default to represent files, but you can also build your own class extending ParseFileBase and provide a custom `ParseFileConstructor` similar to the `SubClasses`. - -Have a look at the example application for a small (non web) example. - -When uploading or downloading a file, you can use the `progressCallback`-parameter to track the progress of the http request. -```dart -//A short example for showing an image from a ParseFileBase -Widget buildImage(ParseFileBase image){ - return FutureBuilder( - future: image.download(), - builder: (BuildContext context, - AsyncSnapshot snapshot) { - if (snapshot.hasData) { - if (kIsWeb) { - return Image.memory((snapshot.data as ParseWebFile).file); - } else { - return Image.file((snapshot.data as ParseFile).file); - } - } else { - return CircularProgressIndicator(); - } - }, - ); -} -``` -```dart -//A short example for storing a selected picture -//libraries: image_picker (https://pub.dev/packages/image_picker), image_picker_for_web (https://pub.dev/packages/image_picker_for_web) -PickedFile pickedFile = await ImagePicker().getImage(source: ImageSource.gallery); -ParseFileBase parseFile; -if (kIsWeb) { - //Seems weird, but this lets you get the data from the selected file as an Uint8List very easily. - ParseWebFile file = ParseWebFile(null, name: null, url: pickedFile.path); - await file.download(); - parseFile = ParseWebFile(file.file, name: file.name); -} else { - parseFile = ParseFile(File(pickedFile.path)); -} -someParseObject.set("image", parseFile); -//This saves the ParseObject as well as all of its children, and the ParseFileBase is such a child. -await someParseObject.save(); -``` -```dart -//progressCallback example -file.upload(progressCallback: (int count, int total) => print("$count of $total")); -``` - -## Other Features - -Main: -* Installation (View the example application) -* GeoPoints (View the example application) -* Persistent storage -* Debug Mode - Logging API calls -* Manage Session ID's tokens - -User: -* Queries -* Anonymous (View the example application) -* 3rd Party Authentication - -Objects: -* Create new object -* Extend Parse Object and create local objects that can be saved and retreived -* Queries diff --git a/packages/dart/analysis_options.yaml b/packages/dart/analysis_options.yaml deleted file mode 100644 index 572dd239d..000000000 --- a/packages/dart/analysis_options.yaml +++ /dev/null @@ -1 +0,0 @@ -include: package:lints/recommended.yaml diff --git a/packages/dart/example/main.dart b/packages/dart/example/main.dart deleted file mode 100644 index ce96602d3..000000000 --- a/packages/dart/example/main.dart +++ /dev/null @@ -1,23 +0,0 @@ -import 'package:parse_server_sdk/parse_server_sdk.dart'; - -Future main() async { - // Parse initialize - await Parse().initialize("keyApplicationId", "keyParseServerUrl", - clientKey: "keyParseClientKey", - debug: true, - liveQueryUrl: "keyLiveQueryUrl", - autoSendSessionId: true, - coreStore: CoreStoreMemoryImp()); - - // Set a ParseObject and save it - var dietPlan = ParseObject('DietPlan') - ..set('Name', 'Ketogenic') - ..set('Fat', 65); - - var response = await dietPlan.save(); - - if (response.success) { - dietPlan = response.results?.first; - print("Response received successfully"); - } -} diff --git a/packages/dart/example/pubspec.yaml b/packages/dart/example/pubspec.yaml deleted file mode 100644 index 818e74736..000000000 --- a/packages/dart/example/pubspec.yaml +++ /dev/null @@ -1,14 +0,0 @@ -name: example -description: example -version: 1.0.0 -publish_to: 'none' - -environment: - sdk: ">=2.18.0 <4.0.0" - -dependencies: - parse_server_sdk: - path: ../ - -dev_dependencies: - lints: ^1.0.1 \ No newline at end of file diff --git a/packages/dart/lib/parse_server_sdk.dart b/packages/dart/lib/parse_server_sdk.dart deleted file mode 100644 index 93ada12ac..000000000 --- a/packages/dart/lib/parse_server_sdk.dart +++ /dev/null @@ -1,177 +0,0 @@ -library flutter_parse_sdk; - -import 'dart:async'; -import 'dart:convert'; -import 'dart:math'; -import 'dart:typed_data'; - -import 'package:collection/collection.dart'; -import 'package:dio/dio.dart'; -import 'package:meta/meta.dart'; -import 'package:mime_type/mime_type.dart'; -import 'package:path/path.dart' as path; -import 'package:sembast/sembast.dart'; -import 'package:sembast/sembast_io.dart'; -import 'package:sembast_web/sembast_web.dart'; -import 'package:timezone/data/latest.dart' as tz; -import 'package:timezone/timezone.dart' as tz; -import 'package:universal_io/io.dart'; -import 'package:uuid/uuid.dart'; -import 'package:web_socket_channel/web_socket_channel.dart'; -import 'package:xxtea/xxtea.dart'; - -import 'src/network/parse_http_client.dart'; -import 'src/network/parse_websocket.dart' as parse_web_socket; - -export 'src/network/parse_dio_client.dart'; -export 'src/network/parse_http_client.dart'; - -part 'src/base/parse_constants.dart'; -part 'src/data/parse_core_data.dart'; -part 'src/data/parse_subclass_handler.dart'; -part 'src/enums/parse_enum_api_rq.dart'; -part 'src/network/options.dart'; -part 'src/network/parse_client.dart'; -part 'src/network/parse_connectivity.dart'; -part 'src/network/parse_live_query.dart'; -part 'src/network/parse_query.dart'; -part 'src/objects/parse_acl.dart'; -part 'src/objects/parse_array.dart'; -part 'src/objects/parse_base.dart'; -part 'src/objects/parse_cloneable.dart'; -part 'src/objects/parse_config.dart'; -part 'src/objects/parse_error.dart'; -part 'src/objects/parse_file.dart'; -part 'src/objects/parse_number.dart'; -part 'src/objects/parse_file_base.dart'; -part 'src/objects/parse_file_web.dart'; -part 'src/objects/parse_function.dart'; -part 'src/objects/parse_geo_point.dart'; -part 'src/objects/parse_installation.dart'; -part 'src/objects/parse_object.dart'; -part 'src/objects/parse_exception.dart'; -part 'src/objects/parse_operation/parse_add_operation.dart'; -part 'src/objects/parse_operation/parse_add_relation_operation.dart'; -part 'src/objects/parse_operation/parse_add_unique_operation.dart'; -part 'src/objects/parse_operation/parse_increment_operation.dart'; -part 'src/objects/parse_operation/parse_operation.dart'; -part 'src/objects/parse_operation/parse_remove_operation.dart'; -part 'src/objects/parse_operation/parse_remove_relation_operation.dart'; -part 'src/objects/parse_relation.dart'; -part 'src/objects/parse_response.dart'; -part 'src/objects/parse_save_state_aware_child.dart'; -part 'src/objects/parse_session.dart'; -part 'src/objects/parse_user.dart'; -part 'src/objects/response/parse_error_response.dart'; -part 'src/objects/response/parse_exception_response.dart'; -part 'src/objects/response/parse_response_builder.dart'; -part 'src/objects/response/parse_response_utils.dart'; -part 'src/objects/response/parse_success_no_results.dart'; -part 'src/storage/core_store.dart'; -part 'src/storage/core_store_memory.dart'; -part 'src/storage/core_store_sem_impl.dart'; -part 'src/storage/xxtea_codec.dart'; -part 'src/utils/parse_date_format.dart'; -part 'src/utils/parse_decoder.dart'; -part 'src/utils/parse_encoder.dart'; -part 'src/utils/parse_live_list.dart'; -part 'src/utils/parse_logger.dart'; -part 'src/utils/parse_login_helpers.dart'; -part 'src/utils/parse_utils.dart'; -part 'src/utils/valuable.dart'; - -class Parse { - bool _hasBeenInitialized = false; - - /// To initialize Parse Server in your application - /// - /// This should be initialized in MyApp() creation - /// - /// ``` - /// Parse().initialize( - /// "PARSE_APP_ID", - /// "https://parse.myaddress.com/parse/,-%20%20///%20%20%20%20%20%20%20%20clientKey:"asd23rjh234r234r234r", - /// debug: true, - /// liveQuery: true); - /// ``` - Future initialize( - String appId, - String serverUrl, { - bool debug = false, - String? appName, - String? appVersion, - String? appPackageName, - String? locale, - String? liveQueryUrl, - String? clientKey, - String? masterKey, - String? sessionId, - bool autoSendSessionId = true, - SecurityContext? securityContext, - CoreStore? coreStore, - Map? registeredSubClassMap, - ParseUserConstructor? parseUserConstructor, - ParseFileConstructor? parseFileConstructor, - List? liveListRetryIntervals, - ParseConnectivityProvider? connectivityProvider, - String? fileDirectory, - Stream? appResumedStream, - ParseClientCreator? clientCreator, - }) async { - final String url = removeTrailingSlash(serverUrl); - - await ParseCoreData.init( - appId, - url, - debug: debug, - appName: appName, - appVersion: appVersion, - appPackageName: appPackageName, - locale: locale, - liveQueryUrl: liveQueryUrl, - masterKey: masterKey, - clientKey: clientKey, - sessionId: sessionId, - autoSendSessionId: autoSendSessionId, - securityContext: securityContext, - store: coreStore, - registeredSubClassMap: registeredSubClassMap, - parseUserConstructor: parseUserConstructor, - parseFileConstructor: parseFileConstructor, - liveListRetryIntervals: liveListRetryIntervals, - connectivityProvider: connectivityProvider, - fileDirectory: fileDirectory, - appResumedStream: appResumedStream, - clientCreator: clientCreator, - ); - - _hasBeenInitialized = true; - - return this; - } - - bool hasParseBeenInitialized() => _hasBeenInitialized; - - Future healthCheck( - {bool? debug, ParseClient? client, bool? sendSessionIdByDefault}) async { - final bool debugLocal = isDebugEnabled(objectLevelDebug: debug); - - final ParseClient clientLocal = client ?? - ParseCoreData().clientCreator( - sendSessionId: - sendSessionIdByDefault ?? ParseCoreData().autoSendSessionId, - securityContext: ParseCoreData().securityContext); - - const String className = 'parseBase'; - const ParseApiRQ type = ParseApiRQ.healthCheck; - - try { - final ParseNetworkResponse response = await clientLocal - .get('${ParseCoreData().serverUrl}$keyEndPointHealth'); - return handleResponse(null, response, type, debugLocal, className); - } on Exception catch (e) { - return handleException(e, type, debugLocal, className); - } - } -} diff --git a/packages/dart/lib/src/base/parse_constants.dart b/packages/dart/lib/src/base/parse_constants.dart deleted file mode 100644 index c8554339d..000000000 --- a/packages/dart/lib/src/base/parse_constants.dart +++ /dev/null @@ -1,85 +0,0 @@ -part of flutter_parse_sdk; - -// Library -const String keySdkVersion = '5.1.1'; -const String keyLibraryName = 'Flutter Parse SDK'; - -// End Points -const String keyEndPointUserName = '/users/me'; -const String keyEndPointLogin = '/login'; -const String keyEndPointLogout = '/logout'; -const String keyEndPointUsers = '/users'; -const String keyEndPointSessions = '/sessions'; -const String keyEndPointInstallations = '/installations'; -const String keyEndPointVerificationEmail = '/verificationEmailRequest'; -const String keyEndPointRequestPasswordReset = '/requestPasswordReset'; -const String keyEndPointClasses = '/classes/'; -const String keyEndPointHealth = '/health'; -const String keyEndPointAggregate = '/aggregate/'; - -// ParseObject variables -const String keyVarClassName = 'className'; -const String keyVarObjectId = 'objectId'; -const String keyVarCreatedAt = 'createdAt'; -const String keyVarUpdatedAt = 'updatedAt'; -const String keyVarUsername = 'username'; -const String keyVarEmail = 'email'; -const String keyVarPassword = 'password'; -const String keyVarSessionToken = 'sessionToken'; -const String keyVarAuthData = 'authData'; -const String keyVarAcl = 'ACL'; -const String keyVarName = 'name'; -const String keyVarURL = 'url'; - -// Classes -const String keyClassMain = 'ParseMain'; -const String keyClassUser = '_User'; -const String keyClassSession = '_Session'; -const String keyClassInstallation = '_Installation'; -const String keyGeoPoint = 'GeoPoint'; -const String keyFile = 'File'; -const String keyRelation = 'Relation'; -const String keyFileClassname = 'ParseFile'; - -// Headers -const String keyHeaderSessionToken = 'X-Parse-Session-Token'; -const String keyHeaderRevocableSession = 'X-Parse-Revocable-Session'; -const String keyHeaderUserAgent = 'user-agent'; -const String keyHeaderApplicationId = 'X-Parse-Application-Id'; -const String keyHeaderContentType = 'content-type'; -const String keyHeaderContentTypeJson = 'application/json'; -const String keyHeaderMasterKey = 'X-Parse-Master-Key'; -const String keyHeaderClientKey = 'X-Parse-Client-Key'; -const String keyHeaderInstallationId = 'X-Parse-Installation-Id'; - -// URL params -const String keyParamSessionToken = 'sessionToken'; - -// Storage -const String keyParseStoreBase = 'flutter_parse_sdk_'; -const String keyParseStoreUser = '${keyParseStoreBase}user'; -const String keyParseStoreInstallation = '${keyParseStoreBase}installation'; - -// Installation -const String keyTimeZone = 'timeZone'; -const String keyLocaleIdentifier = 'localeIdentifier'; -const String keyDeviceToken = 'deviceToken'; -const String keyDeviceType = 'deviceType'; -const String keyInstallationId = 'installationId'; -const String keyAppName = 'appName'; -const String keyAppVersion = 'appVersion'; -const String keyAppIdentifier = 'appIdentifier'; -const String keyParseVersion = 'parseVersion'; - -// Parse Session -const String keyVarUser = 'user'; -const String keyVarCreatedWith = 'createdWith'; -const String keyVarRestricted = 'restricted'; -const String keyVarExpiresAt = 'expiresAt'; -const String keyVarInstallationId = 'installationId'; - -// Error -const String keyError = 'error'; -const String keyCode = 'code'; - -const bool parseIsWeb = identical(0, 0.0); diff --git a/packages/dart/lib/src/data/parse_core_data.dart b/packages/dart/lib/src/data/parse_core_data.dart deleted file mode 100644 index aea6adf36..000000000 --- a/packages/dart/lib/src/data/parse_core_data.dart +++ /dev/null @@ -1,136 +0,0 @@ -part of flutter_parse_sdk; - -/// Singleton class that defines all user keys and data -class ParseCoreData { - factory ParseCoreData() => _instance; - - ParseCoreData._init(this.applicationId, this.serverUrl); - - static late ParseCoreData _instance; - - static ParseCoreData get instance => _instance; - - /// Creates an instance of Parse Server - /// - /// This class should not be user unless switching servers during the app, - /// which is odd. Should only be user by Parse.init - static Future init( - String appId, - String serverUrl, { - required bool debug, - String? appName, - String? appVersion, - String? appPackageName, - String? locale, - String? liveQueryUrl, - String? masterKey, - String? clientKey, - String? sessionId, - required bool autoSendSessionId, - SecurityContext? securityContext, - CoreStore? store, - Map? registeredSubClassMap, - ParseUserConstructor? parseUserConstructor, - ParseFileConstructor? parseFileConstructor, - List? liveListRetryIntervals, - ParseConnectivityProvider? connectivityProvider, - String? fileDirectory, - Stream? appResumedStream, - ParseClientCreator? clientCreator, - }) async { - _instance = ParseCoreData._init(appId, serverUrl); - - _instance.storage = store ?? CoreStoreMemoryImp(); - _instance.debug = debug; - _instance.appName = appName; - _instance.appVersion = appVersion; - _instance.appPackageName = appPackageName; - _instance.locale = locale; - _instance.liveQueryURL = liveQueryUrl; - _instance.clientKey = clientKey; - _instance.masterKey = masterKey; - _instance.sessionId = sessionId; - _instance.autoSendSessionId = autoSendSessionId; - _instance.securityContext = securityContext; - _instance.liveListRetryIntervals = liveListRetryIntervals ?? - (parseIsWeb - ? [0, 500, 1000, 2000, 5000] - : [0, 500, 1000, 2000, 5000, 10000]); - _instance._subClassHandler = ParseSubClassHandler( - registeredSubClassMap: registeredSubClassMap, - parseUserConstructor: parseUserConstructor, - parseFileConstructor: parseFileConstructor, - ); - _instance.connectivityProvider = connectivityProvider; - _instance.fileDirectory = fileDirectory; - _instance.appResumedStream = appResumedStream; - _instance.clientCreator = clientCreator ?? - (({required bool sendSessionId, SecurityContext? securityContext}) => - ParseHTTPClient( - sendSessionId: sendSessionId, - securityContext: securityContext)); - } - - String applicationId; - String serverUrl; - String? appName; - String? appVersion; - String? appPackageName; - String? locale; - String? liveQueryURL; - String? masterKey; - String? clientKey; - String? sessionId; - late bool autoSendSessionId; - SecurityContext? securityContext; - late bool debug; - late CoreStore storage; - late ParseSubClassHandler _subClassHandler; - late List liveListRetryIntervals; - ParseConnectivityProvider? connectivityProvider; - String? fileDirectory; - Stream? appResumedStream; - late ParseClientCreator clientCreator; - - void registerSubClass( - String className, ParseObjectConstructor objectConstructor) { - _subClassHandler.registerSubClass(className, objectConstructor); - } - - void registerUserSubClass(ParseUserConstructor parseUserConstructor) { - _subClassHandler.registerUserSubClass(parseUserConstructor); - } - - void registerFileSubClass(ParseFileConstructor parseFileConstructor) { - _subClassHandler.registerFileSubClass(parseFileConstructor); - } - - ParseObject createObject(String classname) { - return _subClassHandler.createObject(classname); - } - - ParseUser createParseUser( - String? username, String? password, String? emailAddress, - {String? sessionToken, bool? debug, ParseClient? client}) { - return _subClassHandler.createParseUser(username, password, emailAddress, - sessionToken: sessionToken, debug: debug, client: client); - } - - ParseFileBase createFile({String? url, String? name}) => - _subClassHandler.createFile(name: name, url: url); - - /// Sets the current sessionId. - /// - /// This is generated when a users logs in, or calls currentUser to update - /// their keys - void setSessionId(String sessionId) { - this.sessionId = sessionId; - } - - CoreStore getStore() { - return storage; - } - - @override - String toString() => '$applicationId $masterKey'; -} diff --git a/packages/dart/lib/src/data/parse_subclass_handler.dart b/packages/dart/lib/src/data/parse_subclass_handler.dart deleted file mode 100644 index f7ed18cf9..000000000 --- a/packages/dart/lib/src/data/parse_subclass_handler.dart +++ /dev/null @@ -1,75 +0,0 @@ -part of flutter_parse_sdk; - -typedef ParseObjectConstructor = ParseObject Function(); -typedef ParseUserConstructor = ParseUser Function( - String? username, String? password, String? emailAddress, - {String? sessionToken, bool? debug, ParseClient? client}); -typedef ParseFileConstructor = ParseFileBase Function( - {String? name, String? url}); - -class ParseSubClassHandler { - ParseSubClassHandler( - {Map? registeredSubClassMap, - ParseUserConstructor? parseUserConstructor, - ParseFileConstructor? parseFileConstructor}) { - _subClassMap = registeredSubClassMap ?? {}; - _parseUserConstructor = parseUserConstructor; - if (parseFileConstructor != null) { - _parseFileConstructor = parseFileConstructor; - } - } - - late Map _subClassMap; - ParseUserConstructor? _parseUserConstructor; - ParseFileConstructor _parseFileConstructor = defaultParseFileConstructor; - - static ParseFileBase defaultParseFileConstructor( - {String? name, String? url}) { - if (parseIsWeb) { - return ParseWebFile(null, name: name!, url: url); - } else { - return ParseFile(null, name: name, url: url); - } - } - - void registerSubClass( - String className, ParseObjectConstructor objectConstructor) { - if (className != keyClassUser && - className != keyClassInstallation && - className != keyClassSession && - className != keyFileClassname) { - _subClassMap[className] = objectConstructor; - } - } - - void registerUserSubClass(ParseUserConstructor parseUserConstructor) { - _parseUserConstructor = parseUserConstructor; - } - - void registerFileSubClass(ParseFileConstructor parseFileConstructor) { - _parseFileConstructor = parseFileConstructor; - } - - ParseObject createObject(String classname) { - if (classname == keyClassUser) { - return createParseUser(null, null, null); - } - if (_subClassMap.containsKey(classname)) { - return _subClassMap[classname]!(); - } - return ParseObject(classname); - } - - ParseUser createParseUser( - String? username, String? password, String? emailAddress, - {String? sessionToken, bool? debug, ParseClient? client}) { - return _parseUserConstructor != null - ? _parseUserConstructor!(username, password, emailAddress, - sessionToken: sessionToken, debug: debug, client: client) - : ParseUser(username, password, emailAddress, - sessionToken: sessionToken, debug: debug, client: client); - } - - ParseFileBase createFile({String? name, String? url}) => - _parseFileConstructor(name: name, url: url); -} diff --git a/packages/dart/lib/src/enums/parse_enum_api_rq.dart b/packages/dart/lib/src/enums/parse_enum_api_rq.dart deleted file mode 100644 index 56bb33ef8..000000000 --- a/packages/dart/lib/src/enums/parse_enum_api_rq.dart +++ /dev/null @@ -1,37 +0,0 @@ -part of flutter_parse_sdk; - -/// Used to define the API calls made in ParseObject logs -enum ParseApiRQ { - healthCheck, - get, - getAll, - unset, - create, - save, - query, - delete, - currentUser, - signUp, - login, - logout, - loginAnonymous, - loginWith, - verificationEmailRequest, - requestPasswordReset, - destroy, - all, - execute, - executeObjectionFunction, - upload, - add, - addAll, - addUnique, - remove, - removeAll, - increment, - decrement, - getConfigs, - addConfig, - liveQuery, - batch -} diff --git a/packages/dart/lib/src/network/dio_adapter_io.dart b/packages/dart/lib/src/network/dio_adapter_io.dart deleted file mode 100644 index 976810283..000000000 --- a/packages/dart/lib/src/network/dio_adapter_io.dart +++ /dev/null @@ -1,14 +0,0 @@ -import 'package:universal_io/io.dart'; - -import 'package:dio/io.dart'; -import 'package:dio/dio.dart'; - -HttpClientAdapter createHttpClientAdapter(SecurityContext? securityContext) { - final IOHttpClientAdapter defaultHttpClientAdapter = IOHttpClientAdapter(); - - if (securityContext != null) { - defaultHttpClientAdapter.onHttpClientCreate = - (HttpClient client) => HttpClient(context: securityContext); - } - return defaultHttpClientAdapter; -} diff --git a/packages/dart/lib/src/network/dio_adapter_js.dart b/packages/dart/lib/src/network/dio_adapter_js.dart deleted file mode 100644 index c35b0a444..000000000 --- a/packages/dart/lib/src/network/dio_adapter_js.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'package:dio/browser.dart'; -import 'package:dio/dio.dart'; - -HttpClientAdapter createHttpClientAdapter(dynamic securityContext) { - final BrowserHttpClientAdapter browserHttpClientAdapter = - BrowserHttpClientAdapter(); - return browserHttpClientAdapter; -} diff --git a/packages/dart/lib/src/network/http_client_io.dart b/packages/dart/lib/src/network/http_client_io.dart deleted file mode 100644 index f94193813..000000000 --- a/packages/dart/lib/src/network/http_client_io.dart +++ /dev/null @@ -1,6 +0,0 @@ -import 'dart:io'; -import 'package:http/io_client.dart'; - -getClient(SecurityContext securityContext) { - return IOClient(HttpClient(context: securityContext)); -} diff --git a/packages/dart/lib/src/network/http_client_js.dart b/packages/dart/lib/src/network/http_client_js.dart deleted file mode 100644 index 8f5dea0a3..000000000 --- a/packages/dart/lib/src/network/http_client_js.dart +++ /dev/null @@ -1,6 +0,0 @@ -import 'dart:io'; -import 'package:http/browser_client.dart'; - -getClient(SecurityContext securityContext) { - return BrowserClient(); -} diff --git a/packages/dart/lib/src/network/options.dart b/packages/dart/lib/src/network/options.dart deleted file mode 100644 index 7f33a5c6c..000000000 --- a/packages/dart/lib/src/network/options.dart +++ /dev/null @@ -1,10 +0,0 @@ -part of flutter_parse_sdk; - -class ParseNetworkOptions { - ParseNetworkOptions({this.headers}); - - final Map? headers; - // final ParseNetworkResponseType responseType; -} - -enum ParseNetworkResponseType { json, stream, plain, bytes } diff --git a/packages/dart/lib/src/network/parse_client.dart b/packages/dart/lib/src/network/parse_client.dart deleted file mode 100644 index ad16235d0..000000000 --- a/packages/dart/lib/src/network/parse_client.dart +++ /dev/null @@ -1,104 +0,0 @@ -part of flutter_parse_sdk; - -typedef ParseClientCreator = ParseClient Function( - {required bool sendSessionId, SecurityContext? securityContext}); - -abstract class ParseClient { - Future get( - String path, { - ParseNetworkOptions? options, - ProgressCallback? onReceiveProgress, - }); - - Future put( - String path, { - String? data, - ParseNetworkOptions? options, - }); - - Future post( - String path, { - String? data, - ParseNetworkOptions? options, - }); - - Future postBytes( - String path, { - Stream>? data, - ParseNetworkOptions? options, - ProgressCallback? onSendProgress, - dynamic cancelToken, - }); - - Future delete( - String path, { - ParseNetworkOptions? options, - }); - - Future getBytes( - String path, { - ParseNetworkOptions? options, - ProgressCallback? onReceiveProgress, - dynamic cancelToken, - }); - - // Future putBytes( - // String path, { - // dynamic data, - // Map queryParameters, - // ParseNetworkOptions options, - // ProgressCallback onReceiveProgress, - // }); - // - // Future postBytes( - // String path, { - // String data, - // ParseNetworkOptions options, - // ProgressCallback onReceiveProgress, - // ProgressCallback onSendProgress, - // }); - // - // Future deleteBytes( - // String path, { - // Map queryParameters, - // ParseNetworkOptions options, - // }); - - @Deprecated("Use ParseCoreData() instead.") - ParseCoreData get data => ParseCoreData(); -} - -/// Callback to listen the progress for sending/receiving data. -/// -/// [count] is the length of the bytes have been sent/received. -/// -/// [total] is the content length of the response/request body. -/// 1.When receiving data: -/// [total] is the request body length. -/// 2.When receiving data: -/// [total] will be -1 if the size of the response body is not known in advance, -/// for example: response data is compressed with gzip or no content-length header. -typedef ProgressCallback = void Function(int count, int total); - -class ParseNetworkResponse { - ParseNetworkResponse({ - required this.data, - this.statusCode = -1, - }); - - final String data; - final int statusCode; -} - -class ParseNetworkByteResponse extends ParseNetworkResponse { - ParseNetworkByteResponse({ - this.bytes, - final String data = 'byte response', - final int statusCode = -1, - }) : super( - data: data, - statusCode: statusCode, - ); - - final List? bytes; -} diff --git a/packages/dart/lib/src/network/parse_connectivity.dart b/packages/dart/lib/src/network/parse_connectivity.dart deleted file mode 100644 index 731ad1a4b..000000000 --- a/packages/dart/lib/src/network/parse_connectivity.dart +++ /dev/null @@ -1,18 +0,0 @@ -part of flutter_parse_sdk; - -/// Connection status check result. -enum ParseConnectivityResult { - /// WiFi: Device connected via Wi-Fi - wifi, - - /// Mobile: Device connected to cellular network - mobile, - - /// None: Device not connected to any network - none -} - -abstract class ParseConnectivityProvider { - Future checkConnectivity(); - Stream get connectivityStream; -} diff --git a/packages/dart/lib/src/network/parse_dio_client.dart b/packages/dart/lib/src/network/parse_dio_client.dart deleted file mode 100644 index 3cdfba743..000000000 --- a/packages/dart/lib/src/network/parse_dio_client.dart +++ /dev/null @@ -1,302 +0,0 @@ -import 'package:dio/dio.dart' as dio; -import 'package:parse_server_sdk/parse_server_sdk.dart'; - -import 'dio_adapter_io.dart' if (dart.library.js) 'dio_adapter_js.dart'; - -class ParseDioClient extends ParseClient { - // securityContext is SecurityContext - ParseDioClient({bool sendSessionId = false, dynamic securityContext}) { - _client = _ParseDioClient( - sendSessionId: sendSessionId, - securityContext: securityContext, - ); - } - - late _ParseDioClient _client; - - @override - Future get( - String path, { - ParseNetworkOptions? options, - ProgressCallback? onReceiveProgress, - }) async { - try { - final dio.Response dioResponse = await _client.get( - path, - options: _Options(headers: options?.headers), - ); - - return ParseNetworkResponse( - data: dioResponse.data!, - statusCode: dioResponse.statusCode!, - ); - } on dio.DioError catch (error) { - return ParseNetworkResponse( - data: error.response?.data ?? _fallbackErrorData, - statusCode: error.response?.statusCode ?? ParseError.otherCause, - ); - } - } - - @override - Future getBytes( - String path, { - ParseNetworkOptions? options, - ProgressCallback? onReceiveProgress, - dynamic cancelToken, - }) async { - try { - final dio.Response> dioResponse = await _client.get>( - path, - cancelToken: cancelToken, - onReceiveProgress: onReceiveProgress, - options: _Options( - headers: options?.headers, responseType: dio.ResponseType.bytes), - ); - return ParseNetworkByteResponse( - bytes: dioResponse.data, - statusCode: dioResponse.statusCode!, - ); - } on dio.DioError catch (error) { - if (error.response != null) { - return ParseNetworkByteResponse( - data: error.response?.data ?? _fallbackErrorData, - statusCode: error.response?.statusCode ?? ParseError.otherCause, - ); - } else { - return _getOtherCaseErrorForParseNetworkResponse( - error.error.toString()); - } - } - } - - @override - Future put(String path, - {String? data, ParseNetworkOptions? options}) async { - try { - final dio.Response dioResponse = await _client.put( - path, - data: data, - options: _Options(headers: options?.headers), - ); - - return ParseNetworkResponse( - data: dioResponse.data!, - statusCode: dioResponse.statusCode!, - ); - } on dio.DioError catch (error) { - return ParseNetworkResponse( - data: error.response?.data ?? _fallbackErrorData, - statusCode: error.response?.statusCode ?? ParseError.otherCause, - ); - } - } - - @override - Future post(String path, - {String? data, ParseNetworkOptions? options}) async { - try { - final dio.Response dioResponse = await _client.post( - path, - data: data, - options: _Options(headers: options?.headers), - ); - - return ParseNetworkResponse( - data: dioResponse.data!, - statusCode: dioResponse.statusCode!, - ); - } on dio.DioError catch (error) { - return ParseNetworkResponse( - data: error.response?.data ?? _fallbackErrorData, - statusCode: error.response?.statusCode ?? ParseError.otherCause, - ); - } - } - - @override - Future postBytes(String path, - {Stream>? data, - ParseNetworkOptions? options, - ProgressCallback? onSendProgress, - dynamic cancelToken}) async { - try { - final dio.Response dioResponse = await _client.post( - path, - data: data, - cancelToken: cancelToken, - options: _Options(headers: options?.headers), - onSendProgress: onSendProgress, - ); - - return ParseNetworkResponse( - data: dioResponse.data!, - statusCode: dioResponse.statusCode!, - ); - } on dio.DioError catch (error) { - if (error.response != null) { - return ParseNetworkResponse( - data: error.response?.data ?? _fallbackErrorData, - statusCode: error.response?.statusCode ?? ParseError.otherCause, - ); - } else { - return _getOtherCaseErrorForParseNetworkResponse( - error.error.toString()); - } - } - } - - _getOtherCaseErrorForParseNetworkResponse(String error) { - return ParseNetworkResponse( - data: "{\"code\":${ParseError.otherCause},\"error\":\"$error\"}", - statusCode: ParseError.otherCause); - } - - @override - Future delete(String path, - {ParseNetworkOptions? options}) async { - try { - final dio.Response dioResponse = await _client.delete( - path, - options: _Options(headers: options?.headers), - ); - - return ParseNetworkResponse( - data: dioResponse.data!, - statusCode: dioResponse.statusCode!, - ); - } on dio.DioError catch (error) { - return ParseNetworkResponse( - data: error.response?.data ?? _fallbackErrorData, - statusCode: error.response?.statusCode ?? ParseError.otherCause, - ); - } - } - - String get _fallbackErrorData => '{"$keyError":"NetworkError"}'; -} - -/// Creates a custom version of HTTP Client that has Parse Data Preset -class _ParseDioClient with dio.DioMixin implements dio.Dio { - _ParseDioClient({bool sendSessionId = false, dynamic securityContext}) - : _sendSessionId = sendSessionId { - options = dio.BaseOptions(); - httpClientAdapter = createHttpClientAdapter(securityContext); - } - - final bool _sendSessionId; - final String _userAgent = '$keyLibraryName $keySdkVersion'; - ParseCoreData parseCoreData = ParseCoreData(); - Map? additionalHeaders; - - /// Overrides the call method for HTTP Client and adds custom headers - @override - Future> request( - String path, { - dynamic data, - Map? queryParameters, - dio.CancelToken? cancelToken, - dio.Options? options, - ProgressCallback? onSendProgress, - ProgressCallback? onReceiveProgress, - }) { - options ??= dio.Options(); - options.headers ??= {}; - if (!identical(0, 0.0)) { - options.headers![keyHeaderUserAgent] = _userAgent; - } - options.headers![keyHeaderApplicationId] = parseCoreData.applicationId; - if (_sendSessionId && - parseCoreData.sessionId != null && - options.headers![keyHeaderSessionToken] == null) { - options.headers![keyHeaderSessionToken] = parseCoreData.sessionId; - } - - if (parseCoreData.clientKey != null) { - options.headers![keyHeaderClientKey] = parseCoreData.clientKey; - } - if (parseCoreData.masterKey != null) { - options.headers![keyHeaderMasterKey] = parseCoreData.masterKey; - } - - /// If developer wants to add custom headers, extend this class and add headers needed. - if (additionalHeaders != null && additionalHeaders!.isNotEmpty) { - additionalHeaders!.forEach( - (String key, String value) => options!.headers![key] = value); - } - - if (parseCoreData.debug) { - _logCUrl(options, data, path); - } - - return super.request( - path, - data: data, - queryParameters: queryParameters, - cancelToken: cancelToken, - options: options, - onSendProgress: onSendProgress, - onReceiveProgress: onReceiveProgress, - ); - } - - void _logCUrl(dio.Options options, dynamic data, String url) { - String curlCmd = 'curl'; - curlCmd += ' -X ${options.method!}'; - bool compressed = false; - options.headers!.forEach((String name, dynamic value) { - if (name.toLowerCase() == 'accept-encoding' && - value?.toString().toLowerCase() == 'gzip') { - compressed = true; - } - curlCmd += ' -H \'$name: $value\''; - }); - - //TODO: log request - // if (options.method == 'POST' || options.method == 'PUT') { - // if (request is Request) { - // final String body = latin1.decode(request.bodyBytes); - // curlCmd += ' -d \'$body\''; - // } - // } - - curlCmd += (compressed ? ' --compressed ' : ' ') + url; - curlCmd += '\n\n ${Uri.decodeFull(url)}'; - print('╭-- Parse Request'); - print(curlCmd); - print('╰--'); - } -} - -class _Options extends dio.Options { - _Options({ - String? method, - Duration? sendTimeout, - Duration? receiveTimeout, - Map? extra, - Map? headers, - dio.ResponseType? responseType, - String? contentType, - dio.ValidateStatus? validateStatus, - bool? receiveDataWhenStatusError, - bool? followRedirects, - int? maxRedirects, - dio.RequestEncoder? requestEncoder, - dio.ResponseDecoder? responseDecoder, - }) : super( - method: method, - sendTimeout: sendTimeout, - receiveTimeout: receiveTimeout, - extra: extra, - headers: headers, - responseType: responseType, - contentType: contentType ?? - (headers ?? {})[dio.Headers.contentTypeHeader], - validateStatus: validateStatus, - receiveDataWhenStatusError: receiveDataWhenStatusError, - followRedirects: followRedirects, - maxRedirects: maxRedirects, - requestEncoder: requestEncoder, - responseDecoder: responseDecoder, - ); -} diff --git a/packages/dart/lib/src/network/parse_http_client.dart b/packages/dart/lib/src/network/parse_http_client.dart deleted file mode 100644 index 86210be50..000000000 --- a/packages/dart/lib/src/network/parse_http_client.dart +++ /dev/null @@ -1,188 +0,0 @@ -import 'dart:convert'; -import 'package:universal_io/io.dart'; - -import 'package:http/http.dart' as http; - -import 'package:parse_server_sdk/parse_server_sdk.dart'; - -import 'http_client_io.dart' if (dart.library.js) 'http_client_js.dart'; - -class ParseHTTPClient extends ParseClient { - ParseHTTPClient( - {bool sendSessionId = false, SecurityContext? securityContext}) { - _client = _ParseHTTPClient( - sendSessionId: sendSessionId, - securityContext: securityContext, - ); - } - - late _ParseHTTPClient _client; - - Map? get additionalHeaders => _client.additionalHeaders; - - set additionalHeaders(Map? additionalHeaders) => - _client.additionalHeaders = additionalHeaders; - - @override - Future get( - String path, { - ParseNetworkOptions? options, - ProgressCallback? onReceiveProgress, - }) async { - final http.Response response = await _client.get( - Uri.parse(path), - headers: options?.headers, - ); - return ParseNetworkResponse( - data: response.body, statusCode: response.statusCode); - } - - @override - Future getBytes( - String path, { - ParseNetworkOptions? options, - ProgressCallback? onReceiveProgress, - dynamic cancelToken, - }) async { - final http.Response response = await _client.get( - Uri.parse(path), - headers: options?.headers, - ); - return ParseNetworkByteResponse( - bytes: response.bodyBytes, statusCode: response.statusCode); - } - - @override - Future put( - String path, { - String? data, - ParseNetworkOptions? options, - }) async { - final http.Response response = await _client.put( - Uri.parse(path), - body: data, - headers: options?.headers, - ); - return ParseNetworkResponse( - data: response.body, statusCode: response.statusCode); - } - - @override - Future post( - String path, { - String? data, - ParseNetworkOptions? options, - }) async { - final http.Response response = await _client.post( - Uri.parse(path), - body: data, - headers: options?.headers, - ); - return ParseNetworkResponse( - data: response.body, statusCode: response.statusCode); - } - - @override - Future postBytes( - String path, { - Stream>? data, - ParseNetworkOptions? options, - ProgressCallback? onSendProgress, - dynamic cancelToken, - }) async { - final http.Response response = await _client.post( - Uri.parse(path), - //Convert the stream to a list - body: await data?.fold>([], - (List previous, List element) => previous..addAll(element)), - headers: options?.headers, - ); - return ParseNetworkResponse( - data: response.body, statusCode: response.statusCode); - } - - @override - Future delete(String path, - {ParseNetworkOptions? options}) async { - final http.Response response = await _client.delete( - Uri.parse(path), - headers: options?.headers, - ); - return ParseNetworkResponse( - data: response.body, statusCode: response.statusCode); - } -} - -/// Creates a custom version of HTTP Client that has Parse Data Preset -class _ParseHTTPClient extends http.BaseClient { - _ParseHTTPClient( - {bool sendSessionId = false, SecurityContext? securityContext}) - : _sendSessionId = sendSessionId, - _client = securityContext != null - ? getClient(securityContext) - : http.Client(); - - final http.Client _client; - final bool _sendSessionId; - final String _userAgent = '$keyLibraryName $keySdkVersion'; - ParseCoreData parseCoreData = ParseCoreData(); - Map? additionalHeaders; - - /// Overrides the call method for HTTP Client and adds custom headers - @override - Future send(http.BaseRequest request) { - if (!identical(0, 0.0)) { - request.headers[keyHeaderUserAgent] = _userAgent; - } - request.headers[keyHeaderApplicationId] = parseCoreData.applicationId; - if (_sendSessionId && - parseCoreData.sessionId != null && - request.headers[keyHeaderSessionToken] == null) { - request.headers[keyHeaderSessionToken] = parseCoreData.sessionId!; - } - - if (parseCoreData.clientKey != null) { - request.headers[keyHeaderClientKey] = parseCoreData.clientKey!; - } - if (parseCoreData.masterKey != null) { - request.headers[keyHeaderMasterKey] = parseCoreData.masterKey!; - } - - /// If developer wants to add custom headers, extend this class and add headers needed. - if (additionalHeaders != null && additionalHeaders!.isNotEmpty) { - additionalHeaders! - .forEach((String key, String value) => request.headers[key] = value); - } - - if (parseCoreData.debug) { - _logCUrl(request); - } - - return _client.send(request); - } - - void _logCUrl(http.BaseRequest request) { - String curlCmd = 'curl'; - curlCmd += ' -X ${request.method}'; - bool compressed = false; - request.headers.forEach((String name, String value) { - if (name.toLowerCase() == 'accept-encoding' && - value.toLowerCase() == 'gzip') { - compressed = true; - } - curlCmd += ' -H \'$name: $value\''; - }); - if (request.method == 'POST' || request.method == 'PUT') { - if (request is http.Request) { - final String body = latin1.decode(request.bodyBytes); - curlCmd += ' -d \'$body\''; - } - } - - curlCmd += (compressed ? ' --compressed ' : ' ') + request.url.toString(); - curlCmd += '\n\n ${Uri.decodeFull(request.url.toString())}'; - print('╭-- Parse Request'); - print(curlCmd); - print('╰--'); - } -} diff --git a/packages/dart/lib/src/network/parse_live_query.dart b/packages/dart/lib/src/network/parse_live_query.dart deleted file mode 100644 index 0f94861f3..000000000 --- a/packages/dart/lib/src/network/parse_live_query.dart +++ /dev/null @@ -1,443 +0,0 @@ -part of flutter_parse_sdk; - -enum LiveQueryEvent { create, enter, update, leave, delete, error } - -const String _printConstLiveQuery = 'LiveQuery: '; - -class Subscription { - Subscription(this.query, this.requestId, {T? copyObject}) { - _copyObject = copyObject; - } - - QueryBuilder query; - T? _copyObject; - int requestId; - bool _enabled = false; - final List _liveQueryEvent = [ - 'create', - 'enter', - 'update', - 'leave', - 'delete', - 'error' - ]; - Map eventCallbacks = {}; - void on(LiveQueryEvent op, Function callback) { - eventCallbacks[_liveQueryEvent[op.index]] = callback; - } - - T? get copyObject { - return _copyObject; - } -} - -enum LiveQueryClientEvent { connected, disconnected, userDisconnected } - -class LiveQueryReconnectingController { - LiveQueryReconnectingController( - this._reconnect, - this._eventStream, - this.debug, - ) { - final ParseConnectivityProvider? connectivityProvider = - ParseCoreData().connectivityProvider; - if (connectivityProvider != null) { - connectivityProvider.checkConnectivity().then(_connectivityChanged); - connectivityProvider.connectivityStream.listen(_connectivityChanged); - } else { - print( - 'LiveQuery does not work, if there is no ParseConnectivityProvider provided.'); - } - _eventStream.listen((LiveQueryClientEvent event) { - switch (event) { - case LiveQueryClientEvent.connected: - _isConnected = true; - _retryState = 0; - _userDisconnected = false; - break; - case LiveQueryClientEvent.disconnected: - _isConnected = false; - _setReconnect(); - break; - case LiveQueryClientEvent.userDisconnected: - _userDisconnected = true; - Timer? currentTimer = _currentTimer; - if (currentTimer != null) { - currentTimer.cancel(); - _currentTimer = null; - } - break; - } - - if (debug) { - print('$debugTag: $event'); - } - }); - ParseCoreData().appResumedStream?.listen((void _) => _setReconnect()); - } - - static List get retryInterval => ParseCoreData().liveListRetryIntervals; - static const String debugTag = 'LiveQueryReconnectingController'; - - final Function _reconnect; - final Stream _eventStream; - final bool debug; - - int _retryState = 0; - bool _isOnline = false; - bool _isConnected = false; - bool _userDisconnected = false; - - Timer? _currentTimer; - - void _connectivityChanged(ParseConnectivityResult state) { - if (!_isOnline && state != ParseConnectivityResult.none) { - _retryState = 0; - } - _isOnline = state != ParseConnectivityResult.none; - if (state == ParseConnectivityResult.none) { - _isConnected = false; - } - if (debug) { - print('$debugTag: $state'); - } - _setReconnect(); - } - - void _setReconnect() { - if (_isOnline && - !_isConnected && - _currentTimer == null && - !_userDisconnected && - retryInterval[_retryState] >= 0) { - _currentTimer = - Timer(Duration(milliseconds: retryInterval[_retryState]), () { - _currentTimer = null; - _reconnect(); - }); - if (debug) { - print('$debugTag: Retry timer set to ${retryInterval[_retryState]}ms'); - } - if (_retryState < retryInterval.length - 1) { - _retryState++; - } - } - } -} - -class LiveQueryClient { - factory LiveQueryClient() => _getInstance(); - - LiveQueryClient._internal(this._liveQueryURL, - {bool? debug, bool? autoSendSessionId}) { - _clientEventStreamController = StreamController(); - _clientEventStream = - _clientEventStreamController.stream.asBroadcastStream(); - - _debug = isDebugEnabled(objectLevelDebug: debug); - _sendSessionId = autoSendSessionId ?? ParseCoreData().autoSendSessionId; - - reconnectingController = LiveQueryReconnectingController( - () => reconnect(userInitialized: false), getClientEventStream, _debug); - } - static LiveQueryClient get instance => _getInstance(); - static LiveQueryClient? _instance; - static LiveQueryClient _getInstance({bool? debug, bool? autoSendSessionId}) { - String? liveQueryURL = ParseCoreData().liveQueryURL; - if (liveQueryURL == null) { - assert(false, - 'liveQueryUrl is not set. For how to setup Live Queries, see https://github.com/parse-community/Parse-SDK-Flutter/tree/master/packages/flutter#live-queries.'); - liveQueryURL = ""; - } else { - if (liveQueryURL.contains('https')) { - liveQueryURL = liveQueryURL.replaceAll('https', 'wss'); - } else if (liveQueryURL.contains('http')) { - liveQueryURL = liveQueryURL.replaceAll('http', 'ws'); - } - } - LiveQueryClient instance = _instance ?? - LiveQueryClient._internal(liveQueryURL, - debug: debug, autoSendSessionId: autoSendSessionId); - _instance ??= instance; - return instance; - } - - Stream get getClientEventStream { - return _clientEventStream; - } - - parse_web_socket.WebSocket? _webSocket; - late bool _debug; - late bool _sendSessionId; - WebSocketChannel? _channel; - final String _liveQueryURL; - bool _connecting = false; - late StreamController _clientEventStreamController; - late Stream _clientEventStream; - late LiveQueryReconnectingController reconnectingController; - - final Map _requestSubscription = {}; - - Future reconnect({bool userInitialized = false}) async { - await _connect(userInitialized: userInitialized); - _connectLiveQuery(); - } - - int readyState() { - parse_web_socket.WebSocket? webSocket = _webSocket; - if (webSocket != null) { - return webSocket.readyState; - } - return parse_web_socket.WebSocket.connecting; - } - - Future disconnect({bool userInitialized = false}) async { - parse_web_socket.WebSocket? webSocket = _webSocket; - if (webSocket != null && - webSocket.readyState == parse_web_socket.WebSocket.open) { - if (_debug) { - print('$_printConstLiveQuery: Socket closed'); - } - await webSocket.close(); - _webSocket = null; - } - WebSocketChannel? channel = _channel; - if (channel != null) { - if (_debug) { - print('$_printConstLiveQuery: close'); - } - await channel.sink.close(); - _channel = null; - } - _requestSubscription.values.toList().forEach((Subscription subscription) { - subscription._enabled = false; - }); - _connecting = false; - if (userInitialized) { - _clientEventStreamController.sink - .add(LiveQueryClientEvent.userDisconnected); - } - } - - Future> subscribe( - QueryBuilder query, - {T? copyObject}) async { - if (_webSocket == null) { - await _clientEventStream.any((LiveQueryClientEvent event) => - event == LiveQueryClientEvent.connected); - } - final int requestId = _requestIdGenerator(); - final Subscription subscription = - Subscription(query, requestId, copyObject: copyObject); - _requestSubscription[requestId] = subscription; - //After a client connects to the LiveQuery server, - //it can send a subscribe message to subscribe a ParseQuery. - _subscribeLiveQuery(subscription); - return subscription; - } - - void unSubscribe(Subscription subscription) { - //Mount message for Unsubscribe - final Map unsubscribeMessage = { - 'op': 'unsubscribe', - 'requestId': subscription.requestId, - }; - WebSocketChannel? channel = _channel; - if (channel != null) { - if (_debug) { - print('$_printConstLiveQuery: UnsubscribeMessage: $unsubscribeMessage'); - } - channel.sink.add(jsonEncode(unsubscribeMessage)); - subscription._enabled = false; - _requestSubscription.remove(subscription.requestId); - } - } - - static int _requestIdCount = 1; - - int _requestIdGenerator() { - return _requestIdCount++; - } - - Future _connect({bool userInitialized = false}) async { - if (_connecting) { - print('already connecting'); - return Future.value(null); - } - await disconnect(userInitialized: userInitialized); - _connecting = true; - - try { - parse_web_socket.WebSocket webSocket = - await parse_web_socket.WebSocket.connect(_liveQueryURL); - _webSocket = webSocket; - _connecting = false; - if (webSocket.readyState == parse_web_socket.WebSocket.open) { - if (_debug) { - print('$_printConstLiveQuery: Socket opened'); - } - } else { - if (_debug) { - print('$_printConstLiveQuery: Error when connection client'); - } - return Future.value(null); - } - WebSocketChannel channel = webSocket.createWebSocketChannel(); - _channel = channel; - channel.stream.listen((dynamic message) { - _handleMessage(message); - }, onDone: () { - _clientEventStreamController.sink - .add(LiveQueryClientEvent.disconnected); - if (_debug) { - print('$_printConstLiveQuery: Done'); - } - }, onError: (Object error) { - _clientEventStreamController.sink - .add(LiveQueryClientEvent.disconnected); - if (_debug) { - print( - '$_printConstLiveQuery: Error: ${error.runtimeType.toString()}'); - } - return Future.value(handleException( - Exception(error), - ParseApiRQ.liveQuery, - _debug, - !parseIsWeb ? 'IOWebSocketChannel' : 'HtmlWebSocketChannel')); - }); - } on Exception catch (e) { - _connecting = false; - _clientEventStreamController.sink.add(LiveQueryClientEvent.disconnected); - if (_debug) { - print('$_printConstLiveQuery: Error: ${e.toString()}'); - } - return handleException(e, ParseApiRQ.liveQuery, _debug, 'LiveQuery'); - } - } - - void _connectLiveQuery() { - WebSocketChannel? channel = _channel; - if (channel == null) { - return; - } - //The connect message is sent from a client to the LiveQuery server. - //It should be the first message sent from a client after the WebSocket connection is established. - final Map connectMessage = { - 'op': 'connect', - 'applicationId': ParseCoreData().applicationId - }; - - if (_sendSessionId) { - String? sessionId = ParseCoreData().sessionId; - if (sessionId != null) { - connectMessage['sessionToken'] = sessionId; - } - } - String? clientKey = ParseCoreData().clientKey; - String? masterKey = ParseCoreData().masterKey; - if (clientKey != null) connectMessage['clientKey'] = clientKey; - if (masterKey != null) connectMessage['masterKey'] = masterKey; - - if (_debug) { - print('$_printConstLiveQuery: ConnectMessage: $connectMessage'); - } - channel.sink.add(jsonEncode(connectMessage)); - } - - void _subscribeLiveQuery(Subscription subscription) { - if (subscription._enabled) { - return; - } - subscription._enabled = true; - final QueryBuilder query = subscription.query; - final List? keysToReturn = query.limiters['keys']?.split(','); - query.limiters.clear(); //Remove limits in LiveQuery - final String where = query.buildQuery().replaceAll('where=', ''); - - //Convert where condition to Map - Map whereMap = {}; - if (where != '') { - whereMap = json.decode(where); - } - - final Map subscribeMessage = { - 'op': 'subscribe', - 'requestId': subscription.requestId, - 'query': { - 'className': query.object.parseClassName, - 'where': whereMap, - if (keysToReturn != null && keysToReturn.isNotEmpty) - 'fields': keysToReturn - } - }; - if (_sendSessionId && ParseCoreData().sessionId != null) { - subscribeMessage['sessionToken'] = ParseCoreData().sessionId; - } - - if (_debug) { - print('$_printConstLiveQuery: SubscribeMessage: $subscribeMessage'); - } - - _channel?.sink.add(jsonEncode(subscribeMessage)); - } - - void _handleMessage(String message) { - if (_debug) { - print('$_printConstLiveQuery: Listen: $message'); - } - - final Map actionData = jsonDecode(message); - - Subscription? subscription; - if (actionData.containsKey('op') && actionData['op'] == 'connected') { - print('Re subscription:$_requestSubscription'); - - _requestSubscription.values.toList().forEach((Subscription subscription) { - _subscribeLiveQuery(subscription); - }); - _clientEventStreamController.sink.add(LiveQueryClientEvent.connected); - return; - } - if (actionData.containsKey('requestId')) { - subscription = _requestSubscription[actionData['requestId']]; - } - if (subscription == null) { - return; - } - if (subscription.eventCallbacks.containsKey(actionData['op'])) { - Function? eventCallback = subscription.eventCallbacks[actionData['op']]; - if (eventCallback != null) { - if (actionData.containsKey('object')) { - final Map map = actionData['object']; - final String? className = map['className']; - if (className != null) { - if (className == keyClassUser) { - eventCallback((subscription.copyObject ?? - ParseCoreData.instance.createParseUser(null, null, null)) - .fromJson(map)); - } else { - eventCallback((subscription.copyObject ?? - ParseCoreData.instance.createObject(className)) - .fromJson(map)); - } - } - } else { - eventCallback(actionData); - } - } - } - } -} - -class LiveQuery { - LiveQuery({bool? debug, bool? autoSendSessionId}) { - _debug = isDebugEnabled(objectLevelDebug: debug); - _sendSessionId = autoSendSessionId ?? ParseCoreData().autoSendSessionId; - client = LiveQueryClient._getInstance( - debug: _debug, autoSendSessionId: _sendSessionId); - } - - bool? _debug; - bool? _sendSessionId; - late LiveQueryClient client; -} diff --git a/packages/dart/lib/src/network/parse_query.dart b/packages/dart/lib/src/network/parse_query.dart deleted file mode 100644 index 39f5b0282..000000000 --- a/packages/dart/lib/src/network/parse_query.dart +++ /dev/null @@ -1,579 +0,0 @@ -part of flutter_parse_sdk; - -/// Class to create complex queries -class QueryBuilder { - /// Class to create complex queries - QueryBuilder(this.object) : super(); - - factory QueryBuilder.name(String classname) { - return QueryBuilder(ParseCoreData.instance.createObject(classname) as T); - } - - QueryBuilder.or(this.object, List> list) { - _constructorInitializer(query: '"\$or":[', list: list); - } - - QueryBuilder.and(this.object, List> list) { - _constructorInitializer(query: '"\$and":[', list: list); - } - - QueryBuilder.nor(this.object, List> list) { - _constructorInitializer(query: '"\$nor":[', list: list); - } - - void _constructorInitializer( - {required String query, required List> list}) { - for (int i = 0; i < list.length; ++i) { - if (i > 0) { - query += ','; - } - query += '{${list[i].buildQueries(list[i].queries)}}'; - } - query += ']'; - queries.add(MapEntry(_noOperatorNeeded, query)); - } - - factory QueryBuilder.copy(QueryBuilder query) { - QueryBuilder copy = QueryBuilder(query.object); - copy.queries = query.queries - .map((MapEntry entry) => - MapEntry(entry.key, entry.value.toString())) - .toList(); - query.limiters.forEach((String key, dynamic value) => - copy.limiters.putIfAbsent(key, () => value.toString())); - return copy; - } - - static const String _noOperatorNeeded = 'NO_OP'; - static const String _singleQuery = 'SINGLE_QUERY'; - - T object; - List> queries = >[]; - final Map limiters = {}; - final Map extraOptions = {}; - - /// Used by ParseRelation getQuery() - void setRedirectClassNameForKey(String key) { - extraOptions['redirectClassNameForKey'] = key; - } - - /// Adds a limit to amount of results return from Parse - void setLimit(int limit) { - limiters['limit'] = limit; - } - - /// Useful for pagination, skips [int] amount of results - void setAmountToSkip(int skip) { - limiters['skip'] = skip; - } - - /// Creates a query based on where - void whereEquals(String where) { - limiters['where'] = where; - } - - /// Sorts the results in ascending order. - /// - /// [String] order will be the column of the table that the results are - /// ordered by - void orderByAscending(String order) { - if (!limiters.containsKey('order')) { - limiters['order'] = order; - } else { - limiters['order'] = limiters['order'] + ',' + order; - } - } - - /// Sorts the results descending order. - /// - /// [String] order will be the column of the table that the results are - /// ordered by - void orderByDescending(String order) { - if (!limiters.containsKey('order')) { - limiters['order'] = '-$order'; - } else { - limiters['order'] = limiters['order'] + ',' + '-$order'; - } - } - - /// Define which keys in an object to return. - /// - /// [String] keys will only return the columns of a result you want the data for, - /// this is useful for large objects - void keysToReturn(List keys) { - limiters['keys'] = concatenateArray(keys); - } - - ///Exclude specific fields from the returned query - /// - /// [String] keys not will return the columns of a result you want the data for - void excludeKeys(List keys) { - limiters['excludeKeys'] = concatenateArray(keys); - } - - /// Includes other ParseObjects stored as a Pointer - void includeObject(List objectTypes) { - limiters['include'] = concatenateArray(objectTypes); - } - - /// Returns an object where the [String] column starts with [value] - void whereStartsWith(String column, String query, - {bool caseSensitive = false}) { - if (caseSensitive) { - queries.add(MapEntry( - _singleQuery, '"$column":{"\$regex": "^$query"}')); - } else { - queries.add(MapEntry( - _singleQuery, '"$column":{"\$regex": "^$query", "\$options": "i"}')); - } - } - - /// Returns an object where the [String] column ends with [value] - void whereEndsWith(String column, String query, - {bool caseSensitive = false}) { - if (caseSensitive) { - queries.add(MapEntry( - _singleQuery, '"$column":{"\$regex": "$query\$"}')); - } else { - queries.add(MapEntry( - _singleQuery, '"$column":{"\$regex": "$query\$", "\$options": "i"}')); - } - } - - /// Returns an object where the [String] column equals [value] - void whereEqualTo(String column, dynamic value) { - queries.add(_buildQueryWithColumnValueAndOperator( - MapEntry(column, value), _noOperatorNeeded)); - } - - /// Returns an object where the [String] column contains a value less than - /// value - void whereLessThan(String column, dynamic value) { - queries.add(_buildQueryWithColumnValueAndOperator( - MapEntry(column, value), '\$lt')); - } - - /// Returns an object where the [String] column contains a value less or equal - /// to than value - void whereLessThanOrEqualTo(String column, dynamic value) { - queries.add(_buildQueryWithColumnValueAndOperator( - MapEntry(column, value), '\$lte')); - } - - /// Returns an object where the [String] column contains a value greater - /// than value - void whereGreaterThan(String column, dynamic value) { - queries.add(_buildQueryWithColumnValueAndOperator( - MapEntry(column, value), '\$gt')); - } - - /// Returns an object where the [String] column contains a value greater - /// than equal to value - void whereGreaterThanOrEqualsTo(String column, dynamic value) { - queries.add(_buildQueryWithColumnValueAndOperator( - MapEntry(column, value), '\$gte')); - } - - /// Returns an object where the [String] column is not equal to value - void whereNotEqualTo(String column, dynamic value) { - queries.add(_buildQueryWithColumnValueAndOperator( - MapEntry(column, value), '\$ne')); - } - - /// Returns an object where the [String] column is containedIn - void whereContainedIn(String column, List value) { - queries.add(_buildQueryWithColumnValueAndOperator( - MapEntry(column, value), '\$in')); - } - - /// Returns an object where the [String] column is notContainedIn - void whereNotContainedIn(String column, List value) { - queries.add(_buildQueryWithColumnValueAndOperator( - MapEntry(column, value), '\$nin')); - } - - /// Returns an object where the [String] column for the object has data correctly entered/saved - void whereValueExists(String column, bool value) { - queries.add(_buildQueryWithColumnValueAndOperator( - MapEntry(column, value), '\$exists')); - } - - /// Retrieves related objets where [String] column is a relation field to the class [String] className - void whereRelatedTo(String column, String className, String objectId) { - queries.add(MapEntry(_singleQuery, - '"\$relatedTo":{"object":{"__type":"Pointer","className":"$className","objectId":"$objectId"},"key":"$column"}')); - } - - /// Returns an object where the [String] column contains select - void selectKeys(String column, dynamic value) { - queries.add(_buildQueryWithColumnValueAndOperator( - MapEntry(column, value), '\$select')); - } - - /// Returns an object where the [String] column doesn't select - void dontSelectKeys(String column, dynamic value) { - queries.add(_buildQueryWithColumnValueAndOperator( - MapEntry(column, value), '\$dontSelect')); - } - - /// Returns an object where the [String] column contains all - void whereArrayContainsAll(String column, List value) { - queries.add(_buildQueryWithColumnValueAndOperator( - MapEntry(column, value), '\$all')); - } - - /// Returns an object where the [String] column has a regEx performed on, - /// this can include ^StringsWith, or ^EndsWith. This can be manipulated to the users desire - void regEx(String column, String value) { - queries.add(_buildQueryWithColumnValueAndOperator( - MapEntry(column, value), '\$regex')); - } - - /// Performs a search to see if [String] contains other string - void whereContains(String column, String value, - {bool caseSensitive = false}) { - if (caseSensitive) { - queries.add(MapEntry( - _singleQuery, '"$column":{"\$regex": "$value"}')); - } else { - queries.add(MapEntry( - _singleQuery, '"$column":{"\$regex": "$value", "\$options": "i"}')); - } - } - - /// Powerful search for containing whole words. This search is much quicker than regex and can search for whole words including whether they are case sensitive or not. - /// This search can also order by the score of the search - void whereContainsWholeWord(String column, String query, - {bool caseSensitive = false, - bool orderByScore = true, - bool diacriticSensitive = false}) { - queries.add(MapEntry(_singleQuery, - '"$column":{"\$text":{"\$search":{"\$term": "$query", "\$caseSensitive": $caseSensitive , "\$diacriticSensitive": $diacriticSensitive }}}')); - if (orderByScore) { - orderByAscending('\$score'); - keysToReturn(['\$score']); - } - } - - /// Returns an objects with key point values near the point given - void whereNear(String column, ParseGeoPoint point) { - final double latitude = point.latitude; - final double longitude = point.longitude; - queries.add(MapEntry(_singleQuery, - '"$column":{"\$nearSphere":{"__type":"GeoPoint","latitude":$latitude,"longitude":$longitude}}')); - } - - /// Returns an object with key point values near the point given and within the maximum distance given. - void whereWithinMiles( - String column, ParseGeoPoint point, double maxDistance) { - final double latitude = point.latitude; - final double longitude = point.longitude; - - queries.add(MapEntry(_singleQuery, - '"$column":{"\$nearSphere":{"__type":"GeoPoint","latitude":$latitude,"longitude":$longitude},"\$maxDistanceInMiles":$maxDistance}')); - } - - /// Returns an object with key point values near the point given and within the maximum distance given. - void whereWithinKilometers( - String column, ParseGeoPoint point, double maxDistance) { - final double latitude = point.latitude; - final double longitude = point.longitude; - - queries.add(MapEntry(_singleQuery, - '"$column":{"\$nearSphere":{"__type":"GeoPoint","latitude":$latitude,"longitude":$longitude},"\$maxDistanceInKilometers":$maxDistance}')); - } - - /// Returns an object with key point values near the point given and within the maximum distance given. - void whereWithinRadians( - String column, ParseGeoPoint point, double maxDistance) { - final double latitude = point.latitude; - final double longitude = point.longitude; - - queries.add(MapEntry(_singleQuery, - '"$column":{"\$nearSphere":{"__type":"GeoPoint","latitude":$latitude,"longitude":$longitude},"\$maxDistanceInRadians":$maxDistance}')); - } - - /// Returns an object with key point values contained within a given rectangular geographic bounding box. - void whereWithinGeoBox( - String column, ParseGeoPoint southwest, ParseGeoPoint northeast) { - final double latitudeS = southwest.latitude; - final double longitudeS = southwest.longitude; - - final double latitudeN = northeast.latitude; - final double longitudeN = northeast.longitude; - - queries.add(MapEntry(_singleQuery, - '"$column":{"\$within":{"\$box": [{"__type": "GeoPoint","latitude":$latitudeS,"longitude":$longitudeS},{"__type": "GeoPoint","latitude":$latitudeN,"longitude":$longitudeN}]}}')); - } - - /// Return an object with key coordinates be contained within and on the bounds of a given polygon. - /// Supports closed and open (last point is connected to first) paths - /// Polygon must have at least 3 points - void whereWithinPolygon(String column, List points) { - if (points.length < 3) { - throw ArgumentError('Polygon must have at least 3 points'); - } - Map dictionary = {}; - dictionary['\$polygon'] = points.map((e) => e.toJson()).toList(); - - queries.add(MapEntry( - _singleQuery, '"$column":{"\$geoWithin":${jsonEncode(dictionary)}}')); - } - - /// Add a constraint to the query that requires a particular key's coordinates that contains a point - void wherePolygonContains(String column, ParseGeoPoint point) { - final double latitude = point.latitude; - final double longitude = point.longitude; - - queries.add(MapEntry(_singleQuery, - '"$column":{"\$geoIntersects":{"\$point":{"__type":"GeoPoint","latitude":$latitude,"longitude":$longitude}}}')); - } - - /// Add a constraint to the query that requires a particular key's value match another QueryBuilder - void whereMatchesQuery( - String column, QueryBuilder query) { - final String inQuery = - query._buildQueryRelational(query.object.parseClassName); - - queries.add(MapEntry( - _singleQuery, '"$column":{"\$inQuery":$inQuery}')); - } - - ///Add a constraint to the query that requires a particular key's value does not match another QueryBuilder - void whereDoesNotMatchQuery( - String column, QueryBuilder query) { - final String inQuery = - query._buildQueryRelational(query.object.parseClassName); - - queries.add(MapEntry( - _singleQuery, '"$column":{"\$notInQuery":$inQuery}')); - } - - /// Add a constraint to the query that requires a particular key's value matches a value for a key in the results of another ParseQuery. - void whereMatchesKeyInQuery( - String column, String keyInQuery, QueryBuilder query) { - if (query.queries.isEmpty) { - throw ArgumentError('query conditions is required'); - } - if (limiters.containsKey('order')) { - throw ArgumentError('order is not allowed'); - } - if (limiters.containsKey('include')) { - throw ArgumentError('include is not allowed'); - } - - final String inQuery = - query._buildQueryRelationalKey(query.object.parseClassName, keyInQuery); - - queries.add(MapEntry( - _singleQuery, '"$column":{"\$select":$inQuery}')); - } - - /// Add a constraint to the query that requires a particular key's value does not match any value for a key in the results of another ParseQuery - void whereDoesNotMatchKeyInQuery( - String column, String keyInQuery, QueryBuilder query) { - if (query.queries.isEmpty) { - throw ArgumentError('query conditions is required'); - } - if (limiters.containsKey('order')) { - throw ArgumentError('order is not allowed'); - } - if (limiters.containsKey('include')) { - throw ArgumentError('include is not allowed'); - } - - final String inQuery = - query._buildQueryRelationalKey(query.object.parseClassName, keyInQuery); - - queries.add(MapEntry( - _singleQuery, '"$column":{"\$dontSelect":$inQuery}')); - } - - /// Finishes the query and calls the server - /// - /// Make sure to call this after defining your queries - Future query( - {ProgressCallback? progressCallback}) async { - return object.query( - buildQuery(), - progressCallback: progressCallback, - ); - } - - Future distinct( - String className) async { - final String queryString = 'distinct=$className'; - return object.distinct(queryString); - } - - ///Counts the number of objects that match this query - Future count() async { - return object.query(_buildQueryCount()); - } - - /// Builds the query for Parse - String buildQuery() { - queries = _checkForMultipleColumnInstances(queries); - return 'where={${buildQueries(queries)}}${getLimiters(limiters)}${getExtraOptions(extraOptions)}'; - } - - /// Builds the query relational for Parse - String _buildQueryRelational(String className) { - queries = _checkForMultipleColumnInstances(queries); - return '{"where":{${buildQueries(queries)}},"className":"$className",${getLimitersRelational(limiters)}}'; - } - - /// Builds the query relational with Key for Parse - String _buildQueryRelationalKey(String className, String keyInQuery) { - queries = _checkForMultipleColumnInstances(queries); - return '{"query":{"className":"$className","where":{${buildQueries(queries)}}},"key":"$keyInQuery"}'; - } - - /// Builds the query for Parse - String _buildQueryCount() { - queries = _checkForMultipleColumnInstances(queries); - return 'where={${buildQueries(queries)}}&count=1'; - } - - /// Runs through all queries and adds them to a query string - String buildQueries(List> queries) { - String queryBuilder = ''; - - for (final MapEntry item in queries) { - if (item == queries.first) { - queryBuilder += item.value; - } else { - queryBuilder += ',${item.value}'; - } - } - - return queryBuilder; - } - - /// Creates a query param using the column, the value and the queryOperator - /// that the column and value are being queried against - MapEntry _buildQueryWithColumnValueAndOperator( - MapEntry columnAndValue, String queryOperator) { - final String key = columnAndValue.key; - final dynamic value = - convertValueToCorrectType(parseEncode(columnAndValue.value)); - - if (queryOperator == _noOperatorNeeded) { - return MapEntry( - _noOperatorNeeded, '"$key": ${jsonEncode(value)}'); - } else { - String queryString = '"$key":'; - final Map queryOperatorAndValueMap = {}; - queryOperatorAndValueMap[queryOperator] = parseEncode(value); - final String formattedQueryOperatorAndValue = - jsonEncode(queryOperatorAndValueMap); - queryString += formattedQueryOperatorAndValue; - return MapEntry(key, queryString); - } - } - - /// This joins queries that should be joined together... e.g. age > 10 && - /// age < 20, this would be similar to age > 10 < 20 - List> _checkForMultipleColumnInstances( - List> queries) { - final List> sanitizedQueries = - >[]; - final List keysAlreadyCompacted = []; - - // Run through each query - for (final MapEntry query in queries) { - // Add queries that don't need sanitizing - if (query.key == _noOperatorNeeded || query.key == _singleQuery) { - sanitizedQueries - .add(MapEntry(_noOperatorNeeded, query.value)); - } - - // Check if query with same column name has been sanitized - if (!keysAlreadyCompacted.contains(query.key) && - query.key != _noOperatorNeeded && - query.key != _singleQuery) { - // If not, check that it now has - keysAlreadyCompacted.add(query.key); - - // Build a list of all queries with the same column name - final List> listOfQueriesCompact = queries - .where((MapEntry entry) => query.key == entry.key) - .toList(); - - // Build first part of query - String queryStart = '"${query.key}":'; - String queryEnd = ''; - - // Compact all the queries in the correct format - for (MapEntry queryToCompact in listOfQueriesCompact) { - String queryToCompactValue = queryToCompact.value.toString(); - queryToCompactValue = queryToCompactValue.replaceFirst('{', ''); - queryToCompactValue = queryToCompactValue.replaceRange( - queryToCompactValue.length - 1, queryToCompactValue.length, ''); - if (listOfQueriesCompact.first == queryToCompact) { - queryEnd += queryToCompactValue.replaceAll(queryStart, ' '); - } else { - queryEnd += queryToCompactValue.replaceAll(queryStart, ', '); - } - } - - sanitizedQueries.add( - MapEntry(query.key, queryStart += '{$queryEnd}')); - } - } - - return sanitizedQueries; - } - - /// Adds the limiters to the query, i.e. skip=10, limit=10 - String getLimiters(Map map) { - String result = ''; - map.forEach((String key, dynamic value) { - result = '$result&$key=$value'; - }); - return result; - } - - /// Adds extra options to the query - String getExtraOptions(Map map) { - String result = ''; - map.forEach((String key, dynamic value) { - result = '$result&$key=$value'; - }); - return result; - } - - /// Adds the limiters to the query relational, i.e. skip=10, limit=10 - String getLimitersRelational(Map map) { - String result = ''; - map.forEach((String key, dynamic value) { - if (result.isNotEmpty) { - result = '$result,"$key":$value'; - } else { - result = '"$key":$value'; - } - }); - return result; - } - - /// Find the first object that satisfies the query. - /// Returns null, if no object is found. - Future first() async { - ParseResponse parseResponse = - await (QueryBuilder.copy(this)..setLimit(1)).query(); - if (parseResponse.success) { - return parseResponse.results?.first; - } - throw parseResponse.error ?? ParseError(); - } - - /// Find the objects that satisfy the query. - /// Returns an empty list if no objects are found. - Future> find() async { - ParseResponse parseResponse = await query(); - if (parseResponse.success) { - return parseResponse.results?.map((e) => e as T).toList() ?? []; - } - throw parseResponse.error ?? ParseError(); - } -} diff --git a/packages/dart/lib/src/network/parse_websocket.dart b/packages/dart/lib/src/network/parse_websocket.dart deleted file mode 100644 index 4ec07c900..000000000 --- a/packages/dart/lib/src/network/parse_websocket.dart +++ /dev/null @@ -1,2 +0,0 @@ -export 'parse_websocket_io.dart' - if (dart.library.js) 'parse_websocket_html.dart'; diff --git a/packages/dart/lib/src/network/parse_websocket_html.dart b/packages/dart/lib/src/network/parse_websocket_html.dart deleted file mode 100644 index 35593e9a8..000000000 --- a/packages/dart/lib/src/network/parse_websocket_html.dart +++ /dev/null @@ -1,33 +0,0 @@ -/// If you change this file, you should apply the same changes to the 'parse_websocket_io.dart' file - -import 'dart:html' as html; - -import 'package:web_socket_channel/html.dart'; -import 'package:web_socket_channel/web_socket_channel.dart'; - -class WebSocket { - WebSocket._(this._webSocket); - - static const int connecting = 0; - static const int open = 1; - static const int closing = 2; - static const int closed = 3; - - final html.WebSocket _webSocket; - - static Future connect(String liveQueryURL) async { - final html.WebSocket webSocket = html.WebSocket(liveQueryURL); - await webSocket.onOpen.first; - return WebSocket._(webSocket); - } - - int get readyState => _webSocket.readyState; - - Future close() async { - return _webSocket.close(); - } - - WebSocketChannel createWebSocketChannel() { - return HtmlWebSocketChannel(_webSocket); - } -} diff --git a/packages/dart/lib/src/network/parse_websocket_io.dart b/packages/dart/lib/src/network/parse_websocket_io.dart deleted file mode 100644 index b2cd15503..000000000 --- a/packages/dart/lib/src/network/parse_websocket_io.dart +++ /dev/null @@ -1,31 +0,0 @@ -/// If you change this file, you should apply the same changes to the 'parse_websocket_html.dart' file - -import 'dart:io' as io; - -import 'package:web_socket_channel/io.dart'; -import 'package:web_socket_channel/web_socket_channel.dart'; - -class WebSocket { - WebSocket._(this._webSocket); - - static const int connecting = 0; - static const int open = 1; - static const int closing = 2; - static const int closed = 3; - - final io.WebSocket _webSocket; - - static Future connect(String liveQueryURL) async { - return WebSocket._(await io.WebSocket.connect(liveQueryURL)); - } - - int get readyState => _webSocket.readyState; - - Future close() { - return _webSocket.close(); - } - - WebSocketChannel createWebSocketChannel() { - return IOWebSocketChannel(_webSocket); - } -} diff --git a/packages/dart/lib/src/objects/parse_acl.dart b/packages/dart/lib/src/objects/parse_acl.dart deleted file mode 100644 index 618b86c5f..000000000 --- a/packages/dart/lib/src/objects/parse_acl.dart +++ /dev/null @@ -1,128 +0,0 @@ -part of flutter_parse_sdk; - -/// [ParseACL] is used to control which users can access or modify a particular object -/// [ParseObject] can have its own [ParseACL] -/// You can grant read and write permissions separately to specific users -/// or you can grant permissions to "the public" so that, for example, any user could read a particular object but -/// only a particular set of users could write to that object -class ParseACL { - ///Creates an ACL where only the provided user has access. - ///[owner] The only user that can read or write objects governed by this ACL. - ParseACL({ParseUser? owner}) { - if (owner != null) { - setReadAccess(userId: owner.objectId!, allowed: true); - setWriteAccess(userId: owner.objectId!, allowed: true); - } - } - - final String _publicKEY = '*'; - final Map _permissionsById = - {}; - - /// Helper for setting stuff - void _setPermissionsIfNonEmpty( - {required String userId, - required bool readPermission, - required bool writePermission}) { - if (!(readPermission || writePermission)) { - _permissionsById.remove(userId); - } else { - _permissionsById[userId] = - _ACLPermissions(readPermission, writePermission); - } - } - - ///Get whether the public is allowed to read this object. - bool getPublicReadAccess() { - return getReadAccess(userId: _publicKEY); - } - - ///Set whether the public is allowed to read this object. - void setPublicReadAccess({required bool allowed}) { - setReadAccess(userId: _publicKEY, allowed: allowed); - } - - /// Set whether the public is allowed to write this object. - bool getPublicWriteAccess() { - return getWriteAccess(userId: _publicKEY); - } - - ///Set whether the public is allowed to write this object. - void setPublicWriteAccess({required bool allowed}) { - setWriteAccess(userId: _publicKEY, allowed: allowed); - } - - ///Set whether the given user id is allowed to read this object. - void setReadAccess({required String userId, bool allowed = true}) { - final bool writePermission = getWriteAccess(userId: userId); - _setPermissionsIfNonEmpty( - userId: userId, - readPermission: allowed, - writePermission: writePermission); - } - - /// Get whether the given user id is *explicitly* allowed to read this object. Even if this returns - /// [false], the user may still be able to access it if getPublicReadAccess returns - /// [true] or a role that the user belongs to has read access. - bool getReadAccess({required String userId}) { - return _permissionsById[userId]?.readPermission ?? false; - } - - ///Set whether the given user id is allowed to write this object. - void setWriteAccess({required String userId, bool allowed = true}) { - final bool readPermission = getReadAccess(userId: userId); - _setPermissionsIfNonEmpty( - userId: userId, - readPermission: readPermission, - writePermission: allowed); - } - - ///Get whether the given user id is *explicitly* allowed to write this object. Even if this - ///returns [false], the user may still be able to write it if getPublicWriteAccess returns - ///[true] or a role that the user belongs to has write access. - bool getWriteAccess({required String userId}) { - return _permissionsById[userId]?.writePermission ?? false; - } - - Map toJson() { - final Map map = {}; - _permissionsById.forEach((String user, _ACLPermissions permission) { - map[user] = permission.toJson(); - }); - return map; - } - - @override - String toString() => json.encode(toJson()); - - ParseACL fromJson(Map map) { - final ParseACL parseACL = ParseACL(); - - map.forEach((String userId, dynamic permission) { - if (permission['read'] != null) { - parseACL.setReadAccess(userId: userId, allowed: permission['read']); - } - if (permission['write'] != null) { - parseACL.setWriteAccess(userId: userId, allowed: permission['write']); - } - }); - return parseACL; - } -} - -class _ACLPermissions { - _ACLPermissions(this._readPermission, this._writePermission); - final String _keyReadPermission = 'read'; - final String _keyWritePermission = 'write'; - final bool _readPermission; - final bool _writePermission; - - bool get readPermission => _readPermission; - - bool get writePermission => _writePermission; - - Map toJson() => { - _keyReadPermission: _readPermission, - _keyWritePermission: _writePermission - }; -} diff --git a/packages/dart/lib/src/objects/parse_array.dart b/packages/dart/lib/src/objects/parse_array.dart deleted file mode 100644 index 1bf36e273..000000000 --- a/packages/dart/lib/src/objects/parse_array.dart +++ /dev/null @@ -1,121 +0,0 @@ -part of flutter_parse_sdk; - -class _ParseArray implements _Valuable, _ParseSaveStateAwareChild { - _ParseArray({this.setMode = false}); - - bool setMode; - - List _savedArray = []; - List estimatedArray = []; - - set savedArray(List array) { - _savedArray = array.toList(); - estimatedArray = array.toList(); - } - - List get savedArray => _savedArray; - - _ParseArrayOperation? lastPreformedOperation; - - _ParseArray preformArrayOperation( - _ParseArrayOperation arrayOperation, - ) { - arrayOperation.mergeWithPrevious(lastPreformedOperation ?? this); - - lastPreformedOperation = arrayOperation; - - estimatedArray = lastPreformedOperation!.value.toList(); - - if (setMode) { - lastPreformedOperation = null; - } - - return this; - } - - Object toJson({bool full = false}) { - if (full) { - return { - 'className': 'ParseArray', - 'estimatedArray': parseEncode(estimatedArray, full: full), - 'savedArray': parseEncode(_savedArray, full: full), - 'lastPreformedOperation': lastPreformedOperation?.toJson(full: full) - }; - } - - return lastPreformedOperation?.toJson(full: full) ?? - parseEncode(estimatedArray, full: full); - } - - factory _ParseArray.fromFullJson(Map json) { - return _ParseArray() - .._savedArray = parseDecode(json['savedArray']) - ..estimatedArray = parseDecode(json['estimatedArray']) - ..lastPreformedOperation = json['lastPreformedOperation'] == null - ? null - : _ParseArrayOperation.fromFullJson(json['lastPreformedOperation']); - } - - @override - List getValue() { - return estimatedArray.toList(); - } - - _ParseArrayOperation? _lastPreformedOperationBeforeSaving; - List? _estimatedArrayBeforeSaving; - - @override - @mustCallSuper - void onSaved() { - setMode = false; - _savedArray.clear(); - _savedArray.addAll(_estimatedArrayBeforeSaving ?? []); - _estimatedArrayBeforeSaving = null; - - if (_lastPreformedOperationBeforeSaving == lastPreformedOperation) { - // No operations were performed during the save process - lastPreformedOperation = null; - } else { - // remove the saved objects and keep the new added objects while saving - if (lastPreformedOperation is _ParseRemoveOperation) { - lastPreformedOperation?.valueForApiRequest - .retainWhere((e) => _savedArray.contains(e)); - } else { - lastPreformedOperation?.valueForApiRequest - .removeWhere((e) => _savedArray.contains(e)); - } - } - - _lastPreformedOperationBeforeSaving = null; - } - - @override - @mustCallSuper - void onSaving() { - _lastPreformedOperationBeforeSaving = lastPreformedOperation; - _estimatedArrayBeforeSaving = estimatedArray.toList(); - } - - @override - @mustCallSuper - void onRevertSaving() { - _lastPreformedOperationBeforeSaving = null; - _estimatedArrayBeforeSaving = null; - } - - @override - @mustCallSuper - void onErrorSaving() { - _lastPreformedOperationBeforeSaving = null; - _estimatedArrayBeforeSaving = null; - } - - @override - @mustCallSuper - void onClearUnsaved() { - estimatedArray = savedArray; - lastPreformedOperation = null; - _lastPreformedOperationBeforeSaving = null; - _estimatedArrayBeforeSaving = null; - } -} diff --git a/packages/dart/lib/src/objects/parse_base.dart b/packages/dart/lib/src/objects/parse_base.dart deleted file mode 100644 index 97eced61e..000000000 --- a/packages/dart/lib/src/objects/parse_base.dart +++ /dev/null @@ -1,332 +0,0 @@ -part of flutter_parse_sdk; - -abstract class ParseBase { - /// refers to the Table Name in your Parse Server - String parseClassName = 'ParseBase'; - final bool _dirty = false; // reserved property - final Map _unsavedChanges = {}; - final Map _savingChanges = {}; - - /// Stores all the values of a class - Map _objectData = {}; - - /// Returns [String] objectId - String? get objectId => get(keyVarObjectId); - - set objectId(String? objectId) => set(keyVarObjectId, objectId); - - bool isDirty({String? key}) { - if (key != null) { - return _unsavedChanges[key] != null; - } - return _isDirty(true); - } - - bool _isDirty(bool considerChildren) { - if (_dirty || _unsavedChanges.isNotEmpty || objectId == null) { - return true; - } - - if (considerChildren) { - return _areChildrenDirty({}); - } - return false; - } - - bool _areChildrenDirty(Set seenObjects) { - if (seenObjects.contains(this)) { - return false; - } - seenObjects.add(this); - if (_dirty || _unsavedChanges.isNotEmpty) { - return true; - } - bool match = false; - _getObjectData().forEach((String key, dynamic value) { - if (value is ParseObject && value._areChildrenDirty(seenObjects)) { - match = true; - } - }); - return match; - } - - /// Returns [DateTime] createdAt - DateTime? get createdAt { - if (get(keyVarCreatedAt) is String) { - final String? dateAsString = get(keyVarCreatedAt); - return dateAsString != null ? _parseDateFormat.parse(dateAsString) : null; - } else { - return get(keyVarCreatedAt); - } - } - - /// Returns [DateTime] updatedAt - DateTime? get updatedAt { - if (get(keyVarUpdatedAt) is String) { - final String? dateAsString = get(keyVarUpdatedAt); - return dateAsString != null ? _parseDateFormat.parse(dateAsString) : null; - } else { - return get(keyVarUpdatedAt); - } - } - - /// Converts object to [String] in JSON format - Map toJson({ - bool full = false, - bool forApiRQ = false, - bool allowCustomObjectId = false, - }) { - final Map map = { - keyVarClassName: parseClassName, - }; - - if (objectId != null) { - map[keyVarObjectId] = objectId; - } - - if (createdAt != null) { - map[keyVarCreatedAt] = _parseDateFormat.format(createdAt!); - } - - if (updatedAt != null) { - map[keyVarUpdatedAt] = _parseDateFormat.format(updatedAt!); - } - - final target = forApiRQ ? _unsavedChanges : _getObjectData(); - target.forEach((String key, dynamic value) { - if (!map.containsKey(key)) { - map[key] = parseEncode(value, full: full); - } - - if (forApiRQ && - value is _ParseRelation && - !value.shouldIncludeInRequest()) { - map.remove(key); - } - }); - - if (forApiRQ) { - map.remove(keyVarCreatedAt); - map.remove(keyVarUpdatedAt); - map.remove(keyVarClassName); - //map.remove(keyVarAcl); - - if (!allowCustomObjectId) { - map.remove(keyVarObjectId); - } - map.remove(keyParamSessionToken); - } - - return map; - } - - @override - String toString() => json.encode(toJson(full: true)); - - dynamic fromJsonForManualObject(Map objectData) { - return _fromJson(objectData, true); - } - - dynamic fromJson(Map objectData) { - return _fromJson(objectData, false); - } - - dynamic _fromJson(Map objectData, bool addInUnSave) { - objectData.forEach((String key, dynamic value) { - if (key == parseClassName || key == '__type') { - // NO OP - } else if (key == keyVarObjectId) { - _getObjectData()[keyVarObjectId] = value; - } else if (key == keyVarCreatedAt) { - if (value is String) { - _getObjectData()[keyVarCreatedAt] = _parseDateFormat.parse(value); - } else { - _getObjectData()[keyVarCreatedAt] = value; - } - } else if (key == keyVarUpdatedAt) { - if (value is String) { - _getObjectData()[keyVarUpdatedAt] = _parseDateFormat.parse(value); - } else { - _getObjectData()[keyVarUpdatedAt] = value; - } - } else if (key == keyVarAcl) { - _getObjectData()[keyVarAcl] = ParseACL().fromJson(value); - } else { - var decodedValue = parseDecode(value); - - if (decodedValue is List) { - if (addInUnSave) { - decodedValue = _ParseArray()..estimatedArray = decodedValue; - } else { - decodedValue = _ParseArray()..savedArray = decodedValue; - } - } - - if (decodedValue is num) { - if (addInUnSave) { - decodedValue = _ParseNumber(decodedValue); - } else { - decodedValue = _ParseNumber(decodedValue) - ..savedNumber = decodedValue; - } - } - - _getObjectData()[key] = decodedValue; - - if (addInUnSave) { - _unsavedChanges[key] = decodedValue; - } - } - }); - - return this; - } - - /// Creates a copy of this class - @protected - dynamic copy() => fromJson(toJson()); - - /// Sets all the objects variables - @protected - void _setObjectData(Map objectData) => - _objectData = objectData; - - /// Returns the objects variables - @protected - Map _getObjectData() => _objectData; - - bool containsValue(Object value) { - for (final val in _getObjectData().values) { - if (val == value || (val is _Valuable && val.getValue() == value)) { - return true; - } - } - - return false; - } - - bool containsKey(String key) { - return _getObjectData().containsKey(key); - } - - dynamic operator [](String key) { - return get(key); - } - - void operator []=(String key, dynamic value) { - set(key, value); - } - - /// Saves in storage - Future saveInStorage(String key) async { - final String objectJson = json.encode(toJson(full: true)); - await ParseCoreData().getStore().setString(key, objectJson); - } - - void clearUnsavedChanges() { - _unsavedChanges.clear(); - _notifyChildrenAboutClearUnsaved(); - } - - void _notifyChildrenAboutClearUnsaved() { - for (final child in _getObjectData().values) { - if (child is _ParseSaveStateAwareChild) { - child.onClearUnsaved(); - } - } - } - - /// Add a key-value pair to this object. - /// - /// It is recommended to name keys in `camelCaseLikeThis` - /// - /// [bool] forceUpdate is always true, if unsure as to whether an item is - /// needed or not, set to false - void set(String key, T value, {bool forceUpdate = true}) { - if (_getObjectData()[key] == value && !forceUpdate) { - return; - } - - _getObjectData()[key] = _ParseOperation.maybeMergeWithPrevious( - newValue: value, - previousValue: _getObjectData()[key], - parent: this as ParseObject, - key: key, - ); - - _unsavedChanges[key] = _getObjectData()[key]; - } - - /// Get a value of type [T] associated with a given [key] - /// - /// Returns null or [defaultValue] if provided. - T? get(String key, {T? defaultValue}) { - if (_getObjectData().containsKey(key)) { - final result = _getObjectData()[key]; - - if (result is _Valuable) { - return result.getValue() as T?; - } - - if (result is _ParseRelation) { - return (result - ..parent = (this as ParseObject) - ..key = key) as T?; - } - - return result as T?; - } else { - return defaultValue; - } - } - - /// Saves item to value storage - Future pin() async { - if (objectId != null) { - await unpin(); - final Map? objectMap = parseEncode(this, full: true); - final String json = jsonEncode(objectMap); - await ParseCoreData().getStore().setString(objectId!, json); - return true; - } else { - return false; - } - } - - /// Remove item from value storage - Future unpin({String? key}) async { - if (objectId != null || key != null) { - await ParseCoreData().getStore().remove(key ?? objectId!); - return true; - } - - return false; - } - - /// Get item from value storage - Future fromPin(String objectId) async { - final CoreStore coreStore = ParseCoreData().getStore(); - final String? itemFromStore = await coreStore.getString(objectId); - - if (itemFromStore != null) { - return fromJson(json.decode(itemFromStore)); - } - return null; - } - - Map toPointer() => encodeObject(parseClassName, objectId!); - - /// Set the [ParseACL] governing this object. - void setACL(ParseACL acl) { - set(keyVarAcl, acl); - } - - /// Access the [ParseACL] governing this object. - ParseACL getACL() { - if (_getObjectData().containsKey(keyVarAcl)) { - return _getObjectData()[keyVarAcl]; - } else { - return ParseACL(); - } - } -} diff --git a/packages/dart/lib/src/objects/parse_cloneable.dart b/packages/dart/lib/src/objects/parse_cloneable.dart deleted file mode 100644 index 589b60149..000000000 --- a/packages/dart/lib/src/objects/parse_cloneable.dart +++ /dev/null @@ -1,6 +0,0 @@ -part of flutter_parse_sdk; - -/// Creates method which can be used to deep clone objects -abstract class ParseCloneable { - dynamic clone(Map map); -} diff --git a/packages/dart/lib/src/objects/parse_config.dart b/packages/dart/lib/src/objects/parse_config.dart deleted file mode 100644 index 8df935d63..000000000 --- a/packages/dart/lib/src/objects/parse_config.dart +++ /dev/null @@ -1,41 +0,0 @@ -part of flutter_parse_sdk; - -class ParseConfig extends ParseObject { - /// Creates an instance of ParseConfig so that you can grab all configs from the server - ParseConfig({ - bool? debug, - ParseClient? client, - bool? autoSendSessionId, - }) : super( - 'config', - debug: debug, - client: client, - autoSendSessionId: autoSendSessionId, - ); - - /// Gets all configs from the server - Future getConfigs() async { - try { - final String uri = '${ParseCoreData().serverUrl}/config'; - final ParseNetworkResponse result = await _client.get(uri); - return handleResponse( - this, result, ParseApiRQ.getConfigs, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.getConfigs, _debug, parseClassName); - } - } - - /// Adds a new config - Future addConfig(String key, dynamic value) async { - try { - final String uri = '${ParseCoreData().serverUrl}/config'; - final String body = - '{"params":{"$key": ${json.encode(parseEncode(value))}}}'; - final ParseNetworkResponse result = await _client.put(uri, data: body); - return handleResponse( - this, result, ParseApiRQ.addConfig, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.addConfig, _debug, parseClassName); - } - } -} diff --git a/packages/dart/lib/src/objects/parse_error.dart b/packages/dart/lib/src/objects/parse_error.dart deleted file mode 100644 index 323905c77..000000000 --- a/packages/dart/lib/src/objects/parse_error.dart +++ /dev/null @@ -1,306 +0,0 @@ -part of flutter_parse_sdk; - -/// ParseException is used in [ParseResult] to inform the user of the exception -class ParseError { - ParseError( - {this.code = otherCause, - this.message = 'OtherCause', - this.exception, - bool debug = false}) { - type = _exceptions[code]; - if (debug) { - print(toString()); - } - } - - /// Error code indicating some error other than those enumerated here. - static const int otherCause = -1; - - /// Error code indicating that something has gone wrong with the server. - static const int internalServerError = 1; - - /// Error code indicating the connection to the Parse servers failed. - static const int connectionFailed = 100; - - /// Error code indicating the specified object doesn't exist. - static const int objectNotFound = 101; - - /// Error code indicating you tried to query with a datatype that doesn't - /// support it, like exact matching an array or object. - static const int invalidQuery = 102; - - /// Error code indicating a missing or invalid classname. Classnames are - /// case-sensitive. They must start with a letter, and a-zA-Z0-9_ are the - /// only valid characters. - static const int invalidClassName = 103; - - /// Error code indicating an unspecified object id. - static const int missingObjectId = 104; - - /// Error code indicating an invalid key name. Keys are case-sensitive. They - /// must start with a letter, and a-zA-Z0-9_ are the only valid characters. - static const int invalidKeyName = 105; - - /// Error code indicating a malformed pointer. You should not see this unless - /// you have been mucking about changing internal Parse code. - static const int invalidPointer = 106; - - /// Error code indicating that badly formed JSON was received upstream. This - /// either indicates you have done something unusual with modifying how - /// things encode to JSON, or the network is failing badly. - static const int invalidJson = 107; - - /// Error code indicating that the feature you tried to access is only - /// available internally for testing purposes. - static const int commandUnavailable = 108; - - /// You must call Parse().initialize before using the Parse library. - static const int notInitialized = 109; - - /// Error code indicating that a field was set to an inconsistent type. - static const int incorrectType = 111; - - /// Error code indicating an invalid channel name. A channel name is either - /// an empty string (the broadcast channel) or contains only a-zA-Z0-9_ - /// characters and starts with a letter. - static const int invalidChannelName = 112; - - /// Error code indicating that push is misconfigured. - static const int pushMisconfigured = 115; - - /// Error code indicating that the object is too large. - static const int objectTooLarge = 116; - - /// Error code indicating that the operation isn't allowed for clients. - static const int operationForbidden = 119; - - /// Error code indicating the result was not found in the cache. - static const int cacheMiss = 120; - - /// Error code indicating that an invalid key was used in a nested - /// JSONObject. - static const int invalidNestedKey = 121; - - /// Error code indicating that an invalid filename was used for ParseFile. - /// A valid file name contains only a-zA-Z0-9_. characters and is between 1 - /// and 128 characters. - static const int invalidFileName = 122; - - /// Error code indicating an invalid ACL was provided. - static const int invalidAcl = 123; - - /// Error code indicating that the request timed out on the server. Typically - /// this indicates that the request is too expensive to run. - static const int timeout = 124; - - /// Error code indicating that the email address was invalid. - static const int invalidEmailAddress = 125; - - /// Error code indicating a missing content type. - static const int missingContentType = 126; - - /// Error code indicating a missing content length. - static const int missingContentLength = 127; - - /// Error code indicating an invalid content length. - static const int invalidContentLength = 128; - - /// Error code indicating a file that was too large. - static const int fileTooLarge = 129; - - /// Error code indicating an error saving a file. - static const int fileSaveError = 130; - - /// Error code indicating that a unique field was given a value that is - /// already taken. - static const int duplicateValue = 137; - - /// Error code indicating that a role's name is invalid. - static const int invalidRoleName = 139; - - /// Error code indicating that an application quota was exceeded. Upgrade to - /// resolve. - static const int exceededQuota = 140; - - /// Error code indicating that a Cloud Code script failed. - static const int scriptFailed = 141; - - /// Error code indicating that a Cloud Code validation failed. - static const int validationError = 142; - - /// Error code indicating that invalid image data was provided. - static const int invalidImageData = 143; - - /// Error code indicating an unsaved file. - static const int unsavedFileError = 151; - - /// Error code indicating an invalid push time. - static const int invalidPushTimeError = 152; - - /// Error code indicating an error deleting a file. - static const int fileDeleteError = 153; - - /// Error code indicating an error deleting an unnamed file. - static const int fileDeleteUnnamedError = 161; - - /// Error code indicating that the application has exceeded its request - /// limit. - static const int requestLimitExceeded = 155; - - /// Error code indicating that the request was a duplicate and has been discarded due to - /// idempotency rules. - static const int duplicateRequest = 159; - - /// Error code indicating an invalid event name. - static const int invalidEventName = 160; - - /// Error code indicating that a field had an invalid value. - static const int invalidValue = 162; - - /// Error code indicating that the username is missing or empty. - static const int usernameMissing = 200; - - /// Error code indicating that the password is missing or empty. - static const int passwordMissing = 201; - - /// Error code indicating that the username has already been taken. - static const int usernameTaken = 202; - - /// Error code indicating that the email has already been taken. - static const int emailTaken = 203; - - /// Error code indicating that the email is missing, but must be specified. - static const int emailMissing = 204; - - /// Error code indicating that a user with the specified email was not found. - static const int emailNotFound = 205; - - /// Error code indicating that a user object without a valid session could - /// not be altered. - static const int sessionMissing = 206; - - /// Error code indicating that a user can only be created through signup. - static const int mustCreateUserThroughSignup = 207; - - /// Error code indicating that an an account being linked is already linked - /// to another user. - static const int accountAlreadyLinked = 208; - - /// Error code indicating that the current session token is invalid. - static const int invalidSessionToken = 209; - - /// Error code indicating an error enabling or verifying MFA - static const int mfaError = 210; - - /// Error code indicating that a valid MFA token must be provided - static const int mfaTokenRequired = 211; - - /// Error code indicating that a user cannot be linked to an account because - /// that account's id could not be found. - static const int linkedIdMissing = 250; - - /// Error code indicating that a user with a linked (e.g. Facebook) account - /// has an invalid session. - static const int invalidLinkedSession = 251; - - /// Error code indicating that a service being linked (e.g. Facebook or - /// Twitter) is unsupported. - static const int unsupportedService = 252; - - /// Error code indicating an invalid operation occured on schema - static const int invalidSchemaOperation = 255; - - /// Error code indicating that there were multiple errors. Aggregate errors - /// have an "errors" property, which is an array of error objects with more - /// detail about each error that occurred. - static const int aggregateError = 600; - - /// Error code indicating the client was unable to read an input file. - static const int fileReadError = 601; - - /// Error code indicating a real error code is unavailable because - /// we had to use an XDomainRequest object to allow CORS requests in - /// Internet Explorer, which strips the body from HTTP responses that have - /// a non-2XX status code. - static const int xDomainRequest = 602; - - static const Map _exceptions = { - otherCause: 'OtherCause', - internalServerError: 'InternalServerError', - connectionFailed: 'ConnectionFailed', - objectNotFound: 'ObjectNotFound', - invalidQuery: 'InvalidQuery', - invalidClassName: 'InvalidClassName', - missingObjectId: 'MissingObjectId', - invalidKeyName: 'InvalidKeyName', - invalidPointer: 'InvalidPointer', - invalidJson: 'InvalidJson', - commandUnavailable: 'CommandUnavailable', - notInitialized: 'NotInitialized', - incorrectType: 'IncorrectType', - invalidChannelName: 'InvalidChannelName', - pushMisconfigured: 'PushMisconfigured', - objectTooLarge: 'ObjectTooLarge', - operationForbidden: 'OperationForbidden', - cacheMiss: 'CacheMiss', - invalidNestedKey: 'InvalidNestedKey', - invalidFileName: 'InvalidFileName', - invalidAcl: 'InvalidAcl', - timeout: 'Timeout', - invalidEmailAddress: 'InvalidEmailAddress', - missingContentType: 'MissingContentType', - missingContentLength: 'MissingContentLength', - invalidContentLength: 'InvalidContentLength', - fileTooLarge: 'FileTooLarge', - fileSaveError: 'FileSaveError', - duplicateValue: 'DuplicateValue', - invalidRoleName: 'InvalidRoleName', - exceededQuota: 'ExceededQuota', - scriptFailed: 'ScriptError', - validationError: 'ValidationError', - invalidImageData: 'InvalidImageData', - unsavedFileError: 'UnsavedFileError', - invalidPushTimeError: 'InvalidPushTimeError', - fileDeleteError: 'FileDeleteError', - fileDeleteUnnamedError: 'FileDeleteUnnamedError', - requestLimitExceeded: 'RequestLimitExceeded', - duplicateRequest: 'DuplicateRequest', - invalidEventName: 'InvalidEventName', - invalidValue: 'InvalidValue', - usernameMissing: 'UsernameMissing', - passwordMissing: 'PasswordMissing', - usernameTaken: 'UsernameTaken', - emailTaken: 'EmailTaken', - emailMissing: 'EmailMissing', - emailNotFound: 'EmailNotFound', - sessionMissing: 'SessionMissing', - mustCreateUserThroughSignup: 'MustCreateUserThroughSignUp', - accountAlreadyLinked: 'AccountAlreadyLinked', - invalidSessionToken: 'InvalidSessionToken', - mfaError: 'MfaError', - mfaTokenRequired: 'MfaTokenRequired', - linkedIdMissing: 'LinkedIdMissing', - invalidLinkedSession: 'InvalidLinkedSession', - unsupportedService: 'UnsupportedService', - invalidSchemaOperation: 'InvalidSchemaOperation', - aggregateError: 'AggregateError', - fileReadError: 'FileReadError', - xDomainRequest: 'XDomainRequest', - }; - - final int code; - final String message; - final Exception? exception; - String? type; - - @override - String toString() { - String exceptionString = ' \n'; - exceptionString += '----'; - exceptionString += '\nParseException (Type: $type) :'; - exceptionString += '\nCode: $code'; - exceptionString += '\nMessage: $message'; - exceptionString += '----'; - return exceptionString; - } -} diff --git a/packages/dart/lib/src/objects/parse_exception.dart b/packages/dart/lib/src/objects/parse_exception.dart deleted file mode 100644 index 27cdaf70a..000000000 --- a/packages/dart/lib/src/objects/parse_exception.dart +++ /dev/null @@ -1,44 +0,0 @@ -part of flutter_parse_sdk; - -abstract class ParseException implements Exception {} - -class ParseRelationException implements ParseException { - final String? message; - - const ParseRelationException([this.message]); - - @override - String toString() { - if (message == null) return "ParseRelationException"; - return "ParseRelationException: $message"; - } -} - -class ParseOperationException implements ParseException { - final String? message; - - const ParseOperationException([this.message]); - - @override - String toString() { - if (message == null) return "ParseOperationException"; - return "ParseOperationException: $message"; - } -} - -class _UnmergeableOperationException extends ParseOperationException { - final _ParseOperation current; - final Object previous; - - const _UnmergeableOperationException(this.current, this.previous); - - @override - String toString() { - if (previous is _ParseOperation) { - return '${current.operationName} operation is invalid after ' - '${(previous as _ParseOperation).operationName} operation'; - } - - return 'can not perform ${current.operationName} merge operation on the previous value $previous'; - } -} diff --git a/packages/dart/lib/src/objects/parse_file.dart b/packages/dart/lib/src/objects/parse_file.dart deleted file mode 100644 index faa666d34..000000000 --- a/packages/dart/lib/src/objects/parse_file.dart +++ /dev/null @@ -1,123 +0,0 @@ -part of flutter_parse_sdk; - -class ParseFile extends ParseFileBase { - /// Creates a new file - /// - /// {https://docs.parseplatform.org/rest/guide/#files/} - ParseFile(this.file, - {String? name, - String? url, - bool? debug, - ParseClient? client, - bool? autoSendSessionId}) - : super( - name: file != null ? path.basename(file.path) : name!, - url: url, - debug: debug, - client: client, - autoSendSessionId: autoSendSessionId, - ); - - File? file; - CancelToken? _cancelToken; - ProgressCallback? _progressCallback; - - Future loadStorage() async { - final File possibleFile = File('${ParseCoreData().fileDirectory}/$name'); - // ignore: avoid_slow_async_io - final bool exists = await possibleFile.exists(); - - if (exists) { - file = possibleFile; - } else { - file = null; - } - - return this; - } - - @override - Future download({ProgressCallback? progressCallback}) async { - if (url == null) { - return this; - } - - file = File('${ParseCoreData().fileDirectory}/$name'); - await file!.create(); - - progressCallback ??= _progressCallback; - - _cancelToken = CancelToken(); - - final ParseNetworkByteResponse response = await _client.getBytes( - url!, - onReceiveProgress: progressCallback, - cancelToken: _cancelToken, - ); - await file!.writeAsBytes(response.bytes!); - - return this; - } - - /// Uploads a file to Parse Server - @override - Future upload({ProgressCallback? progressCallback}) async { - if (saved) { - //Creates a Fake Response to return the correct result - final Map response = { - 'url': url!, - 'name': name - }; - return handleResponse( - this, - ParseNetworkResponse(data: json.encode(response), statusCode: 201), - ParseApiRQ.upload, - _debug, - parseClassName); - } - - progressCallback ??= _progressCallback; - - _cancelToken = CancelToken(); - - final Map headers = { - HttpHeaders.contentTypeHeader: - mime(file!.path) ?? 'application/octet-stream', - HttpHeaders.contentLengthHeader: '${file!.lengthSync()}', - }; - - try { - final String uri = ParseCoreData().serverUrl + _path; - final ParseNetworkResponse response = await _client.postBytes( - uri, - options: ParseNetworkOptions(headers: headers), - data: file!.openRead(), - onSendProgress: progressCallback, - cancelToken: _cancelToken, - ); - if (response.statusCode == 201) { - final Map map = json.decode(response.data); - url = map['url'].toString(); - name = map['name'].toString(); - } - - return handleResponse( - this, response, ParseApiRQ.upload, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.upload, _debug, parseClassName); - } - } - - /// Cancels the current request (upload or download of file). - @override - void cancel([dynamic reason]) { - _cancelToken?.cancel(reason); - _cancelToken = null; - } - - /// Add Progress Callback - @override - void progressCallback(ProgressCallback progressCallback) { - _progressCallback = progressCallback; - } -} diff --git a/packages/dart/lib/src/objects/parse_file_base.dart b/packages/dart/lib/src/objects/parse_file_base.dart deleted file mode 100644 index 08cabff6e..000000000 --- a/packages/dart/lib/src/objects/parse_file_base.dart +++ /dev/null @@ -1,55 +0,0 @@ -part of flutter_parse_sdk; - -abstract class ParseFileBase extends ParseObject { - /// Creates a new file - /// - /// {https://docs.parseplatform.org/rest/guide/#files/} - ParseFileBase( - {required String name, - String? url, - bool? debug, - ParseClient? client, - bool? autoSendSessionId}) - : super(keyFileClassname, - debug: debug, - autoSendSessionId: autoSendSessionId, - client: client) { - _path = '/files/$name'; - this.name = name; - if (url != null) this.url = url; - } - - String get name => super.get(keyVarName)!; - set name(String name) => set(keyVarName, name); - - String? get url => super.get(keyVarURL); - set url(http://github.com/String?%20url) => set(keyVarURL, url); - - bool get saved => url != null; - - @override - Map toJson({ - bool full = false, - bool forApiRQ = false, - bool allowCustomObjectId = false, - }) => - {'__type': keyFile, 'name': name, 'url': url}; - - @override - String toString() => json.encode(toJson(full: true)); - - /// Uploads a file to Parse Server - @override - Future save() async { - return upload(); - } - - /// Uploads a file to Parse Server - Future upload({ProgressCallback? progressCallback}); - - Future download({ProgressCallback? progressCallback}); - - void progressCallback(ProgressCallback progressCallback); - - void cancel([dynamic reason]); -} diff --git a/packages/dart/lib/src/objects/parse_file_web.dart b/packages/dart/lib/src/objects/parse_file_web.dart deleted file mode 100644 index c45f5a9c0..000000000 --- a/packages/dart/lib/src/objects/parse_file_web.dart +++ /dev/null @@ -1,99 +0,0 @@ -part of flutter_parse_sdk; - -class ParseWebFile extends ParseFileBase { - ParseWebFile(this.file, - {required String name, - String? url, - bool? debug, - ParseClient? client, - bool? autoSendSessionId}) - : super( - name: name, - url: url, - debug: debug, - client: client, - autoSendSessionId: autoSendSessionId, - ); - - Uint8List? file; - CancelToken? _cancelToken; - ProgressCallback? _progressCallback; - - @override - Future download({ProgressCallback? progressCallback}) async { - if (url == null) { - return this; - } - - progressCallback ??= _progressCallback; - - _cancelToken = CancelToken(); - - final ParseNetworkByteResponse response = await _client.getBytes( - url!, - onReceiveProgress: progressCallback, - cancelToken: _cancelToken, - ); - file = response.bytes as Uint8List?; - - return this; - } - - @override - Future upload({ProgressCallback? progressCallback}) async { - if (saved) { - //Creates a Fake Response to return the correct result - final Map response = { - 'url': url!, - 'name': name - }; - return handleResponse( - this, - ParseNetworkResponse(data: json.encode(response), statusCode: 201), - ParseApiRQ.upload, - _debug, - parseClassName); - } - - progressCallback ??= _progressCallback; - - _cancelToken = CancelToken(); - - final Map headers = { - HttpHeaders.contentTypeHeader: - mime(url ?? name) ?? 'application/octet-stream', - }; - try { - final String uri = ParseCoreData().serverUrl + _path; - final ParseNetworkResponse response = await _client.postBytes( - uri, - options: ParseNetworkOptions(headers: headers), - data: Stream>.fromIterable(>[file!]), - onSendProgress: progressCallback, - cancelToken: _cancelToken, - ); - if (response.statusCode == 201) { - final Map map = json.decode(response.data); - url = map['url'].toString(); - name = map['name'].toString(); - } - return handleResponse( - this, response, ParseApiRQ.upload, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.upload, _debug, parseClassName); - } - } - - /// Cancels the current request (upload or download of file). - @override - void cancel([dynamic reason]) { - _cancelToken?.cancel(reason); - _cancelToken = null; - } - - /// Add Progress Callback - @override - void progressCallback(ProgressCallback progressCallback) { - _progressCallback = progressCallback; - } -} diff --git a/packages/dart/lib/src/objects/parse_function.dart b/packages/dart/lib/src/objects/parse_function.dart deleted file mode 100644 index 68331baca..000000000 --- a/packages/dart/lib/src/objects/parse_function.dart +++ /dev/null @@ -1,67 +0,0 @@ -part of flutter_parse_sdk; - -class ParseCloudFunction extends ParseObject { - /// Creates a new cloud function object - /// - /// {https://docs.parseplatform.org/cloudcode/guide/} - ParseCloudFunction( - this.functionName, { - bool? debug, - ParseClient? client, - bool? autoSendSessionId, - }) : super( - functionName, - client: client, - autoSendSessionId: autoSendSessionId, - debug: debug, - ) { - _path = '/functions/$functionName'; - } - - final String functionName; - - @override - // ignore: overridden_fields - late String _path; - - /// Executes a cloud function - /// - /// To add the parameters, create an object and call [set](value to set) - Future execute( - {Map? parameters, Map? headers}) async { - final String uri = '${ParseCoreData().serverUrl}$_path'; - if (parameters != null) { - _setObjectData(parameters); - } - try { - final ParseNetworkResponse result = await _client.post(uri, - options: ParseNetworkOptions(headers: headers), - data: json.encode(_getObjectData())); - return handleResponse( - this, result, ParseApiRQ.execute, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.execute, _debug, parseClassName); - } - } - - /// Executes a cloud function that returns a ParseObject type - /// - /// To add the parameters, create an object and call [set](value to set) - Future executeObjectFunction( - {Map? parameters, Map? headers}) async { - final String uri = '${ParseCoreData().serverUrl}$_path'; - if (parameters != null) { - _setObjectData(parameters); - } - try { - final ParseNetworkResponse result = await _client.post(uri, - options: ParseNetworkOptions(headers: headers), - data: json.encode(_getObjectData())); - return handleResponse(this, result, - ParseApiRQ.executeObjectionFunction, _debug, parseClassName); - } on Exception catch (e) { - return handleException( - e, ParseApiRQ.executeObjectionFunction, _debug, parseClassName); - } - } -} diff --git a/packages/dart/lib/src/objects/parse_geo_point.dart b/packages/dart/lib/src/objects/parse_geo_point.dart deleted file mode 100644 index f7f60a2e8..000000000 --- a/packages/dart/lib/src/objects/parse_geo_point.dart +++ /dev/null @@ -1,31 +0,0 @@ -part of flutter_parse_sdk; - -const String keyLatitude = 'latitude'; -const String keyLongitude = 'longitude'; - -class ParseGeoPoint { - /// Creates a Parse Object of type GeoPoint - ParseGeoPoint({this.latitude = 0.0, this.longitude = 0.0}) - : assert( - latitude < 90, 'Latitude must be within the range (-90.0, 90.0).'), - assert( - latitude > -90, 'Latitude must be within the range (-90.0, 90.0).'), - assert(latitude < 180, - 'Longitude must be within the range (-180.0, 180.0).'), - assert(latitude > -180, - 'Longitude must be within the range (-180.0, 180.0).'); - - double latitude, longitude; - - Map toJson({bool full = false, bool forApiRQ = false}) => - { - '__type': 'GeoPoint', - 'latitude': latitude, - 'longitude': longitude - }; - - @override - String toString() { - return 'latitude: $latitude, longitude: $longitude'; - } -} diff --git a/packages/dart/lib/src/objects/parse_installation.dart b/packages/dart/lib/src/objects/parse_installation.dart deleted file mode 100644 index 12c891849..000000000 --- a/packages/dart/lib/src/objects/parse_installation.dart +++ /dev/null @@ -1,264 +0,0 @@ -part of flutter_parse_sdk; - -class ParseInstallation extends ParseObject { - /// Creates an instance of ParseInstallation - ParseInstallation({ - bool? debug, - ParseClient? client, - bool? autoSendSessionId, - }) : super( - keyClassInstallation, - client: client, - autoSendSessionId: autoSendSessionId, - debug: debug, - ); - - ParseInstallation.forQuery() : super(keyClassUser); - - static final List readOnlyKeys = [ - keyDeviceToken, - keyDeviceType, - keyInstallationId, - keyAppName, - keyAppVersion, - keyAppIdentifier, - keyParseVersion - ]; - static String? _currentInstallationId; - - //Getters/setters - Map get acl => super - .get>(keyVarAcl, defaultValue: {})!; - - set acl(Map acl) => - set>(keyVarAcl, acl); - - String? get deviceToken => super.get(keyDeviceToken); - - set deviceToken(String? deviceToken) => - set(keyDeviceToken, deviceToken); - - String? get deviceType => super.get(keyDeviceType); - - String? get installationId => super.get(keyInstallationId); - - set _installationId(String? installationId) => - set(keyInstallationId, installationId); - - String? get appName => super.get(keyAppName); - - String? get appVersion => super.get(keyAppVersion); - - String? get appIdentifier => super.get(keyAppIdentifier); - - String? get parseVersion => super.get(keyParseVersion); - - static Future isCurrent(ParseInstallation installation) async { - _currentInstallationId ??= (await _getFromLocalStore())?.installationId; - return _currentInstallationId != null && - installation.installationId == _currentInstallationId; - } - - /// Gets the current installation from storage - static Future currentInstallation() async { - return (await _getFromLocalStore()) ?? (await _createInstallation()); - } - - /// Updates the installation with current device data - Future _updateInstallation() async { - //Device type - if (parseIsWeb) { - set(keyDeviceType, 'web'); - } else if (Platform.isAndroid) { - set(keyDeviceType, 'android'); - } else if (Platform.isIOS) { - set(keyDeviceType, 'ios'); - } else if (Platform.isLinux) { - set(keyDeviceType, 'Linux'); - } else if (Platform.isMacOS) { - set(keyDeviceType, 'MacOS'); - } else if (Platform.isWindows) { - set(keyDeviceType, 'Windows'); - } - - //Locale - set(keyLocaleIdentifier, ParseCoreData().locale); - - //Timezone - set(keyTimeZone, _getNameLocalTimeZone()); - - //App info - set(keyAppName, ParseCoreData().appName); - set(keyAppVersion, ParseCoreData().appVersion); - set(keyAppIdentifier, ParseCoreData().appPackageName); - set(keyParseVersion, keySdkVersion); - } - - String _getNameLocalTimeZone() { - tz.initializeTimeZones(); - var locations = tz.timeZoneDatabase.locations; - - int milliseconds = DateTime.now().timeZoneOffset.inMilliseconds; - String name = ""; - - locations.forEach((key, value) { - for (var element in value.zones) { - if (element.offset == milliseconds) { - name = value.name; - break; - } - } - }); - return name; - } - - @override - Future create({bool allowCustomObjectId = false}) async { - final bool isCurrent = await ParseInstallation.isCurrent(this); - if (isCurrent) { - await _updateInstallation(); - } - - final ParseResponse parseResponse = - await _create(allowCustomObjectId: allowCustomObjectId); - if (parseResponse.success && isCurrent) { - clearUnsavedChanges(); - await saveInStorage(keyParseStoreInstallation); - } - return parseResponse; - } - - /// Saves the current installation - @override - Future save() async { - final bool isCurrent = await ParseInstallation.isCurrent(this); - if (isCurrent) { - await _updateInstallation(); - } - //ParseResponse parseResponse = await super.save(); - final ParseResponse parseResponse = await _save(); - if (parseResponse.success && isCurrent) { - clearUnsavedChanges(); - await saveInStorage(keyParseStoreInstallation); - } - return parseResponse; - } - - /// Gets the locally stored installation - static Future _getFromLocalStore() async { - final CoreStore coreStore = ParseCoreData().getStore(); - - final String? installationJson = - await coreStore.getString(keyParseStoreInstallation); - - if (installationJson != null) { - final Map? installationMap = - json.decode(installationJson); - - if (installationMap != null) { - return ParseInstallation()..fromJson(installationMap); - } - } - - return null; - } - - /// Creates a installation for current device - /// Assumes that this is called because there is no previous installation - /// so it creates and sets the static current installation UUID - static Future _createInstallation() async { - _currentInstallationId ??= const Uuid().v4(); - - final ParseInstallation installation = ParseInstallation(); - installation._installationId = _currentInstallationId; - await installation._updateInstallation(); - await ParseCoreData().getStore().setString(keyParseStoreInstallation, - json.encode(installation.toJson(full: true))); - return installation; - } - - /// Creates a new object and saves it online - Future _create({bool allowCustomObjectId = false}) async { - try { - final String uri = - '${ParseCoreData().serverUrl}$keyEndPointInstallations'; - final String body = json.encode(toJson( - forApiRQ: true, - allowCustomObjectId: allowCustomObjectId, - )); - final Map headers = { - keyHeaderContentType: keyHeaderContentTypeJson - }; - if (_debug) { - logRequest(ParseCoreData().appName, parseClassName, - ParseApiRQ.create.toString(), uri, body); - } - - final ParseNetworkResponse result = await _client.post(uri, - data: body, options: ParseNetworkOptions(headers: headers)); - - //Set the objectId on the object after it is created. - //This allows you to perform operations on the object after creation - if (result.statusCode == 201) { - final Map map = json.decode(result.data); - objectId = map['objectId'].toString(); - } - - return handleResponse( - this, result, ParseApiRQ.create, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.create, _debug, parseClassName); - } - } - - /// Saves the current object online - Future _save() async { - if (objectId == null) { - return create(); - } else { - try { - final String uri = - '${ParseCoreData().serverUrl}$keyEndPointInstallations/$objectId'; - final String body = json.encode(toJson(forApiRQ: true)); - if (_debug) { - logRequest(ParseCoreData().appName, parseClassName, - ParseApiRQ.save.toString(), uri, body); - } - final ParseNetworkResponse result = await _client.put(uri, data: body); - return handleResponse( - this, result, ParseApiRQ.save, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.save, _debug, parseClassName); - } - } - } - - ///Subscribes the device to a channel of push notifications. - Future subscribeToChannel(String value) async { - final List channel = [value]; - setAddAllUnique('channels', channel); - await save(); - } - - ///Unsubscribes the device to a channel of push notifications. - Future unsubscribeFromChannel(String value) async { - final List channel = [value]; - setRemove('channels', channel); - await save(); - } - - ///Returns an > containing all the channel names this device is subscribed to. - Future> getSubscribedChannels() async { - print('getSubscribedChannels'); - final ParseResponse apiResponse = - await ParseObject(keyClassInstallation).getObject(objectId!); - - if (apiResponse.success) { - final ParseObject installation = apiResponse.result; - return Future>.value(installation - .get>('channels', defaultValue: [])); - } else { - return []; - } - } -} diff --git a/packages/dart/lib/src/objects/parse_number.dart b/packages/dart/lib/src/objects/parse_number.dart deleted file mode 100644 index 2b6c1be25..000000000 --- a/packages/dart/lib/src/objects/parse_number.dart +++ /dev/null @@ -1,128 +0,0 @@ -part of flutter_parse_sdk; - -class _ParseNumber implements _Valuable, _ParseSaveStateAwareChild { - num estimateNumber; - - num _savedNumber = 0.0; - - set savedNumber(num number) { - estimateNumber = _savedNumber = number; - } - - num get savedNumber => _savedNumber; - - _ParseNumber(this.estimateNumber, {this.setMode = false}); - - bool setMode; - - _ParseNumberOperation? lastPreformedOperation; - - _ParseNumber preformNumberOperation( - _ParseNumberOperation incrementOperation, - ) { - incrementOperation.mergeWithPrevious(lastPreformedOperation ?? this); - - lastPreformedOperation = incrementOperation; - - estimateNumber = lastPreformedOperation!.value; - - return this; - } - - Object toJson({bool full = false}) { - if (full) { - return { - 'className': 'ParseNumber', - 'estimateNumber': estimateNumber, - 'savedNumber': _savedNumber, - 'setMode': setMode, - 'lastPreformedOperation': lastPreformedOperation?.toJson(full: full) - }; - } - - return setMode - ? estimateNumber - : lastPreformedOperation?.toJson(full: full) ?? estimateNumber; - } - - factory _ParseNumber.fromFullJson(Map json) { - return _ParseNumber(json['estimateNumber'] as num) - .._savedNumber = json['savedNumber'] as num - ..setMode = json['setMode'] as bool - ..lastPreformedOperation = json['lastPreformedOperation'] == null - ? null - : _ParseNumberOperation.fromFullJson(json['lastPreformedOperation']); - } - - @override - num getValue() { - return estimateNumber; - } - - _ParseNumberOperation? _lastPreformedOperationBeforeSaving; - num? _numberForApiRequestBeforeSaving; - num? _estimateNumberBeforeSaving; - - @override - @mustCallSuper - void onSaved() { - setMode = false; - - if (_lastPreformedOperationBeforeSaving == lastPreformedOperation) { - // No operations were performed during the save process - lastPreformedOperation = null; - } else { - // Some operations performed during the save process. - // Subtract the saved APiNumber from the modified APiNumber while saving, - // in order to keep only the modifications that were made while saving the object - if (lastPreformedOperation != null) { - lastPreformedOperation!.valueForApiRequest -= - _numberForApiRequestBeforeSaving ?? 0.0; - } - } - - if (_estimateNumberBeforeSaving != null) { - _savedNumber = _estimateNumberBeforeSaving!; - } - - _lastPreformedOperationBeforeSaving = null; - _estimateNumberBeforeSaving = null; - _numberForApiRequestBeforeSaving = null; - } - - @override - @mustCallSuper - void onSaving() { - _lastPreformedOperationBeforeSaving = lastPreformedOperation; - _estimateNumberBeforeSaving = estimateNumber; - _numberForApiRequestBeforeSaving = - lastPreformedOperation?.valueForApiRequest; - } - - @override - @mustCallSuper - void onRevertSaving() { - _lastPreformedOperationBeforeSaving = null; - _numberForApiRequestBeforeSaving = null; - _estimateNumberBeforeSaving = null; - } - - @override - @mustCallSuper - void onErrorSaving() { - _lastPreformedOperationBeforeSaving = null; - _numberForApiRequestBeforeSaving = null; - _estimateNumberBeforeSaving = null; - } - - @override - @mustCallSuper - void onClearUnsaved() { - estimateNumber = _savedNumber; - - lastPreformedOperation = null; - _lastPreformedOperationBeforeSaving = null; - _estimateNumberBeforeSaving = null; - _numberForApiRequestBeforeSaving = null; - } -} diff --git a/packages/dart/lib/src/objects/parse_object.dart b/packages/dart/lib/src/objects/parse_object.dart deleted file mode 100644 index dc60239a8..000000000 --- a/packages/dart/lib/src/objects/parse_object.dart +++ /dev/null @@ -1,680 +0,0 @@ -part of flutter_parse_sdk; - -/// [ParseObject] is a local representation of data that can be saved and -/// retrieved from the Parse cloud. -/// -/// The basic workflow for creating new data is to construct a new [ParseObject], -/// use set(key, value) to fill it with data, and then use [save] to persist -/// to the cloud. -/// -/// The basic workflow for accessing existing data is to use a [QueryBuilder] -/// to specify which existing data to retrieve. -class ParseObject extends ParseBase implements ParseCloneable { - /// Creates a new Parse Object - /// - /// [className], refers to the Table Name in your Parse Server - /// - /// [debug], will overwrite the current default debug settings - /// - /// [client], can be overwritten to create your own HTTP Client - ParseObject( - String className, { - bool? debug, - ParseClient? client, - bool? autoSendSessionId, - }) : super() { - parseClassName = className; - _path = '$keyEndPointClasses$className'; - _aggregatepath = '$keyEndPointAggregate$className'; - - _debug = isDebugEnabled(objectLevelDebug: debug); - _client = client ?? - ParseCoreData().clientCreator( - sendSessionId: - autoSendSessionId ?? ParseCoreData().autoSendSessionId, - securityContext: ParseCoreData().securityContext); - } - - ParseObject.clone(String className) : this(className); - - @override - dynamic clone(Map map) => - ParseObject.clone(parseClassName)..fromJson(map); - - late String _path; - late String _aggregatepath; - late bool _debug; - late ParseClient _client; - - /// Gets an object from the server using it's [objectId] - /// - /// [include], is a list of [ParseObject]s keys to be included directly and - /// not as a pointer. - Future getObject( - String objectId, { - List? include, - }) async { - try { - String? query; - if (include != null) { - query = 'include=${concatenateArray(include)}'; - } - - final Uri url = - getSanitisedUri(_client, '$_path/$objectId', query: query); - - final ParseNetworkResponse result = await _client.get(url.toString()); - return handleResponse( - this, result, ParseApiRQ.get, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.get, _debug, parseClassName); - } - } - - /// Gets all objects from this table - Limited response at the moment - Future getAll() async { - try { - final Uri url = getSanitisedUri(_client, _path); - final ParseNetworkResponse result = await _client.get(url.toString()); - return handleResponse( - this, result, ParseApiRQ.getAll, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.getAll, _debug, parseClassName); - } - } - - /// Creates a new object and saves it online - /// - /// Prefer using [save] over [create] - Future create({bool allowCustomObjectId = false}) async { - try { - final Uri url = getSanitisedUri(_client, _path); - final String body = json.encode(toJson( - forApiRQ: true, - allowCustomObjectId: allowCustomObjectId, - )); - - _saveChanges(); - - final ParseNetworkResponse result = - await _client.post(url.toString(), data: body); - - final response = handleResponse( - this, result, ParseApiRQ.create, _debug, parseClassName); - - if (!response.success) { - _notifyChildrenAboutErrorSaving(); - } - - return response; - } on Exception catch (e) { - _notifyChildrenAboutErrorSaving(); - return handleException(e, ParseApiRQ.create, _debug, parseClassName); - } - } - - /// Send the updated object to the server. - /// - /// Will only send the dirty (modified) data and not the entire object - /// - /// The object should hold an [objectId] in order to update it - /// - /// Prefer using [save] over [update] - Future update() async { - assert( - objectId != null && (objectId?.isNotEmpty ?? false), - "Can't update a parse object while the objectId property is null or empty", - ); - - try { - final Uri url = getSanitisedUri(_client, '$_path/$objectId'); - final String body = json.encode(toJson(forApiRQ: true)); - - _saveChanges(); - - final Map headers = { - keyHeaderContentType: keyHeaderContentTypeJson - }; - - final ParseNetworkResponse result = await _client.put(url.toString(), - data: body, options: ParseNetworkOptions(headers: headers)); - - final response = handleResponse( - this, result, ParseApiRQ.save, _debug, parseClassName); - - if (!response.success) { - _notifyChildrenAboutErrorSaving(); - } - - return response; - } on Exception catch (e) { - _notifyChildrenAboutErrorSaving(); - return handleException(e, ParseApiRQ.save, _debug, parseClassName); - } - } - - /// Saves the current object online. - /// - /// If the object not saved yet, this will create it. Otherwise, - /// it will send the updated object to the server. - /// - /// This will save any nested(child) object in this object. So you do not need - /// to each one of them manually. - /// - /// Example of saving child and parent objects using save(): - /// - /// ```dart - /// final dietPlan = ParseObject('Diet_Plans')..set('Fat', 15); - /// final plan = ParseObject('Plan')..set('planName', 'John.W'); - /// dietPlan.set('plan', plan); - /// - /// // the save function will create the nested(child) object first and then - /// // attempts to save the parent object. - /// // - /// // using create in this situation will throw an error, because the child - /// // object is not saved/created yet and you need to create it manually - /// await dietPlan.save(); - /// - /// print(plan.objectId); // DLde4rYA8C - /// print(dietPlan.objectId); // RGd4fdEUB - /// - /// ``` - /// - /// The same principle works with [ParseRelation] - /// - /// Its safe to call this function aging if an error occurred while saving. - /// - /// Prefer using [save] over [update] and [create] - Future save() async { - final ParseResponse childrenResponse = await _saveChildren(this); - if (childrenResponse.success) { - ParseResponse? response; - if (objectId == null) { - response = await create(); - } else if (_isDirty(false)) { - response = await update(); - } - - if (response != null) { - if (response.success) { - _savingChanges.clear(); - } else { - _revertSavingChanges(); - } - return response; - } - } - return childrenResponse; - } - - Future _saveChildren(dynamic object) async { - final Set uniqueObjects = {}; - final Set uniqueFiles = {}; - if (!_collectionDirtyChildren( - object, uniqueObjects, uniqueFiles, {}, {})) { - final ParseResponse response = ParseResponse(); - return response; - } - - if (object is ParseObject) { - uniqueObjects.remove(object); - } - - for (ParseFileBase file in uniqueFiles) { - final ParseResponse response = await file.save(); - if (!response.success) { - return response; - } - } - - List remaining = uniqueObjects.toList(); - final List finished = []; - - final ParseResponse totalResponse = ParseResponse() - ..success = true - ..results = [] - ..statusCode = 200; - - while (remaining.isNotEmpty) { - /* Partition the objects into two sets: those that can be save immediately, - and those that rely on other objects to be created first. */ - final List current = []; - final List nextBatch = []; - - for (ParseObject object in remaining) { - if (object._canbeSerialized(finished)) { - current.add(object); - } else { - nextBatch.add(object); - } - } - - remaining = nextBatch; - - // TODO(yulingtianxia): lazy User - /* Batch requests have currently a limit of 50 packaged requests per single request - This splitting will split the overall array into segments of upto 50 requests - and execute them concurrently with a wrapper task for all of them. */ - final List> chunks = >[]; - for (int i = 0; i < current.length; i += 50) { - chunks.add(current.sublist(i, min(current.length, i + 50))); - } - - for (List chunk in chunks) { - final List requests = chunk.map((ParseObject obj) { - return obj._getRequestJson(obj.objectId == null ? 'POST' : 'PUT'); - }).toList(); - - for (ParseObject obj in chunk) { - obj._saveChanges(); - } - final ParseResponse response = await batchRequest( - requests, - chunk, - client: _client, - ); - totalResponse.success &= response.success; - - if (response.success) { - totalResponse.results!.addAll(response.results!); - totalResponse.count += response.count; - - for (int i = 0; i < response.count; i++) { - if (response.results![i] is ParseError) { - // Batch request succeed, but part of batch failed. - chunk[i]._revertSavingChanges(); - - // if any request in a batch requests group fails, - // then the overall response will be considered unsuccessful. - totalResponse.success = false; - } else { - chunk[i]._savingChanges.clear(); - } - } - } else { - // If there was an error, we want to roll forward the save changes before rethrowing. - for (ParseObject obj in chunk) { - obj._revertSavingChanges(); - } - - totalResponse.statusCode = response.statusCode; - totalResponse.error = response.error; - } - } - - finished.addAll(current); - } - - return totalResponse; - } - - void _saveChanges() { - _savingChanges.clear(); - _savingChanges.addAll(_unsavedChanges); - _unsavedChanges.clear(); - _notifyChildrenAboutSaving(); - } - - void _revertSavingChanges() { - _savingChanges.addAll(_unsavedChanges); - _unsavedChanges.addAll(_savingChanges); - _savingChanges.clear(); - _notifyChildrenAboutRevertSaving(); - } - - dynamic _getRequestJson(String method) { - final Uri tempUri = Uri.parse(ParseCoreData().serverUrl); - final String parsePath = tempUri.path; - final dynamic request = { - 'method': method, - 'path': '$parsePath$_path${objectId != null ? '/$objectId' : ''}', - 'body': toJson(forApiRQ: true) - }; - return request; - } - - bool _canbeSerialized(List aftersaving, {dynamic value}) { - if (value != null) { - if (value is ParseObject) { - if (value is ParseFileBase) { - if (!value.saved && !aftersaving.contains(value)) { - return false; - } - } else if (value.objectId == null && !aftersaving.contains(value)) { - return false; - } - } else if (value is Map) { - for (dynamic child in value.values) { - if (!_canbeSerialized(aftersaving, value: child)) { - return false; - } - } - } else if (value is _Valuable) { - if (!_canbeSerialized(aftersaving, value: value.getValue())) { - return false; - } - } else if (value is _ParseRelation) { - if (!_canbeSerialized(aftersaving, value: value.valueForApiRequest())) { - return false; - } - } else if (value is Iterable) { - for (dynamic child in value) { - if (!_canbeSerialized(aftersaving, value: child)) { - return false; - } - } - } - } else if (!_canbeSerialized(aftersaving, value: _getObjectData())) { - return false; - } - // TODO(yulingtianxia): handle ACL - return true; - } - - bool _collectionDirtyChildren( - dynamic object, - Set uniqueObjects, - Set uniqueFiles, - Set seen, - Set seenNew) { - if (object is Iterable) { - for (dynamic child in object) { - if (!_collectionDirtyChildren( - child, uniqueObjects, uniqueFiles, seen, seenNew)) { - return false; - } - } - } else if (object is Map) { - for (dynamic child in object.values) { - if (!_collectionDirtyChildren( - child, uniqueObjects, uniqueFiles, seen, seenNew)) { - return false; - } - } - } else if (object is _Valuable) { - if (!_collectionDirtyChildren( - object.getValue(), uniqueObjects, uniqueFiles, seen, seenNew)) { - return false; - } - } else if (object is _ParseRelation) { - if (!_collectionDirtyChildren(object.valueForApiRequest(), uniqueObjects, - uniqueFiles, seen, seenNew)) { - return false; - } - } else if (object is ParseACL) { - // TODO(yulingtianxia): handle ACL - } else if (object is ParseFileBase) { - if (!object.saved) { - uniqueFiles.add(object); - } - } else if (object is ParseObject) { - /* Check for cycles of new objects. Any such cycle means it will be - impossible to save this collection of objects, so throw an exception. */ - if (object.objectId != null) { - seenNew = {}; - } else { - if (seenNew.contains(object)) { - // TODO(yulingtianxia): throw an error? - return false; - } - seenNew.add(object); - } - - /* Check for cycles of any object. If this occurs, then there's no - problem, but we shouldn't recurse any deeper, because it would be - an infinite recursion. */ - if (seen.contains(object)) { - return true; - } - seen.add(object); - - if (!_collectionDirtyChildren( - object._getObjectData(), uniqueObjects, uniqueFiles, seen, seenNew)) { - return false; - } - - if (object._isDirty(false)) { - uniqueObjects.add(object); - } - } - return true; - } - - void _notifyChildrenAboutSave() { - for (final child in _getObjectData().values) { - if (child is _ParseSaveStateAwareChild) { - child.onSaved(); - } - } - } - - void _notifyChildrenAboutSaving() { - for (final child in _getObjectData().values) { - if (child is _ParseSaveStateAwareChild) { - child.onSaving(); - } - } - } - - void _notifyChildrenAboutErrorSaving() { - for (final child in _getObjectData().values) { - if (child is _ParseSaveStateAwareChild) { - child.onErrorSaving(); - } - } - } - - void _notifyChildrenAboutRevertSaving() { - for (final child in _getObjectData().values) { - if (child is _ParseSaveStateAwareChild) { - child.onRevertSaving(); - } - } - } - - /// Get the instance of [ParseRelation] class associated with the given [key] - ParseRelation getRelation(String key) { - final potentialRelation = _getObjectData()[key]; - - if (potentialRelation == null) { - final relation = ParseRelation(parent: this, key: key); - - set(key, relation); - - return relation; - } - - if (potentialRelation is _ParseRelation) { - return potentialRelation - ..parent = this - ..key = key; - } - - throw ParseRelationException( - 'The key $key is associated with a value ($potentialRelation) ' - 'can not be a relation'); - } - - /// Remove every instance of an [element] from an array - /// associated with a given [key] - void setRemove(String key, dynamic element) { - set(key, _ParseRemoveOperation([element])); - } - - /// Removes all instances of the [elements] contained in a [List] from the - /// array associated with a given [key] - void setRemoveAll(String key, List elements) { - set(key, _ParseRemoveOperation(elements)); - } - - /// Add multiple [elements] to the end of the array - /// associated with a given [key] - void setAddAll(String key, List elements) { - set(key, _ParseAddOperation(elements)); - } - - /// Add an [element] to the array associated with a given [key], only if - /// it is not already present in the array. The position of the insert is not - /// guaranteed - void setAddUnique(String key, dynamic element) { - set(key, _ParseAddUniqueOperation([element])); - } - - /// Add multiple [elements] to the array associated with a given [key], only - /// adding elements which are not already present in the array. The position - /// of the insert is not guaranteed - void setAddAllUnique(String key, List elements) { - set(key, _ParseAddUniqueOperation(elements)); - } - - /// Add an [element] to the end of the array associated with a given [key] - void setAdd(String key, T element) { - set(key, _ParseAddOperation([element])); - } - - /// Add multiple [objets] to a relation associated with a given [key] - void addRelation(String key, List objets) { - set(key, _ParseAddRelationOperation(objets.toSet())); - } - - /// Remove multiple [objets] from a relation associated with a given [key] - void removeRelation(String key, List objets) { - set(key, _ParseRemoveRelationOperation(objets.toSet())); - } - - /// Increment a num value associated with a given [key] by the given [amount] - void setIncrement(String key, num amount) { - set(key, _ParseIncrementOperation(amount)); - } - - /// Decrement a num value associated with a given [key] by the given [amount] - void setDecrement(String key, num amount) { - set(key, _ParseIncrementOperation(-amount)); - } - - /// Can be used set an objects variable to undefined rather than null - /// - /// If object is not saved remotely, set offlineOnly to true to avoid api calls. - Future unset(String key, {bool offlineOnly = false}) async { - final dynamic object = _objectData[key]; - _objectData.remove(key); - _unsavedChanges.remove(key); - _savingChanges.remove(key); - - if (offlineOnly) { - return ParseResponse()..success = true; - } - - if (objectId == null) { - return ParseResponse()..success = false; - } - - try { - final Uri url = getSanitisedUri(_client, '$_path/$objectId'); - - final String body = '{"$key":{"__op":"Delete"}}'; - - final ParseNetworkResponse result = - await _client.put(url.toString(), data: body); - - final ParseResponse response = handleResponse( - this, result, ParseApiRQ.unset, _debug, parseClassName); - - if (response.success) { - return ParseResponse()..success = true; - } else { - _objectData[key] = object; - _unsavedChanges[key] = object; - _savingChanges[key] = object; - - return response; - } - } on Exception catch (e) { - _objectData[key] = object; - _unsavedChanges[key] = object; - _savingChanges[key] = object; - - return handleException(e, ParseApiRQ.unset, _debug, parseClassName); - } - } - - /// Can be used to create custom queries - Future query(String query, - {ProgressCallback? progressCallback}) async { - try { - final Uri url = getSanitisedUri(_client, _path, query: query); - final ParseNetworkResponse result = await _client.get( - url.toString(), - onReceiveProgress: progressCallback, - ); - return handleResponse( - this, result, ParseApiRQ.query, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.query, _debug, parseClassName); - } - } - - Future distinct(String query) async { - try { - final Uri url = getSanitisedUri(_client, _aggregatepath, query: query); - final ParseNetworkResponse result = await _client.get(url.toString()); - return handleResponse( - this, result, ParseApiRQ.query, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.query, _debug, parseClassName); - } - } - - /// Deletes the current object locally and online - Future delete({ - String? id, - String? path, - }) async { - assert(() { - final objId = objectId; - final isNotValidObjectId = objId == null || objId.isEmpty; - final isNotValidIdArg = id == null || id.isEmpty; - - if (isNotValidObjectId && isNotValidIdArg) { - throw Exception( - "Can't delete a parse object while the objectId property " - "and id argument is null or empty", - ); - } - - return true; - }()); - - try { - path ??= _path; - id ??= objectId; - final Uri url = getSanitisedUri(_client, '$_path/$id'); - final ParseNetworkResponse result = await _client.delete(url.toString()); - return handleResponse( - this, result, ParseApiRQ.delete, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.delete, _debug, parseClassName); - } - } - - /// Fetches this object with the data from the server. - /// - /// Call this whenever you want the state of the object to reflect exactly - /// what is on the server. - /// - /// [include], is a list of [ParseObject]s keys to be included directly and - /// not as a pointer. - Future fetch({List? include}) async { - if (objectId == null || objectId!.isEmpty) { - throw 'can not fetch without a objectId'; - } - - final ParseResponse response = await getObject(objectId!, include: include); - - if (response.success && response.results != null) { - return response.results!.first; - } else { - return this; - } - } -} diff --git a/packages/dart/lib/src/objects/parse_operation/parse_add_operation.dart b/packages/dart/lib/src/objects/parse_operation/parse_add_operation.dart deleted file mode 100644 index 16f892de6..000000000 --- a/packages/dart/lib/src/objects/parse_operation/parse_add_operation.dart +++ /dev/null @@ -1,39 +0,0 @@ -part of flutter_parse_sdk; - -/// An operation that adds a new element to an array -class _ParseAddOperation extends _ParseArrayOperation { - _ParseAddOperation(List value) : super(value); - - @override - String get operationName => 'Add'; - - @override - bool canMergeWith(Object other) { - return other is _ParseAddOperation || other is _ParseArray; - } - - @override - _ParseOperation merge(Object previous) { - final List previousValue; - - if (previous is _ParseArray) { - previousValue = previous.estimatedArray; - - if (previous.savedArray.isEmpty) { - valueForApiRequest.addAll(previous.estimatedArray); - } - } else { - final previousAdd = (previous as _ParseAddOperation); - - previousValue = previousAdd.value; - - valueForApiRequest.addAll(previousAdd.valueForApiRequest); - } - - valueForApiRequest.addAll(value); - - value = [...previousValue, ...value]; - - return this; - } -} diff --git a/packages/dart/lib/src/objects/parse_operation/parse_add_relation_operation.dart b/packages/dart/lib/src/objects/parse_operation/parse_add_relation_operation.dart deleted file mode 100644 index 716868096..000000000 --- a/packages/dart/lib/src/objects/parse_operation/parse_add_relation_operation.dart +++ /dev/null @@ -1,40 +0,0 @@ -part of flutter_parse_sdk; - -/// An operation that adds new objects to a [ParseRelation] -class _ParseAddRelationOperation extends _ParseRelationOperation { - _ParseAddRelationOperation(Set value) : super(value); - - @override - String get operationName => 'AddRelation'; - - @override - bool canMergeWith(Object other) { - return other is _ParseAddRelationOperation || other is _ParseRelation; - } - - @override - _ParseOperation> merge(Object previous) { - Set previousValue = {}; - - if (previous is _ParseRelation) { - previousValue = previous.knownObjects.toSet(); - } else { - final previousAdd = (previous as _ParseAddRelationOperation); - - previousValue = previousAdd.value.toSet(); - - valueForApiRequest.addAll(previousAdd.valueForApiRequest); - } - - valueForApiRequest.addAll(value); - - value = {...previousValue, ...value}; - - value = Set.from(removeDuplicateParseObjectByObjectId(value)); - - valueForApiRequest = - Set.from(removeDuplicateParseObjectByObjectId(valueForApiRequest)); - - return this; - } -} diff --git a/packages/dart/lib/src/objects/parse_operation/parse_add_unique_operation.dart b/packages/dart/lib/src/objects/parse_operation/parse_add_unique_operation.dart deleted file mode 100644 index a7cb87ceb..000000000 --- a/packages/dart/lib/src/objects/parse_operation/parse_add_unique_operation.dart +++ /dev/null @@ -1,52 +0,0 @@ -part of flutter_parse_sdk; - -/// An operation that adds a new element to an array field, -/// only if it wasn't already present -class _ParseAddUniqueOperation extends _ParseArrayOperation { - _ParseAddUniqueOperation(List value) : super(value); - - @override - String get operationName => 'AddUnique'; - - @override - bool canMergeWith(Object other) { - return other is _ParseAddUniqueOperation || other is _ParseArray; - } - - @override - _ParseOperation merge(Object previous) { - final List previousValue; - - value = value.toSet().toList(); - - // if the previous is _ParseArray this indicates that this operation - // is the first operation on this array - if (previous is _ParseArray) { - previousValue = previous.estimatedArray; - - if (previous.savedArray.isEmpty) { - valueForApiRequest.addAll(previous.estimatedArray.toSet()); - } - } else { - final previousAddUnique = (previous as _ParseAddUniqueOperation); - - previousValue = previousAddUnique.value; - - valueForApiRequest.addAll(previousAddUnique.valueForApiRequest); - } - - valueForApiRequest.addAll(value); - - value = [ - ...previousValue, - ...value.where((element) => !previousValue.contains(element)), - ]; - - value = removeDuplicateParseObjectByObjectId(value); - - valueForApiRequest = - removeDuplicateParseObjectByObjectId(valueForApiRequest); - - return this; - } -} diff --git a/packages/dart/lib/src/objects/parse_operation/parse_increment_operation.dart b/packages/dart/lib/src/objects/parse_operation/parse_increment_operation.dart deleted file mode 100644 index 765cf3494..000000000 --- a/packages/dart/lib/src/objects/parse_operation/parse_increment_operation.dart +++ /dev/null @@ -1,33 +0,0 @@ -part of flutter_parse_sdk; - -/// An operation that increment a numeric value by a given amount -class _ParseIncrementOperation extends _ParseNumberOperation { - _ParseIncrementOperation(num value) : super(value); - - @override - String get operationName => 'Increment'; - - @override - bool canMergeWith(Object other) { - return other is _ParseIncrementOperation || other is _ParseNumber; - } - - @override - _ParseOperation merge(Object previous) { - final num previousValue; - - if (previous is _ParseNumber) { - previousValue = previous.estimateNumber; - valueForApiRequest += previous.estimateNumber - previous.savedNumber; - } else { - final previousIncrement = (previous as _ParseIncrementOperation); - previousValue = previousIncrement.value; - - valueForApiRequest += previousIncrement.valueForApiRequest; - } - - value = value + previousValue; - - return this; - } -} diff --git a/packages/dart/lib/src/objects/parse_operation/parse_operation.dart b/packages/dart/lib/src/objects/parse_operation/parse_operation.dart deleted file mode 100644 index 68fc92ee4..000000000 --- a/packages/dart/lib/src/objects/parse_operation/parse_operation.dart +++ /dev/null @@ -1,314 +0,0 @@ -part of flutter_parse_sdk; - -/// Represents an operation performed on Parse data. It defines the core -/// functionality of any operation performed on Parse data. -abstract class _ParseOperation implements _Valuable { - /// Used to store the estimated value for operation. - /// - /// This is what the user will see as the result of any operation on the data. - /// For example, if the operation is an array addition and the user wants - /// to add the value 4 to the list, and the list originally looks like this: - /// [1,2,3], then the [value] variable will initially hold [1,2,3]. - /// After the addition operation is performed, the [value] variable will - /// hold [1,2,3,4], which is what the user will see. - /// The add operation itself will be stored in a separate variable, - /// [valueForApiRequest], which will only hold the data that needs - /// to be sent to the server, in this case [4]. - T value; - - /// The actual that will be sent to the server. - late T valueForApiRequest; - - _ParseOperation(this.value); - - /// The name of the preformed operation. - /// - /// This value can be used when sending the operation to the server. - /// - /// e.g: Add, AddUnique, Remove, Increment, AddRelation, RemoveRelation - String get operationName; - - /// Checks if [other] can be merged with the current operation. - /// - /// Some operations can be merged with others, and each operation defines - /// what can be merged. For example, an Add operation can be merged with - /// another Add operation or with a [_ParseArray] object. - bool canMergeWith(Object other); - - /// Preform the merge between [previous] and current operation. - /// - /// This should be called after [canMergeWith] to check if the [previous] - /// operation is eligible to merge with the current operation - /// - /// Will return the current(this) operation merged with the other(previous) - /// operation - _ParseOperation merge(Object previous); - - /// Merges the current operation with the [previous] operation if possible. - /// - /// Throws a [_UnmergeableOperationException] if the [previous] operation - /// cannot be merged with the current operation. - _ParseOperation mergeWithPrevious(Object previous) { - if (!canMergeWith(previous)) { - throw _UnmergeableOperationException(this, previous); - } - - return merge(previous); - } - - /// Convert the operation to json format (Map). - /// - /// Will be used to be sent the operation to the server or to store the - /// operation in the cache. When [full] is true that should indicate that - /// the intention of converting to json is to store the operation - /// in the local cache - Map toJson({bool full = false}); - - /// construct a new value of [newValue] to be used in parse object. - /// - /// * If the [newValue] is [Iterable] will return [_ParseArray] - /// * If the [newValue] is [num] will return [_ParseNumber] - /// * If the [newValue] is [_ParseOperation] will try to merge the this - /// operation with the [previousValue] and return this operation merged - /// with the [previousValue] if possible. - /// * Otherwise will return the [newValue] as it is. - static Object? maybeMergeWithPrevious({ - required R newValue, - required Object? previousValue, - required ParseObject parent, - required String key, - }) { - if (newValue is Iterable) { - return _ParseArray(setMode: true)..estimatedArray = newValue.toList(); - } - - if (newValue is num) { - return _ParseNumber(newValue, setMode: true); - } - - if (newValue is _ParseOperation) { - return _handelOperation(newValue, previousValue, parent, key); - } - - return newValue; - } - - static Object _handelOperation( - R newValue, - Object? previousValue, - ParseObject parent, - String key, - ) { - if (newValue is _ParseNumberOperation) { - return _handelNumOperation(newValue, previousValue); - } - - if (newValue is _ParseArrayOperation) { - return _handelArrayOperation(newValue, previousValue); - } - - if (newValue is _ParseRelationOperation) { - return _handelRelationOperation(newValue, previousValue, parent, key); - } - - throw ParseOperationException( - 'operation ${newValue.runtimeType} not implemented'); - } - - static _ParseNumber _handelNumOperation( - _ParseNumberOperation numberOperation, - Object? previousValue, - ) { - if (previousValue is _ParseNumber) { - return previousValue.preformNumberOperation(numberOperation); - } - - if (previousValue == null) { - return _ParseNumber(0).preformNumberOperation(numberOperation); - } - - throw ParseOperationException( - 'wrong key, unable to preform numeric operation on' - ' the previous value: ${previousValue.runtimeType}'); - } - - static _ParseArray _handelArrayOperation( - _ParseArrayOperation arrayOperation, - Object? previousValue, - ) { - if (previousValue is _ParseArray) { - return previousValue.preformArrayOperation(arrayOperation); - } - - if (previousValue == null) { - return _ParseArray().preformArrayOperation(arrayOperation); - } - - throw ParseOperationException( - 'wrong key, unable to preform Array operation on' - ' the previous value: ${previousValue.runtimeType}'); - } - - static _ParseRelation _handelRelationOperation( - _ParseRelationOperation relationOperation, - Object? previousValue, - ParseObject parent, - String key, - ) { - if (previousValue is _ParseRelation) { - return previousValue.preformRelationOperation(relationOperation); - } - - if (previousValue == null) { - return _ParseRelation(parent: parent, key: key) - .preformRelationOperation(relationOperation); - } - - throw ParseOperationException( - 'wrong key, unable to preform Relation operation on' - ' the previous value: ${previousValue.runtimeType}'); - } - - /// Returns the estimated value of this operation. - @override - T getValue() { - if (value is Iterable) { - // return as new Iterable to prevent the user from mutating the internal list state - return (value as Iterable).cast() as T; - } - - return value; - } -} - -abstract class _ParseArrayOperation extends _ParseOperation { - _ParseArrayOperation(List value) : super(value) { - super.valueForApiRequest = []; - } - - @override - Map toJson({bool full = false}) { - if (full) { - return { - '__op': operationName, - 'objects': parseEncode(value, full: full), - 'valueForAPIRequest': parseEncode(valueForApiRequest, full: full), - }; - } - - return { - '__op': operationName, - 'objects': parseEncode(valueForApiRequest, full: full), - }; - } - - static _ParseArrayOperation? fromFullJson(Map json) { - final List objects = parseDecode(json['objects']); - final List? objectsForAPIRequest = parseDecode(json['valueForAPIRequest']); - - final _ParseArrayOperation arrayOperation; - switch (json['__op']) { - case 'Add': - arrayOperation = _ParseAddOperation(objects); - break; - case 'Remove': - arrayOperation = _ParseRemoveOperation(objects); - break; - case 'AddUnique': - arrayOperation = _ParseAddUniqueOperation(objects); - break; - default: - return null; - } - - arrayOperation.valueForApiRequest = objectsForAPIRequest ?? []; - - return arrayOperation; - } -} - -abstract class _ParseRelationOperation - extends _ParseOperation> { - _ParseRelationOperation(Set value) : super(value) { - super.valueForApiRequest = {}; - } - - static _ParseRelationOperation? fromFullJson(Map json) { - final Set objects = - Set.from(parseDecode(json['objects']) ?? {}); - - final Set? objectsForAPIRequest = - json['valueForAPIRequest'] == null - ? null - : Set.from(parseDecode(json['valueForAPIRequest'])); - - final _ParseRelationOperation relationOperation; - switch (json['__op']) { - case 'AddRelation': - relationOperation = _ParseAddRelationOperation(objects); - break; - case 'RemoveRelation': - relationOperation = _ParseRemoveRelationOperation(objects); - break; - - default: - return null; - } - - relationOperation.valueForApiRequest = objectsForAPIRequest ?? {}; - - return relationOperation; - } - - @override - Map toJson({bool full = false}) { - if (full) { - return { - '__op': operationName, - 'objects': parseEncode(value, full: full), - 'valueForAPIRequest': parseEncode(valueForApiRequest, full: full), - }; - } - return { - '__op': operationName, - 'objects': parseEncode(valueForApiRequest, full: full) - }; - } -} - -abstract class _ParseNumberOperation extends _ParseOperation { - _ParseNumberOperation(num value) : super(value) { - super.valueForApiRequest = value; - } - - @override - Map toJson({bool full = false}) { - if (full) { - return { - '__op': operationName, - 'amount': valueForApiRequest, - 'estimatedValue': value - }; - } - - return {'__op': operationName, 'amount': valueForApiRequest}; - } - - static _ParseNumberOperation? fromFullJson(Map json) { - final num estimatedValueFromJson = json['estimatedValue'] as num; - final num valueForApiRequestFromJson = json['amount'] as num; - - final _ParseNumberOperation parseNumberOperation; - switch (json['__op']) { - case 'Increment': - parseNumberOperation = _ParseIncrementOperation(estimatedValueFromJson); - break; - default: - return null; - } - - parseNumberOperation.valueForApiRequest = valueForApiRequestFromJson; - - return parseNumberOperation; - } -} diff --git a/packages/dart/lib/src/objects/parse_operation/parse_remove_operation.dart b/packages/dart/lib/src/objects/parse_operation/parse_remove_operation.dart deleted file mode 100644 index 6ac974c4b..000000000 --- a/packages/dart/lib/src/objects/parse_operation/parse_remove_operation.dart +++ /dev/null @@ -1,38 +0,0 @@ -part of flutter_parse_sdk; - -/// An operation that removes every instance of an element from an array -class _ParseRemoveOperation extends _ParseArrayOperation { - _ParseRemoveOperation(List value) : super(value); - - @override - String get operationName => 'Remove'; - - @override - bool canMergeWith(Object other) { - return other is _ParseRemoveOperation || other is _ParseArray; - } - - @override - _ParseOperation merge(Object previous) { - final List previousValue; - - valueForApiRequest.addAll(value.toSet()); - - if (previous is _ParseArray) { - previousValue = previous.estimatedArray; - } else { - final previousRemove = (previous as _ParseRemoveOperation); - - previousValue = previousRemove.value; - - valueForApiRequest = { - ...valueForApiRequest, - ...previousRemove.valueForApiRequest, - }.toList(); - } - - value = [...previousValue]..removeWhere((e) => value.contains(e)); - - return this; - } -} diff --git a/packages/dart/lib/src/objects/parse_operation/parse_remove_relation_operation.dart b/packages/dart/lib/src/objects/parse_operation/parse_remove_relation_operation.dart deleted file mode 100644 index 725701ba3..000000000 --- a/packages/dart/lib/src/objects/parse_operation/parse_remove_relation_operation.dart +++ /dev/null @@ -1,45 +0,0 @@ -part of flutter_parse_sdk; - -/// An operation that Removes objects from a [ParseRelation] -class _ParseRemoveRelationOperation extends _ParseRelationOperation { - _ParseRemoveRelationOperation(Set value) : super(value); - - @override - String get operationName => 'RemoveRelation'; - - @override - bool canMergeWith(Object other) { - return other is _ParseRemoveRelationOperation || other is _ParseRelation; - } - - @override - _ParseOperation> merge(Object previous) { - Set previousValue = {}; - - if (previous is _ParseRelation) { - previousValue = previous.knownObjects.toSet(); - } else { - final previousRemove = (previous as _ParseRemoveRelationOperation); - - previousValue = previousRemove.value.toSet(); - - valueForApiRequest.addAll(previousRemove.valueForApiRequest); - } - - valueForApiRequest.addAll(value); - - final parseObjectToRemoveByIds = - value.where((e) => e.objectId != null).map((e) => e.objectId!); - - value = previousValue - ..removeWhere((e) => - value.contains(e) || parseObjectToRemoveByIds.contains(e.objectId)); - - value = Set.from(removeDuplicateParseObjectByObjectId(value)); - - valueForApiRequest = - Set.from(removeDuplicateParseObjectByObjectId(valueForApiRequest)); - - return this; - } -} diff --git a/packages/dart/lib/src/objects/parse_relation.dart b/packages/dart/lib/src/objects/parse_relation.dart deleted file mode 100644 index 16d75f627..000000000 --- a/packages/dart/lib/src/objects/parse_relation.dart +++ /dev/null @@ -1,273 +0,0 @@ -part of flutter_parse_sdk; - -abstract class ParseRelation { - //The owning object of this ParseRelation - ParseObject getParent(); - - //The key of the relation in the parent object. i.e. the column name - String getKey(); - - factory ParseRelation({ - required ParseObject parent, - required String key, - }) { - return _ParseRelation(parent: parent, key: key); - } - - /// The className of the target objects. - @Deprecated('use the targetClass getter') - String get getTargetClass; - - /// The className of the target objects. - String? get targetClass; - - /// Will work only if the current target class is null, otherwise will throw - /// [ParseRelationException] with the message: - /// The target class can not be modified if it is already set - set setTargetClass(String targetClass); - - /// Gets a query that can be used to query the objects in this relation. - /// - /// Return a [QueryBuilder] that restricts the results to objects in this relation - QueryBuilder getQuery(); - - /// Add object to this relation - void add(T parseObject); - - /// Add objects to this relation. - void addAll(List parseObjects); - - /// Remove object from this relation - void remove(T parseObject); - - /// Remove objects from this relation - void removeAll(List parseObjects); - - factory ParseRelation.fromJson( - Map map, { - ParseObject? parent, - String? key, - }) { - return _ParseRelation.fromJson(map, parent: parent, key: key); - } - - Map toJson({bool full = false}); -} - -class _ParseRelation - implements ParseRelation, _ParseSaveStateAwareChild { - String? _targetClass; - - ParseObject? parent; - - String? key; - - // For offline caching, we keep track of every object - // we've known to be in the relation. - Set knownObjects = {}; - - _ParseRelationOperation? lastPreformedOperation; - - _ParseRelation({required this.parent, required this.key}); - - Set valueForApiRequest() { - return lastPreformedOperation?.valueForApiRequest ?? {}; - } - - @override - ParseObject getParent() { - return parent!; - } - - @override - String getKey() { - return key!; - } - - _ParseRelation preformRelationOperation( - _ParseRelationOperation relationOperation, - ) { - resolveTargetClassFromRelationObjets(relationOperation.value); - - relationOperation.mergeWithPrevious(lastPreformedOperation ?? this); - - lastPreformedOperation = relationOperation; - - knownObjects = lastPreformedOperation!.value.toSet() as Set; - - return this; - } - - @override - QueryBuilder getQuery() { - final parentClassName = parent!.parseClassName; - final parentObjectId = parent!.objectId; - - if (parentObjectId == null) { - throw ParseRelationException( - 'The parent objectId is null. Query based on a Relation require ObjectId'); - } - - final QueryBuilder queryBuilder; - - if (_targetClass == null) { - queryBuilder = QueryBuilder(ParseObject(parentClassName)) - ..setRedirectClassNameForKey(key!); - } else { - queryBuilder = QueryBuilder( - ParseCoreData.instance.createObject(_targetClass!), - ); - } - - return queryBuilder..whereRelatedTo(key!, parentClassName, parentObjectId); - } - - @override - void add(T parseObject) { - parent!.addRelation(key!, [parseObject]); - } - - @override - void addAll(List parseObjects) { - parent!.addRelation(key!, parseObjects); - } - - @override - void remove(T parseObject) { - parent!.removeRelation(key!, [parseObject]); - } - - @override - void removeAll(List parseObjects) { - parent!.removeRelation(key!, parseObjects); - } - - @override - String get getTargetClass => _targetClass ?? ''; - - @override - String? get targetClass => _targetClass; - - @override - set setTargetClass(String targetClass) { - assert(targetClass.isNotEmpty); - - _targetClass ??= targetClass; - - if (_targetClass != targetClass) { - throw ParseRelationException( - 'The target class can not be modified if it is already set'); - } - } - - _ParseRelation.fromJson( - Map json, { - ParseObject? parent, - String? key, - }) { - if (parent != null) { - this.parent = parent; - } - if (key != null) { - this.key = key; - } - - knownObjects = Set.from(parseDecode(json['objects']) ?? {}); - _targetClass = json['className']; - } - - _ParseRelation.fromFullJson(Map json) { - knownObjects = Set.from(parseDecode(json['objects'])); - _targetClass = json['targetClass']; - key = json['key']; - knownObjects = Set.from(parseDecode(json['objects']) ?? {}); - lastPreformedOperation = json['lastPreformedOperation'] == null - ? null - : _ParseRelationOperation.fromFullJson(json['lastPreformedOperation']); - } - - @override - Map toJson({bool full = false}) { - if (full) { - return { - 'className': 'ParseRelation', - 'targetClass': targetClass, - 'key': key, - 'objects': parseEncode(knownObjects, full: full), - 'lastPreformedOperation': lastPreformedOperation?.toJson(full: full) - }; - } - - return lastPreformedOperation?.toJson(full: full) ?? {}; - } - - bool shouldIncludeInRequest() { - return lastPreformedOperation?.valueForApiRequest.isNotEmpty ?? false; - } - - void resolveTargetClassFromRelationObjets(Set relationObjects) { - var potentialTargetClass = _targetClass; - - for (final parseObject in relationObjects) { - potentialTargetClass = parseObject.parseClassName; - - if (_targetClass != null && potentialTargetClass != _targetClass) { - throw ParseRelationException( - 'Can not add more then one class for a relation. the current target ' - 'class $targetClass and the passed class $potentialTargetClass'); - } - } - - _targetClass = potentialTargetClass; - } - - _ParseRelationOperation? _lastPreformedOperationBeforeSaving; - List? _valueForApiRequestBeforeSaving; - - @override - void onSaved() { - if (_lastPreformedOperationBeforeSaving == lastPreformedOperation) { - // No operations were performed during the save process - lastPreformedOperation = null; - } else { - // remove the saved objects and keep the new added objects while saving - lastPreformedOperation?.valueForApiRequest - .removeAll(_valueForApiRequestBeforeSaving ?? []); - } - - _lastPreformedOperationBeforeSaving = null; - _valueForApiRequestBeforeSaving = null; - } - - @override - void onSaving() { - _lastPreformedOperationBeforeSaving = lastPreformedOperation; - _valueForApiRequestBeforeSaving = - lastPreformedOperation?.valueForApiRequest.toList(); - } - - @override - void onRevertSaving() { - _lastPreformedOperationBeforeSaving = null; - _valueForApiRequestBeforeSaving = null; - } - - @override - void onErrorSaving() { - _lastPreformedOperationBeforeSaving = null; - _valueForApiRequestBeforeSaving = null; - } - - @override - void onClearUnsaved() { - if (lastPreformedOperation != null) { - knownObjects.removeWhere( - (e) => lastPreformedOperation!.valueForApiRequest.contains(e), - ); - } - - lastPreformedOperation = null; - _lastPreformedOperationBeforeSaving = null; - _valueForApiRequestBeforeSaving = null; - } -} diff --git a/packages/dart/lib/src/objects/parse_response.dart b/packages/dart/lib/src/objects/parse_response.dart deleted file mode 100644 index 41a6950bb..000000000 --- a/packages/dart/lib/src/objects/parse_response.dart +++ /dev/null @@ -1,22 +0,0 @@ -part of flutter_parse_sdk; - -class ParseResponse { - ParseResponse({ - this.error, - }); - - bool success = false; - int statusCode = -1; - - /// If result is a singular result, i.e. getByObjectID - /// - /// This is now deprecated - Please use results. This will contain a list of - /// results, no need to check if its a list or a list of elements anymore. - dynamic result; - - /// All results stored as a list - Even if only one response is returned - // ignore: always_specify_types - List? results; - int count = 0; - ParseError? error; -} diff --git a/packages/dart/lib/src/objects/parse_save_state_aware_child.dart b/packages/dart/lib/src/objects/parse_save_state_aware_child.dart deleted file mode 100644 index 32fe4a5a1..000000000 --- a/packages/dart/lib/src/objects/parse_save_state_aware_child.dart +++ /dev/null @@ -1,72 +0,0 @@ -part of flutter_parse_sdk; - -/// An interface used to notify a child about its parent save state. -/// -/// x x -/// │ │ -/// ┌────▼─────┐ ┌───────▼────────┐ -/// ┌────────┤ onSaving │ │ onClearUnsaved │ -/// │ └─────┬────┘ └────────────────┘ -/// │ │ -/// ┌───────▼───────┐ ┌────▼────┐ -/// │ onErrorSaving │ │ onSaved │ -/// └───────┬───────┘ └─────────┘ -/// │ -/// ┌───────▼────────┐ -/// │ onRevertSaving │ -/// └────────────────┘ -/// -/// Each Parse data type should implement this interface. -/// The parent object will notify any child that implements this interface about -/// the state of the saving operation in the parent object -/// (i.e. saving, error saving, saved, revert saving, clear unsaved) -/// so the child can react to the save state. For instance, -/// when the parent notifies the children about (clear unsaved), -/// every Parse data type should clear its internal state, -/// keep only the saved data, and dispose of any unsaved data. -/// Another example is when the parent notifies the children about (being saved), -/// which means that the parent has been saved successfully. In this case, -/// every child should move its internal data from the unsaved state to the saved state. -/// -/// -/// The following classes make use of this interface: -/// -/// * [_ParseArray], used to encapsulate a list and perform ParseArray operations on it -/// * [_ParseRelation], used to represent a Parse Relation and perform operations on the relation -/// * [_ParseNumber], used to encapsulate a num datatype and perform Parse operations on it. -abstract class _ParseSaveStateAwareChild { - /// called when the parent object has been saved successfully. - /// - /// its safe to move any unsaved data to saved state - void onSaved(); - - /// called when the parent object attempts to save itself. - /// - /// At this stage, you can copy any unsaved data to a temporary variable so - /// that you can move it to the saved state if the parent saves successfully. - /// You need to take into account any operations that could be performed - /// while the parent is being saved, and thus you should cache the current - /// unsaved data in a separate variable. Then, when the parent saves - /// successfully, you should move only the saved data to the saved state. - void onSaving(); - - /// called when the parent object fails to save itself. - /// - /// At this stage, you can dispose any temporary data that was created - /// during [onSaving] - void onErrorSaving(); - - /// called when the parent object fails to save itself during a patch operation. - /// - /// In this scenario, the parent is part of a save operation for another object. - /// This event will only be triggered after [onErrorSaving] if the parent - /// is part of a save operation for another object - void onRevertSaving(); - - /// called when the parent object needs to clear all unsaved data. - /// - /// At this stage, any unsaved data or operations should be discarded, - /// and the data should be reverted back to its original state - /// before any modifications were made - void onClearUnsaved(); -} diff --git a/packages/dart/lib/src/objects/parse_session.dart b/packages/dart/lib/src/objects/parse_session.dart deleted file mode 100644 index 2be307542..000000000 --- a/packages/dart/lib/src/objects/parse_session.dart +++ /dev/null @@ -1,47 +0,0 @@ -part of flutter_parse_sdk; - -class ParseSession extends ParseObject implements ParseCloneable { - ParseSession({ - bool? debug, - ParseClient? client, - }) : super( - keyClassSession, - client: client, - debug: debug, - ); - - @override - ParseSession clone(Map map) { - return fromJson(map); - } - - String get sessionToken => super.get(keyVarSessionToken)!; - - ParseObject get user => super.get(keyVarUser)!; - - Map get createdWith => - super.get>(keyVarCreatedWith)!; - - bool get restricted => super.get(keyVarRestricted)!; - - DateTime get expiresAt => super.get(keyVarExpiresAt)!; - - String get installationId => super.get(keyVarInstallationId)!; - - set installationId(String installationId) => - set(keyVarInstallationId, installationId); - - Future getCurrentSessionFromServer() async { - try { - const String path = '$keyEndPointSessions/me'; - final Uri url = getSanitisedUri(_client, path); - - final ParseNetworkResponse response = await _client.get(url.toString()); - - return handleResponse( - this, response, ParseApiRQ.logout, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.logout, _debug, parseClassName); - } - } -} diff --git a/packages/dart/lib/src/objects/parse_user.dart b/packages/dart/lib/src/objects/parse_user.dart deleted file mode 100644 index 8bdf0c7d3..000000000 --- a/packages/dart/lib/src/objects/parse_user.dart +++ /dev/null @@ -1,522 +0,0 @@ -part of flutter_parse_sdk; - -class ParseUser extends ParseObject implements ParseCloneable { - /// Creates an instance of ParseUser - /// - /// Users can set whether debug should be set on this class with a [bool], - /// they can also create their own custom version of [ParseHttpClient] - /// - /// Creates a new user locally - /// - /// Requires [String] username, [String] password. [String] email address - /// is required as well to create a full new user object on ParseServer. Only - /// username and password is required to login - ParseUser( - String? username, - String? password, - String? emailAddress, { - String? sessionToken, - bool? debug, - ParseClient? client, - }) : super( - keyClassUser, - client: client, - autoSendSessionId: true, - debug: debug, - ) { - if (username != null) this.username = username; - if (emailAddress != null) this.emailAddress = emailAddress; - if (password != null) this.password = password; - if (sessionToken != null) this.sessionToken = sessionToken; - } - - ParseUser.forQuery() : super(keyClassUser); - - ParseUser.clone(Map map) - : this(map[keyVarUsername], null, map[keyVarEmail]); - - @override - dynamic clone(Map map) => - ParseUser.clone(map)..fromJson(map); - - static const String keyEmailVerified = 'emailVerified'; - static const String keyUsername = 'username'; - static const String keyEmailAddress = 'email'; - static const String path = '$keyEndPointClasses$keyClassUser'; - - String? _password; - - String? get password => _password; - - set password(String? password) { - if (_password != password) { - _password = password; - if (password != null) _unsavedChanges[keyVarPassword] = password; - } - } - - Map get acl => super - .get>(keyVarAcl, defaultValue: {})!; - - set acl(Map acl) => - set>(keyVarAcl, acl); - - bool? get emailVerified => super.get(keyEmailVerified); - - set emailVerified(bool? emailVerified) => - set(keyEmailVerified, emailVerified); - - String? get username => super.get(keyVarUsername); - - set username(String? username) => set(keyVarUsername, username); - - String? get emailAddress => super.get(keyVarEmail); - - set emailAddress(String? emailAddress) => - set(keyVarEmail, emailAddress); - - String? get sessionToken => super.get(keyVarSessionToken); - - set sessionToken(String? sessionToken) => - set(keyVarSessionToken, sessionToken); - - Map? get authData => - super.get>(keyVarAuthData); - - set authData(Map? authData) => - set?>(keyVarAuthData, authData); - - static ParseUser createUser( - [String? username, String? password, String? emailAddress]) { - return ParseCoreData.instance - .createParseUser(username, password, emailAddress); - } - - /// Gets the current user from the server - /// - /// Current user is stored locally, but in case of a server update [bool] - /// fromServer can be called and an updated version of the [User] object will be - /// returned. - /// - /// NOTE: If using custom ParseUserObject create instance and user [getUpdatedUser] - static Future getCurrentUserFromServer(String token, - {bool? debug, ParseClient? client}) async { - final ParseUser user = _getEmptyUser(); - user.sessionToken = token; - return user.getUpdatedUser(debug: debug, client: client); - } - - /// Get the updated version of the user from the server - /// - /// Uses token to get the latest version of the user. Prefer this to [getCurrentUserFromServer] - /// if using custom ParseUser object - Future getUpdatedUser( - {bool? debug, ParseClient? client}) async { - final bool debugLocal = isDebugEnabled(objectLevelDebug: debug); - final ParseClient clientLocal = client ?? - ParseCoreData().clientCreator( - sendSessionId: true, - securityContext: ParseCoreData().securityContext); - - // We can't get the current user and session without a sessionId - if ((ParseCoreData().sessionId == null) && (sessionToken == null)) { - ///return null; - throw 'can not get the current user and session without a sessionId'; - } - - final Map headers = {}; - if (sessionToken != null) { - headers[keyHeaderSessionToken] = sessionToken!; - } - - try { - final Uri url = getSanitisedUri(clientLocal, keyEndPointUserName); - final ParseNetworkResponse response = await clientLocal.get( - url.toString(), - options: ParseNetworkOptions(headers: headers), - ); - return await _handleResponse( - this, response, ParseApiRQ.currentUser, debugLocal, parseClassName); - } on Exception catch (e) { - return handleException( - e, ParseApiRQ.currentUser, debugLocal, parseClassName); - } - } - - /// Gets the current user from storage - /// - /// Current user is stored locally, but in case of a server update [bool] - /// fromServer can be called and an updated version of the [User] object will be - /// returned - static Future currentUser({ParseCloneable? customUserObject}) async { - if (customUserObject != null) { - return await _getUserFromLocalStore(cloneable: customUserObject); - } else { - return await _getUserFromLocalStore(); - } - } - - /// Registers a user on Parse Server - /// - /// After creating a new user via [Parse.create] call this method to register - /// that user on Parse - /// By setting [allowWithoutEmail] to `true`, you can sign up without setting an email - /// Set [doNotSendInstallationID] to 'true' in order to prevent the SDK from sending the installationID to the Server. - /// This option is especially useful if you are running you application on web and you don't have permission to add 'X-Parse-Installation-Id' as an allowed header on your parse-server. - Future signUp( - {bool allowWithoutEmail = false, - bool doNotSendInstallationID = false}) async { - forgetLocalSession(); - - try { - if (emailAddress == null) { - if (!allowWithoutEmail) { - assert(() { - print( - '`ParseUser().signUp()` failed, because the email is not set. If you want to allow signUp without a set email, you should run `ParseUser().signUp(allowWithoutEmail = true)`'); - return true; - }()); - throw '`signUp` failed, because `emailAddress` of ParseUser was not provided and `allowWithoutEmail` was `false`'; - } else { - assert(() { - print( - 'It is recommended to only allow user signUp with an email set.'); - return true; - }()); - } - } - - final Uri url = getSanitisedUri(_client, path); - final String body = json.encode(toJson(forApiRQ: true)); - _saveChanges(); - final String? installationId = await _getInstallationId(); - final ParseNetworkResponse response = await _client.post(url.toString(), - options: ParseNetworkOptions(headers: { - keyHeaderRevocableSession: '1', - if (installationId != null && !doNotSendInstallationID) - keyHeaderInstallationId: installationId, - }), - data: body); - - return await _handleResponse( - this, response, ParseApiRQ.signUp, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.signUp, _debug, parseClassName); - } - } - - /// Logs a user in via Parse - /// - /// Once a user is created using [Parse.create] and a username and password is - /// provided, call this method to login. - /// Set [doNotSendInstallationID] to 'true' in order to prevent the SDK from sending the installationID to the Server. - /// This option is especially useful if you are running you application on web and you don't have permission to set 'X-Parse-Installation-Id' as an allowed header on your parse-server. - Future login({bool doNotSendInstallationID = false}) async { - forgetLocalSession(); - - try { - final Map queryParams = { - keyVarUsername: username!, - keyVarPassword: password! - }; - final String? installationId = await _getInstallationId(); - final Uri url = getSanitisedUri(_client, keyEndPointLogin); - _saveChanges(); - final ParseNetworkResponse response = await _client.post( - url.toString(), - data: jsonEncode(queryParams), - options: ParseNetworkOptions(headers: { - keyHeaderRevocableSession: '1', - if (installationId != null && !doNotSendInstallationID) - keyHeaderInstallationId: installationId, - }), - ); - - return await _handleResponse( - this, response, ParseApiRQ.login, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.login, _debug, parseClassName); - } - } - - /// Logs in a user anonymously - /// Set [doNotSendInstallationID] to 'true' in order to prevent the SDK from sending the installationID to the Server. - /// This option is especially useful if you are running you application on web and you don't have permission to add 'X-Parse-Installation-Id' as an allowed header on your parse-server. - Future loginAnonymous( - {bool doNotSendInstallationID = false}) async { - forgetLocalSession(); - try { - final Uri url = getSanitisedUri(_client, keyEndPointUsers); - const Uuid uuid = Uuid(); - final String? installationId = await _getInstallationId(); - - final ParseNetworkResponse response = await _client.post( - url.toString(), - options: ParseNetworkOptions(headers: { - keyHeaderRevocableSession: '1', - if (installationId != null && !doNotSendInstallationID) - keyHeaderInstallationId: installationId, - }), - data: jsonEncode({ - 'authData': { - 'anonymous': {'id': uuid.v4()} - } - }), - ); - - return await _handleResponse( - this, response, ParseApiRQ.loginAnonymous, _debug, parseClassName); - } on Exception catch (e) { - return handleException( - e, ParseApiRQ.loginAnonymous, _debug, parseClassName); - } - } - - /// Logs in a user using a service - /// Set [doNotSendInstallationID] to 'true' in order to prevent the SDK from sending the installationID to the Server. - /// This option is especially useful if you are running you application on web and you don't have permission to add 'X-Parse-Installation-Id' as an allowed header on your parse-server. - static Future loginWith(String provider, Object authData, - {bool doNotSendInstallationID = false, - String? username, - String? password, - String? email}) async { - final ParseUser user = ParseUser.createUser(username, password, email); - final ParseResponse response = await user._loginWith(provider, authData, - doNotSendInstallationID: doNotSendInstallationID); - return response; - } - - /// Set [doNotSendInstallationID] to 'true' in order to prevent the SDK from sending the installationID to the Server. - /// This option is especially useful if you are running you application on web and you don't have permission to add 'X-Parse-Installation-Id' as an allowed header on your parse-server. - Future _loginWith(String provider, Object authData, - {bool doNotSendInstallationID = false}) async { - try { - final Uri url = getSanitisedUri(_client, keyEndPointUsers); - final String? installationId = await _getInstallationId(); - final Map body = toJson(forApiRQ: true); - body['authData'] = {provider: authData}; - final ParseNetworkResponse response = await _client.post( - url.toString(), - options: ParseNetworkOptions(headers: { - keyHeaderRevocableSession: '1', - if (installationId != null && !doNotSendInstallationID) - keyHeaderInstallationId: installationId, - }), - data: jsonEncode(body), - ); - - return await _handleResponse( - this, response, ParseApiRQ.loginWith, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.loginWith, _debug, parseClassName); - } - } - - /// Sends a request to delete the sessions token from the - /// server. Will also delete the local user data unless - /// deleteLocalUserData is false. - Future logout({bool deleteLocalUserData = true}) async { - final String? sessionId = ParseCoreData().sessionId; - - if (sessionId == null) { - return await _handleResponse( - this, - ParseNetworkResponse(data: "{}", statusCode: 200), - ParseApiRQ.logout, - _debug, - parseClassName); - } - - forgetLocalSession(); - - if (deleteLocalUserData == true) { - await this.deleteLocalUserData(); - } - - try { - final Uri url = getSanitisedUri(_client, keyEndPointLogout); - final ParseNetworkResponse response = await _client.post( - url.toString(), - options: ParseNetworkOptions( - headers: {keyHeaderSessionToken: sessionId}), - ); - - return await _handleResponse( - this, response, ParseApiRQ.logout, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.logout, _debug, parseClassName); - } - } - - void forgetLocalSession() { - ParseCoreData().sessionId = null; - } - - /// Delete the local user data. - Future deleteLocalUserData() async { - await unpin(key: keyParseStoreUser); - _setObjectData({}); - } - - /// Sends a verification email to the users email address - Future verificationEmailRequest() async { - try { - final ParseNetworkResponse response = await _client.post( - '${ParseCoreData().serverUrl}$keyEndPointVerificationEmail', - data: json.encode({keyVarEmail: emailAddress}), - ); - return await _handleResponse(this, response, - ParseApiRQ.verificationEmailRequest, _debug, parseClassName); - } on Exception catch (e) { - return handleException( - e, ParseApiRQ.verificationEmailRequest, _debug, parseClassName); - } - } - - /// Sends a password reset email to the users email address - Future requestPasswordReset() async { - try { - final ParseNetworkResponse response = await _client.post( - '${ParseCoreData().serverUrl}$keyEndPointRequestPasswordReset', - data: json.encode({keyVarEmail: emailAddress}), - ); - return await _handleResponse(this, response, - ParseApiRQ.requestPasswordReset, _debug, parseClassName); - } on Exception catch (e) { - return handleException( - e, ParseApiRQ.requestPasswordReset, _debug, parseClassName); - } - } - - /// Saves the current user - /// - /// If changes are made to the current user, call save to sync them with - /// Parse Server - @override - Future save() async { - if (objectId == null) { - return await signUp(); - } else { - final ParseResponse response = await super.save(); - if (response.success) { - await _onResponseSuccess(); - } - return response; - } - } - - @override - Future update() async { - if (objectId == null) { - return await signUp(); - } else { - final ParseResponse response = await super.update(); - if (response.success) { - await _onResponseSuccess(); - } - return response; - } - } - - Future _onResponseSuccess() async { - await saveInStorage(keyParseStoreUser); - } - - /// Removes a user from Parse Server locally and online - Future destroy() async { - if (objectId != null) { - try { - final Uri url = getSanitisedUri(_client, '$_path/$objectId'); - final ParseNetworkResponse response = - await _client.delete(url.toString()); - return await _handleResponse( - this, response, ParseApiRQ.destroy, _debug, parseClassName); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.destroy, _debug, parseClassName); - } - } - - return null; - } - - /// Gets a list of all users (limited return) - static Future all({bool? debug, ParseClient? client}) async { - final ParseUser emptyUser = _getEmptyUser(); - - final bool debugLocal = isDebugEnabled(objectLevelDebug: debug); - final ParseClient clientLocal = client ?? - ParseCoreData().clientCreator( - sendSessionId: true, - securityContext: ParseCoreData().securityContext); - - try { - final Uri url = getSanitisedUri(clientLocal, path); - final ParseNetworkResponse response = - await clientLocal.get(url.toString()); - final ParseResponse parseResponse = handleResponse( - emptyUser, response, ParseApiRQ.getAll, debugLocal, keyClassUser); - return parseResponse; - } on Exception catch (e) { - return handleException(e, ParseApiRQ.getAll, debugLocal, keyClassUser); - } - } - - static Future _getUserFromLocalStore( - {ParseCloneable? cloneable}) async { - final CoreStore coreStore = ParseCoreData().getStore(); - final String? userJson = await coreStore.getString(keyParseStoreUser); - - if (userJson != null) { - final Map userMap = json.decode(userJson); - if (cloneable != null) { - return cloneable.clone(userMap); - } else { - if (userMap.containsKey(keyParamSessionToken)) { - ParseCoreData().setSessionId(userMap[keyParamSessionToken]); - return parseDecode(userMap); - } - } - } - - return null; - } - - /// Handles all the response data for this class - static Future _handleResponse( - ParseUser user, - ParseNetworkResponse response, - ParseApiRQ type, - bool debug, - String className) async { - final ParseResponse parseResponse = - handleResponse(user, response, type, debug, className); - - final Map responseData = jsonDecode(response.data); - if (responseData.containsKey(keyParamSessionToken)) { - user.sessionToken = responseData[keyParamSessionToken]; - ParseCoreData().setSessionId(user.sessionToken!); - } - - if ((parseResponse.statusCode != 200 && parseResponse.statusCode != 201) || - type == ParseApiRQ.getAll || - type == ParseApiRQ.destroy || - type == ParseApiRQ.requestPasswordReset || - type == ParseApiRQ.verificationEmailRequest || - type == ParseApiRQ.logout) { - return parseResponse; - } else { - final ParseUser user = parseResponse.result; - await user._onResponseSuccess(); - return parseResponse; - } - } - - static ParseUser _getEmptyUser() => - ParseCoreData.instance.createParseUser(null, null, null); - - static Future _getInstallationId() async { - final ParseInstallation parseInstallation = - await ParseInstallation.currentInstallation(); - return parseInstallation.installationId; - } -} diff --git a/packages/dart/lib/src/objects/response/parse_error_response.dart b/packages/dart/lib/src/objects/response/parse_error_response.dart deleted file mode 100644 index 665de480b..000000000 --- a/packages/dart/lib/src/objects/response/parse_error_response.dart +++ /dev/null @@ -1,16 +0,0 @@ -part of flutter_parse_sdk; - -/// Handles any errors returned in response -ParseResponse buildErrorResponse( - ParseResponse response, ParseNetworkResponse apiResponse) { - final Map responseData = json.decode(apiResponse.data); - - response.error = ParseError( - code: responseData[keyCode] ?? ParseError.otherCause, - message: responseData[keyError].toString(), - ); - - response.statusCode = responseData[keyCode] ?? ParseError.otherCause; - - return response; -} diff --git a/packages/dart/lib/src/objects/response/parse_exception_response.dart b/packages/dart/lib/src/objects/response/parse_exception_response.dart deleted file mode 100644 index 649135fc2..000000000 --- a/packages/dart/lib/src/objects/response/parse_exception_response.dart +++ /dev/null @@ -1,27 +0,0 @@ -part of flutter_parse_sdk; - -/// Handles exception instead of throwing an exception -ParseResponse buildParseResponseWithException(Exception exception) { - if (exception is DioError) { - Map errorResponse = {}; - try { - errorResponse = json.decode(exception.response?.data?.toString() ?? '{}'); - } on FormatException catch (_) {} - - final errorMessage = - errorResponse['error']?.toString() ?? exception.response?.statusMessage; - - final errorCode = - int.tryParse(errorResponse['code']) ?? exception.response?.statusCode; - - return ParseResponse( - error: ParseError( - message: errorMessage ?? exception.toString(), - exception: exception, - code: errorCode ?? ParseError.otherCause, - )); - } - - return ParseResponse( - error: ParseError(message: exception.toString(), exception: exception)); -} diff --git a/packages/dart/lib/src/objects/response/parse_response_builder.dart b/packages/dart/lib/src/objects/response/parse_response_builder.dart deleted file mode 100644 index 706cd1d28..000000000 --- a/packages/dart/lib/src/objects/response/parse_response_builder.dart +++ /dev/null @@ -1,164 +0,0 @@ -part of flutter_parse_sdk; - -/// Handles all the ParseObject responses -/// -/// There are 4 probable outcomes from a Parse API call, -/// 1. Fail - [ParseResponse()] will be returned with further details -/// 2. Success but no results. [ParseResponse()] is returned. -/// 3. Success with simple OK. -/// 4. Success with results. Again [ParseResponse()] is returned -class _ParseResponseBuilder { - ParseResponse handleResponse( - dynamic object, ParseNetworkResponse apiResponse, ParseApiRQ type) { - final ParseResponse parseResponse = ParseResponse(); - final bool returnAsResult = shouldReturnAsABaseResult(type); - parseResponse.statusCode = apiResponse.statusCode; - - if (isUnsuccessfulResponse(apiResponse)) { - return buildErrorResponse(parseResponse, apiResponse); - } else if (isHealthCheck(apiResponse)) { - parseResponse.success = true; - return parseResponse; - } else if (isSuccessButNoResults(apiResponse)) { - return buildSuccessResponseWithNoResults( - parseResponse, 1, 'Successful request, but no results found'); - } else if (returnAsResult) { - return _handleSuccessWithoutParseObject( - parseResponse, object, apiResponse.data); - } else { - return _handleSuccess(parseResponse, object, apiResponse.data, type); - } - } - - /// Handles successful response without creating a ParseObject - ParseResponse _handleSuccessWithoutParseObject( - ParseResponse response, dynamic object, String responseBody) { - response.success = true; - - if (responseBody == 'OK') { - response.result = responseBody; - return response; - } - - final Map decodedJson = json.decode(responseBody); - - if (decodedJson.containsKey('params')) { - response.result = decodedJson['params']; - } else if (decodedJson.containsKey('result')) { - response.result = decodedJson['result']; - } else { - response.result = decodedJson; - } - - return response; - } - - /// Handles successful response with results - ParseResponse _handleSuccess( - ParseResponse response, - dynamic object, - String responseBody, - ParseApiRQ type, - ) { - response.success = true; - - final dynamic result = json.decode(responseBody); - - if (type == ParseApiRQ.batch) { - final List? list = result; - - if (object is List && object.length == list!.length) { - response.count = object.length; - response.results = []; - - for (int i = 0; i < object.length; i++) { - final Map objectResult = list[i]; - - if (objectResult.containsKey('success')) { - final T? item = _handleSingleResult( - object[i], - objectResult['success'], - false, - ); - - response.results!.add(item); - } else { - final ParseError error = ParseError( - code: objectResult[keyError][keyCode], - message: objectResult[keyError][keyError].toString(), - ); - - response.results!.add(error); - } - } - } - } else if (result is Map) { - final Map map = result; - if (object is Parse) { - response.result = map; - } else if (map.length == 1 && map.containsKey('results')) { - final List results = map['results']; - if (results[0] is String) { - response.results = results; - response.result = results; - response.count = results.length; - } else { - final List items = _handleMultipleResults(object, results); - response.results = items; - response.result = items; - response.count = items.length; - } - } else if (map.length == 2 && map.containsKey('count')) { - final List results = [map['count']]; - response.results = results; - response.result = results; - response.count = map['count']; - } else { - final T? item = _handleSingleResult(object, map, false); - response.count = 1; - response.result = item; - response.results = [item]; - } - } - - return response; - } - - /// Handles a response with a multiple result object - List _handleMultipleResults(T object, List data) { - final List resultsList = []; - for (dynamic value in data) { - resultsList.add(_handleSingleResult(object, value, true) as T); - } - return resultsList; - } - - /// Handles a response with a single result object - T? _handleSingleResult( - T object, Map map, bool createNewObject) { - if (createNewObject && object is ParseCloneable) { - return object.clone(map); - } else if (object is ParseObject) { - // Merge unsaved changes and response. - final Map unsaved = {}; - unsaved.addAll(object._unsavedChanges); - unsaved.forEach((String k, dynamic v) { - if (map[k] != null && map[k] != v) { - // Changes after save & before response. Keep it. - map.remove(k); - } - }); - return object - ..fromJson(map) - .._unsavedChanges.clear() - .._unsavedChanges.addAll(unsaved) - .._notifyChildrenAboutSave(); - } else { - return null; - } - } - - bool isHealthCheck(ParseNetworkResponse apiResponse) { - return ['{"status":"ok"}', 'OK'].contains(apiResponse.data); - } -} diff --git a/packages/dart/lib/src/objects/response/parse_response_utils.dart b/packages/dart/lib/src/objects/response/parse_response_utils.dart deleted file mode 100644 index f125c321a..000000000 --- a/packages/dart/lib/src/objects/response/parse_response_utils.dart +++ /dev/null @@ -1,66 +0,0 @@ -part of flutter_parse_sdk; - -/// Handles an API response and logs data if [bool] debug is enabled -@protected -ParseResponse handleResponse(dynamic object, ParseNetworkResponse response, - ParseApiRQ type, bool debug, String className) { - final ParseResponse parseResponse = - _ParseResponseBuilder().handleResponse(object, response, type); - - if (debug) { - logAPIResponse(className, type.toString(), parseResponse); - } - - return parseResponse; -} - -/// Handles an API response and logs data if [bool] debug is enabled -@protected -ParseResponse handleException( - Exception exception, ParseApiRQ type, bool debug, String className) { - final ParseResponse parseResponse = - buildParseResponseWithException(exception); - - if (debug) { - logAPIResponse(className, type.toString(), parseResponse); - } - - return parseResponse; -} - -bool shouldReturnAsABaseResult(ParseApiRQ type) { - if (type == ParseApiRQ.healthCheck || - type == ParseApiRQ.execute || - type == ParseApiRQ.add || - type == ParseApiRQ.addAll || - type == ParseApiRQ.addUnique || - type == ParseApiRQ.remove || - type == ParseApiRQ.removeAll || - type == ParseApiRQ.increment || - type == ParseApiRQ.decrement || - type == ParseApiRQ.getConfigs || - type == ParseApiRQ.addConfig) { - return true; - } else { - return false; - } -} - -bool isUnsuccessfulResponse(ParseNetworkResponse apiResponse) => - apiResponse.statusCode != 200 && apiResponse.statusCode != 201; - -bool isSuccessButNoResults(ParseNetworkResponse apiResponse) { - final dynamic decodedResponse = jsonDecode(apiResponse.data); - List? results; - if (decodedResponse is Map) { - results = decodedResponse['results']; - } else if (decodedResponse is List) { - results = decodedResponse; - } - - if (results == null) { - return false; - } - - return results.isEmpty; -} diff --git a/packages/dart/lib/src/objects/response/parse_success_no_results.dart b/packages/dart/lib/src/objects/response/parse_success_no_results.dart deleted file mode 100644 index 24271d265..000000000 --- a/packages/dart/lib/src/objects/response/parse_success_no_results.dart +++ /dev/null @@ -1,10 +0,0 @@ -part of flutter_parse_sdk; - -/// Handles successful responses with no results -ParseResponse buildSuccessResponseWithNoResults( - ParseResponse response, int code, String value) { - response.success = true; - response.statusCode = 200; - response.error = ParseError(code: code, message: value); - return response; -} diff --git a/packages/dart/lib/src/storage/core_store.dart b/packages/dart/lib/src/storage/core_store.dart deleted file mode 100644 index 5b06c2d2f..000000000 --- a/packages/dart/lib/src/storage/core_store.dart +++ /dev/null @@ -1,31 +0,0 @@ -part of flutter_parse_sdk; - -abstract class CoreStore { - Future containsKey(String key); - - Future get(String key); - - Future getBool(String key); - - Future getInt(String key); - - Future getDouble(String key); - - Future getString(String key); - - Future?> getStringList(String key); - - Future setBool(String key, bool value); - - Future setInt(String key, int value); - - Future setDouble(String key, double value); - - Future setString(String key, String value); - - Future setStringList(String key, List values); - - Future remove(String key); - - Future clear(); -} diff --git a/packages/dart/lib/src/storage/core_store_memory.dart b/packages/dart/lib/src/storage/core_store_memory.dart deleted file mode 100644 index b35c10322..000000000 --- a/packages/dart/lib/src/storage/core_store_memory.dart +++ /dev/null @@ -1,75 +0,0 @@ -part of flutter_parse_sdk; - -class CoreStoreMemoryImp implements CoreStore { - static Map _data = {}; - - @override - Future clear() async { - _data = {}; - } - - @override - Future containsKey(String key) async { - return _data.containsKey(key); - } - - @override - Future get(String key) async { - return _data[key]; - } - - @override - Future getBool(String key) async { - return _data[key]; - } - - @override - Future getDouble(String key) async { - return _data[key]; - } - - @override - Future getInt(String key) async { - return _data[key]; - } - - @override - Future getString(String key) async { - return _data[key]; - } - - @override - Future?> getStringList(String key) async { - return _data[key]; - } - - @override - Future remove(String key) async { - return _data.remove(key); - } - - @override - Future setBool(String key, bool value) async { - _data[key] = value; - } - - @override - Future setDouble(String key, double value) async { - _data[key] = value; - } - - @override - Future setInt(String key, int value) async { - _data[key] = value; - } - - @override - Future setString(String key, String value) async { - _data[key] = value; - } - - @override - Future setStringList(String key, List values) async { - _data[key] = values; - } -} diff --git a/packages/dart/lib/src/storage/core_store_sem_impl.dart b/packages/dart/lib/src/storage/core_store_sem_impl.dart deleted file mode 100644 index 9fc826c8d..000000000 --- a/packages/dart/lib/src/storage/core_store_sem_impl.dart +++ /dev/null @@ -1,119 +0,0 @@ -part of flutter_parse_sdk; - -// ignore_for_file: deprecated_member_use -class CoreStoreSembastImp implements CoreStore { - CoreStoreSembastImp._internal(this._database, this._store); - - static CoreStoreSembastImp? _instance; - - static Future getInstance(String dbPath, - {DatabaseFactory? factory, String? password}) async { - password ??= 'flutter_sdk'; - if (_instance == null) { - factory ??= !parseIsWeb ? databaseFactoryIo : databaseFactoryWeb; - assert(() { - if (parseIsWeb) { - print( - '***********************************************************************************************************'); - print( - 'Warning: CoreStoreSembastImp of the Parse_Server_SDK does not encrypt the database on WEB.'); - print( - '***********************************************************************************************************'); - } - if (password == 'flutter_sdk') { - print( - '***********************************************************************************************************'); - print( - 'Warning: CoreStoreSembastImp uses the default password. Specify a custom password for increased security.'); - print( - '***********************************************************************************************************'); - } - return true; - }()); - final Database db = await factory.openDatabase(dbPath, - codec: !parseIsWeb ? getXXTeaSembastCodec(password: password) : null); - _instance = - CoreStoreSembastImp._internal(db, StoreRef.main()); - } - - return _instance!; - } - - final Database _database; - final StoreRef _store; - - @override - Future clear() { - return _store.drop(_database) as Future; - } - - @override - Future containsKey(String key) { - return _store.record(key).exists(_database); - } - - @override - Future get(String key) { - return _store.record(key).get(_database); - } - - @override - Future getBool(String key) async { - final bool? storedItem = await get(key); - return storedItem; - } - - @override - Future getDouble(String key) async { - final double? storedItem = await get(key); - return storedItem; - } - - @override - Future getInt(String key) async { - final int? storedItem = await get(key); - return storedItem; - } - - @override - Future getString(String key) async { - final String? storedItem = await get(key); - return storedItem; - } - - @override - Future?> getStringList(String key) async { - final List? storedItem = await get(key); - return storedItem; - } - - @override - Future remove(String key) { - return _store.record(key).delete(_database); - } - - @override - Future setBool(String key, bool value) { - return _store.record(key).put(_database, value); - } - - @override - Future setDouble(String key, double value) { - return _store.record(key).put(_database, value); - } - - @override - Future setInt(String key, int value) { - return _store.record(key).put(_database, value); - } - - @override - Future setString(String key, String value) { - return _store.record(key).put(_database, value); - } - - @override - Future setStringList(String key, List values) { - return _store.record(key).put(_database, values); - } -} diff --git a/packages/dart/lib/src/storage/xxtea_codec.dart b/packages/dart/lib/src/storage/xxtea_codec.dart deleted file mode 100644 index 11753cf01..000000000 --- a/packages/dart/lib/src/storage/xxtea_codec.dart +++ /dev/null @@ -1,60 +0,0 @@ -part of flutter_parse_sdk; - -class _XXTeaEncoder extends Converter, String> { - _XXTeaEncoder(this.key); - - final String key; - - @override - String convert(Map input) => - xxtea.encryptToString(json.encode(input), key)!; -} - -class _XXTeaDecoder extends Converter> { - _XXTeaDecoder(this.key); - - final String key; - - @override - Map convert(String input) { - final dynamic result = json.decode(xxtea.decryptToString(input, key)!); - if (result is Map) { - return result.cast(); - } - throw FormatException('invalid input $input'); - } -} - -/// Simple encryption codec using xxtea -/// It requires a password to encrypt/decrypt the data -class _XXTeaCodec extends Codec, String> { - /// A non null [password] to use for the encryption/decryption - _XXTeaCodec(String password) { - _encoder = _XXTeaEncoder(password); - _decoder = _XXTeaDecoder(password); - } - - late _XXTeaEncoder _encoder; - late _XXTeaDecoder _decoder; - - @override - Converter> get decoder => _decoder; - - @override - Converter, String> get encoder => _encoder; -} - -/// Create a codec to use when opening an encrypted sembast database -/// -/// The usage is then -/// -/// ```dart -/// // Initialize the encryption codec with a user password -/// var codec = getXXTeaSembastCodec(password: '[your_user_password]'); -/// // Open the database with the codec -/// Database db = await factory.openDatabase(dbPath, codec: codec); -/// -/// // ...your database is ready to use as encrypted -/// ``` -SembastCodec getXXTeaSembastCodec({required String password}) => - SembastCodec(signature: 'xxtea', codec: _XXTeaCodec(password)); diff --git a/packages/dart/lib/src/utils/parse_date_format.dart b/packages/dart/lib/src/utils/parse_date_format.dart deleted file mode 100644 index 427829357..000000000 --- a/packages/dart/lib/src/utils/parse_date_format.dart +++ /dev/null @@ -1,66 +0,0 @@ -part of flutter_parse_sdk; - -final _ParseDateFormat _parseDateFormat = _ParseDateFormat._internal(); - -/// This is the currently used date format. It is precise to the millisecond. -class _ParseDateFormat { - _ParseDateFormat._internal(); - - /// Deserialize an ISO-8601 full-precision extended format representation of date string into [DateTime]. - DateTime? parse(String strDate) { - try { - return DateTime.parse(strDate); - } on FormatException { - return null; - } - } - - /// Serialize [DateTime] into an ISO-8601 full-precision extended format representation. - String format(DateTime datetime) { - if (!datetime.isUtc) { - datetime = datetime.toUtc(); - } - - final String y = _fourDigits(datetime.year); - final String m = _twoDigits(datetime.month); - final String d = _twoDigits(datetime.day); - final String h = _twoDigits(datetime.hour); - final String min = _twoDigits(datetime.minute); - final String sec = _twoDigits(datetime.second); - final String ms = _threeDigits(datetime.millisecond); - - return '$y-$m-${d}T$h:$min:$sec.${ms}Z'; - } - - static String _fourDigits(int n) { - final int absN = n.abs(); - final String sign = n < 0 ? '-' : ''; - if (absN >= 1000) { - return '$n'; - } - if (absN >= 100) { - return '${sign}0$absN'; - } - if (absN >= 10) { - return '${sign}00$absN'; - } - return '${sign}000$absN'; - } - - static String _threeDigits(int n) { - if (n >= 100) { - return '$n'; - } - if (n >= 10) { - return '0$n'; - } - return '00$n'; - } - - static String _twoDigits(int n) { - if (n >= 10) { - return '$n'; - } - return '0$n'; - } -} diff --git a/packages/dart/lib/src/utils/parse_decoder.dart b/packages/dart/lib/src/utils/parse_decoder.dart deleted file mode 100644 index 252793ee3..000000000 --- a/packages/dart/lib/src/utils/parse_decoder.dart +++ /dev/null @@ -1,102 +0,0 @@ -part of flutter_parse_sdk; - -List _convertJSONArrayToList(List array) { - return array.map(parseDecode).toList(); -} - -Map _convertJSONObjectToMap(Map object) { - final Map map = {}; - object.forEach((String key, dynamic value) { - map.putIfAbsent(key, () => parseDecode(value)); - }); - return map; -} - -/// Decode any type value -dynamic parseDecode(dynamic value) { - if (value is List) { - return _convertJSONArrayToList(value); - } - - if (value is bool) { - return value; - } - - if (value is int) { - return value.toInt(); - } - - if (value is double) { - return value.toDouble(); - } - - if (value is num) { - return value; - } - - if (value is! Map) { - return value; - } - - final Map map = value as Map; - - if (!map.containsKey('__type') && !map.containsKey('className')) { - return _convertJSONObjectToMap(map); - } - - /// Decoding from Api Response - if (map.containsKey('__type')) { - switch (map['__type']) { - case 'Date': - final String iso = map['iso']; - return _parseDateFormat.parse(iso); - case 'Bytes': - final String val = map['base64']; - return base64.decode(val); - case 'Pointer': - case 'Object': - final String className = map['className']; - return ParseCoreData.instance.createObject(className).fromJson(map); - case 'File': - return ParseCoreData.instance - .createFile(url: map['url'], name: map['name']) - .fromJson(map); - case 'GeoPoint': - final num latitude = map['latitude'] ?? 0.0; - final num longitude = map['longitude'] ?? 0.0; - return ParseGeoPoint( - latitude: latitude.toDouble(), longitude: longitude.toDouble()); - case 'Relation': - return ParseRelation.fromJson(map); - } - } - - /// Decoding from locally cached JSON - if (map.containsKey('className')) { - switch (map['className']) { - case 'GeoPoint': - final num latitude = map['latitude'] ?? 0.0; - final num longitude = map['longitude'] ?? 0.0; - return ParseGeoPoint( - latitude: latitude.toDouble(), - longitude: longitude.toDouble(), - ); - - case 'ParseArray': - return _ParseArray.fromFullJson(map); - - case 'ParseNumber': - return _ParseNumber.fromFullJson(map); - - case 'ParseRelation': - return _ParseRelation.fromFullJson(map); - - default: - return ParseCoreData.instance - .createObject(map['className']) - .fromJson(map); - } - } - - return null; -} diff --git a/packages/dart/lib/src/utils/parse_encoder.dart b/packages/dart/lib/src/utils/parse_encoder.dart deleted file mode 100644 index d712acb83..000000000 --- a/packages/dart/lib/src/utils/parse_encoder.dart +++ /dev/null @@ -1,89 +0,0 @@ -part of flutter_parse_sdk; - -/// Custom encoder for DateTime -dynamic dateTimeEncoder(dynamic item) { - if (item is DateTime) { - return _parseDateFormat.format(item); - } - return item; -} - -/// Custom json encoder for types related to parse -dynamic parseEncode(dynamic value, {bool full = false}) { - if (value is Uint8List) { - return _encodeUint8List(value); - } - - if (value is DateTime) { - return _encodeDate(value); - } - - if (value is Iterable) { - return value.map((dynamic value) { - return parseEncode(value, full: full); - }).toList(); - } - - if (value is _ParseArray) { - return value.toJson(full: full); - } - - if (value is _ParseNumber) { - return value.toJson(full: full); - } - - if (value is _ParseOperation) { - return value.toJson(full: full); - } - - if (value is Map) { - value.forEach((dynamic k, dynamic v) { - value[k] = parseEncode(v, full: full); - }); - } - - if (value is ParseGeoPoint) { - return value.toJson(full: full); - } - - if (value is ParseFileBase) { - return value.toJson(full: full); - } - - if (value is ParseRelation) { - return value.toJson(full: full); - } - - if (value is ParseObject) { - if (full) { - return value.toJson(full: full); - } else { - return value.toPointer(); - } - } - - if (value is ParseACL) { - return value.toJson(); - } - - return value; -} - -Map _encodeUint8List(Uint8List value) { - return {'__type': 'Bytes', 'base64': base64.encode(value)}; -} - -Map _encodeDate(DateTime date) { - return { - '__type': 'Date', - 'iso': _parseDateFormat.format(date) - }; -} - -Map encodeObject(String className, String objectId) { - return { - '__type': 'Pointer', - keyVarClassName: className, - keyVarObjectId: objectId - }; -} diff --git a/packages/dart/lib/src/utils/parse_live_list.dart b/packages/dart/lib/src/utils/parse_live_list.dart deleted file mode 100644 index 99df16cc2..000000000 --- a/packages/dart/lib/src/utils/parse_live_list.dart +++ /dev/null @@ -1,791 +0,0 @@ -part of flutter_parse_sdk; - -// ignore_for_file: invalid_use_of_protected_member -class ParseLiveList { - ParseLiveList._(this._query, this._listeningIncludes, this._lazyLoading, - {List? preloadedColumns}) - : _preloadedColumns = preloadedColumns ?? const [] { - _debug = isDebugEnabled(); - } - - static Future> create( - QueryBuilder query, { - bool? listenOnAllSubItems, - List? listeningIncludes, - bool lazyLoading = true, - List? preloadedColumns, - }) { - final ParseLiveList parseLiveList = ParseLiveList._( - query, - listenOnAllSubItems == true - ? _toIncludeMap( - query.limiters['include']?.toString().split(',') ?? []) - : _toIncludeMap(listeningIncludes ?? []), - lazyLoading, - preloadedColumns: preloadedColumns ?? const [], - ); - - return parseLiveList._init().then((_) { - return parseLiveList; - }); - } - - final QueryBuilder _query; - //The included Items, where LiveList should look for updates. - final Map _listeningIncludes; - final bool _lazyLoading; - final List _preloadedColumns; - - List> _list = >[]; - late StreamController> _eventStreamController; - int _nextID = 0; - late bool _debug; - - int get nextID => _nextID++; - - /// is object1 listed after object2? - bool? after(T object1, T object2) { - List fields = []; - - if (_query.limiters.containsKey('order')) { - fields = _query.limiters['order'].toString().split(','); - } - fields.add(keyVarCreatedAt); - for (String key in fields) { - bool reverse = false; - if (key.startsWith('-')) { - reverse = true; - key = key.substring(1); - } - final dynamic val1 = object1.get(key); - final dynamic val2 = object2.get(key); - - if (val1 == null && val2 == null) { - break; - } - if (val1 == null) { - return reverse; - } - if (val2 == null) { - return !reverse; - } - - if (val1 is num && val2 is num) { - if (val1 < val2) { - return reverse; - } - if (val1 > val2) { - return !reverse; - } - } else if (val1 is String && val2 is String) { - if (val1.toString().compareTo(val2) < 0) { - return reverse; - } - if (val1.toString().compareTo(val2) > 0) { - return !reverse; - } - } else if (val1 is DateTime && val2 is DateTime) { - if (val1.isAfter(val2)) { - return !reverse; - } - if (val1.isBefore(val2)) { - return reverse; - } - } - } - return null; - } - - int get size { - return _list.length; - } - - List get includes => - _query.limiters['include']?.toString().split(',') ?? []; - - Map get _includePaths { - return _toIncludeMap(includes); - } - - static Map _toIncludeMap(List includes) { - final Map includesMap = {}; - - for (String includeString in includes) { - final List pathParts = includeString.split('.'); - Map root = includesMap; - for (String pathPart in pathParts) { - root.putIfAbsent(pathPart, () => {}); - root = root[pathPart]; - } - } - - return includesMap; - } - - Stream> get stream => _eventStreamController.stream; - Subscription? _liveQuerySubscription; - StreamSubscription? _liveQueryClientEventSubscription; - final Future _updateQueue = Future.value(); - - Future _runQuery() async { - final QueryBuilder query = QueryBuilder.copy(_query); - if (_debug) { - print('ParseLiveList: lazyLoading is ${_lazyLoading ? 'on' : 'off'}'); - } - if (_lazyLoading) { - final List keys = _preloadedColumns.toList(); - if (_lazyLoading && query.limiters.containsKey('order')) { - keys.addAll( - query.limiters['order'].toString().split(',').map((String string) { - if (string.startsWith('-')) { - return string.substring(1); - } - return string; - }), - ); - } - if (keys.isNotEmpty) { - query.keysToReturn(keys); - } - } - return await query.query(); - } - - Future _init() async { - _eventStreamController = StreamController>(); - - final ParseResponse parseResponse = await _runQuery(); - if (parseResponse.success) { - _list = parseResponse.results - ?.map>((dynamic element) => - ParseLiveListElement(element, - updatedSubItems: _listeningIncludes, - loaded: !_lazyLoading)) - .toList() ?? - >[]; - } - - LiveQuery() - .client - .subscribe(QueryBuilder.copy(_query), - copyObject: _query.object.clone(_query.object.toJson())) - .then((Subscription subscription) { - _liveQuerySubscription = subscription; - - //This should synchronize the events. Not sure if it is necessary, but it should help preventing unexpected results. - subscription.on(LiveQueryEvent.create, - (T object) => _updateQueue.whenComplete(() => _objectAdded(object))); - subscription.on( - LiveQueryEvent.update, - (T object) => - _updateQueue.whenComplete(() => _objectUpdated(object))); - subscription.on(LiveQueryEvent.enter, - (T object) => _updateQueue.whenComplete(() => _objectAdded(object))); - subscription.on( - LiveQueryEvent.leave, - (T object) => - _updateQueue.whenComplete(() => _objectDeleted(object))); - subscription.on( - LiveQueryEvent.delete, - (T object) => - _updateQueue.whenComplete(() => _objectDeleted(object))); -// subscription.on(LiveQueryEvent.create, _objectAdded); -// subscription.on(LiveQueryEvent.update, _objectUpdated); -// subscription.on(LiveQueryEvent.enter, _objectAdded); -// subscription.on(LiveQueryEvent.leave, _objectDeleted); -// subscription.on(LiveQueryEvent.delete, _objectDeleted); - }); - - _liveQueryClientEventSubscription = LiveQuery() - .client - .getClientEventStream - .listen((LiveQueryClientEvent event) async { - if (event == LiveQueryClientEvent.connected) { - _updateQueue.whenComplete(() async { - List> tasks = >[]; - final ParseResponse parseResponse = await _runQuery(); - if (parseResponse.success) { - final List newList = parseResponse.results as List? ?? []; - - //update List - for (int i = 0; i < _list.length; i++) { - final ParseObject currentObject = _list[i].object; - final String? currentObjectId = currentObject.objectId; - - bool stillInList = false; - - for (int j = 0; j < newList.length; j++) { - if (newList[j].get(keyVarObjectId) == currentObjectId) { - stillInList = true; - if (newList[j] - .get(keyVarUpdatedAt)! - .isAfter(currentObject.get(keyVarUpdatedAt)!)) { - final QueryBuilder queryBuilder = - QueryBuilder.copy(_query) - ..whereEqualTo(keyVarObjectId, currentObjectId); - tasks.add(queryBuilder - .query() - .then((ParseResponse result) async { - List? results = result.results; - if (result.success && results != null) { - await _objectUpdated(results.first); - } - })); - } - newList.removeAt(j); - j--; - break; - } - } - if (!stillInList) { - _objectDeleted(currentObject as T); - i--; - } - } - - for (int i = 0; i < newList.length; i++) { - tasks.add(_objectAdded(newList[i], loaded: false)); - } - } - await Future.wait(tasks); - tasks = >[]; - for (ParseLiveListElement element in _list) { - tasks.add(element.reconnected()); - } - await Future.wait(tasks); - }); - } - }); - } - - static Future _loadIncludes(ParseObject? object, - {ParseObject? oldObject, Map? paths}) async { - if (object == null || paths == null || paths.isEmpty) { - return; - } - - final List> loadingNodes = >[]; - - for (String key in paths.keys) { - if (object.containsKey(key)) { - ParseObject? includedObject = object.get(key); - if (includedObject != null) { - //If the object is not fetched - if (!includedObject.containsKey(keyVarUpdatedAt)) { - //See if oldObject contains key - ParseObject? keyInOld = oldObject?.get(key); - if (keyInOld != null) { - //If the object is not fetched || the ids don't match / the pointer changed - if (!keyInOld.containsKey(keyVarUpdatedAt) || - includedObject.objectId != keyInOld.objectId) { - //fetch from web including sub objects - //same as down there - final QueryBuilder queryBuilder = QueryBuilder< - ParseObject>(ParseObject(includedObject.parseClassName)) - ..whereEqualTo(keyVarObjectId, includedObject.objectId) - ..includeObject(_toIncludeStringList(paths[key])); - loadingNodes.add(queryBuilder - .query() - .then((ParseResponse parseResponse) { - List? results = parseResponse.results; - if (parseResponse.success && - results != null && - results.length == 1) { - object[key] = results[0]; - } - })); - continue; - } else { - includedObject = keyInOld; - object[key] = includedObject; - //recursion - loadingNodes - .add(_loadIncludes(includedObject, paths: paths[key])); - continue; - } - } else { - //fetch from web including sub objects - //same as up there - final QueryBuilder queryBuilder = QueryBuilder< - ParseObject>(ParseObject(includedObject.parseClassName)) - ..whereEqualTo(keyVarObjectId, includedObject.objectId) - ..includeObject(_toIncludeStringList(paths[key])); - loadingNodes.add(queryBuilder - .query() - .then((ParseResponse parseResponse) { - List? results = parseResponse.results; - if (parseResponse.success && - results != null && - results.length == 1) { - object[key] = results[0]; - } - })); - continue; - } - } - } else { - //recursion - loadingNodes.add(_loadIncludes(includedObject, - oldObject: oldObject?.get(key), paths: paths[key])); - continue; - } - } else { - //All fine for this key - continue; - } - } - await Future.wait(loadingNodes); - } - - static List _toIncludeStringList(Map includes) { - final List includeList = []; - for (String key in includes.keys) { - includeList.add(key); - // ignore: avoid_as - if ((includes[key] as Map).isNotEmpty) { - includeList.addAll( - _toIncludeStringList(includes[key]).map((String e) => '$key.$e')); - } - } - return includeList; - } - - Future _objectAdded(T object, - {bool loaded = true, bool fetchedIncludes = false}) async { - //This line seems unnecessary, but without this, weird things happen. - //(Hide first element, hide second, view first, view second => second is displayed twice) - object = object.clone(object.toJson(full: true)); - - if (!fetchedIncludes) { - await _loadIncludes(object, paths: _includePaths); - } - for (int i = 0; i < _list.length; i++) { - if (after(object, _list[i].object) != true) { - _list.insert( - i, - ParseLiveListElement(object, - loaded: loaded, updatedSubItems: _listeningIncludes)); - _eventStreamController.sink.add(ParseLiveListAddEvent( - i, object.clone(object.toJson(full: true)))); - return; - } - } - _list.add(ParseLiveListElement(object, - loaded: loaded, updatedSubItems: _listeningIncludes)); - _eventStreamController.sink.add(ParseLiveListAddEvent( - _list.length - 1, object.clone(object.toJson(full: true)))); - } - - Future _objectUpdated(T object) async { - for (int i = 0; i < _list.length; i++) { - if (_list[i].object.get(keyVarObjectId) == - object.get(keyVarObjectId)) { - await _loadIncludes(object, - oldObject: _list[i].object, paths: _includePaths); - if (after(_list[i].object, object) == null) { - _list[i].object = object.clone(object.toJson(full: true)); - _eventStreamController.sink.add(ParseLiveListUpdateEvent( - i, object.clone(object.toJson(full: true)))); - } else { - _list.removeAt(i).dispose(); - _eventStreamController.sink.add(ParseLiveListDeleteEvent( - i, object.clone(object.toJson(full: true)))); - await _objectAdded(object.clone(object.toJson(full: true)), - fetchedIncludes: true); - } - break; - } - } - } - - Future _objectDeleted(T object) async { - for (int i = 0; i < _list.length; i++) { - if (_list[i].object.get(keyVarObjectId) == - object.get(keyVarObjectId)) { - await _loadIncludes(object, - oldObject: _list[i].object, paths: _includePaths); - _list.removeAt(i).dispose(); - _eventStreamController.sink.add(ParseLiveListDeleteEvent( - i, object.clone(object.toJson(full: true)))); - break; - } - } - } - - Stream getAt(final int index) async* { - if (index < _list.length) { - if (!_list[index].loaded) { - final QueryBuilder queryBuilder = QueryBuilder.copy(_query) - ..whereEqualTo( - keyVarObjectId, _list[index].object.get(keyVarObjectId)) - ..setLimit(1); - final ParseResponse response = await queryBuilder.query(); - if (_list.isEmpty) { - yield* _createStreamError( - ParseError(message: 'ParseLiveList: _list is empty')); - return; - } - if (response.success) { - _list[index].object = response.results?.first; - } else { - ParseError? error = response.error; - if (error != null) yield* _createStreamError(error); - return; - } - } -// just for testing -// await Future.delayed(const Duration(seconds: 2)); - yield _list[index].object; - yield* _list[index].stream; - } - } - - String idOf(int index) { - if (index < _list.length) { - return _list[index].object.objectId ?? 'NotFound'; - } - return 'NotFound'; - } - - String getIdentifier(int index) { - if (index < _list.length) { - return idOf(index) + - _list[index].object.get(keyVarUpdatedAt).toString(); - } - return 'NotFound'; - } - - T? getLoadedAt(int index) { - if (index < _list.length && _list[index].loaded) { - return _list[index].object; - } - return null; - } - - T? getPreLoadedAt(int index) { - if (index < _list.length) { - return _list[index].object; - } - return null; - } - - void dispose() { - Subscription? liveQuerySubscription = _liveQuerySubscription; - if (liveQuerySubscription != null) { - LiveQuery().client.unSubscribe(liveQuerySubscription); - _liveQuerySubscription = null; - } - StreamSubscription? liveQueryClientEventSubscription = - _liveQueryClientEventSubscription; - if (liveQueryClientEventSubscription != null) { - liveQueryClientEventSubscription.cancel(); - _liveQueryClientEventSubscription = null; - } - while (_list.isNotEmpty) { - _list.removeLast().dispose(); - } - } -} - -class ParseLiveElement extends ParseLiveListElement { - ParseLiveElement(T object, {bool loaded = false, List? includeObject}) - : super(object, - loaded: loaded, - updatedSubItems: - ParseLiveList._toIncludeMap(includeObject ?? [])) { - _includes = ParseLiveList._toIncludeMap(includeObject ?? []); - queryBuilder = QueryBuilder(object.clone({})) - ..whereEqualTo(keyVarObjectId, object.objectId); - if (includeObject != null) { - queryBuilder.includeObject(includeObject); - } - _init(object, loaded: loaded, includeObject: includeObject); - } - - Subscription? _subscription; - Map? _includes; - late QueryBuilder queryBuilder; - - Future _init(T object, - {bool loaded = false, List? includeObject}) async { - if (!loaded) { - final ParseResponse parseResponse = await queryBuilder.query(); - if (parseResponse.success) { - super.object = parseResponse.result.first; - } - } - - Subscription subscription = await LiveQuery().client.subscribe( - QueryBuilder.copy(queryBuilder), - copyObject: object.clone({})); - _subscription = subscription; - - subscription.on(LiveQueryEvent.update, (T newObject) async { - await ParseLiveList._loadIncludes(newObject, - oldObject: super.object, paths: _includes); - super.object = newObject; - }); - - LiveQuery() - .client - .getClientEventStream - .listen((LiveQueryClientEvent event) { - _subscriptionQueue.whenComplete(() async { - // ignore: missing_enum_constant_in_switch - switch (event) { - case LiveQueryClientEvent.connected: - final ParseResponse parseResponse = await queryBuilder.query(); - if (parseResponse.success) { - super.object = parseResponse.result.first; - } - break; - } - }); - }); - } - - @override - void dispose() { - final Subscription? subscription = _subscription; - if (subscription != null) { - LiveQuery().client.unSubscribe(subscription); - _subscription = null; - } - super.dispose(); - } -} - -class ParseLiveListElement { - ParseLiveListElement(this._object, - {bool loaded = false, Map? updatedSubItems}) - : _loaded = loaded { - _updatedSubItems = - _toSubscriptionMap(updatedSubItems ?? {}); - if (_updatedSubItems.isNotEmpty) { - _liveQuery = LiveQuery(); - _subscribe(); - } - } - - final StreamController _streamController = StreamController.broadcast(); - T _object; - bool _loaded = false; - late Map _updatedSubItems; - LiveQuery? _liveQuery; - final Future _subscriptionQueue = Future.value(); - - Stream get stream => _streamController.stream; - - T get object => _object.clone(_object.toJson(full: true)); - - Map _toSubscriptionMap(Map map) { - final Map result = {}; - for (String key in map.keys) { - result.putIfAbsent(PathKey(key), () => _toSubscriptionMap(map[key])); - } - return result; - } - - Map _toKeyMap(Map map) { - final Map result = {}; - for (PathKey key in map.keys) { - result.putIfAbsent(key.key, () => _toKeyMap(map[key])); - } - return result; - } - - void _subscribe() { - _subscriptionQueue.whenComplete(() async { - final T object = _object; - if (_updatedSubItems.isNotEmpty) { - final List> tasks = >[]; - for (PathKey key in _updatedSubItems.keys) { - tasks.add(_subscribeSubItem(object, key, - object.get(key.key), _updatedSubItems[key])); - } - await Future.wait(tasks); - } - }); - } - - void _unsubscribe(Map subscriptions) { - for (PathKey key in subscriptions.keys) { - final Subscription? subscription = key.subscription; - LiveQuery? liveQuery = _liveQuery; - if (liveQuery != null && subscription != null) { - liveQuery.client.unSubscribe(subscription); - key.subscription = null; - } - _unsubscribe(subscriptions[key]); - } - } - - Future _subscribeSubItem(ParseObject parentObject, PathKey currentKey, - ParseObject? subObject, Map path) async { - LiveQuery? liveQuery = _liveQuery; - if (liveQuery != null && subObject != null) { - final List> tasks = >[]; - for (PathKey key in path.keys) { - tasks.add(_subscribeSubItem( - subObject, key, subObject.get(key.key), path[key])); - } - final QueryBuilder queryBuilder = - QueryBuilder(subObject) - ..whereEqualTo(keyVarObjectId, subObject.objectId); - - tasks.add(liveQuery.client - .subscribe(queryBuilder) - .then((Subscription subscription) { - currentKey.subscription = subscription; - subscription.on(LiveQueryEvent.update, (ParseObject newObject) async { - _subscriptionQueue.whenComplete(() async { - await ParseLiveList._loadIncludes(newObject, - oldObject: subObject, paths: _toKeyMap(path)); - // ignore: deprecated_member_use_from_same_package - parentObject[currentKey.key] = newObject; - if (!_streamController.isClosed) { - _streamController.add(object); - //Resubscribe subitems - // TODO(any): only resubscribe on changed pointers - _unsubscribe(path); - for (PathKey key in path.keys) { - tasks.add(_subscribeSubItem(newObject, key, - newObject.get(key.key), path[key])); - } - } - await Future.wait(tasks); - }); - }); - })); - await Future.wait(tasks); - } - } - - set object(T value) { - _loaded = true; - _object = value; - _unsubscribe(_updatedSubItems); - _subscribe(); - _streamController.add(object); - } - - bool get loaded => _loaded; - - void dispose() { - _unsubscribe(_updatedSubItems); - _streamController.close(); - } - - Future reconnected() async { - if (loaded) { - _subscriptionQueue.whenComplete(() async { - await _updateSubItems(_object, _updatedSubItems); -// _streamController.add(_object?.clone(_object.toJson(full: true))); - }); - } - } - - List _getIncludeList(Map path) { - final List includes = []; - for (PathKey key in path.keys) { - includes.add(key.key); - includes.addAll( - _getIncludeList(path[key]).map((String e) => '${key.key}.$e')); - } - return includes; - } - - Future _updateSubItems( - ParseObject root, Map path) async { - final List> tasks = >[]; - for (PathKey key in path.keys) { - ParseObject? subObject = root.get(key.key); - if (subObject != null) { - if (subObject.containsKey(keyVarUpdatedAt) == true) { - final QueryBuilder queryBuilder = - QueryBuilder(subObject) - ..keysToReturn([keyVarUpdatedAt]) - ..whereEqualTo(keyVarObjectId, subObject.objectId); - final ParseResponse parseResponse = await queryBuilder.query(); - final List? results = parseResponse.results; - if (parseResponse.success && - results != null && - results.first.updatedAt != subObject.updatedAt) { - queryBuilder.limiters.remove('keys'); - queryBuilder.includeObject(_getIncludeList(path[key])); - final ParseResponse parseResponse = await queryBuilder.query(); - if (parseResponse.success) { - subObject = parseResponse.result.first; -// root.getObjectData()[key.key] = subObject; - Subscription? subscription = key.subscription; - if (subscription != null && - subscription.eventCallbacks.containsKey('update') == true) { - Function? eventCallback = subscription.eventCallbacks['update']; - if (eventCallback != null) { - eventCallback(subObject); - } - } -// key.subscription.eventCallbacks["update"](subObject); - break; - } - } - } - tasks.add(_updateSubItems(subObject, path[key])); - } - } - await Future.wait(tasks); - } -} - -class PathKey { - PathKey(this.key, {this.subscription}); - - final String key; - Subscription? subscription; - @override - String toString() { - return 'PathKey(key: $key, subscription: ${subscription?.requestId})'; - } -} - -abstract class ParseLiveListEvent { - ParseLiveListEvent(this._index, this._object); - - final int _index; - final T _object; - - int get index => _index; - - T get object => _object; -} - -class ParseLiveListAddEvent - extends ParseLiveListEvent { - ParseLiveListAddEvent(int index, T object) : super(index, object); -} - -class ParseLiveListUpdateEvent - extends ParseLiveListEvent { - ParseLiveListUpdateEvent(int index, T object) : super(index, object); -} - -class ParseLiveListDeleteEvent - extends ParseLiveListEvent { - ParseLiveListDeleteEvent(int index, T object) : super(index, object); -} - -class ParseLiveListElementSnapshot { - ParseLiveListElementSnapshot( - {this.loadedData, this.error, this.preLoadedData}); - - final T? loadedData; - final T? preLoadedData; - - final ParseError? error; - - bool get hasData => loadedData != null; - - bool get hasPreLoadedData => preLoadedData != null; - - bool get failed => error != null; -} diff --git a/packages/dart/lib/src/utils/parse_logger.dart b/packages/dart/lib/src/utils/parse_logger.dart deleted file mode 100644 index 0e3f507f5..000000000 --- a/packages/dart/lib/src/utils/parse_logger.dart +++ /dev/null @@ -1,44 +0,0 @@ -part of flutter_parse_sdk; - -void logAPIResponse( - String className, String type, ParseResponse parseResponse) { - const String spacer = ' \n'; - String responseString = ''; - - responseString += '╭-- Parse Response'; - responseString += '\nClass: $className'; - responseString += '\nFunction: $type'; - - if (parseResponse.success) { - responseString += '\nStatus Code: ${parseResponse.statusCode}'; - if (parseResponse.result != null) { - responseString += '\nPayload: ${parseResponse.result.toString()}'; - } else { - responseString += '\nReponse: OK'; - } - } else if (!parseResponse.success) { - responseString += '\nStatus Code: ${parseResponse.error!.code}'; - responseString += '\nType: ${parseResponse.error!.type}'; - - final String errorOrException = - parseResponse.error!.exception != null ? 'Exception' : 'Error'; - - responseString += '\n$errorOrException: ${parseResponse.error!.message}'; - } - - responseString += '\n╰-- \n'; - responseString += spacer; - print(responseString); -} - -void logRequest( - String? appName, String className, String type, String uri, String body) { - String requestString = ' \n'; - final String name = appName != null ? '$appName ' : ''; - requestString += '----\n${name}API Request ($className : $type) :'; - requestString += '\nUri: $uri'; - requestString += '\nBody: $body'; - - requestString += '\n----\n'; - print(requestString); -} diff --git a/packages/dart/lib/src/utils/parse_login_helpers.dart b/packages/dart/lib/src/utils/parse_login_helpers.dart deleted file mode 100644 index 88f03a54a..000000000 --- a/packages/dart/lib/src/utils/parse_login_helpers.dart +++ /dev/null @@ -1,21 +0,0 @@ -part of flutter_parse_sdk; - -Map facebook(String token, String id, DateTime expires) { - return { - 'access_token': token, - 'id': id, - 'expiration_date': expires.toString() - }; -} - -Map google(String token, String id, String idToken) { - return { - 'access_token': token, - 'id': id, - 'id_token': idToken - }; -} - -Map apple(String token, String id) { - return {'token': token, 'id': id}; -} diff --git a/packages/dart/lib/src/utils/parse_utils.dart b/packages/dart/lib/src/utils/parse_utils.dart deleted file mode 100644 index 03bb37781..000000000 --- a/packages/dart/lib/src/utils/parse_utils.dart +++ /dev/null @@ -1,129 +0,0 @@ -part of flutter_parse_sdk; - -/// Checks whether debug is enabled -/// -/// Debug can be set in 2 places, one global param in the Parse.initialize, and -/// then can be overwritten class by class -bool isDebugEnabled({bool? objectLevelDebug}) { - return objectLevelDebug ?? ParseCoreData().debug; -} - -/// Convert list of strings to a string with commas -String concatenateArray(List list) { - String output = ''; - - for (final String item in list) { - if (item == list.first) { - output += item; - } else { - output += ',$item'; - } - } - - return output; -} - -/// Converts the object to the correct value for JSON, -/// -/// Strings are wrapped with "" but integers and others are not -dynamic convertValueToCorrectType(dynamic value) { - /*if (value is String && !value.contains('__type')) { - return '\"$value\"'; - }*/ - - if (value is DateTime || value is ParseObject) { - return parseEncode(value); - } else { - return value; - } -} - -/// Sanitises a url -Uri getSanitisedUri(ParseClient client, String pathToAppend, - {Map? queryParams, String? query}) { - final Uri tempUri = Uri.parse(ParseCoreData().serverUrl); - - final Uri url = Uri( - scheme: tempUri.scheme, - host: tempUri.host, - port: tempUri.port, - path: '${tempUri.path}$pathToAppend', - queryParameters: queryParams, - query: query); - - return url; -} - -/// Sanitises a url -Uri getCustomUri(ParseClient client, String path, - {Map? queryParams, String? query}) { - final Uri tempUri = Uri.parse(ParseCoreData().serverUrl); - - final Uri url = Uri( - scheme: tempUri.scheme, - host: tempUri.host, - port: tempUri.port, - path: path, - queryParameters: queryParams, - query: query); - - return url; -} - -/// Removes unncessary / -String removeTrailingSlash(String serverUrl) { - if (serverUrl.isNotEmpty && - serverUrl.substring(serverUrl.length - 1) == '/') { - return serverUrl.substring(0, serverUrl.length - 1); - } else { - return serverUrl; - } -} - -Future batchRequest( - List requests, List objects, - {ParseClient? client, bool? debug}) async { - debug = isDebugEnabled(objectLevelDebug: debug); - client = client ?? - ParseCoreData().clientCreator( - sendSessionId: ParseCoreData().autoSendSessionId, - securityContext: ParseCoreData().securityContext); - try { - final Uri url = getSanitisedUri(client, '/batch'); - final String body = json.encode({'requests': requests}); - final ParseNetworkResponse result = - await client.post(url.toString(), data: body); - - return handleResponse( - objects, result, ParseApiRQ.batch, debug, 'parse_utils'); - } on Exception catch (e) { - return handleException(e, ParseApiRQ.batch, debug, 'parse_utils'); - } -} - -Stream _createStreamError(Object error) async* { - throw error; -} - -List removeDuplicateParseObjectByObjectId(Iterable iterable) { - final list = iterable.toList(); - - final foldedGroupedByObjectId = list - .whereType() - .where((e) => e.objectId != null) - .groupFoldBy( - (e) => e.objectId!, - (previous, element) => element, - ); - - list.removeWhere( - (e) { - return e is ParseObject && - foldedGroupedByObjectId.keys.contains(e.objectId); - }, - ); - - list.addAll(foldedGroupedByObjectId.values); - - return list; -} diff --git a/packages/dart/lib/src/utils/valuable.dart b/packages/dart/lib/src/utils/valuable.dart deleted file mode 100644 index 8c1c79e9a..000000000 --- a/packages/dart/lib/src/utils/valuable.dart +++ /dev/null @@ -1,15 +0,0 @@ -part of flutter_parse_sdk; - -/// A unified interface used to expose the internal state of a private class. -/// -/// Use this interface to expose internal state to end users. -/// For example, [_ParseArray] implements this interface to expose -/// its [estimatedArray] property to end-users. -/// -/// Note that any state exposed through this interface will be directly -/// accessible to end users. To prevent unintended manipulation, return copies -/// of internal state rather than references. -abstract class _Valuable { - /// provide access to an internal value of a class - T getValue(); -} diff --git a/packages/dart/pubspec.yaml b/packages/dart/pubspec.yaml deleted file mode 100644 index 1102443e7..000000000 --- a/packages/dart/pubspec.yaml +++ /dev/null @@ -1,38 +0,0 @@ -name: parse_server_sdk -description: The Dart SDK to connect to Parse Server. Build your apps faster with Parse Platform, the complete application stack. -version: 5.1.1 -homepage: https://github.com/parse-community/Parse-SDK-Flutter - -environment: - sdk: ">=2.18.0 <4.0.0" - -dependencies: - # Networking - dio: ^5.0.1 - http: ^0.13.5 - web_socket_channel: ^2.3.0 - - #Database - sembast: ^3.4.0+6 - sembast_web: ^2.1.0+4 - xxtea: ^2.1.0 - - # Utils - uuid: ^3.0.7 - meta: ^1.8.0 - path: ^1.8.2 - mime_type: ^1.0.0 - timezone: ^0.9.1 - universal_io: ^2.2.0 - collection: ^1.16.0 - -dev_dependencies: - lints: ^2.0.1 - # Testing - build_runner: ^2.3.3 - mockito: ^5.3.2 - test: ^1.23.1 - -screenshots: - - description: Parse Platform logo. - path: screenshots/logo.png \ No newline at end of file diff --git a/packages/dart/screenshots/logo.png b/packages/dart/screenshots/logo.png deleted file mode 100644 index 16dad8c70c8e63a67d78646584fcdbabfdab9d49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198115 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%0A+l__XUN*5uLv^6GX%T>3_H)?P8G^pPp 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

cSk)1U7yr!A-l_M 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 wJj;z_%KtrA{dclT2Npa1870FC>l!T (super.noSuchMethod(Invocation.getter(#data), - returnValue: _FakeParseCoreData()) as i2.ParseCoreData); - - @override - i3.Future get(String? path, - {i2.ParseNetworkOptions? options, - i2.ProgressCallback? onReceiveProgress}) => - (super.noSuchMethod( - Invocation.method(#get, [path], - {#options: options, #onReceiveProgress: onReceiveProgress}), - returnValue: Future.value( - _FakeParseNetworkResponse())) - as i3.Future); - - @override - i3.Future put(String? path, - {String? data, i2.ParseNetworkOptions? options}) => - (super.noSuchMethod( - Invocation.method(#put, [path], {#data: data, #options: options}), - returnValue: Future.value( - _FakeParseNetworkResponse())) - as i3.Future); - - @override - i3.Future post(String? path, - {String? data, i2.ParseNetworkOptions? options}) => - (super.noSuchMethod( - Invocation.method(#post, [path], {#data: data, #options: options}), - returnValue: Future.value( - _FakeParseNetworkResponse())) as i3 - .Future); - - @override - i3.Future postBytes(String? path, - {i3.Stream>? data, - i2.ParseNetworkOptions? options, - i2.ProgressCallback? onSendProgress, - dynamic cancelToken}) => - (super.noSuchMethod( - Invocation.method(#postBytes, [ - path - ], { - #data: data, - #options: options, - #onSendProgress: onSendProgress, - #cancelToken: cancelToken - }), - returnValue: Future.value( - _FakeParseNetworkResponse())) - as i3.Future); - - @override - i3.Future delete(String? path, - {i2.ParseNetworkOptions? options}) => - (super.noSuchMethod( - Invocation.method(#delete, [path], {#options: options}), - returnValue: Future.value( - _FakeParseNetworkResponse())) - as i3.Future); - - @override - i3.Future getBytes(String? path, - {i2.ParseNetworkOptions? options, - i2.ProgressCallback? onReceiveProgress, - dynamic cancelToken}) => - (super.noSuchMethod( - Invocation.method(#getBytes, [ - path - ], { - #options: options, - #onReceiveProgress: onReceiveProgress, - #cancelToken: cancelToken - }), - returnValue: Future.value( - _FakeParseNetworkByteResponse())) - as i3.Future); -} diff --git a/packages/dart/test/src/network/parse_query_test.dart b/packages/dart/test/src/network/parse_query_test.dart deleted file mode 100644 index ea7b7b125..000000000 --- a/packages/dart/test/src/network/parse_query_test.dart +++ /dev/null @@ -1,469 +0,0 @@ -import 'dart:convert'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../parse_query_test.mocks.dart'; -import '../../test_utils.dart'; - -@GenerateMocks([ParseClient]) -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group('queryBuilder', () { - late MockParseClient client; - - setUp(() { - client = MockParseClient(); - }); - - test('whereRelatedTo', () async { - // arrange - final QueryBuilder queryBuilder = - QueryBuilder(ParseObject('_User', client: client)); - queryBuilder.whereRelatedTo('likes', 'Post', '8TOXdXf3tz'); - - var desiredOutput = { - "results": [ - { - "objectId": "eT9muOxBTJ", - "username": "test", - "createdAt": "2021-04-23T13:46:06.092Z", - "updatedAt": "2021-04-23T13:46:23.586Z", - "ACL": { - "*": {"read": true}, - "eT9muOxBTJ": {"read": true, "write": true} - }, - } - ] - }; - - when(client.get( - any, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).thenAnswer((_) async => ParseNetworkResponse( - statusCode: 200, data: jsonEncode(desiredOutput))); - - // act - ParseResponse response = await queryBuilder.query(); - - ParseObject parseObject = response.results?.first; - - final Uri result = Uri.parse(verify(client.get( - captureAny, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).captured.single); - - var queryDesiredOutput = { - "\$relatedTo": { - "object": { - "__type": "Pointer", - "className": "Post", - "objectId": "8TOXdXf3tz", - }, - "key": "likes" - }, - }; - final Uri expectedQuery = - Uri(query: 'where=${jsonEncode(queryDesiredOutput)}'); - - // assert - expect(response.results?.first, isA()); - - expect(parseObject.get(keyVarUsername), "test"); - expect(parseObject.objectId, "eT9muOxBTJ"); - expect(parseObject.createdAt, DateTime.parse("2021-04-23T13:46:06.092Z")); - expect(parseObject.updatedAt, DateTime.parse("2021-04-23T13:46:23.586Z")); - - expect(result.path, '/classes/_User'); - - expect(result.query, expectedQuery.query); - }); - - test('QueryBuilder.or', () async { - // arrange - ParseObject user = ParseObject("_User", client: client); - var firstName = QueryBuilder(user) - ..regEx('firstName', "Liam"); - - var lastName = QueryBuilder(user) - ..regEx('lastName', "Johnson"); - - QueryBuilder mainQuery = QueryBuilder.or( - user, - [firstName, lastName], - ); - - var desiredOutput = { - "results": [ - { - "className": "_User", - "objectId": "fqx5BECOME", - "createdAt": "2022-10-25T06:04:47.138Z", - "updatedAt": "2022-10-25T06:05:22.328Z", - "firstName": "Liam1", - "lastName": "Johnson1", - }, - { - "className": "_User", - "objectId": "hAtRRYGrUO", - "createdAt": "2022-01-24T15:53:48.396Z", - "updatedAt": "2022-01-25T05:52:01.701Z", - "firstName": "Liam2", - "lastName": "Johnson2", - } - ] - }; - - when(client.get( - any, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).thenAnswer((_) async => ParseNetworkResponse( - statusCode: 200, data: jsonEncode(desiredOutput))); - - // act - var response = await mainQuery.query(); - - ParseObject parseObject = response.results?.first; - - final Uri result = Uri.parse(verify(client.get( - captureAny, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).captured.single); - - var queryDesiredOutput = { - "\$or": [ - { - "firstName": {"\$regex": "Liam"} - }, - { - "lastName": {"\$regex": "Johnson"}, - } - ], - }; - final Uri expectedQuery = - Uri(query: 'where=${jsonEncode(queryDesiredOutput)}'); - - // assert - expect(response.results?.first, isA()); - - expect(parseObject.get("firstName"), "Liam1"); - expect(parseObject.objectId, "fqx5BECOME"); - expect(parseObject.createdAt, DateTime.parse("2022-10-25T06:04:47.138Z")); - expect(parseObject.updatedAt, DateTime.parse("2022-10-25T06:05:22.328Z")); - - expect(result.path, '/classes/_User'); - - expect(result.query, expectedQuery.query); - }); - - test('QueryBuilder.and', () async { - // arrange - ParseObject user = ParseObject("_User", client: client); - var firstName = QueryBuilder(user) - ..regEx('firstName', "jak"); - - var lastName = QueryBuilder(user)..regEx('lastName', "jaki"); - - QueryBuilder mainQuery = QueryBuilder.and( - user, - [firstName, lastName], - ); - - var desiredOutput = { - "results": [ - { - "className": "_User", - "objectId": "fqx5BECOME", - "createdAt": "2022-10-25T06:04:47.138Z", - "updatedAt": "2022-10-25T06:05:22.328Z", - "firstName": "jak1", - "lastName": "jaki1", - }, - { - "className": "_User", - "objectId": "hAtRRYGrUO", - "createdAt": "2022-01-24T15:53:48.396Z", - "updatedAt": "2022-01-25T05:52:01.701Z", - "firstName": "jak2", - "lastName": "jaki2", - }, - ] - }; - - when(client.get( - any, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).thenAnswer((_) async => ParseNetworkResponse( - statusCode: 200, data: jsonEncode(desiredOutput))); - - // act - var response = await mainQuery.query(); - - ParseObject parseObject = response.results?.first; - - final Uri result = Uri.parse(verify(client.get( - captureAny, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).captured.single); - - var queryDesiredOutput = { - "\$and": [ - { - "firstName": {"\$regex": "jak"} - }, - { - "lastName": {"\$regex": "jaki"}, - } - ], - }; - final Uri expectedQuery = - Uri(query: 'where=${jsonEncode(queryDesiredOutput)}'); - - // assert - expect(response.results?.first, isA()); - - expect(parseObject.get("firstName"), "jak1"); - expect(parseObject.objectId, "fqx5BECOME"); - expect(parseObject.createdAt, DateTime.parse("2022-10-25T06:04:47.138Z")); - expect(parseObject.updatedAt, DateTime.parse("2022-10-25T06:05:22.328Z")); - - expect(result.path, '/classes/_User'); - - expect(result.query, expectedQuery.query); - }); - - test('QueryBuilder.nor', () async { - // arrange - ParseObject user = ParseObject("_User", client: client); - var firstName = QueryBuilder(user) - ..regEx('firstName', "Oliver"); - - var lastName = QueryBuilder(user) - ..regEx('lastName', "Smith"); - - QueryBuilder mainQuery = QueryBuilder.nor( - user, - [firstName, lastName], - ); - - var desiredOutput = { - "results": [ - { - "className": "_User", - "objectId": "fqx5BECOME", - "createdAt": "2022-10-25T06:04:47.138Z", - "updatedAt": "2022-10-25T06:05:22.328Z", - "firstName": "Oliver1", - "lastName": "Smith1", - }, - { - "className": "_User", - "objectId": "hAtRRYGrUO", - "createdAt": "2022-01-24T15:53:48.396Z", - "updatedAt": "2022-01-25T05:52:01.701Z", - "firstName": "Oliver2", - "lastName": "Smith2", - }, - ] - }; - - when(client.get( - any, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).thenAnswer((_) async => ParseNetworkResponse( - statusCode: 200, data: jsonEncode(desiredOutput))); - - // act - var response = await mainQuery.query(); - - ParseObject parseObject = response.results?.first; - - final Uri result = Uri.parse(verify(client.get( - captureAny, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).captured.single); - - var queryDesiredOutput = { - "\$nor": [ - { - "firstName": {"\$regex": "Oliver"} - }, - { - "lastName": {"\$regex": "Smith"}, - } - ], - }; - final Uri expectedQuery = - Uri(query: 'where=${jsonEncode(queryDesiredOutput)}'); - - // assert - expect(response.results?.first, isA()); - - expect(parseObject.get("firstName"), "Oliver1"); - expect(parseObject.objectId, "fqx5BECOME"); - expect(parseObject.createdAt, DateTime.parse("2022-10-25T06:04:47.138Z")); - expect(parseObject.updatedAt, DateTime.parse("2022-10-25T06:05:22.328Z")); - - expect(result.path, '/classes/_User'); - - expect(result.query, expectedQuery.query); - }); - - test('wherePolygonContains', () async { - // arrange - final QueryBuilder queryBuilder = - QueryBuilder(ParseObject('TEST_SCHEMA', client: client)); - double latitude = 84.17724609375; - double longitude = -53.69670647530323; - ParseGeoPoint point = - ParseGeoPoint(latitude: latitude, longitude: longitude); - queryBuilder.wherePolygonContains("geometry", point); - - var desiredOutput = { - "results": [ - { - "objectId": "eT9muOxBTK", - "createdAt": "2022-07-25T13:46:06.092Z", - "updatedAt": "2022-07-25T13:46:23.586Z", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [84.17724609375, -53.69670647530323], - [83.1884765625, -54.61025498157913], - [84.814453125, -55.14120964449505], - [85.67138671875, -54.40614309031968], - [84.17724609375, -53.69670647530323] - ] - ] - } - } - ] - }; - - when(client.get( - any, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).thenAnswer((_) async => ParseNetworkResponse( - statusCode: 200, data: jsonEncode(desiredOutput))); - - // act - ParseResponse response = await queryBuilder.query(); - ParseObject parseObject = response.results?.first; - - final Uri result = Uri.parse(verify(client.get( - captureAny, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).captured.single); - - var queryDesiredOutput = { - "geometry": { - "\$geoIntersects": { - "\$point": { - "__type": "GeoPoint", - "latitude": latitude, - "longitude": longitude - } - } - } - }; - final Uri expectedQuery = - Uri(query: 'where=${jsonEncode(queryDesiredOutput)}'); - - // assert - expect(response.results?.first, isA()); - expect(parseObject.objectId, "eT9muOxBTK"); - expect(parseObject.containsKey("geometry"), true); - expect(result.path, '/classes/TEST_SCHEMA'); - expect(result.query, expectedQuery.query); - }); - - test( - 'The resulting query should include "redirectClassNameForKey" as a query parameter', - () { - // arrange - final queryBuilder = QueryBuilder.name('Diet_Plans'); - - // act - queryBuilder.setRedirectClassNameForKey('Plan'); - - // assert - final query = queryBuilder.buildQuery(); - - expect(query, equals('where={}&redirectClassNameForKey=Plan')); - }); - - test('whereMatchesQuery', () async { - // arrange - ParseObject object2 = ParseObject("object2"); - final query2 = QueryBuilder(object2) - ..includeObject(["avatar"]) - ..whereEqualTo("firstName", "Oliver1"); - - ParseObject object1 = ParseObject("object1"); - final query1 = QueryBuilder(object1) - ..includeObject(["user"]) - ..whereEqualTo("id", "1122") - ..whereMatchesQuery("object2", query2); - - ParseObject objectMain = ParseObject("objectMain", client: client); - final mainQuery = QueryBuilder(objectMain) - ..includeObject(["img"]) - ..whereMatchesQuery("object1", query1); - - var desiredOutput = { - "results": [ - { - "className": "_User", - "objectId": "fqx5BECOME", - "createdAt": "2022-10-25T06:04:47.138Z", - "updatedAt": "2022-10-25T06:05:22.328Z", - "firstName": "Oliver1", - "lastName": "Smith1", - }, - { - "className": "_User", - "objectId": "hAtRRYGrUO", - "createdAt": "2022-01-24T15:53:48.396Z", - "updatedAt": "2022-01-25T05:52:01.701Z", - "firstName": "Oliver2", - "lastName": "Smith2", - }, - ] - }; - - when(client.get( - any, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).thenAnswer((_) async => ParseNetworkResponse( - statusCode: 200, data: jsonEncode(desiredOutput))); - - // act - await mainQuery.query(); - - final Uri result = Uri.parse(verify(client.get( - captureAny, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).captured.single); - - // assert - expect(result.query.contains("%22object2%22,%22include%22"), true); - }); - }); -} diff --git a/packages/dart/test/src/objects/parse_base_test.dart b/packages/dart/test/src/objects/parse_base_test.dart deleted file mode 100644 index 82ba945a3..000000000 --- a/packages/dart/test/src/objects/parse_base_test.dart +++ /dev/null @@ -1,170 +0,0 @@ -import 'package:collection/collection.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../parse_query_test.mocks.dart'; -import '../../test_utils.dart'; - -main() { - setUpAll(() async { - await initializeParse(); - }); - - group('Parse_Base', () { - late MockParseClient client; - - late ParseObject dietPlansObject; - - setUp(() { - client = MockParseClient(); - - dietPlansObject = ParseObject("Diet_Plans", client: client); - }); - - group('isDirty', () { - test('should return true when calling isDirty on modified object', () { - // array - dietPlansObject.setAddUnique('arrayKey', 1); - final isDirtyArray = dietPlansObject.isDirty(key: 'arrayKey'); - expect(isDirtyArray, isTrue); - dietPlansObject.unset('arrayKey', offlineOnly: true); - - // number - dietPlansObject.setIncrement('myNumberKey', 2); - final isDirtyNumber = dietPlansObject.isDirty(key: 'myNumberKey'); - expect(isDirtyNumber, isTrue); - dietPlansObject.unset('myNumberKey', offlineOnly: true); - - // relation - dietPlansObject.removeRelation('relationKey', [ParseObject('class')]); - final isDirtyRelation = dietPlansObject.isDirty(key: 'relationKey'); - expect(isDirtyRelation, isTrue); - dietPlansObject.unset('relationKey', offlineOnly: true); - - // string - dietPlansObject.set('stringKey', 'some String'); - final isDirtyString = dietPlansObject.isDirty(key: 'stringKey'); - expect(isDirtyString, isTrue); - dietPlansObject.unset('stringKey', offlineOnly: true); - - // pointer - dietPlansObject.set( - 'pointerKey', - ParseObject('className')..set('someKey', 1), - ); - final isDirtyPointer = dietPlansObject.isDirty(key: 'pointerKey'); - expect(isDirtyPointer, isTrue); - dietPlansObject.unset('pointerKey', offlineOnly: true); - }); - - test('should return true when modifying a child(nested) ParseObject', () { - // arrange - dietPlansObject.fromJson({ - keyVarObjectId: "dDSAGER1", - keyVarCreatedAt: "2023-02-26T00:20:37.187Z", - keyVarUpdatedAt: "2023-02-26T00:20:37.187Z", - "somePointer": { - "__type": "Object", - "className": "Plan", - "name": "plan1" - }, - }); - - // act - - // modifying nested child - dietPlansObject.get('somePointer').set('name', 'plan222'); - - final isDirtyDeepChildrenCheck = dietPlansObject.isDirty(); - - // assert - expect(isDirtyDeepChildrenCheck, isTrue); - }); - }); - - test( - 'should return true for containsValue() if the object contains the value', - () { - // arrange - dietPlansObject.set('someKey', 1); - - // act - final containsValue = dietPlansObject.containsValue(1); - - // assert - expect(containsValue, isTrue); - }); - - test( - 'should return true for containsKey() if the object contains the passed key', - () { - // arrange - dietPlansObject.set('someKey', 1); - - // act - final containsKey = dietPlansObject.containsKey('someKey'); - - // assert - expect(containsKey, isTrue); - }); - - test('test the [] operator', () { - // arrange - dietPlansObject['someKey'] = 1; - - // act - final value = dietPlansObject['someKey']; - - // assert - expect(value, equals(1)); - }); - - test('setACL() should set the ACL for the parse object', () { - // arrange - final acl = ParseACL(); - - // act - dietPlansObject.setACL(acl); - - // assert - expect(dietPlansObject.getACL(), equals(acl)); - }); - - test('fromJsonForManualObject() should put all the values in unsaved state', - () { - // arrange - final createdAt = DateTime.now(); - final updatedAt = DateTime.now(); - final manualJsonObject = { - keyVarCreatedAt: createdAt, - keyVarUpdatedAt: updatedAt, - "array": [1, 2, 3], - 'number': 2, - }; - - // act - dietPlansObject.fromJsonForManualObject(manualJsonObject); - - // assert - expect(dietPlansObject.isDirty(key: 'array'), isTrue); - expect(dietPlansObject.isDirty(key: 'number'), isTrue); - - expect(dietPlansObject.createdAt, equals(createdAt)); - expect(dietPlansObject.updatedAt, equals(updatedAt)); - - final valueForAPiRequest = dietPlansObject.toJson(forApiRQ: true); - final expectedValueForAPiRequest = { - "array": [1, 2, 3], - "number": 2 - }; - - expect( - DeepCollectionEquality().equals( - valueForAPiRequest, - expectedValueForAPiRequest, - ), - isTrue, - ); - }); - }); -} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_array_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_array_test.dart deleted file mode 100644 index 07f636d80..000000000 --- a/packages/dart/test/src/objects/parse_object/parse_object_array_test.dart +++ /dev/null @@ -1,775 +0,0 @@ -import 'dart:convert'; - -import 'package:collection/collection.dart'; -import 'package:mockito/mockito.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../parse_query_test.mocks.dart'; -import '../../../test_utils.dart'; - -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group( - 'Array', - () { - late MockParseClient client; - - late ParseObject dietPlansObject; - - const keyArray = 'array'; - - setUp(() { - client = MockParseClient(); - - dietPlansObject = ParseObject("Diet_Plans", client: client); - }); - - test( - 'adding values using setAdd() and then calling get(keyArray) ' - 'should return Instance of Iterable that contains all the added values ', - () { - // act - dietPlansObject.setAdd(keyArray, 1); - dietPlansObject.setAdd(keyArray, 2); - dietPlansObject.setAdd(keyArray, 1); - - // assert - final array = dietPlansObject.get(keyArray); - - expect(array, isA()); - - expect( - DeepCollectionEquality.unordered().equals( - array, - [1, 2, 1], - ), - isTrue, - ); - }); - - test( - 'setAdd() operation should not be mergeable with any other' - 'operation other than setAddAll()', () { - testUnmergeableOperationShouldThrow( - parseObject: dietPlansObject, - testingOn: dietPlansObject.setAdd, - excludeMergeableOperations: [dietPlansObject.setAddAll], - ); - }); - - test( - 'adding values using setAddAll() and then calling get(keyArray) ' - 'should return Instance of Iterable that contains all the added values', - () { - // act - dietPlansObject.setAddAll(keyArray, [1, 2, 1]); - - // assert - final array = dietPlansObject.get(keyArray); - - expect(array, isA()); - - expect( - DeepCollectionEquality.unordered().equals( - array, - [1, 2, 1], - ), - isTrue, - ); - }); - - test( - 'setAddAll() operation should not be mergeable with any other' - 'operation other than setAdd()', () { - testUnmergeableOperationShouldThrow( - parseObject: dietPlansObject, - testingOn: dietPlansObject.setAddAll, - excludeMergeableOperations: [dietPlansObject.setAdd], - ); - }); - - test( - 'adding values using setAddUnique() and then calling get(keyArray) ' - 'should return Instance of Iterable that contains all the added values' - ' with out any duplication in the values', () { - // act - dietPlansObject.setAddUnique(keyArray, 1); - dietPlansObject.setAddUnique(keyArray, 2); - dietPlansObject.setAddUnique(keyArray, 1); - dietPlansObject.setAddUnique(keyArray, 3); - dietPlansObject.setAddUnique(keyArray, 1); - dietPlansObject.setAddUnique(keyArray, 4); - - // assert - final array = dietPlansObject.get(keyArray); - - expect(array, isA()); - - expect( - DeepCollectionEquality.unordered().equals( - array, - [1, 2, 3, 4], - ), - isTrue, - ); - }); - - test( - 'setAddUnique() operation should not be mergeable with any other' - 'operation other than setAddAllUnique()', () { - testUnmergeableOperationShouldThrow( - parseObject: dietPlansObject, - testingOn: dietPlansObject.setAddUnique, - excludeMergeableOperations: [dietPlansObject.setAddAllUnique], - ); - }); - - test( - 'adding values using setAddAllUnique() and then calling get(keyArray) ' - 'should return Instance of Iterable that contains all the added values' - ' with out any duplication in the values', () { - // act - dietPlansObject.setAddAllUnique(keyArray, [1, 2, 1, 3, 1, 4, 1]); - - // assert - final array = dietPlansObject.get(keyArray); - - expect(array, isA()); - - expect( - DeepCollectionEquality.unordered().equals( - array, - [1, 2, 3, 4], - ), - isTrue, - ); - }); - - test( - 'setAddAllUnique() operation should not be mergeable with any other' - 'operation other than setAddUnique()', () { - testUnmergeableOperationShouldThrow( - parseObject: dietPlansObject, - testingOn: dietPlansObject.setAddAllUnique, - excludeMergeableOperations: [dietPlansObject.setAddUnique], - ); - }); - - test( - 'removing values using setRemove() and then calling get(keyArray) ' - 'should return Instance of Iterable that NOT contains the removed values', - () { - // arrange - const resultFromServer = { - "objectId": "O6BHlwV48Z", - "createdAt": "2023-02-26T13:23:03.073Z", - "updatedAt": "2023-03-01T03:38:16.390Z", - keyArray: [1, 2, 3, 4], - }; - - dietPlansObject = ParseObject('Diet_Plans') - ..fromJson( - resultFromServer, - ); - - // act - dietPlansObject.setRemove(keyArray, 4); - - // assert - final array = dietPlansObject.get(keyArray); - - expect(array, isA()); - - expect( - DeepCollectionEquality.unordered().equals( - array, - [1, 2, 3], - ), - isTrue, - ); - }); - - test( - 'removing values using setRemoveAll() and then calling get(keyArray) ' - 'should return Instance of Iterable that NOT contains the removed values', - () { - // arrange - const resultFromServer = { - "objectId": "O6BHlwV48Z", - "createdAt": "2023-02-26T13:23:03.073Z", - "updatedAt": "2023-03-01T03:38:16.390Z", - keyArray: [1, 2, 3, 4], - }; - - dietPlansObject = ParseObject('Diet_Plans') - ..fromJson( - resultFromServer, - ); - - // act - dietPlansObject.setRemoveAll(keyArray, [3, 4]); - - // assert - final array = dietPlansObject.get(keyArray); - - expect(array, isA()); - - expect( - DeepCollectionEquality.unordered().equals( - array, - [1, 2], - ), - isTrue, - ); - }); - - test( - 'the array should not been affected by removing non existent ' - 'values using setRemove()', () { - // arrange - const resultFromServer = { - "objectId": "O6BHlwV48Z", - "createdAt": "2023-02-26T13:23:03.073Z", - "updatedAt": "2023-03-01T03:38:16.390Z", - keyArray: [1, 2, 3, 4], - }; - - dietPlansObject = ParseObject('Diet_Plans') - ..fromJson( - resultFromServer, - ); - - // act - dietPlansObject.setRemove(keyArray, 15); - dietPlansObject.setRemove(keyArray, 16); - - // assert - final array = dietPlansObject.get(keyArray); - - expect(array, isA()); - - expect( - DeepCollectionEquality.unordered().equals( - array, - [1, 2, 3, 4], - ), - isTrue, - ); - }); - - test( - 'the array should not been affected by removing non existent ' - 'values using setRemoveAll()', () { - // arrange - const resultFromServer = { - "objectId": "O6BHlwV48Z", - "createdAt": "2023-02-26T13:23:03.073Z", - "updatedAt": "2023-03-01T03:38:16.390Z", - keyArray: [1, 2, 3, 4], - }; - - dietPlansObject = ParseObject('Diet_Plans') - ..fromJson( - resultFromServer, - ); - - // act - dietPlansObject.setRemoveAll(keyArray, [15, 16]); - - // assert - final array = dietPlansObject.get(keyArray); - - expect(array, isA()); - - expect( - DeepCollectionEquality.unordered().equals( - array, - [1, 2, 3, 4], - ), - isTrue, - ); - }); - - test( - 'adding to an array and then removing from it should result in error ' - 'the user can not add and remove in the same time', () { - // act - dietPlansObject.setAdd(keyArray, 1); - dietPlansObject.setAdd(keyArray, 2); - - // assert - expect( - () => dietPlansObject.setRemove(keyArray, 2), - throwsA(isA()), - ); - - final array = dietPlansObject.get(keyArray); - - expect(array, isA()); - - expect( - DeepCollectionEquality.unordered().equals( - array, - [1, 2], - ), - isTrue, - ); - }); - - test( - 'removing from an array and then adding to it should result in error ' - 'the user can not remove and add in the same time', () { - // arrange - const resultFromServer = { - "objectId": "O6BHlwV48Z", - "createdAt": "2023-02-26T13:23:03.073Z", - "updatedAt": "2023-03-01T03:38:16.390Z", - keyArray: [1, 2, 3, 4], - }; - - dietPlansObject = ParseObject('Diet_Plans') - ..fromJson( - resultFromServer, - ); - - // act - dietPlansObject.setRemove(keyArray, 4); - dietPlansObject.setRemove(keyArray, 3); - - // assert - expect( - () => dietPlansObject.setAdd(keyArray, 5), - throwsA(isA()), - ); - - final array = dietPlansObject.get(keyArray); - - expect(array, isA()); - - expect( - DeepCollectionEquality.unordered().equals( - array, - [1, 2], - ), - isTrue, - ); - }); - - test( - 'setRemove() operation should not be mergeable with any other' - 'operation other than setRemoveAll()', () { - testUnmergeableOperationShouldThrow( - parseObject: dietPlansObject, - testingOn: dietPlansObject.setRemove, - excludeMergeableOperations: [dietPlansObject.setRemoveAll], - ); - }); - - test( - 'setRemoveAll() operation should not be mergeable with any other' - 'operation other than setRemove()', () { - testUnmergeableOperationShouldThrow( - parseObject: dietPlansObject, - testingOn: dietPlansObject.setRemoveAll, - excludeMergeableOperations: [dietPlansObject.setRemove], - ); - }); - - test( - 'Array should be in setMode when using "set" to add an array to the parse object ' - 'and any operation on the array should not create any conflict with the previous operation', - () { - // arrange - void operations() { - // act - dietPlansObject.set(keyArray, [1, 2]); - dietPlansObject.setAdd(keyArray, 3); - dietPlansObject.setAddUnique(keyArray, 3); - dietPlansObject.setAddUnique(keyArray, 4); - dietPlansObject.setRemove(keyArray, 1); - } - - // assert - expect(() => operations(), returnsNormally); - }); - - test( - 'The array internal state should be identical before and after ' - 'storing it in data store', () async { - // arrange - dietPlansObject.objectId = "someId"; - - dietPlansObject.set(keyArray, [1, 2]); - dietPlansObject.setAdd(keyArray, 3); - dietPlansObject.setAddUnique(keyArray, 3); - dietPlansObject.setAddUnique(keyArray, 4); - dietPlansObject.setRemove(keyArray, 1); - - final listBeforePin = dietPlansObject.get(keyArray); - final toJsonBeforePin = dietPlansObject.toJson(forApiRQ: true); - - // act - await dietPlansObject.pin(); - - final objectFromPin = await dietPlansObject.fromPin('someId'); - - // assert - final listAfterPin = objectFromPin.get(keyArray); - final toJsonAfterPin = objectFromPin.toJson(forApiRQ: true); - - expect( - DeepCollectionEquality().equals(listBeforePin, listAfterPin), - isTrue, - ); - - expect( - DeepCollectionEquality().equals(toJsonBeforePin, toJsonAfterPin), - isTrue, - ); - }); - - test( - 'The saved modified array internal state should be identical ' - 'before and after storing it in data store', () async { - // arrange - dietPlansObject.fromJson({ - keyArray: [1, 2], - "objectId": "someId" - }); // assume this coming from the server - - dietPlansObject.setAddUnique(keyArray, 3); - - final listBeforePin = dietPlansObject.get(keyArray); - final toJsonBeforePin = dietPlansObject.toJson(forApiRQ: true); - - // act - await dietPlansObject.pin(); - - final objectFromPin = await dietPlansObject.fromPin('someId'); - - // assert - final listAfterPin = objectFromPin.get(keyArray); - final toJsonAfterPin = objectFromPin.toJson(forApiRQ: true); - - expect( - DeepCollectionEquality().equals(listBeforePin, listAfterPin), - isTrue, - ); - - expect( - DeepCollectionEquality().equals(toJsonBeforePin, toJsonAfterPin), - isTrue, - ); - }); - - test( - 'The saved array should not be in setMode. i.e. any conflicting operation' - ' should not be allowed and throw an exception', () { - // arrange - dietPlansObject.fromJson({ - keyArray: [1, 2], - "objectId": "someId" - }); // assume this coming from the server - - // act - dietPlansObject.setAdd(keyArray, 3); - - // assert - op() => dietPlansObject.setRemove(keyArray, 3); - - expect(() => op(), throwsA(isA())); - }); - - test( - 'After the save() function runs successfully for an API request, ' - 'the ParseArray internal value for API request should be empty', - () async { - // arrange - const resultFromServer = { - keyVarObjectId: "DLde4rYA8C", - keyVarCreatedAt: "2023-02-26T00:20:37.187Z" - }; - - when(client.post( - any, - options: anyNamed("options"), - data: anyNamed('data'), - )).thenAnswer( - (_) async { - await Future.delayed(Duration(milliseconds: 500)); - return ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ); - }, - ); - - dietPlansObject.setAddAll(keyArray, [1, 2, 3]); - - final valueForApiReqBeforeSave = dietPlansObject.toJson(forApiRQ: true); - - final listValueBeforeSave = dietPlansObject.get(keyArray); - - // act - await dietPlansObject.save(); - - // assert - final valueForApiReqAfterSave = dietPlansObject.toJson(forApiRQ: true); - final listValueAfterSave = dietPlansObject.get(keyArray); - - final expectedValueForApiReqBeforeSave = { - keyArray: { - "__op": "Add", - "objects": [1, 2, 3] - } - }; - - expect( - DeepCollectionEquality().equals( - valueForApiReqBeforeSave, - expectedValueForApiReqBeforeSave, - ), - isTrue, - ); - - expect( - DeepCollectionEquality().equals( - listValueBeforeSave, - listValueAfterSave, - ), - isTrue, - ); - - expect(valueForApiReqAfterSave.isEmpty, isTrue); - }); - - test( - 'If an Add operation is performed during the save() function, the result' - ' of the operation should be present in the internal state of the ' - 'ParseArray as a value that has not been saved. The data that has ' - 'been saved should be moved to the saved state', - () async { - // arrange - const resultFromServer = { - keyVarObjectId: "DLde4rYA8C", - keyVarCreatedAt: "2023-02-26T00:20:37.187Z" - }; - - when(client.post( - any, - options: anyNamed("options"), - data: anyNamed('data'), - )).thenAnswer( - (_) async { - await Future.delayed(Duration(milliseconds: 100)); - return ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ); - }, - ); - - dietPlansObject.setAdd(keyArray, 1); - dietPlansObject.setAdd(keyArray, 2); - - final listBeforeSave = dietPlansObject.get(keyArray); - final valueForApiReqBeforeSave = - dietPlansObject.toJson(forApiRQ: true); - - // act - dietPlansObject.save(); - - // async gap, this could be anything in the app like a click of a button - await Future.delayed(Duration.zero); - - // Then suddenly the user added a value to the list - dietPlansObject.setAdd(keyArray, 3); - dietPlansObject.setAdd(keyArray, 4); - - // Await the save function to be done - await Future.delayed(Duration(milliseconds: 150)); - - // assert - expect( - DeepCollectionEquality().equals(listBeforeSave, [1, 2]), - isTrue, - ); - - final listAfterSave = dietPlansObject.get(keyArray); - expect( - DeepCollectionEquality().equals(listAfterSave, [1, 2, 3, 4]), - isTrue, - ); - - const expectedValueForApiReqBeforeSave = { - keyArray: { - "__op": "Add", - "objects": [1, 2] - } - }; - expect( - DeepCollectionEquality().equals( - valueForApiReqBeforeSave, - expectedValueForApiReqBeforeSave, - ), - isTrue, - ); - - final valueForApiReqAfterSave = - dietPlansObject.toJson(forApiRQ: true); - const expectedValueForApiReqAfterSave = { - keyArray: { - "__op": "Add", - "objects": [3, 4] - } - }; - expect( - DeepCollectionEquality().equals( - valueForApiReqAfterSave, - expectedValueForApiReqAfterSave, - ), - isTrue, - ); - }, - ); - - test( - 'If an Remove operation is performed during the save() function, the result' - ' of the operation should be present in the internal state of the ' - 'ParseArray as a value that has not been saved. The data that has ' - 'been saved should be moved to the saved state', - () async { - // arrange - const resultFromServer = { - keyVarObjectId: "DLde4rYA8C", - keyVarCreatedAt: "2023-02-26T00:20:37.187Z" - }; - - when(client.post( - any, - options: anyNamed("options"), - data: anyNamed('data'), - )).thenAnswer( - (_) async { - await Future.delayed(Duration(milliseconds: 100)); - return ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ); - }, - ); - - dietPlansObject.fromJson({ - keyArray: [1, 2, 3, 4] - }); - - final listBeforeSave = dietPlansObject.get(keyArray); - final valueForApiReqBeforeSave = - dietPlansObject.toJson(forApiRQ: true); - - // act - dietPlansObject.save(); - - // async gap, this could be anything in the app like a click of a button - await Future.delayed(Duration.zero); - - // Then suddenly the user remove a value from the list - dietPlansObject.setRemoveAll(keyArray, [3, 4]); - - // Await the save function to be done - await Future.delayed(Duration(milliseconds: 150)); - - // assert - expect(listBeforeSave, orderedEquals([1, 2, 3, 4])); - - final listAfterSave = dietPlansObject.get(keyArray); - expect( - listAfterSave, - orderedEquals([1, 2]), - ); - - expect( - valueForApiReqBeforeSave.isEmpty, - isTrue, - ); - - final valueForApiReqAfterSave = - dietPlansObject.toJson(forApiRQ: true); - const expectedValueForApiReqAfterSave = { - keyArray: { - "__op": "Remove", - "objects": [3, 4] - } - }; - expect( - DeepCollectionEquality().equals( - valueForApiReqAfterSave, - expectedValueForApiReqAfterSave, - ), - isTrue, - ); - }, - ); - - test( - 'When calling clearUnsavedChanges() the array should be reverted back' - ' to its original state before any modifications were made', () { - // arrange - dietPlansObject.fromJson({ - keyArray: [1, 2], - "objectId": "someId" - }); // assume this coming from the server - - dietPlansObject.setAdd(keyArray, 3); - - // act - dietPlansObject.clearUnsavedChanges(); - - // assert - final listValue = dietPlansObject.get(keyArray); - - expect(listValue, orderedEquals([1, 2])); - }); - - test( - 'The list value and the value for api request should be identical ' - 'before and after the save() failed to save the object', () async { - // arrange - - when(client.post( - any, - options: anyNamed("options"), - data: anyNamed("data"), - )).thenThrow(Exception('error')); - - dietPlansObject.setAddAll(keyArray, [1, 2]); - - final valueForApiReqBeforeErrorSave = - dietPlansObject.toJson(forApiRQ: true); - - // act - await dietPlansObject.save(); - - // assert - final listValue = dietPlansObject.get(keyArray); - - expect(listValue, orderedEquals([1, 2])); - - final valueForApiReqAfterErrorSave = - dietPlansObject.toJson(forApiRQ: true); - - expect( - DeepCollectionEquality().equals( - valueForApiReqAfterErrorSave, - valueForApiReqBeforeErrorSave, - ), - isTrue, - ); - }); - }, - ); -} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_create_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_create_test.dart deleted file mode 100644 index ee4c205bd..000000000 --- a/packages/dart/test/src/objects/parse_object/parse_object_create_test.dart +++ /dev/null @@ -1,159 +0,0 @@ -import 'dart:convert'; - -import 'package:mockito/mockito.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../parse_query_test.mocks.dart'; -import '../../../test_utils.dart'; - -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group('create()', () { - late MockParseClient client; - - late ParseObject dietPlansObject; - - late String postPath; - - setUp(() { - client = MockParseClient(); - - final user = ParseObject(keyClassUser)..objectId = "ELR124r8C"; - dietPlansObject = ParseObject("Diet_Plans", client: client); - dietPlansObject - ..set('Name', 'value') - ..set('Fat', 15) - ..set('user', user) - ..set("location", ParseGeoPoint(latitude: 10, longitude: 10)); - - postPath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}', - ).toString(); - }); - - test( - 'create() should create new object on the server, return the created ' - 'object in ParseResponse results and update the calling object ' - 'with the new data (objectId,createdAt). i.e: mutate the object state', - () async { - // arrange - - const resultFromServer = { - keyVarObjectId: "DLde4rYA8C", - keyVarCreatedAt: "2023-02-26T00:20:37.187Z" - }; - final postData = jsonEncode(dietPlansObject.toJson(forApiRQ: true)); - - when(client.post( - postPath, - options: anyNamed("options"), - data: postData, - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ), - ); - - // act - ParseResponse response = await dietPlansObject.create(); - - // assert - final resultList = response.results; - - expect(resultList, isNotNull); - - expect(resultList, isA>()); - - expect(resultList!.first, isNotNull); - - expect(resultList.first, isA()); - - final parseObject = (resultList.first as ParseObject); - - expect( - parseObject.createdAt!.toIso8601String(), - equals(resultFromServer[keyVarCreatedAt]), - ); - - expect( - dietPlansObject.createdAt!.toIso8601String(), - equals(resultFromServer[keyVarCreatedAt]), - ); - - expect( - parseObject.objectId, - equals(resultFromServer[keyVarObjectId]), - ); - - expect( - dietPlansObject.objectId, - equals(resultFromServer[keyVarObjectId]), - ); - - // the calling object (dietPlansObject) will be identical to the object - // in the ParseResponse results - expect( - identical(dietPlansObject, parseObject), - isTrue, - ); - - verify(client.post( - postPath, - options: anyNamed("options"), - data: postData, - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test('create() should return error', () async { - // arrange - - final postData = jsonEncode(dietPlansObject.toJson(forApiRQ: true)); - final errorData = jsonEncode({keyCode: -1, keyError: "someError"}); - - when(client.post( - postPath, - options: anyNamed("options"), - data: postData, - )).thenAnswer( - (_) async => ParseNetworkResponse(data: errorData, statusCode: -1), - ); - - // act - ParseResponse response = await dietPlansObject.create(); - - // assert - expect(response.success, isFalse); - - expect(response.result, isNull); - - expect(response.count, isZero); - - expect(response.results, isNull); - - expect(response.error, isNotNull); - - expect(response.error!.message, equals('someError')); - - expect(response.error!.code, equals(ParseError.otherCause)); - - expect(dietPlansObject.objectId, isNull); - - expect(dietPlansObject.createdAt, isNull); - - verify(client.post( - postPath, - options: anyNamed("options"), - data: postData, - )).called(1); - - verifyNoMoreInteractions(client); - }); - }); -} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_delete_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_delete_test.dart deleted file mode 100644 index 397ab9ef5..000000000 --- a/packages/dart/test/src/objects/parse_object/parse_object_delete_test.dart +++ /dev/null @@ -1,230 +0,0 @@ -import 'dart:convert'; - -import 'package:mockito/mockito.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../parse_query_test.mocks.dart'; -import '../../../test_utils.dart'; - -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group('delete()', () { - late MockParseClient client; - - late ParseObject dietPlansObject; - - setUp(() { - client = MockParseClient(); - - dietPlansObject = ParseObject("Diet_Plans", client: client); - }); - - test( - 'delete() should delete object form the server and all the object ' - 'data/state should be the same after the deletion', () async { - // arrange - dietPlansObject.objectId = "cmWCmCAyQQ"; - - dietPlansObject.set('Fat', 15); - - final dietPlansObjectDataBeforeDeletion = dietPlansObject.toJson(); - - final deletePath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}/${dietPlansObject.objectId}', - ).toString(); - - final resultFromServer = {}; - - when(client.delete( - deletePath, - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ), - ); - - // act - final response = await dietPlansObject.delete(); - - // assert - - expect(response.success, isTrue); - - expect(response.count, equals(1)); - - expect(response.error, isNull); - - expect(response.results, isNotNull); - - expect(response.results, isA>()); - - expect(response.results!.isNotEmpty, isTrue); - - final objectFromResponse = response.results!.first; - - expect(objectFromResponse, isA()); - - expect(identical(objectFromResponse, dietPlansObject), isTrue); - - final dietPlansObjectDataAfterDeletion = - (objectFromResponse as ParseObject).toJson(); - - expect( - jsonEncode(dietPlansObjectDataAfterDeletion), - equals(jsonEncode(dietPlansObjectDataBeforeDeletion)), - ); - - verify(client.delete( - deletePath, - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test('delete() should return error', () async { - // arrange - dietPlansObject.objectId = "cmWCmCAyQQ"; - - dietPlansObject.set('Fat', 15); - - final dietPlansObjectDataBeforeDeletion = - dietPlansObject.toJson(full: true); - - final deletePath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}/${dietPlansObject.objectId}', - ).toString(); - - final error = Exception('error'); - - when(client.delete( - deletePath, - )).thenThrow(error); - - // act - final response = await dietPlansObject.delete(); - - // assert - expect(response.success, isFalse); - - expect(response.result, isNull); - - expect(response.count, isZero); - - expect(response.results, isNull); - - expect(response.error, isNotNull); - - expect(response.error!.exception, equals(error)); - - expect(response.error!.code, equals(ParseError.otherCause)); - - final dietPlansObjectDataAfterDeletion = - dietPlansObject.toJson(full: true); - - expect( - jsonEncode(dietPlansObjectDataAfterDeletion), - equals(jsonEncode(dietPlansObjectDataBeforeDeletion)), - ); - - verify(client.delete( - deletePath, - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test( - 'delete(id: id) should delete object form the server and all the object ' - 'data/state should be the same after the deletion using id parameter', - () async { - // arrange - const id = "cmWCmCAyQQ"; - - dietPlansObject.set('Fat', 15); - - final dietPlansObjectDataBeforeDeletion = dietPlansObject.toJson(); - - final deletePath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}/$id', - ).toString(); - - final resultFromServer = {}; - - when(client.delete( - deletePath, - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ), - ); - - // act - final response = await dietPlansObject.delete(id: id); - - // assert - - expect(response.success, isTrue); - - expect(response.count, equals(1)); - - expect(response.error, isNull); - - expect(response.results, isNotNull); - - expect(response.results, isA>()); - - expect(response.results!.isNotEmpty, isTrue); - - final objectFromResponse = response.results!.first; - - expect(objectFromResponse, isA()); - - expect(identical(objectFromResponse, dietPlansObject), isTrue); - - final dietPlansObjectDataAfterDeletion = - (objectFromResponse as ParseObject).toJson(); - - expect( - jsonEncode(dietPlansObjectDataAfterDeletion), - equals(jsonEncode(dietPlansObjectDataBeforeDeletion)), - ); - - verify(client.delete( - deletePath, - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test( - 'delete() should throw Exception if both objectId and id parameter ' - 'is null or empty', () async { - // arrange - dietPlansObject.objectId = null; - String? id; - - // assert - expect( - () async => await dietPlansObject.delete(id: id), - throwsA(isA()), - reason: 'both objectId and id are null', - ); - - dietPlansObject.objectId = ''; - id = ''; - expect( - () async => await dietPlansObject.delete(id: id), - throwsA(isA()), - reason: 'both objectId and id are empty', - ); - - verifyZeroInteractions(client); - }); - }); -} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_distinct_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_distinct_test.dart deleted file mode 100644 index d61384cdd..000000000 --- a/packages/dart/test/src/objects/parse_object/parse_object_distinct_test.dart +++ /dev/null @@ -1,167 +0,0 @@ -import 'dart:convert'; - -import 'package:mockito/mockito.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../parse_query_test.mocks.dart'; -import '../../../test_utils.dart'; - -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group('distinct()', () { - late MockParseClient client; - - late ParseObject dietPlansObject; - - const keyName = 'Name'; - late String stringDistinctQuery = 'distinct=$keyName'; - - // https://example.com/aggregate/Diet_Plans?distinct=Name - late String getPath; - - setUp(() { - client = MockParseClient(); - - dietPlansObject = ParseObject("Diet_Plans", client: client); - - final getURI = Uri.parse( - '$serverUrl$keyEndPointAggregate${dietPlansObject.parseClassName}', - ); - getPath = getURI.replace(query: stringDistinctQuery).toString(); - }); - - test( - 'distinct() should return the expected result from server with ' - 'distinct aggregate on a column', () async { - // arrange - const resultFromServer = { - "results": [ - { - "objectId": "lHJEkg7kxm", - "Name": "Textbook", - "Description": - "For an active lifestyle and a straight forward macro plan, we suggest this plan.", - "Fat": 25, - "Carbs": 50, - "Protein": 25, - "Status": false, - "user": { - "__type": "Pointer", - "className": "_User", - "objectId": "cmWCmCAyQQ" - }, - "createdAt": "2023-02-24T15:39:44.800Z", - "updatedAt": "2023-02-24T22:28:17.867Z", - "location": {"__type": "GeoPoint", "latitude": 50, "longitude": 0}, - "anArray": ["3", "4"] - }, - { - "objectId": "15NCdmBFBw", - "Name": "Zone Diet", - "Description": - "Popular with CrossFit users. Zone Diet targets similar macros.", - "Fat": 30, - "Carbs": 40, - "Protein": 30, - "Status": true, - "user": { - "__type": "Pointer", - "className": "_User", - "objectId": "cmWCmCAyQQ" - }, - "createdAt": "2023-02-24T15:44:17.781Z", - "updatedAt": "2023-02-24T22:28:45.446Z", - "location": {"__type": "GeoPoint", "latitude": 10, "longitude": 20}, - "anArray": ["1", "2"], - "afile": { - "__type": "File", - "name": "33b6acb416c0mmer-wallpapers.png", - "url": "https://parsefiles.back4app.com/gyBkQBRSapgwfxB/cers.png" - } - } - ] - }; - - final resultList = resultFromServer["results"]!; - final firstObject = ParseObject('Diet_Plans').fromJson(resultList[0]); - final secondObject = ParseObject('Diet_Plans').fromJson(resultList[1]); - - when(client.get( - getPath, - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ), - ); - - // act - final response = await dietPlansObject.distinct(stringDistinctQuery); - - // assert - - expect(response.count, equals(2)); - - expect(response.success, isTrue); - - expect(response.results, isNotNull); - - expect(response.results, isA>()); - - final responseResults = List.from(response.results!); - - expect( - jsonEncode(responseResults[0].toJson()), - equals(jsonEncode(firstObject.toJson())), - ); - - expect( - jsonEncode(responseResults[1].toJson()), - equals(jsonEncode(secondObject.toJson())), - ); - - verify(client.get( - getPath, - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test('distinct() should return error', () async { - // arrange - final error = Exception('error'); - - when(client.get( - getPath, - )).thenThrow(error); - - // act - final response = await dietPlansObject.distinct(stringDistinctQuery); - - // assert - expect(response.success, isFalse); - - expect(response.result, isNull); - - expect(response.count, isZero); - - expect(response.results, isNull); - - expect(response.error, isNotNull); - - expect(response.error!.exception, equals(error)); - - expect(response.error!.code, equals(ParseError.otherCause)); - - verify(client.get( - getPath, - )).called(1); - - verifyNoMoreInteractions(client); - }); - }); -} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_fetch_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_fetch_test.dart deleted file mode 100644 index bd3863b1d..000000000 --- a/packages/dart/test/src/objects/parse_object/parse_object_fetch_test.dart +++ /dev/null @@ -1,174 +0,0 @@ -import 'dart:convert'; - -import 'package:mockito/mockito.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../parse_query_test.mocks.dart'; -import '../../../test_utils.dart'; - -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group('fetch()', () { - late MockParseClient client; - - late ParseObject dietPlansObject; - - setUp(() { - client = MockParseClient(); - - dietPlansObject = ParseObject("Diet_Plans", client: client); - }); - - test( - 'fetch() should return fresh data from the server about an object using its ID', - () async { - // arrange - dietPlansObject.objectId = "Mn1iJTkWTE"; - - final getPath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}/${dietPlansObject.objectId}', - ).replace(query: 'include=afile,owner').toString(); - - const resultsFromServer = { - "results": [ - { - "objectId": "Mn1iJTkWTE", - "Name": "A string", - "Description": "A string", - "Carbs": 1, - "Fat": 1, - "Status": true, - "Protein": 1, - "co_owner": { - "__type": "Pointer", - "className": "_User", - "objectId": "cmWCmCAyQQ" - }, - "owner": { - "objectId": "eTSwGnAOAq", - "username": "n@g.com", - "createdAt": "2023-03-01T03:37:41.011Z", - "updatedAt": "2023-03-01T03:37:41.011Z", - "ACL": { - "*": {"read": true}, - "eTSwGnAOAq": {"read": true, "write": true} - }, - "__type": "Object", - "className": "_User" - }, - "location": { - "__type": "GeoPoint", - "latitude": 40, - "longitude": -30 - }, - "anArray": [1, "a string"], - "afile": { - "__type": "File", - "name": "resume.txt", - "url": "https://exampe.com/gyBUISapgwfxB/resume.txt" - }, - "createdAt": "2023-03-05T00:25:31.466Z", - "updatedAt": "2023-03-05T00:25:31.466Z", - "users": {"__type": "Relation", "className": "_User"} - }, - ] - }; - - final expectedParseObject = ParseObject('Diet_Plans') - ..fromJson(resultsFromServer['results']!.first); - - when(client.get( - getPath, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultsFromServer), - ), - ); - - // act - ParseObject parseObject = await dietPlansObject.fetch( - include: ['afile', 'owner'], - ); - - // assert - - expect( - jsonEncode(parseObject.toJson(full: true)), - equals(jsonEncode(expectedParseObject.toJson(full: true))), - ); - - verify(client.get( - getPath, - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test( - 'fetch() should return the same calling object in case of an error and ' - 'the object data should remain the same', () async { - // arrange - dietPlansObject.objectId = "Mn1iJTkWTE"; - - const keyFat = 'keyFat'; - const keyFatValue = 15; - - dietPlansObject.set(keyFat, keyFatValue); - - final getPath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}/${dietPlansObject.objectId}', - ).toString(); - - final error = Exception('error'); - - when(client.get( - getPath, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).thenThrow(error); - - // act - ParseObject parseObject = await dietPlansObject.fetch(); - - // assert - expect(identical(parseObject, dietPlansObject), isTrue); - - expect(dietPlansObject.get(keyFat), equals(keyFatValue)); - - verify(client.get( - getPath, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test('fetch() should throw exception if the objectId is null or empty ', - () async { - // arrange - dietPlansObject.objectId = null; - - expect( - () async => await dietPlansObject.fetch(), - throwsA(isA()), - reason: 'the objectId is null', - ); - - dietPlansObject.objectId = ''; - - expect( - () async => await dietPlansObject.fetch(), - throwsA(isA()), - reason: 'the objectId is empty', - ); - }); - }); -} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_get_all_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_get_all_test.dart deleted file mode 100644 index a43747d5b..000000000 --- a/packages/dart/test/src/objects/parse_object/parse_object_get_all_test.dart +++ /dev/null @@ -1,156 +0,0 @@ -import 'dart:convert'; - -import 'package:mockito/mockito.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../parse_query_test.mocks.dart'; -import '../../../test_utils.dart'; - -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group('getAll()', () { - late MockParseClient client; - - late ParseObject dietPlansObject; - - late String getPath; - - setUp(() { - client = MockParseClient(); - - dietPlansObject = ParseObject("Diet_Plans", client: client); - - getPath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}', - ).toString(); - }); - - test('getAll() should return all objects', () async { - // arrange - - const desiredOutput = { - "results": [ - { - "objectId": "lHJEkg7kxm", - "Name": "Textbook", - "Description": - "For an active lifestyle and a straight forward macro plan, we suggest this plan.", - "Fat": 25, - "Carbs": 50, - "Protein": 25, - "Status": false, - "user": { - "__type": "Pointer", - "className": "_User", - "objectId": "cmWCmCAyQQ" - }, - "createdAt": "2023-02-24T15:39:44.800Z", - "updatedAt": "2023-02-24T22:28:17.867Z", - "location": {"__type": "GeoPoint", "latitude": 50, "longitude": 0}, - "anArray": ["3", "4"] - }, - { - "objectId": "15NCdmBFBw", - "Name": "Zone Diet", - "Description": - "Popular with CrossFit users. Zone Diet targets similar macros.", - "Fat": 30, - "Carbs": 40, - "Protein": 30, - "Status": true, - "user": { - "__type": "Pointer", - "className": "_User", - "objectId": "cmWCmCAyQQ" - }, - "createdAt": "2023-02-24T15:44:17.781Z", - "updatedAt": "2023-02-24T22:28:45.446Z", - "location": {"__type": "GeoPoint", "latitude": 10, "longitude": 20}, - "anArray": ["1", "2"], - "afile": { - "__type": "File", - "name": "33b6acb416c0mmer-wallpapers.png", - "url": "https://parsefiles.back4app.com/gyBkQBRSapgwfxB/cers.png" - } - } - ] - }; - - when(client.get( - getPath, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).thenAnswer((_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(desiredOutput), - )); - - // act - ParseResponse response = await dietPlansObject.getAll(); - - // assert - List listParseObject = List.from( - response.results!, - ); - - expect(response.results?.first, isA()); - - expect(response.count, equals(2)); - - expect( - listParseObject.length, - equals(desiredOutput["results"]!.length), - ); - - verify(client.get( - getPath, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test('getAll() should return error', () async { - // arrange - - final error = Exception('error'); - - when(client.get( - getPath, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).thenThrow(error); - - // act - ParseResponse response = await dietPlansObject.getAll(); - - // assert - expect(response.success, isFalse); - - expect(response.result, isNull); - - expect(response.count, isZero); - - expect(response.results, isNull); - - expect(response.error, isNotNull); - - expect(response.error!.exception, equals(error)); - - expect(response.error!.code, equals(-1)); - - verify(client.get( - getPath, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).called(1); - - verifyNoMoreInteractions(client); - }); - }); -} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_get_object_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_get_object_test.dart deleted file mode 100644 index 73c6adf24..000000000 --- a/packages/dart/test/src/objects/parse_object/parse_object_get_object_test.dart +++ /dev/null @@ -1,170 +0,0 @@ -import 'dart:convert'; - -import 'package:mockito/mockito.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../parse_query_test.mocks.dart'; -import '../../../test_utils.dart'; - -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group('getObject()', () { - late MockParseClient client; - - late ParseObject dietPlansObject; - - late String getPath; - - const objectId = "Mn1iJTkWTE"; - - setUp(() { - client = MockParseClient(); - - dietPlansObject = ParseObject("Diet_Plans", client: client); - - dietPlansObject.objectId = objectId; - - getPath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}/${dietPlansObject.objectId}', - ).replace(query: 'include=afile,owner').toString(); - }); - - test('getObject() should get a object form the server using its objectId', - () async { - // arrange - const resultsFromServer = { - "results": [ - { - "objectId": "Mn1iJTkWTE", - "Name": "A string", - "Description": "A string", - "Carbs": 1, - "Fat": 1, - "Status": true, - "Protein": 1, - "co_owner": { - "__type": "Pointer", - "className": "_User", - "objectId": "cmWCmCAyQQ" - }, - "owner": { - "objectId": "eTSwGnAOAq", - "username": "n@g.com", - "createdAt": "2023-03-01T03:37:41.011Z", - "updatedAt": "2023-03-01T03:37:41.011Z", - "ACL": { - "*": {"read": true}, - "eTSwGnAOAq": {"read": true, "write": true} - }, - "__type": "Object", - "className": "_User" - }, - "location": { - "__type": "GeoPoint", - "latitude": 40, - "longitude": -30 - }, - "anArray": [1, "a string"], - "afile": { - "__type": "File", - "name": "resume.txt", - "url": "https://exampe.com/gyBUISapgwfxB/resume.txt" - }, - "createdAt": "2023-03-05T00:25:31.466Z", - "updatedAt": "2023-03-05T00:25:31.466Z", - "users": {"__type": "Relation", "className": "_User"} - }, - ] - }; - - final expectedParseObject = ParseObject('Diet_Plans') - ..fromJson(resultsFromServer['results']!.first); - - when(client.get( - getPath, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultsFromServer), - ), - ); - - // act - final response = await dietPlansObject.getObject( - objectId, - include: ['afile', 'owner'], - ); - - // assert - expect(response.count, equals(1)); - - expect(response.success, isTrue); - - expect(response.results, isNotNull); - - expect(response.results, isA>()); - - final responseResults = List.from(response.results!); - - final parseObjectFromServer = responseResults.first; - - expect( - jsonEncode(parseObjectFromServer.toJson(full: true)), - equals(jsonEncode(expectedParseObject.toJson(full: true))), - ); - - verify(client.get( - getPath, - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test('getObject() should return error', () async { - // arrange - - final error = Exception('error'); - - when(client.get( - getPath, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).thenThrow(error); - - // act - final response = await dietPlansObject.getObject( - objectId, - include: ['afile', 'owner'], - ); - - // assert - expect(response.success, isFalse); - - expect(response.result, isNull); - - expect(response.count, isZero); - - expect(response.results, isNull); - - expect(response.error, isNotNull); - - expect(response.error!.exception, equals(error)); - - expect(response.error!.code, equals(ParseError.otherCause)); - - verify(client.get( - getPath, - options: anyNamed("options"), - onReceiveProgress: anyNamed("onReceiveProgress"), - )).called(1); - - verifyNoMoreInteractions(client); - }); - }); -} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_increment_decrement_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_increment_decrement_test.dart deleted file mode 100644 index eb7c5dcf6..000000000 --- a/packages/dart/test/src/objects/parse_object/parse_object_increment_decrement_test.dart +++ /dev/null @@ -1,428 +0,0 @@ -import 'dart:convert'; - -import 'package:collection/collection.dart'; -import 'package:mockito/mockito.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../parse_query_test.mocks.dart'; -import '../../../test_utils.dart'; - -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group('Increment/Decrement', () { - late MockParseClient client; - - late ParseObject dietPlansObject; - - const keyFat = 'fat'; - - setUp(() async { - client = MockParseClient(); - - dietPlansObject = ParseObject("Diet_Plans", client: client); - }); - - test( - 'Incrementing values using setIncrement() and then calling get(key) ' - 'should return Instance of num that hold the result of incrementing ' - 'the value by the amount parameter', () { - // arrange - dietPlansObject.set(keyFat, 0); - - // act - dietPlansObject.setIncrement(keyFat, 1); - dietPlansObject.setIncrement(keyFat, 2.5); - - // assert - final fatValue = dietPlansObject.get(keyFat); - - expect(fatValue, isA()); - - expect(fatValue, equals(3.5)); - }); - - test( - 'Incrementing not existing values should be handled by assuming' - 'that the default value is 0 and operate on it', () { - // act - dietPlansObject.setIncrement(keyFat, 1); - dietPlansObject.setIncrement(keyFat, 2.5); - - // assert - final fatValue = dietPlansObject.get(keyFat); - - expect(fatValue, isA()); - - expect(fatValue, equals(3.5)); - }); - - test( - 'Incrementing should work with already present values decoded from API', - () { - // arrange - const resultFromServer = { - "objectId": "O6BHlwV48Z", - "createdAt": "2023-02-26T13:23:03.073Z", - "updatedAt": "2023-03-01T03:38:16.390Z", - keyFat: 2.5, - }; - - dietPlansObject = ParseObject('Diet_Plans')..fromJson(resultFromServer); - - // act - dietPlansObject.setIncrement(keyFat, 2.5); - - // assert - final fatValue = dietPlansObject.get(keyFat); - - expect(fatValue, isA()); - - expect(fatValue, equals(5)); - }); - test( - 'setIncrement() should account for pervasively set value', - () { - // arrange - dietPlansObject.set(keyFat, 5); - - // act - dietPlansObject.setIncrement(keyFat, 2.5); - - // assert - final fatValue = dietPlansObject.get(keyFat); - - expect(fatValue, isA()); - - expect(fatValue, equals(7.5)); - }, - ); - - test( - 'setIncrement() operation should not be mergeable with any other' - 'operation other than setDecrement()', () { - testUnmergeableOperationShouldThrow( - parseObject: dietPlansObject, - testingOn: dietPlansObject.setIncrement, - excludeMergeableOperations: [dietPlansObject.setDecrement], - ); - }); - - test( - 'the amount that should be added to a value for the API should be incremental' - ' and independent from the estimated value (the increment operation result)', - () { - // arrange - dietPlansObject.fromJson({keyFat: 10}); - - // act - dietPlansObject.setIncrement(keyFat, 2.5); - dietPlansObject.setIncrement(keyFat, 2.5); - - // assert - expect( - dietPlansObject.toJson(forApiRQ: true)[keyFat]['amount'], - equals(5.0), - ); - - expect( - dietPlansObject.get(keyFat), - equals(15.0), - ); - }, - ); - - test( - 'Decrementing values using setDecrement() and then calling get(key) ' - 'should return Instance of num that hold the result of decrementing ' - 'the value by the amount parameter', () { - // arrange - dietPlansObject.set(keyFat, 0); - - // act - dietPlansObject.setDecrement(keyFat, 1); - dietPlansObject.setDecrement(keyFat, 2.5); - - // assert - final fatValue = dietPlansObject.get(keyFat); - - expect(fatValue, isA()); - - expect(fatValue, equals(-3.5)); - }); - - test( - 'Decrementing not existing values should be handled by assuming' - 'that the default value is 0 and operate on it', () { - // act - dietPlansObject.setDecrement(keyFat, 1); - dietPlansObject.setDecrement(keyFat, 2.5); - - // assert - final fatValue = dietPlansObject.get(keyFat); - - expect(fatValue, isA()); - - expect(fatValue, equals(-3.5)); - }); - - test( - 'Decrementing should work with already present values decoded from API', - () { - // arrange - const resultFromServer = { - "objectId": "O6BHlwV48Z", - "createdAt": "2023-02-26T13:23:03.073Z", - "updatedAt": "2023-03-01T03:38:16.390Z", - keyFat: 3.5, - }; - - dietPlansObject = ParseObject('Diet_Plans')..fromJson(resultFromServer); - - // act - dietPlansObject.setDecrement(keyFat, 2.5); - - // assert - final fatValue = dietPlansObject.get(keyFat); - - expect(fatValue, isA()); - - expect(fatValue, equals(1)); - }); - - test( - 'setDecrement() should account for pervasively set value', - () { - // arrange - dietPlansObject.set(keyFat, 5); - - // act - dietPlansObject.setDecrement(keyFat, 3); - - // assert - final fatValue = dietPlansObject.get(keyFat); - - expect(fatValue, isA()); - - expect(fatValue, equals(2)); - }, - ); - - test( - 'the amount that should be subtracted from a value for the API should be incremental' - ' and independent from the estimated value (the decrement operation result)', - () { - // arrange - dietPlansObject.fromJson({keyFat: 10}); - - // act - dietPlansObject.setDecrement(keyFat, 2.5); - dietPlansObject.setDecrement(keyFat, 2.5); - - // assert - expect( - dietPlansObject.toJson(forApiRQ: true)[keyFat]['amount'], - equals(-5.0), - ); - - expect( - dietPlansObject.get(keyFat), - equals(5.0), - ); - }, - ); - - test( - 'mixing and matching Decrements and Increments should not cause ' - 'any issue', () { - // act - dietPlansObject.setDecrement(keyFat, 2.5); - - dietPlansObject.setIncrement(keyFat, 5); - - dietPlansObject.setDecrement(keyFat, 3); - - dietPlansObject.setIncrement(keyFat, 1.5); - - // assert - final fatValue = dietPlansObject.get(keyFat); - - expect(fatValue, isA()); - - expect(fatValue, equals(1)); - }); - - test( - 'setDecrement() operation should not be mergeable with any other' - 'operation other than setIncrement()', () { - testUnmergeableOperationShouldThrow( - parseObject: dietPlansObject, - testingOn: dietPlansObject.setDecrement, - excludeMergeableOperations: [dietPlansObject.setIncrement], - ); - }); - - test( - 'When calling clearUnsavedChanges() the number should be reverted back' - ' to its original state before any modifications were made', () { - // arrange - dietPlansObject.fromJson({ - 'myNumber': 5, - "objectId": "someId" - }); // assume this coming from the server - - dietPlansObject.setIncrement('myNumber', 5); - - // act - dietPlansObject.clearUnsavedChanges(); - - // assert - final number = dietPlansObject.get('myNumber'); - - expect(number, equals(5)); - }); - - test( - 'The number internal state should be identical ' - 'before and after storing it in data store', () async { - // arrange - dietPlansObject.fromJson({ - 'myNumber': 5, - "objectId": "someId" - }); // assume this coming from the server - - dietPlansObject.setIncrement('myNumber', 5); - - final numberBeforePin = dietPlansObject.get('myNumber'); - final toJsonBeforePin = dietPlansObject.toJson(forApiRQ: true); - - // act - await dietPlansObject.pin(); - - final objectFromPin = await dietPlansObject.fromPin('someId'); - - // assert - final numberAfterPin = objectFromPin.get('myNumber'); - final toJsonAfterPin = objectFromPin.toJson(forApiRQ: true); - - expect(numberBeforePin, equals(numberAfterPin)); - - expect( - DeepCollectionEquality().equals(toJsonBeforePin, toJsonAfterPin), - isTrue, - ); - }); - - test( - 'If an Increment/Decrement operation is performed during the save() ' - 'function, the result of the operation should be present in the internal ' - 'state of the ParseNumber as a value that has not been saved. The data ' - 'that has been saved should be moved to the saved state', - () async { - // arrange - const resultFromServer = { - keyVarObjectId: "DLde4rYA8C", - keyVarCreatedAt: "2023-02-26T00:20:37.187Z" - }; - - when(client.post( - any, - options: anyNamed("options"), - data: anyNamed('data'), - )).thenAnswer( - (_) async { - await Future.delayed(Duration(milliseconds: 100)); - return ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ); - }, - ); - - dietPlansObject.setIncrement('myNumber', 1); - - final numberBeforeSave = dietPlansObject.get('myNumber'); - final valueForApiReqBeforeSave = dietPlansObject.toJson(forApiRQ: true); - - // act - dietPlansObject.save(); - - // async gap, this could be anything in the app like a click of a button - await Future.delayed(Duration.zero); - - // Then suddenly the user increment the value - dietPlansObject.setIncrement('myNumber', 3); - - // Await the save function to be done - await Future.delayed(Duration(milliseconds: 150)); - - // assert - expect(numberBeforeSave, equals(1)); - - final numberAfterSave = dietPlansObject.get('myNumber'); - expect(numberAfterSave, equals(4)); - - const expectedValueForApiReqBeforeSave = { - "myNumber": {"__op": "Increment", "amount": 1} - }; - expect( - DeepCollectionEquality().equals( - valueForApiReqBeforeSave, - expectedValueForApiReqBeforeSave, - ), - isTrue, - ); - - final valueForApiReqAfterSave = dietPlansObject.toJson(forApiRQ: true); - const expectedValueForApiReqAfterSave = { - "myNumber": {"__op": "Increment", "amount": 3} - }; - expect( - DeepCollectionEquality().equals( - valueForApiReqAfterSave, - expectedValueForApiReqAfterSave, - ), - isTrue, - ); - }, - ); - - test( - 'The number value and the number value for api request should be identical ' - 'before and after the save() failed to save the object', () { - // arrange - - when(client.post( - any, - options: anyNamed("options"), - data: anyNamed("data"), - )).thenThrow(Exception('error')); - - dietPlansObject.setIncrement('myNumber', 1); - - final valueForApiReqBeforeErrorSave = - dietPlansObject.toJson(forApiRQ: true); - - // act - dietPlansObject.save(); - - // assert - final numberValue = dietPlansObject.get('myNumber'); - - expect(numberValue, equals(1)); - - final valueForApiReqAfterErrorSave = - dietPlansObject.toJson(forApiRQ: true); - expect( - DeepCollectionEquality().equals( - valueForApiReqAfterErrorSave, - valueForApiReqBeforeErrorSave, - ), - isTrue, - ); - }); - }); -} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_query_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_query_test.dart deleted file mode 100644 index 0f067abe3..000000000 --- a/packages/dart/test/src/objects/parse_object/parse_object_query_test.dart +++ /dev/null @@ -1,172 +0,0 @@ -import 'dart:convert'; - -import 'package:mockito/mockito.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../parse_query_test.mocks.dart'; -import '../../../test_utils.dart'; - -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group('query()', () { - late MockParseClient client; - - late ParseObject dietPlansObject; - - const keyFat = 'fat'; - - //where={"fat": 15} - late String stringQuery; - - //https://example.com/classes/Diet_Plans?where=%7B%22fat%22:%2015%7D - late String getPath; - - setUp(() { - client = MockParseClient(); - - dietPlansObject = ParseObject("Diet_Plans", client: client); - - final query = QueryBuilder(dietPlansObject)..whereEqualTo(keyFat, 15); - stringQuery = query.buildQuery(); - - final getURI = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}', - ); - getPath = getURI.replace(query: 'where={"fat": 15}').toString(); - }); - - test('query() should return the expected result from server', () async { - // arrange - const resultFromServer = { - "results": [ - { - "objectId": "lHJEkg7kxm", - "Name": "Textbook", - "Description": - "For an active lifestyle and a straight forward macro plan, we suggest this plan.", - "Fat": 25, - "Carbs": 50, - "Protein": 25, - "Status": false, - "user": { - "__type": "Pointer", - "className": "_User", - "objectId": "cmWCmCAyQQ" - }, - "createdAt": "2023-02-24T15:39:44.800Z", - "updatedAt": "2023-02-24T22:28:17.867Z", - "location": {"__type": "GeoPoint", "latitude": 50, "longitude": 0}, - "anArray": ["3", "4"] - }, - { - "objectId": "15NCdmBFBw", - "Name": "Zone Diet", - "Description": - "Popular with CrossFit users. Zone Diet targets similar macros.", - "Fat": 30, - "Carbs": 40, - "Protein": 30, - "Status": true, - "user": { - "__type": "Pointer", - "className": "_User", - "objectId": "cmWCmCAyQQ" - }, - "createdAt": "2023-02-24T15:44:17.781Z", - "updatedAt": "2023-02-24T22:28:45.446Z", - "location": {"__type": "GeoPoint", "latitude": 10, "longitude": 20}, - "anArray": ["1", "2"], - "afile": { - "__type": "File", - "name": "33b6acb416c0mmer-wallpapers.png", - "url": "https://parsefiles.back4app.com/gyBkQBRSapgwfxB/cers.png" - } - } - ] - }; - - final resultList = resultFromServer["results"]!; - final firstObject = ParseObject('Diet_Plans').fromJson(resultList[0]); - final secondObject = ParseObject('Diet_Plans').fromJson(resultList[1]); - - when(client.get( - getPath, - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ), - ); - - // act - final response = await dietPlansObject.query(stringQuery); - - // assert - - expect(response.count, equals(2)); - - expect(response.success, isTrue); - - expect(response.results, isNotNull); - - expect(response.error, isNull); - - expect(response.results, isA>()); - - final responseResults = List.from(response.results!); - - expect( - jsonEncode(responseResults[0].toJson()), - equals(jsonEncode(firstObject.toJson())), - ); - - expect( - jsonEncode(responseResults[1].toJson()), - equals(jsonEncode(secondObject.toJson())), - ); - - verify(client.get( - getPath, - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test('query() should return error', () async { - // arrange - final error = Exception('error'); - - when(client.get( - getPath, - )).thenThrow(error); - - // act - final response = await dietPlansObject.query(stringQuery); - - // assert - expect(response.success, isFalse); - - expect(response.result, isNull); - - expect(response.count, isZero); - - expect(response.results, isNull); - - expect(response.error, isNotNull); - - expect(response.error!.exception, equals(error)); - - expect(response.error!.code, equals(ParseError.otherCause)); - - verify(client.get( - getPath, - )).called(1); - - verifyNoMoreInteractions(client); - }); - }); -} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_relation_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_relation_test.dart deleted file mode 100644 index 773cd58c8..000000000 --- a/packages/dart/test/src/objects/parse_object/parse_object_relation_test.dart +++ /dev/null @@ -1,637 +0,0 @@ -import 'dart:convert'; - -import 'package:collection/collection.dart'; -import 'package:mockito/mockito.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../parse_query_test.mocks.dart'; -import '../../../test_utils.dart'; - -void main() { - group('Relation', () { - setUpAll(() async { - await initializeParse(); - }); - - late ParseObject dietPlansObject; - late MockParseClient client; - - late ParseUser user1; - late ParseUser user2; - - setUp(() { - client = MockParseClient(); - - user1 = ParseUser.forQuery()..objectId = 'user1'; - user2 = ParseUser.forQuery()..objectId = 'user2'; - - dietPlansObject = ParseObject('Diet_Plans', client: client); - }); - - test('addRelation(): the relation should hold two objects ', () { - // act - dietPlansObject.addRelation('usersRelation', [user1, user2]); - - // assert - final toJsonAfterAddRelation = dietPlansObject.toJson(forApiRQ: true); - - const expectedToJson = { - "usersRelation": { - "__op": "AddRelation", - "objects": [ - {"__type": "Pointer", "className": "_User", "objectId": "user1"}, - { - "__type": "Pointer", - "className": "_User", - "objectId": "user2", - } - ] - } - }; - - expect( - DeepCollectionEquality().equals( - expectedToJson, - toJsonAfterAddRelation, - ), - isTrue, - ); - }); - - test( - 'calling getRelation after adding Relation should return ParseRelation', - () { - // arrange - dietPlansObject.addRelation('usersRelation', [user1, user2]); - - // assert - expect( - () => dietPlansObject.getRelation('usersRelation'), - returnsNormally, - ); - }, - ); - - test( - 'calling getRelation after removing Relation should return ParseRelation', - () { - // arrange - dietPlansObject.removeRelation('usersRelation', [user1, user2]); - - // assert - expect( - () => dietPlansObject.getRelation('usersRelation'), - returnsNormally, - ); - }, - ); - - test('addRelation() operation should not be mergeable with any other', () { - testUnmergeableOperationShouldThrow( - parseObject: dietPlansObject, - testingOn: dietPlansObject.addRelation, - ); - }); - - test('removeRelation() operation should not be mergeable with any other', - () { - testUnmergeableOperationShouldThrow( - parseObject: dietPlansObject, - testingOn: dietPlansObject.removeRelation, - ); - }); - - test('getParent() should rerun the parent of the relation', () { - // arrange - final relation = dietPlansObject.getRelation('someRelationKey'); - - // act - final parent = relation.getParent(); - - // assert - expect(parent, dietPlansObject); - }); - - test('getKey() should rerun the relation key', () { - // arrange - final relation = dietPlansObject.getRelation('someRelationKey'); - - // act - final relationKey = relation.getKey(); - - // assert - expect(relationKey, equals('someRelationKey')); - }); - - test( - 'getTargetClass() should rerun null if the relation target class not known yet', - () { - // arrange - final relation = dietPlansObject.getRelation('someRelationKey'); - - // act - final targetClass = relation.targetClass; - - // assert - expect(targetClass, isNull); - }); - - test( - 'getTargetClass() should rerun the target class for the relation if ' - 'the user adds an object from the relation', () { - // arrange - final relation = dietPlansObject.getRelation('someRelationKey'); - - // act - relation.add(ParseObject('someClassNameAsTargetClass')); - final targetClass = relation.targetClass; - - // assert - expect(targetClass, equals('someClassNameAsTargetClass')); - }); - - test( - 'getTargetClass() should rerun the target class for the relation if ' - 'the user removes an object from the relation', () { - // arrange - final relation = dietPlansObject.getRelation('someRelationKey'); - - // act - relation.remove(ParseObject('someClassNameAsTargetClass')); - final targetClass = relation.targetClass; - - // assert - expect(targetClass, equals('someClassNameAsTargetClass')); - }); - - test( - 'getTargetClass() should return the target class for a relation when' - ' the object is received from the server', () { - // arrange - dietPlansObject.fromJson({ - "someRelationKey": { - "__type": "Relation", - "className": "someClassNameAsTargetClass" - } - }); // assume this from the server - - final relation = dietPlansObject.getRelation('someRelationKey'); - - // act - final targetClass = relation.targetClass; - - // assert - expect(targetClass, equals('someClassNameAsTargetClass')); - }); - - test('getQuery() should throw exception if the parent objectId is null ', - () { - // arrange - final relation = dietPlansObject.getRelation('someRelationKey'); - - // assert - expect(() => relation.getQuery(), throwsA(isA())); - }); - - test( - 'getQuery() should return QueryBuilder utilizing the ' - 'redirectClassNameForKey feature if the target class is null ', () { - // arrange - dietPlansObject.objectId = "someParentID"; - final relation = dietPlansObject.getRelation('someRelationKey'); - - // act - final query = relation.getQuery(); - - // assert - String expectedQuery = - r'where={"$relatedTo":{"object":{"__type":"Pointer","className":' - r'"Diet_Plans","objectId":"someParentID"},"key":"someRelationKey"}}' - r'&redirectClassNameForKey=someRelationKey'; - - expect(query.buildQuery(), equals(expectedQuery)); - }); - - test('getQuery() should return QueryBuilder with relatedTo constraint', () { - // arrange - dietPlansObject.objectId = "someParentID"; - final relation = dietPlansObject.getRelation('someRelationKey'); - relation.setTargetClass = 'someTargetClass'; - - // act - final query = relation.getQuery(); - - // assert - String expectedQuery = - r'where={"$relatedTo":{"object":{"__type":"Pointer","className":' - r'"Diet_Plans","objectId":"someParentID"},"key":"someRelationKey"}}'; - - expect(query.buildQuery(), equals(expectedQuery)); - }); - - test( - 'should throw an exception when trying to modify the target class if it is not null', - () { - // arrange - final relation = dietPlansObject.getRelation('someRelationKey'); - relation.add(ParseObject('someClassNameAsTargetClass')); - - // assert - expect( - () => relation.setTargetClass = "someOtherTargetClass", - throwsA(isA()), - ); - }); - - test( - 'When calling clearUnsavedChanges() the Relation should be reverted back' - ' to its original state before any modifications were made', () { - // arrange - - dietPlansObject.addRelation('someRelationKey', [user1, user1]); - - // act - dietPlansObject.clearUnsavedChanges(); - - // assert - final valueForApiReqAfterClearUnSaved = - dietPlansObject.toJson(forApiRQ: true); - - expect(valueForApiReqAfterClearUnSaved.isEmpty, isTrue); - - final relationValueForApiReq = - dietPlansObject.getRelation('someRelationKey').toJson(); - expect(relationValueForApiReq.isEmpty, isTrue); - }); - - test( - 'The Relation value and the value for api request should be identical ' - 'before and after the save() failed to save the object', () async { - // arrange - when(client.post( - any, - options: anyNamed("options"), - data: anyNamed("data"), - )).thenThrow(Exception('error')); - - dietPlansObject.addRelation('someRelationKey', [user1, user1]); - - final valueForApiReqBeforeErrorSave = - dietPlansObject.toJson(forApiRQ: true); - - final relationInternalStateBeforeErrorSave = - dietPlansObject.getRelation('someRelationKey').toJson(full: true); - - // act - await dietPlansObject.save(); - - // assert - final valueForApiReqAfterErrorSave = - dietPlansObject.toJson(forApiRQ: true); - expect( - DeepCollectionEquality().equals( - valueForApiReqAfterErrorSave, - valueForApiReqBeforeErrorSave, - ), - isTrue, - ); - - final relationInternalStateAfterErrorSave = - dietPlansObject.getRelation('someRelationKey').toJson(full: true); - - expect( - DeepCollectionEquality().equals( - relationInternalStateBeforeErrorSave, - relationInternalStateAfterErrorSave, - ), - isTrue, - ); - }); - - test( - 'After the save() function runs successfully for an API request, ' - 'the ParseRelation internal value for API request should be empty', - () async { - // arrange - - // batch arrange - const resultFromServerForBatch = [ - { - "success": { - keyVarObjectId: 'YAfSAWwXbL', - keyVarCreatedAt: "2023-03-10T12:23:45.678Z", - } - } - ]; - - final batchData = jsonEncode( - { - "requests": [ - { - 'method': 'PUT', - 'path': - '$keyEndPointClasses${user1.parseClassName}/${user1.objectId}', - 'body': user1.toJson(forApiRQ: true), - } - ] - }, - ); - - final batchPath = Uri.parse('$serverUrl/batch').toString(); - - when(client.post( - batchPath, - options: anyNamed("options"), - data: batchData, - )).thenAnswer( - (_) async { - return ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServerForBatch), - ); - }, - ); - - // post arrange - const resultFromServer = { - keyVarObjectId: "DLde4rYA8C", - keyVarCreatedAt: "2023-02-26T00:20:37.187Z" - }; - - final postPath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}', - ).toString(); - - when(client.post( - postPath, - options: anyNamed("options"), - data: anyNamed("data"), - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ), - ); - - dietPlansObject.addRelation('someRelationKey', [user1]); - - // act - await dietPlansObject.save(); - - // assert - final relationValueForApiReq = - dietPlansObject.getRelation('someRelationKey').toJson(); - expect(relationValueForApiReq.isEmpty, isTrue); - }); - - test( - 'If a Relation operation is performed during the save() function, the result' - ' of the operation should be present in the internal state of the ' - 'ParseRelation as a value that has not been saved. The data that has ' - 'been saved should not be in value for API request', () async { - // arrange - - // batch arrange - const resultFromServerForBatch = [ - { - "success": { - keyVarUpdatedAt: "2023-03-10T12:23:45.678Z", - } - } - ]; - - final batchData = jsonEncode( - { - "requests": [ - { - 'method': 'PUT', - 'path': - '$keyEndPointClasses${user1.parseClassName}/${user1.objectId}', - 'body': user1.toJson(forApiRQ: true), - } - ] - }, - ); - - final batchPath = Uri.parse('$serverUrl/batch').toString(); - - when(client.post( - batchPath, - options: anyNamed("options"), - data: batchData, - )).thenAnswer( - (_) async { - return ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServerForBatch), - ); - }, - ); - - // post arrange - const resultFromServer = { - keyVarObjectId: "DLde4rYA8C", - keyVarCreatedAt: "2023-02-26T00:20:37.187Z" - }; - - final postPath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}', - ).toString(); - - when(client.post( - postPath, - options: anyNamed("options"), - data: anyNamed("data"), - )).thenAnswer( - (_) async { - await Future.delayed(Duration(milliseconds: 100)); - return ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ); - }, - ); - - dietPlansObject.addRelation('someRelationKey', [user1]); - - // act - dietPlansObject.save(); - - // async gap, this could be anything in the app like a click of a button - await Future.delayed(Duration.zero); - - // Then suddenly the user adds a object to the relation - dietPlansObject.addRelation('someRelationKey', [user2]); - - // Await the save function to be done - await Future.delayed(Duration(milliseconds: 150)); - - // assert - final relationValueForApiReq = - dietPlansObject.getRelation('someRelationKey').toJson(); - - final expectedValueAfterSave = { - '__op': 'AddRelation', - 'objects': parseEncode([user2]) - }; - - expect( - DeepCollectionEquality().equals( - relationValueForApiReq, - expectedValueAfterSave, - ), - isTrue, - ); - }); - - test( - 'ParseRelation value for api request should be identical ' - 'before and after the save() failed to save the object', () async { - // arrange - - // batch arrange - const resultFromServerForBatch = [ - { - "success": { - keyVarUpdatedAt: "2023-03-10T12:23:45.678Z", - } - } - ]; - - final batchData = jsonEncode( - { - "requests": [ - { - 'method': 'PUT', - 'path': - '$keyEndPointClasses${user1.parseClassName}/${user1.objectId}', - 'body': user1.toJson(forApiRQ: true), - } - ] - }, - ); - - final batchPath = Uri.parse('$serverUrl/batch').toString(); - - when(client.post( - batchPath, - options: anyNamed("options"), - data: batchData, - )).thenAnswer( - (_) async { - return ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServerForBatch), - ); - }, - ); - - // post arrange - final postPath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}', - ).toString(); - - when(client.post( - postPath, - options: anyNamed("options"), - data: anyNamed("data"), - )).thenThrow(Exception('error')); - - dietPlansObject.addRelation('someRelationKey', [user1]); - - final relationValueForApiReqBeforeErrorSave = - dietPlansObject.getRelation('someRelationKey').toJson(); - - // act - await dietPlansObject.save(); - - // assert - final relationValueForApiReqAfterErrorSave = - dietPlansObject.getRelation('someRelationKey').toJson(); - - expect( - DeepCollectionEquality().equals( - relationValueForApiReqBeforeErrorSave, - relationValueForApiReqAfterErrorSave, - ), - isTrue); - }); - - test( - 'The Relation internal state should be identical before and after ' - 'storing it in data store', () async { - // arrange - dietPlansObject.objectId = "someId"; - - final ParseRelation relation = - dietPlansObject.getRelation('someRelationKey'); - relation.remove(ParseObject('someClassName')); - - final toJsonBeforePin = relation.toJson(full: true); - - // act - await dietPlansObject.pin(); - - final ParseObject objectFromPin = await dietPlansObject.fromPin('someId'); - - // assert - final toJsonAfterPin = - objectFromPin.getRelation('someRelationKey').toJson(full: true); - - expect( - DeepCollectionEquality().equals(toJsonBeforePin, toJsonAfterPin), - isTrue, - ); - }); - - test( - 'should throw an exception if the user adds/removes a parse object' - ' with different target class', () { - // arrange - final ParseRelation relation = - dietPlansObject.getRelation('someRelationKey'); - - relation.remove(ParseObject('someClassName')..objectId = "123"); - relation.remove(ParseObject('someClassName')..objectId = '456'); - - // act - // assert - expect( - () => relation.remove(ParseObject('otherClassName')), - throwsA(isA()), - ); - }); - - test( - 'If the value for API request is empty in ParseRelation then the' - ' ParseRelation should not be part of the end map for' - ' API request of an object', () { - // arrange - - // this will create and store an empty relation if no relation associated - // with this key - dietPlansObject.getRelation('someRelationKey'); - - // act - - final valueFroApiRequest = dietPlansObject.toJson(forApiRQ: true); - - // assert - expect(valueFroApiRequest.isEmpty, isTrue); - }); - - test( - 'Should throw exception when getRelation() called on key' - ' holds value other than Relation or null', () { - // arrange - dietPlansObject.set('someRelationKey', 'some String'); - - // act - getRelation() => dietPlansObject.getRelation('someRelationKey'); - - // assert - expect(() => getRelation(), throwsA(isA())); - }); - }); -} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_save_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_save_test.dart deleted file mode 100644 index 9738d143f..000000000 --- a/packages/dart/test/src/objects/parse_object/parse_object_save_test.dart +++ /dev/null @@ -1,488 +0,0 @@ -import 'dart:convert'; - -import 'package:mockito/mockito.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../parse_query_test.mocks.dart'; -import '../../../test_utils.dart'; - -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group('save()', () { - late MockParseClient client; - - late ParseObject dietPlansObject; - - setUp(() { - client = MockParseClient(); - - dietPlansObject = ParseObject("Diet_Plans", client: client); - }); - - test( - 'save should store an object online. but store its children objects first ' - 'then store the parent object. the children should be stored using batch request ' - 'and the parent using normal request ', () async { - // arrange - final planObject = ParseObject('Plans')..set('PlanName', 'plan name'); - - dietPlansObject.set('Plan', planObject); - - dietPlansObject.set('Fat', 15); - - // batch arrange - const planObjectIdFromServer = "YAfSAWwXbL"; - const planCreatedAtFromServer = "2023-03-10T12:23:45.678Z"; - - const resultFromServerForBatch = [ - { - "success": { - keyVarCreatedAt: planCreatedAtFromServer, - keyVarObjectId: planObjectIdFromServer - } - } - ]; - - // parse server batch syntax - // see https://docs.parseplatform.org/rest/guide/#batch-operations - final batchData = jsonEncode( - { - "requests": [ - // object to be saved in batch - { - 'method': 'POST', - 'path': '$keyEndPointClasses${planObject.parseClassName}', - 'body': planObject.toJson(forApiRQ: true), - } - ] - }, - ); - - final batchPath = Uri.parse('$serverUrl/batch').toString(); - - when(client.post( - batchPath, - options: anyNamed("options"), - data: batchData, - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServerForBatch), - ), - ); - - // post arrange - - final postPath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}', - ).toString(); - - const dietPlansObjectIdFromServer = "BBERrYA8C"; - const dietPlansCreatedAtFromServer = "2023-02-26T00:20:37.187Z"; - - const resultFromServer = { - keyVarObjectId: dietPlansObjectIdFromServer, - keyVarCreatedAt: dietPlansCreatedAtFromServer, - }; - - when(client.post( - postPath, - options: anyNamed("options"), - data: anyNamed("data"), - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ), - ); - - // act - final response = await dietPlansObject.save(); - - // assert - expect(response.success, isTrue); - - expect(response.error, isNull); - - expect(response.count, equals(1)); - - final resultList = response.results; - - expect(resultList, isNotNull); - - expect(resultList!.length, equals(1)); - - expect(resultList, isA>()); - - final savedDietPlansObject = (resultList.first as ParseObject); - - // the calling object (dietPlansObject) will be identical to the object - // in the ParseResponse results - expect( - identical(dietPlansObject, savedDietPlansObject), - isTrue, - ); - - expect(dietPlansObject.objectId, equals(dietPlansObjectIdFromServer)); - - expect(planObject.objectId, equals(planObjectIdFromServer)); - - expect( - dietPlansObject.createdAt!.toIso8601String(), - equals(dietPlansCreatedAtFromServer), - ); - - expect( - planObject.createdAt!.toIso8601String(), - equals(planCreatedAtFromServer), - ); - - verify(client.post( - batchPath, - options: anyNamed("options"), - data: batchData, - )).called(1); - - verify(client.post( - postPath, - options: anyNamed("options"), - data: anyNamed('data'), - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test( - 'should return unsuccessful response if there is a unbreakable ' - 'cycle between two or more unsaved objects', () async { - // arrange - final planObject = ParseObject('Plans'); - - // create a cycle of unsaved objects depends on each other - planObject.set('dietPlan', dietPlansObject); - dietPlansObject.set('Plan', planObject); - - // act - // TODO: should this throw an error about an unbreakable cycle between two or more unsaved objects? - final response = await dietPlansObject.save(); - - // assert - expect(response.success, isFalse); - - verifyZeroInteractions(client); - }); - - test( - 'save should updated an object online and store and updated any object ' - 'added via relation', () async { - // arrange - dietPlansObject.objectId = "NNAfSGGHHbL"; - - final planObjectToCreate = ParseObject('Plans') - ..set('PlanName', 'plan 1'); - - final planObjectToUpdate = ParseObject('Plans') - ..objectId = "EEWAfSdXbL" - ..set('PlanName', 'plan 2'); - - dietPlansObject.addRelation( - 'relatedPlans', - [planObjectToCreate, planObjectToUpdate], - ); - - dietPlansObject.set('Fat', 15); - - // batch arrange - const planToCreateObjectIdFromServer = "YAfSAWwXbL"; - const planToCreateCreatedAtFromServer = "2023-03-10T12:23:45.678Z"; - - const planToUpdateUpdatedAtFromServer = "2023-03-11T13:25:27.865Z"; - - const resultFromServerForBatch = [ - { - "success": { - keyVarCreatedAt: planToCreateCreatedAtFromServer, - keyVarObjectId: planToCreateObjectIdFromServer - } - }, - { - "success": { - keyVarUpdatedAt: planToUpdateUpdatedAtFromServer, - } - } - ]; - - final batchData = jsonEncode( - { - "requests": [ - { - 'method': 'POST', - 'path': '$keyEndPointClasses${planObjectToCreate.parseClassName}', - 'body': planObjectToCreate.toJson(forApiRQ: true), - }, - { - 'method': 'PUT', - 'path': - '$keyEndPointClasses${planObjectToUpdate.parseClassName}/${planObjectToUpdate.objectId}', - 'body': planObjectToUpdate.toJson(forApiRQ: true), - } - ] - }, - ); - - final batchPath = Uri.parse('$serverUrl/batch').toString(); - - when(client.post( - batchPath, - options: anyNamed("options"), - data: batchData, - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServerForBatch), - ), - ); - print(batchData); - - // PUT arrange - final putPath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}/${dietPlansObject.objectId}', - ).toString(); - - const dietPlansUpdatedAtFromServer = "2023-02-26T00:20:37.187Z"; - const resultFromServer = { - keyVarUpdatedAt: dietPlansUpdatedAtFromServer, - }; - - when(client.put( - putPath, - data: anyNamed("data"), - options: anyNamed("options"), - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ), - ); - - // act - final response = await dietPlansObject.save(); - - // assert - expect(response.success, isTrue); - - expect(response.error, isNull); - - expect(response.count, equals(1)); - - final resultList = response.results; - - expect(resultList, isNotNull); - - expect(resultList!.length, equals(1)); - - expect(resultList, isA>()); - - final savedDietPlansObject = (resultList.first as ParseObject); - - // the calling object (dietPlansObject) will be identical to the object - // in the ParseResponse results - expect( - identical(dietPlansObject, savedDietPlansObject), - isTrue, - ); - - expect( - dietPlansObject.updatedAt!.toIso8601String(), - equals(dietPlansUpdatedAtFromServer), - ); - - expect( - planObjectToCreate.createdAt!.toIso8601String(), - equals(planToCreateCreatedAtFromServer), - ); - - expect( - planObjectToCreate.objectId, - equals(planToCreateObjectIdFromServer), - ); - - expect( - planObjectToUpdate.updatedAt!.toIso8601String(), - equals(planToUpdateUpdatedAtFromServer), - ); - - verify(client.post( - batchPath, - options: anyNamed("options"), - data: batchData, - )).called(1); - - verify(client.put( - putPath, - options: anyNamed("options"), - data: anyNamed('data'), - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test( - 'should not save the calling object in case of any subObject(included) ' - 'fail while trying to saving it, and the save() should return the response ' - 'from the saving object batch', - () async { - // arrange - final planObject1 = ParseObject('Plans')..set('PlanName', 'plan 1'); - final planObject2 = ParseObject('Plans')..set('PlanName', 'plan 2'); - - dietPlansObject.set('Plan1', planObject1); - dietPlansObject.set('Plan2', planObject2); - - dietPlansObject.set('Fat', 15); - - // batch arrange - - const resultFromServerForBatch = [ - { - "success": { - keyVarObjectId: "YAfSAWwXbL", - keyVarCreatedAt: "2023-03-10T12:23:45.678Z", - } - }, - { - "error": { - "code": ParseError.internalServerError, - "error": "internal server error", - } - } - ]; - - final batchData = jsonEncode( - { - "requests": [ - { - 'method': 'POST', - 'path': '$keyEndPointClasses${planObject1.parseClassName}', - 'body': planObject1.toJson(forApiRQ: true), - }, - { - 'method': 'POST', - 'path': '$keyEndPointClasses${planObject2.parseClassName}', - 'body': planObject2.toJson(forApiRQ: true), - } - ] - }, - ); - - final batchPath = Uri.parse('$serverUrl/batch').toString(); - - when(client.post( - batchPath, - options: anyNamed("options"), - data: batchData, - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServerForBatch), - ), - ); - - // post arrange - - final postPath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}', - ).toString(); - - // act - - // this response is from saving the children and not from saving the - // actual object (dietPlansObject) duo to error while saving one of - // the children, so the response form the batch function will be returned - final response = await dietPlansObject.save(); - - // assert - expect(response.success, isFalse); - - // the error will be the results list - expect(response.error, isNull); - - expect(response.count, equals(2)); - - final resultList = response.results; - - expect(resultList, isNotNull); - - expect( - resultList!.length, - equals(2), - reason: - 'should be the same number of children sent suing batch request', - ); - - expect(resultList, isA>()); - - final firstResponse = resultList[0]; - - expect(firstResponse, isA()); - - expect(identical(firstResponse, planObject1), isTrue); - - var objectCreatedResponseFromServer = - resultFromServerForBatch[0]['success']!; - - expect( - planObject1.objectId, - equals(objectCreatedResponseFromServer[keyVarObjectId]), - ); - - expect( - planObject1.createdAt!.toIso8601String(), - equals(objectCreatedResponseFromServer[keyVarCreatedAt]), - ); - - final secondResponse = resultList[1]; - var errorResponseFromServer = resultFromServerForBatch[1]['error']!; - - expect(secondResponse, isA()); - - // to promote the secondResponse var to ParseError - (secondResponse as ParseError); - - expect( - secondResponse.code, - equals(errorResponseFromServer['code']), - ); - - expect( - secondResponse.message, - equals(errorResponseFromServer['error']), - ); - - expect( - dietPlansObject.objectId, - isNull, - reason: 'dietPlansObject should not be saved', - ); - - verify(client.post( - batchPath, - options: anyNamed("options"), - data: batchData, - )).called(1); - - verifyNever(client.post( - postPath, - options: anyNamed("options"), - data: anyNamed('data'), - )); - - verifyNoMoreInteractions(client); - }, - ); - }); -} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_test.dart deleted file mode 100644 index 02fbf8f63..000000000 --- a/packages/dart/test/src/objects/parse_object/parse_object_test.dart +++ /dev/null @@ -1,24 +0,0 @@ -import 'package:mockito/annotations.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../test_utils.dart'; - -@GenerateMocks([ParseClient]) -void main() { - test( - 'The parseClassName property in the ParseObject class should be equal ' - 'to the name passed via the constructor', () async { - // arrange - - await initializeParse(); - - const className = 'Diet_Plans'; - - // act - final dietPlansObject = ParseObject(className); - - // assert - expect(dietPlansObject.parseClassName, equals(className)); - }); -} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_unset_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_unset_test.dart deleted file mode 100644 index 0e893707b..000000000 --- a/packages/dart/test/src/objects/parse_object/parse_object_unset_test.dart +++ /dev/null @@ -1,198 +0,0 @@ -import 'dart:convert'; - -import 'package:mockito/mockito.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../parse_query_test.mocks.dart'; -import '../../../test_utils.dart'; - -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group('unset()', () { - late MockParseClient client; - - late ParseObject dietPlansObject; - const keyFat = 'fat'; - - setUp(() { - client = MockParseClient(); - - dietPlansObject = ParseObject("Diet_Plans", client: client); - }); - - test('unset() should unset a value from ParseObject locally', () async { - // arrange - dietPlansObject.set(keyFat, 2); - - // act - final ParseResponse parseResponse = - await dietPlansObject.unset(keyFat, offlineOnly: true); - - // assert - expect(parseResponse.success, isTrue); - - expect(dietPlansObject.get(keyFat), isNull); - - verifyZeroInteractions(client); - }); - - test('unset() should unset a value from ParseObject locally on online', - () async { - // arrange - - dietPlansObject.set(keyFat, 2); - dietPlansObject.objectId = "O6BHlwV48Z"; - - final putPath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}/${dietPlansObject.objectId}', - ).toString(); - - const String putData = '{"$keyFat":{"__op":"Delete"}}'; - const resultFromServer = { - keyVarUpdatedAt: "2023-03-04T03:34:35.076Z", - }; - - when(client.put( - putPath, - options: anyNamed("options"), - data: putData, - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ), - ); - - // act - final ParseResponse parseResponse = - await dietPlansObject.unset(keyFat, offlineOnly: false); - - // assert - expect(parseResponse.success, isTrue); - - expect(dietPlansObject.get(keyFat), isNull); - - verify(client.put( - putPath, - options: anyNamed("options"), - data: putData, - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test( - 'If objectId is null, unset() should unset a value from ParseObject ' - 'locally and not make any call to the server and return unsuccessful Response', - () async { - // arrange - dietPlansObject.set(keyFat, 2); - - // act - final parseResponse = - await dietPlansObject.unset(keyFat, offlineOnly: false); - - // assert - expect(parseResponse.success, isFalse); - - expect(parseResponse.result, isNull); - - expect(parseResponse.count, isZero); - - expect(parseResponse.statusCode, ParseError.otherCause); - - expect(dietPlansObject.get(keyFat), isNull); - - verifyZeroInteractions(client); - }); - - test( - 'unset() should keep the the key and its value if the request was unsuccessful', - () async { - // arrange - - dietPlansObject.objectId = "O6BHlwV48Z"; - dietPlansObject.set(keyFat, 2); - - final errorData = jsonEncode({keyCode: -1, keyError: "someError"}); - - when(client.put( - any, - options: anyNamed("options"), - data: anyNamed("data"), - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: -1, - data: errorData, - ), - ); - - // act - final parseResponse = - await dietPlansObject.unset(keyFat, offlineOnly: false); - - // assert - expect(parseResponse.success, isFalse); - - expect(parseResponse.error, isNotNull); - - expect(parseResponse.error!.message, equals('someError')); - - expect(parseResponse.error!.code, equals(-1)); - - expect(dietPlansObject.get(keyFat), equals(2)); - - verify(client.put( - any, - options: anyNamed("options"), - data: anyNamed("data"), - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test( - 'unset() should keep the the key and its value if the request throws an exception', - () async { - // arrange - - dietPlansObject.objectId = "O6BHlwV48Z"; - dietPlansObject.set(keyFat, 2); - - final error = Exception('error'); - - when(client.put( - any, - options: anyNamed("options"), - data: anyNamed("data"), - )).thenThrow(error); - - // act - final parseResponse = - await dietPlansObject.unset(keyFat, offlineOnly: false); - - // assert - expect(parseResponse.success, isFalse); - - expect(parseResponse.error, isNotNull); - - expect(parseResponse.error!.exception, equals(error)); - - expect(parseResponse.error!.code, equals(-1)); - - expect(dietPlansObject.get(keyFat), equals(2)); - - verify(client.put( - any, - options: anyNamed("options"), - data: anyNamed("data"), - )).called(1); - - verifyNoMoreInteractions(client); - }); - }); -} diff --git a/packages/dart/test/src/objects/parse_object/parse_object_update_test.dart b/packages/dart/test/src/objects/parse_object/parse_object_update_test.dart deleted file mode 100644 index ca8e9085e..000000000 --- a/packages/dart/test/src/objects/parse_object/parse_object_update_test.dart +++ /dev/null @@ -1,221 +0,0 @@ -import 'dart:convert'; - -import 'package:mockito/mockito.dart'; -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../parse_query_test.mocks.dart'; -import '../../../test_utils.dart'; - -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group('update()', () { - late MockParseClient client; - - late ParseObject dietPlansObject; - - const keyName = 'Name'; - const keyFat = 'Fat'; - - final newNameValue = 'new Name'; - final newFatValue = 56; - - late String putPath; - - setUp(() { - client = MockParseClient(); - - dietPlansObject = ParseObject("Diet_Plans", client: client); - dietPlansObject - ..objectId = "DLde4rYA8C" - ..set(keyName, newNameValue) - ..set(keyFat, newFatValue); - - putPath = Uri.parse( - '$serverUrl$keyEndPointClasses${dietPlansObject.parseClassName}/${dietPlansObject.objectId}', - ).toString(); - }); - test( - 'update() should update an object on the server, return the updated ' - 'object in ParseResponse results and update the calling object ' - 'with the new data (updatedAt).' - 'i.e: mutate the object state to reflect the new update', () async { - // arrange - - const resultFromServer = { - keyVarUpdatedAt: "2023-02-26T13:25:27.865Z", - }; - - final putData = jsonEncode(dietPlansObject.toJson(forApiRQ: true)); - - when(client.put( - putPath, - options: anyNamed("options"), - data: putData, - )).thenAnswer( - (_) async => ParseNetworkResponse( - statusCode: 200, - data: jsonEncode(resultFromServer), - ), - ); - - // act - ParseResponse response = await dietPlansObject.update(); - - // assert - final resultList = response.results; - - expect(resultList, isNotNull); - expect(resultList!.first, isNotNull); - expect(resultList.first, isA()); - - final parseObjectFromRes = (resultList.first as ParseObject); - - expect( - parseObjectFromRes.updatedAt!.toIso8601String(), - equals(resultFromServer[keyVarUpdatedAt]), - ); - expect( - dietPlansObject.updatedAt!.toIso8601String(), - equals(resultFromServer[keyVarUpdatedAt]), - ); - - expect( - parseObjectFromRes.get(keyName), - equals(newNameValue), - ); - expect( - parseObjectFromRes.get(keyFat), - equals(newFatValue), - ); - - // the calling object (dietPlansObject) will be identical to the object - // in the ParseResponse results - expect( - identical(dietPlansObject, parseObjectFromRes), - isTrue, - ); - - verify(client.put( - putPath, - options: anyNamed("options"), - data: putData, - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test( - 'update() should return error and the updated values should remain the same', - () async { - // arrange - - final putData = jsonEncode(dietPlansObject.toJson(forApiRQ: true)); - final error = Exception('error'); - - when(client.put( - putPath, - options: anyNamed("options"), - data: putData, - )).thenThrow(error); - - // act - ParseResponse response = await dietPlansObject.update(); - - // assert - expect(response.success, isFalse); - - expect(response.result, isNull); - - expect(response.count, isZero); - - expect(response.results, isNull); - - expect(response.error, isNotNull); - - expect(response.error!.exception, equals(error)); - - expect(response.error!.code, equals(ParseError.otherCause)); - - // even if the update failed, the updated values should remain the same - expect(dietPlansObject.get(keyName), equals(newNameValue)); - expect(dietPlansObject.get(keyFat), equals(newFatValue)); - - verify(client.put( - putPath, - options: anyNamed("options"), - data: putData, - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test( - 'update() should return error form the server and the' - ' updated values should remain the same', () async { - // arrange - - final putData = jsonEncode(dietPlansObject.toJson(forApiRQ: true)); - final errorData = jsonEncode({keyCode: -1, keyError: "someError"}); - - when(client.put( - putPath, - options: anyNamed("options"), - data: putData, - )).thenAnswer( - (_) async => ParseNetworkResponse(data: errorData, statusCode: -1), - ); - - // act - ParseResponse response = await dietPlansObject.update(); - - // assert - expect(response.success, isFalse); - - expect(response.result, isNull); - - expect(response.count, isZero); - - expect(response.results, isNull); - - expect(response.error, isNotNull); - - expect(response.error!.message, equals('someError')); - - expect(response.error!.code, equals(ParseError.otherCause)); - - // even if the update failed, the updated values should remain the same - expect(dietPlansObject.get(keyName), equals(newNameValue)); - expect(dietPlansObject.get(keyFat), equals(newFatValue)); - - verify(client.put( - putPath, - options: anyNamed("options"), - data: putData, - )).called(1); - - verifyNoMoreInteractions(client); - }); - - test('should throw AssertionError if objectId is null', () { - dietPlansObject.objectId = null; - - expect( - () async => await dietPlansObject.update(), - throwsA(isA()), - ); - }); - - test('should throw AssertionError if objectId is empty', () { - dietPlansObject.objectId = ''; - - expect( - () async => await dietPlansObject.update(), - throwsA(isA()), - ); - }); - }); -} diff --git a/packages/dart/test/src/objects/response/parse_response_utils_test.dart b/packages/dart/test/src/objects/response/parse_response_utils_test.dart deleted file mode 100644 index 759ca6826..000000000 --- a/packages/dart/test/src/objects/response/parse_response_utils_test.dart +++ /dev/null @@ -1,164 +0,0 @@ -import 'dart:convert'; - -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../../test_utils.dart'; - -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group('handleResponse()', () { - group('when batch', () { - test( - 'should return a ParseResponse holds a list of created/updated ParseObjects', - () { - // arrange - final object1 = ParseObject("object1"); - - final object2 = ParseObject("object2")..objectId = "GYfSRRRXbL"; - - final objectsToBatch = [object1, object2]; - - const object1ResultFromServerObjectId = "YAfSAWwXbL"; - const object1ResultFromServerCreatedAt = "2023-03-19T00:20:37.187Z"; - - const object2ResultFromServerUpdatedAt = "2023-03-19T00:20:37.187Z"; - - final resultFromServerForBatch = json.encode( - [ - { - "success": { - keyVarObjectId: object1ResultFromServerObjectId, - keyVarCreatedAt: object1ResultFromServerCreatedAt, - } - }, - { - "success": { - keyVarUpdatedAt: object2ResultFromServerUpdatedAt, - } - } - ], - ); - - final result = ParseNetworkResponse( - data: resultFromServerForBatch, - statusCode: 200, - ); - - // act - final response = handleResponse( - objectsToBatch, - result, - ParseApiRQ.batch, - true, - 'test_batch', - ); - - // assert - expect(response.success, isTrue); - - expect(response.count, equals(2)); - - expect(response.error, isNull); - - final resultsObjectsList = List.from(response.results!); - - expect(resultsObjectsList.length, equals(2)); - - final firstObject = resultsObjectsList[0]; - final secondObject = resultsObjectsList[1]; - - expect(firstObject.objectId, equals(object1ResultFromServerObjectId)); - - expect( - firstObject.createdAt!.toIso8601String(), - equals(object1ResultFromServerCreatedAt), - ); - - expect( - secondObject.updatedAt!.toIso8601String(), - equals(object2ResultFromServerUpdatedAt), - ); - }); - - test( - 'should return a ParseResponse holds a list of ParseObject and ParseError', - () { - // arrange - final object1 = ParseObject("object1"); - final object2 = ParseObject("object2"); - - final objectsToBatch = [object1, object2]; - - const object1ResultFromServerObjectId = "YAfSAWwXbL"; - const object1ResultFromServerCreatedAt = "2023-03-19T00:20:37.187Z"; - - final resultFromServerForBatch = json.encode( - [ - { - "success": { - keyVarObjectId: object1ResultFromServerObjectId, - keyVarCreatedAt: object1ResultFromServerCreatedAt, - } - }, - // error while saving the second object - { - "error": { - "code": ParseError.internalServerError, - "error": "internal server error", - } - } - ], - ); - - final result = ParseNetworkResponse( - data: resultFromServerForBatch, - statusCode: 200, - ); - - // act - final response = handleResponse( - objectsToBatch, - result, - ParseApiRQ.batch, - true, - 'test_batch', - ); - - // assert - expect(response.success, isTrue); - - expect(response.count, equals(2)); - - expect(response.error, isNull); - - expect(response.results, isNotNull); - - final resultsList = response.results!; - - expect(resultsList.length, equals(2)); - - final ParseObject firstObject = resultsList[0]; - - final ParseError secondObjectError = resultsList[1]; - - expect(firstObject.objectId, equals(object1ResultFromServerObjectId)); - - expect( - firstObject.createdAt!.toIso8601String(), - equals(object1ResultFromServerCreatedAt), - ); - - expect( - secondObjectError.code, - equals(ParseError.internalServerError), - ); - - expect(object2.objectId, isNull); - }); - }); - }); -} diff --git a/packages/dart/test/src/utils/parse_encoder_test.dart b/packages/dart/test/src/utils/parse_encoder_test.dart deleted file mode 100644 index afc442d48..000000000 --- a/packages/dart/test/src/utils/parse_encoder_test.dart +++ /dev/null @@ -1,105 +0,0 @@ -import 'dart:convert'; - -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -import '../../test_utils.dart'; - -void main() { - setUpAll(() async { - await initializeParse(); - }); - - group('full encode', () { - test('should return the expected json encode ', () async { - // arrange - final dietPlansObject = ParseObject("Diet_Plans"); - final plan = ParseObject("plan")..set('somePlanKey', 'some value'); - dietPlansObject.set('pointer_val', plan); - dietPlansObject.set('int_val', 2); - dietPlansObject.set('string_val', 'some String'); - dietPlansObject.set('double_val', 2.5); - dietPlansObject.setIncrement('int_val', 2); - dietPlansObject.setDecrement('double_val', 2); - dietPlansObject.set('array_1_val', [1, 2, 3]); - dietPlansObject.set('array_2_val', [1, 2, 3]); - dietPlansObject.set('array_3_val', [1, 2, 3]); - dietPlansObject.setAdd('array_1_val', 3); - dietPlansObject.setAddUnique('array_2_val', 3); - dietPlansObject.setAddUnique('array_2_val', 4); - dietPlansObject.setRemove('array_3_val', 3); - final relation = dietPlansObject.getRelation('relation_val'); - relation.add(ParseObject('object_in_relation2')..objectId = 'GDIJPWW'); - - // act - final encodeResult = parseEncode(dietPlansObject, full: true); - - // assert - - const expectedValue = { - "className": "Diet_Plans", - "pointer_val": {"className": "plan", "somePlanKey": "some value"}, - "int_val": { - "className": "ParseNumber", - "estimateNumber": 4, - "savedNumber": 0.0, - "setMode": true, - "lastPreformedOperation": { - "__op": "Increment", - "amount": 4.0, - "estimatedValue": 4 - } - }, - "string_val": "some String", - "double_val": { - "className": "ParseNumber", - "estimateNumber": 0.5, - "savedNumber": 0.0, - "setMode": true, - "lastPreformedOperation": { - "__op": "Increment", - "amount": 0.5, - "estimatedValue": 0.5 - } - }, - "array_1_val": { - "className": "ParseArray", - "estimatedArray": [1, 2, 3, 3], - "savedArray": [], - "lastPreformedOperation": null - }, - "array_2_val": { - "className": "ParseArray", - "estimatedArray": [1, 2, 3, 4], - "savedArray": [], - "lastPreformedOperation": null - }, - "array_3_val": { - "className": "ParseArray", - "estimatedArray": [1, 2], - "savedArray": [], - "lastPreformedOperation": null - }, - "relation_val": { - "className": "ParseRelation", - "targetClass": "object_in_relation2", - "key": "relation_val", - "objects": [ - {"className": "object_in_relation2", "objectId": "GDIJPWW"} - ], - "lastPreformedOperation": { - "__op": "AddRelation", - "objects": [ - {"className": "object_in_relation2", "objectId": "GDIJPWW"} - ], - "valueForAPIRequest": [ - {"className": "object_in_relation2", "objectId": "GDIJPWW"} - ] - } - } - }; - - expect(jsonEncode(encodeResult), equals(jsonEncode(expectedValue))); - }); - }); -} diff --git a/packages/dart/test/test_utils.dart b/packages/dart/test/test_utils.dart deleted file mode 100644 index 2f138551a..000000000 --- a/packages/dart/test/test_utils.dart +++ /dev/null @@ -1,127 +0,0 @@ -import 'package:parse_server_sdk/parse_server_sdk.dart'; -import 'package:test/test.dart'; - -const serverUrl = 'https://example.com/'; - -Future initializeParse() async { - await Parse().initialize( - 'appId', - serverUrl, - debug: true, - // to prevent automatic detection - fileDirectory: 'someDirectory', - // to prevent automatic detection - appName: 'appName', - // to prevent automatic detection - appPackageName: 'somePackageName', - // to prevent automatic detection - appVersion: 'someAppVersion', - ); -} - -/// If an unmergeable operation [testingOn] is attempted after an operation, -/// it should result in an exception being thrown. in context of the same key. -/// -/// So for example you can call setAdd after setAddAll on the same key, because -/// the values can be merged together. but calling setAdd after setIncrement -/// will throw an error because you can not increment a value and then add a -/// value to it like a list, it is not a list in the first place to be able -/// to add to it. -/// -/// -/// if a certain operation cannot be merged or combined with other operations -/// in a particular context, then an exception should be thrown to alert -/// the developer that the operation cannot be performed. -/// -/// List of available operations: -/// * setAdd -/// * setAddUnique -/// * setAddAll -/// * setAddAllUnique -/// * setRemove -/// * setRemoveAll -/// * setIncrement -/// * setDecrement -/// * addRelation -/// * removeRelation -/// -/// e.g. -/// ```dart -/// testUnmergeableOperationShouldThrow( -/// parseObject: dietPlansObject, -/// testingOn: dietPlansObject.setDecrement, -/// excludeMergeableOperations: [dietPlansObject.setIncrement], -/// ); -/// ``` -void testUnmergeableOperationShouldThrow({ - required ParseObject parseObject, - required Function testingOn, - List excludeMergeableOperations = const [], -}) { - String testingOnKey = 'key'; - - final Map operationsFuncRefWithArgs = { - parseObject.setAdd: [ - testingOnKey, - 1, - ], - parseObject.setAddUnique: [ - testingOnKey, - 1, - ], - parseObject.setAddAll: [ - testingOnKey, - [1, 2], - ], - parseObject.setAddAllUnique: [ - testingOnKey, - [1, 2], - ], - parseObject.setRemove: [ - testingOnKey, - 1, - ], - parseObject.setRemoveAll: [ - testingOnKey, - [1, 2] - ], - parseObject.setIncrement: [ - testingOnKey, - 1, - ], - parseObject.setDecrement: [ - testingOnKey, - 1, - ], - parseObject.addRelation: [ - testingOnKey, - [ParseObject('class')] - ], - parseObject.removeRelation: [ - testingOnKey, - [ParseObject('class')] - ], - }; - - final testingOnValue = operationsFuncRefWithArgs.remove(testingOn); - - for (final functionExclude in excludeMergeableOperations) { - operationsFuncRefWithArgs.remove(functionExclude); - } - - for (final operation in operationsFuncRefWithArgs.entries) { - parseObject.unset(testingOnKey, offlineOnly: true); - - final functionRef = operation.key; - final positionalArguments = operation.value; - - Function.apply(functionRef, positionalArguments); - - expect( - () => Function.apply(testingOn, testingOnValue), - throwsA(isA()), - reason: 'Calling {{${functionRef.toString()}}} ' - 'then {{${testingOn.toString()}}} should throw ParseOperationException', - ); - } -} diff --git a/packages/flutter/CHANGELOG.md b/packages/flutter/CHANGELOG.md deleted file mode 100644 index 28a8d9114..000000000 --- a/packages/flutter/CHANGELOG.md +++ /dev/null @@ -1,106 +0,0 @@ -## [5.1.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/flutter-5.0.1...flutter-5.1.0) (2023-05-22) - -### Features - -* Add support for push notifications via `ParsePush`, `ParseNotification` ([#914](https://github.com/parse-community/Parse-SDK-Flutter/pull/914)) - -## [5.0.1](https://github.com/parse-community/Parse-SDK-Flutter/compare/flutter-5.0.0...flutter-5.0.1) (2023-05-20) - -### Bug Fixes - -* Attributes `reverse`, `padding`, `physics`, `controller`, `scrollDirection`, `shrinkWrap` not implemented in `ParseLiveGridWidget` ([#761](https://github.com/parse-community/Parse-SDK-Flutter/pull/761)) - -## [5.0.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/flutter-4.0.0...flutter-5.0.0) (2023-05-14) - -### BREAKING CHANGES - -* The minimum required Dart SDK version is 2.18.0. ([#867](https://github.com/parse-community/Parse-SDK-Flutter/pull/867)) -* Upgrades the dependency `parse_server_sdk` to `5.x.x`. ([#868](https://github.com/parse-community/Parse-SDK-Flutter/pull/868)) -* The deprecated parameter `vsync` from `AnimatedSize` is removed. ([#864](https://github.com/parse-community/Parse-SDK-Flutter/pull/864)) - -### Features - -* Upgrade `parse_server_sdk` to `5.x.x` ([#868](https://github.com/parse-community/Parse-SDK-Flutter/pull/868)) - -### Bug Fixes - -* Incorrect Dart and Flutter SDKs compatibility range ([#867](https://github.com/parse-community/Parse-SDK-Flutter/pull/867)) -* Remove deprecated parameter `vsync` from `AnimatedSize` ([#864](https://github.com/parse-community/Parse-SDK-Flutter/pull/864)) - -## [4.0.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/flutter-3.1.4...flutter-4.0.0) (2023-03-19) - -### BREAKING CHANGES - -* The source file name of the Flutter package has changed; to import the Flutter package use `parse_server_sdk_flutter.dart` instead of `parse_server_sdk.dart` ([#846](https://github.com/parse-community/Parse-SDK-Flutter/pull/846)) -* Dependencies are upgraded to `parse_server_sdk` 4.x, `dio` 5.x, `connectivity_plus` 3.x and `package_info_plus` 3.x ([#844](https://github.com/parse-community/Parse-SDK-Flutter/pull/844)) - -### Features - -* Rename Flutter package source file to `parse_server_sdk_flutter.dart` ([#846](https://github.com/parse-community/Parse-SDK-Flutter/pull/846)) -* Upgrade various dependencies and fix warnings in Flutter package ([#844](https://github.com/parse-community/Parse-SDK-Flutter/pull/844)) - -## [3.1.4](https://github.com/parse-community/Parse-SDK-Flutter/compare/flutter-3.1.3...flutter-3.1.4) (2023-03-01) - -### Bug Fixes - -* Parse SDK internal database file `parse.db` is accessible for app user on iOS and may be accidentally deleted ([#826](https://github.com/parse-community/Parse-SDK-Flutter/pull/826)) - -## [3.1.3](https://github.com/parse-community/Parse-SDK-Flutter/compare/flutter-3.1.2...flutter-3.1.3) (2022-07-09) - -### Bug Fixes - -* old version of `connectivity_plus package` ([#717](https://github.com/parse-community/Parse-SDK-Flutter/issues/717)) -* dependency `package_info_plus` does not work in web ([#714](https://github.com/parse-community/Parse-SDK-Flutter/issues/714)) -* missing plugin exception, no implementation found for method `getAll` ([#712](https://github.com/parse-community/Parse-SDK-Flutter/issues/712)) - -## [3.1.2](https://github.com/parse-community/Parse-SDK-Flutter/compare/flutter-3.1.1...flutter-3.1.2) (2022-05-30) - -### Refactors - -* fix analyzer code style warnings ([#733](https://github.com/parse-community/Parse-SDK-Flutter/issues/733)) - -## [3.1.1](https://github.com/parse-community/Parse-SDK-Flutter/compare/V3.1.0...flutter-3.1.1) (2022-05-29) - -### Bug Fixes - -* update example app to use Android embedding v2 ([#722](https://github.com/parse-community/Parse-SDK-Flutter/issues/722)) ([e092189](https://github.com/parse-community/Parse-SDK-Flutter/commit/e092189cb666c25b3e2c9dbbf95316e9cfa88e72)) - -# [3.1.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/V3.0.0...V3.1.0) (2021-06-28) - -### Bug Fixes - -* General improvements -* Updated dependencies - -# [3.0.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/2.1.0...V3.0.0) (2021-04-14) - -### Bug Fixes - -* Stable null safety release - -# [2.1.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/2.0.1...2.1.0) (2021-02-18) - -### BREAKING CHANGES - -* Changed to HTTP method POST for login -* Change in progress callback for file upload - -### Features - -* Option to use `ParseHTTPClient` (default) or `ParseDioClient` (slow on Flutter Web) -* Added method excludeKeys to exclude specific fields from the returned query - -### Bug Fixes - -* General improvements -* Updated dependencies - -## [2.0.1](https://github.com/parse-community/Parse-SDK-Flutter/compare/2.0.0...2.0.1) (2020-10-24) - -### Bug Fixes - -* Fixed network exceptions ([#482](https://github.com/parse-community/Parse-SDK-Flutter/pull/482)) - -## [2.0.0](https://github.com/parse-community/Parse-SDK-Flutter/compare/1.0.28...2.0.0) (2020-10-13) - -First official release. From this release onwards the previous repository has been separated into a pure dart (parse_server_sdk) and a flutter package (parse_server_sdk_flutter). This was done in order to provide a dart package for the parse-server, while keeping maintenance simple. You can find both packages in the package directory. diff --git a/packages/flutter/LICENSE b/packages/flutter/LICENSE deleted file mode 100644 index 0e303d0f1..000000000 --- a/packages/flutter/LICENSE +++ /dev/null @@ -1,176 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/packages/flutter/NOTICE b/packages/flutter/NOTICE deleted file mode 100644 index 20a8bb606..000000000 --- a/packages/flutter/NOTICE +++ /dev/null @@ -1,10 +0,0 @@ -Parse Flutter SDK - -Copyright 2021-present Parse Platform - -This product includes software developed at Parse Platform. -www.parseplatform.org - ---- - -As of October 19, 2021, the original author Phill Wiggins has transferred this code to the Parse Platform organization. \ No newline at end of file diff --git a/packages/flutter/PUSH.md b/packages/flutter/PUSH.md deleted file mode 100644 index 52870fd24..000000000 --- a/packages/flutter/PUSH.md +++ /dev/null @@ -1,76 +0,0 @@ -# Push Notifications - -Push notifications are a great way to keep your users engaged and informed about your app. You can reach your user base quickly and effectively. This guide will help you through the setup process and the general usage of Parse Platform to send push notifications. - -To configure push notifications in Parse Server, check out the [push notification guide](https://docs.parseplatform.org/parse-server/guide/#push-notifications). - -## Installation - -1. Install [Firebase Core](https://firebase.flutter.dev/docs/overview) and [Cloud Messaging](https://firebase.flutter.dev/docs/messaging/overview). For more details review the [Firebase Core Manual](https://firebase.flutter.dev/docs/manual-installation/). - -2. Add the following code after `Parse().initialize(...);`: - - ```dart - ParsePush.instance.initialize(FirebaseMessaging.instance); - FirebaseMessaging.onMessage.listen((message) => ParsePush.instance.onMessage(message)); - ``` - -3. For you app to process push notification while in the background, add the following code: - - ```dart - FirebaseMessaging.onBackgroundMessage(onBackgroundMessage); - ``` - - ```dart - Future onBackgroundMessage(RemoteMessage message) async => ParsePush.instance.onMessage(message); - ``` - -## Implementation Example - -The following is a code example for a simple implementation of push notifications: - -```dart -Future main() async { - WidgetsFlutterBinding.ensureInitialized(); - - // Initialize Firebase Core - await Firebase.initializeApp( - options: DefaultFirebaseOptions.currentPlatform, - ); - - // Initialize Parse - await Parse().initialize("applicationId", "serverUrl", - clientKey: "clientKey", debug: true); - - // Initialize Parse push notifications - ParsePush.instance.initialize(FirebaseMessaging.instance); - FirebaseMessaging.onMessage - .listen((message) => ParsePush.instance.onMessage(message)); - - // Process push notifications while app is in the background - FirebaseMessaging.onBackgroundMessage(onBackgroundMessage); - - runApp(const MyApp()); -} - -Future onBackgroundMessage(RemoteMessage message) async => - ParsePush.instance.onMessage(message); - -class MyApp extends StatelessWidget { - const MyApp({super.key}); - - // This widget is the root of your application. - @override - Widget build(BuildContext context) { - return MaterialApp( - title: 'Flutter Demo', - theme: ThemeData( - colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), - useMaterial3: true, - ), - home: const MyHomePage(title: 'Flutter Demo Home Page'), - ); - } -} -... -``` diff --git a/packages/flutter/README.md b/packages/flutter/README.md deleted file mode 100644 index 85396946c..000000000 --- a/packages/flutter/README.md +++ /dev/null @@ -1,1024 +0,0 @@ -![parse-repository-header-sdk-flutter](https://user-images.githubusercontent.com/5673677/166121333-2a144ce3-95bc-45d6-8840-d5b2885f2046.png) - ---- - -This library gives you access to the powerful Parse Server backend from your Flutter app. For more information on Parse Platform and its features, visit [parseplatform.org](https://parseplatform.org). - ---- - -- [Compatibility](#compatibility) -- [Example Apps](#example-apps) -- [Getting Started](#getting-started) - - [Web support](#web-support) - - [Desktop Support (macOS)](#desktop-support-macos) - - [Network client](#network-client) -- [Objects](#objects) -- [Custom Objects](#custom-objects) -- [Add new values to objects](#add-new-values-to-objects) -- [Save objects using pins](#save-objects-using-pins) -- [Storage](#storage) -- [Increment Counter Values](#increment-counter-values) -- [Array Operator](#array-operator) -- [Queries](#queries) - - [Alternative Query Methods](#alternative-query-methods) -- [Complex Queries](#complex-queries) -- [Relational queries](#relational-queries) -- [Counting Objects](#counting-objects) -- [Live Queries](#live-queries) -- [ParseLiveList](#parselivelist) - - [General Use](#general-use) - - [Include Sub-Objects](#include-sub-objects) - - [Lazy Loading](#lazy-loading) -- [Users](#users) -- [Facebook, OAuth and 3rd Party Login/User](#facebook-oauth-and-3rd-party-loginuser) -- [Security for Objects - ParseACL](#security-for-objects---parseacl) -- [Config](#config) -- [Cloud Functions](#cloud-functions) -- [Relation](#relation) -- [File](#file) -- [Other Features](#other-features) - ---- - -## Compatibility - -The Parse Flutter SDK is continuously tested with the most recent release of the Flutter framework to ensure compatibility. To give developers time to upgrade their app to the newest Flutter framework, previous Flutter framework releases are supported for at least 1 year after their [release date](https://docs.flutter.dev/release/archive?tab=linux). The Parse Flutter SDK depends on the Parse Dart SDK which may require a higher Dart framework version than the Flutter framework version, in which case the Flutter framework version cannot be supported even though its release date may have been less than a year ago. - -| Version | End of Support | Compatible | -|--------------|----------------|----------------------------------------------| -| Flutter 3.10 | May 2024 | ❌ No | -| Flutter 3.7 | Apr 2024 | ✅ Yes | -| Flutter 3.3 | Jan 2024 | ✅ Yes | -| Flutter 3.0 | Jul 2023 | ❌ No (Parse Flutter SDK requires Flutter >=3.3.0) | - -## Example Apps - -Example Flutter apps can be found in the GitHub repository's [example](https://github.com/parse-community/Parse-SDK-Flutter/tree/master/examples) directory. - -## Getting Started - -To install add the dependency to your [pubspec.yaml](https://pub.dev/packages/parse_server_sdk_flutter/install) file. - -Once you have the library added to your project, upon first call to your app (Similar to what your application class would be) add the following... - -```dart -await Parse().initialize( - keyApplicationId, - keyParseServerUrl); -``` - -If you want to use secure storage or use the Flutter web/desktop SDK, please change to the below instance of CoreStorage as it has no dependencies on Flutter. - -**The `CoreStoreSembastImp` does not encrypt the data on web!** (Web is not safe anyway. Encrypt fields manually as needed.) -```dart - -await Parse().initialize( - keyParseApplicationId, - keyParseServerUrl, - coreStore: await CoreStoreSembastImp.getInstance()); -``` -It's possible to add other parameters to work with your instance of Parse Server:- - -```dart - await Parse().initialize( - keyApplicationId, - keyParseServerUrl, - clientKey: keyParseClientKey, // Required for some setups - debug: true, // When enabled, prints logs to console - liveQueryUrl: keyLiveQueryUrl, // Required if using LiveQuery - autoSendSessionId: true, // Required for authentication and ACL - securityContext: securityContext, // Again, required for some setups - coreStore: await CoreStoreSharedPrefsImp.getInstance()); // Local data storage method. Will use SharedPreferences instead of Sembast as an internal DB -``` - -⚠️ Please note that the master key should only be used in safe environments and never on client side ‼️ - -#### Web support -Due to Cross-origin resource sharing (CORS) restrictions, this requires adding `X-Parse-Installation-Id` as an allowed header to parse-server. -When running directly via docker, set the env var `PARSE_SERVER_ALLOW_HEADERS=X-Parse-Installation-Id`. -When running via express, set [ParseServerOptions](https://parseplatform.org/parse-server/api/master/ParseServerOptions.html) `allowHeaders: ['X-Parse-Installation-Id']`. - -#### Desktop Support (macOS) -The security entitlements posed by the macOS framework require that your app is granted permission to open outgoing network connections, so that the Parse Flutter SDK can communicate with Parse Server. To grant this permission, add the following lines: -``` -com.apple.security.network.client - -``` -to the following files: -``` -/macOS/Runner/Release.entitlements -/macOS/Runner/DebugProfile.entitlements -``` -to help the Parse SDK for Flutter communicate with the Web to access the server and send/retrive data. - -#### Network client -By default, this SDK uses the `ParseHTTPClient`. -Another option is use `ParseDioClient`. This client supports the most features (for example a progress callback at the file upload), but a benchmark has shown, that dio is slower than http on web. - -If you want to use the `ParseDioClient`, which uses the dio network library, -you can provide a custom `ParseClientCreator` at the initialization of the SDK. -```dart -await Parse().initialize( - //... - clientCreator: ({bool? sendSessionId, SecurityContext? securityContext}) => ParseDioClient(sendSessionId: sendSessionId, securityContext: securityContext), -); -``` - -## Objects -You can create custom objects by calling: -```dart -var dietPlan = ParseObject('DietPlan') - ..set('Name', 'Ketogenic') - ..set('Fat', 65); -await dietPlan.save(); -``` -Or update existing object by its objectId by calling: -```dart -var dietPlan = ParseObject('DietPlan') - ..objectId = 'R5EonpUDWy' - ..set('Fat', 70); -await dietPlan.save(); -``` -Verify that the object has been successfully saved using -```dart -var response = await dietPlan.save(); -if (response.success) { - dietPlan = response.results.first; -} -``` -Types supported: - * String - * Double - * Int - * Boolean - * DateTime - * File - * Geopoint - * ParseObject/ParseUser (Pointer) - * Map - * List (all types supported) - -You then have the ability to do the following with that object: -The features available are:- - * Get - * GetAll - * Create - * Save - * Query - By object Id - * Delete - * Complex queries as shown above - * Pin - * Plenty more - * Counters - * Array Operators - -## Custom Objects -You can create your own `ParseObjects` or convert your existing objects into Parse Objects by doing the following: - -```dart -class DietPlan extends ParseObject implements ParseCloneable { - - DietPlan() : super(_keyTableName); - DietPlan.clone(): this(); - - /// Looks strangely hacky but due to Flutter not using reflection, we have to - /// mimic a clone - @override clone(Map map) => DietPlan.clone()..fromJson(map); - - static const String _keyTableName = 'Diet_Plans'; - static const String keyName = 'Name'; - - String get name => get(keyName); - set name(String name) => set(keyName, name); -} - -``` - -When receiving an `ParseObject` from the SDK, you can often provide an instance of your custom object as an copy object. -To always use your custom object class, you can register your subclass at the initialization of the SDK. -```dart -Parse().initialize( - ..., - registeredSubClassMap: { - 'Diet_Plans': () => DietPlan(), - }, - parseUserConstructor: (username, password, emailAddress, {client, debug, sessionToken}) => CustomParseUser(username, password, emailAddress), -); -``` -Additionally you can register `SubClasses` after the initialization of the SDK. -```dart -ParseCoreData().registerSubClass('Diet_Plans', () => DietPlan()); -ParseCoreData().registerUserSubClass((username, password, emailAddress, {client, debug, sessionToken}) => CustomParseUser(username, password, emailAddress)); -``` -Providing a `ParseObject` as described above should still work, even if you have registered a different `SubClass`. - -For custom file classes have a lock at [here](#File). - -## Add new values to objects -To add a variable to an object call and retrieve it, call - -```dart -dietPlan.set('RandomInt', 8); -var randomInt = dietPlan.get('RandomInt'); -``` - -## Save objects using pins -You can now save an object by calling `.pin()` on an instance of an object - -```dart -dietPlan.pin(); -``` - -and to retrieve it - -```dart -var dietPlan = DietPlan().fromPin('OBJECT ID OF OBJECT'); -``` - -## Storage -We now have 2 types of storage, secure and unsecure. We currently rely on 2 third party options: - -- SharedPreferences -- Sembast -Sembast offers secured storage, whilst SharePreferences wraps NSUserDefaults (on iOS) and SharedPreferences (on Android). - -The storage method is defined in the parameter __coreStore__ in Parse().initialize - -Check sample code for options - -## Increment Counter Values - -Retrieve it, call - -```dart -var response = await dietPlan.increment("count", 1); - -``` -or using with save function - -```dart -dietPlan.setIncrement('count', 1); -dietPlan.setDecrement('count', 1); -var response = dietPlan.save() - -``` - -## Array Operator - -Retrieve it, call - -```dart -var response = await dietPlan.add("listKeywords", ["a", "a","d"]); - -var response = await dietPlan.addUnique("listKeywords", ["a", "a","d"]); - -var response = await dietPlan.remove("listKeywords", ["a"]); - -``` -or using with save function - -```dart -dietPlan.setAdd('listKeywords', ['a','a','d']); -dietPlan.setAddUnique('listKeywords', ['a','a','d']); -dietPlan.setRemove('listKeywords', ['a']); -var response = dietPlan.save() -``` - -## Queries -Once you have setup the project and initialised the instance, you can then retreive data from your server by calling: -```dart -var apiResponse = await ParseObject('ParseTableName').getAll(); - -if (apiResponse.success){ - for (var testObject in apiResponse.result) { - print(ApplicationConstants.APP_NAME + ": " + testObject.toString()); - } -} -``` -Or you can get an object by its objectId: - -```dart -var dietPlan = await DietPlan().getObject('R5EonpUDWy'); - -if (dietPlan.success) { - print(ApplicationConstants.keyAppName + ": " + (dietPlan.result as DietPlan).toString()); -} else { - print(ApplicationConstants.keyAppName + ": " + dietPlan.exception.message); -} -``` -To query for user objects, you could use the function ```ParseUser.forQuery()``` like this: -```dart -var queryBuilder = QueryBuilder(ParseUser.forQuery()) - ..whereEqualTo('activated', true); - -var response = await queryBuilder.query(); - -if (response.success) { - print(response.results); -} else { - print(response.exception.message); -} -``` - -### Alternative Query Methods - -The standard query method `query()` returns a `ParseResponse` that contains the result or the error. As an alternative, you can also use `Future> find()` for receiving options. -This method returns an `Future` that either resolves in an error (equivalent of the error in the `ParseResponse`) or an `List` containing the queried objects. One difference, you should be aware of, is the fact, that `Future> find()` will return an empty list instead of the 'No results' error you receive in case no object matches you query. - -Choosing between `query()` and `find()` comes down to personal preference. Both methods can be used for querying a `ParseQuery`, just the output method differs. - -Similar to `find()` the `QueryBuilder` also has a function called `Future first()`. Just like `find()` `first()` is just a convenience method that makes querying the first object satisfying the query simpler. `first()` returns an `Future`, that resoles in an error or the first object matching the query. In case no object satisfies the query, the result will be `null`. - -## Complex Queries - -You can create complex queries to really put your database to the test: - -```dart -var queryBuilder = QueryBuilder(DietPlan()) - ..startsWith(DietPlan.keyName, "Keto") - ..greaterThan(DietPlan.keyFat, 64) - ..lessThan(DietPlan.keyFat, 66) - ..equals(DietPlan.keyCarbs, 5); - -var response = await queryBuilder.query(); - -if (response.success) { - print(ApplicationConstants.keyAppName + ": " + ((response.results as List).first as DietPlan).toString()); -} else { - print(ApplicationConstants.keyAppName + ": " + response.exception.message); -} -``` - -if you want to find objects that match one of several queries, you can use __QueryBuilder.or__ method to construct a query that is an OR of the queries passed in. For instance if you want to find players who either have a lot of wins or a few wins, you can do: -```dart -ParseObject playerObject = ParseObject("Player"); - -QueryBuilder lotsOfWins = - QueryBuilder(playerObject)) - ..whereGreaterThan('wins', 50); - -QueryBuilder fewWins = - QueryBuilder(playerObject) - ..whereLessThan('wins', 5); - -QueryBuilder mainQuery = QueryBuilder.or( - playerObject, - [lotsOfWins, fewWins], - ); - -var apiResponse = await mainQuery.query(); -``` - -To find objects that match several queries use __QueryBuilder.and__. To find objects that do not match any given query use __QueryBuilder.nor__. - -The features available are:- - * Equals - * Contains - * LessThan - * LessThanOrEqualTo - * GreaterThan - * GreaterThanOrEqualTo - * NotEqualTo - * StartsWith - * EndsWith - * Exists - * Near - * WithinMiles - * WithinKilometers - * WithinRadians - * WithinGeoBox - * WithinPolygon - * MatchesQuery - * DoesNotMatchQuery - * MatchesKeyInQuery - * DoesNotMatchKeyInQuery - * Regex - * Order - * Limit - * Skip - * Ascending - * Descending - * Plenty more! - -## Relational queries -If you want to retrieve objects where a field contains an object that matches another query, you can use the -__whereMatchesQuery__ condition. -For example, imagine you have Post class and a Comment class, where each Comment has a pointer to its parent Post. -You can find comments on posts with images by doing: - -```dart -QueryBuilder queryPost = - QueryBuilder(ParseObject('Post')) - ..whereValueExists('image', true); - -QueryBuilder queryComment = - QueryBuilder(ParseObject('Comment')) - ..whereMatchesQuery('post', queryPost); - -var apiResponse = await queryComment.query(); -``` - -If you want to retrieve objects where a field contains an object that does not match another query, you can use the -__whereDoesNotMatchQuery__ condition. -Imagine you have Post class and a Comment class, where each Comment has a pointer to its parent Post. -You can find comments on posts without images by doing: - -```dart -QueryBuilder queryPost = - QueryBuilder(ParseObject('Post')) - ..whereValueExists('image', true); - -QueryBuilder queryComment = - QueryBuilder(ParseObject('Comment')) - ..whereDoesNotMatchQuery('post', queryPost); - -var apiResponse = await queryComment.query(); -``` - -You can use the __whereMatchesKeyInQuery__ method to get objects where a key matches the value of a key in a set of objects resulting from another query. For example, if you have a class containing sports teams and you store a user’s hometown in the user class, you can issue one query to find the list of users whose hometown teams have winning records. The query would look like:: - -```dart -QueryBuilder teamQuery = - QueryBuilder(ParseObject('Team')) - ..whereGreaterThan('winPct', 0.5); - -QueryBuilder userQuery = - QueryBuilderParseUser.forQuery()) - ..whereMatchesKeyInQuery('hometown', 'city', teamQuery); - -var apiResponse = await userQuery.query(); -``` - -Conversely, to get objects where a key does not match the value of a key in a set of objects resulting from another query, use __whereDoesNotMatchKeyInQuery__. For example, to find users whose hometown teams have losing records: - -```dart -QueryBuilder teamQuery = - QueryBuilder(ParseObject('Team')) - ..whereGreaterThan('winPct', 0.5); - -QueryBuilder losingUserQuery = - QueryBuilderParseUser.forQuery()) - ..whereDoesNotMatchKeyInQuery('hometown', 'city', teamQuery); - -var apiResponse = await losingUserQuery.query(); -``` - -To filter rows based on objectId’s from pointers in a second table, you can use dot notation: -```dart -QueryBuilder rolesOfTypeX = - QueryBuilder(ParseObject('Role')) - ..whereEqualTo('type', 'x'); - -QueryBuilder groupsWithRoleX = - QueryBuilder(ParseObject('Group'))) - ..whereMatchesKeyInQuery('objectId', 'belongsTo.objectId', rolesOfTypeX); - -var apiResponse = await groupsWithRoleX.query(); -``` - -## Counting Objects -If you only care about the number of games played by a particular player: - -```dart -QueryBuilder queryPlayers = - QueryBuilder(ParseObject('GameScore')) - ..whereEqualTo('playerName', 'Jonathan Walsh'); -var apiResponse = await queryPlayers.count(); -if (apiResponse.success && apiResponse.result != null) { - int countGames = apiResponse.count; -} -``` - -## Live Queries -This tool allows you to subscribe to a QueryBuilder you are interested in. Once subscribed, the server will notify clients -whenever a ParseObject that matches the QueryBuilder is created or updated, in real-time. - -Parse LiveQuery contains two parts, the LiveQuery server and the LiveQuery clients. In order to use live queries, you need -to set up both of them. - -The Parse Server configuration guide on the server is found here https://docs.parseplatform.org/parse-server/guide/#live-queries and is not part of this documentation. - -Initialize the Parse Live Query by entering the parameter liveQueryUrl in Parse().initialize: -```dart -Parse().initialize( - keyApplicationId, - keyParseServerUrl, - clientKey: keyParseClientKey, - debug: true, - liveQueryUrl: keyLiveQueryUrl, - autoSendSessionId: true); -``` - -Declare LiveQuery: -```dart -final LiveQuery liveQuery = LiveQuery(); -``` - -Set the QueryBuilder that will be monitored by LiveQuery: -```dart -QueryBuilder query = - QueryBuilder(ParseObject('TestAPI')) - ..whereEqualTo('intNumber', 1); -``` -__Create a subscription__ -You’ll get the LiveQuery events through this subscription. -The first time you call subscribe, we’ll try to open the WebSocket connection to the LiveQuery server for you. - -```dart -Subscription subscription = await liveQuery.client.subscribe(query); -``` - -__Event Handling__ -We define several types of events you’ll get through a subscription object: - -__Create event__ -When a new ParseObject is created and it fulfills the QueryBuilder you subscribe, you’ll get this event. -The object is the ParseObject which was created. -```dart -subscription.on(LiveQueryEvent.create, (value) { - print('*** CREATE ***: ${DateTime.now().toString()}\n $value '); - print((value as ParseObject).objectId); - print((value as ParseObject).updatedAt); - print((value as ParseObject).createdAt); - print((value as ParseObject).get('objectId')); - print((value as ParseObject).get('updatedAt')); - print((value as ParseObject).get('createdAt')); -}); -``` - -__Update event__ -When an existing ParseObject which fulfills the QueryBuilder you subscribe is updated (The ParseObject fulfills the -QueryBuilder before and after changes), you’ll get this event. -The object is the ParseObject which was updated. Its content is the latest value of the ParseObject. -```dart -subscription.on(LiveQueryEvent.update, (value) { - print('*** UPDATE ***: ${DateTime.now().toString()}\n $value '); - print((value as ParseObject).objectId); - print((value as ParseObject).updatedAt); - print((value as ParseObject).createdAt); - print((value as ParseObject).get('objectId')); - print((value as ParseObject).get('updatedAt')); - print((value as ParseObject).get('createdAt')); -}); -``` - -__Enter event__ -When an existing ParseObject’s old value does not fulfill the QueryBuilder but its new value fulfills the QueryBuilder, -you’ll get this event. The object is the ParseObject which enters the QueryBuilder. -Its content is the latest value of the ParseObject. -```dart -subscription.on(LiveQueryEvent.enter, (value) { - print('*** ENTER ***: ${DateTime.now().toString()}\n $value '); - print((value as ParseObject).objectId); - print((value as ParseObject).updatedAt); - print((value as ParseObject).createdAt); - print((value as ParseObject).get('objectId')); - print((value as ParseObject).get('updatedAt')); - print((value as ParseObject).get('createdAt')); -}); -``` - -__Leave event__ -When an existing ParseObject’s old value fulfills the QueryBuilder but its new value doesn’t fulfill the QueryBuilder, -you’ll get this event. The object is the ParseObject which leaves the QueryBuilder. -Its content is the latest value of the ParseObject. -```dart -subscription.on(LiveQueryEvent.leave, (value) { - print('*** LEAVE ***: ${DateTime.now().toString()}\n $value '); - print((value as ParseObject).objectId); - print((value as ParseObject).updatedAt); - print((value as ParseObject).createdAt); - print((value as ParseObject).get('objectId')); - print((value as ParseObject).get('updatedAt')); - print((value as ParseObject).get('createdAt')); -}); -``` - -__Delete event__ -When an existing ParseObject which fulfills the QueryBuilder is deleted, you’ll get this event. -The object is the ParseObject which is deleted -```dart -subscription.on(LiveQueryEvent.delete, (value) { - print('*** DELETE ***: ${DateTime.now().toString()}\n $value '); - print((value as ParseObject).objectId); - print((value as ParseObject).updatedAt); - print((value as ParseObject).createdAt); - print((value as ParseObject).get('objectId')); - print((value as ParseObject).get('updatedAt')); - print((value as ParseObject).get('createdAt')); -}); -``` - -__Unsubscribe__ -If you would like to stop receiving events from a QueryBuilder, you can just unsubscribe the subscription. -After that, you won’t get any events from the subscription object and will close the WebSocket connection to the -LiveQuery server. - -```dart -liveQuery.client.unSubscribe(subscription); -``` - -__Disconnection__ -In case the client's connection to the server breaks, -LiveQuery will automatically try to reconnect. -LiveQuery will wait at increasing intervals between reconnection attempts. -By default, these intervals are set to `[0, 500, 1000, 2000, 5000, 10000]` for mobile and `[0, 500, 1000, 2000, 5000]` for web. -You can change these by providing a custom list using the `liveListRetryIntervals` parameter at `Parse.initialize()` ("-1" means "do not try to reconnect"). - -## ParseLiveList -ParseLiveList makes implementing a dynamic List as simple as possible. - -#### General Use -It ships with the ParseLiveList class itself, this class manages all elements of the list, sorts them, -keeps itself up to date and Notifies you on changes. - -ParseLiveListWidget is a widget that handles all the communication with the ParseLiveList for you. -Using ParseLiveListWidget you can create a dynamic List by just providing a QueryBuilder. - -```dart -ParseLiveListWidget( - query: query, - ); -``` -To customize the List Elements, you can provide a childBuilder. -```dart -ParseLiveListWidget( - query: query, - reverse: false, - childBuilder: - (BuildContext context, ParseLiveListElementSnapshot snapshot) { - if (snapshot.failed) { - return const Text('something went wrong!'); - } else if (snapshot.hasData) { - return ListTile( - title: Text( - snapshot.loadedData.get("text"), - ), - ); - } else { - return const ListTile( - leading: CircularProgressIndicator(), - ); - } - }, -); -``` -Similar to the standard ListView, you can provide arguments like reverse or shrinkWrap. -By providing the listLoadingElement, you can show the user something while the list is loading. -```dart -ParseLiveListWidget( - query: query, - childBuilder: childBuilder, - listLoadingElement: Center( - child: CircularProgressIndicator(), - ), -); -``` -By providing the duration argument, you can change the animation speed. -```dart -ParseLiveListWidget( - query: query, - childBuilder: childBuilder, - duration: Duration(seconds: 1), -); -``` -### Include Sub-Objects - -By default, ParseLiveQuery will provide you with all the objects you included in your Query like this: -```dart -queryBuilder.includeObject(/*List of all the included sub-objects*/); -``` -ParseLiveList will not listen for updates on this objects by default. -To activate listening for updates on all included objects, add `listenOnAllSubItems: true` to your ParseLiveListWidgets constructor. -If you want ParseLiveList to listen for updates on only some sub-objects, use `listeningIncludes: const [/*all the included sub-objects*/]` instead. -Just as QueryBuilder, ParseLiveList supports nested sub-objects too. - -### Lazy Loading - -By default, ParseLiveList lazy loads the content. -You can avoid that by setting `lazyLoading: false`. -In case you want to use lazyLoading but you need some columns to be preloaded, you can provide a list of `preloadedColumns`. -Preloading fields of a pointer is supported by using the dot-notation. -You can access the preloaded data is stored in the `preLoadedData` field of the `ParseLiveListElementSnapshot`. -```dart -ParseLiveListWidget( - query: query, - lazyLoading: true, - preloadedColumns: ["test1", "sender.username"], - childBuilder: - (BuildContext context, ParseLiveListElementSnapshot snapshot) { - if (snapshot.failed) { - return const Text('something went wrong!'); - } else if (snapshot.hasData) { - return ListTile( - title: Text( - snapshot.loadedData.get("text"), - ), - ); - } else { - return ListTile( - title: Text( - "loading comment from: ${snapshot.preLoadedData?.get("sender")?.get("username")}", - ), - ); - } - }, -); -``` - -**NOTE:** To use this features you have to enable [Live Queries](#live-queries) first. - -## Users -You can create and control users just as normal using this SDK. - -To register a user, first create one : -```dart -var user = ParseUser().create("TestFlutter", "TestPassword123", "TestFlutterSDK@gmail.com"); -``` -Then have the user sign up: - -```dart -var response = await user.signUp(); -if (response.success) user = response.result; -``` -You can also login with the user: -```dart -var response = await user.login(); -if (response.success) user = response.result; -``` -You can also logout with the user: -```dart -var response = await user.logout(); -if (response.success) { - print('User logout'); -} -``` -Also, once logged in you can manage sessions tokens. This feature can be called after Parse().init() on startup to check for a logged in user. -```dart -user = ParseUser.currentUser(); -``` - -To add additional columns to the user: -```dart -var user = ParseUser("TestFlutter", "TestPassword123", "TestFlutterSDK@gmail.com") - ..set("userLocation", "FlutterLand"); -``` - -Other user features are:- - * Request Password Reset - * Verification Email Request - * Get all users - * Save - * Destroy user - * Queries - - ## Facebook, OAuth and 3rd Party Login/User - - Usually, each provider will provide their own library for logins, but the loginWith method on ParseUser accepts a name of provider, then a Map with the authentication details required. - For Facebook and the example below, we used the library provided at https://pub.dev/packages/flutter_facebook_login - - ``` - Future goToFacebookLogin() async { - final FacebookLogin facebookLogin = FacebookLogin(); - final FacebookLoginResult result = await facebookLogin.logInWithReadPermissions(['email']); - - switch (result.status) { - case FacebookLoginStatus.loggedIn: - final ParseResponse response = await ParseUser.loginWith( - 'facebook', - facebook(result.accessToken.token, - result.accessToken.userId, - result.accessToken.expires)); - - if (response.success) { - // User is logged in, test with ParseUser.currentUser() - } - break; - case FacebookLoginStatus.cancelledByUser: - // User cancelled - break; - case FacebookLoginStatus.error: - // Error - break; - } - } -``` - -For Google and the example below, we used the library provided at https://pub.dev/packages/google_sign_in - -``` -class OAuthLogin { - final GoogleSignIn _googleSignIn = GoogleSignIn( scopes: ['email', 'https://www.googleapis.com/auth/contacts.readonly'] ); - - signInGoogle() async { - GoogleSignInAccount account = await _googleSignIn.signIn(); - GoogleSignInAuthentication authentication = await account.authentication; - await ParseUser.loginWith( - 'google', - google(authentication.accessToken!, _googleSignIn.currentUser!.id, - authentication.idToken!)); - } -} -``` - -## Security for Objects - ParseACL -For any object, you can specify which users are allowed to read the object, and which users are allowed to modify an object. -To support this type of security, each object has an access control list, implemented by the __ParseACL__ class. - -If ParseACL is not specified (with the exception of the ParseUser class) all objects are set to Public for read and write. -The simplest way to use a ParseACL is to specify that an object may only be read or written by a single user. -To create such an object, there must first be a logged in ParseUser. Then, new ParseACL(user) generates a ParseACL that -limits access to that user. An object’s ACL is updated when the object is saved, like any other property. - -```dart -ParseUser user = await ParseUser.currentUser() as ParseUser; -ParseACL parseACL = ParseACL(owner: user); - -ParseObject parseObject = ParseObject("TestAPI"); -... -parseObject.setACL(parseACL); -var apiResponse = await parseObject.save(); -``` -Permissions can also be granted on a per-user basis. You can add permissions individually to a ParseACL using -__setReadAccess__ and __setWriteAccess__ -```dart -ParseUser user = await ParseUser.currentUser() as ParseUser; -ParseACL parseACL = ParseACL(); -//grant total access to current user -parseACL.setReadAccess(userId: user.objectId, allowed: true); -parseACL.setWriteAccess(userId: user.objectId, allowed: true); -//grant read access to userId: 'TjRuDjuSAO' -parseACL.setReadAccess(userId: 'TjRuDjuSAO', allowed: true); -parseACL.setWriteAccess(userId: 'TjRuDjuSAO', allowed: false); - -ParseObject parseObject = ParseObject("TestAPI"); -... -parseObject.setACL(parseACL); -var apiResponse = await parseObject.save(); -``` -You can also grant permissions to all users at once using setPublicReadAccess and setPublicWriteAccess. -```dart -ParseACL parseACL = ParseACL(); -parseACL.setPublicReadAccess(allowed: true); -parseACL.setPublicWriteAccess(allowed: true); - -ParseObject parseObject = ParseObject("TestAPI"); -... -parseObject.setACL(parseACL); -var apiResponse = await parseObject.save(); -``` -Operations that are forbidden, such as deleting an object that you do not have write access to, result in a -ParseError with code 101: 'ObjectNotFound'. -For security purposes, this prevents clients from distinguishing which object ids exist but are secured, versus which -object ids do not exist at all. - -You can retrieve the ACL list of an object using: -```dart -ParseACL parseACL = parseObject.getACL(); -``` - -To set the ACL to `ParseRole` use: - -```dart -parseACL.setReadAccess(userId: "role:ROLE_NAME", allowed: true); -parseACL.setWriteAccess(userId: "role:ROLE_NAME", allowed: true); -``` - -## Config -The SDK supports Parse Config. A map of all configs can be grabbed from the server by calling : -```dart -var response = await ParseConfig().getConfigs(); -``` - -and to add a config: -```dart -ParseConfig().addConfig('TestConfig', 'testing'); -``` - -## Cloud Functions -The SDK supports call Cloud Functions. - -Executes a cloud function that returns a ParseObject type -```dart -final ParseCloudFunction function = ParseCloudFunction('hello'); -final ParseResponse result = - await function.executeObjectFunction(); -if (result.success) { - if (result.result is ParseObject) { - final ParseObject parseObject = result.result; - print(parseObject.className); - } -} -``` - -Executes a cloud function with parameters -```dart -final ParseCloudFunction function = ParseCloudFunction('hello'); -final Map params = {'plan': 'paid'}; -function.execute(parameters: params); -``` - -## Relation - -The SDK supports Relation. - -To add relation to object: - -```dart -dietPlan.addRelation('fruits', [ParseObject("Fruits")..set("objectId", "XGadzYxnac")]); -``` - -To remove relation to object: - -```dart -dietPlan.removeRelation('fruits', [ParseObject("Fruits")..set("objectId", "XGadzYxnac")]); -``` - -To Retrive a relation instance for user, call: -```dart -final relation = dietPlan.getRelation('fruits'); -``` - -and then you can add a relation to the passed in object: -``` -relation.add(dietPlan); -final result = await user.save(); -``` - -To retrieve objects that are members of Relation field of a parent object: -```dart -QueryBuilder query = - QueryBuilder(ParseObject('Fruits')) - ..whereRelatedTo('fruits', 'DietPlan', DietPlan.objectId); -``` - -## File -There are three different file classes in this SDK: -- `ParseFileBase` is and abstract class and is the foundation of every file class that can be handled by this SDK. -- `ParseFile` (former the only file class in the SDK) extends ParseFileBase and is by default used as the file class on every platform but web. -This class uses a `File` from `dart:io` for storing the raw file. -- `ParseWebFile` is the equivalent to ParseFile used at Flutter Web. -This class uses an `Uint8List` for storing the raw file. - -These classes are used by default to represent files, but you can also build your own class extending ParseFileBase and provide a custom `ParseFileConstructor` similar to the `SubClasses`. - -Have a look at the example application for a small (non web) example. - -When uploading or downloading a file, you can use the `progressCallback`-parameter to track the progress of the http request. - -```dart -//A short example for showing an image from a ParseFileBase -Widget buildImage(ParseFileBase image){ - return FutureBuilder( - future: image.download(), - builder: (BuildContext context, - AsyncSnapshot snapshot) { - if (snapshot.hasData) { - if (kIsWeb) { - return Image.memory((snapshot.data as ParseWebFile).file); - } else { - return Image.file((snapshot.data as ParseFile).file); - } - } else { - return CircularProgressIndicator(); - } - }, - ); -} -``` -```dart -//A short example for storing a selected picture -//libraries: image_picker (https://pub.dev/packages/image_picker), image_picker_for_web (https://pub.dev/packages/image_picker_for_web) -PickedFile pickedFile = await ImagePicker().getImage(source: ImageSource.gallery); -ParseFileBase parseFile; -if (kIsWeb) { - //Seems weird, but this lets you get the data from the selected file as an Uint8List very easily. - ParseWebFile file = ParseWebFile(null, name: null, url: pickedFile.path); - await file.download(); - parseFile = ParseWebFile(file.file, name: file.name); -} else { - parseFile = ParseFile(File(pickedFile.path)); -} -someParseObject.set("image", parseFile); -//This saves the ParseObject as well as all of its children, and the ParseFileBase is such a child. -await someParseObject.save(); -``` - -## Other Features - -Main: -* Installation (View the example application) -* GeoPoints (View the example application) -* Persistent storage -* Debug Mode - Logging API calls -* Manage Session ID's tokens - -User: -* Queries -* Anonymous (View the example application) -* 3rd Party Authentication - -Objects: -* Create new object -* Extend Parse Object and create local objects that can be saved and retrieved -* Queries diff --git a/packages/flutter/analysis_options.yaml b/packages/flutter/analysis_options.yaml deleted file mode 100644 index a51fa3b93..000000000 --- a/packages/flutter/analysis_options.yaml +++ /dev/null @@ -1,28 +0,0 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. - -# The following line activates a set of recommended lints for Flutter apps, -# packages, and plugins designed to encourage good coding practices. -include: package:flutter_lints/flutter.yaml - -linter: - # The lint rules applied to this project can be customized in the - # section below to disable rules from the `package:flutter_lints/flutter.yaml` - # included above or to enable additional rules. A list of all available lints - # and their documentation is published at - # https://dart-lang.github.io/linter/lints/index.html. - # - # Instead of disabling a lint rule for the entire project in the - # section below, it can also be suppressed for a single line of code - # or a specific dart file by using the `// ignore: name_of_lint` and - # `// ignore_for_file: name_of_lint` syntax on the line or in the file - # producing the lint. - rules: - avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options diff --git a/packages/flutter/example/.gitignore b/packages/flutter/example/.gitignore deleted file mode 100644 index 24476c5d1..000000000 --- a/packages/flutter/example/.gitignore +++ /dev/null @@ -1,44 +0,0 @@ -# Miscellaneous -*.class -*.log -*.pyc -*.swp -.DS_Store -.atom/ -.buildlog/ -.history -.svn/ -migrate_working_dir/ - -# IntelliJ related -*.iml -*.ipr -*.iws -.idea/ - -# The .vscode folder contains launch configuration and tasks you configure in -# VS Code which you may wish to be included in version control, so this line -# is commented out by default. -#.vscode/ - -# Flutter/Dart/Pub related -**/doc/api/ -**/ios/Flutter/.last_build_id -.dart_tool/ -.flutter-plugins -.flutter-plugins-dependencies -.packages -.pub-cache/ -.pub/ -/build/ - -# Symbolication related -app.*.symbols - -# Obfuscation related -app.*.map.json - -# Android Studio will place build artifacts here -/android/app/debug -/android/app/profile -/android/app/release diff --git a/packages/flutter/example/.metadata b/packages/flutter/example/.metadata deleted file mode 100644 index e94891d5f..000000000 --- a/packages/flutter/example/.metadata +++ /dev/null @@ -1,45 +0,0 @@ -# This file tracks properties of this Flutter project. -# Used by Flutter tool to assess capabilities and perform upgrades etc. -# -# This file should be version controlled. - -version: - revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - channel: stable - -project_type: app - -# Tracks metadata for the flutter migrate command -migration: - platforms: - - platform: root - create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - - platform: android - create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - - platform: ios - create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - - platform: linux - create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - - platform: macos - create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - - platform: web - create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - - platform: windows - create_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - base_revision: 84a1e904f44f9b0e9c4510138010edcc653163f8 - - # User provided section - - # List of Local paths (relative to this file) that should be - # ignored by the migrate tool. - # - # Files that are not part of the templates will be ignored by default. - unmanaged_files: - - 'lib/main.dart' - - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/packages/flutter/example/README.md b/packages/flutter/example/README.md deleted file mode 100644 index 82d261971..000000000 --- a/packages/flutter/example/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Flutter Plug-in Example - -Demonstrates how to use the flutter_plugin plugin. - -## Getting Started - -This project is a starting point for a Flutter application. - -A few resources to get you started if this is your first Flutter project: - -- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) -- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) - -For help getting started with Flutter development, view the [online documentation](https://docs.flutter.dev/), which offers tutorials, samples, guidance on mobile development, and a full API reference. diff --git a/packages/flutter/example/analysis_options.yaml b/packages/flutter/example/analysis_options.yaml deleted file mode 100644 index 61b6c4de1..000000000 --- a/packages/flutter/example/analysis_options.yaml +++ /dev/null @@ -1,29 +0,0 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. - -# The following line activates a set of recommended lints for Flutter apps, -# packages, and plugins designed to encourage good coding practices. -include: package:flutter_lints/flutter.yaml - -linter: - # The lint rules applied to this project can be customized in the - # section below to disable rules from the `package:flutter_lints/flutter.yaml` - # included above or to enable additional rules. A list of all available lints - # and their documentation is published at - # https://dart-lang.github.io/linter/lints/index.html. - # - # Instead of disabling a lint rule for the entire project in the - # section below, it can also be suppressed for a single line of code - # or a specific dart file by using the `// ignore: name_of_lint` and - # `// ignore_for_file: name_of_lint` syntax on the line or in the file - # producing the lint. - rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options diff --git a/packages/flutter/example/android/.gitignore b/packages/flutter/example/android/.gitignore deleted file mode 100644 index 6f568019d..000000000 --- a/packages/flutter/example/android/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -gradle-wrapper.jar -/.gradle -/captures/ -/gradlew -/gradlew.bat -/local.properties -GeneratedPluginRegistrant.java - -# Remember to never publicly share your keystore. -# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app -key.properties -**/*.keystore -**/*.jks diff --git a/packages/flutter/example/android/app/build.gradle b/packages/flutter/example/android/app/build.gradle deleted file mode 100644 index 88e42a5bc..000000000 --- a/packages/flutter/example/android/app/build.gradle +++ /dev/null @@ -1,72 +0,0 @@ -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - -android { - namespace "com.example.flutter_plugin_example" - compileSdkVersion flutter.compileSdkVersion - ndkVersion flutter.ndkVersion - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = '1.8' - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.flutter_plugin_example" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig signingConfigs.debug - } - } -} - -flutter { - source '../..' -} - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -} diff --git a/packages/flutter/example/android/app/src/debug/AndroidManifest.xml b/packages/flutter/example/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index 399f6981d..000000000 --- a/packages/flutter/example/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/packages/flutter/example/android/app/src/main/AndroidManifest.xml b/packages/flutter/example/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index 3aedae896..000000000 --- a/packages/flutter/example/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - diff --git a/packages/flutter/example/android/app/src/main/kotlin/com/example/flutter_plugin_example/MainActivity.kt b/packages/flutter/example/android/app/src/main/kotlin/com/example/flutter_plugin_example/MainActivity.kt deleted file mode 100644 index c47817771..000000000 --- a/packages/flutter/example/android/app/src/main/kotlin/com/example/flutter_plugin_example/MainActivity.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.example.flutter_plugin_example - -import io.flutter.embedding.android.FlutterActivity - -class MainActivity: FlutterActivity() { -} diff --git a/packages/flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml b/packages/flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml deleted file mode 100644 index f74085f3f..000000000 --- a/packages/flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/packages/flutter/example/android/app/src/main/res/drawable/launch_background.xml b/packages/flutter/example/android/app/src/main/res/drawable/launch_background.xml deleted file mode 100644 index 304732f88..000000000 --- a/packages/flutter/example/android/app/src/main/res/drawable/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/packages/flutter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/flutter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index db77bb4b7b0906d62b1847e87f15cdcacf6a4f29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ diff --git a/packages/flutter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/flutter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 17987b79bb8a35cc66c3c1fd44f5a5526c1b78be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ diff --git a/packages/flutter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/flutter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index d5f1c8d34e7a88e3f88bea192c3a370d44689c3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof diff --git a/packages/flutter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/flutter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 4d6372eebdb28e45604e46eeda8dd24651419bc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` diff --git a/packages/flutter/example/android/app/src/main/res/values-night/styles.xml b/packages/flutter/example/android/app/src/main/res/values-night/styles.xml deleted file mode 100644 index 06952be74..000000000 --- a/packages/flutter/example/android/app/src/main/res/values-night/styles.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/packages/flutter/example/android/app/src/main/res/values/styles.xml b/packages/flutter/example/android/app/src/main/res/values/styles.xml deleted file mode 100644 index cb1ef8805..000000000 --- a/packages/flutter/example/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/packages/flutter/example/android/app/src/profile/AndroidManifest.xml b/packages/flutter/example/android/app/src/profile/AndroidManifest.xml deleted file mode 100644 index 399f6981d..000000000 --- a/packages/flutter/example/android/app/src/profile/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/packages/flutter/example/android/build.gradle b/packages/flutter/example/android/build.gradle deleted file mode 100644 index f7eb7f63c..000000000 --- a/packages/flutter/example/android/build.gradle +++ /dev/null @@ -1,31 +0,0 @@ -buildscript { - ext.kotlin_version = '1.7.10' - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - -allprojects { - repositories { - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/packages/flutter/example/android/gradle.properties b/packages/flutter/example/android/gradle.properties deleted file mode 100644 index 94adc3a3f..000000000 --- a/packages/flutter/example/android/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -org.gradle.jvmargs=-Xmx1536M -android.useAndroidX=true -android.enableJetifier=true diff --git a/packages/flutter/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/flutter/example/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 3c472b99c..000000000 --- a/packages/flutter/example/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip diff --git a/packages/flutter/example/android/settings.gradle b/packages/flutter/example/android/settings.gradle deleted file mode 100644 index 44e62bcf0..000000000 --- a/packages/flutter/example/android/settings.gradle +++ /dev/null @@ -1,11 +0,0 @@ -include ':app' - -def localPropertiesFile = new File(rootProject.projectDir, "local.properties") -def properties = new Properties() - -assert localPropertiesFile.exists() -localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } - -def flutterSdkPath = properties.getProperty("flutter.sdk") -assert flutterSdkPath != null, "flutter.sdk not set in local.properties" -apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/packages/flutter/example/assets/parse.png b/packages/flutter/example/assets/parse.png deleted file mode 100644 index fc7e48dd684b41ac0f292b678ec94f5c4eabd2d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125704 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%0Aj4frbvsED*) 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 S$}~f}Qo5ujpYx~b-~R_V3>*Le diff --git a/packages/flutter/example/fonts/Roboto/LICENSE.txt b/packages/flutter/example/fonts/Roboto/LICENSE.txt deleted file mode 100644 index d64569567..000000000 --- a/packages/flutter/example/fonts/Roboto/LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/packages/flutter/example/fonts/Roboto/Roboto-Black.ttf b/packages/flutter/example/fonts/Roboto/Roboto-Black.ttf deleted file mode 100644 index 689fe5cb3c715f2944fec30e43ccb8a2b10625d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171480 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

~M8)?dE#I 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 Xk2aT?%S{K<(OhA!BxPw6dg^}wc$YKS diff --git a/packages/flutter/example/fonts/Roboto/Roboto-Bold.ttf b/packages/flutter/example/fonts/Roboto/Roboto-Bold.ttf deleted file mode 100644 index d3f01ad245b628f386ac95786f53167038720eb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170760 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�!3r53e9=KAt@g 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

@@ -88,7 +88,7 @@

Constructors

- ParseLiveElement(T object, {bool loaded = false, List<String>? includeObject}) + ParseLiveElement(T object, {bool loaded = false, List<String>? includeObject})
@@ -101,8 +101,8 @@

Properties

- hashCode - int + hashCode + int
@@ -113,7 +113,7 @@

Properties

loaded - bool + bool
@@ -145,8 +145,8 @@

Properties

- runtimeType - Type + runtimeType + Type
@@ -157,7 +157,7 @@

Properties

stream - Stream<T> + Stream<T>
@@ -189,7 +189,7 @@

Methods

- noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -203,7 +203,7 @@

Methods

reconnected() - Future<void> + Future<void> @@ -215,8 +215,8 @@

Methods

- toString() - String + toString() + String @@ -236,8 +236,8 @@

Methods

Operators

- operator ==(Object other) - bool + operator ==(Object other) + bool @@ -448,21 +448,21 @@
flutter_parse_sdk library
  • Properties
  • -
  • hashCode
  • +
  • hashCode
  • loaded
  • object
  • queryBuilder
  • -
  • runtimeType
  • +
  • runtimeType
  • stream
  • Methods
  • dispose
  • -
  • noSuchMethod
  • +
  • noSuchMethod
  • reconnected
  • -
  • toString
  • +
  • toString
  • Operators
  • -
  • operator ==
  • +
  • operator ==
  • diff --git a/dart/flutter_parse_sdk/ParseLiveElement/ParseLiveElement.html b/dart/flutter_parse_sdk/ParseLiveElement/ParseLiveElement.html index 501bf9066..28f60606c 100644 --- a/dart/flutter_parse_sdk/ParseLiveElement/ParseLiveElement.html +++ b/dart/flutter_parse_sdk/ParseLiveElement/ParseLiveElement.html @@ -59,8 +59,8 @@

    ParseLiveElement< ParseLiveElement<T extends ParseObject>(
    1. T object,
    2. -
    3. {bool loaded = false,
    4. -
    5. List<String>? includeObject}
    6. +
    7. {bool loaded = false,
    8. +
    9. List<String>? includeObject}
    ) @@ -113,21 +113,21 @@
    ParseLiveElement class
  • Properties
  • -
  • hashCode
  • +
  • hashCode
  • loaded
  • object
  • queryBuilder
  • -
  • runtimeType
  • +
  • runtimeType
  • stream
  • Methods
  • dispose
  • -
  • noSuchMethod
  • +
  • noSuchMethod
  • reconnected
  • -
  • toString
  • +
  • toString
  • Operators
  • -
  • operator ==
  • +
  • operator ==
  • diff --git a/dart/flutter_parse_sdk/ParseLiveElement/dispose.html b/dart/flutter_parse_sdk/ParseLiveElement/dispose.html index c544083e7..30158cf66 100644 --- a/dart/flutter_parse_sdk/ParseLiveElement/dispose.html +++ b/dart/flutter_parse_sdk/ParseLiveElement/dispose.html @@ -60,7 +60,7 @@

    dispose method @@ -115,21 +115,21 @@

    ParseLiveElement class
  • Properties
  • -
  • hashCode
  • +
  • hashCode
  • loaded
  • object
  • queryBuilder
  • -
  • runtimeType
  • +
  • runtimeType
  • stream
  • Methods
  • dispose
  • -
  • noSuchMethod
  • +
  • noSuchMethod
  • reconnected
  • -
  • toString
  • +
  • toString
  • Operators
  • -
  • operator ==
  • +
  • operator ==
  • diff --git a/dart/flutter_parse_sdk/ParseLiveElement/queryBuilder.html b/dart/flutter_parse_sdk/ParseLiveElement/queryBuilder.html index 84e4bf131..51fe77911 100644 --- a/dart/flutter_parse_sdk/ParseLiveElement/queryBuilder.html +++ b/dart/flutter_parse_sdk/ParseLiveElement/queryBuilder.html @@ -99,21 +99,21 @@
    ParseLiveElement class
  • Properties
  • -
  • hashCode
  • +
  • hashCode
  • loaded
  • object
  • queryBuilder
  • -
  • runtimeType
  • +
  • runtimeType
  • stream
  • Methods
  • dispose
  • -
  • noSuchMethod
  • +
  • noSuchMethod
  • reconnected
  • -
  • toString
  • +
  • toString
  • Operators
  • -
  • operator ==
  • +
  • operator ==
  • diff --git a/dart/flutter_parse_sdk/ParseLiveList-class.html b/dart/flutter_parse_sdk/ParseLiveList-class.html index 955e976d7..b65daa581 100644 --- a/dart/flutter_parse_sdk/ParseLiveList-class.html +++ b/dart/flutter_parse_sdk/ParseLiveList-class.html @@ -67,8 +67,8 @@

    Properties

    - hashCode - int + hashCode + int
    @@ -79,7 +79,7 @@

    Properties

    includes - List<String> + List<String>
    @@ -90,7 +90,7 @@

    Properties

    nextID - int + int
    @@ -100,8 +100,8 @@

    Properties

    - runtimeType - Type + runtimeType + Type
    @@ -112,7 +112,7 @@

    Properties

    size - int + int
    @@ -123,7 +123,7 @@

    Properties

    stream - Stream<ParseLiveListEvent<T>> + Stream<ParseLiveListEvent<T>>
    @@ -143,7 +143,7 @@

    Methods

    after(T object1, T object2) - bool? + bool? @@ -168,8 +168,8 @@

    Methods

    - getAt(int index) - Stream<T> + getAt(int index) + Stream<T> @@ -181,8 +181,8 @@

    Methods

    - getIdentifier(int index) - String + getIdentifier(int index) + String @@ -194,7 +194,7 @@

    Methods

    - getLoadedAt(int index) + getLoadedAt(int index) → T? @@ -207,7 +207,7 @@

    Methods

    - getPreLoadedAt(int index) + getPreLoadedAt(int index) → T? @@ -220,8 +220,8 @@

    Methods

    - idOf(int index) - String + idOf(int index) + String @@ -233,7 +233,7 @@

    Methods

    - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -246,8 +246,8 @@

    Methods

    - toString() - String + toString() + String @@ -267,8 +267,8 @@

    Methods

    Operators

    - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -287,8 +287,8 @@

    Operators

    Static Methods

    - create<T extends ParseObject>(QueryBuilder<T> query, {bool? listenOnAllSubItems, List<String>? listeningIncludes, bool lazyLoading = true, List<String>? preloadedColumns}) - Future<ParseLiveList<T>> + create<T extends ParseObject>(QueryBuilder<T> query, {bool? listenOnAllSubItems, List<String>? listeningIncludes, bool lazyLoading = true, List<String>? preloadedColumns}) + Future<ParseLiveList<T>> @@ -495,10 +495,10 @@
    flutter_parse_sdk library
  • Properties
  • -
  • hashCode
  • +
  • hashCode
  • includes
  • nextID
  • -
  • runtimeType
  • +
  • runtimeType
  • size
  • stream
  • @@ -510,11 +510,11 @@
    flutter_parse_sdk library
  • getLoadedAt
  • getPreLoadedAt
  • idOf
  • -
  • noSuchMethod
  • -
  • toString
  • +
  • noSuchMethod
  • +
  • toString
  • Operators
  • -
  • operator ==
  • +
  • operator ==
  • diff --git a/dart/flutter_parse_sdk/ParseLiveList/after.html b/dart/flutter_parse_sdk/ParseLiveList/after.html index 024ab547d..f79565995 100644 --- a/dart/flutter_parse_sdk/ParseLiveList/after.html +++ b/dart/flutter_parse_sdk/ParseLiveList/after.html @@ -59,7 +59,7 @@

    after method
    -bool? +bool? after(
    1. T object1,
    2. T object2
    ) @@ -155,10 +155,10 @@
    ParseLiveList class
  • Properties
  • -
  • hashCode
  • +
  • hashCode
  • includes
  • nextID
  • -
  • runtimeType
  • +
  • runtimeType
  • size
  • stream
  • @@ -170,11 +170,11 @@
    ParseLiveList class
  • getLoadedAt
  • getPreLoadedAt
  • idOf
  • -
  • noSuchMethod
  • -
  • toString
  • +
  • noSuchMethod
  • +
  • toString
  • Operators
  • -
  • operator ==
  • +
  • operator ==
  • diff --git a/dart/flutter_parse_sdk/ParseLiveList/create.html b/dart/flutter_parse_sdk/ParseLiveList/create.html index 4d06c5b86..e73302b4e 100644 --- a/dart/flutter_parse_sdk/ParseLiveList/create.html +++ b/dart/flutter_parse_sdk/ParseLiveList/create.html @@ -59,12 +59,12 @@

    create<T exte
    -Future<ParseLiveList<T>> +Future<ParseLiveList<T>> create<T extends ParseObject>(
    1. QueryBuilder<T> query,
    2. -
    3. {bool? listenOnAllSubItems,
    4. -
    5. List<String>? listeningIncludes,
    6. -
    7. bool lazyLoading = true,
    8. -
    9. List<String>? preloadedColumns}
    10. +
    11. {bool? listenOnAllSubItems,
    12. +
    13. List<String>? listeningIncludes,
    14. +
    15. bool lazyLoading = true,
    16. +
    17. List<String>? preloadedColumns}
    ) @@ -125,10 +125,10 @@
    ParseLiveList class
  • Properties
  • -
  • hashCode
  • +
  • hashCode
  • includes
  • nextID
  • -
  • runtimeType
  • +
  • runtimeType
  • size
  • stream
  • @@ -140,11 +140,11 @@
    ParseLiveList class
  • getLoadedAt
  • getPreLoadedAt
  • idOf
  • -
  • noSuchMethod
  • -
  • toString
  • +
  • noSuchMethod
  • +
  • toString
  • Operators
  • -
  • operator ==
  • +
  • operator ==
  • diff --git a/dart/flutter_parse_sdk/ParseLiveList/dispose.html b/dart/flutter_parse_sdk/ParseLiveList/dispose.html index c84d1e9ff..0c4998058 100644 --- a/dart/flutter_parse_sdk/ParseLiveList/dispose.html +++ b/dart/flutter_parse_sdk/ParseLiveList/dispose.html @@ -115,10 +115,10 @@
    ParseLiveList class
  • Properties
  • -
  • hashCode
  • +
  • hashCode
  • includes
  • nextID
  • -
  • runtimeType
  • +
  • runtimeType
  • size
  • stream
  • @@ -130,11 +130,11 @@
    ParseLiveList class
  • getLoadedAt
  • getPreLoadedAt
  • idOf
  • -
  • noSuchMethod
  • -
  • toString
  • +
  • noSuchMethod
  • +
  • toString
  • Operators
  • -
  • operator ==
  • +
  • operator ==
  • diff --git a/dart/flutter_parse_sdk/ParseLiveList/getAt.html b/dart/flutter_parse_sdk/ParseLiveList/getAt.html index cfbcd7fdb..6e18959e0 100644 --- a/dart/flutter_parse_sdk/ParseLiveList/getAt.html +++ b/dart/flutter_parse_sdk/ParseLiveList/getAt.html @@ -59,8 +59,8 @@

    getAt method
    -Stream<T> -getAt(
    1. int index
    2. +Stream<T> +getAt(
      1. int index
      ) @@ -127,10 +127,10 @@
      ParseLiveList class
    3. Properties
    4. -
    5. hashCode
    6. +
    7. hashCode
    8. includes
    9. nextID
    10. -
    11. runtimeType
    12. +
    13. runtimeType
    14. size
    15. stream
    16. @@ -142,11 +142,11 @@
      ParseLiveList class
    17. getLoadedAt
    18. getPreLoadedAt
    19. idOf
    20. -
    21. noSuchMethod
    22. -
    23. toString
    24. +
    25. noSuchMethod
    26. +
    27. toString
    28. Operators
    29. -
    30. operator ==
    31. +
    32. operator ==
    33. diff --git a/dart/flutter_parse_sdk/ParseLiveList/getIdentifier.html b/dart/flutter_parse_sdk/ParseLiveList/getIdentifier.html index 567a2b512..3eb2e1eda 100644 --- a/dart/flutter_parse_sdk/ParseLiveList/getIdentifier.html +++ b/dart/flutter_parse_sdk/ParseLiveList/getIdentifier.html @@ -59,8 +59,8 @@

      getIdentifier method
      -String -getIdentifier(
      1. int index
      2. +String +getIdentifier(
        1. int index
        ) @@ -107,10 +107,10 @@
        ParseLiveList class
      3. Properties
      4. -
      5. hashCode
      6. +
      7. hashCode
      8. includes
      9. nextID
      10. -
      11. runtimeType
      12. +
      13. runtimeType
      14. size
      15. stream
      16. @@ -122,11 +122,11 @@
        ParseLiveList class
      17. getLoadedAt
      18. getPreLoadedAt
      19. idOf
      20. -
      21. noSuchMethod
      22. -
      23. toString
      24. +
      25. noSuchMethod
      26. +
      27. toString
      28. Operators
      29. -
      30. operator ==
      31. +
      32. operator ==
      33. diff --git a/dart/flutter_parse_sdk/ParseLiveList/getLoadedAt.html b/dart/flutter_parse_sdk/ParseLiveList/getLoadedAt.html index 65a893e08..0c4318f02 100644 --- a/dart/flutter_parse_sdk/ParseLiveList/getLoadedAt.html +++ b/dart/flutter_parse_sdk/ParseLiveList/getLoadedAt.html @@ -60,7 +60,7 @@

        getLoadedAt method T? -getLoadedAt(
        1. int index
        2. +getLoadedAt(
          1. int index
          ) @@ -106,10 +106,10 @@
          ParseLiveList class
        3. Properties
        4. -
        5. hashCode
        6. +
        7. hashCode
        8. includes
        9. nextID
        10. -
        11. runtimeType
        12. +
        13. runtimeType
        14. size
        15. stream
        16. @@ -121,11 +121,11 @@
          ParseLiveList class
        17. getLoadedAt
        18. getPreLoadedAt
        19. idOf
        20. -
        21. noSuchMethod
        22. -
        23. toString
        24. +
        25. noSuchMethod
        26. +
        27. toString
        28. Operators
        29. -
        30. operator ==
        31. +
        32. operator ==
        33. diff --git a/dart/flutter_parse_sdk/ParseLiveList/getPreLoadedAt.html b/dart/flutter_parse_sdk/ParseLiveList/getPreLoadedAt.html index 8b7e3c63f..4ea6eba1e 100644 --- a/dart/flutter_parse_sdk/ParseLiveList/getPreLoadedAt.html +++ b/dart/flutter_parse_sdk/ParseLiveList/getPreLoadedAt.html @@ -60,7 +60,7 @@

          getPreLoadedAt method T? -getPreLoadedAt(
          1. int index
          2. +getPreLoadedAt(
            1. int index
            ) @@ -106,10 +106,10 @@
            ParseLiveList class
          3. Properties
          4. -
          5. hashCode
          6. +
          7. hashCode
          8. includes
          9. nextID
          10. -
          11. runtimeType
          12. +
          13. runtimeType
          14. size
          15. stream
          16. @@ -121,11 +121,11 @@
            ParseLiveList class
          17. getLoadedAt
          18. getPreLoadedAt
          19. idOf
          20. -
          21. noSuchMethod
          22. -
          23. toString
          24. +
          25. noSuchMethod
          26. +
          27. toString
          28. Operators
          29. -
          30. operator ==
          31. +
          32. operator ==
          33. diff --git a/dart/flutter_parse_sdk/ParseLiveList/idOf.html b/dart/flutter_parse_sdk/ParseLiveList/idOf.html index 0b9214985..e67bb1230 100644 --- a/dart/flutter_parse_sdk/ParseLiveList/idOf.html +++ b/dart/flutter_parse_sdk/ParseLiveList/idOf.html @@ -59,8 +59,8 @@

            idOf method
            -String -idOf(
            1. int index
            2. +String +idOf(
              1. int index
              ) @@ -106,10 +106,10 @@
              ParseLiveList class
            3. Properties
            4. -
            5. hashCode
            6. +
            7. hashCode
            8. includes
            9. nextID
            10. -
            11. runtimeType
            12. +
            13. runtimeType
            14. size
            15. stream
            16. @@ -121,11 +121,11 @@
              ParseLiveList class
            17. getLoadedAt
            18. getPreLoadedAt
            19. idOf
            20. -
            21. noSuchMethod
            22. -
            23. toString
            24. +
            25. noSuchMethod
            26. +
            27. toString
            28. Operators
            29. -
            30. operator ==
            31. +
            32. operator ==
            33. diff --git a/dart/flutter_parse_sdk/ParseLiveList/includes.html b/dart/flutter_parse_sdk/ParseLiveList/includes.html index 1eca7dcc5..7fad1e858 100644 --- a/dart/flutter_parse_sdk/ParseLiveList/includes.html +++ b/dart/flutter_parse_sdk/ParseLiveList/includes.html @@ -62,7 +62,7 @@

              includes property
              - List<String> + List<String> includes @@ -105,10 +105,10 @@
              ParseLiveList class
            34. Properties
            35. -
            36. hashCode
            37. +
            38. hashCode
            39. includes
            40. nextID
            41. -
            42. runtimeType
            43. +
            44. runtimeType
            45. size
            46. stream
            47. @@ -120,11 +120,11 @@
              ParseLiveList class
            48. getLoadedAt
            49. getPreLoadedAt
            50. idOf
            51. -
            52. noSuchMethod
            53. -
            54. toString
            55. +
            56. noSuchMethod
            57. +
            58. toString
            59. Operators
            60. -
            61. operator ==
            62. +
            63. operator ==
            64. diff --git a/dart/flutter_parse_sdk/ParseLiveList/nextID.html b/dart/flutter_parse_sdk/ParseLiveList/nextID.html index 0735eddf7..d9af39af7 100644 --- a/dart/flutter_parse_sdk/ParseLiveList/nextID.html +++ b/dart/flutter_parse_sdk/ParseLiveList/nextID.html @@ -62,7 +62,7 @@

              nextID property
              - int + int nextID @@ -104,10 +104,10 @@
              ParseLiveList class
            65. Properties
            66. -
            67. hashCode
            68. +
            69. hashCode
            70. includes
            71. nextID
            72. -
            73. runtimeType
            74. +
            75. runtimeType
            76. size
            77. stream
            78. @@ -119,11 +119,11 @@
              ParseLiveList class
            79. getLoadedAt
            80. getPreLoadedAt
            81. idOf
            82. -
            83. noSuchMethod
            84. -
            85. toString
            86. +
            87. noSuchMethod
            88. +
            89. toString
            90. Operators
            91. -
            92. operator ==
            93. +
            94. operator ==
            95. diff --git a/dart/flutter_parse_sdk/ParseLiveList/size.html b/dart/flutter_parse_sdk/ParseLiveList/size.html index 8a0bf1f35..ee5e872d7 100644 --- a/dart/flutter_parse_sdk/ParseLiveList/size.html +++ b/dart/flutter_parse_sdk/ParseLiveList/size.html @@ -62,7 +62,7 @@

              size property
              - int + int size @@ -106,10 +106,10 @@
              ParseLiveList class
            96. Properties
            97. -
            98. hashCode
            99. +
            100. hashCode
            101. includes
            102. nextID
            103. -
            104. runtimeType
            105. +
            106. runtimeType
            107. size
            108. stream
            109. @@ -121,11 +121,11 @@
              ParseLiveList class
            110. getLoadedAt
            111. getPreLoadedAt
            112. idOf
            113. -
            114. noSuchMethod
            115. -
            116. toString
            117. +
            118. noSuchMethod
            119. +
            120. toString
            121. Operators
            122. -
            123. operator ==
            124. +
            125. operator ==
            126. diff --git a/dart/flutter_parse_sdk/ParseLiveList/stream.html b/dart/flutter_parse_sdk/ParseLiveList/stream.html index 806430281..8000d2440 100644 --- a/dart/flutter_parse_sdk/ParseLiveList/stream.html +++ b/dart/flutter_parse_sdk/ParseLiveList/stream.html @@ -62,7 +62,7 @@

              stream property
              - Stream<ParseLiveListEvent<T>> + Stream<ParseLiveListEvent<T>> stream @@ -104,10 +104,10 @@
              ParseLiveList class
            127. Properties
            128. -
            129. hashCode
            130. +
            131. hashCode
            132. includes
            133. nextID
            134. -
            135. runtimeType
            136. +
            137. runtimeType
            138. size
            139. stream
            140. @@ -119,11 +119,11 @@
              ParseLiveList class
            141. getLoadedAt
            142. getPreLoadedAt
            143. idOf
            144. -
            145. noSuchMethod
            146. -
            147. toString
            148. +
            149. noSuchMethod
            150. +
            151. toString
            152. Operators
            153. -
            154. operator ==
            155. +
            156. operator ==
            157. diff --git a/dart/flutter_parse_sdk/ParseLiveListAddEvent-class.html b/dart/flutter_parse_sdk/ParseLiveListAddEvent-class.html index 41bf6fd73..44f527b97 100644 --- a/dart/flutter_parse_sdk/ParseLiveListAddEvent-class.html +++ b/dart/flutter_parse_sdk/ParseLiveListAddEvent-class.html @@ -65,7 +65,7 @@

              ParseLiveListAddEvent< -
            158. Object
            159. +
            160. Object
            161. ParseLiveListEvent<T>
            162. ParseLiveListAddEvent
            163. @@ -88,7 +88,7 @@

              Constructors

              - ParseLiveListAddEvent(int index, T object) + ParseLiveListAddEvent(int index, T object)
              @@ -101,8 +101,8 @@

              Properties

              - hashCode - int + hashCode + int
              @@ -113,7 +113,7 @@

              Properties

              index - int + int
              @@ -134,8 +134,8 @@

              Properties

              - runtimeType - Type + runtimeType + Type
              @@ -154,7 +154,7 @@

              Properties

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -167,8 +167,8 @@

              Methods

              - toString() - String + toString() + String @@ -188,8 +188,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -400,17 +400,17 @@
              flutter_parse_sdk library
            164. Properties
            165. -
            166. hashCode
            167. +
            168. hashCode
            169. index
            170. object
            171. -
            172. runtimeType
            173. +
            174. runtimeType
            175. Methods
            176. -
            177. noSuchMethod
            178. -
            179. toString
            180. +
            181. noSuchMethod
            182. +
            183. toString
            184. Operators
            185. -
            186. operator ==
            187. +
            188. operator ==
            189. diff --git a/dart/flutter_parse_sdk/ParseLiveListAddEvent/ParseLiveListAddEvent.html b/dart/flutter_parse_sdk/ParseLiveListAddEvent/ParseLiveListAddEvent.html index cdf3684a3..369fcf0ca 100644 --- a/dart/flutter_parse_sdk/ParseLiveListAddEvent/ParseLiveListAddEvent.html +++ b/dart/flutter_parse_sdk/ParseLiveListAddEvent/ParseLiveListAddEvent.html @@ -58,7 +58,7 @@

              ParseLiveListAddEvent< - ParseLiveListAddEvent<T extends ParseObject>(
              1. int index,
              2. + ParseLiveListAddEvent<T extends ParseObject>(
                1. int index,
                2. T object
                )

              @@ -100,17 +100,17 @@

              ParseLiveListAddEvent class
            190. Properties
            191. -
            192. hashCode
            193. +
            194. hashCode
            195. index
            196. object
            197. -
            198. runtimeType
            199. +
            200. runtimeType
            201. Methods
            202. -
            203. noSuchMethod
            204. -
            205. toString
            206. +
            207. noSuchMethod
            208. +
            209. toString
            210. Operators
            211. -
            212. operator ==
            213. +
            214. operator ==
            215. diff --git a/dart/flutter_parse_sdk/ParseLiveListDeleteEvent-class.html b/dart/flutter_parse_sdk/ParseLiveListDeleteEvent-class.html index 12bcb1bf7..b4203d20e 100644 --- a/dart/flutter_parse_sdk/ParseLiveListDeleteEvent-class.html +++ b/dart/flutter_parse_sdk/ParseLiveListDeleteEvent-class.html @@ -65,7 +65,7 @@

              ParseLiveListDeleteEvent< -
            216. Object
            217. +
            218. Object
            219. ParseLiveListEvent<T>
            220. ParseLiveListDeleteEvent
            221. @@ -88,7 +88,7 @@

              Constructors

              - ParseLiveListDeleteEvent(int index, T object) + ParseLiveListDeleteEvent(int index, T object)
              @@ -101,8 +101,8 @@

              Properties

              - hashCode - int + hashCode + int
              @@ -113,7 +113,7 @@

              Properties

              index - int + int
              @@ -134,8 +134,8 @@

              Properties

              - runtimeType - Type + runtimeType + Type
              @@ -154,7 +154,7 @@

              Properties

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -167,8 +167,8 @@

              Methods

              - toString() - String + toString() + String @@ -188,8 +188,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -400,17 +400,17 @@
              flutter_parse_sdk library
            222. Properties
            223. -
            224. hashCode
            225. +
            226. hashCode
            227. index
            228. object
            229. -
            230. runtimeType
            231. +
            232. runtimeType
            233. Methods
            234. -
            235. noSuchMethod
            236. -
            237. toString
            238. +
            239. noSuchMethod
            240. +
            241. toString
            242. Operators
            243. -
            244. operator ==
            245. +
            246. operator ==
            247. diff --git a/dart/flutter_parse_sdk/ParseLiveListDeleteEvent/ParseLiveListDeleteEvent.html b/dart/flutter_parse_sdk/ParseLiveListDeleteEvent/ParseLiveListDeleteEvent.html index 2651ee7d8..185cb2a86 100644 --- a/dart/flutter_parse_sdk/ParseLiveListDeleteEvent/ParseLiveListDeleteEvent.html +++ b/dart/flutter_parse_sdk/ParseLiveListDeleteEvent/ParseLiveListDeleteEvent.html @@ -58,7 +58,7 @@

              ParseLiveListDeleteEvent< - ParseLiveListDeleteEvent<T extends ParseObject>(
              1. int index,
              2. + ParseLiveListDeleteEvent<T extends ParseObject>(
                1. int index,
                2. T object
                )

              @@ -100,17 +100,17 @@

              ParseLiveListDeleteEvent class
            248. Properties
            249. -
            250. hashCode
            251. +
            252. hashCode
            253. index
            254. object
            255. -
            256. runtimeType
            257. +
            258. runtimeType
            259. Methods
            260. -
            261. noSuchMethod
            262. -
            263. toString
            264. +
            265. noSuchMethod
            266. +
            267. toString
            268. Operators
            269. -
            270. operator ==
            271. +
            272. operator ==
            273. diff --git a/dart/flutter_parse_sdk/ParseLiveListElement-class.html b/dart/flutter_parse_sdk/ParseLiveListElement-class.html index 87f351f05..a4443b274 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElement-class.html +++ b/dart/flutter_parse_sdk/ParseLiveListElement-class.html @@ -84,7 +84,7 @@

              Constructors

              - ParseLiveListElement(T _object, {bool loaded = false, Map<String, dynamic>? updatedSubItems}) + ParseLiveListElement(T _object, {bool loaded = false, Map<String, dynamic>? updatedSubItems})
              @@ -97,8 +97,8 @@

              Properties

              - hashCode - int + hashCode + int
              @@ -109,7 +109,7 @@

              Properties

              loaded - bool + bool
              @@ -130,8 +130,8 @@

              Properties

              - runtimeType - Type + runtimeType + Type
              @@ -142,7 +142,7 @@

              Properties

              stream - Stream<T> + Stream<T>
              @@ -174,7 +174,7 @@

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -188,7 +188,7 @@

              Methods

              reconnected() - Future<void> + Future<void> @@ -200,8 +200,8 @@

              Methods

              - toString() - String + toString() + String @@ -221,8 +221,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -433,20 +433,20 @@
              flutter_parse_sdk library
            274. Properties
            275. -
            276. hashCode
            277. +
            278. hashCode
            279. loaded
            280. object
            281. -
            282. runtimeType
            283. +
            284. runtimeType
            285. stream
            286. Methods
            287. dispose
            288. -
            289. noSuchMethod
            290. +
            291. noSuchMethod
            292. reconnected
            293. -
            294. toString
            295. +
            296. toString
            297. Operators
            298. -
            299. operator ==
            300. +
            301. operator ==
            302. diff --git a/dart/flutter_parse_sdk/ParseLiveListElement/ParseLiveListElement.html b/dart/flutter_parse_sdk/ParseLiveListElement/ParseLiveListElement.html index b794c10c8..32637b928 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElement/ParseLiveListElement.html +++ b/dart/flutter_parse_sdk/ParseLiveListElement/ParseLiveListElement.html @@ -59,8 +59,8 @@

              ParseLiveListElement< ParseLiveListElement<T extends ParseObject>(
              1. T _object,
              2. -
              3. {bool loaded = false,
              4. -
              5. Map<String, dynamic>? updatedSubItems}
              6. +
              7. {bool loaded = false,
              8. +
              9. Map<String, dynamic>? updatedSubItems}
              )

              @@ -110,20 +110,20 @@

              ParseLiveListElement class
            303. Properties
            304. -
            305. hashCode
            306. +
            307. hashCode
            308. loaded
            309. object
            310. -
            311. runtimeType
            312. +
            313. runtimeType
            314. stream
            315. Methods
            316. dispose
            317. -
            318. noSuchMethod
            319. +
            320. noSuchMethod
            321. reconnected
            322. -
            323. toString
            324. +
            325. toString
            326. Operators
            327. -
            328. operator ==
            329. +
            330. operator ==
            331. diff --git a/dart/flutter_parse_sdk/ParseLiveListElement/dispose.html b/dart/flutter_parse_sdk/ParseLiveListElement/dispose.html index b374e9214..68fe86d04 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElement/dispose.html +++ b/dart/flutter_parse_sdk/ParseLiveListElement/dispose.html @@ -105,20 +105,20 @@
              ParseLiveListElement class
            332. Properties
            333. -
            334. hashCode
            335. +
            336. hashCode
            337. loaded
            338. object
            339. -
            340. runtimeType
            341. +
            342. runtimeType
            343. stream
            344. Methods
            345. dispose
            346. -
            347. noSuchMethod
            348. +
            349. noSuchMethod
            350. reconnected
            351. -
            352. toString
            353. +
            354. toString
            355. Operators
            356. -
            357. operator ==
            358. +
            359. operator ==
            360. diff --git a/dart/flutter_parse_sdk/ParseLiveListElement/loaded.html b/dart/flutter_parse_sdk/ParseLiveListElement/loaded.html index bb0e6a422..3c5c9633d 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElement/loaded.html +++ b/dart/flutter_parse_sdk/ParseLiveListElement/loaded.html @@ -62,7 +62,7 @@

              loaded property
              - bool + bool loaded @@ -106,20 +106,20 @@
              ParseLiveListElement class
            361. Properties
            362. -
            363. hashCode
            364. +
            365. hashCode
            366. loaded
            367. object
            368. -
            369. runtimeType
            370. +
            371. runtimeType
            372. stream
            373. Methods
            374. dispose
            375. -
            376. noSuchMethod
            377. +
            378. noSuchMethod
            379. reconnected
            380. -
            381. toString
            382. +
            383. toString
            384. Operators
            385. -
            386. operator ==
            387. +
            388. operator ==
            389. diff --git a/dart/flutter_parse_sdk/ParseLiveListElement/object.html b/dart/flutter_parse_sdk/ParseLiveListElement/object.html index 7b0f5c8b4..12d9577fc 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElement/object.html +++ b/dart/flutter_parse_sdk/ParseLiveListElement/object.html @@ -133,20 +133,20 @@
              ParseLiveListElement class
            390. Properties
            391. -
            392. hashCode
            393. +
            394. hashCode
            395. loaded
            396. object
            397. -
            398. runtimeType
            399. +
            400. runtimeType
            401. stream
            402. Methods
            403. dispose
            404. -
            405. noSuchMethod
            406. +
            407. noSuchMethod
            408. reconnected
            409. -
            410. toString
            411. +
            412. toString
            413. Operators
            414. -
            415. operator ==
            416. +
            417. operator ==
            418. diff --git a/dart/flutter_parse_sdk/ParseLiveListElement/reconnected.html b/dart/flutter_parse_sdk/ParseLiveListElement/reconnected.html index b48bf2ed1..fe82586af 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElement/reconnected.html +++ b/dart/flutter_parse_sdk/ParseLiveListElement/reconnected.html @@ -59,7 +59,7 @@

              reconnected method
              -Future<void> +Future<void> reconnected() @@ -109,20 +109,20 @@
              ParseLiveListElement class
            419. Properties
            420. -
            421. hashCode
            422. +
            423. hashCode
            424. loaded
            425. object
            426. -
            427. runtimeType
            428. +
            429. runtimeType
            430. stream
            431. Methods
            432. dispose
            433. -
            434. noSuchMethod
            435. +
            436. noSuchMethod
            437. reconnected
            438. -
            439. toString
            440. +
            441. toString
            442. Operators
            443. -
            444. operator ==
            445. +
            446. operator ==
            447. diff --git a/dart/flutter_parse_sdk/ParseLiveListElement/stream.html b/dart/flutter_parse_sdk/ParseLiveListElement/stream.html index ea261e398..10cb425c3 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElement/stream.html +++ b/dart/flutter_parse_sdk/ParseLiveListElement/stream.html @@ -62,7 +62,7 @@

              stream property
              - Stream<T> + Stream<T> stream @@ -106,20 +106,20 @@
              ParseLiveListElement class
            448. Properties
            449. -
            450. hashCode
            451. +
            452. hashCode
            453. loaded
            454. object
            455. -
            456. runtimeType
            457. +
            458. runtimeType
            459. stream
            460. Methods
            461. dispose
            462. -
            463. noSuchMethod
            464. +
            465. noSuchMethod
            466. reconnected
            467. -
            468. toString
            469. +
            470. toString
            471. Operators
            472. -
            473. operator ==
            474. +
            475. operator ==
            476. diff --git a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot-class.html b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot-class.html index c4dfe050c..2be5233dd 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot-class.html +++ b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot-class.html @@ -91,7 +91,7 @@

              Properties

              failed - bool + bool
              @@ -102,7 +102,7 @@

              Properties

              hasData - bool + bool
              @@ -112,8 +112,8 @@

              Properties

              - hashCode - int + hashCode + int
              @@ -124,7 +124,7 @@

              Properties

              hasPreLoadedData - bool + bool
              @@ -156,8 +156,8 @@

              Properties

              - runtimeType - Type + runtimeType + Type
              @@ -176,7 +176,7 @@

              Properties

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -189,8 +189,8 @@

              Methods

              - toString() - String + toString() + String @@ -210,8 +210,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -425,18 +425,18 @@
              flutter_parse_sdk library
            477. error
            478. failed
            479. hasData
            480. -
            481. hashCode
            482. +
            483. hashCode
            484. hasPreLoadedData
            485. loadedData
            486. preLoadedData
            487. -
            488. runtimeType
            489. +
            490. runtimeType
            491. Methods
            492. -
            493. noSuchMethod
            494. -
            495. toString
            496. +
            497. noSuchMethod
            498. +
            499. toString
            500. Operators
            501. -
            502. operator ==
            503. +
            504. operator ==
            505. diff --git a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/ParseLiveListElementSnapshot.html b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/ParseLiveListElementSnapshot.html index d93d8e29d..5345a4c4a 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/ParseLiveListElementSnapshot.html +++ b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/ParseLiveListElementSnapshot.html @@ -105,18 +105,18 @@
              ParseLiveListElementSnapshot class
            506. error
            507. failed
            508. hasData
            509. -
            510. hashCode
            511. +
            512. hashCode
            513. hasPreLoadedData
            514. loadedData
            515. preLoadedData
            516. -
            517. runtimeType
            518. +
            519. runtimeType
            520. Methods
            521. -
            522. noSuchMethod
            523. -
            524. toString
            525. +
            526. noSuchMethod
            527. +
            528. toString
            529. Operators
            530. -
            531. operator ==
            532. +
            533. operator ==
            534. diff --git a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/error.html b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/error.html index 9b41b9acc..a13cc588b 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/error.html +++ b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/error.html @@ -102,18 +102,18 @@
              ParseLiveListElementSnapshot class
            535. error
            536. failed
            537. hasData
            538. -
            539. hashCode
            540. +
            541. hashCode
            542. hasPreLoadedData
            543. loadedData
            544. preLoadedData
            545. -
            546. runtimeType
            547. +
            548. runtimeType
            549. Methods
            550. -
            551. noSuchMethod
            552. -
            553. toString
            554. +
            555. noSuchMethod
            556. +
            557. toString
            558. Operators
            559. -
            560. operator ==
            561. +
            562. operator ==
            563. diff --git a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/failed.html b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/failed.html index 0642d47c2..fd612d608 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/failed.html +++ b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/failed.html @@ -62,7 +62,7 @@

              failed property
              - bool + bool failed @@ -109,18 +109,18 @@
              ParseLiveListElementSnapshot class
            564. error
            565. failed
            566. hasData
            567. -
            568. hashCode
            569. +
            570. hashCode
            571. hasPreLoadedData
            572. loadedData
            573. preLoadedData
            574. -
            575. runtimeType
            576. +
            577. runtimeType
            578. Methods
            579. -
            580. noSuchMethod
            581. -
            582. toString
            583. +
            584. noSuchMethod
            585. +
            586. toString
            587. Operators
            588. -
            589. operator ==
            590. +
            591. operator ==
            592. diff --git a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/hasData.html b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/hasData.html index 25864aeab..6b91ee330 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/hasData.html +++ b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/hasData.html @@ -62,7 +62,7 @@

              hasData property
              - bool + bool hasData @@ -109,18 +109,18 @@
              ParseLiveListElementSnapshot class
            593. error
            594. failed
            595. hasData
            596. -
            597. hashCode
            598. +
            599. hashCode
            600. hasPreLoadedData
            601. loadedData
            602. preLoadedData
            603. -
            604. runtimeType
            605. +
            606. runtimeType
            607. Methods
            608. -
            609. noSuchMethod
            610. -
            611. toString
            612. +
            613. noSuchMethod
            614. +
            615. toString
            616. Operators
            617. -
            618. operator ==
            619. +
            620. operator ==
            621. diff --git a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/hasPreLoadedData.html b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/hasPreLoadedData.html index 20d533061..645e0fbff 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/hasPreLoadedData.html +++ b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/hasPreLoadedData.html @@ -62,7 +62,7 @@

              hasPreLoadedData property
              - bool + bool hasPreLoadedData @@ -109,18 +109,18 @@
              ParseLiveListElementSnapshot class
            622. error
            623. failed
            624. hasData
            625. -
            626. hashCode
            627. +
            628. hashCode
            629. hasPreLoadedData
            630. loadedData
            631. preLoadedData
            632. -
            633. runtimeType
            634. +
            635. runtimeType
            636. Methods
            637. -
            638. noSuchMethod
            639. -
            640. toString
            641. +
            642. noSuchMethod
            643. +
            644. toString
            645. Operators
            646. -
            647. operator ==
            648. +
            649. operator ==
            650. diff --git a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/loadedData.html b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/loadedData.html index 5e78bfd09..bc5f6952f 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/loadedData.html +++ b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/loadedData.html @@ -102,18 +102,18 @@
              ParseLiveListElementSnapshot class
            651. error
            652. failed
            653. hasData
            654. -
            655. hashCode
            656. +
            657. hashCode
            658. hasPreLoadedData
            659. loadedData
            660. preLoadedData
            661. -
            662. runtimeType
            663. +
            664. runtimeType
            665. Methods
            666. -
            667. noSuchMethod
            668. -
            669. toString
            670. +
            671. noSuchMethod
            672. +
            673. toString
            674. Operators
            675. -
            676. operator ==
            677. +
            678. operator ==
            679. diff --git a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/preLoadedData.html b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/preLoadedData.html index 272dd172e..95d27b017 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/preLoadedData.html +++ b/dart/flutter_parse_sdk/ParseLiveListElementSnapshot/preLoadedData.html @@ -102,18 +102,18 @@
              ParseLiveListElementSnapshot class
            680. error
            681. failed
            682. hasData
            683. -
            684. hashCode
            685. +
            686. hashCode
            687. hasPreLoadedData
            688. loadedData
            689. preLoadedData
            690. -
            691. runtimeType
            692. +
            693. runtimeType
            694. Methods
            695. -
            696. noSuchMethod
            697. -
            698. toString
            699. +
            700. noSuchMethod
            701. +
            702. toString
            703. Operators
            704. -
            705. operator ==
            706. +
            707. operator ==
            708. diff --git a/dart/flutter_parse_sdk/ParseLiveListEvent-class.html b/dart/flutter_parse_sdk/ParseLiveListEvent-class.html index 9964ea704..e97c68358 100644 --- a/dart/flutter_parse_sdk/ParseLiveListEvent-class.html +++ b/dart/flutter_parse_sdk/ParseLiveListEvent-class.html @@ -87,7 +87,7 @@

              Constructors

              - ParseLiveListEvent(int _index, T _object) + ParseLiveListEvent(int _index, T _object)
              @@ -100,8 +100,8 @@

              Properties

              - hashCode - int + hashCode + int
              @@ -112,7 +112,7 @@

              Properties

              index - int + int
              @@ -133,8 +133,8 @@

              Properties

              - runtimeType - Type + runtimeType + Type
              @@ -153,7 +153,7 @@

              Properties

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -166,8 +166,8 @@

              Methods

              - toString() - String + toString() + String @@ -187,8 +187,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -399,17 +399,17 @@
              flutter_parse_sdk library
            709. Properties
            710. -
            711. hashCode
            712. +
            713. hashCode
            714. index
            715. object
            716. -
            717. runtimeType
            718. +
            719. runtimeType
            720. Methods
            721. -
            722. noSuchMethod
            723. -
            724. toString
            725. +
            726. noSuchMethod
            727. +
            728. toString
            729. Operators
            730. -
            731. operator ==
            732. +
            733. operator ==
            734. diff --git a/dart/flutter_parse_sdk/ParseLiveListEvent/ParseLiveListEvent.html b/dart/flutter_parse_sdk/ParseLiveListEvent/ParseLiveListEvent.html index 554cbab27..c2bcd0344 100644 --- a/dart/flutter_parse_sdk/ParseLiveListEvent/ParseLiveListEvent.html +++ b/dart/flutter_parse_sdk/ParseLiveListEvent/ParseLiveListEvent.html @@ -58,7 +58,7 @@

              ParseLiveListEvent< - ParseLiveListEvent<T extends ParseObject>(
              1. int _index,
              2. + ParseLiveListEvent<T extends ParseObject>(
                1. int _index,
                2. T _object
                )

              @@ -100,17 +100,17 @@

              ParseLiveListEvent class
            735. Properties
            736. -
            737. hashCode
            738. +
            739. hashCode
            740. index
            741. object
            742. -
            743. runtimeType
            744. +
            745. runtimeType
            746. Methods
            747. -
            748. noSuchMethod
            749. -
            750. toString
            751. +
            752. noSuchMethod
            753. +
            754. toString
            755. Operators
            756. -
            757. operator ==
            758. +
            759. operator ==
            760. diff --git a/dart/flutter_parse_sdk/ParseLiveListEvent/index.html b/dart/flutter_parse_sdk/ParseLiveListEvent/index.html index 95e6bca70..b79148f8d 100644 --- a/dart/flutter_parse_sdk/ParseLiveListEvent/index.html +++ b/dart/flutter_parse_sdk/ParseLiveListEvent/index.html @@ -62,7 +62,7 @@

              index property
              - int + int index @@ -106,17 +106,17 @@
              ParseLiveListEvent class
            761. Properties
            762. -
            763. hashCode
            764. +
            765. hashCode
            766. index
            767. object
            768. -
            769. runtimeType
            770. +
            771. runtimeType
            772. Methods
            773. -
            774. noSuchMethod
            775. -
            776. toString
            777. +
            778. noSuchMethod
            779. +
            780. toString
            781. Operators
            782. -
            783. operator ==
            784. +
            785. operator ==
            786. diff --git a/dart/flutter_parse_sdk/ParseLiveListEvent/object.html b/dart/flutter_parse_sdk/ParseLiveListEvent/object.html index 213448cca..f02b68425 100644 --- a/dart/flutter_parse_sdk/ParseLiveListEvent/object.html +++ b/dart/flutter_parse_sdk/ParseLiveListEvent/object.html @@ -106,17 +106,17 @@
              ParseLiveListEvent class
            787. Properties
            788. -
            789. hashCode
            790. +
            791. hashCode
            792. index
            793. object
            794. -
            795. runtimeType
            796. +
            797. runtimeType
            798. Methods
            799. -
            800. noSuchMethod
            801. -
            802. toString
            803. +
            804. noSuchMethod
            805. +
            806. toString
            807. Operators
            808. -
            809. operator ==
            810. +
            811. operator ==
            812. diff --git a/dart/flutter_parse_sdk/ParseLiveListUpdateEvent-class.html b/dart/flutter_parse_sdk/ParseLiveListUpdateEvent-class.html index da45e35a1..b2e6594d6 100644 --- a/dart/flutter_parse_sdk/ParseLiveListUpdateEvent-class.html +++ b/dart/flutter_parse_sdk/ParseLiveListUpdateEvent-class.html @@ -65,7 +65,7 @@

              ParseLiveListUpdateEvent< -
            813. Object
            814. +
            815. Object
            816. ParseLiveListEvent<T>
            817. ParseLiveListUpdateEvent
            818. @@ -88,7 +88,7 @@

              Constructors

              - ParseLiveListUpdateEvent(int index, T object) + ParseLiveListUpdateEvent(int index, T object)
              @@ -101,8 +101,8 @@

              Properties

              - hashCode - int + hashCode + int
              @@ -113,7 +113,7 @@

              Properties

              index - int + int
              @@ -134,8 +134,8 @@

              Properties

              - runtimeType - Type + runtimeType + Type
              @@ -154,7 +154,7 @@

              Properties

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -167,8 +167,8 @@

              Methods

              - toString() - String + toString() + String @@ -188,8 +188,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -400,17 +400,17 @@
              flutter_parse_sdk library
            819. Properties
            820. -
            821. hashCode
            822. +
            823. hashCode
            824. index
            825. object
            826. -
            827. runtimeType
            828. +
            829. runtimeType
            830. Methods
            831. -
            832. noSuchMethod
            833. -
            834. toString
            835. +
            836. noSuchMethod
            837. +
            838. toString
            839. Operators
            840. -
            841. operator ==
            842. +
            843. operator ==
            844. diff --git a/dart/flutter_parse_sdk/ParseLiveListUpdateEvent/ParseLiveListUpdateEvent.html b/dart/flutter_parse_sdk/ParseLiveListUpdateEvent/ParseLiveListUpdateEvent.html index ce72a4ac4..939dbf129 100644 --- a/dart/flutter_parse_sdk/ParseLiveListUpdateEvent/ParseLiveListUpdateEvent.html +++ b/dart/flutter_parse_sdk/ParseLiveListUpdateEvent/ParseLiveListUpdateEvent.html @@ -58,7 +58,7 @@

              ParseLiveListUpdateEvent< - ParseLiveListUpdateEvent<T extends ParseObject>(
              1. int index,
              2. + ParseLiveListUpdateEvent<T extends ParseObject>(
                1. int index,
                2. T object
                )

              @@ -100,17 +100,17 @@

              ParseLiveListUpdateEvent class
            845. Properties
            846. -
            847. hashCode
            848. +
            849. hashCode
            850. index
            851. object
            852. -
            853. runtimeType
            854. +
            855. runtimeType
            856. Methods
            857. -
            858. noSuchMethod
            859. -
            860. toString
            861. +
            862. noSuchMethod
            863. +
            864. toString
            865. Operators
            866. -
            867. operator ==
            868. +
            869. operator ==
            870. diff --git a/dart/flutter_parse_sdk/ParseNetworkByteResponse-class.html b/dart/flutter_parse_sdk/ParseNetworkByteResponse-class.html index 9b9349a68..3a3ecbeeb 100644 --- a/dart/flutter_parse_sdk/ParseNetworkByteResponse-class.html +++ b/dart/flutter_parse_sdk/ParseNetworkByteResponse-class.html @@ -65,7 +65,7 @@

              ParseNetworkByteResponse class
              Inheritance
              @@ -88,7 +88,7 @@

              Constructors

              - ParseNetworkByteResponse({List<int>? bytes, String data = 'byte response', int statusCode = -1}) + ParseNetworkByteResponse({List<int>? bytes, String data = 'byte response', int statusCode = -1})
              @@ -102,7 +102,7 @@

              Properties

              bytes - List<int>? + List<int>?
              @@ -113,7 +113,7 @@

              Properties

              data - String + String
              @@ -123,8 +123,8 @@

              Properties

              - hashCode - int + hashCode + int
              @@ -134,8 +134,8 @@

              Properties

              - runtimeType - Type + runtimeType + Type
              @@ -146,7 +146,7 @@

              Properties

              statusCode - int + int
              @@ -165,7 +165,7 @@

              Properties

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -178,8 +178,8 @@

              Methods

              - toString() - String + toString() + String @@ -199,8 +199,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -413,16 +413,16 @@
              flutter_parse_sdk library
            871. bytes
            872. data
            873. -
            874. hashCode
            875. -
            876. runtimeType
            877. +
            878. hashCode
            879. +
            880. runtimeType
            881. statusCode
            882. Methods
            883. -
            884. noSuchMethod
            885. -
            886. toString
            887. +
            888. noSuchMethod
            889. +
            890. toString
            891. Operators
            892. -
            893. operator ==
            894. +
            895. operator ==
            896. diff --git a/dart/flutter_parse_sdk/ParseNetworkByteResponse/ParseNetworkByteResponse.html b/dart/flutter_parse_sdk/ParseNetworkByteResponse/ParseNetworkByteResponse.html index c4afd6e0c..5c52c7f66 100644 --- a/dart/flutter_parse_sdk/ParseNetworkByteResponse/ParseNetworkByteResponse.html +++ b/dart/flutter_parse_sdk/ParseNetworkByteResponse/ParseNetworkByteResponse.html @@ -58,9 +58,9 @@

              ParseNetworkByteResponse constructor
              - ParseNetworkByteResponse(
              1. {List<int>? bytes,
              2. -
              3. String data = 'byte response',
              4. -
              5. int statusCode = -1}
              6. + ParseNetworkByteResponse(
                1. {List<int>? bytes,
                2. +
                3. String data = 'byte response',
                4. +
                5. int statusCode = -1}
                )
              @@ -110,16 +110,16 @@

              ParseNetworkByteResponse class
            897. bytes
            898. data
            899. -
            900. hashCode
            901. -
            902. runtimeType
            903. +
            904. hashCode
            905. +
            906. runtimeType
            907. statusCode
            908. Methods
            909. -
            910. noSuchMethod
            911. -
            912. toString
            913. +
            914. noSuchMethod
            915. +
            916. toString
            917. Operators
            918. -
            919. operator ==
            920. +
            921. operator ==
            922. diff --git a/dart/flutter_parse_sdk/ParseNetworkByteResponse/bytes.html b/dart/flutter_parse_sdk/ParseNetworkByteResponse/bytes.html index 8ecd4ab6e..3483829c7 100644 --- a/dart/flutter_parse_sdk/ParseNetworkByteResponse/bytes.html +++ b/dart/flutter_parse_sdk/ParseNetworkByteResponse/bytes.html @@ -58,7 +58,7 @@

              bytes property
              - List<int>? + List<int>? bytes
              final
              @@ -101,16 +101,16 @@
              ParseNetworkByteResponse class
            923. bytes
            924. data
            925. -
            926. hashCode
            927. -
            928. runtimeType
            929. +
            930. hashCode
            931. +
            932. runtimeType
            933. statusCode
            934. Methods
            935. -
            936. noSuchMethod
            937. -
            938. toString
            939. +
            940. noSuchMethod
            941. +
            942. toString
            943. Operators
            944. -
            945. operator ==
            946. +
            947. operator ==
            948. diff --git a/dart/flutter_parse_sdk/ParseNetworkOptions-class.html b/dart/flutter_parse_sdk/ParseNetworkOptions-class.html index c92b983b5..6587372cc 100644 --- a/dart/flutter_parse_sdk/ParseNetworkOptions-class.html +++ b/dart/flutter_parse_sdk/ParseNetworkOptions-class.html @@ -66,7 +66,7 @@

              Constructors

              - ParseNetworkOptions({Map<String, String>? headers}) + ParseNetworkOptions({Map<String, String>? headers})
              @@ -79,8 +79,8 @@

              Properties

              - hashCode - int + hashCode + int
              @@ -91,7 +91,7 @@

              Properties

              headers - Map<String, String>? + Map<String, String>?
              @@ -101,8 +101,8 @@

              Properties

              - runtimeType - Type + runtimeType + Type
              @@ -121,7 +121,7 @@

              Properties

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -134,8 +134,8 @@

              Methods

              - toString() - String + toString() + String @@ -155,8 +155,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -367,16 +367,16 @@
              flutter_parse_sdk library
            949. Properties
            950. -
            951. hashCode
            952. +
            953. hashCode
            954. headers
            955. -
            956. runtimeType
            957. +
            958. runtimeType
            959. Methods
            960. -
            961. noSuchMethod
            962. -
            963. toString
            964. +
            965. noSuchMethod
            966. +
            967. toString
            968. Operators
            969. -
            970. operator ==
            971. +
            972. operator ==
            973. diff --git a/dart/flutter_parse_sdk/ParseNetworkOptions/ParseNetworkOptions.html b/dart/flutter_parse_sdk/ParseNetworkOptions/ParseNetworkOptions.html index d5644cce6..b3b74a5de 100644 --- a/dart/flutter_parse_sdk/ParseNetworkOptions/ParseNetworkOptions.html +++ b/dart/flutter_parse_sdk/ParseNetworkOptions/ParseNetworkOptions.html @@ -58,7 +58,7 @@

              ParseNetworkOptions constructor
              - ParseNetworkOptions(
              1. {Map<String, String>? headers}
              2. + ParseNetworkOptions(
                1. {Map<String, String>? headers}
                )
              @@ -99,16 +99,16 @@

              ParseNetworkOptions class
            974. Properties
            975. -
            976. hashCode
            977. +
            978. hashCode
            979. headers
            980. -
            981. runtimeType
            982. +
            983. runtimeType
            984. Methods
            985. -
            986. noSuchMethod
            987. -
            988. toString
            989. +
            990. noSuchMethod
            991. +
            992. toString
            993. Operators
            994. -
            995. operator ==
            996. +
            997. operator ==
            998. diff --git a/dart/flutter_parse_sdk/ParseNetworkOptions/headers.html b/dart/flutter_parse_sdk/ParseNetworkOptions/headers.html index 883e42339..29561e3da 100644 --- a/dart/flutter_parse_sdk/ParseNetworkOptions/headers.html +++ b/dart/flutter_parse_sdk/ParseNetworkOptions/headers.html @@ -58,7 +58,7 @@

              headers property
              - Map<String, String>? + Map<String, String>? headers
              final
              @@ -99,16 +99,16 @@
              ParseNetworkOptions class
            999. Properties
            1000. -
            1001. hashCode
            1002. +
            1003. hashCode
            1004. headers
            1005. -
            1006. runtimeType
            1007. +
            1008. runtimeType
            1009. Methods
            1010. -
            1011. noSuchMethod
            1012. -
            1013. toString
            1014. +
            1015. noSuchMethod
            1016. +
            1017. toString
            1018. Operators
            1019. -
            1020. operator ==
            1021. +
            1022. operator ==
            1023. diff --git a/dart/flutter_parse_sdk/ParseNetworkResponse-class.html b/dart/flutter_parse_sdk/ParseNetworkResponse-class.html index 11519165c..b48af0daf 100644 --- a/dart/flutter_parse_sdk/ParseNetworkResponse-class.html +++ b/dart/flutter_parse_sdk/ParseNetworkResponse-class.html @@ -84,7 +84,7 @@

              Constructors

              - ParseNetworkResponse({required String data, int statusCode = -1}) + ParseNetworkResponse({required String data, int statusCode = -1})
              @@ -98,7 +98,7 @@

              Properties

              data - String + String
              @@ -108,8 +108,8 @@

              Properties

              - hashCode - int + hashCode + int
              @@ -119,8 +119,8 @@

              Properties

              - runtimeType - Type + runtimeType + Type
              @@ -131,7 +131,7 @@

              Properties

              statusCode - int + int
              @@ -150,7 +150,7 @@

              Properties

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -163,8 +163,8 @@

              Methods

              - toString() - String + toString() + String @@ -184,8 +184,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -397,16 +397,16 @@
              flutter_parse_sdk library
              Properties
            1024. data
            1025. -
            1026. hashCode
            1027. -
            1028. runtimeType
            1029. +
            1030. hashCode
            1031. +
            1032. runtimeType
            1033. statusCode
            1034. Methods
            1035. -
            1036. noSuchMethod
            1037. -
            1038. toString
            1039. +
            1040. noSuchMethod
            1041. +
            1042. toString
            1043. Operators
            1044. -
            1045. operator ==
            1046. +
            1047. operator ==
            1048. diff --git a/dart/flutter_parse_sdk/ParseNetworkResponse/ParseNetworkResponse.html b/dart/flutter_parse_sdk/ParseNetworkResponse/ParseNetworkResponse.html index 20fcea394..4e2b3b0b7 100644 --- a/dart/flutter_parse_sdk/ParseNetworkResponse/ParseNetworkResponse.html +++ b/dart/flutter_parse_sdk/ParseNetworkResponse/ParseNetworkResponse.html @@ -58,8 +58,8 @@

              ParseNetworkResponse constructor
              - ParseNetworkResponse(
              1. {required String data,
              2. -
              3. int statusCode = -1}
              4. + ParseNetworkResponse(
                1. {required String data,
                2. +
                3. int statusCode = -1}
                )
              @@ -104,16 +104,16 @@

              ParseNetworkResponse class
              Properties
            1049. data
            1050. -
            1051. hashCode
            1052. -
            1053. runtimeType
            1054. +
            1055. hashCode
            1056. +
            1057. runtimeType
            1058. statusCode
            1059. Methods
            1060. -
            1061. noSuchMethod
            1062. -
            1063. toString
            1064. +
            1065. noSuchMethod
            1066. +
            1067. toString
            1068. Operators
            1069. -
            1070. operator ==
            1071. +
            1072. operator ==
            1073. diff --git a/dart/flutter_parse_sdk/ParseNetworkResponse/data.html b/dart/flutter_parse_sdk/ParseNetworkResponse/data.html index 21d22b37c..1d3c9528e 100644 --- a/dart/flutter_parse_sdk/ParseNetworkResponse/data.html +++ b/dart/flutter_parse_sdk/ParseNetworkResponse/data.html @@ -58,7 +58,7 @@

              data property
              - String + String data
              final
              @@ -100,16 +100,16 @@
              ParseNetworkResponse class
              Properties
            1074. data
            1075. -
            1076. hashCode
            1077. -
            1078. runtimeType
            1079. +
            1080. hashCode
            1081. +
            1082. runtimeType
            1083. statusCode
            1084. Methods
            1085. -
            1086. noSuchMethod
            1087. -
            1088. toString
            1089. +
            1090. noSuchMethod
            1091. +
            1092. toString
            1093. Operators
            1094. -
            1095. operator ==
            1096. +
            1097. operator ==
            1098. diff --git a/dart/flutter_parse_sdk/ParseNetworkResponse/statusCode.html b/dart/flutter_parse_sdk/ParseNetworkResponse/statusCode.html index c8a32bcbc..d69412903 100644 --- a/dart/flutter_parse_sdk/ParseNetworkResponse/statusCode.html +++ b/dart/flutter_parse_sdk/ParseNetworkResponse/statusCode.html @@ -58,7 +58,7 @@

              statusCode property
              - int + int statusCode
              final
              @@ -100,16 +100,16 @@
              ParseNetworkResponse class
              Properties
            1099. data
            1100. -
            1101. hashCode
            1102. -
            1103. runtimeType
            1104. +
            1105. hashCode
            1106. +
            1107. runtimeType
            1108. statusCode
            1109. Methods
            1110. -
            1111. noSuchMethod
            1112. -
            1113. toString
            1114. +
            1115. noSuchMethod
            1116. +
            1117. toString
            1118. Operators
            1119. -
            1120. operator ==
            1121. +
            1122. operator ==
            1123. diff --git a/dart/flutter_parse_sdk/ParseNetworkResponseType.html b/dart/flutter_parse_sdk/ParseNetworkResponseType.html index c5e5bb8e7..3ef0d4c15 100644 --- a/dart/flutter_parse_sdk/ParseNetworkResponseType.html +++ b/dart/flutter_parse_sdk/ParseNetworkResponseType.html @@ -70,8 +70,8 @@

              Inheritance
              @@ -163,8 +163,8 @@

              Properties

              - hashCode - int + hashCode + int
              @@ -174,8 +174,8 @@

              Properties

              - index - int + index + int
              @@ -185,8 +185,8 @@

              Properties

              - runtimeType - Type + runtimeType + Type
              @@ -205,7 +205,7 @@

              Properties

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -218,8 +218,8 @@

              Methods

              - toString() - String + toString() + String @@ -239,8 +239,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -263,7 +263,7 @@

              Constants

              values - → const List<ParseNetworkResponseType> + → const List<ParseNetworkResponseType>
              @@ -476,16 +476,16 @@
              flutter_parse_sdk library
            1124. Properties
            1125. -
            1126. hashCode
            1127. -
            1128. index
            1129. -
            1130. runtimeType
            1131. +
            1132. hashCode
            1133. +
            1134. index
            1135. +
            1136. runtimeType
            1137. Methods
            1138. -
            1139. noSuchMethod
            1140. -
            1141. toString
            1142. +
            1143. noSuchMethod
            1144. +
            1145. toString
            1146. Operators
            1147. -
            1148. operator ==
            1149. +
            1150. operator ==
            1151. diff --git a/dart/flutter_parse_sdk/ParseNetworkResponseType/ParseNetworkResponseType.html b/dart/flutter_parse_sdk/ParseNetworkResponseType/ParseNetworkResponseType.html index af5cec0a1..ed6cf4dbb 100644 --- a/dart/flutter_parse_sdk/ParseNetworkResponseType/ParseNetworkResponseType.html +++ b/dart/flutter_parse_sdk/ParseNetworkResponseType/ParseNetworkResponseType.html @@ -99,16 +99,16 @@
              ParseNetworkResponseType enum
            1152. Properties
            1153. -
            1154. hashCode
            1155. -
            1156. index
            1157. -
            1158. runtimeType
            1159. +
            1160. hashCode
            1161. +
            1162. index
            1163. +
            1164. runtimeType
            1165. Methods
            1166. -
            1167. noSuchMethod
            1168. -
            1169. toString
            1170. +
            1171. noSuchMethod
            1172. +
            1173. toString
            1174. Operators
            1175. -
            1176. operator ==
            1177. +
            1178. operator ==
            1179. diff --git a/dart/flutter_parse_sdk/ParseNetworkResponseType/values-constant.html b/dart/flutter_parse_sdk/ParseNetworkResponseType/values-constant.html index ba06fc2a4..487f9c66a 100644 --- a/dart/flutter_parse_sdk/ParseNetworkResponseType/values-constant.html +++ b/dart/flutter_parse_sdk/ParseNetworkResponseType/values-constant.html @@ -58,7 +58,7 @@

              values constant
              - List<ParseNetworkResponseType> + List<ParseNetworkResponseType> const values @@ -103,16 +103,16 @@
              ParseNetworkResponseType enum
            1180. Properties
            1181. -
            1182. hashCode
            1183. -
            1184. index
            1185. -
            1186. runtimeType
            1187. +
            1188. hashCode
            1189. +
            1190. index
            1191. +
            1192. runtimeType
            1193. Methods
            1194. -
            1195. noSuchMethod
            1196. -
            1197. toString
            1198. +
            1199. noSuchMethod
            1200. +
            1201. toString
            1202. Operators
            1203. -
            1204. operator ==
            1205. +
            1206. operator ==
            1207. diff --git a/dart/flutter_parse_sdk/ParseObject-class.html b/dart/flutter_parse_sdk/ParseObject-class.html index 04123cf5f..9beb71bb1 100644 --- a/dart/flutter_parse_sdk/ParseObject-class.html +++ b/dart/flutter_parse_sdk/ParseObject-class.html @@ -74,7 +74,7 @@

              ParseObject class
              Inheritance
              @@ -112,13 +112,13 @@

              Constructors

              - ParseObject(String className, {bool? debug, ParseClient? client, bool? autoSendSessionId}) + ParseObject(String className, {bool? debug, ParseClient? client, bool? autoSendSessionId})
              Creates a new Parse Object
              - ParseObject.clone(String className) + ParseObject.clone(String className)
              @@ -132,18 +132,18 @@

              Properties

              createdAt - DateTime? + DateTime?
              - Returns DateTime createdAt + Returns DateTime createdAt
              read-onlyinherited
              - hashCode - int + hashCode + int
              @@ -154,18 +154,18 @@

              Properties

              objectId - String? + String?
              - Returns String objectId + Returns String objectId
              read / writeinherited
              parseClassName - String + String
              @@ -175,8 +175,8 @@

              Properties

              - runtimeType - Type + runtimeType + Type
              @@ -187,11 +187,11 @@

              Properties

              updatedAt - DateTime? + DateTime?
              - Returns DateTime updatedAt + Returns DateTime updatedAt
              read-onlyinherited
              @@ -206,7 +206,7 @@

              Properties

              Methods

              - addRelation(String key, List<ParseObject> objets) + addRelation(String key, List<ParseObject> objets) → void @@ -232,7 +232,7 @@

              Methods

              - clone(Map<String, dynamic> map) + clone(Map<String, dynamic> map) → dynamic @@ -245,8 +245,8 @@

              Methods

              - containsKey(String key) - bool + containsKey(String key) + bool @@ -258,8 +258,8 @@

              Methods

              - containsValue(Object value) - bool + containsValue(Object value) + bool @@ -284,8 +284,8 @@

              Methods

              - create({bool allowCustomObjectId = false}) - Future<ParseResponse> + create({bool allowCustomObjectId = false}) + Future<ParseResponse> @@ -297,8 +297,8 @@

              Methods

              - delete<T extends ParseObject>({String? id, String? path}) - Future<ParseResponse> + delete<T extends ParseObject>({String? id, String? path}) + Future<ParseResponse> @@ -310,8 +310,8 @@

              Methods

              - distinct<T extends ParseObject>(String query) - Future<ParseResponse> + distinct<T extends ParseObject>(String query) + Future<ParseResponse> @@ -323,8 +323,8 @@

              Methods

              - fetch({List<String>? include}) - Future<ParseObject> + fetch({List<String>? include}) + Future<ParseObject> @@ -336,7 +336,7 @@

              Methods

              - fromJson(Map<String, dynamic> objectData) + fromJson(Map<String, dynamic> objectData) → dynamic @@ -349,7 +349,7 @@

              Methods

              - fromJsonForManualObject(Map<String, dynamic> objectData) + fromJsonForManualObject(Map<String, dynamic> objectData) → dynamic @@ -362,8 +362,8 @@

              Methods

              - fromPin(String objectId) - Future + fromPin(String objectId) + Future @@ -375,7 +375,7 @@

              Methods

              - get<T>(String key, {T? defaultValue}) + get<T>(String key, {T? defaultValue}) → T? @@ -402,7 +402,7 @@

              Methods

              getAll() - Future<ParseResponse> + Future<ParseResponse> @@ -414,8 +414,8 @@

              Methods

              - getObject(String objectId, {List<String>? include}) - Future<ParseResponse> + getObject(String objectId, {List<String>? include}) + Future<ParseResponse> @@ -427,7 +427,7 @@

              Methods

              - getRelation<T extends ParseObject>(String key) + getRelation<T extends ParseObject>(String key) ParseRelation<T> @@ -440,8 +440,8 @@

              Methods

              - isDirty({String? key}) - bool + isDirty({String? key}) + bool @@ -453,7 +453,7 @@

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -467,7 +467,7 @@

              Methods

              pin() - Future<bool> + Future<bool> @@ -479,8 +479,8 @@

              Methods

              - query<T extends ParseObject>(String query, {ProgressCallback? progressCallback}) - Future<ParseResponse> + query<T extends ParseObject>(String query, {ProgressCallback? progressCallback}) + Future<ParseResponse> @@ -492,7 +492,7 @@

              Methods

              - removeRelation(String key, List<ParseObject> objets) + removeRelation(String key, List<ParseObject> objets) → void @@ -506,7 +506,7 @@

              Methods

              save() - Future<ParseResponse> + Future<ParseResponse> @@ -518,8 +518,8 @@

              Methods

              - saveInStorage(String key) - Future<void> + saveInStorage(String key) + Future<void> @@ -531,7 +531,7 @@

              Methods

              - set<T>(String key, T value, {bool forceUpdate = true}) + set<T>(String key, T value, {bool forceUpdate = true}) → void @@ -557,7 +557,7 @@

              Methods

              - setAdd<T>(String key, T element) + setAdd<T>(String key, T element) → void @@ -570,7 +570,7 @@

              Methods

              - setAddAll(String key, List elements) + setAddAll(String key, List elements) → void @@ -584,7 +584,7 @@

              Methods

              - setAddAllUnique(String key, List elements) + setAddAllUnique(String key, List elements) → void @@ -599,7 +599,7 @@

              Methods

              - setAddUnique(String key, dynamic element) + setAddUnique(String key, dynamic element) → void @@ -614,7 +614,7 @@

              Methods

              - setDecrement(String key, num amount) + setDecrement(String key, num amount) → void @@ -627,7 +627,7 @@

              Methods

              - setIncrement(String key, num amount) + setIncrement(String key, num amount) → void @@ -640,7 +640,7 @@

              Methods

              - setRemove(String key, dynamic element) + setRemove(String key, dynamic element) → void @@ -654,22 +654,22 @@

              Methods

              - setRemoveAll(String key, List elements) + setRemoveAll(String key, List elements) → void
              - Removes all instances of the elements contained in a List from the + Removes all instances of the elements contained in a List from the array associated with a given key
              - toJson({bool full = false, bool forApiRQ = false, bool allowCustomObjectId = false}) - Map<String, dynamic> + toJson({bool full = false, bool forApiRQ = false, bool allowCustomObjectId = false}) + Map<String, dynamic> @@ -682,7 +682,7 @@

              Methods

              toPointer() - Map<String, dynamic> + Map<String, dynamic> @@ -695,7 +695,7 @@

              Methods

              toString() - String + String @@ -707,8 +707,8 @@

              Methods

              - unpin({String? key}) - Future<bool> + unpin({String? key}) + Future<bool> @@ -720,8 +720,8 @@

              Methods

              - unset(String key, {bool offlineOnly = false}) - Future<ParseResponse> + unset(String key, {bool offlineOnly = false}) + Future<ParseResponse> @@ -734,7 +734,7 @@

              Methods

              update() - Future<ParseResponse> + Future<ParseResponse> @@ -754,8 +754,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -767,7 +767,7 @@

              Operators

              - operator [](String key) + operator [](String key) → dynamic @@ -780,7 +780,7 @@

              Operators

              - operator []=(String key, dynamic value) + operator []=(String key, dynamic value) → void @@ -994,10 +994,10 @@
              flutter_parse_sdk library
              Properties
            1208. createdAt
            1209. -
            1210. hashCode
            1211. +
            1212. hashCode
            1213. objectId
            1214. parseClassName
            1215. -
            1216. runtimeType
            1217. +
            1218. runtimeType
            1219. updatedAt
            1220. Methods
            1221. @@ -1020,7 +1020,7 @@
              flutter_parse_sdk library
            1222. getObject
            1223. getRelation
            1224. isDirty
            1225. -
            1226. noSuchMethod
            1227. +
            1228. noSuchMethod
            1229. pin
            1230. query
            1231. removeRelation
            1232. @@ -1044,7 +1044,7 @@
              flutter_parse_sdk library
            1233. update
            1234. Operators
            1235. -
            1236. operator ==
            1237. +
            1238. operator ==
            1239. operator []
            1240. operator []=
            1241. diff --git a/dart/flutter_parse_sdk/ParseObject/ParseObject.clone.html b/dart/flutter_parse_sdk/ParseObject/ParseObject.clone.html index 79b46310e..be84c7614 100644 --- a/dart/flutter_parse_sdk/ParseObject/ParseObject.clone.html +++ b/dart/flutter_parse_sdk/ParseObject/ParseObject.clone.html @@ -58,7 +58,7 @@

              ParseObject.clone constructor
              - ParseObject.clone(
              1. String className
              2. + ParseObject.clone(
                1. String className
                )
              @@ -101,10 +101,10 @@

              ParseObject class
              Properties
            1242. createdAt
            1243. -
            1244. hashCode
            1245. +
            1246. hashCode
            1247. objectId
            1248. parseClassName
            1249. -
            1250. runtimeType
            1251. +
            1252. runtimeType
            1253. updatedAt
            1254. Methods
            1255. @@ -127,7 +127,7 @@
              ParseObject class
            1256. getObject
            1257. getRelation
            1258. isDirty
            1259. -
            1260. noSuchMethod
            1261. +
            1262. noSuchMethod
            1263. pin
            1264. query
            1265. removeRelation
            1266. @@ -151,7 +151,7 @@
              ParseObject class
            1267. update
            1268. Operators
            1269. -
            1270. operator ==
            1271. +
            1272. operator ==
            1273. operator []
            1274. operator []=
            1275. diff --git a/dart/flutter_parse_sdk/ParseObject/ParseObject.html b/dart/flutter_parse_sdk/ParseObject/ParseObject.html index af77c7ba5..dd8c621a5 100644 --- a/dart/flutter_parse_sdk/ParseObject/ParseObject.html +++ b/dart/flutter_parse_sdk/ParseObject/ParseObject.html @@ -58,10 +58,10 @@

              ParseObject constructor
              - ParseObject(
              1. String className,
              2. -
              3. {bool? debug,
              4. + ParseObject(
                1. String className,
                2. +
                3. {bool? debug,
                4. ParseClient? client,
                5. -
                6. bool? autoSendSessionId}
                7. +
                8. bool? autoSendSessionId}
                )
              @@ -126,10 +126,10 @@

              ParseObject class
              Properties
            1276. createdAt
            1277. -
            1278. hashCode
            1279. +
            1280. hashCode
            1281. objectId
            1282. parseClassName
            1283. -
            1284. runtimeType
            1285. +
            1286. runtimeType
            1287. updatedAt
            1288. Methods
            1289. @@ -152,7 +152,7 @@
              ParseObject class
            1290. getObject
            1291. getRelation
            1292. isDirty
            1293. -
            1294. noSuchMethod
            1295. +
            1296. noSuchMethod
            1297. pin
            1298. query
            1299. removeRelation
            1300. @@ -176,7 +176,7 @@
              ParseObject class
            1301. update
            1302. Operators
            1303. -
            1304. operator ==
            1305. +
            1306. operator ==
            1307. operator []
            1308. operator []=
            1309. diff --git a/dart/flutter_parse_sdk/ParseObject/addRelation.html b/dart/flutter_parse_sdk/ParseObject/addRelation.html index 512dff9f8..51fd4894e 100644 --- a/dart/flutter_parse_sdk/ParseObject/addRelation.html +++ b/dart/flutter_parse_sdk/ParseObject/addRelation.html @@ -60,8 +60,8 @@

              addRelation method void -addRelation(
              1. String key,
              2. -
              3. List<ParseObject> objets
              4. +addRelation(
                1. String key,
                2. +
                3. List<ParseObject> objets
                ) @@ -111,10 +111,10 @@
                ParseObject class
                Properties
              5. createdAt
              6. -
              7. hashCode
              8. +
              9. hashCode
              10. objectId
              11. parseClassName
              12. -
              13. runtimeType
              14. +
              15. runtimeType
              16. updatedAt
              17. Methods
              18. @@ -137,7 +137,7 @@
                ParseObject class
              19. getObject
              20. getRelation
              21. isDirty
              22. -
              23. noSuchMethod
              24. +
              25. noSuchMethod
              26. pin
              27. query
              28. removeRelation
              29. @@ -161,7 +161,7 @@
                ParseObject class
              30. update
              31. Operators
              32. -
              33. operator ==
              34. +
              35. operator ==
              36. operator []
              37. operator []=
              38. diff --git a/dart/flutter_parse_sdk/ParseObject/clone.html b/dart/flutter_parse_sdk/ParseObject/clone.html index a3bcb67a3..796f35ff0 100644 --- a/dart/flutter_parse_sdk/ParseObject/clone.html +++ b/dart/flutter_parse_sdk/ParseObject/clone.html @@ -60,12 +60,12 @@

                clone method dynamic -clone(
                1. Map<String, dynamic> map
                2. +clone(
                  1. Map<String, dynamic> map
                  )
                  override
                  @@ -112,10 +112,10 @@
                  ParseObject class
                  Properties
                3. createdAt
                4. -
                5. hashCode
                6. +
                7. hashCode
                8. objectId
                9. parseClassName
                10. -
                11. runtimeType
                12. +
                13. runtimeType
                14. updatedAt
                15. Methods
                16. @@ -138,7 +138,7 @@
                  ParseObject class
                17. getObject
                18. getRelation
                19. isDirty
                20. -
                21. noSuchMethod
                22. +
                23. noSuchMethod
                24. pin
                25. query
                26. removeRelation
                27. @@ -162,7 +162,7 @@
                  ParseObject class
                28. update
                29. Operators
                30. -
                31. operator ==
                32. +
                33. operator ==
                34. operator []
                35. operator []=
                36. diff --git a/dart/flutter_parse_sdk/ParseObject/create.html b/dart/flutter_parse_sdk/ParseObject/create.html index 94228b51b..aba29025b 100644 --- a/dart/flutter_parse_sdk/ParseObject/create.html +++ b/dart/flutter_parse_sdk/ParseObject/create.html @@ -59,8 +59,8 @@

                  create method
                  -Future<ParseResponse> -create(
                  1. {bool allowCustomObjectId = false}
                  2. +Future<ParseResponse> +create(
                    1. {bool allowCustomObjectId = false}
                    ) @@ -134,10 +134,10 @@
                    ParseObject class
                    Properties
                  3. createdAt
                  4. -
                  5. hashCode
                  6. +
                  7. hashCode
                  8. objectId
                  9. parseClassName
                  10. -
                  11. runtimeType
                  12. +
                  13. runtimeType
                  14. updatedAt
                  15. Methods
                  16. @@ -160,7 +160,7 @@
                    ParseObject class
                  17. getObject
                  18. getRelation
                  19. isDirty
                  20. -
                  21. noSuchMethod
                  22. +
                  23. noSuchMethod
                  24. pin
                  25. query
                  26. removeRelation
                  27. @@ -184,7 +184,7 @@
                    ParseObject class
                  28. update
                  29. Operators
                  30. -
                  31. operator ==
                  32. +
                  33. operator ==
                  34. operator []
                  35. operator []=
                  36. diff --git a/dart/flutter_parse_sdk/ParseObject/delete.html b/dart/flutter_parse_sdk/ParseObject/delete.html index 92b72e039..c1dfe18fd 100644 --- a/dart/flutter_parse_sdk/ParseObject/delete.html +++ b/dart/flutter_parse_sdk/ParseObject/delete.html @@ -59,9 +59,9 @@

                    delete<T exte
                    -Future<ParseResponse> -delete<T extends ParseObject>(
                    1. {String? id,
                    2. -
                    3. String? path}
                    4. +Future<ParseResponse> +delete<T extends ParseObject>(
                      1. {String? id,
                      2. +
                      3. String? path}
                      ) @@ -138,10 +138,10 @@
                      ParseObject class
                      Properties
                    5. createdAt
                    6. -
                    7. hashCode
                    8. +
                    9. hashCode
                    10. objectId
                    11. parseClassName
                    12. -
                    13. runtimeType
                    14. +
                    15. runtimeType
                    16. updatedAt
                    17. Methods
                    18. @@ -164,7 +164,7 @@
                      ParseObject class
                    19. getObject
                    20. getRelation
                    21. isDirty
                    22. -
                    23. noSuchMethod
                    24. +
                    25. noSuchMethod
                    26. pin
                    27. query
                    28. removeRelation
                    29. @@ -188,7 +188,7 @@
                      ParseObject class
                    30. update
                    31. Operators
                    32. -
                    33. operator ==
                    34. +
                    35. operator ==
                    36. operator []
                    37. operator []=
                    38. diff --git a/dart/flutter_parse_sdk/ParseObject/distinct.html b/dart/flutter_parse_sdk/ParseObject/distinct.html index b850b63fd..559c9bc70 100644 --- a/dart/flutter_parse_sdk/ParseObject/distinct.html +++ b/dart/flutter_parse_sdk/ParseObject/distinct.html @@ -59,8 +59,8 @@

                      distinct<T ex
                      -Future<ParseResponse> -distinct<T extends ParseObject>(
                      1. String query
                      2. +Future<ParseResponse> +distinct<T extends ParseObject>(
                        1. String query
                        ) @@ -114,10 +114,10 @@
                        ParseObject class
                        Properties
                      3. createdAt
                      4. -
                      5. hashCode
                      6. +
                      7. hashCode
                      8. objectId
                      9. parseClassName
                      10. -
                      11. runtimeType
                      12. +
                      13. runtimeType
                      14. updatedAt
                      15. Methods
                      16. @@ -140,7 +140,7 @@
                        ParseObject class
                      17. getObject
                      18. getRelation
                      19. isDirty
                      20. -
                      21. noSuchMethod
                      22. +
                      23. noSuchMethod
                      24. pin
                      25. query
                      26. removeRelation
                      27. @@ -164,7 +164,7 @@
                        ParseObject class
                      28. update
                      29. Operators
                      30. -
                      31. operator ==
                      32. +
                      33. operator ==
                      34. operator []
                      35. operator []=
                      36. diff --git a/dart/flutter_parse_sdk/ParseObject/fetch.html b/dart/flutter_parse_sdk/ParseObject/fetch.html index cd62d4e3b..890e65429 100644 --- a/dart/flutter_parse_sdk/ParseObject/fetch.html +++ b/dart/flutter_parse_sdk/ParseObject/fetch.html @@ -59,8 +59,8 @@

                        fetch method
                        -Future<ParseObject> -fetch(
                        1. {List<String>? include}
                        2. +Future<ParseObject> +fetch(
                          1. {List<String>? include}
                          ) @@ -124,10 +124,10 @@
                          ParseObject class
                          Properties
                        3. createdAt
                        4. -
                        5. hashCode
                        6. +
                        7. hashCode
                        8. objectId
                        9. parseClassName
                        10. -
                        11. runtimeType
                        12. +
                        13. runtimeType
                        14. updatedAt
                        15. Methods
                        16. @@ -150,7 +150,7 @@
                          ParseObject class
                        17. getObject
                        18. getRelation
                        19. isDirty
                        20. -
                        21. noSuchMethod
                        22. +
                        23. noSuchMethod
                        24. pin
                        25. query
                        26. removeRelation
                        27. @@ -174,7 +174,7 @@
                          ParseObject class
                        28. update
                        29. Operators
                        30. -
                        31. operator ==
                        32. +
                        33. operator ==
                        34. operator []
                        35. operator []=
                        36. diff --git a/dart/flutter_parse_sdk/ParseObject/getAll.html b/dart/flutter_parse_sdk/ParseObject/getAll.html index 64f3e58d4..839505b2e 100644 --- a/dart/flutter_parse_sdk/ParseObject/getAll.html +++ b/dart/flutter_parse_sdk/ParseObject/getAll.html @@ -59,7 +59,7 @@

                          getAll method
                          -Future<ParseResponse> +Future<ParseResponse> getAll() @@ -116,10 +116,10 @@
                          ParseObject class
                          Properties
                        37. createdAt
                        38. -
                        39. hashCode
                        40. +
                        41. hashCode
                        42. objectId
                        43. parseClassName
                        44. -
                        45. runtimeType
                        46. +
                        47. runtimeType
                        48. updatedAt
                        49. Methods
                        50. @@ -142,7 +142,7 @@
                          ParseObject class
                        51. getObject
                        52. getRelation
                        53. isDirty
                        54. -
                        55. noSuchMethod
                        56. +
                        57. noSuchMethod
                        58. pin
                        59. query
                        60. removeRelation
                        61. @@ -166,7 +166,7 @@
                          ParseObject class
                        62. update
                        63. Operators
                        64. -
                        65. operator ==
                        66. +
                        67. operator ==
                        68. operator []
                        69. operator []=
                        70. diff --git a/dart/flutter_parse_sdk/ParseObject/getObject.html b/dart/flutter_parse_sdk/ParseObject/getObject.html index 89dde6627..ba1c68d92 100644 --- a/dart/flutter_parse_sdk/ParseObject/getObject.html +++ b/dart/flutter_parse_sdk/ParseObject/getObject.html @@ -59,9 +59,9 @@

                          getObject method
                          -Future<ParseResponse> -getObject(
                          1. String objectId,
                          2. -
                          3. {List<String>? include}
                          4. +Future<ParseResponse> +getObject(
                            1. String objectId,
                            2. +
                            3. {List<String>? include}
                            ) @@ -130,10 +130,10 @@
                            ParseObject class
                            Properties
                          5. createdAt
                          6. -
                          7. hashCode
                          8. +
                          9. hashCode
                          10. objectId
                          11. parseClassName
                          12. -
                          13. runtimeType
                          14. +
                          15. runtimeType
                          16. updatedAt
                          17. Methods
                          18. @@ -156,7 +156,7 @@
                            ParseObject class
                          19. getObject
                          20. getRelation
                          21. isDirty
                          22. -
                          23. noSuchMethod
                          24. +
                          25. noSuchMethod
                          26. pin
                          27. query
                          28. removeRelation
                          29. @@ -180,7 +180,7 @@
                            ParseObject class
                          30. update
                          31. Operators
                          32. -
                          33. operator ==
                          34. +
                          35. operator ==
                          36. operator []
                          37. operator []=
                          38. diff --git a/dart/flutter_parse_sdk/ParseObject/getRelation.html b/dart/flutter_parse_sdk/ParseObject/getRelation.html index ea51ffa2d..5f10b4a20 100644 --- a/dart/flutter_parse_sdk/ParseObject/getRelation.html +++ b/dart/flutter_parse_sdk/ParseObject/getRelation.html @@ -60,7 +60,7 @@

                            getRelation<T ParseRelation<T> -getRelation<T extends ParseObject>(
                            1. String key
                            2. +getRelation<T extends ParseObject>(
                              1. String key
                              ) @@ -128,10 +128,10 @@
                              ParseObject class
                              Properties
                            3. createdAt
                            4. -
                            5. hashCode
                            6. +
                            7. hashCode
                            8. objectId
                            9. parseClassName
                            10. -
                            11. runtimeType
                            12. +
                            13. runtimeType
                            14. updatedAt
                            15. Methods
                            16. @@ -154,7 +154,7 @@
                              ParseObject class
                            17. getObject
                            18. getRelation
                            19. isDirty
                            20. -
                            21. noSuchMethod
                            22. +
                            23. noSuchMethod
                            24. pin
                            25. query
                            26. removeRelation
                            27. @@ -178,7 +178,7 @@
                              ParseObject class
                            28. update
                            29. Operators
                            30. -
                            31. operator ==
                            32. +
                            33. operator ==
                            34. operator []
                            35. operator []=
                            36. diff --git a/dart/flutter_parse_sdk/ParseObject/query.html b/dart/flutter_parse_sdk/ParseObject/query.html index 9dda451f2..b6be8527e 100644 --- a/dart/flutter_parse_sdk/ParseObject/query.html +++ b/dart/flutter_parse_sdk/ParseObject/query.html @@ -59,8 +59,8 @@

                              query<T exten
                              -Future<ParseResponse> -query<T extends ParseObject>(
                              1. String query,
                              2. +Future<ParseResponse> +query<T extends ParseObject>(
                                1. String query,
                                2. {ProgressCallback? progressCallback}
                                ) @@ -122,10 +122,10 @@
                                ParseObject class
                                Properties
                              3. createdAt
                              4. -
                              5. hashCode
                              6. +
                              7. hashCode
                              8. objectId
                              9. parseClassName
                              10. -
                              11. runtimeType
                              12. +
                              13. runtimeType
                              14. updatedAt
                              15. Methods
                              16. @@ -148,7 +148,7 @@
                                ParseObject class
                              17. getObject
                              18. getRelation
                              19. isDirty
                              20. -
                              21. noSuchMethod
                              22. +
                              23. noSuchMethod
                              24. pin
                              25. query
                              26. removeRelation
                              27. @@ -172,7 +172,7 @@
                                ParseObject class
                              28. update
                              29. Operators
                              30. -
                              31. operator ==
                              32. +
                              33. operator ==
                              34. operator []
                              35. operator []=
                              36. diff --git a/dart/flutter_parse_sdk/ParseObject/removeRelation.html b/dart/flutter_parse_sdk/ParseObject/removeRelation.html index c7f8b6c5c..8fd123b64 100644 --- a/dart/flutter_parse_sdk/ParseObject/removeRelation.html +++ b/dart/flutter_parse_sdk/ParseObject/removeRelation.html @@ -60,8 +60,8 @@

                                removeRelation method void -removeRelation(
                                1. String key,
                                2. -
                                3. List<ParseObject> objets
                                4. +removeRelation(
                                  1. String key,
                                  2. +
                                  3. List<ParseObject> objets
                                  ) @@ -111,10 +111,10 @@
                                  ParseObject class
                                  Properties
                                5. createdAt
                                6. -
                                7. hashCode
                                8. +
                                9. hashCode
                                10. objectId
                                11. parseClassName
                                12. -
                                13. runtimeType
                                14. +
                                15. runtimeType
                                16. updatedAt
                                17. Methods
                                18. @@ -137,7 +137,7 @@
                                  ParseObject class
                                19. getObject
                                20. getRelation
                                21. isDirty
                                22. -
                                23. noSuchMethod
                                24. +
                                25. noSuchMethod
                                26. pin
                                27. query
                                28. removeRelation
                                29. @@ -161,7 +161,7 @@
                                  ParseObject class
                                30. update
                                31. Operators
                                32. -
                                33. operator ==
                                34. +
                                35. operator ==
                                36. operator []
                                37. operator []=
                                38. diff --git a/dart/flutter_parse_sdk/ParseObject/save.html b/dart/flutter_parse_sdk/ParseObject/save.html index 49c363621..16452b3ac 100644 --- a/dart/flutter_parse_sdk/ParseObject/save.html +++ b/dart/flutter_parse_sdk/ParseObject/save.html @@ -59,7 +59,7 @@

                                  save method
                                  -Future<ParseResponse> +Future<ParseResponse> save() @@ -150,10 +150,10 @@
                                  ParseObject class
                                  Properties
                                39. createdAt
                                40. -
                                41. hashCode
                                42. +
                                43. hashCode
                                44. objectId
                                45. parseClassName
                                46. -
                                47. runtimeType
                                48. +
                                49. runtimeType
                                50. updatedAt
                                51. Methods
                                52. @@ -176,7 +176,7 @@
                                  ParseObject class
                                53. getObject
                                54. getRelation
                                55. isDirty
                                56. -
                                57. noSuchMethod
                                58. +
                                59. noSuchMethod
                                60. pin
                                61. query
                                62. removeRelation
                                63. @@ -200,7 +200,7 @@
                                  ParseObject class
                                64. update
                                65. Operators
                                66. -
                                67. operator ==
                                68. +
                                69. operator ==
                                70. operator []
                                71. operator []=
                                72. diff --git a/dart/flutter_parse_sdk/ParseObject/setAdd.html b/dart/flutter_parse_sdk/ParseObject/setAdd.html index f1a6bf453..36a4d0e70 100644 --- a/dart/flutter_parse_sdk/ParseObject/setAdd.html +++ b/dart/flutter_parse_sdk/ParseObject/setAdd.html @@ -60,7 +60,7 @@

                                  setAdd<Tvoid -setAdd<T>(
                                  1. String key,
                                  2. +setAdd<T>(
                                    1. String key,
                                    2. T element
                                    ) @@ -111,10 +111,10 @@
                                    ParseObject class
                                    Properties
                                  3. createdAt
                                  4. -
                                  5. hashCode
                                  6. +
                                  7. hashCode
                                  8. objectId
                                  9. parseClassName
                                  10. -
                                  11. runtimeType
                                  12. +
                                  13. runtimeType
                                  14. updatedAt
                                  15. Methods
                                  16. @@ -137,7 +137,7 @@
                                    ParseObject class
                                  17. getObject
                                  18. getRelation
                                  19. isDirty
                                  20. -
                                  21. noSuchMethod
                                  22. +
                                  23. noSuchMethod
                                  24. pin
                                  25. query
                                  26. removeRelation
                                  27. @@ -161,7 +161,7 @@
                                    ParseObject class
                                  28. update
                                  29. Operators
                                  30. -
                                  31. operator ==
                                  32. +
                                  33. operator ==
                                  34. operator []
                                  35. operator []=
                                  36. diff --git a/dart/flutter_parse_sdk/ParseObject/setAddAll.html b/dart/flutter_parse_sdk/ParseObject/setAddAll.html index a7d43480a..b4dae6768 100644 --- a/dart/flutter_parse_sdk/ParseObject/setAddAll.html +++ b/dart/flutter_parse_sdk/ParseObject/setAddAll.html @@ -60,8 +60,8 @@

                                    setAddAll method void -setAddAll(
                                    1. String key,
                                    2. -
                                    3. List elements
                                    4. +setAddAll(
                                      1. String key,
                                      2. +
                                      3. List elements
                                      ) @@ -112,10 +112,10 @@
                                      ParseObject class
                                      Properties
                                    5. createdAt
                                    6. -
                                    7. hashCode
                                    8. +
                                    9. hashCode
                                    10. objectId
                                    11. parseClassName
                                    12. -
                                    13. runtimeType
                                    14. +
                                    15. runtimeType
                                    16. updatedAt
                                    17. Methods
                                    18. @@ -138,7 +138,7 @@
                                      ParseObject class
                                    19. getObject
                                    20. getRelation
                                    21. isDirty
                                    22. -
                                    23. noSuchMethod
                                    24. +
                                    25. noSuchMethod
                                    26. pin
                                    27. query
                                    28. removeRelation
                                    29. @@ -162,7 +162,7 @@
                                      ParseObject class
                                    30. update
                                    31. Operators
                                    32. -
                                    33. operator ==
                                    34. +
                                    35. operator ==
                                    36. operator []
                                    37. operator []=
                                    38. diff --git a/dart/flutter_parse_sdk/ParseObject/setAddAllUnique.html b/dart/flutter_parse_sdk/ParseObject/setAddAllUnique.html index a544dc37c..266241627 100644 --- a/dart/flutter_parse_sdk/ParseObject/setAddAllUnique.html +++ b/dart/flutter_parse_sdk/ParseObject/setAddAllUnique.html @@ -60,8 +60,8 @@

                                      setAddAllUnique method void -setAddAllUnique(
                                      1. String key,
                                      2. -
                                      3. List elements
                                      4. +setAddAllUnique(
                                        1. String key,
                                        2. +
                                        3. List elements
                                        ) @@ -113,10 +113,10 @@
                                        ParseObject class
                                        Properties
                                      5. createdAt
                                      6. -
                                      7. hashCode
                                      8. +
                                      9. hashCode
                                      10. objectId
                                      11. parseClassName
                                      12. -
                                      13. runtimeType
                                      14. +
                                      15. runtimeType
                                      16. updatedAt
                                      17. Methods
                                      18. @@ -139,7 +139,7 @@
                                        ParseObject class
                                      19. getObject
                                      20. getRelation
                                      21. isDirty
                                      22. -
                                      23. noSuchMethod
                                      24. +
                                      25. noSuchMethod
                                      26. pin
                                      27. query
                                      28. removeRelation
                                      29. @@ -163,7 +163,7 @@
                                        ParseObject class
                                      30. update
                                      31. Operators
                                      32. -
                                      33. operator ==
                                      34. +
                                      35. operator ==
                                      36. operator []
                                      37. operator []=
                                      38. diff --git a/dart/flutter_parse_sdk/ParseObject/setAddUnique.html b/dart/flutter_parse_sdk/ParseObject/setAddUnique.html index fd13bc47b..8d3c327ba 100644 --- a/dart/flutter_parse_sdk/ParseObject/setAddUnique.html +++ b/dart/flutter_parse_sdk/ParseObject/setAddUnique.html @@ -60,7 +60,7 @@

                                        setAddUnique method void -setAddUnique(
                                        1. String key,
                                        2. +setAddUnique(
                                          1. String key,
                                          2. dynamic element
                                          ) @@ -113,10 +113,10 @@
                                          ParseObject class
                                          Properties
                                        3. createdAt
                                        4. -
                                        5. hashCode
                                        6. +
                                        7. hashCode
                                        8. objectId
                                        9. parseClassName
                                        10. -
                                        11. runtimeType
                                        12. +
                                        13. runtimeType
                                        14. updatedAt
                                        15. Methods
                                        16. @@ -139,7 +139,7 @@
                                          ParseObject class
                                        17. getObject
                                        18. getRelation
                                        19. isDirty
                                        20. -
                                        21. noSuchMethod
                                        22. +
                                        23. noSuchMethod
                                        24. pin
                                        25. query
                                        26. removeRelation
                                        27. @@ -163,7 +163,7 @@
                                          ParseObject class
                                        28. update
                                        29. Operators
                                        30. -
                                        31. operator ==
                                        32. +
                                        33. operator ==
                                        34. operator []
                                        35. operator []=
                                        36. diff --git a/dart/flutter_parse_sdk/ParseObject/setDecrement.html b/dart/flutter_parse_sdk/ParseObject/setDecrement.html index 289e40e7d..dfcb98887 100644 --- a/dart/flutter_parse_sdk/ParseObject/setDecrement.html +++ b/dart/flutter_parse_sdk/ParseObject/setDecrement.html @@ -60,8 +60,8 @@

                                          setDecrement method void -setDecrement(
                                          1. String key,
                                          2. -
                                          3. num amount
                                          4. +setDecrement(
                                            1. String key,
                                            2. +
                                            3. num amount
                                            ) @@ -111,10 +111,10 @@
                                            ParseObject class
                                            Properties
                                          5. createdAt
                                          6. -
                                          7. hashCode
                                          8. +
                                          9. hashCode
                                          10. objectId
                                          11. parseClassName
                                          12. -
                                          13. runtimeType
                                          14. +
                                          15. runtimeType
                                          16. updatedAt
                                          17. Methods
                                          18. @@ -137,7 +137,7 @@
                                            ParseObject class
                                          19. getObject
                                          20. getRelation
                                          21. isDirty
                                          22. -
                                          23. noSuchMethod
                                          24. +
                                          25. noSuchMethod
                                          26. pin
                                          27. query
                                          28. removeRelation
                                          29. @@ -161,7 +161,7 @@
                                            ParseObject class
                                          30. update
                                          31. Operators
                                          32. -
                                          33. operator ==
                                          34. +
                                          35. operator ==
                                          36. operator []
                                          37. operator []=
                                          38. diff --git a/dart/flutter_parse_sdk/ParseObject/setIncrement.html b/dart/flutter_parse_sdk/ParseObject/setIncrement.html index f1ae8c439..20ad533d7 100644 --- a/dart/flutter_parse_sdk/ParseObject/setIncrement.html +++ b/dart/flutter_parse_sdk/ParseObject/setIncrement.html @@ -60,8 +60,8 @@

                                            setIncrement method void -setIncrement(
                                            1. String key,
                                            2. -
                                            3. num amount
                                            4. +setIncrement(
                                              1. String key,
                                              2. +
                                              3. num amount
                                              ) @@ -111,10 +111,10 @@
                                              ParseObject class
                                              Properties
                                            5. createdAt
                                            6. -
                                            7. hashCode
                                            8. +
                                            9. hashCode
                                            10. objectId
                                            11. parseClassName
                                            12. -
                                            13. runtimeType
                                            14. +
                                            15. runtimeType
                                            16. updatedAt
                                            17. Methods
                                            18. @@ -137,7 +137,7 @@
                                              ParseObject class
                                            19. getObject
                                            20. getRelation
                                            21. isDirty
                                            22. -
                                            23. noSuchMethod
                                            24. +
                                            25. noSuchMethod
                                            26. pin
                                            27. query
                                            28. removeRelation
                                            29. @@ -161,7 +161,7 @@
                                              ParseObject class
                                            30. update
                                            31. Operators
                                            32. -
                                            33. operator ==
                                            34. +
                                            35. operator ==
                                            36. operator []
                                            37. operator []=
                                            38. diff --git a/dart/flutter_parse_sdk/ParseObject/setRemove.html b/dart/flutter_parse_sdk/ParseObject/setRemove.html index 1e03cf31b..de7d0f272 100644 --- a/dart/flutter_parse_sdk/ParseObject/setRemove.html +++ b/dart/flutter_parse_sdk/ParseObject/setRemove.html @@ -60,7 +60,7 @@

                                              setRemove method void -setRemove(
                                              1. String key,
                                              2. +setRemove(
                                                1. String key,
                                                2. dynamic element
                                                ) @@ -112,10 +112,10 @@
                                                ParseObject class
                                                Properties
                                              3. createdAt
                                              4. -
                                              5. hashCode
                                              6. +
                                              7. hashCode
                                              8. objectId
                                              9. parseClassName
                                              10. -
                                              11. runtimeType
                                              12. +
                                              13. runtimeType
                                              14. updatedAt
                                              15. Methods
                                              16. @@ -138,7 +138,7 @@
                                                ParseObject class
                                              17. getObject
                                              18. getRelation
                                              19. isDirty
                                              20. -
                                              21. noSuchMethod
                                              22. +
                                              23. noSuchMethod
                                              24. pin
                                              25. query
                                              26. removeRelation
                                              27. @@ -162,7 +162,7 @@
                                                ParseObject class
                                              28. update
                                              29. Operators
                                              30. -
                                              31. operator ==
                                              32. +
                                              33. operator ==
                                              34. operator []
                                              35. operator []=
                                              36. diff --git a/dart/flutter_parse_sdk/ParseObject/setRemoveAll.html b/dart/flutter_parse_sdk/ParseObject/setRemoveAll.html index f9f1c388a..8c4cac375 100644 --- a/dart/flutter_parse_sdk/ParseObject/setRemoveAll.html +++ b/dart/flutter_parse_sdk/ParseObject/setRemoveAll.html @@ -60,8 +60,8 @@

                                                setRemoveAll method void -setRemoveAll(
                                                1. String key,
                                                2. -
                                                3. List elements
                                                4. +setRemoveAll(
                                                  1. String key,
                                                  2. +
                                                  3. List elements
                                                  ) @@ -69,7 +69,7 @@

                                                  setRemoveAll method

                                  -

                                  Removes all instances of the elements contained in a List from the +

                                  Removes all instances of the elements contained in a List from the array associated with a given key

                                  @@ -112,10 +112,10 @@

                                  ParseObject class
                                  Properties
                                73. createdAt
                                74. -
                                75. hashCode
                                76. +
                                77. hashCode
                                78. objectId
                                79. parseClassName
                                80. -
                                81. runtimeType
                                82. +
                                83. runtimeType
                                84. updatedAt
                                85. Methods
                                86. @@ -138,7 +138,7 @@
                                  ParseObject class
                                87. getObject
                                88. getRelation
                                89. isDirty
                                90. -
                                91. noSuchMethod
                                92. +
                                93. noSuchMethod
                                94. pin
                                95. query
                                96. removeRelation
                                97. @@ -162,7 +162,7 @@
                                  ParseObject class
                                98. update
                                99. Operators
                                100. -
                                101. operator ==
                                102. +
                                103. operator ==
                                104. operator []
                                105. operator []=
                                106. diff --git a/dart/flutter_parse_sdk/ParseObject/unset.html b/dart/flutter_parse_sdk/ParseObject/unset.html index 0c2df060a..00a1fd585 100644 --- a/dart/flutter_parse_sdk/ParseObject/unset.html +++ b/dart/flutter_parse_sdk/ParseObject/unset.html @@ -59,9 +59,9 @@

                                  unset method
                                  -Future<ParseResponse> -unset(
                                  1. String key,
                                  2. -
                                  3. {bool offlineOnly = false}
                                  4. +Future<ParseResponse> +unset(
                                    1. String key,
                                    2. +
                                    3. {bool offlineOnly = false}
                                    ) @@ -151,10 +151,10 @@
                                    ParseObject class
                                    Properties
                                  5. createdAt
                                  6. -
                                  7. hashCode
                                  8. +
                                  9. hashCode
                                  10. objectId
                                  11. parseClassName
                                  12. -
                                  13. runtimeType
                                  14. +
                                  15. runtimeType
                                  16. updatedAt
                                  17. Methods
                                  18. @@ -177,7 +177,7 @@
                                    ParseObject class
                                  19. getObject
                                  20. getRelation
                                  21. isDirty
                                  22. -
                                  23. noSuchMethod
                                  24. +
                                  25. noSuchMethod
                                  26. pin
                                  27. query
                                  28. removeRelation
                                  29. @@ -201,7 +201,7 @@
                                    ParseObject class
                                  30. update
                                  31. Operators
                                  32. -
                                  33. operator ==
                                  34. +
                                  35. operator ==
                                  36. operator []
                                  37. operator []=
                                  38. diff --git a/dart/flutter_parse_sdk/ParseObject/update.html b/dart/flutter_parse_sdk/ParseObject/update.html index faf7e05a7..a59aae457 100644 --- a/dart/flutter_parse_sdk/ParseObject/update.html +++ b/dart/flutter_parse_sdk/ParseObject/update.html @@ -59,7 +59,7 @@

                                    update method
                                    -Future<ParseResponse> +Future<ParseResponse> update() @@ -141,10 +141,10 @@
                                    ParseObject class
                                    Properties
                                  39. createdAt
                                  40. -
                                  41. hashCode
                                  42. +
                                  43. hashCode
                                  44. objectId
                                  45. parseClassName
                                  46. -
                                  47. runtimeType
                                  48. +
                                  49. runtimeType
                                  50. updatedAt
                                  51. Methods
                                  52. @@ -167,7 +167,7 @@
                                    ParseObject class
                                  53. getObject
                                  54. getRelation
                                  55. isDirty
                                  56. -
                                  57. noSuchMethod
                                  58. +
                                  59. noSuchMethod
                                  60. pin
                                  61. query
                                  62. removeRelation
                                  63. @@ -191,7 +191,7 @@
                                    ParseObject class
                                  64. update
                                  65. Operators
                                  66. -
                                  67. operator ==
                                  68. +
                                  69. operator ==
                                  70. operator []
                                  71. operator []=
                                  72. diff --git a/dart/flutter_parse_sdk/ParseOperationException-class.html b/dart/flutter_parse_sdk/ParseOperationException-class.html index 532cced19..c70d9f85b 100644 --- a/dart/flutter_parse_sdk/ParseOperationException-class.html +++ b/dart/flutter_parse_sdk/ParseOperationException-class.html @@ -86,7 +86,7 @@

                                    Constructors

                                    - ParseOperationException([String? message]) + ParseOperationException([String? message])
                                    @@ -100,8 +100,8 @@

                                    Properties

                                    - hashCode - int + hashCode + int
                                    @@ -112,7 +112,7 @@

                                    Properties

                                    message - String? + String?
                                    @@ -122,8 +122,8 @@

                                    Properties

                                    - runtimeType - Type + runtimeType + Type
                                    @@ -142,7 +142,7 @@

                                    Properties

                                    Methods

                                    - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -156,7 +156,7 @@

                                    Methods

                                    toString() - String + String @@ -176,8 +176,8 @@

                                    Methods

                                    Operators

                                    - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -388,16 +388,16 @@
                                    flutter_parse_sdk library
                                  73. Properties
                                  74. -
                                  75. hashCode
                                  76. +
                                  77. hashCode
                                  78. message
                                  79. -
                                  80. runtimeType
                                  81. +
                                  82. runtimeType
                                  83. Methods
                                  84. -
                                  85. noSuchMethod
                                  86. +
                                  87. noSuchMethod
                                  88. toString
                                  89. Operators
                                  90. -
                                  91. operator ==
                                  92. +
                                  93. operator ==
                                  94. diff --git a/dart/flutter_parse_sdk/ParseOperationException/ParseOperationException.html b/dart/flutter_parse_sdk/ParseOperationException/ParseOperationException.html index ff1356980..01921b3e1 100644 --- a/dart/flutter_parse_sdk/ParseOperationException/ParseOperationException.html +++ b/dart/flutter_parse_sdk/ParseOperationException/ParseOperationException.html @@ -58,7 +58,7 @@

                                    ParseOperationException constructor
                                    const - ParseOperationException(
                                    1. [String? message]
                                    2. + ParseOperationException(
                                      1. [String? message]
                                      )
                                    @@ -99,16 +99,16 @@

                                    ParseOperationException class
                                  95. Properties
                                  96. -
                                  97. hashCode
                                  98. +
                                  99. hashCode
                                  100. message
                                  101. -
                                  102. runtimeType
                                  103. +
                                  104. runtimeType
                                  105. Methods
                                  106. -
                                  107. noSuchMethod
                                  108. +
                                  109. noSuchMethod
                                  110. toString
                                  111. Operators
                                  112. -
                                  113. operator ==
                                  114. +
                                  115. operator ==
                                  116. diff --git a/dart/flutter_parse_sdk/ParseOperationException/message.html b/dart/flutter_parse_sdk/ParseOperationException/message.html index 02e35f187..f109c23dd 100644 --- a/dart/flutter_parse_sdk/ParseOperationException/message.html +++ b/dart/flutter_parse_sdk/ParseOperationException/message.html @@ -58,7 +58,7 @@

                                    message property
                                    - String? + String? message
                                    final
                                    @@ -99,16 +99,16 @@
                                    ParseOperationException class
                                  117. Properties
                                  118. -
                                  119. hashCode
                                  120. +
                                  121. hashCode
                                  122. message
                                  123. -
                                  124. runtimeType
                                  125. +
                                  126. runtimeType
                                  127. Methods
                                  128. -
                                  129. noSuchMethod
                                  130. +
                                  131. noSuchMethod
                                  132. toString
                                  133. Operators
                                  134. -
                                  135. operator ==
                                  136. +
                                  137. operator ==
                                  138. diff --git a/dart/flutter_parse_sdk/ParseOperationException/toString.html b/dart/flutter_parse_sdk/ParseOperationException/toString.html index 4126a61a9..cd660e2a8 100644 --- a/dart/flutter_parse_sdk/ParseOperationException/toString.html +++ b/dart/flutter_parse_sdk/ParseOperationException/toString.html @@ -60,11 +60,11 @@

                                    toString method -String +String toString()
                                    override
                                    @@ -74,7 +74,7 @@

                                    toString method

                                    A string representation of this object.

                                    Some classes have a default textual representation, -often paired with a static parse function (like int.parse). +often paired with a static parse function (like int.parse). These classes will provide the textual representation as their string representation.

                                    Other classes have no meaningful textual representation @@ -123,16 +123,16 @@

                                    ParseOperationException class
                                  139. Properties
                                  140. -
                                  141. hashCode
                                  142. +
                                  143. hashCode
                                  144. message
                                  145. -
                                  146. runtimeType
                                  147. +
                                  148. runtimeType
                                  149. Methods
                                  150. -
                                  151. noSuchMethod
                                  152. +
                                  153. noSuchMethod
                                  154. toString
                                  155. Operators
                                  156. -
                                  157. operator ==
                                  158. +
                                  159. operator ==
                                  160. diff --git a/dart/flutter_parse_sdk/ParseRelation-class.html b/dart/flutter_parse_sdk/ParseRelation-class.html index 8b83cbbd7..44d5d0509 100644 --- a/dart/flutter_parse_sdk/ParseRelation-class.html +++ b/dart/flutter_parse_sdk/ParseRelation-class.html @@ -67,14 +67,14 @@

                                    Constructors

                                    - ParseRelation({required ParseObject parent, required String key}) + ParseRelation({required ParseObject parent, required String key})
                                    factory
                                    - ParseRelation.fromJson(Map<String, dynamic> map, {ParseObject? parent, String? key}) + ParseRelation.fromJson(Map<String, dynamic> map, {ParseObject? parent, String? key})
                                    @@ -89,7 +89,7 @@

                                    Properties

                                    getTargetClass - String + String
                                    @@ -99,8 +99,8 @@

                                    Properties

                                    - hashCode - int + hashCode + int
                                    @@ -110,8 +110,8 @@

                                    Properties

                                    - runtimeType - Type + runtimeType + Type
                                    @@ -122,7 +122,7 @@

                                    Properties

                                    setTargetClass - String + String
                                    @@ -135,7 +135,7 @@

                                    Properties

                                    targetClass - String? + String?
                                    @@ -167,7 +167,7 @@

                                    Methods

                                    - addAll(List<T> parseObjects) + addAll(List<T> parseObjects) → void @@ -181,7 +181,7 @@

                                    Methods

                                    getKey() - String + String @@ -219,7 +219,7 @@

                                    Methods

                                    - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -245,7 +245,7 @@

                                    Methods

                                    - removeAll(List<T> parseObjects) + removeAll(List<T> parseObjects) → void @@ -258,8 +258,8 @@

                                    Methods

                                    - toJson({bool full = false}) - Map<String, dynamic> + toJson({bool full = false}) + Map<String, dynamic> @@ -271,8 +271,8 @@

                                    Methods

                                    - toString() - String + toString() + String @@ -292,8 +292,8 @@

                                    Methods

                                    Operators

                                    - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -506,8 +506,8 @@
                                    flutter_parse_sdk library
                                    Properties
                                  161. getTargetClass
                                  162. -
                                  163. hashCode
                                  164. -
                                  165. runtimeType
                                  166. +
                                  167. hashCode
                                  168. +
                                  169. runtimeType
                                  170. setTargetClass
                                  171. targetClass
                                  172. @@ -517,14 +517,14 @@
                                    flutter_parse_sdk library
                                  173. getKey
                                  174. getParent
                                  175. getQuery
                                  176. -
                                  177. noSuchMethod
                                  178. +
                                  179. noSuchMethod
                                  180. remove
                                  181. removeAll
                                  182. toJson
                                  183. -
                                  184. toString
                                  185. +
                                  186. toString
                                  187. Operators
                                  188. -
                                  189. operator ==
                                  190. +
                                  191. operator ==
                                  192. diff --git a/dart/flutter_parse_sdk/ParseRelation/ParseRelation.fromJson.html b/dart/flutter_parse_sdk/ParseRelation/ParseRelation.fromJson.html index 4fa5ae358..54c58e0be 100644 --- a/dart/flutter_parse_sdk/ParseRelation/ParseRelation.fromJson.html +++ b/dart/flutter_parse_sdk/ParseRelation/ParseRelation.fromJson.html @@ -58,9 +58,9 @@

                                    ParseRelation< - ParseRelation<T extends ParseObject>.fromJson(
                                    1. Map<String, dynamic> map,
                                    2. + ParseRelation<T extends ParseObject>.fromJson(
                                      1. Map<String, dynamic> map,
                                      2. {ParseObject? parent,
                                      3. -
                                      4. String? key}
                                      5. +
                                      6. String? key}
                                      )

                                    @@ -109,8 +109,8 @@

                                    ParseRelation class
                                    Properties
                                  193. getTargetClass
                                  194. -
                                  195. hashCode
                                  196. -
                                  197. runtimeType
                                  198. +
                                  199. hashCode
                                  200. +
                                  201. runtimeType
                                  202. setTargetClass
                                  203. targetClass
                                  204. @@ -120,14 +120,14 @@
                                    ParseRelation class
                                  205. getKey
                                  206. getParent
                                  207. getQuery
                                  208. -
                                  209. noSuchMethod
                                  210. +
                                  211. noSuchMethod
                                  212. remove
                                  213. removeAll
                                  214. toJson
                                  215. -
                                  216. toString
                                  217. +
                                  218. toString
                                  219. Operators
                                  220. -
                                  221. operator ==
                                  222. +
                                  223. operator ==
                                  224. diff --git a/dart/flutter_parse_sdk/ParseRelation/ParseRelation.html b/dart/flutter_parse_sdk/ParseRelation/ParseRelation.html index b5e34f72b..f093444b7 100644 --- a/dart/flutter_parse_sdk/ParseRelation/ParseRelation.html +++ b/dart/flutter_parse_sdk/ParseRelation/ParseRelation.html @@ -59,7 +59,7 @@

                                    ParseRelation< ParseRelation<T extends ParseObject>(
                                    1. {required ParseObject parent,
                                    2. -
                                    3. required String key}
                                    4. +
                                    5. required String key}
                                    )

                                  @@ -107,8 +107,8 @@

                                  ParseRelation class
                                  Properties
                                107. getTargetClass
                                108. -
                                109. hashCode
                                110. -
                                111. runtimeType
                                112. +
                                113. hashCode
                                114. +
                                115. runtimeType
                                116. setTargetClass
                                117. targetClass
                                118. @@ -118,14 +118,14 @@
                                  ParseRelation class
                                119. getKey
                                120. getParent
                                121. getQuery
                                122. -
                                123. noSuchMethod
                                124. +
                                125. noSuchMethod
                                126. remove
                                127. removeAll
                                128. toJson
                                129. -
                                130. toString
                                131. +
                                132. toString
                                133. Operators
                                134. -
                                135. operator ==
                                136. +
                                137. operator ==
                                138. diff --git a/dart/flutter_parse_sdk/ParseRelation/add.html b/dart/flutter_parse_sdk/ParseRelation/add.html index 5c7bca1fd..ef2f3d05c 100644 --- a/dart/flutter_parse_sdk/ParseRelation/add.html +++ b/dart/flutter_parse_sdk/ParseRelation/add.html @@ -108,8 +108,8 @@
                                  ParseRelation class
                                  Properties
                                139. getTargetClass
                                140. -
                                141. hashCode
                                142. -
                                143. runtimeType
                                144. +
                                145. hashCode
                                146. +
                                147. runtimeType
                                148. setTargetClass
                                149. targetClass
                                150. @@ -119,14 +119,14 @@
                                  ParseRelation class
                                151. getKey
                                152. getParent
                                153. getQuery
                                154. -
                                155. noSuchMethod
                                156. +
                                157. noSuchMethod
                                158. remove
                                159. removeAll
                                160. toJson
                                161. -
                                162. toString
                                163. +
                                164. toString
                                165. Operators
                                166. -
                                167. operator ==
                                168. +
                                169. operator ==
                                170. diff --git a/dart/flutter_parse_sdk/ParseRelation/addAll.html b/dart/flutter_parse_sdk/ParseRelation/addAll.html index 6763e9e76..cd174e7bb 100644 --- a/dart/flutter_parse_sdk/ParseRelation/addAll.html +++ b/dart/flutter_parse_sdk/ParseRelation/addAll.html @@ -60,7 +60,7 @@

                                  addAll abstract method void -addAll(
                                  1. List<T> parseObjects
                                  2. +addAll(
                                    1. List<T> parseObjects
                                    ) @@ -108,8 +108,8 @@
                                    ParseRelation class
                                    Properties
                                  3. getTargetClass
                                  4. -
                                  5. hashCode
                                  6. -
                                  7. runtimeType
                                  8. +
                                  9. hashCode
                                  10. +
                                  11. runtimeType
                                  12. setTargetClass
                                  13. targetClass
                                  14. @@ -119,14 +119,14 @@
                                    ParseRelation class
                                  15. getKey
                                  16. getParent
                                  17. getQuery
                                  18. -
                                  19. noSuchMethod
                                  20. +
                                  21. noSuchMethod
                                  22. remove
                                  23. removeAll
                                  24. toJson
                                  25. -
                                  26. toString
                                  27. +
                                  28. toString
                                  29. Operators
                                  30. -
                                  31. operator ==
                                  32. +
                                  33. operator ==
                                  34. diff --git a/dart/flutter_parse_sdk/ParseRelation/getKey.html b/dart/flutter_parse_sdk/ParseRelation/getKey.html index 74b91fcfa..8519a4eed 100644 --- a/dart/flutter_parse_sdk/ParseRelation/getKey.html +++ b/dart/flutter_parse_sdk/ParseRelation/getKey.html @@ -59,7 +59,7 @@

                                    getKey abstract method
                                    -String +String getKey() @@ -104,8 +104,8 @@
                                    ParseRelation class
                                    Properties
                                  35. getTargetClass
                                  36. -
                                  37. hashCode
                                  38. -
                                  39. runtimeType
                                  40. +
                                  41. hashCode
                                  42. +
                                  43. runtimeType
                                  44. setTargetClass
                                  45. targetClass
                                  46. @@ -115,14 +115,14 @@
                                    ParseRelation class
                                  47. getKey
                                  48. getParent
                                  49. getQuery
                                  50. -
                                  51. noSuchMethod
                                  52. +
                                  53. noSuchMethod
                                  54. remove
                                  55. removeAll
                                  56. toJson
                                  57. -
                                  58. toString
                                  59. +
                                  60. toString
                                  61. Operators
                                  62. -
                                  63. operator ==
                                  64. +
                                  65. operator ==
                                  66. diff --git a/dart/flutter_parse_sdk/ParseRelation/getParent.html b/dart/flutter_parse_sdk/ParseRelation/getParent.html index 7d306bf0c..c8eaaa78a 100644 --- a/dart/flutter_parse_sdk/ParseRelation/getParent.html +++ b/dart/flutter_parse_sdk/ParseRelation/getParent.html @@ -104,8 +104,8 @@
                                    ParseRelation class
                                    Properties
                                  67. getTargetClass
                                  68. -
                                  69. hashCode
                                  70. -
                                  71. runtimeType
                                  72. +
                                  73. hashCode
                                  74. +
                                  75. runtimeType
                                  76. setTargetClass
                                  77. targetClass
                                  78. @@ -115,14 +115,14 @@
                                    ParseRelation class
                                  79. getKey
                                  80. getParent
                                  81. getQuery
                                  82. -
                                  83. noSuchMethod
                                  84. +
                                  85. noSuchMethod
                                  86. remove
                                  87. removeAll
                                  88. toJson
                                  89. -
                                  90. toString
                                  91. +
                                  92. toString
                                  93. Operators
                                  94. -
                                  95. operator ==
                                  96. +
                                  97. operator ==
                                  98. diff --git a/dart/flutter_parse_sdk/ParseRelation/getQuery.html b/dart/flutter_parse_sdk/ParseRelation/getQuery.html index 710928ec7..6131fff4b 100644 --- a/dart/flutter_parse_sdk/ParseRelation/getQuery.html +++ b/dart/flutter_parse_sdk/ParseRelation/getQuery.html @@ -108,8 +108,8 @@
                                    ParseRelation class
                                    Properties
                                  99. getTargetClass
                                  100. -
                                  101. hashCode
                                  102. -
                                  103. runtimeType
                                  104. +
                                  105. hashCode
                                  106. +
                                  107. runtimeType
                                  108. setTargetClass
                                  109. targetClass
                                  110. @@ -119,14 +119,14 @@
                                    ParseRelation class
                                  111. getKey
                                  112. getParent
                                  113. getQuery
                                  114. -
                                  115. noSuchMethod
                                  116. +
                                  117. noSuchMethod
                                  118. remove
                                  119. removeAll
                                  120. toJson
                                  121. -
                                  122. toString
                                  123. +
                                  124. toString
                                  125. Operators
                                  126. -
                                  127. operator ==
                                  128. +
                                  129. operator ==
                                  130. diff --git a/dart/flutter_parse_sdk/ParseRelation/getTargetClass.html b/dart/flutter_parse_sdk/ParseRelation/getTargetClass.html index 0ab012b2b..206b5224f 100644 --- a/dart/flutter_parse_sdk/ParseRelation/getTargetClass.html +++ b/dart/flutter_parse_sdk/ParseRelation/getTargetClass.html @@ -64,10 +64,10 @@

                                    getTargetClass property
                                      -
                                    1. @Deprecated('use the targetClass getter')
                                    2. +
                                    3. @Deprecated('use the targetClass getter')
                                    - String + String getTargetClass @@ -117,8 +117,8 @@

                                    ParseRelation class
                                    Properties
                                  131. getTargetClass
                                  132. -
                                  133. hashCode
                                  134. -
                                  135. runtimeType
                                  136. +
                                  137. hashCode
                                  138. +
                                  139. runtimeType
                                  140. setTargetClass
                                  141. targetClass
                                  142. @@ -128,14 +128,14 @@
                                    ParseRelation class
                                  143. getKey
                                  144. getParent
                                  145. getQuery
                                  146. -
                                  147. noSuchMethod
                                  148. +
                                  149. noSuchMethod
                                  150. remove
                                  151. removeAll
                                  152. toJson
                                  153. -
                                  154. toString
                                  155. +
                                  156. toString
                                  157. Operators
                                  158. -
                                  159. operator ==
                                  160. +
                                  161. operator ==
                                  162. diff --git a/dart/flutter_parse_sdk/ParseRelation/remove.html b/dart/flutter_parse_sdk/ParseRelation/remove.html index 0a5df12ba..10081f557 100644 --- a/dart/flutter_parse_sdk/ParseRelation/remove.html +++ b/dart/flutter_parse_sdk/ParseRelation/remove.html @@ -108,8 +108,8 @@
                                    ParseRelation class
                                    Properties
                                  163. getTargetClass
                                  164. -
                                  165. hashCode
                                  166. -
                                  167. runtimeType
                                  168. +
                                  169. hashCode
                                  170. +
                                  171. runtimeType
                                  172. setTargetClass
                                  173. targetClass
                                  174. @@ -119,14 +119,14 @@
                                    ParseRelation class
                                  175. getKey
                                  176. getParent
                                  177. getQuery
                                  178. -
                                  179. noSuchMethod
                                  180. +
                                  181. noSuchMethod
                                  182. remove
                                  183. removeAll
                                  184. toJson
                                  185. -
                                  186. toString
                                  187. +
                                  188. toString
                                  189. Operators
                                  190. -
                                  191. operator ==
                                  192. +
                                  193. operator ==
                                  194. diff --git a/dart/flutter_parse_sdk/ParseRelation/removeAll.html b/dart/flutter_parse_sdk/ParseRelation/removeAll.html index 927da7e76..761b29b76 100644 --- a/dart/flutter_parse_sdk/ParseRelation/removeAll.html +++ b/dart/flutter_parse_sdk/ParseRelation/removeAll.html @@ -60,7 +60,7 @@

                                    removeAll abstract method void -removeAll(
                                    1. List<T> parseObjects
                                    2. +removeAll(
                                      1. List<T> parseObjects
                                      ) @@ -108,8 +108,8 @@
                                      ParseRelation class
                                      Properties
                                    3. getTargetClass
                                    4. -
                                    5. hashCode
                                    6. -
                                    7. runtimeType
                                    8. +
                                    9. hashCode
                                    10. +
                                    11. runtimeType
                                    12. setTargetClass
                                    13. targetClass
                                    14. @@ -119,14 +119,14 @@
                                      ParseRelation class
                                    15. getKey
                                    16. getParent
                                    17. getQuery
                                    18. -
                                    19. noSuchMethod
                                    20. +
                                    21. noSuchMethod
                                    22. remove
                                    23. removeAll
                                    24. toJson
                                    25. -
                                    26. toString
                                    27. +
                                    28. toString
                                    29. Operators
                                    30. -
                                    31. operator ==
                                    32. +
                                    33. operator ==
                                    34. diff --git a/dart/flutter_parse_sdk/ParseRelation/setTargetClass.html b/dart/flutter_parse_sdk/ParseRelation/setTargetClass.html index 08fee1fb7..d715dfa7a 100644 --- a/dart/flutter_parse_sdk/ParseRelation/setTargetClass.html +++ b/dart/flutter_parse_sdk/ParseRelation/setTargetClass.html @@ -64,7 +64,7 @@

                                      setTargetClass property
                                      void - setTargetClass=(String targetClass) + setTargetClass=(String targetClass)
                                      @@ -113,8 +113,8 @@

                                      ParseRelation class
                                      Properties
                                    35. getTargetClass
                                    36. -
                                    37. hashCode
                                    38. -
                                    39. runtimeType
                                    40. +
                                    41. hashCode
                                    42. +
                                    43. runtimeType
                                    44. setTargetClass
                                    45. targetClass
                                    46. @@ -124,14 +124,14 @@
                                      ParseRelation class
                                    47. getKey
                                    48. getParent
                                    49. getQuery
                                    50. -
                                    51. noSuchMethod
                                    52. +
                                    53. noSuchMethod
                                    54. remove
                                    55. removeAll
                                    56. toJson
                                    57. -
                                    58. toString
                                    59. +
                                    60. toString
                                    61. Operators
                                    62. -
                                    63. operator ==
                                    64. +
                                    65. operator ==
                                    66. diff --git a/dart/flutter_parse_sdk/ParseRelation/targetClass.html b/dart/flutter_parse_sdk/ParseRelation/targetClass.html index 873f27078..8ad5c29b6 100644 --- a/dart/flutter_parse_sdk/ParseRelation/targetClass.html +++ b/dart/flutter_parse_sdk/ParseRelation/targetClass.html @@ -62,7 +62,7 @@

                                      targetClass property
                                      - String? + String? targetClass @@ -111,8 +111,8 @@
                                      ParseRelation class
                                      Properties
                                    67. getTargetClass
                                    68. -
                                    69. hashCode
                                    70. -
                                    71. runtimeType
                                    72. +
                                    73. hashCode
                                    74. +
                                    75. runtimeType
                                    76. setTargetClass
                                    77. targetClass
                                    78. @@ -122,14 +122,14 @@
                                      ParseRelation class
                                    79. getKey
                                    80. getParent
                                    81. getQuery
                                    82. -
                                    83. noSuchMethod
                                    84. +
                                    85. noSuchMethod
                                    86. remove
                                    87. removeAll
                                    88. toJson
                                    89. -
                                    90. toString
                                    91. +
                                    92. toString
                                    93. Operators
                                    94. -
                                    95. operator ==
                                    96. +
                                    97. operator ==
                                    98. diff --git a/dart/flutter_parse_sdk/ParseRelation/toJson.html b/dart/flutter_parse_sdk/ParseRelation/toJson.html index 176cdc0d5..cc3a7eea5 100644 --- a/dart/flutter_parse_sdk/ParseRelation/toJson.html +++ b/dart/flutter_parse_sdk/ParseRelation/toJson.html @@ -59,8 +59,8 @@

                                      toJson abstract method
                                      -Map<String, dynamic> -toJson(
                                      1. {bool full = false}
                                      2. +Map<String, dynamic> +toJson(
                                        1. {bool full = false}
                                        ) @@ -105,8 +105,8 @@
                                        ParseRelation class
                                        Properties
                                      3. getTargetClass
                                      4. -
                                      5. hashCode
                                      6. -
                                      7. runtimeType
                                      8. +
                                      9. hashCode
                                      10. +
                                      11. runtimeType
                                      12. setTargetClass
                                      13. targetClass
                                      14. @@ -116,14 +116,14 @@
                                        ParseRelation class
                                      15. getKey
                                      16. getParent
                                      17. getQuery
                                      18. -
                                      19. noSuchMethod
                                      20. +
                                      21. noSuchMethod
                                      22. remove
                                      23. removeAll
                                      24. toJson
                                      25. -
                                      26. toString
                                      27. +
                                      28. toString
                                      29. Operators
                                      30. -
                                      31. operator ==
                                      32. +
                                      33. operator ==
                                      34. diff --git a/dart/flutter_parse_sdk/ParseRelationException-class.html b/dart/flutter_parse_sdk/ParseRelationException-class.html index 123b0c641..7ddadc56e 100644 --- a/dart/flutter_parse_sdk/ParseRelationException-class.html +++ b/dart/flutter_parse_sdk/ParseRelationException-class.html @@ -86,7 +86,7 @@

                                        Constructors

                                        - ParseRelationException([String? message]) + ParseRelationException([String? message])
                                        @@ -100,8 +100,8 @@

                                        Properties

                                        - hashCode - int + hashCode + int
                                        @@ -112,7 +112,7 @@

                                        Properties

                                        message - String? + String?
                                        @@ -122,8 +122,8 @@

                                        Properties

                                        - runtimeType - Type + runtimeType + Type
                                        @@ -142,7 +142,7 @@

                                        Properties

                                        Methods

                                        - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -156,7 +156,7 @@

                                        Methods

                                        toString() - String + String @@ -176,8 +176,8 @@

                                        Methods

                                        Operators

                                        - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -388,16 +388,16 @@
                                        flutter_parse_sdk library
                                      35. Properties
                                      36. -
                                      37. hashCode
                                      38. +
                                      39. hashCode
                                      40. message
                                      41. -
                                      42. runtimeType
                                      43. +
                                      44. runtimeType
                                      45. Methods
                                      46. -
                                      47. noSuchMethod
                                      48. +
                                      49. noSuchMethod
                                      50. toString
                                      51. Operators
                                      52. -
                                      53. operator ==
                                      54. +
                                      55. operator ==
                                      56. diff --git a/dart/flutter_parse_sdk/ParseRelationException/ParseRelationException.html b/dart/flutter_parse_sdk/ParseRelationException/ParseRelationException.html index abf94f487..03db25693 100644 --- a/dart/flutter_parse_sdk/ParseRelationException/ParseRelationException.html +++ b/dart/flutter_parse_sdk/ParseRelationException/ParseRelationException.html @@ -58,7 +58,7 @@

                                        ParseRelationException constructor
                                        const - ParseRelationException(
                                        1. [String? message]
                                        2. + ParseRelationException(
                                          1. [String? message]
                                          )
                                        @@ -99,16 +99,16 @@

                                        ParseRelationException class
                                      57. Properties
                                      58. -
                                      59. hashCode
                                      60. +
                                      61. hashCode
                                      62. message
                                      63. -
                                      64. runtimeType
                                      65. +
                                      66. runtimeType
                                      67. Methods
                                      68. -
                                      69. noSuchMethod
                                      70. +
                                      71. noSuchMethod
                                      72. toString
                                      73. Operators
                                      74. -
                                      75. operator ==
                                      76. +
                                      77. operator ==
                                      78. diff --git a/dart/flutter_parse_sdk/ParseRelationException/message.html b/dart/flutter_parse_sdk/ParseRelationException/message.html index aeb03aa03..967cf7558 100644 --- a/dart/flutter_parse_sdk/ParseRelationException/message.html +++ b/dart/flutter_parse_sdk/ParseRelationException/message.html @@ -58,7 +58,7 @@

                                        message property
                                        - String? + String? message
                                        final
                                        @@ -99,16 +99,16 @@
                                        ParseRelationException class
                                      79. Properties
                                      80. -
                                      81. hashCode
                                      82. +
                                      83. hashCode
                                      84. message
                                      85. -
                                      86. runtimeType
                                      87. +
                                      88. runtimeType
                                      89. Methods
                                      90. -
                                      91. noSuchMethod
                                      92. +
                                      93. noSuchMethod
                                      94. toString
                                      95. Operators
                                      96. -
                                      97. operator ==
                                      98. +
                                      99. operator ==
                                      100. diff --git a/dart/flutter_parse_sdk/ParseRelationException/toString.html b/dart/flutter_parse_sdk/ParseRelationException/toString.html index 32656c990..0591c15cb 100644 --- a/dart/flutter_parse_sdk/ParseRelationException/toString.html +++ b/dart/flutter_parse_sdk/ParseRelationException/toString.html @@ -60,11 +60,11 @@

                                        toString method -String +String toString()
                                        override
                                        @@ -74,7 +74,7 @@

                                        toString method

                                        A string representation of this object.

                                        Some classes have a default textual representation, -often paired with a static parse function (like int.parse). +often paired with a static parse function (like int.parse). These classes will provide the textual representation as their string representation.

                                        Other classes have no meaningful textual representation @@ -123,16 +123,16 @@

                                        ParseRelationException class
                                      101. Properties
                                      102. -
                                      103. hashCode
                                      104. +
                                      105. hashCode
                                      106. message
                                      107. -
                                      108. runtimeType
                                      109. +
                                      110. runtimeType
                                      111. Methods
                                      112. -
                                      113. noSuchMethod
                                      114. +
                                      115. noSuchMethod
                                      116. toString
                                      117. Operators
                                      118. -
                                      119. operator ==
                                      120. +
                                      121. operator ==
                                      122. diff --git a/dart/flutter_parse_sdk/ParseResponse-class.html b/dart/flutter_parse_sdk/ParseResponse-class.html index 6ebdf8483..b13a1104a 100644 --- a/dart/flutter_parse_sdk/ParseResponse-class.html +++ b/dart/flutter_parse_sdk/ParseResponse-class.html @@ -80,7 +80,7 @@

                                        Properties

                                        count - int + int
                                        @@ -101,8 +101,8 @@

                                        Properties

                                        - hashCode - int + hashCode + int
                                        @@ -124,7 +124,7 @@

                                        Properties

                                        results - List? + List?
                                        @@ -134,8 +134,8 @@

                                        Properties

                                        - runtimeType - Type + runtimeType + Type
                                        @@ -146,7 +146,7 @@

                                        Properties

                                        statusCode - int + int
                                        @@ -157,7 +157,7 @@

                                        Properties

                                        success - bool + bool
                                        @@ -176,7 +176,7 @@

                                        Properties

                                        Methods

                                        - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -189,8 +189,8 @@

                                        Methods

                                        - toString() - String + toString() + String @@ -210,8 +210,8 @@

                                        Methods

                                        Operators

                                        - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -424,19 +424,19 @@
                                        flutter_parse_sdk library
                                      123. count
                                      124. error
                                      125. -
                                      126. hashCode
                                      127. +
                                      128. hashCode
                                      129. result
                                      130. results
                                      131. -
                                      132. runtimeType
                                      133. +
                                      134. runtimeType
                                      135. statusCode
                                      136. success
                                      137. Methods
                                      138. -
                                      139. noSuchMethod
                                      140. -
                                      141. toString
                                      142. +
                                      143. noSuchMethod
                                      144. +
                                      145. toString
                                      146. Operators
                                      147. -
                                      148. operator ==
                                      149. +
                                      150. operator ==
                                      151. diff --git a/dart/flutter_parse_sdk/ParseResponse/ParseResponse.html b/dart/flutter_parse_sdk/ParseResponse/ParseResponse.html index f1fb72b79..516f71082 100644 --- a/dart/flutter_parse_sdk/ParseResponse/ParseResponse.html +++ b/dart/flutter_parse_sdk/ParseResponse/ParseResponse.html @@ -103,19 +103,19 @@
                                        ParseResponse class
                                      152. count
                                      153. error
                                      154. -
                                      155. hashCode
                                      156. +
                                      157. hashCode
                                      158. result
                                      159. results
                                      160. -
                                      161. runtimeType
                                      162. +
                                      163. runtimeType
                                      164. statusCode
                                      165. success
                                      166. Methods
                                      167. -
                                      168. noSuchMethod
                                      169. -
                                      170. toString
                                      171. +
                                      172. noSuchMethod
                                      173. +
                                      174. toString
                                      175. Operators
                                      176. -
                                      177. operator ==
                                      178. +
                                      179. operator ==
                                      180. diff --git a/dart/flutter_parse_sdk/ParseResponse/count.html b/dart/flutter_parse_sdk/ParseResponse/count.html index fb54703e0..d80e95c1a 100644 --- a/dart/flutter_parse_sdk/ParseResponse/count.html +++ b/dart/flutter_parse_sdk/ParseResponse/count.html @@ -58,7 +58,7 @@

                                        count property
                                        - int + int count
                                        read / write
                                        @@ -101,19 +101,19 @@
                                        ParseResponse class
                                      181. count
                                      182. error
                                      183. -
                                      184. hashCode
                                      185. +
                                      186. hashCode
                                      187. result
                                      188. results
                                      189. -
                                      190. runtimeType
                                      191. +
                                      192. runtimeType
                                      193. statusCode
                                      194. success
                                      195. Methods
                                      196. -
                                      197. noSuchMethod
                                      198. -
                                      199. toString
                                      200. +
                                      201. noSuchMethod
                                      202. +
                                      203. toString
                                      204. Operators
                                      205. -
                                      206. operator ==
                                      207. +
                                      208. operator ==
                                      209. diff --git a/dart/flutter_parse_sdk/ParseResponse/error.html b/dart/flutter_parse_sdk/ParseResponse/error.html index 4cfd1f9d3..b80c1b67d 100644 --- a/dart/flutter_parse_sdk/ParseResponse/error.html +++ b/dart/flutter_parse_sdk/ParseResponse/error.html @@ -101,19 +101,19 @@
                                        ParseResponse class
                                      210. count
                                      211. error
                                      212. -
                                      213. hashCode
                                      214. +
                                      215. hashCode
                                      216. result
                                      217. results
                                      218. -
                                      219. runtimeType
                                      220. +
                                      221. runtimeType
                                      222. statusCode
                                      223. success
                                      224. Methods
                                      225. -
                                      226. noSuchMethod
                                      227. -
                                      228. toString
                                      229. +
                                      230. noSuchMethod
                                      231. +
                                      232. toString
                                      233. Operators
                                      234. -
                                      235. operator ==
                                      236. +
                                      237. operator ==
                                      238. diff --git a/dart/flutter_parse_sdk/ParseResponse/result.html b/dart/flutter_parse_sdk/ParseResponse/result.html index 531aa2cdc..8d60826c9 100644 --- a/dart/flutter_parse_sdk/ParseResponse/result.html +++ b/dart/flutter_parse_sdk/ParseResponse/result.html @@ -106,19 +106,19 @@
                                        ParseResponse class
                                      239. count
                                      240. error
                                      241. -
                                      242. hashCode
                                      243. +
                                      244. hashCode
                                      245. result
                                      246. results
                                      247. -
                                      248. runtimeType
                                      249. +
                                      250. runtimeType
                                      251. statusCode
                                      252. success
                                      253. Methods
                                      254. -
                                      255. noSuchMethod
                                      256. -
                                      257. toString
                                      258. +
                                      259. noSuchMethod
                                      260. +
                                      261. toString
                                      262. Operators
                                      263. -
                                      264. operator ==
                                      265. +
                                      266. operator ==
                                      267. diff --git a/dart/flutter_parse_sdk/ParseResponse/results.html b/dart/flutter_parse_sdk/ParseResponse/results.html index 57acfe840..47b33a3f0 100644 --- a/dart/flutter_parse_sdk/ParseResponse/results.html +++ b/dart/flutter_parse_sdk/ParseResponse/results.html @@ -58,7 +58,7 @@

                                        results property
                                        - List? + List? results
                                        read / write
                                        @@ -105,19 +105,19 @@
                                        ParseResponse class
                                      268. count
                                      269. error
                                      270. -
                                      271. hashCode
                                      272. +
                                      273. hashCode
                                      274. result
                                      275. results
                                      276. -
                                      277. runtimeType
                                      278. +
                                      279. runtimeType
                                      280. statusCode
                                      281. success
                                      282. Methods
                                      283. -
                                      284. noSuchMethod
                                      285. -
                                      286. toString
                                      287. +
                                      288. noSuchMethod
                                      289. +
                                      290. toString
                                      291. Operators
                                      292. -
                                      293. operator ==
                                      294. +
                                      295. operator ==
                                      296. diff --git a/dart/flutter_parse_sdk/ParseResponse/statusCode.html b/dart/flutter_parse_sdk/ParseResponse/statusCode.html index e4311af8a..07a349d69 100644 --- a/dart/flutter_parse_sdk/ParseResponse/statusCode.html +++ b/dart/flutter_parse_sdk/ParseResponse/statusCode.html @@ -58,7 +58,7 @@

                                        statusCode property
                                        - int + int statusCode
                                        read / write
                                        @@ -101,19 +101,19 @@
                                        ParseResponse class
                                      297. count
                                      298. error
                                      299. -
                                      300. hashCode
                                      301. +
                                      302. hashCode
                                      303. result
                                      304. results
                                      305. -
                                      306. runtimeType
                                      307. +
                                      308. runtimeType
                                      309. statusCode
                                      310. success
                                      311. Methods
                                      312. -
                                      313. noSuchMethod
                                      314. -
                                      315. toString
                                      316. +
                                      317. noSuchMethod
                                      318. +
                                      319. toString
                                      320. Operators
                                      321. -
                                      322. operator ==
                                      323. +
                                      324. operator ==
                                      325. diff --git a/dart/flutter_parse_sdk/ParseResponse/success.html b/dart/flutter_parse_sdk/ParseResponse/success.html index 4a18d8e99..7d266c64e 100644 --- a/dart/flutter_parse_sdk/ParseResponse/success.html +++ b/dart/flutter_parse_sdk/ParseResponse/success.html @@ -58,7 +58,7 @@

                                        success property
                                        - bool + bool success
                                        read / write
                                        @@ -101,19 +101,19 @@
                                        ParseResponse class
                                      326. count
                                      327. error
                                      328. -
                                      329. hashCode
                                      330. +
                                      331. hashCode
                                      332. result
                                      333. results
                                      334. -
                                      335. runtimeType
                                      336. +
                                      337. runtimeType
                                      338. statusCode
                                      339. success
                                      340. Methods
                                      341. -
                                      342. noSuchMethod
                                      343. -
                                      344. toString
                                      345. +
                                      346. noSuchMethod
                                      347. +
                                      348. toString
                                      349. Operators
                                      350. -
                                      351. operator ==
                                      352. +
                                      353. operator ==
                                      354. diff --git a/dart/flutter_parse_sdk/ParseSession-class.html b/dart/flutter_parse_sdk/ParseSession-class.html index 74aafd95a..bdcbcc247 100644 --- a/dart/flutter_parse_sdk/ParseSession-class.html +++ b/dart/flutter_parse_sdk/ParseSession-class.html @@ -65,7 +65,7 @@

                                        ParseSession class
                                        Inheritance
                                        - containsKey(String key) - bool + containsKey(String key) + bool @@ -301,8 +301,8 @@

                                        Methods

                                        - containsValue(Object value) - bool + containsValue(Object value) + bool @@ -327,8 +327,8 @@

                                        Methods

                                        - create({bool allowCustomObjectId = false}) - Future<ParseResponse> + create({bool allowCustomObjectId = false}) + Future<ParseResponse> @@ -340,8 +340,8 @@

                                        Methods

                                        - delete<T extends ParseObject>({String? id, String? path}) - Future<ParseResponse> + delete<T extends ParseObject>({String? id, String? path}) + Future<ParseResponse> @@ -353,8 +353,8 @@

                                        Methods

                                        - distinct<T extends ParseObject>(String query) - Future<ParseResponse> + distinct<T extends ParseObject>(String query) + Future<ParseResponse> @@ -366,8 +366,8 @@

                                        Methods

                                        - fetch({List<String>? include}) - Future<ParseObject> + fetch({List<String>? include}) + Future<ParseObject> @@ -379,7 +379,7 @@

                                        Methods

                                        - fromJson(Map<String, dynamic> objectData) + fromJson(Map<String, dynamic> objectData) → dynamic @@ -392,7 +392,7 @@

                                        Methods

                                        - fromJsonForManualObject(Map<String, dynamic> objectData) + fromJsonForManualObject(Map<String, dynamic> objectData) → dynamic @@ -405,8 +405,8 @@

                                        Methods

                                        - fromPin(String objectId) - Future + fromPin(String objectId) + Future @@ -418,7 +418,7 @@

                                        Methods

                                        - get<T>(String key, {T? defaultValue}) + get<T>(String key, {T? defaultValue}) → T? @@ -445,7 +445,7 @@

                                        Methods

                                        getAll() - Future<ParseResponse> + Future<ParseResponse> @@ -458,7 +458,7 @@

                                        Methods

                                        getCurrentSessionFromServer() - Future<ParseResponse> + Future<ParseResponse> @@ -470,8 +470,8 @@

                                        Methods

                                        - getObject(String objectId, {List<String>? include}) - Future<ParseResponse> + getObject(String objectId, {List<String>? include}) + Future<ParseResponse> @@ -483,7 +483,7 @@

                                        Methods

                                        - getRelation<T extends ParseObject>(String key) + getRelation<T extends ParseObject>(String key) ParseRelation<T> @@ -496,8 +496,8 @@

                                        Methods

                                        - isDirty({String? key}) - bool + isDirty({String? key}) + bool @@ -509,7 +509,7 @@

                                        Methods

                                        - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -523,7 +523,7 @@

                                        Methods

                                        pin() - Future<bool> + Future<bool> @@ -535,8 +535,8 @@

                                        Methods

                                        - query<T extends ParseObject>(String query, {ProgressCallback? progressCallback}) - Future<ParseResponse> + query<T extends ParseObject>(String query, {ProgressCallback? progressCallback}) + Future<ParseResponse> @@ -548,7 +548,7 @@

                                        Methods

                                        - removeRelation(String key, List<ParseObject> objets) + removeRelation(String key, List<ParseObject> objets) → void @@ -562,7 +562,7 @@

                                        Methods

                                        save() - Future<ParseResponse> + Future<ParseResponse> @@ -574,8 +574,8 @@

                                        Methods

                                        - saveInStorage(String key) - Future<void> + saveInStorage(String key) + Future<void> @@ -587,7 +587,7 @@

                                        Methods

                                        - set<T>(String key, T value, {bool forceUpdate = true}) + set<T>(String key, T value, {bool forceUpdate = true}) → void @@ -613,7 +613,7 @@

                                        Methods

                                        - setAdd<T>(String key, T element) + setAdd<T>(String key, T element) → void @@ -626,7 +626,7 @@

                                        Methods

                                        - setAddAll(String key, List elements) + setAddAll(String key, List elements) → void @@ -640,7 +640,7 @@

                                        Methods

                                        - setAddAllUnique(String key, List elements) + setAddAllUnique(String key, List elements) → void @@ -655,7 +655,7 @@

                                        Methods

                                        - setAddUnique(String key, dynamic element) + setAddUnique(String key, dynamic element) → void @@ -670,7 +670,7 @@

                                        Methods

                                        - setDecrement(String key, num amount) + setDecrement(String key, num amount) → void @@ -683,7 +683,7 @@

                                        Methods

                                        - setIncrement(String key, num amount) + setIncrement(String key, num amount) → void @@ -696,7 +696,7 @@

                                        Methods

                                        - setRemove(String key, dynamic element) + setRemove(String key, dynamic element) → void @@ -710,22 +710,22 @@

                                        Methods

                                        - setRemoveAll(String key, List elements) + setRemoveAll(String key, List elements) → void
                                        - Removes all instances of the elements contained in a List from the + Removes all instances of the elements contained in a List from the array associated with a given key
                                        inherited
                                        - toJson({bool full = false, bool forApiRQ = false, bool allowCustomObjectId = false}) - Map<String, dynamic> + toJson({bool full = false, bool forApiRQ = false, bool allowCustomObjectId = false}) + Map<String, dynamic> @@ -738,7 +738,7 @@

                                        Methods

                                        toPointer() - Map<String, dynamic> + Map<String, dynamic> @@ -751,7 +751,7 @@

                                        Methods

                                        toString() - String + String @@ -763,8 +763,8 @@

                                        Methods

                                        - unpin({String? key}) - Future<bool> + unpin({String? key}) + Future<bool> @@ -776,8 +776,8 @@

                                        Methods

                                        - unset(String key, {bool offlineOnly = false}) - Future<ParseResponse> + unset(String key, {bool offlineOnly = false}) + Future<ParseResponse> @@ -790,7 +790,7 @@

                                        Methods

                                        update() - Future<ParseResponse> + Future<ParseResponse> @@ -810,8 +810,8 @@

                                        Methods

                                        Operators

                                        - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -823,7 +823,7 @@

                                        Operators

                                        - operator [](String key) + operator [](String key) → dynamic @@ -836,7 +836,7 @@

                                        Operators

                                        - operator []=(String key, dynamic value) + operator []=(String key, dynamic value) → void @@ -1051,12 +1051,12 @@
                                        flutter_parse_sdk library
                                      355. createdAt
                                      356. createdWith
                                      357. expiresAt
                                      358. -
                                      359. hashCode
                                      360. +
                                      361. hashCode
                                      362. installationId
                                      363. objectId
                                      364. parseClassName
                                      365. restricted
                                      366. -
                                      367. runtimeType
                                      368. +
                                      369. runtimeType
                                      370. sessionToken
                                      371. updatedAt
                                      372. user
                                      373. @@ -1082,7 +1082,7 @@
                                        flutter_parse_sdk library
                                      374. getObject
                                      375. getRelation
                                      376. isDirty
                                      377. -
                                      378. noSuchMethod
                                      379. +
                                      380. noSuchMethod
                                      381. pin
                                      382. query
                                      383. removeRelation
                                      384. @@ -1106,7 +1106,7 @@
                                        flutter_parse_sdk library
                                      385. update
                                      386. Operators
                                      387. -
                                      388. operator ==
                                      389. +
                                      390. operator ==
                                      391. operator []
                                      392. operator []=
                                      393. diff --git a/dart/flutter_parse_sdk/ParseSession/ParseSession.html b/dart/flutter_parse_sdk/ParseSession/ParseSession.html index 51b38ae53..60a2ac902 100644 --- a/dart/flutter_parse_sdk/ParseSession/ParseSession.html +++ b/dart/flutter_parse_sdk/ParseSession/ParseSession.html @@ -58,7 +58,7 @@

                                        ParseSession constructor
                                        - ParseSession(
                                        1. {bool? debug,
                                        2. + ParseSession(
                                          1. {bool? debug,
                                          2. ParseClient? client}
                                          )
                                        @@ -110,12 +110,12 @@

                                        ParseSession class
                                      394. createdAt
                                      395. createdWith
                                      396. expiresAt
                                      397. -
                                      398. hashCode
                                      399. +
                                      400. hashCode
                                      401. installationId
                                      402. objectId
                                      403. parseClassName
                                      404. restricted
                                      405. -
                                      406. runtimeType
                                      407. +
                                      408. runtimeType
                                      409. sessionToken
                                      410. updatedAt
                                      411. user
                                      412. @@ -141,7 +141,7 @@
                                        ParseSession class
                                      413. getObject
                                      414. getRelation
                                      415. isDirty
                                      416. -
                                      417. noSuchMethod
                                      418. +
                                      419. noSuchMethod
                                      420. pin
                                      421. query
                                      422. removeRelation
                                      423. @@ -165,7 +165,7 @@
                                        ParseSession class
                                      424. update
                                      425. Operators
                                      426. -
                                      427. operator ==
                                      428. +
                                      429. operator ==
                                      430. operator []
                                      431. operator []=
                                      432. diff --git a/dart/flutter_parse_sdk/ParseSession/clone.html b/dart/flutter_parse_sdk/ParseSession/clone.html index 7f23ec5d3..a396a280c 100644 --- a/dart/flutter_parse_sdk/ParseSession/clone.html +++ b/dart/flutter_parse_sdk/ParseSession/clone.html @@ -60,12 +60,12 @@

                                        clone method ParseSession -clone(
                                        1. Map<String, dynamic> map
                                        2. +clone(
                                          1. Map<String, dynamic> map
                                          )
                                          override
                                          @@ -114,12 +114,12 @@
                                          ParseSession class
                                        3. createdAt
                                        4. createdWith
                                        5. expiresAt
                                        6. -
                                        7. hashCode
                                        8. +
                                        9. hashCode
                                        10. installationId
                                        11. objectId
                                        12. parseClassName
                                        13. restricted
                                        14. -
                                        15. runtimeType
                                        16. +
                                        17. runtimeType
                                        18. sessionToken
                                        19. updatedAt
                                        20. user
                                        21. @@ -145,7 +145,7 @@
                                          ParseSession class
                                        22. getObject
                                        23. getRelation
                                        24. isDirty
                                        25. -
                                        26. noSuchMethod
                                        27. +
                                        28. noSuchMethod
                                        29. pin
                                        30. query
                                        31. removeRelation
                                        32. @@ -169,7 +169,7 @@
                                          ParseSession class
                                        33. update
                                        34. Operators
                                        35. -
                                        36. operator ==
                                        37. +
                                        38. operator ==
                                        39. operator []
                                        40. operator []=
                                        41. diff --git a/dart/flutter_parse_sdk/ParseSession/createdWith.html b/dart/flutter_parse_sdk/ParseSession/createdWith.html index 32c80be42..d5fe1752a 100644 --- a/dart/flutter_parse_sdk/ParseSession/createdWith.html +++ b/dart/flutter_parse_sdk/ParseSession/createdWith.html @@ -62,7 +62,7 @@

                                          createdWith property
                                          - Map<String, dynamic> + Map<String, dynamic> createdWith @@ -110,12 +110,12 @@
                                          ParseSession class
                                        42. createdAt
                                        43. createdWith
                                        44. expiresAt
                                        45. -
                                        46. hashCode
                                        47. +
                                        48. hashCode
                                        49. installationId
                                        50. objectId
                                        51. parseClassName
                                        52. restricted
                                        53. -
                                        54. runtimeType
                                        55. +
                                        56. runtimeType
                                        57. sessionToken
                                        58. updatedAt
                                        59. user
                                        60. @@ -141,7 +141,7 @@
                                          ParseSession class
                                        61. getObject
                                        62. getRelation
                                        63. isDirty
                                        64. -
                                        65. noSuchMethod
                                        66. +
                                        67. noSuchMethod
                                        68. pin
                                        69. query
                                        70. removeRelation
                                        71. @@ -165,7 +165,7 @@
                                          ParseSession class
                                        72. update
                                        73. Operators
                                        74. -
                                        75. operator ==
                                        76. +
                                        77. operator ==
                                        78. operator []
                                        79. operator []=
                                        80. diff --git a/dart/flutter_parse_sdk/ParseSession/expiresAt.html b/dart/flutter_parse_sdk/ParseSession/expiresAt.html index f4ec26c14..ed4a468f2 100644 --- a/dart/flutter_parse_sdk/ParseSession/expiresAt.html +++ b/dart/flutter_parse_sdk/ParseSession/expiresAt.html @@ -62,7 +62,7 @@

                                          expiresAt property
                                          - DateTime + DateTime expiresAt @@ -109,12 +109,12 @@
                                          ParseSession class
                                        81. createdAt
                                        82. createdWith
                                        83. expiresAt
                                        84. -
                                        85. hashCode
                                        86. +
                                        87. hashCode
                                        88. installationId
                                        89. objectId
                                        90. parseClassName
                                        91. restricted
                                        92. -
                                        93. runtimeType
                                        94. +
                                        95. runtimeType
                                        96. sessionToken
                                        97. updatedAt
                                        98. user
                                        99. @@ -140,7 +140,7 @@
                                          ParseSession class
                                        100. getObject
                                        101. getRelation
                                        102. isDirty
                                        103. -
                                        104. noSuchMethod
                                        105. +
                                        106. noSuchMethod
                                        107. pin
                                        108. query
                                        109. removeRelation
                                        110. @@ -164,7 +164,7 @@
                                          ParseSession class
                                        111. update
                                        112. Operators
                                        113. -
                                        114. operator ==
                                        115. +
                                        116. operator ==
                                        117. operator []
                                        118. operator []=
                                        119. diff --git a/dart/flutter_parse_sdk/ParseSession/getCurrentSessionFromServer.html b/dart/flutter_parse_sdk/ParseSession/getCurrentSessionFromServer.html index 0323a5f0f..aaa5ff301 100644 --- a/dart/flutter_parse_sdk/ParseSession/getCurrentSessionFromServer.html +++ b/dart/flutter_parse_sdk/ParseSession/getCurrentSessionFromServer.html @@ -59,7 +59,7 @@

                                          getCurrentSessionFromServer method
                                          -Future<ParseResponse> +Future<ParseResponse> getCurrentSessionFromServer() @@ -117,12 +117,12 @@
                                          ParseSession class
                                        120. createdAt
                                        121. createdWith
                                        122. expiresAt
                                        123. -
                                        124. hashCode
                                        125. +
                                        126. hashCode
                                        127. installationId
                                        128. objectId
                                        129. parseClassName
                                        130. restricted
                                        131. -
                                        132. runtimeType
                                        133. +
                                        134. runtimeType
                                        135. sessionToken
                                        136. updatedAt
                                        137. user
                                        138. @@ -148,7 +148,7 @@
                                          ParseSession class
                                        139. getObject
                                        140. getRelation
                                        141. isDirty
                                        142. -
                                        143. noSuchMethod
                                        144. +
                                        145. noSuchMethod
                                        146. pin
                                        147. query
                                        148. removeRelation
                                        149. @@ -172,7 +172,7 @@
                                          ParseSession class
                                        150. update
                                        151. Operators
                                        152. -
                                        153. operator ==
                                        154. +
                                        155. operator ==
                                        156. operator []
                                        157. operator []=
                                        158. diff --git a/dart/flutter_parse_sdk/ParseSession/installationId.html b/dart/flutter_parse_sdk/ParseSession/installationId.html index a2cd91a87..70ffaf8ce 100644 --- a/dart/flutter_parse_sdk/ParseSession/installationId.html +++ b/dart/flutter_parse_sdk/ParseSession/installationId.html @@ -62,7 +62,7 @@

                                          installationId property
                                          - String + String installationId @@ -85,7 +85,7 @@

                                          Implementation

                                          void - installationId=(String installationId) + installationId=(String installationId)
                                          @@ -131,12 +131,12 @@
                                          ParseSession class
                                        159. createdAt
                                        160. createdWith
                                        161. expiresAt
                                        162. -
                                        163. hashCode
                                        164. +
                                        165. hashCode
                                        166. installationId
                                        167. objectId
                                        168. parseClassName
                                        169. restricted
                                        170. -
                                        171. runtimeType
                                        172. +
                                        173. runtimeType
                                        174. sessionToken
                                        175. updatedAt
                                        176. user
                                        177. @@ -162,7 +162,7 @@
                                          ParseSession class
                                        178. getObject
                                        179. getRelation
                                        180. isDirty
                                        181. -
                                        182. noSuchMethod
                                        183. +
                                        184. noSuchMethod
                                        185. pin
                                        186. query
                                        187. removeRelation
                                        188. @@ -186,7 +186,7 @@
                                          ParseSession class
                                        189. update
                                        190. Operators
                                        191. -
                                        192. operator ==
                                        193. +
                                        194. operator ==
                                        195. operator []
                                        196. operator []=
                                        197. diff --git a/dart/flutter_parse_sdk/ParseSession/restricted.html b/dart/flutter_parse_sdk/ParseSession/restricted.html index e516f9feb..cda56b8c5 100644 --- a/dart/flutter_parse_sdk/ParseSession/restricted.html +++ b/dart/flutter_parse_sdk/ParseSession/restricted.html @@ -62,7 +62,7 @@

                                          restricted property
                                          - bool + bool restricted @@ -109,12 +109,12 @@
                                          ParseSession class
                                        198. createdAt
                                        199. createdWith
                                        200. expiresAt
                                        201. -
                                        202. hashCode
                                        203. +
                                        204. hashCode
                                        205. installationId
                                        206. objectId
                                        207. parseClassName
                                        208. restricted
                                        209. -
                                        210. runtimeType
                                        211. +
                                        212. runtimeType
                                        213. sessionToken
                                        214. updatedAt
                                        215. user
                                        216. @@ -140,7 +140,7 @@
                                          ParseSession class
                                        217. getObject
                                        218. getRelation
                                        219. isDirty
                                        220. -
                                        221. noSuchMethod
                                        222. +
                                        223. noSuchMethod
                                        224. pin
                                        225. query
                                        226. removeRelation
                                        227. @@ -164,7 +164,7 @@
                                          ParseSession class
                                        228. update
                                        229. Operators
                                        230. -
                                        231. operator ==
                                        232. +
                                        233. operator ==
                                        234. operator []
                                        235. operator []=
                                        236. diff --git a/dart/flutter_parse_sdk/ParseSession/sessionToken.html b/dart/flutter_parse_sdk/ParseSession/sessionToken.html index 1e387128c..f9a199681 100644 --- a/dart/flutter_parse_sdk/ParseSession/sessionToken.html +++ b/dart/flutter_parse_sdk/ParseSession/sessionToken.html @@ -62,7 +62,7 @@

                                          sessionToken property
                                          - String + String sessionToken @@ -109,12 +109,12 @@
                                          ParseSession class
                                        237. createdAt
                                        238. createdWith
                                        239. expiresAt
                                        240. -
                                        241. hashCode
                                        242. +
                                        243. hashCode
                                        244. installationId
                                        245. objectId
                                        246. parseClassName
                                        247. restricted
                                        248. -
                                        249. runtimeType
                                        250. +
                                        251. runtimeType
                                        252. sessionToken
                                        253. updatedAt
                                        254. user
                                        255. @@ -140,7 +140,7 @@
                                          ParseSession class
                                        256. getObject
                                        257. getRelation
                                        258. isDirty
                                        259. -
                                        260. noSuchMethod
                                        261. +
                                        262. noSuchMethod
                                        263. pin
                                        264. query
                                        265. removeRelation
                                        266. @@ -164,7 +164,7 @@
                                          ParseSession class
                                        267. update
                                        268. Operators
                                        269. -
                                        270. operator ==
                                        271. +
                                        272. operator ==
                                        273. operator []
                                        274. operator []=
                                        275. diff --git a/dart/flutter_parse_sdk/ParseSession/user.html b/dart/flutter_parse_sdk/ParseSession/user.html index af1348ca3..acc004ab4 100644 --- a/dart/flutter_parse_sdk/ParseSession/user.html +++ b/dart/flutter_parse_sdk/ParseSession/user.html @@ -109,12 +109,12 @@
                                          ParseSession class
                                        276. createdAt
                                        277. createdWith
                                        278. expiresAt
                                        279. -
                                        280. hashCode
                                        281. +
                                        282. hashCode
                                        283. installationId
                                        284. objectId
                                        285. parseClassName
                                        286. restricted
                                        287. -
                                        288. runtimeType
                                        289. +
                                        290. runtimeType
                                        291. sessionToken
                                        292. updatedAt
                                        293. user
                                        294. @@ -140,7 +140,7 @@
                                          ParseSession class
                                        295. getObject
                                        296. getRelation
                                        297. isDirty
                                        298. -
                                        299. noSuchMethod
                                        300. +
                                        301. noSuchMethod
                                        302. pin
                                        303. query
                                        304. removeRelation
                                        305. @@ -164,7 +164,7 @@
                                          ParseSession class
                                        306. update
                                        307. Operators
                                        308. -
                                        309. operator ==
                                        310. +
                                        311. operator ==
                                        312. operator []
                                        313. operator []=
                                        314. diff --git a/dart/flutter_parse_sdk/ParseSubClassHandler-class.html b/dart/flutter_parse_sdk/ParseSubClassHandler-class.html index 2f3d53f59..1f3524f1c 100644 --- a/dart/flutter_parse_sdk/ParseSubClassHandler-class.html +++ b/dart/flutter_parse_sdk/ParseSubClassHandler-class.html @@ -66,7 +66,7 @@

                                          Constructors

                                          - ParseSubClassHandler({Map<String, ParseObjectConstructor>? registeredSubClassMap, ParseUserConstructor? parseUserConstructor, ParseFileConstructor? parseFileConstructor}) + ParseSubClassHandler({Map<String, ParseObjectConstructor>? registeredSubClassMap, ParseUserConstructor? parseUserConstructor, ParseFileConstructor? parseFileConstructor})
                                          @@ -79,8 +79,8 @@

                                          Properties

                                          - hashCode - int + hashCode + int
                                          @@ -90,8 +90,8 @@

                                          Properties

                                          - runtimeType - Type + runtimeType + Type
                                          @@ -110,7 +110,7 @@

                                          Properties

                                          Methods

                                          - createFile({String? name, String? url}) + createFile({String? name, String? url}) ParseFileBase @@ -123,7 +123,7 @@

                                          Methods

                                          - createObject(String classname) + createObject(String classname) ParseObject @@ -136,7 +136,7 @@

                                          Methods

                                          - createParseUser(String? username, String? password, String? emailAddress, {String? sessionToken, bool? debug, ParseClient? client}) + createParseUser(String? username, String? password, String? emailAddress, {String? sessionToken, bool? debug, ParseClient? client}) ParseUser @@ -149,7 +149,7 @@

                                          Methods

                                          - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -175,7 +175,7 @@

                                          Methods

                                          - registerSubClass(String className, ParseObjectConstructor objectConstructor) + registerSubClass(String className, ParseObjectConstructor objectConstructor) → void @@ -201,8 +201,8 @@

                                          Methods

                                          - toString() - String + toString() + String @@ -222,8 +222,8 @@

                                          Methods

                                          Operators

                                          - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -242,7 +242,7 @@

                                          Operators

                                          Static Methods

                                          - defaultParseFileConstructor({String? name, String? url}) + defaultParseFileConstructor({String? name, String? url}) ParseFileBase @@ -452,21 +452,21 @@
                                          flutter_parse_sdk library
                                        315. Properties
                                        316. -
                                        317. hashCode
                                        318. -
                                        319. runtimeType
                                        320. +
                                        321. hashCode
                                        322. +
                                        323. runtimeType
                                        324. Methods
                                        325. createFile
                                        326. createObject
                                        327. createParseUser
                                        328. -
                                        329. noSuchMethod
                                        330. +
                                        331. noSuchMethod
                                        332. registerFileSubClass
                                        333. registerSubClass
                                        334. registerUserSubClass
                                        335. -
                                        336. toString
                                        337. +
                                        338. toString
                                        339. Operators
                                        340. -
                                        341. operator ==
                                        342. +
                                        343. operator ==
                                        344. diff --git a/dart/flutter_parse_sdk/ParseSubClassHandler/ParseSubClassHandler.html b/dart/flutter_parse_sdk/ParseSubClassHandler/ParseSubClassHandler.html index d51efa73c..9ae504002 100644 --- a/dart/flutter_parse_sdk/ParseSubClassHandler/ParseSubClassHandler.html +++ b/dart/flutter_parse_sdk/ParseSubClassHandler/ParseSubClassHandler.html @@ -58,7 +58,7 @@

                                          ParseSubClassHandler constructor
                                          - ParseSubClassHandler(
                                          1. {Map<String, ParseObjectConstructor>? registeredSubClassMap,
                                          2. + ParseSubClassHandler(
                                            1. {Map<String, ParseObjectConstructor>? registeredSubClassMap,
                                            2. ParseUserConstructor? parseUserConstructor,
                                            3. ParseFileConstructor? parseFileConstructor}
                                            ) @@ -110,21 +110,21 @@
                                            ParseSubClassHandler class
                                          3. Properties
                                          4. -
                                          5. hashCode
                                          6. -
                                          7. runtimeType
                                          8. +
                                          9. hashCode
                                          10. +
                                          11. runtimeType
                                          12. Methods
                                          13. createFile
                                          14. createObject
                                          15. createParseUser
                                          16. -
                                          17. noSuchMethod
                                          18. +
                                          19. noSuchMethod
                                          20. registerFileSubClass
                                          21. registerSubClass
                                          22. registerUserSubClass
                                          23. -
                                          24. toString
                                          25. +
                                          26. toString
                                          27. Operators
                                          28. -
                                          29. operator ==
                                          30. +
                                          31. operator ==
                                          32. diff --git a/dart/flutter_parse_sdk/ParseSubClassHandler/createFile.html b/dart/flutter_parse_sdk/ParseSubClassHandler/createFile.html index e430d6629..46dd4a991 100644 --- a/dart/flutter_parse_sdk/ParseSubClassHandler/createFile.html +++ b/dart/flutter_parse_sdk/ParseSubClassHandler/createFile.html @@ -60,8 +60,8 @@

                                            createFile method ParseFileBase -createFile(
                                            1. {String? name,
                                            2. -
                                            3. String? url}
                                            4. +createFile(
                                              1. {String? name,
                                              2. +
                                              3. String? url}
                                              ) @@ -105,21 +105,21 @@
                                              ParseSubClassHandler class
                                            5. Properties
                                            6. -
                                            7. hashCode
                                            8. -
                                            9. runtimeType
                                            10. +
                                            11. hashCode
                                            12. +
                                            13. runtimeType
                                            14. Methods
                                            15. createFile
                                            16. createObject
                                            17. createParseUser
                                            18. -
                                            19. noSuchMethod
                                            20. +
                                            21. noSuchMethod
                                            22. registerFileSubClass
                                            23. registerSubClass
                                            24. registerUserSubClass
                                            25. -
                                            26. toString
                                            27. +
                                            28. toString
                                            29. Operators
                                            30. -
                                            31. operator ==
                                            32. +
                                            33. operator ==
                                            34. diff --git a/dart/flutter_parse_sdk/ParseSubClassHandler/createObject.html b/dart/flutter_parse_sdk/ParseSubClassHandler/createObject.html index 3afb3944c..441f4e995 100644 --- a/dart/flutter_parse_sdk/ParseSubClassHandler/createObject.html +++ b/dart/flutter_parse_sdk/ParseSubClassHandler/createObject.html @@ -60,7 +60,7 @@

                                              createObject method ParseObject -createObject(
                                              1. String classname
                                              2. +createObject(
                                                1. String classname
                                                ) @@ -111,21 +111,21 @@
                                                ParseSubClassHandler class
                                              3. Properties
                                              4. -
                                              5. hashCode
                                              6. -
                                              7. runtimeType
                                              8. +
                                              9. hashCode
                                              10. +
                                              11. runtimeType
                                              12. Methods
                                              13. createFile
                                              14. createObject
                                              15. createParseUser
                                              16. -
                                              17. noSuchMethod
                                              18. +
                                              19. noSuchMethod
                                              20. registerFileSubClass
                                              21. registerSubClass
                                              22. registerUserSubClass
                                              23. -
                                              24. toString
                                              25. +
                                              26. toString
                                              27. Operators
                                              28. -
                                              29. operator ==
                                              30. +
                                              31. operator ==
                                              32. diff --git a/dart/flutter_parse_sdk/ParseSubClassHandler/createParseUser.html b/dart/flutter_parse_sdk/ParseSubClassHandler/createParseUser.html index 1878e0795..a81927137 100644 --- a/dart/flutter_parse_sdk/ParseSubClassHandler/createParseUser.html +++ b/dart/flutter_parse_sdk/ParseSubClassHandler/createParseUser.html @@ -60,11 +60,11 @@

                                                createParseUser method ParseUser -createParseUser(
                                                1. String? username,
                                                2. -
                                                3. String? password,
                                                4. -
                                                5. String? emailAddress,
                                                6. -
                                                7. {String? sessionToken,
                                                8. -
                                                9. bool? debug,
                                                10. +createParseUser(
                                                  1. String? username,
                                                  2. +
                                                  3. String? password,
                                                  4. +
                                                  5. String? emailAddress,
                                                  6. +
                                                  7. {String? sessionToken,
                                                  8. +
                                                  9. bool? debug,
                                                  10. ParseClient? client}
                                                  ) @@ -116,21 +116,21 @@
                                                  ParseSubClassHandler class
                                                11. Properties
                                                12. -
                                                13. hashCode
                                                14. -
                                                15. runtimeType
                                                16. +
                                                17. hashCode
                                                18. +
                                                19. runtimeType
                                                20. Methods
                                                21. createFile
                                                22. createObject
                                                23. createParseUser
                                                24. -
                                                25. noSuchMethod
                                                26. +
                                                27. noSuchMethod
                                                28. registerFileSubClass
                                                29. registerSubClass
                                                30. registerUserSubClass
                                                31. -
                                                32. toString
                                                33. +
                                                34. toString
                                                35. Operators
                                                36. -
                                                37. operator ==
                                                38. +
                                                39. operator ==
                                                40. diff --git a/dart/flutter_parse_sdk/ParseSubClassHandler/defaultParseFileConstructor.html b/dart/flutter_parse_sdk/ParseSubClassHandler/defaultParseFileConstructor.html index a2d375287..1faa9acf9 100644 --- a/dart/flutter_parse_sdk/ParseSubClassHandler/defaultParseFileConstructor.html +++ b/dart/flutter_parse_sdk/ParseSubClassHandler/defaultParseFileConstructor.html @@ -60,8 +60,8 @@

                                                  defaultParseFileConstructor static method ParseFileBase -defaultParseFileConstructor(
                                                  1. {String? name,
                                                  2. -
                                                  3. String? url}
                                                  4. +defaultParseFileConstructor(
                                                    1. {String? name,
                                                    2. +
                                                    3. String? url}
                                                    ) @@ -111,21 +111,21 @@
                                                    ParseSubClassHandler class
                                                  5. Properties
                                                  6. -
                                                  7. hashCode
                                                  8. -
                                                  9. runtimeType
                                                  10. +
                                                  11. hashCode
                                                  12. +
                                                  13. runtimeType
                                                  14. Methods
                                                  15. createFile
                                                  16. createObject
                                                  17. createParseUser
                                                  18. -
                                                  19. noSuchMethod
                                                  20. +
                                                  21. noSuchMethod
                                                  22. registerFileSubClass
                                                  23. registerSubClass
                                                  24. registerUserSubClass
                                                  25. -
                                                  26. toString
                                                  27. +
                                                  28. toString
                                                  29. Operators
                                                  30. -
                                                  31. operator ==
                                                  32. +
                                                  33. operator ==
                                                  34. diff --git a/dart/flutter_parse_sdk/ParseSubClassHandler/registerFileSubClass.html b/dart/flutter_parse_sdk/ParseSubClassHandler/registerFileSubClass.html index 84a849ce1..f7536583a 100644 --- a/dart/flutter_parse_sdk/ParseSubClassHandler/registerFileSubClass.html +++ b/dart/flutter_parse_sdk/ParseSubClassHandler/registerFileSubClass.html @@ -105,21 +105,21 @@
                                                    ParseSubClassHandler class
                                                  35. Properties
                                                  36. -
                                                  37. hashCode
                                                  38. -
                                                  39. runtimeType
                                                  40. +
                                                  41. hashCode
                                                  42. +
                                                  43. runtimeType
                                                  44. Methods
                                                  45. createFile
                                                  46. createObject
                                                  47. createParseUser
                                                  48. -
                                                  49. noSuchMethod
                                                  50. +
                                                  51. noSuchMethod
                                                  52. registerFileSubClass
                                                  53. registerSubClass
                                                  54. registerUserSubClass
                                                  55. -
                                                  56. toString
                                                  57. +
                                                  58. toString
                                                  59. Operators
                                                  60. -
                                                  61. operator ==
                                                  62. +
                                                  63. operator ==
                                                  64. diff --git a/dart/flutter_parse_sdk/ParseSubClassHandler/registerSubClass.html b/dart/flutter_parse_sdk/ParseSubClassHandler/registerSubClass.html index a8ebf6b32..a20854319 100644 --- a/dart/flutter_parse_sdk/ParseSubClassHandler/registerSubClass.html +++ b/dart/flutter_parse_sdk/ParseSubClassHandler/registerSubClass.html @@ -60,7 +60,7 @@

                                                    registerSubClass method void -registerSubClass(
                                                    1. String className,
                                                    2. +registerSubClass(
                                                      1. String className,
                                                      2. ParseObjectConstructor objectConstructor
                                                      ) @@ -112,21 +112,21 @@
                                                      ParseSubClassHandler class
                                                    3. Properties
                                                    4. -
                                                    5. hashCode
                                                    6. -
                                                    7. runtimeType
                                                    8. +
                                                    9. hashCode
                                                    10. +
                                                    11. runtimeType
                                                    12. Methods
                                                    13. createFile
                                                    14. createObject
                                                    15. createParseUser
                                                    16. -
                                                    17. noSuchMethod
                                                    18. +
                                                    19. noSuchMethod
                                                    20. registerFileSubClass
                                                    21. registerSubClass
                                                    22. registerUserSubClass
                                                    23. -
                                                    24. toString
                                                    25. +
                                                    26. toString
                                                    27. Operators
                                                    28. -
                                                    29. operator ==
                                                    30. +
                                                    31. operator ==
                                                    32. diff --git a/dart/flutter_parse_sdk/ParseSubClassHandler/registerUserSubClass.html b/dart/flutter_parse_sdk/ParseSubClassHandler/registerUserSubClass.html index fd15ab960..3b62082b1 100644 --- a/dart/flutter_parse_sdk/ParseSubClassHandler/registerUserSubClass.html +++ b/dart/flutter_parse_sdk/ParseSubClassHandler/registerUserSubClass.html @@ -105,21 +105,21 @@
                                                      ParseSubClassHandler class
                                                    33. Properties
                                                    34. -
                                                    35. hashCode
                                                    36. -
                                                    37. runtimeType
                                                    38. +
                                                    39. hashCode
                                                    40. +
                                                    41. runtimeType
                                                    42. Methods
                                                    43. createFile
                                                    44. createObject
                                                    45. createParseUser
                                                    46. -
                                                    47. noSuchMethod
                                                    48. +
                                                    49. noSuchMethod
                                                    50. registerFileSubClass
                                                    51. registerSubClass
                                                    52. registerUserSubClass
                                                    53. -
                                                    54. toString
                                                    55. +
                                                    56. toString
                                                    57. Operators
                                                    58. -
                                                    59. operator ==
                                                    60. +
                                                    61. operator ==
                                                    62. diff --git a/dart/flutter_parse_sdk/ParseUser-class.html b/dart/flutter_parse_sdk/ParseUser-class.html index e9755d38e..d2c82999d 100644 --- a/dart/flutter_parse_sdk/ParseUser-class.html +++ b/dart/flutter_parse_sdk/ParseUser-class.html @@ -65,7 +65,7 @@

                                                      ParseUser class
                                                      Inheritance
                                                      - containsValue(Object value) - bool + containsValue(Object value) + bool @@ -350,8 +350,8 @@

                                                      Methods

                                                      - create({bool allowCustomObjectId = false}) - Future<ParseResponse> + create({bool allowCustomObjectId = false}) + Future<ParseResponse> @@ -363,8 +363,8 @@

                                                      Methods

                                                      - delete<T extends ParseObject>({String? id, String? path}) - Future<ParseResponse> + delete<T extends ParseObject>({String? id, String? path}) + Future<ParseResponse> @@ -377,7 +377,7 @@

                                                      Methods

                                                      deleteLocalUserData() - Future<void> + Future<void> @@ -390,7 +390,7 @@

                                                      Methods

                                                      destroy() - Future<ParseResponse?> + Future<ParseResponse?> @@ -402,8 +402,8 @@

                                                      Methods

                                                      - distinct<T extends ParseObject>(String query) - Future<ParseResponse> + distinct<T extends ParseObject>(String query) + Future<ParseResponse> @@ -415,8 +415,8 @@

                                                      Methods

                                                      - fetch({List<String>? include}) - Future<ParseObject> + fetch({List<String>? include}) + Future<ParseObject> @@ -441,7 +441,7 @@

                                                      Methods

                                                      - fromJson(Map<String, dynamic> objectData) + fromJson(Map<String, dynamic> objectData) → dynamic @@ -454,7 +454,7 @@

                                                      Methods

                                                      - fromJsonForManualObject(Map<String, dynamic> objectData) + fromJsonForManualObject(Map<String, dynamic> objectData) → dynamic @@ -467,8 +467,8 @@

                                                      Methods

                                                      - fromPin(String objectId) - Future + fromPin(String objectId) + Future @@ -480,7 +480,7 @@

                                                      Methods

                                                      - get<T>(String key, {T? defaultValue}) + get<T>(String key, {T? defaultValue}) → T? @@ -507,7 +507,7 @@

                                                      Methods

                                                      getAll() - Future<ParseResponse> + Future<ParseResponse> @@ -519,8 +519,8 @@

                                                      Methods

                                                      - getObject(String objectId, {List<String>? include}) - Future<ParseResponse> + getObject(String objectId, {List<String>? include}) + Future<ParseResponse> @@ -532,7 +532,7 @@

                                                      Methods

                                                      - getRelation<T extends ParseObject>(String key) + getRelation<T extends ParseObject>(String key) ParseRelation<T> @@ -545,8 +545,8 @@

                                                      Methods

                                                      - getUpdatedUser({bool? debug, ParseClient? client}) - Future<ParseResponse> + getUpdatedUser({bool? debug, ParseClient? client}) + Future<ParseResponse> @@ -558,8 +558,8 @@

                                                      Methods

                                                      - isDirty({String? key}) - bool + isDirty({String? key}) + bool @@ -571,8 +571,8 @@

                                                      Methods

                                                      - login({bool doNotSendInstallationID = false}) - Future<ParseResponse> + login({bool doNotSendInstallationID = false}) + Future<ParseResponse> @@ -584,8 +584,8 @@

                                                      Methods

                                                      - loginAnonymous({bool doNotSendInstallationID = false}) - Future<ParseResponse> + loginAnonymous({bool doNotSendInstallationID = false}) + Future<ParseResponse> @@ -599,8 +599,8 @@

                                                      Methods

                                                      - logout({bool deleteLocalUserData = true}) - Future<ParseResponse> + logout({bool deleteLocalUserData = true}) + Future<ParseResponse> @@ -614,7 +614,7 @@

                                                      Methods

                                                      - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -628,7 +628,7 @@

                                                      Methods

                                                      pin() - Future<bool> + Future<bool> @@ -640,8 +640,8 @@

                                                      Methods

                                                      - query<T extends ParseObject>(String query, {ProgressCallback? progressCallback}) - Future<ParseResponse> + query<T extends ParseObject>(String query, {ProgressCallback? progressCallback}) + Future<ParseResponse> @@ -653,7 +653,7 @@

                                                      Methods

                                                      - removeRelation(String key, List<ParseObject> objets) + removeRelation(String key, List<ParseObject> objets) → void @@ -667,7 +667,7 @@

                                                      Methods

                                                      requestPasswordReset() - Future<ParseResponse> + Future<ParseResponse> @@ -680,7 +680,7 @@

                                                      Methods

                                                      save() - Future<ParseResponse> + Future<ParseResponse> @@ -692,8 +692,8 @@

                                                      Methods

                                                      - saveInStorage(String key) - Future<void> + saveInStorage(String key) + Future<void> @@ -705,7 +705,7 @@

                                                      Methods

                                                      - set<T>(String key, T value, {bool forceUpdate = true}) + set<T>(String key, T value, {bool forceUpdate = true}) → void @@ -731,7 +731,7 @@

                                                      Methods

                                                      - setAdd<T>(String key, T element) + setAdd<T>(String key, T element) → void @@ -744,7 +744,7 @@

                                                      Methods

                                                      - setAddAll(String key, List elements) + setAddAll(String key, List elements) → void @@ -758,7 +758,7 @@

                                                      Methods

                                                      - setAddAllUnique(String key, List elements) + setAddAllUnique(String key, List elements) → void @@ -773,7 +773,7 @@

                                                      Methods

                                                      - setAddUnique(String key, dynamic element) + setAddUnique(String key, dynamic element) → void @@ -788,7 +788,7 @@

                                                      Methods

                                                      - setDecrement(String key, num amount) + setDecrement(String key, num amount) → void @@ -801,7 +801,7 @@

                                                      Methods

                                                      - setIncrement(String key, num amount) + setIncrement(String key, num amount) → void @@ -814,7 +814,7 @@

                                                      Methods

                                                      - setRemove(String key, dynamic element) + setRemove(String key, dynamic element) → void @@ -828,22 +828,22 @@

                                                      Methods

                                                      - setRemoveAll(String key, List elements) + setRemoveAll(String key, List elements) → void
                                                      - Removes all instances of the elements contained in a List from the + Removes all instances of the elements contained in a List from the array associated with a given key
                                                      inherited
                                                      - signUp({bool allowWithoutEmail = false, bool doNotSendInstallationID = false}) - Future<ParseResponse> + signUp({bool allowWithoutEmail = false, bool doNotSendInstallationID = false}) + Future<ParseResponse> @@ -855,8 +855,8 @@

                                                      Methods

                                                      - toJson({bool full = false, bool forApiRQ = false, bool allowCustomObjectId = false}) - Map<String, dynamic> + toJson({bool full = false, bool forApiRQ = false, bool allowCustomObjectId = false}) + Map<String, dynamic> @@ -869,7 +869,7 @@

                                                      Methods

                                                      toPointer() - Map<String, dynamic> + Map<String, dynamic> @@ -882,7 +882,7 @@

                                                      Methods

                                                      toString() - String + String @@ -894,8 +894,8 @@

                                                      Methods

                                                      - unpin({String? key}) - Future<bool> + unpin({String? key}) + Future<bool> @@ -907,8 +907,8 @@

                                                      Methods

                                                      - unset(String key, {bool offlineOnly = false}) - Future<ParseResponse> + unset(String key, {bool offlineOnly = false}) + Future<ParseResponse> @@ -921,7 +921,7 @@

                                                      Methods

                                                      update() - Future<ParseResponse> + Future<ParseResponse> @@ -934,7 +934,7 @@

                                                      Methods

                                                      verificationEmailRequest() - Future<ParseResponse> + Future<ParseResponse> @@ -954,8 +954,8 @@

                                                      Methods

                                                      Operators

                                                      - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -967,7 +967,7 @@

                                                      Operators

                                                      - operator [](String key) + operator [](String key) → dynamic @@ -980,7 +980,7 @@

                                                      Operators

                                                      - operator []=(String key, dynamic value) + operator []=(String key, dynamic value) → void @@ -1000,8 +1000,8 @@

                                                      Operators

                                                      Static Methods

                                                      - all({bool? debug, ParseClient? client}) - Future<ParseResponse> + all({bool? debug, ParseClient? client}) + Future<ParseResponse> @@ -1013,7 +1013,7 @@

                                                      Static Methods

                                                      - createUser([String? username, String? password, String? emailAddress]) + createUser([String? username, String? password, String? emailAddress]) ParseUser @@ -1027,7 +1027,7 @@

                                                      Static Methods

                                                      currentUser({ParseCloneable? customUserObject}) - Future + Future @@ -1039,8 +1039,8 @@

                                                      Static Methods

                                                      - getCurrentUserFromServer(String token, {bool? debug, ParseClient? client}) - Future<ParseResponse?> + getCurrentUserFromServer(String token, {bool? debug, ParseClient? client}) + Future<ParseResponse?> @@ -1052,8 +1052,8 @@

                                                      Static Methods

                                                      - loginWith(String provider, Object authData, {bool doNotSendInstallationID = false, String? username, String? password, String? email}) - Future<ParseResponse> + loginWith(String provider, Object authData, {bool doNotSendInstallationID = false, String? username, String? password, String? email}) + Future<ParseResponse> @@ -1076,7 +1076,7 @@

                                                      Constants

                                                      keyEmailAddress - → const String + → const String
                                                      @@ -1091,7 +1091,7 @@

                                                      Constants

                                                      keyEmailVerified - → const String + → const String
                                                      @@ -1106,7 +1106,7 @@

                                                      Constants

                                                      keyUsername - → const String + → const String
                                                      @@ -1121,7 +1121,7 @@

                                                      Constants

                                                      path - → const String + → const String
                                                      @@ -1337,11 +1337,11 @@
                                                      flutter_parse_sdk library
                                                    63. createdAt
                                                    64. emailAddress
                                                    65. emailVerified
                                                    66. -
                                                    67. hashCode
                                                    68. +
                                                    69. hashCode
                                                    70. objectId
                                                    71. parseClassName
                                                    72. password
                                                    73. -
                                                    74. runtimeType
                                                    75. +
                                                    76. runtimeType
                                                    77. sessionToken
                                                    78. updatedAt
                                                    79. username
                                                    80. @@ -1373,7 +1373,7 @@
                                                      flutter_parse_sdk library
                                                    81. login
                                                    82. loginAnonymous
                                                    83. logout
                                                    84. -
                                                    85. noSuchMethod
                                                    86. +
                                                    87. noSuchMethod
                                                    88. pin
                                                    89. query
                                                    90. removeRelation
                                                    91. @@ -1400,7 +1400,7 @@
                                                      flutter_parse_sdk library
                                                    92. verificationEmailRequest
                                                    93. Operators
                                                    94. -
                                                    95. operator ==
                                                    96. +
                                                    97. operator ==
                                                    98. operator []
                                                    99. operator []=
                                                    100. diff --git a/dart/flutter_parse_sdk/ParseUser/ParseUser.clone.html b/dart/flutter_parse_sdk/ParseUser/ParseUser.clone.html index 620e9345e..ed5afdc9f 100644 --- a/dart/flutter_parse_sdk/ParseUser/ParseUser.clone.html +++ b/dart/flutter_parse_sdk/ParseUser/ParseUser.clone.html @@ -58,7 +58,7 @@

                                                      ParseUser.clone constructor
                                                      - ParseUser.clone(
                                                      1. Map<String, dynamic> map
                                                      2. + ParseUser.clone(
                                                        1. Map<String, dynamic> map
                                                        )
                                                      @@ -107,11 +107,11 @@

                                                      ParseUser class
                                                    101. createdAt
                                                    102. emailAddress
                                                    103. emailVerified
                                                    104. -
                                                    105. hashCode
                                                    106. +
                                                    107. hashCode
                                                    108. objectId
                                                    109. parseClassName
                                                    110. password
                                                    111. -
                                                    112. runtimeType
                                                    113. +
                                                    114. runtimeType
                                                    115. sessionToken
                                                    116. updatedAt
                                                    117. username
                                                    118. @@ -143,7 +143,7 @@
                                                      ParseUser class
                                                    119. login
                                                    120. loginAnonymous
                                                    121. logout
                                                    122. -
                                                    123. noSuchMethod
                                                    124. +
                                                    125. noSuchMethod
                                                    126. pin
                                                    127. query
                                                    128. removeRelation
                                                    129. @@ -170,7 +170,7 @@
                                                      ParseUser class
                                                    130. verificationEmailRequest
                                                    131. Operators
                                                    132. -
                                                    133. operator ==
                                                    134. +
                                                    135. operator ==
                                                    136. operator []
                                                    137. operator []=
                                                    138. diff --git a/dart/flutter_parse_sdk/ParseUser/ParseUser.forQuery.html b/dart/flutter_parse_sdk/ParseUser/ParseUser.forQuery.html index 8b46d2ce3..824630bd6 100644 --- a/dart/flutter_parse_sdk/ParseUser/ParseUser.forQuery.html +++ b/dart/flutter_parse_sdk/ParseUser/ParseUser.forQuery.html @@ -105,11 +105,11 @@
                                                      ParseUser class
                                                    139. createdAt
                                                    140. emailAddress
                                                    141. emailVerified
                                                    142. -
                                                    143. hashCode
                                                    144. +
                                                    145. hashCode
                                                    146. objectId
                                                    147. parseClassName
                                                    148. password
                                                    149. -
                                                    150. runtimeType
                                                    151. +
                                                    152. runtimeType
                                                    153. sessionToken
                                                    154. updatedAt
                                                    155. username
                                                    156. @@ -141,7 +141,7 @@
                                                      ParseUser class
                                                    157. login
                                                    158. loginAnonymous
                                                    159. logout
                                                    160. -
                                                    161. noSuchMethod
                                                    162. +
                                                    163. noSuchMethod
                                                    164. pin
                                                    165. query
                                                    166. removeRelation
                                                    167. @@ -168,7 +168,7 @@
                                                      ParseUser class
                                                    168. verificationEmailRequest
                                                    169. Operators
                                                    170. -
                                                    171. operator ==
                                                    172. +
                                                    173. operator ==
                                                    174. operator []
                                                    175. operator []=
                                                    176. diff --git a/dart/flutter_parse_sdk/ParseUser/ParseUser.html b/dart/flutter_parse_sdk/ParseUser/ParseUser.html index 9d8dccfd5..122cf4674 100644 --- a/dart/flutter_parse_sdk/ParseUser/ParseUser.html +++ b/dart/flutter_parse_sdk/ParseUser/ParseUser.html @@ -58,11 +58,11 @@

                                                      ParseUser constructor
                                                      - ParseUser(
                                                      1. String? username,
                                                      2. -
                                                      3. String? password,
                                                      4. -
                                                      5. String? emailAddress,
                                                      6. -
                                                      7. {String? sessionToken,
                                                      8. -
                                                      9. bool? debug,
                                                      10. + ParseUser(
                                                        1. String? username,
                                                        2. +
                                                        3. String? password,
                                                        4. +
                                                        5. String? emailAddress,
                                                        6. +
                                                        7. {String? sessionToken,
                                                        8. +
                                                        9. bool? debug,
                                                        10. ParseClient? client}
                                                        )
                                                      @@ -70,10 +70,10 @@

                                                      ParseUser constructor

                                                      Creates an instance of ParseUser

                                                      -

                                                      Users can set whether debug should be set on this class with a bool, +

                                                      Users can set whether debug should be set on this class with a bool, they can also create their own custom version of ParseHttpClient

                                                      Creates a new user locally

                                                      -

                                                      Requires String username, String password. String email address +

                                                      Requires String username, String password. String email address is required as well to create a full new user object on ParseServer. Only username and password is required to login

                                                      @@ -137,11 +137,11 @@

                                                      ParseUser class
                                                    177. createdAt
                                                    178. emailAddress
                                                    179. emailVerified
                                                    180. -
                                                    181. hashCode
                                                    182. +
                                                    183. hashCode
                                                    184. objectId
                                                    185. parseClassName
                                                    186. password
                                                    187. -
                                                    188. runtimeType
                                                    189. +
                                                    190. runtimeType
                                                    191. sessionToken
                                                    192. updatedAt
                                                    193. username
                                                    194. @@ -173,7 +173,7 @@
                                                      ParseUser class
                                                    195. login
                                                    196. loginAnonymous
                                                    197. logout
                                                    198. -
                                                    199. noSuchMethod
                                                    200. +
                                                    201. noSuchMethod
                                                    202. pin
                                                    203. query
                                                    204. removeRelation
                                                    205. @@ -200,7 +200,7 @@
                                                      ParseUser class
                                                    206. verificationEmailRequest
                                                    207. Operators
                                                    208. -
                                                    209. operator ==
                                                    210. +
                                                    211. operator ==
                                                    212. operator []
                                                    213. operator []=
                                                    214. diff --git a/dart/flutter_parse_sdk/ParseUser/acl.html b/dart/flutter_parse_sdk/ParseUser/acl.html index 585978896..546d7667d 100644 --- a/dart/flutter_parse_sdk/ParseUser/acl.html +++ b/dart/flutter_parse_sdk/ParseUser/acl.html @@ -62,7 +62,7 @@

                                                      acl property
                                                      - Map<String, dynamic> + Map<String, dynamic> acl @@ -86,7 +86,7 @@

                                                      Implementation

                                                      void - acl=(Map<String, dynamic> acl) + acl=(Map<String, dynamic> acl)
                                                      @@ -136,11 +136,11 @@
                                                      ParseUser class
                                                    215. createdAt
                                                    216. emailAddress
                                                    217. emailVerified
                                                    218. -
                                                    219. hashCode
                                                    220. +
                                                    221. hashCode
                                                    222. objectId
                                                    223. parseClassName
                                                    224. password
                                                    225. -
                                                    226. runtimeType
                                                    227. +
                                                    228. runtimeType
                                                    229. sessionToken
                                                    230. updatedAt
                                                    231. username
                                                    232. @@ -172,7 +172,7 @@
                                                      ParseUser class
                                                    233. login
                                                    234. loginAnonymous
                                                    235. logout
                                                    236. -
                                                    237. noSuchMethod
                                                    238. +
                                                    239. noSuchMethod
                                                    240. pin
                                                    241. query
                                                    242. removeRelation
                                                    243. @@ -199,7 +199,7 @@
                                                      ParseUser class
                                                    244. verificationEmailRequest
                                                    245. Operators
                                                    246. -
                                                    247. operator ==
                                                    248. +
                                                    249. operator ==
                                                    250. operator []
                                                    251. operator []=
                                                    252. diff --git a/dart/flutter_parse_sdk/ParseUser/all.html b/dart/flutter_parse_sdk/ParseUser/all.html index 6a37cad0c..254b758ee 100644 --- a/dart/flutter_parse_sdk/ParseUser/all.html +++ b/dart/flutter_parse_sdk/ParseUser/all.html @@ -59,8 +59,8 @@

                                                      all static method
                                                      -Future<ParseResponse> -all(
                                                      1. {bool? debug,
                                                      2. +Future<ParseResponse> +all(
                                                        1. {bool? debug,
                                                        2. ParseClient? client}
                                                        ) @@ -133,11 +133,11 @@
                                                        ParseUser class
                                                      3. createdAt
                                                      4. emailAddress
                                                      5. emailVerified
                                                      6. -
                                                      7. hashCode
                                                      8. +
                                                      9. hashCode
                                                      10. objectId
                                                      11. parseClassName
                                                      12. password
                                                      13. -
                                                      14. runtimeType
                                                      15. +
                                                      16. runtimeType
                                                      17. sessionToken
                                                      18. updatedAt
                                                      19. username
                                                      20. @@ -169,7 +169,7 @@
                                                        ParseUser class
                                                      21. login
                                                      22. loginAnonymous
                                                      23. logout
                                                      24. -
                                                      25. noSuchMethod
                                                      26. +
                                                      27. noSuchMethod
                                                      28. pin
                                                      29. query
                                                      30. removeRelation
                                                      31. @@ -196,7 +196,7 @@
                                                        ParseUser class
                                                      32. verificationEmailRequest
                                                      33. Operators
                                                      34. -
                                                      35. operator ==
                                                      36. +
                                                      37. operator ==
                                                      38. operator []
                                                      39. operator []=
                                                      40. diff --git a/dart/flutter_parse_sdk/ParseUser/authData.html b/dart/flutter_parse_sdk/ParseUser/authData.html index 7d25c5ed6..75fe07945 100644 --- a/dart/flutter_parse_sdk/ParseUser/authData.html +++ b/dart/flutter_parse_sdk/ParseUser/authData.html @@ -62,7 +62,7 @@

                                                        authData property
                                                        - Map<String, dynamic>? + Map<String, dynamic>? authData @@ -86,7 +86,7 @@

                                                        Implementation

                                                        void - authData=(Map<String, dynamic>? authData) + authData=(Map<String, dynamic>? authData)
                                                        @@ -136,11 +136,11 @@
                                                        ParseUser class
                                                      41. createdAt
                                                      42. emailAddress
                                                      43. emailVerified
                                                      44. -
                                                      45. hashCode
                                                      46. +
                                                      47. hashCode
                                                      48. objectId
                                                      49. parseClassName
                                                      50. password
                                                      51. -
                                                      52. runtimeType
                                                      53. +
                                                      54. runtimeType
                                                      55. sessionToken
                                                      56. updatedAt
                                                      57. username
                                                      58. @@ -172,7 +172,7 @@
                                                        ParseUser class
                                                      59. login
                                                      60. loginAnonymous
                                                      61. logout
                                                      62. -
                                                      63. noSuchMethod
                                                      64. +
                                                      65. noSuchMethod
                                                      66. pin
                                                      67. query
                                                      68. removeRelation
                                                      69. @@ -199,7 +199,7 @@
                                                        ParseUser class
                                                      70. verificationEmailRequest
                                                      71. Operators
                                                      72. -
                                                      73. operator ==
                                                      74. +
                                                      75. operator ==
                                                      76. operator []
                                                      77. operator []=
                                                      78. diff --git a/dart/flutter_parse_sdk/ParseUser/clone.html b/dart/flutter_parse_sdk/ParseUser/clone.html index 9f623b98c..8a89c8748 100644 --- a/dart/flutter_parse_sdk/ParseUser/clone.html +++ b/dart/flutter_parse_sdk/ParseUser/clone.html @@ -60,12 +60,12 @@

                                                        clone method dynamic -clone(
                                                        1. Map<String, dynamic> map
                                                        2. +clone(
                                                          1. Map<String, dynamic> map
                                                          )
                                                          override
                                                          @@ -117,11 +117,11 @@
                                                          ParseUser class
                                                        3. createdAt
                                                        4. emailAddress
                                                        5. emailVerified
                                                        6. -
                                                        7. hashCode
                                                        8. +
                                                        9. hashCode
                                                        10. objectId
                                                        11. parseClassName
                                                        12. password
                                                        13. -
                                                        14. runtimeType
                                                        15. +
                                                        16. runtimeType
                                                        17. sessionToken
                                                        18. updatedAt
                                                        19. username
                                                        20. @@ -153,7 +153,7 @@
                                                          ParseUser class
                                                        21. login
                                                        22. loginAnonymous
                                                        23. logout
                                                        24. -
                                                        25. noSuchMethod
                                                        26. +
                                                        27. noSuchMethod
                                                        28. pin
                                                        29. query
                                                        30. removeRelation
                                                        31. @@ -180,7 +180,7 @@
                                                          ParseUser class
                                                        32. verificationEmailRequest
                                                        33. Operators
                                                        34. -
                                                        35. operator ==
                                                        36. +
                                                        37. operator ==
                                                        38. operator []
                                                        39. operator []=
                                                        40. diff --git a/dart/flutter_parse_sdk/ParseUser/createUser.html b/dart/flutter_parse_sdk/ParseUser/createUser.html index 3aad92a87..d25c61aa2 100644 --- a/dart/flutter_parse_sdk/ParseUser/createUser.html +++ b/dart/flutter_parse_sdk/ParseUser/createUser.html @@ -60,9 +60,9 @@

                                                          createUser static method ParseUser -createUser(
                                                          1. [String? username,
                                                          2. -
                                                          3. String? password,
                                                          4. -
                                                          5. String? emailAddress]
                                                          6. +createUser(
                                                            1. [String? username,
                                                            2. +
                                                            3. String? password,
                                                            4. +
                                                            5. String? emailAddress]
                                                            ) @@ -116,11 +116,11 @@
                                                            ParseUser class
                                                          7. createdAt
                                                          8. emailAddress
                                                          9. emailVerified
                                                          10. -
                                                          11. hashCode
                                                          12. +
                                                          13. hashCode
                                                          14. objectId
                                                          15. parseClassName
                                                          16. password
                                                          17. -
                                                          18. runtimeType
                                                          19. +
                                                          20. runtimeType
                                                          21. sessionToken
                                                          22. updatedAt
                                                          23. username
                                                          24. @@ -152,7 +152,7 @@
                                                            ParseUser class
                                                          25. login
                                                          26. loginAnonymous
                                                          27. logout
                                                          28. -
                                                          29. noSuchMethod
                                                          30. +
                                                          31. noSuchMethod
                                                          32. pin
                                                          33. query
                                                          34. removeRelation
                                                          35. @@ -179,7 +179,7 @@
                                                            ParseUser class
                                                          36. verificationEmailRequest
                                                          37. Operators
                                                          38. -
                                                          39. operator ==
                                                          40. +
                                                          41. operator ==
                                                          42. operator []
                                                          43. operator []=
                                                          44. diff --git a/dart/flutter_parse_sdk/ParseUser/currentUser.html b/dart/flutter_parse_sdk/ParseUser/currentUser.html index 97c1e4a57..67b89dd2b 100644 --- a/dart/flutter_parse_sdk/ParseUser/currentUser.html +++ b/dart/flutter_parse_sdk/ParseUser/currentUser.html @@ -59,7 +59,7 @@

                                                            currentUser static method
                                                            -Future +Future currentUser(
                                                            1. {ParseCloneable? customUserObject}
                                                            ) @@ -69,7 +69,7 @@

                                                            currentUser static method

                                                            Gets the current user from storage

                                                            -

                                                            Current user is stored locally, but in case of a server update bool +

                                                            Current user is stored locally, but in case of a server update bool fromServer can be called and an updated version of the User object will be returned

                                                            @@ -122,11 +122,11 @@

                                                            ParseUser class
                                                          45. createdAt
                                                          46. emailAddress
                                                          47. emailVerified
                                                          48. -
                                                          49. hashCode
                                                          50. +
                                                          51. hashCode
                                                          52. objectId
                                                          53. parseClassName
                                                          54. password
                                                          55. -
                                                          56. runtimeType
                                                          57. +
                                                          58. runtimeType
                                                          59. sessionToken
                                                          60. updatedAt
                                                          61. username
                                                          62. @@ -158,7 +158,7 @@
                                                            ParseUser class
                                                          63. login
                                                          64. loginAnonymous
                                                          65. logout
                                                          66. -
                                                          67. noSuchMethod
                                                          68. +
                                                          69. noSuchMethod
                                                          70. pin
                                                          71. query
                                                          72. removeRelation
                                                          73. @@ -185,7 +185,7 @@
                                                            ParseUser class
                                                          74. verificationEmailRequest
                                                          75. Operators
                                                          76. -
                                                          77. operator ==
                                                          78. +
                                                          79. operator ==
                                                          80. operator []
                                                          81. operator []=
                                                          82. diff --git a/dart/flutter_parse_sdk/ParseUser/deleteLocalUserData.html b/dart/flutter_parse_sdk/ParseUser/deleteLocalUserData.html index 9c1a4b4c8..7630d4ec9 100644 --- a/dart/flutter_parse_sdk/ParseUser/deleteLocalUserData.html +++ b/dart/flutter_parse_sdk/ParseUser/deleteLocalUserData.html @@ -59,7 +59,7 @@

                                                            deleteLocalUserData method
                                                            -Future<void> +Future<void> deleteLocalUserData() @@ -115,11 +115,11 @@
                                                            ParseUser class
                                                          83. createdAt
                                                          84. emailAddress
                                                          85. emailVerified
                                                          86. -
                                                          87. hashCode
                                                          88. +
                                                          89. hashCode
                                                          90. objectId
                                                          91. parseClassName
                                                          92. password
                                                          93. -
                                                          94. runtimeType
                                                          95. +
                                                          96. runtimeType
                                                          97. sessionToken
                                                          98. updatedAt
                                                          99. username
                                                          100. @@ -151,7 +151,7 @@
                                                            ParseUser class
                                                          101. login
                                                          102. loginAnonymous
                                                          103. logout
                                                          104. -
                                                          105. noSuchMethod
                                                          106. +
                                                          107. noSuchMethod
                                                          108. pin
                                                          109. query
                                                          110. removeRelation
                                                          111. @@ -178,7 +178,7 @@
                                                            ParseUser class
                                                          112. verificationEmailRequest
                                                          113. Operators
                                                          114. -
                                                          115. operator ==
                                                          116. +
                                                          117. operator ==
                                                          118. operator []
                                                          119. operator []=
                                                          120. diff --git a/dart/flutter_parse_sdk/ParseUser/destroy.html b/dart/flutter_parse_sdk/ParseUser/destroy.html index 802293f1d..b94063df7 100644 --- a/dart/flutter_parse_sdk/ParseUser/destroy.html +++ b/dart/flutter_parse_sdk/ParseUser/destroy.html @@ -59,7 +59,7 @@

                                                            destroy method
                                                            -Future<ParseResponse?> +Future<ParseResponse?> destroy() @@ -126,11 +126,11 @@
                                                            ParseUser class
                                                          121. createdAt
                                                          122. emailAddress
                                                          123. emailVerified
                                                          124. -
                                                          125. hashCode
                                                          126. +
                                                          127. hashCode
                                                          128. objectId
                                                          129. parseClassName
                                                          130. password
                                                          131. -
                                                          132. runtimeType
                                                          133. +
                                                          134. runtimeType
                                                          135. sessionToken
                                                          136. updatedAt
                                                          137. username
                                                          138. @@ -162,7 +162,7 @@
                                                            ParseUser class
                                                          139. login
                                                          140. loginAnonymous
                                                          141. logout
                                                          142. -
                                                          143. noSuchMethod
                                                          144. +
                                                          145. noSuchMethod
                                                          146. pin
                                                          147. query
                                                          148. removeRelation
                                                          149. @@ -189,7 +189,7 @@
                                                            ParseUser class
                                                          150. verificationEmailRequest
                                                          151. Operators
                                                          152. -
                                                          153. operator ==
                                                          154. +
                                                          155. operator ==
                                                          156. operator []
                                                          157. operator []=
                                                          158. diff --git a/dart/flutter_parse_sdk/ParseUser/emailAddress.html b/dart/flutter_parse_sdk/ParseUser/emailAddress.html index 0ae33dd70..cdc878e24 100644 --- a/dart/flutter_parse_sdk/ParseUser/emailAddress.html +++ b/dart/flutter_parse_sdk/ParseUser/emailAddress.html @@ -62,7 +62,7 @@

                                                            emailAddress property
                                                            - String? + String? emailAddress @@ -85,7 +85,7 @@

                                                            Implementation

                                                            void - emailAddress=(String? emailAddress) + emailAddress=(String? emailAddress)
                                                            @@ -135,11 +135,11 @@
                                                            ParseUser class
                                                          159. createdAt
                                                          160. emailAddress
                                                          161. emailVerified
                                                          162. -
                                                          163. hashCode
                                                          164. +
                                                          165. hashCode
                                                          166. objectId
                                                          167. parseClassName
                                                          168. password
                                                          169. -
                                                          170. runtimeType
                                                          171. +
                                                          172. runtimeType
                                                          173. sessionToken
                                                          174. updatedAt
                                                          175. username
                                                          176. @@ -171,7 +171,7 @@
                                                            ParseUser class
                                                          177. login
                                                          178. loginAnonymous
                                                          179. logout
                                                          180. -
                                                          181. noSuchMethod
                                                          182. +
                                                          183. noSuchMethod
                                                          184. pin
                                                          185. query
                                                          186. removeRelation
                                                          187. @@ -198,7 +198,7 @@
                                                            ParseUser class
                                                          188. verificationEmailRequest
                                                          189. Operators
                                                          190. -
                                                          191. operator ==
                                                          192. +
                                                          193. operator ==
                                                          194. operator []
                                                          195. operator []=
                                                          196. diff --git a/dart/flutter_parse_sdk/ParseUser/emailVerified.html b/dart/flutter_parse_sdk/ParseUser/emailVerified.html index 94dc0b49e..67abbcead 100644 --- a/dart/flutter_parse_sdk/ParseUser/emailVerified.html +++ b/dart/flutter_parse_sdk/ParseUser/emailVerified.html @@ -62,7 +62,7 @@

                                                            emailVerified property
                                                            - bool? + bool? emailVerified @@ -85,7 +85,7 @@

                                                            Implementation

                                                            void - emailVerified=(bool? emailVerified) + emailVerified=(bool? emailVerified)
                                                            @@ -135,11 +135,11 @@
                                                            ParseUser class
                                                          197. createdAt
                                                          198. emailAddress
                                                          199. emailVerified
                                                          200. -
                                                          201. hashCode
                                                          202. +
                                                          203. hashCode
                                                          204. objectId
                                                          205. parseClassName
                                                          206. password
                                                          207. -
                                                          208. runtimeType
                                                          209. +
                                                          210. runtimeType
                                                          211. sessionToken
                                                          212. updatedAt
                                                          213. username
                                                          214. @@ -171,7 +171,7 @@
                                                            ParseUser class
                                                          215. login
                                                          216. loginAnonymous
                                                          217. logout
                                                          218. -
                                                          219. noSuchMethod
                                                          220. +
                                                          221. noSuchMethod
                                                          222. pin
                                                          223. query
                                                          224. removeRelation
                                                          225. @@ -198,7 +198,7 @@
                                                            ParseUser class
                                                          226. verificationEmailRequest
                                                          227. Operators
                                                          228. -
                                                          229. operator ==
                                                          230. +
                                                          231. operator ==
                                                          232. operator []
                                                          233. operator []=
                                                          234. diff --git a/dart/flutter_parse_sdk/ParseUser/forgetLocalSession.html b/dart/flutter_parse_sdk/ParseUser/forgetLocalSession.html index fecae1e05..4e4ee22e3 100644 --- a/dart/flutter_parse_sdk/ParseUser/forgetLocalSession.html +++ b/dart/flutter_parse_sdk/ParseUser/forgetLocalSession.html @@ -111,11 +111,11 @@
                                                            ParseUser class
                                                          235. createdAt
                                                          236. emailAddress
                                                          237. emailVerified
                                                          238. -
                                                          239. hashCode
                                                          240. +
                                                          241. hashCode
                                                          242. objectId
                                                          243. parseClassName
                                                          244. password
                                                          245. -
                                                          246. runtimeType
                                                          247. +
                                                          248. runtimeType
                                                          249. sessionToken
                                                          250. updatedAt
                                                          251. username
                                                          252. @@ -147,7 +147,7 @@
                                                            ParseUser class
                                                          253. login
                                                          254. loginAnonymous
                                                          255. logout
                                                          256. -
                                                          257. noSuchMethod
                                                          258. +
                                                          259. noSuchMethod
                                                          260. pin
                                                          261. query
                                                          262. removeRelation
                                                          263. @@ -174,7 +174,7 @@
                                                            ParseUser class
                                                          264. verificationEmailRequest
                                                          265. Operators
                                                          266. -
                                                          267. operator ==
                                                          268. +
                                                          269. operator ==
                                                          270. operator []
                                                          271. operator []=
                                                          272. diff --git a/dart/flutter_parse_sdk/ParseUser/getCurrentUserFromServer.html b/dart/flutter_parse_sdk/ParseUser/getCurrentUserFromServer.html index d75656c9e..3a7f65b98 100644 --- a/dart/flutter_parse_sdk/ParseUser/getCurrentUserFromServer.html +++ b/dart/flutter_parse_sdk/ParseUser/getCurrentUserFromServer.html @@ -59,9 +59,9 @@

                                                            getCurrentUserFromServer static method
                                                            -Future<ParseResponse?> -getCurrentUserFromServer(
                                                            1. String token,
                                                            2. -
                                                            3. {bool? debug,
                                                            4. +Future<ParseResponse?> +getCurrentUserFromServer(
                                                              1. String token,
                                                              2. +
                                                              3. {bool? debug,
                                                              4. ParseClient? client}
                                                              ) @@ -71,7 +71,7 @@

                                                              getCurrentUserFromServer static method

                                                              Gets the current user from the server

                                                              -

                                                              Current user is stored locally, but in case of a server update bool +

                                                              Current user is stored locally, but in case of a server update bool fromServer can be called and an updated version of the User object will be returned.

                                                              NOTE: If using custom ParseUserObject create instance and user getUpdatedUser

                                                              @@ -124,11 +124,11 @@
                                                              ParseUser class
                                                            5. createdAt
                                                            6. emailAddress
                                                            7. emailVerified
                                                            8. -
                                                            9. hashCode
                                                            10. +
                                                            11. hashCode
                                                            12. objectId
                                                            13. parseClassName
                                                            14. password
                                                            15. -
                                                            16. runtimeType
                                                            17. +
                                                            18. runtimeType
                                                            19. sessionToken
                                                            20. updatedAt
                                                            21. username
                                                            22. @@ -160,7 +160,7 @@
                                                              ParseUser class
                                                            23. login
                                                            24. loginAnonymous
                                                            25. logout
                                                            26. -
                                                            27. noSuchMethod
                                                            28. +
                                                            29. noSuchMethod
                                                            30. pin
                                                            31. query
                                                            32. removeRelation
                                                            33. @@ -187,7 +187,7 @@
                                                              ParseUser class
                                                            34. verificationEmailRequest
                                                            35. Operators
                                                            36. -
                                                            37. operator ==
                                                            38. +
                                                            39. operator ==
                                                            40. operator []
                                                            41. operator []=
                                                            42. diff --git a/dart/flutter_parse_sdk/ParseUser/getUpdatedUser.html b/dart/flutter_parse_sdk/ParseUser/getUpdatedUser.html index d0501b4b7..6d4a1180b 100644 --- a/dart/flutter_parse_sdk/ParseUser/getUpdatedUser.html +++ b/dart/flutter_parse_sdk/ParseUser/getUpdatedUser.html @@ -59,8 +59,8 @@

                                                              getUpdatedUser method
                                                              -Future<ParseResponse> -getUpdatedUser(
                                                              1. {bool? debug,
                                                              2. +Future<ParseResponse> +getUpdatedUser(
                                                                1. {bool? debug,
                                                                2. ParseClient? client}
                                                                ) @@ -147,11 +147,11 @@
                                                                ParseUser class
                                                              3. createdAt
                                                              4. emailAddress
                                                              5. emailVerified
                                                              6. -
                                                              7. hashCode
                                                              8. +
                                                              9. hashCode
                                                              10. objectId
                                                              11. parseClassName
                                                              12. password
                                                              13. -
                                                              14. runtimeType
                                                              15. +
                                                              16. runtimeType
                                                              17. sessionToken
                                                              18. updatedAt
                                                              19. username
                                                              20. @@ -183,7 +183,7 @@
                                                                ParseUser class
                                                              21. login
                                                              22. loginAnonymous
                                                              23. logout
                                                              24. -
                                                              25. noSuchMethod
                                                              26. +
                                                              27. noSuchMethod
                                                              28. pin
                                                              29. query
                                                              30. removeRelation
                                                              31. @@ -210,7 +210,7 @@
                                                                ParseUser class
                                                              32. verificationEmailRequest
                                                              33. Operators
                                                              34. -
                                                              35. operator ==
                                                              36. +
                                                              37. operator ==
                                                              38. operator []
                                                              39. operator []=
                                                              40. diff --git a/dart/flutter_parse_sdk/ParseUser/keyEmailAddress-constant.html b/dart/flutter_parse_sdk/ParseUser/keyEmailAddress-constant.html index 3f98d1ed8..e5eb15c55 100644 --- a/dart/flutter_parse_sdk/ParseUser/keyEmailAddress-constant.html +++ b/dart/flutter_parse_sdk/ParseUser/keyEmailAddress-constant.html @@ -58,7 +58,7 @@

                                                                keyEmailAddress constant
                                                                - String + String const keyEmailAddress @@ -106,11 +106,11 @@
                                                                ParseUser class
                                                              41. createdAt
                                                              42. emailAddress
                                                              43. emailVerified
                                                              44. -
                                                              45. hashCode
                                                              46. +
                                                              47. hashCode
                                                              48. objectId
                                                              49. parseClassName
                                                              50. password
                                                              51. -
                                                              52. runtimeType
                                                              53. +
                                                              54. runtimeType
                                                              55. sessionToken
                                                              56. updatedAt
                                                              57. username
                                                              58. @@ -142,7 +142,7 @@
                                                                ParseUser class
                                                              59. login
                                                              60. loginAnonymous
                                                              61. logout
                                                              62. -
                                                              63. noSuchMethod
                                                              64. +
                                                              65. noSuchMethod
                                                              66. pin
                                                              67. query
                                                              68. removeRelation
                                                              69. @@ -169,7 +169,7 @@
                                                                ParseUser class
                                                              70. verificationEmailRequest
                                                              71. Operators
                                                              72. -
                                                              73. operator ==
                                                              74. +
                                                              75. operator ==
                                                              76. operator []
                                                              77. operator []=
                                                              78. diff --git a/dart/flutter_parse_sdk/ParseUser/keyEmailVerified-constant.html b/dart/flutter_parse_sdk/ParseUser/keyEmailVerified-constant.html index 2e5d1add1..f6342d0da 100644 --- a/dart/flutter_parse_sdk/ParseUser/keyEmailVerified-constant.html +++ b/dart/flutter_parse_sdk/ParseUser/keyEmailVerified-constant.html @@ -58,7 +58,7 @@

                                                                keyEmailVerified constant
                                                                - String + String const keyEmailVerified @@ -106,11 +106,11 @@
                                                                ParseUser class
                                                              79. createdAt
                                                              80. emailAddress
                                                              81. emailVerified
                                                              82. -
                                                              83. hashCode
                                                              84. +
                                                              85. hashCode
                                                              86. objectId
                                                              87. parseClassName
                                                              88. password
                                                              89. -
                                                              90. runtimeType
                                                              91. +
                                                              92. runtimeType
                                                              93. sessionToken
                                                              94. updatedAt
                                                              95. username
                                                              96. @@ -142,7 +142,7 @@
                                                                ParseUser class
                                                              97. login
                                                              98. loginAnonymous
                                                              99. logout
                                                              100. -
                                                              101. noSuchMethod
                                                              102. +
                                                              103. noSuchMethod
                                                              104. pin
                                                              105. query
                                                              106. removeRelation
                                                              107. @@ -169,7 +169,7 @@
                                                                ParseUser class
                                                              108. verificationEmailRequest
                                                              109. Operators
                                                              110. -
                                                              111. operator ==
                                                              112. +
                                                              113. operator ==
                                                              114. operator []
                                                              115. operator []=
                                                              116. diff --git a/dart/flutter_parse_sdk/ParseUser/keyUsername-constant.html b/dart/flutter_parse_sdk/ParseUser/keyUsername-constant.html index 109db81d3..1219b341e 100644 --- a/dart/flutter_parse_sdk/ParseUser/keyUsername-constant.html +++ b/dart/flutter_parse_sdk/ParseUser/keyUsername-constant.html @@ -58,7 +58,7 @@

                                                                keyUsername constant
                                                                - String + String const keyUsername @@ -106,11 +106,11 @@
                                                                ParseUser class
                                                              117. createdAt
                                                              118. emailAddress
                                                              119. emailVerified
                                                              120. -
                                                              121. hashCode
                                                              122. +
                                                              123. hashCode
                                                              124. objectId
                                                              125. parseClassName
                                                              126. password
                                                              127. -
                                                              128. runtimeType
                                                              129. +
                                                              130. runtimeType
                                                              131. sessionToken
                                                              132. updatedAt
                                                              133. username
                                                              134. @@ -142,7 +142,7 @@
                                                                ParseUser class
                                                              135. login
                                                              136. loginAnonymous
                                                              137. logout
                                                              138. -
                                                              139. noSuchMethod
                                                              140. +
                                                              141. noSuchMethod
                                                              142. pin
                                                              143. query
                                                              144. removeRelation
                                                              145. @@ -169,7 +169,7 @@
                                                                ParseUser class
                                                              146. verificationEmailRequest
                                                              147. Operators
                                                              148. -
                                                              149. operator ==
                                                              150. +
                                                              151. operator ==
                                                              152. operator []
                                                              153. operator []=
                                                              154. diff --git a/dart/flutter_parse_sdk/ParseUser/login.html b/dart/flutter_parse_sdk/ParseUser/login.html index 7ce4d0dd4..dc65587db 100644 --- a/dart/flutter_parse_sdk/ParseUser/login.html +++ b/dart/flutter_parse_sdk/ParseUser/login.html @@ -59,8 +59,8 @@

                                                                login method
                                                                -Future<ParseResponse> -login(
                                                                1. {bool doNotSendInstallationID = false}
                                                                2. +Future<ParseResponse> +login(
                                                                  1. {bool doNotSendInstallationID = false}
                                                                  ) @@ -143,11 +143,11 @@
                                                                  ParseUser class
                                                                3. createdAt
                                                                4. emailAddress
                                                                5. emailVerified
                                                                6. -
                                                                7. hashCode
                                                                8. +
                                                                9. hashCode
                                                                10. objectId
                                                                11. parseClassName
                                                                12. password
                                                                13. -
                                                                14. runtimeType
                                                                15. +
                                                                16. runtimeType
                                                                17. sessionToken
                                                                18. updatedAt
                                                                19. username
                                                                20. @@ -179,7 +179,7 @@
                                                                  ParseUser class
                                                                21. login
                                                                22. loginAnonymous
                                                                23. logout
                                                                24. -
                                                                25. noSuchMethod
                                                                26. +
                                                                27. noSuchMethod
                                                                28. pin
                                                                29. query
                                                                30. removeRelation
                                                                31. @@ -206,7 +206,7 @@
                                                                  ParseUser class
                                                                32. verificationEmailRequest
                                                                33. Operators
                                                                34. -
                                                                35. operator ==
                                                                36. +
                                                                37. operator ==
                                                                38. operator []
                                                                39. operator []=
                                                                40. diff --git a/dart/flutter_parse_sdk/ParseUser/loginAnonymous.html b/dart/flutter_parse_sdk/ParseUser/loginAnonymous.html index 7ae5dadb7..c52cadd53 100644 --- a/dart/flutter_parse_sdk/ParseUser/loginAnonymous.html +++ b/dart/flutter_parse_sdk/ParseUser/loginAnonymous.html @@ -59,8 +59,8 @@

                                                                  loginAnonymous method
                                                                  -Future<ParseResponse> -loginAnonymous(
                                                                  1. {bool doNotSendInstallationID = false}
                                                                  2. +Future<ParseResponse> +loginAnonymous(
                                                                    1. {bool doNotSendInstallationID = false}
                                                                    ) @@ -143,11 +143,11 @@
                                                                    ParseUser class
                                                                  3. createdAt
                                                                  4. emailAddress
                                                                  5. emailVerified
                                                                  6. -
                                                                  7. hashCode
                                                                  8. +
                                                                  9. hashCode
                                                                  10. objectId
                                                                  11. parseClassName
                                                                  12. password
                                                                  13. -
                                                                  14. runtimeType
                                                                  15. +
                                                                  16. runtimeType
                                                                  17. sessionToken
                                                                  18. updatedAt
                                                                  19. username
                                                                  20. @@ -179,7 +179,7 @@
                                                                    ParseUser class
                                                                  21. login
                                                                  22. loginAnonymous
                                                                  23. logout
                                                                  24. -
                                                                  25. noSuchMethod
                                                                  26. +
                                                                  27. noSuchMethod
                                                                  28. pin
                                                                  29. query
                                                                  30. removeRelation
                                                                  31. @@ -206,7 +206,7 @@
                                                                    ParseUser class
                                                                  32. verificationEmailRequest
                                                                  33. Operators
                                                                  34. -
                                                                  35. operator ==
                                                                  36. +
                                                                  37. operator ==
                                                                  38. operator []
                                                                  39. operator []=
                                                                  40. diff --git a/dart/flutter_parse_sdk/ParseUser/loginWith.html b/dart/flutter_parse_sdk/ParseUser/loginWith.html index 361f26cf1..3433891c6 100644 --- a/dart/flutter_parse_sdk/ParseUser/loginWith.html +++ b/dart/flutter_parse_sdk/ParseUser/loginWith.html @@ -59,13 +59,13 @@

                                                                    loginWith static method
                                                                    -Future<ParseResponse> -loginWith(
                                                                    1. String provider,
                                                                    2. -
                                                                    3. Object authData,
                                                                    4. -
                                                                    5. {bool doNotSendInstallationID = false,
                                                                    6. -
                                                                    7. String? username,
                                                                    8. -
                                                                    9. String? password,
                                                                    10. -
                                                                    11. String? email}
                                                                    12. +Future<ParseResponse> +loginWith(
                                                                      1. String provider,
                                                                      2. +
                                                                      3. Object authData,
                                                                      4. +
                                                                      5. {bool doNotSendInstallationID = false,
                                                                      6. +
                                                                      7. String? username,
                                                                      8. +
                                                                      9. String? password,
                                                                      10. +
                                                                      11. String? email}
                                                                      ) @@ -129,11 +129,11 @@
                                                                      ParseUser class
                                                                    13. createdAt
                                                                    14. emailAddress
                                                                    15. emailVerified
                                                                    16. -
                                                                    17. hashCode
                                                                    18. +
                                                                    19. hashCode
                                                                    20. objectId
                                                                    21. parseClassName
                                                                    22. password
                                                                    23. -
                                                                    24. runtimeType
                                                                    25. +
                                                                    26. runtimeType
                                                                    27. sessionToken
                                                                    28. updatedAt
                                                                    29. username
                                                                    30. @@ -165,7 +165,7 @@
                                                                      ParseUser class
                                                                    31. login
                                                                    32. loginAnonymous
                                                                    33. logout
                                                                    34. -
                                                                    35. noSuchMethod
                                                                    36. +
                                                                    37. noSuchMethod
                                                                    38. pin
                                                                    39. query
                                                                    40. removeRelation
                                                                    41. @@ -192,7 +192,7 @@
                                                                      ParseUser class
                                                                    42. verificationEmailRequest
                                                                    43. Operators
                                                                    44. -
                                                                    45. operator ==
                                                                    46. +
                                                                    47. operator ==
                                                                    48. operator []
                                                                    49. operator []=
                                                                    50. diff --git a/dart/flutter_parse_sdk/ParseUser/logout.html b/dart/flutter_parse_sdk/ParseUser/logout.html index 4de8e7b08..fa7ecbf73 100644 --- a/dart/flutter_parse_sdk/ParseUser/logout.html +++ b/dart/flutter_parse_sdk/ParseUser/logout.html @@ -59,8 +59,8 @@

                                                                      logout method
                                                                      -Future<ParseResponse> -logout(
                                                                      1. {bool deleteLocalUserData = true}
                                                                      2. +Future<ParseResponse> +logout(
                                                                        1. {bool deleteLocalUserData = true}
                                                                        ) @@ -146,11 +146,11 @@
                                                                        ParseUser class
                                                                      3. createdAt
                                                                      4. emailAddress
                                                                      5. emailVerified
                                                                      6. -
                                                                      7. hashCode
                                                                      8. +
                                                                      9. hashCode
                                                                      10. objectId
                                                                      11. parseClassName
                                                                      12. password
                                                                      13. -
                                                                      14. runtimeType
                                                                      15. +
                                                                      16. runtimeType
                                                                      17. sessionToken
                                                                      18. updatedAt
                                                                      19. username
                                                                      20. @@ -182,7 +182,7 @@
                                                                        ParseUser class
                                                                      21. login
                                                                      22. loginAnonymous
                                                                      23. logout
                                                                      24. -
                                                                      25. noSuchMethod
                                                                      26. +
                                                                      27. noSuchMethod
                                                                      28. pin
                                                                      29. query
                                                                      30. removeRelation
                                                                      31. @@ -209,7 +209,7 @@
                                                                        ParseUser class
                                                                      32. verificationEmailRequest
                                                                      33. Operators
                                                                      34. -
                                                                      35. operator ==
                                                                      36. +
                                                                      37. operator ==
                                                                      38. operator []
                                                                      39. operator []=
                                                                      40. diff --git a/dart/flutter_parse_sdk/ParseUser/password.html b/dart/flutter_parse_sdk/ParseUser/password.html index aebb8e666..d6bf607fc 100644 --- a/dart/flutter_parse_sdk/ParseUser/password.html +++ b/dart/flutter_parse_sdk/ParseUser/password.html @@ -62,7 +62,7 @@

                                                                        password property
                                                                        - String? + String? password @@ -85,7 +85,7 @@

                                                                        Implementation

                                                                        void - password=(String? password) + password=(String? password)
                                                                        @@ -139,11 +139,11 @@
                                                                        ParseUser class
                                                                      41. createdAt
                                                                      42. emailAddress
                                                                      43. emailVerified
                                                                      44. -
                                                                      45. hashCode
                                                                      46. +
                                                                      47. hashCode
                                                                      48. objectId
                                                                      49. parseClassName
                                                                      50. password
                                                                      51. -
                                                                      52. runtimeType
                                                                      53. +
                                                                      54. runtimeType
                                                                      55. sessionToken
                                                                      56. updatedAt
                                                                      57. username
                                                                      58. @@ -175,7 +175,7 @@
                                                                        ParseUser class
                                                                      59. login
                                                                      60. loginAnonymous
                                                                      61. logout
                                                                      62. -
                                                                      63. noSuchMethod
                                                                      64. +
                                                                      65. noSuchMethod
                                                                      66. pin
                                                                      67. query
                                                                      68. removeRelation
                                                                      69. @@ -202,7 +202,7 @@
                                                                        ParseUser class
                                                                      70. verificationEmailRequest
                                                                      71. Operators
                                                                      72. -
                                                                      73. operator ==
                                                                      74. +
                                                                      75. operator ==
                                                                      76. operator []
                                                                      77. operator []=
                                                                      78. diff --git a/dart/flutter_parse_sdk/ParseUser/path-constant.html b/dart/flutter_parse_sdk/ParseUser/path-constant.html index 6e7e408dc..227c57a94 100644 --- a/dart/flutter_parse_sdk/ParseUser/path-constant.html +++ b/dart/flutter_parse_sdk/ParseUser/path-constant.html @@ -58,7 +58,7 @@

                                                                        path constant
                                                                        - String + String const path @@ -106,11 +106,11 @@
                                                                        ParseUser class
                                                                      79. createdAt
                                                                      80. emailAddress
                                                                      81. emailVerified
                                                                      82. -
                                                                      83. hashCode
                                                                      84. +
                                                                      85. hashCode
                                                                      86. objectId
                                                                      87. parseClassName
                                                                      88. password
                                                                      89. -
                                                                      90. runtimeType
                                                                      91. +
                                                                      92. runtimeType
                                                                      93. sessionToken
                                                                      94. updatedAt
                                                                      95. username
                                                                      96. @@ -142,7 +142,7 @@
                                                                        ParseUser class
                                                                      97. login
                                                                      98. loginAnonymous
                                                                      99. logout
                                                                      100. -
                                                                      101. noSuchMethod
                                                                      102. +
                                                                      103. noSuchMethod
                                                                      104. pin
                                                                      105. query
                                                                      106. removeRelation
                                                                      107. @@ -169,7 +169,7 @@
                                                                        ParseUser class
                                                                      108. verificationEmailRequest
                                                                      109. Operators
                                                                      110. -
                                                                      111. operator ==
                                                                      112. +
                                                                      113. operator ==
                                                                      114. operator []
                                                                      115. operator []=
                                                                      116. diff --git a/dart/flutter_parse_sdk/ParseUser/requestPasswordReset.html b/dart/flutter_parse_sdk/ParseUser/requestPasswordReset.html index 065e1c5c6..657a7ed26 100644 --- a/dart/flutter_parse_sdk/ParseUser/requestPasswordReset.html +++ b/dart/flutter_parse_sdk/ParseUser/requestPasswordReset.html @@ -59,7 +59,7 @@

                                                                        requestPasswordReset method
                                                                        -Future<ParseResponse> +Future<ParseResponse> requestPasswordReset() @@ -124,11 +124,11 @@
                                                                        ParseUser class
                                                                      117. createdAt
                                                                      118. emailAddress
                                                                      119. emailVerified
                                                                      120. -
                                                                      121. hashCode
                                                                      122. +
                                                                      123. hashCode
                                                                      124. objectId
                                                                      125. parseClassName
                                                                      126. password
                                                                      127. -
                                                                      128. runtimeType
                                                                      129. +
                                                                      130. runtimeType
                                                                      131. sessionToken
                                                                      132. updatedAt
                                                                      133. username
                                                                      134. @@ -160,7 +160,7 @@
                                                                        ParseUser class
                                                                      135. login
                                                                      136. loginAnonymous
                                                                      137. logout
                                                                      138. -
                                                                      139. noSuchMethod
                                                                      140. +
                                                                      141. noSuchMethod
                                                                      142. pin
                                                                      143. query
                                                                      144. removeRelation
                                                                      145. @@ -187,7 +187,7 @@
                                                                        ParseUser class
                                                                      146. verificationEmailRequest
                                                                      147. Operators
                                                                      148. -
                                                                      149. operator ==
                                                                      150. +
                                                                      151. operator ==
                                                                      152. operator []
                                                                      153. operator []=
                                                                      154. diff --git a/dart/flutter_parse_sdk/ParseUser/save.html b/dart/flutter_parse_sdk/ParseUser/save.html index 40749da86..3fa7f408b 100644 --- a/dart/flutter_parse_sdk/ParseUser/save.html +++ b/dart/flutter_parse_sdk/ParseUser/save.html @@ -60,11 +60,11 @@

                                                                        save method -Future<ParseResponse> +Future<ParseResponse> save()
                                                                        override
                                                                        @@ -130,11 +130,11 @@

                                                                        ParseUser class
                                                                      155. createdAt
                                                                      156. emailAddress
                                                                      157. emailVerified
                                                                      158. -
                                                                      159. hashCode
                                                                      160. +
                                                                      161. hashCode
                                                                      162. objectId
                                                                      163. parseClassName
                                                                      164. password
                                                                      165. -
                                                                      166. runtimeType
                                                                      167. +
                                                                      168. runtimeType
                                                                      169. sessionToken
                                                                      170. updatedAt
                                                                      171. username
                                                                      172. @@ -166,7 +166,7 @@
                                                                        ParseUser class
                                                                      173. login
                                                                      174. loginAnonymous
                                                                      175. logout
                                                                      176. -
                                                                      177. noSuchMethod
                                                                      178. +
                                                                      179. noSuchMethod
                                                                      180. pin
                                                                      181. query
                                                                      182. removeRelation
                                                                      183. @@ -193,7 +193,7 @@
                                                                        ParseUser class
                                                                      184. verificationEmailRequest
                                                                      185. Operators
                                                                      186. -
                                                                      187. operator ==
                                                                      188. +
                                                                      189. operator ==
                                                                      190. operator []
                                                                      191. operator []=
                                                                      192. diff --git a/dart/flutter_parse_sdk/ParseUser/sessionToken.html b/dart/flutter_parse_sdk/ParseUser/sessionToken.html index ac7086aee..c2c7d03da 100644 --- a/dart/flutter_parse_sdk/ParseUser/sessionToken.html +++ b/dart/flutter_parse_sdk/ParseUser/sessionToken.html @@ -62,7 +62,7 @@

                                                                        sessionToken property
                                                                        - String? + String? sessionToken @@ -85,7 +85,7 @@

                                                                        Implementation

                                                                        void - sessionToken=(String? sessionToken) + sessionToken=(String? sessionToken)
                                                                        @@ -135,11 +135,11 @@
                                                                        ParseUser class
                                                                      193. createdAt
                                                                      194. emailAddress
                                                                      195. emailVerified
                                                                      196. -
                                                                      197. hashCode
                                                                      198. +
                                                                      199. hashCode
                                                                      200. objectId
                                                                      201. parseClassName
                                                                      202. password
                                                                      203. -
                                                                      204. runtimeType
                                                                      205. +
                                                                      206. runtimeType
                                                                      207. sessionToken
                                                                      208. updatedAt
                                                                      209. username
                                                                      210. @@ -171,7 +171,7 @@
                                                                        ParseUser class
                                                                      211. login
                                                                      212. loginAnonymous
                                                                      213. logout
                                                                      214. -
                                                                      215. noSuchMethod
                                                                      216. +
                                                                      217. noSuchMethod
                                                                      218. pin
                                                                      219. query
                                                                      220. removeRelation
                                                                      221. @@ -198,7 +198,7 @@
                                                                        ParseUser class
                                                                      222. verificationEmailRequest
                                                                      223. Operators
                                                                      224. -
                                                                      225. operator ==
                                                                      226. +
                                                                      227. operator ==
                                                                      228. operator []
                                                                      229. operator []=
                                                                      230. diff --git a/dart/flutter_parse_sdk/ParseUser/signUp.html b/dart/flutter_parse_sdk/ParseUser/signUp.html index aaba52528..c78fff497 100644 --- a/dart/flutter_parse_sdk/ParseUser/signUp.html +++ b/dart/flutter_parse_sdk/ParseUser/signUp.html @@ -59,9 +59,9 @@

                                                                        signUp method
                                                                        -Future<ParseResponse> -signUp(
                                                                        1. {bool allowWithoutEmail = false,
                                                                        2. -
                                                                        3. bool doNotSendInstallationID = false}
                                                                        4. +Future<ParseResponse> +signUp(
                                                                          1. {bool allowWithoutEmail = false,
                                                                          2. +
                                                                          3. bool doNotSendInstallationID = false}
                                                                          ) @@ -159,11 +159,11 @@
                                                                          ParseUser class
                                                                        5. createdAt
                                                                        6. emailAddress
                                                                        7. emailVerified
                                                                        8. -
                                                                        9. hashCode
                                                                        10. +
                                                                        11. hashCode
                                                                        12. objectId
                                                                        13. parseClassName
                                                                        14. password
                                                                        15. -
                                                                        16. runtimeType
                                                                        17. +
                                                                        18. runtimeType
                                                                        19. sessionToken
                                                                        20. updatedAt
                                                                        21. username
                                                                        22. @@ -195,7 +195,7 @@
                                                                          ParseUser class
                                                                        23. login
                                                                        24. loginAnonymous
                                                                        25. logout
                                                                        26. -
                                                                        27. noSuchMethod
                                                                        28. +
                                                                        29. noSuchMethod
                                                                        30. pin
                                                                        31. query
                                                                        32. removeRelation
                                                                        33. @@ -222,7 +222,7 @@
                                                                          ParseUser class
                                                                        34. verificationEmailRequest
                                                                        35. Operators
                                                                        36. -
                                                                        37. operator ==
                                                                        38. +
                                                                        39. operator ==
                                                                        40. operator []
                                                                        41. operator []=
                                                                        42. diff --git a/dart/flutter_parse_sdk/ParseUser/update.html b/dart/flutter_parse_sdk/ParseUser/update.html index 4c830a6ab..ddc91bf88 100644 --- a/dart/flutter_parse_sdk/ParseUser/update.html +++ b/dart/flutter_parse_sdk/ParseUser/update.html @@ -60,11 +60,11 @@

                                                                          update method -Future<ParseResponse> +Future<ParseResponse> update()
                                                                          override
                                                                          @@ -131,11 +131,11 @@

                                                                          ParseUser class
                                                                        43. createdAt
                                                                        44. emailAddress
                                                                        45. emailVerified
                                                                        46. -
                                                                        47. hashCode
                                                                        48. +
                                                                        49. hashCode
                                                                        50. objectId
                                                                        51. parseClassName
                                                                        52. password
                                                                        53. -
                                                                        54. runtimeType
                                                                        55. +
                                                                        56. runtimeType
                                                                        57. sessionToken
                                                                        58. updatedAt
                                                                        59. username
                                                                        60. @@ -167,7 +167,7 @@
                                                                          ParseUser class
                                                                        61. login
                                                                        62. loginAnonymous
                                                                        63. logout
                                                                        64. -
                                                                        65. noSuchMethod
                                                                        66. +
                                                                        67. noSuchMethod
                                                                        68. pin
                                                                        69. query
                                                                        70. removeRelation
                                                                        71. @@ -194,7 +194,7 @@
                                                                          ParseUser class
                                                                        72. verificationEmailRequest
                                                                        73. Operators
                                                                        74. -
                                                                        75. operator ==
                                                                        76. +
                                                                        77. operator ==
                                                                        78. operator []
                                                                        79. operator []=
                                                                        80. diff --git a/dart/flutter_parse_sdk/ParseUser/username.html b/dart/flutter_parse_sdk/ParseUser/username.html index 803ee705b..cb5baea45 100644 --- a/dart/flutter_parse_sdk/ParseUser/username.html +++ b/dart/flutter_parse_sdk/ParseUser/username.html @@ -62,7 +62,7 @@

                                                                          username property
                                                                          - String? + String? username @@ -85,7 +85,7 @@

                                                                          Implementation

                                                                          void - username=(String? username) + username=(String? username)
                                                                          @@ -134,11 +134,11 @@
                                                                          ParseUser class
                                                                        81. createdAt
                                                                        82. emailAddress
                                                                        83. emailVerified
                                                                        84. -
                                                                        85. hashCode
                                                                        86. +
                                                                        87. hashCode
                                                                        88. objectId
                                                                        89. parseClassName
                                                                        90. password
                                                                        91. -
                                                                        92. runtimeType
                                                                        93. +
                                                                        94. runtimeType
                                                                        95. sessionToken
                                                                        96. updatedAt
                                                                        97. username
                                                                        98. @@ -170,7 +170,7 @@
                                                                          ParseUser class
                                                                        99. login
                                                                        100. loginAnonymous
                                                                        101. logout
                                                                        102. -
                                                                        103. noSuchMethod
                                                                        104. +
                                                                        105. noSuchMethod
                                                                        106. pin
                                                                        107. query
                                                                        108. removeRelation
                                                                        109. @@ -197,7 +197,7 @@
                                                                          ParseUser class
                                                                        110. verificationEmailRequest
                                                                        111. Operators
                                                                        112. -
                                                                        113. operator ==
                                                                        114. +
                                                                        115. operator ==
                                                                        116. operator []
                                                                        117. operator []=
                                                                        118. diff --git a/dart/flutter_parse_sdk/ParseUser/verificationEmailRequest.html b/dart/flutter_parse_sdk/ParseUser/verificationEmailRequest.html index 821099206..d22d70be9 100644 --- a/dart/flutter_parse_sdk/ParseUser/verificationEmailRequest.html +++ b/dart/flutter_parse_sdk/ParseUser/verificationEmailRequest.html @@ -59,7 +59,7 @@

                                                                          verificationEmailRequest method
                                                                          -Future<ParseResponse> +Future<ParseResponse> verificationEmailRequest() @@ -124,11 +124,11 @@
                                                                          ParseUser class
                                                                        119. createdAt
                                                                        120. emailAddress
                                                                        121. emailVerified
                                                                        122. -
                                                                        123. hashCode
                                                                        124. +
                                                                        125. hashCode
                                                                        126. objectId
                                                                        127. parseClassName
                                                                        128. password
                                                                        129. -
                                                                        130. runtimeType
                                                                        131. +
                                                                        132. runtimeType
                                                                        133. sessionToken
                                                                        134. updatedAt
                                                                        135. username
                                                                        136. @@ -160,7 +160,7 @@
                                                                          ParseUser class
                                                                        137. login
                                                                        138. loginAnonymous
                                                                        139. logout
                                                                        140. -
                                                                        141. noSuchMethod
                                                                        142. +
                                                                        143. noSuchMethod
                                                                        144. pin
                                                                        145. query
                                                                        146. removeRelation
                                                                        147. @@ -187,7 +187,7 @@
                                                                          ParseUser class
                                                                        148. verificationEmailRequest
                                                                        149. Operators
                                                                        150. -
                                                                        151. operator ==
                                                                        152. +
                                                                        153. operator ==
                                                                        154. operator []
                                                                        155. operator []=
                                                                        156. diff --git a/dart/flutter_parse_sdk/ParseUserConstructor.html b/dart/flutter_parse_sdk/ParseUserConstructor.html index 335d9b354..468d9ca7a 100644 --- a/dart/flutter_parse_sdk/ParseUserConstructor.html +++ b/dart/flutter_parse_sdk/ParseUserConstructor.html @@ -58,7 +58,7 @@

                                                                          ParseUserConstructor typedef
                                                                          ParseUserConstructor = - ParseUser Function(String? username, String? password, String? emailAddress, {ParseClient? client, bool? debug, String? sessionToken}) + ParseUser Function(String? username, String? password, String? emailAddress, {ParseClient? client, bool? debug, String? sessionToken})
                                                                          diff --git a/dart/flutter_parse_sdk/ParseWebFile-class.html b/dart/flutter_parse_sdk/ParseWebFile-class.html index 2016b712d..8f1767e0d 100644 --- a/dart/flutter_parse_sdk/ParseWebFile-class.html +++ b/dart/flutter_parse_sdk/ParseWebFile-class.html @@ -65,7 +65,7 @@

                                                                          ParseWebFile class
                                                                          Inheritance
                                                                          - containsValue(Object value) - bool + containsValue(Object value) + bool @@ -313,8 +313,8 @@

                                                                          Methods

                                                                          - create({bool allowCustomObjectId = false}) - Future<ParseResponse> + create({bool allowCustomObjectId = false}) + Future<ParseResponse> @@ -326,8 +326,8 @@

                                                                          Methods

                                                                          - delete<T extends ParseObject>({String? id, String? path}) - Future<ParseResponse> + delete<T extends ParseObject>({String? id, String? path}) + Future<ParseResponse> @@ -339,8 +339,8 @@

                                                                          Methods

                                                                          - distinct<T extends ParseObject>(String query) - Future<ParseResponse> + distinct<T extends ParseObject>(String query) + Future<ParseResponse> @@ -353,7 +353,7 @@

                                                                          Methods

                                                                          download({ProgressCallback? progressCallback}) - Future<ParseWebFile> + Future<ParseWebFile> @@ -365,8 +365,8 @@

                                                                          Methods

                                                                          - fetch({List<String>? include}) - Future<ParseObject> + fetch({List<String>? include}) + Future<ParseObject> @@ -378,7 +378,7 @@

                                                                          Methods

                                                                          - fromJson(Map<String, dynamic> objectData) + fromJson(Map<String, dynamic> objectData) → dynamic @@ -391,7 +391,7 @@

                                                                          Methods

                                                                          - fromJsonForManualObject(Map<String, dynamic> objectData) + fromJsonForManualObject(Map<String, dynamic> objectData) → dynamic @@ -404,8 +404,8 @@

                                                                          Methods

                                                                          - fromPin(String objectId) - Future + fromPin(String objectId) + Future @@ -417,7 +417,7 @@

                                                                          Methods

                                                                          - get<T>(String key, {T? defaultValue}) + get<T>(String key, {T? defaultValue}) → T? @@ -444,7 +444,7 @@

                                                                          Methods

                                                                          getAll() - Future<ParseResponse> + Future<ParseResponse> @@ -456,8 +456,8 @@

                                                                          Methods

                                                                          - getObject(String objectId, {List<String>? include}) - Future<ParseResponse> + getObject(String objectId, {List<String>? include}) + Future<ParseResponse> @@ -469,7 +469,7 @@

                                                                          Methods

                                                                          - getRelation<T extends ParseObject>(String key) + getRelation<T extends ParseObject>(String key) ParseRelation<T> @@ -482,8 +482,8 @@

                                                                          Methods

                                                                          - isDirty({String? key}) - bool + isDirty({String? key}) + bool @@ -495,7 +495,7 @@

                                                                          Methods

                                                                          - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -509,7 +509,7 @@

                                                                          Methods

                                                                          pin() - Future<bool> + Future<bool> @@ -534,8 +534,8 @@

                                                                          Methods

                                                                          - query<T extends ParseObject>(String query, {ProgressCallback? progressCallback}) - Future<ParseResponse> + query<T extends ParseObject>(String query, {ProgressCallback? progressCallback}) + Future<ParseResponse> @@ -547,7 +547,7 @@

                                                                          Methods

                                                                          - removeRelation(String key, List<ParseObject> objets) + removeRelation(String key, List<ParseObject> objets) → void @@ -561,7 +561,7 @@

                                                                          Methods

                                                                          save() - Future<ParseResponse> + Future<ParseResponse> @@ -573,8 +573,8 @@

                                                                          Methods

                                                                          - saveInStorage(String key) - Future<void> + saveInStorage(String key) + Future<void> @@ -586,7 +586,7 @@

                                                                          Methods

                                                                          - set<T>(String key, T value, {bool forceUpdate = true}) + set<T>(String key, T value, {bool forceUpdate = true}) → void @@ -612,7 +612,7 @@

                                                                          Methods

                                                                          - setAdd<T>(String key, T element) + setAdd<T>(String key, T element) → void @@ -625,7 +625,7 @@

                                                                          Methods

                                                                          - setAddAll(String key, List elements) + setAddAll(String key, List elements) → void @@ -639,7 +639,7 @@

                                                                          Methods

                                                                          - setAddAllUnique(String key, List elements) + setAddAllUnique(String key, List elements) → void @@ -654,7 +654,7 @@

                                                                          Methods

                                                                          - setAddUnique(String key, dynamic element) + setAddUnique(String key, dynamic element) → void @@ -669,7 +669,7 @@

                                                                          Methods

                                                                          - setDecrement(String key, num amount) + setDecrement(String key, num amount) → void @@ -682,7 +682,7 @@

                                                                          Methods

                                                                          - setIncrement(String key, num amount) + setIncrement(String key, num amount) → void @@ -695,7 +695,7 @@

                                                                          Methods

                                                                          - setRemove(String key, dynamic element) + setRemove(String key, dynamic element) → void @@ -709,22 +709,22 @@

                                                                          Methods

                                                                          - setRemoveAll(String key, List elements) + setRemoveAll(String key, List elements) → void
                                                                          - Removes all instances of the elements contained in a List from the + Removes all instances of the elements contained in a List from the array associated with a given key
                                                                          inherited
                                                                          - toJson({bool full = false, bool forApiRQ = false, bool allowCustomObjectId = false}) - Map<String, dynamic> + toJson({bool full = false, bool forApiRQ = false, bool allowCustomObjectId = false}) + Map<String, dynamic> @@ -737,7 +737,7 @@

                                                                          Methods

                                                                          toPointer() - Map<String, dynamic> + Map<String, dynamic> @@ -750,7 +750,7 @@

                                                                          Methods

                                                                          toString() - String + String @@ -762,8 +762,8 @@

                                                                          Methods

                                                                          - unpin({String? key}) - Future<bool> + unpin({String? key}) + Future<bool> @@ -775,8 +775,8 @@

                                                                          Methods

                                                                          - unset(String key, {bool offlineOnly = false}) - Future<ParseResponse> + unset(String key, {bool offlineOnly = false}) + Future<ParseResponse> @@ -789,7 +789,7 @@

                                                                          Methods

                                                                          update() - Future<ParseResponse> + Future<ParseResponse> @@ -802,7 +802,7 @@

                                                                          Methods

                                                                          upload({ProgressCallback? progressCallback}) - Future<ParseResponse> + Future<ParseResponse> @@ -822,8 +822,8 @@

                                                                          Methods

                                                                          Operators

                                                                          - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -835,7 +835,7 @@

                                                                          Operators

                                                                          - operator [](String key) + operator [](String key) → dynamic @@ -848,7 +848,7 @@

                                                                          Operators

                                                                          - operator []=(String key, dynamic value) + operator []=(String key, dynamic value) → void @@ -1062,11 +1062,11 @@
                                                                          flutter_parse_sdk library
                                                                        157. createdAt
                                                                        158. file
                                                                        159. -
                                                                        160. hashCode
                                                                        161. +
                                                                        162. hashCode
                                                                        163. name
                                                                        164. objectId
                                                                        165. parseClassName
                                                                        166. -
                                                                        167. runtimeType
                                                                        168. +
                                                                        169. runtimeType
                                                                        170. saved
                                                                        171. updatedAt
                                                                        172. url
                                                                        173. @@ -1093,7 +1093,7 @@
                                                                          flutter_parse_sdk library
                                                                        174. getObject
                                                                        175. getRelation
                                                                        176. isDirty
                                                                        177. -
                                                                        178. noSuchMethod
                                                                        179. +
                                                                        180. noSuchMethod
                                                                        181. pin
                                                                        182. progressCallback
                                                                        183. query
                                                                        184. @@ -1119,7 +1119,7 @@
                                                                          flutter_parse_sdk library
                                                                        185. upload
                                                                        186. Operators
                                                                        187. -
                                                                        188. operator ==
                                                                        189. +
                                                                        190. operator ==
                                                                        191. operator []
                                                                        192. operator []=
                                                                        193. diff --git a/dart/flutter_parse_sdk/ParseWebFile/ParseWebFile.html b/dart/flutter_parse_sdk/ParseWebFile/ParseWebFile.html index 4e812ad40..a1782e9e6 100644 --- a/dart/flutter_parse_sdk/ParseWebFile/ParseWebFile.html +++ b/dart/flutter_parse_sdk/ParseWebFile/ParseWebFile.html @@ -58,12 +58,12 @@

                                                                          ParseWebFile constructor
                                                                          - ParseWebFile(
                                                                          1. Uint8List? file,
                                                                          2. -
                                                                          3. {required String name,
                                                                          4. -
                                                                          5. String? url,
                                                                          6. -
                                                                          7. bool? debug,
                                                                          8. + ParseWebFile(
                                                                            1. Uint8List? file,
                                                                            2. +
                                                                            3. {required String name,
                                                                            4. +
                                                                            5. String? url,
                                                                            6. +
                                                                            7. bool? debug,
                                                                            8. ParseClient? client,
                                                                            9. -
                                                                            10. bool? autoSendSessionId}
                                                                            11. +
                                                                            12. bool? autoSendSessionId}
                                                                            )
                                                                          @@ -118,11 +118,11 @@

                                                                          ParseWebFile class
                                                                        194. createdAt
                                                                        195. file
                                                                        196. -
                                                                        197. hashCode
                                                                        198. +
                                                                        199. hashCode
                                                                        200. name
                                                                        201. objectId
                                                                        202. parseClassName
                                                                        203. -
                                                                        204. runtimeType
                                                                        205. +
                                                                        206. runtimeType
                                                                        207. saved
                                                                        208. updatedAt
                                                                        209. url
                                                                        210. @@ -149,7 +149,7 @@
                                                                          ParseWebFile class
                                                                        211. getObject
                                                                        212. getRelation
                                                                        213. isDirty
                                                                        214. -
                                                                        215. noSuchMethod
                                                                        216. +
                                                                        217. noSuchMethod
                                                                        218. pin
                                                                        219. progressCallback
                                                                        220. query
                                                                        221. @@ -175,7 +175,7 @@
                                                                          ParseWebFile class
                                                                        222. upload
                                                                        223. Operators
                                                                        224. -
                                                                        225. operator ==
                                                                        226. +
                                                                        227. operator ==
                                                                        228. operator []
                                                                        229. operator []=
                                                                        230. diff --git a/dart/flutter_parse_sdk/ParseWebFile/cancel.html b/dart/flutter_parse_sdk/ParseWebFile/cancel.html index 6942f3395..0377d7c99 100644 --- a/dart/flutter_parse_sdk/ParseWebFile/cancel.html +++ b/dart/flutter_parse_sdk/ParseWebFile/cancel.html @@ -60,7 +60,7 @@

                                                                          cancel method @@ -117,11 +117,11 @@

                                                                          ParseWebFile class
                                                                        231. createdAt
                                                                        232. file
                                                                        233. -
                                                                        234. hashCode
                                                                        235. +
                                                                        236. hashCode
                                                                        237. name
                                                                        238. objectId
                                                                        239. parseClassName
                                                                        240. -
                                                                        241. runtimeType
                                                                        242. +
                                                                        243. runtimeType
                                                                        244. saved
                                                                        245. updatedAt
                                                                        246. url
                                                                        247. @@ -148,7 +148,7 @@
                                                                          ParseWebFile class
                                                                        248. getObject
                                                                        249. getRelation
                                                                        250. isDirty
                                                                        251. -
                                                                        252. noSuchMethod
                                                                        253. +
                                                                        254. noSuchMethod
                                                                        255. pin
                                                                        256. progressCallback
                                                                        257. query
                                                                        258. @@ -174,7 +174,7 @@
                                                                          ParseWebFile class
                                                                        259. upload
                                                                        260. Operators
                                                                        261. -
                                                                        262. operator ==
                                                                        263. +
                                                                        264. operator ==
                                                                        265. operator []
                                                                        266. operator []=
                                                                        267. diff --git a/dart/flutter_parse_sdk/ParseWebFile/download.html b/dart/flutter_parse_sdk/ParseWebFile/download.html index 3e8150827..702f6e332 100644 --- a/dart/flutter_parse_sdk/ParseWebFile/download.html +++ b/dart/flutter_parse_sdk/ParseWebFile/download.html @@ -60,11 +60,11 @@

                                                                          download method -Future<ParseWebFile> +Future<ParseWebFile> download(
                                                                          1. {ProgressCallback? progressCallback}
                                                                          ) @@ -128,11 +128,11 @@

                                                                          ParseWebFile class
                                                                        268. createdAt
                                                                        269. file
                                                                        270. -
                                                                        271. hashCode
                                                                        272. +
                                                                        273. hashCode
                                                                        274. name
                                                                        275. objectId
                                                                        276. parseClassName
                                                                        277. -
                                                                        278. runtimeType
                                                                        279. +
                                                                        280. runtimeType
                                                                        281. saved
                                                                        282. updatedAt
                                                                        283. url
                                                                        284. @@ -159,7 +159,7 @@
                                                                          ParseWebFile class
                                                                        285. getObject
                                                                        286. getRelation
                                                                        287. isDirty
                                                                        288. -
                                                                        289. noSuchMethod
                                                                        290. +
                                                                        291. noSuchMethod
                                                                        292. pin
                                                                        293. progressCallback
                                                                        294. query
                                                                        295. @@ -185,7 +185,7 @@
                                                                          ParseWebFile class
                                                                        296. upload
                                                                        297. Operators
                                                                        298. -
                                                                        299. operator ==
                                                                        300. +
                                                                        301. operator ==
                                                                        302. operator []
                                                                        303. operator []=
                                                                        304. diff --git a/dart/flutter_parse_sdk/ParseWebFile/file.html b/dart/flutter_parse_sdk/ParseWebFile/file.html index e9072e05b..8998c0e3d 100644 --- a/dart/flutter_parse_sdk/ParseWebFile/file.html +++ b/dart/flutter_parse_sdk/ParseWebFile/file.html @@ -58,7 +58,7 @@

                                                                          file property
                                                                          - Uint8List? + Uint8List? file
                                                                          read / write
                                                                          @@ -101,11 +101,11 @@
                                                                          ParseWebFile class
                                                                        305. createdAt
                                                                        306. file
                                                                        307. -
                                                                        308. hashCode
                                                                        309. +
                                                                        310. hashCode
                                                                        311. name
                                                                        312. objectId
                                                                        313. parseClassName
                                                                        314. -
                                                                        315. runtimeType
                                                                        316. +
                                                                        317. runtimeType
                                                                        318. saved
                                                                        319. updatedAt
                                                                        320. url
                                                                        321. @@ -132,7 +132,7 @@
                                                                          ParseWebFile class
                                                                        322. getObject
                                                                        323. getRelation
                                                                        324. isDirty
                                                                        325. -
                                                                        326. noSuchMethod
                                                                        327. +
                                                                        328. noSuchMethod
                                                                        329. pin
                                                                        330. progressCallback
                                                                        331. query
                                                                        332. @@ -158,7 +158,7 @@
                                                                          ParseWebFile class
                                                                        333. upload
                                                                        334. Operators
                                                                        335. -
                                                                        336. operator ==
                                                                        337. +
                                                                        338. operator ==
                                                                        339. operator []
                                                                        340. operator []=
                                                                        341. diff --git a/dart/flutter_parse_sdk/ParseWebFile/progressCallback.html b/dart/flutter_parse_sdk/ParseWebFile/progressCallback.html index 878096544..adb7b8019 100644 --- a/dart/flutter_parse_sdk/ParseWebFile/progressCallback.html +++ b/dart/flutter_parse_sdk/ParseWebFile/progressCallback.html @@ -60,7 +60,7 @@

                                                                          progressCallback method @@ -116,11 +116,11 @@

                                                                          ParseWebFile class
                                                                        342. createdAt
                                                                        343. file
                                                                        344. -
                                                                        345. hashCode
                                                                        346. +
                                                                        347. hashCode
                                                                        348. name
                                                                        349. objectId
                                                                        350. parseClassName
                                                                        351. -
                                                                        352. runtimeType
                                                                        353. +
                                                                        354. runtimeType
                                                                        355. saved
                                                                        356. updatedAt
                                                                        357. url
                                                                        358. @@ -147,7 +147,7 @@
                                                                          ParseWebFile class
                                                                        359. getObject
                                                                        360. getRelation
                                                                        361. isDirty
                                                                        362. -
                                                                        363. noSuchMethod
                                                                        364. +
                                                                        365. noSuchMethod
                                                                        366. pin
                                                                        367. progressCallback
                                                                        368. query
                                                                        369. @@ -173,7 +173,7 @@
                                                                          ParseWebFile class
                                                                        370. upload
                                                                        371. Operators
                                                                        372. -
                                                                        373. operator ==
                                                                        374. +
                                                                        375. operator ==
                                                                        376. operator []
                                                                        377. operator []=
                                                                        378. diff --git a/dart/flutter_parse_sdk/ParseWebFile/upload.html b/dart/flutter_parse_sdk/ParseWebFile/upload.html index 3fd9c52ff..da40fb757 100644 --- a/dart/flutter_parse_sdk/ParseWebFile/upload.html +++ b/dart/flutter_parse_sdk/ParseWebFile/upload.html @@ -60,11 +60,11 @@

                                                                          upload method -Future<ParseResponse> +Future<ParseResponse> upload(
                                                                          1. {ProgressCallback? progressCallback}
                                                                          ) @@ -156,11 +156,11 @@

                                                                          ParseWebFile class
                                                                        379. createdAt
                                                                        380. file
                                                                        381. -
                                                                        382. hashCode
                                                                        383. +
                                                                        384. hashCode
                                                                        385. name
                                                                        386. objectId
                                                                        387. parseClassName
                                                                        388. -
                                                                        389. runtimeType
                                                                        390. +
                                                                        391. runtimeType
                                                                        392. saved
                                                                        393. updatedAt
                                                                        394. url
                                                                        395. @@ -187,7 +187,7 @@
                                                                          ParseWebFile class
                                                                        396. getObject
                                                                        397. getRelation
                                                                        398. isDirty
                                                                        399. -
                                                                        400. noSuchMethod
                                                                        401. +
                                                                        402. noSuchMethod
                                                                        403. pin
                                                                        404. progressCallback
                                                                        405. query
                                                                        406. @@ -213,7 +213,7 @@
                                                                          ParseWebFile class
                                                                        407. upload
                                                                        408. Operators
                                                                        409. -
                                                                        410. operator ==
                                                                        411. +
                                                                        412. operator ==
                                                                        413. operator []
                                                                        414. operator []=
                                                                        415. diff --git a/dart/flutter_parse_sdk/PathKey-class.html b/dart/flutter_parse_sdk/PathKey-class.html index 88691331a..7feafc438 100644 --- a/dart/flutter_parse_sdk/PathKey-class.html +++ b/dart/flutter_parse_sdk/PathKey-class.html @@ -66,7 +66,7 @@

                                                                          Constructors

                                                                          - PathKey(String key, {Subscription<ParseObject>? subscription}) + PathKey(String key, {Subscription<ParseObject>? subscription})
                                                                          @@ -79,8 +79,8 @@

                                                                          Properties

                                                                          - hashCode - int + hashCode + int
                                                                          @@ -91,7 +91,7 @@

                                                                          Properties

                                                                          key - String + String
                                                                          @@ -101,8 +101,8 @@

                                                                          Properties

                                                                          - runtimeType - Type + runtimeType + Type
                                                                          @@ -132,7 +132,7 @@

                                                                          Properties

                                                                          Methods

                                                                          - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -146,7 +146,7 @@

                                                                          Methods

                                                                          toString() - String + String @@ -166,8 +166,8 @@

                                                                          Methods

                                                                          Operators

                                                                          - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -378,17 +378,17 @@
                                                                          flutter_parse_sdk library
                                                                        416. Properties
                                                                        417. -
                                                                        418. hashCode
                                                                        419. +
                                                                        420. hashCode
                                                                        421. key
                                                                        422. -
                                                                        423. runtimeType
                                                                        424. +
                                                                        425. runtimeType
                                                                        426. subscription
                                                                        427. Methods
                                                                        428. -
                                                                        429. noSuchMethod
                                                                        430. +
                                                                        431. noSuchMethod
                                                                        432. toString
                                                                        433. Operators
                                                                        434. -
                                                                        435. operator ==
                                                                        436. +
                                                                        437. operator ==
                                                                        438. diff --git a/dart/flutter_parse_sdk/PathKey/PathKey.html b/dart/flutter_parse_sdk/PathKey/PathKey.html index 4cb0b3368..d0537bd56 100644 --- a/dart/flutter_parse_sdk/PathKey/PathKey.html +++ b/dart/flutter_parse_sdk/PathKey/PathKey.html @@ -58,7 +58,7 @@

                                                                          PathKey constructor
                                                                          - PathKey(
                                                                          1. String key,
                                                                          2. + PathKey(
                                                                            1. String key,
                                                                            2. {Subscription<ParseObject>? subscription}
                                                                            )
                                                                          @@ -100,17 +100,17 @@

                                                                          PathKey class
                                                                        439. Properties
                                                                        440. -
                                                                        441. hashCode
                                                                        442. +
                                                                        443. hashCode
                                                                        444. key
                                                                        445. -
                                                                        446. runtimeType
                                                                        447. +
                                                                        448. runtimeType
                                                                        449. subscription
                                                                        450. Methods
                                                                        451. -
                                                                        452. noSuchMethod
                                                                        453. +
                                                                        454. noSuchMethod
                                                                        455. toString
                                                                        456. Operators
                                                                        457. -
                                                                        458. operator ==
                                                                        459. +
                                                                        460. operator ==
                                                                        461. diff --git a/dart/flutter_parse_sdk/PathKey/key.html b/dart/flutter_parse_sdk/PathKey/key.html index 584b590f2..28d3dfaca 100644 --- a/dart/flutter_parse_sdk/PathKey/key.html +++ b/dart/flutter_parse_sdk/PathKey/key.html @@ -58,7 +58,7 @@

                                                                          key property
                                                                          - String + String key
                                                                          final
                                                                          @@ -99,17 +99,17 @@
                                                                          PathKey class
                                                                        462. Properties
                                                                        463. -
                                                                        464. hashCode
                                                                        465. +
                                                                        466. hashCode
                                                                        467. key
                                                                        468. -
                                                                        469. runtimeType
                                                                        470. +
                                                                        471. runtimeType
                                                                        472. subscription
                                                                        473. Methods
                                                                        474. -
                                                                        475. noSuchMethod
                                                                        476. +
                                                                        477. noSuchMethod
                                                                        478. toString
                                                                        479. Operators
                                                                        480. -
                                                                        481. operator ==
                                                                        482. +
                                                                        483. operator ==
                                                                        484. diff --git a/dart/flutter_parse_sdk/PathKey/subscription.html b/dart/flutter_parse_sdk/PathKey/subscription.html index 778785df0..d2013922e 100644 --- a/dart/flutter_parse_sdk/PathKey/subscription.html +++ b/dart/flutter_parse_sdk/PathKey/subscription.html @@ -99,17 +99,17 @@
                                                                          PathKey class
                                                                        485. Properties
                                                                        486. -
                                                                        487. hashCode
                                                                        488. +
                                                                        489. hashCode
                                                                        490. key
                                                                        491. -
                                                                        492. runtimeType
                                                                        493. +
                                                                        494. runtimeType
                                                                        495. subscription
                                                                        496. Methods
                                                                        497. -
                                                                        498. noSuchMethod
                                                                        499. +
                                                                        500. noSuchMethod
                                                                        501. toString
                                                                        502. Operators
                                                                        503. -
                                                                        504. operator ==
                                                                        505. +
                                                                        506. operator ==
                                                                        507. diff --git a/dart/flutter_parse_sdk/PathKey/toString.html b/dart/flutter_parse_sdk/PathKey/toString.html index 089504998..08c58e6f2 100644 --- a/dart/flutter_parse_sdk/PathKey/toString.html +++ b/dart/flutter_parse_sdk/PathKey/toString.html @@ -60,11 +60,11 @@

                                                                          toString method -String +String toString()
                                                                          override
                                                                          @@ -74,7 +74,7 @@

                                                                          toString method

                                                                          A string representation of this object.

                                                                          Some classes have a default textual representation, -often paired with a static parse function (like int.parse). +often paired with a static parse function (like int.parse). These classes will provide the textual representation as their string representation.

                                                                          Other classes have no meaningful textual representation @@ -122,17 +122,17 @@

                                                                          PathKey class
                                                                        508. Properties
                                                                        509. -
                                                                        510. hashCode
                                                                        511. +
                                                                        512. hashCode
                                                                        513. key
                                                                        514. -
                                                                        515. runtimeType
                                                                        516. +
                                                                        517. runtimeType
                                                                        518. subscription
                                                                        519. Methods
                                                                        520. -
                                                                        521. noSuchMethod
                                                                        522. +
                                                                        523. noSuchMethod
                                                                        524. toString
                                                                        525. Operators
                                                                        526. -
                                                                        527. operator ==
                                                                        528. +
                                                                        529. operator ==
                                                                        530. diff --git a/dart/flutter_parse_sdk/ProgressCallback.html b/dart/flutter_parse_sdk/ProgressCallback.html index 0e4f69fff..fbe33006e 100644 --- a/dart/flutter_parse_sdk/ProgressCallback.html +++ b/dart/flutter_parse_sdk/ProgressCallback.html @@ -58,7 +58,7 @@

                                                                          ProgressCallback typedef
                                                                          ProgressCallback = - void Function(int count, int total) + void Function(int count, int total)
                                                                          diff --git a/dart/flutter_parse_sdk/QueryBuilder-class.html b/dart/flutter_parse_sdk/QueryBuilder-class.html index acaa55ea3..f02363aee 100644 --- a/dart/flutter_parse_sdk/QueryBuilder-class.html +++ b/dart/flutter_parse_sdk/QueryBuilder-class.html @@ -75,7 +75,7 @@

                                                                          Constructors

                                                                          Class to create complex queries

                                                                          - QueryBuilder.and(T object, List<QueryBuilder<T>> list) + QueryBuilder.and(T object, List<QueryBuilder<T>> list)
                                                                          @@ -88,20 +88,20 @@

                                                                          Constructors

                                                                          factory
                                                                          - QueryBuilder.name(String classname) + QueryBuilder.name(String classname)
                                                                          factory
                                                                          - QueryBuilder.nor(T object, List<QueryBuilder<T>> list) + QueryBuilder.nor(T object, List<QueryBuilder<T>> list)
                                                                          - QueryBuilder.or(T object, List<QueryBuilder<T>> list) + QueryBuilder.or(T object, List<QueryBuilder<T>> list)
                                                                          @@ -115,7 +115,7 @@

                                                                          Properties

                                                                          extraOptions - Map<String, dynamic> + Map<String, dynamic>
                                                                          @@ -125,8 +125,8 @@

                                                                          Properties

                                                                          - hashCode - int + hashCode + int
                                                                          @@ -137,7 +137,7 @@

                                                                          Properties

                                                                          limiters - Map<String, dynamic> + Map<String, dynamic>
                                                                          @@ -159,7 +159,7 @@

                                                                          Properties

                                                                          queries - List<MapEntry<String, dynamic>> + List<MapEntry<String, dynamic>>
                                                                          @@ -169,8 +169,8 @@

                                                                          Properties

                                                                          - runtimeType - Type + runtimeType + Type
                                                                          @@ -189,8 +189,8 @@

                                                                          Properties

                                                                          Methods

                                                                          - buildQueries(List<MapEntry<String, dynamic>> queries) - String + buildQueries(List<MapEntry<String, dynamic>> queries) + String @@ -203,7 +203,7 @@

                                                                          Methods

                                                                          buildQuery() - String + String @@ -216,7 +216,7 @@

                                                                          Methods

                                                                          count() - Future<ParseResponse> + Future<ParseResponse> @@ -228,8 +228,8 @@

                                                                          Methods

                                                                          - distinct<U extends ParseObject>(String className) - Future<ParseResponse> + distinct<U extends ParseObject>(String className) + Future<ParseResponse> @@ -241,20 +241,20 @@

                                                                          Methods

                                                                          - dontSelectKeys(String column, dynamic value) + dontSelectKeys(String column, dynamic value) → void
                                                                          - Returns an object where the String column doesn't select + Returns an object where the String column doesn't select
                                                                          - excludeKeys(List<String> keys) + excludeKeys(List<String> keys) → void @@ -268,7 +268,7 @@

                                                                          Methods

                                                                          find() - Future<List<T>> + Future<List<T>> @@ -282,7 +282,7 @@

                                                                          Methods

                                                                          first() - Future<T?> + Future<T?> @@ -295,8 +295,8 @@

                                                                          Methods

                                                                          - getExtraOptions(Map<String, dynamic> map) - String + getExtraOptions(Map<String, dynamic> map) + String @@ -308,8 +308,8 @@

                                                                          Methods

                                                                          - getLimiters(Map<String, dynamic> map) - String + getLimiters(Map<String, dynamic> map) + String @@ -321,8 +321,8 @@

                                                                          Methods

                                                                          - getLimitersRelational(Map<String, dynamic> map) - String + getLimitersRelational(Map<String, dynamic> map) + String @@ -334,7 +334,7 @@

                                                                          Methods

                                                                          - includeObject(List<String> objectTypes) + includeObject(List<String> objectTypes) → void @@ -347,7 +347,7 @@

                                                                          Methods

                                                                          - keysToReturn(List<String> keys) + keysToReturn(List<String> keys) → void @@ -360,7 +360,7 @@

                                                                          Methods

                                                                          - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -373,7 +373,7 @@

                                                                          Methods

                                                                          - orderByAscending(String order) + orderByAscending(String order) → void @@ -386,7 +386,7 @@

                                                                          Methods

                                                                          - orderByDescending(String order) + orderByDescending(String order) → void @@ -400,7 +400,7 @@

                                                                          Methods

                                                                          query<U extends ParseObject>({ProgressCallback? progressCallback}) - Future<ParseResponse> + Future<ParseResponse> @@ -412,47 +412,47 @@

                                                                          Methods

                                                                          - regEx(String column, String value) + regEx(String column, String value) → void
                                                                          - Returns an object where the String column has a regEx performed on, + Returns an object where the String column has a regEx performed on, this can include ^StringsWith, or ^EndsWith. This can be manipulated to the users desire
                                                                          - selectKeys(String column, dynamic value) + selectKeys(String column, dynamic value) → void
                                                                          - Returns an object where the String column contains select + Returns an object where the String column contains select
                                                                          - setAmountToSkip(int skip) + setAmountToSkip(int skip) → void
                                                                          - Useful for pagination, skips int amount of results + Useful for pagination, skips int amount of results
                                                                          - setLimit(int limit) + setLimit(int limit) → void @@ -465,7 +465,7 @@

                                                                          Methods

                                                                          - setRedirectClassNameForKey(String key) + setRedirectClassNameForKey(String key) → void @@ -478,8 +478,8 @@

                                                                          Methods

                                                                          - toString() - String + toString() + String @@ -491,46 +491,46 @@

                                                                          Methods

                                                                          - whereArrayContainsAll(String column, List value) + whereArrayContainsAll(String column, List value) → void
                                                                          - Returns an object where the String column contains all + Returns an object where the String column contains all
                                                                          - whereContainedIn(String column, List value) + whereContainedIn(String column, List value) → void
                                                                          - Returns an object where the String column is containedIn + Returns an object where the String column is containedIn
                                                                          - whereContains(String column, String value, {bool caseSensitive = false}) + whereContains(String column, String value, {bool caseSensitive = false}) → void
                                                                          - Performs a search to see if String contains other string + Performs a search to see if String contains other string
                                                                          - whereContainsWholeWord(String column, String query, {bool caseSensitive = false, bool orderByScore = true, bool diacriticSensitive = false}) + whereContainsWholeWord(String column, String query, {bool caseSensitive = false, bool orderByScore = true, bool diacriticSensitive = false}) → void @@ -544,7 +544,7 @@

                                                                          Methods

                                                                          - whereDoesNotMatchKeyInQuery<E extends ParseObject>(String column, String keyInQuery, QueryBuilder<E> query) + whereDoesNotMatchKeyInQuery<E extends ParseObject>(String column, String keyInQuery, QueryBuilder<E> query) → void @@ -557,7 +557,7 @@

                                                                          Methods

                                                                          - whereDoesNotMatchQuery<E extends ParseObject>(String column, QueryBuilder<E> query) + whereDoesNotMatchQuery<E extends ParseObject>(String column, QueryBuilder<E> query) → void @@ -570,20 +570,20 @@

                                                                          Methods

                                                                          - whereEndsWith(String column, String query, {bool caseSensitive = false}) + whereEndsWith(String column, String query, {bool caseSensitive = false}) → void
                                                                          - Returns an object where the String column ends with value + Returns an object where the String column ends with value
                                                                          - whereEquals(String where) + whereEquals(String where) → void @@ -596,76 +596,76 @@

                                                                          Methods

                                                                          - whereEqualTo(String column, dynamic value) + whereEqualTo(String column, dynamic value) → void
                                                                          - Returns an object where the String column equals value + Returns an object where the String column equals value
                                                                          - whereGreaterThan(String column, dynamic value) + whereGreaterThan(String column, dynamic value) → void
                                                                          - Returns an object where the String column contains a value greater + Returns an object where the String column contains a value greater than value
                                                                          - whereGreaterThanOrEqualsTo(String column, dynamic value) + whereGreaterThanOrEqualsTo(String column, dynamic value) → void
                                                                          - Returns an object where the String column contains a value greater + Returns an object where the String column contains a value greater than equal to value
                                                                          - whereLessThan(String column, dynamic value) + whereLessThan(String column, dynamic value) → void
                                                                          - Returns an object where the String column contains a value less than + Returns an object where the String column contains a value less than value
                                                                          - whereLessThanOrEqualTo(String column, dynamic value) + whereLessThanOrEqualTo(String column, dynamic value) → void
                                                                          - Returns an object where the String column contains a value less or equal + Returns an object where the String column contains a value less or equal to than value
                                                                          - whereMatchesKeyInQuery<E extends ParseObject>(String column, String keyInQuery, QueryBuilder<E> query) + whereMatchesKeyInQuery<E extends ParseObject>(String column, String keyInQuery, QueryBuilder<E> query) → void @@ -678,7 +678,7 @@

                                                                          Methods

                                                                          - whereMatchesQuery<E extends ParseObject>(String column, QueryBuilder<E> query) + whereMatchesQuery<E extends ParseObject>(String column, QueryBuilder<E> query) → void @@ -691,7 +691,7 @@

                                                                          Methods

                                                                          - whereNear(String column, ParseGeoPoint point) + whereNear(String column, ParseGeoPoint point) → void @@ -704,33 +704,33 @@

                                                                          Methods

                                                                          - whereNotContainedIn(String column, List value) + whereNotContainedIn(String column, List value) → void
                                                                          - Returns an object where the String column is notContainedIn + Returns an object where the String column is notContainedIn
                                                                          - whereNotEqualTo(String column, dynamic value) + whereNotEqualTo(String column, dynamic value) → void
                                                                          - Returns an object where the String column is not equal to value + Returns an object where the String column is not equal to value
                                                                          - wherePolygonContains(String column, ParseGeoPoint point) + wherePolygonContains(String column, ParseGeoPoint point) → void @@ -743,46 +743,46 @@

                                                                          Methods

                                                                          - whereRelatedTo(String column, String className, String objectId) + whereRelatedTo(String column, String className, String objectId) → void
                                                                          - Retrieves related objets where String column is a relation field to the class String className + Retrieves related objets where String column is a relation field to the class String className
                                                                          - whereStartsWith(String column, String query, {bool caseSensitive = false}) + whereStartsWith(String column, String query, {bool caseSensitive = false}) → void
                                                                          - Returns an object where the String column starts with value + Returns an object where the String column starts with value
                                                                          - whereValueExists(String column, bool value) + whereValueExists(String column, bool value) → void
                                                                          - Returns an object where the String column for the object has data correctly entered/saved + Returns an object where the String column for the object has data correctly entered/saved
                                                                          - whereWithinGeoBox(String column, ParseGeoPoint southwest, ParseGeoPoint northeast) + whereWithinGeoBox(String column, ParseGeoPoint southwest, ParseGeoPoint northeast) → void @@ -795,7 +795,7 @@

                                                                          Methods

                                                                          - whereWithinKilometers(String column, ParseGeoPoint point, double maxDistance) + whereWithinKilometers(String column, ParseGeoPoint point, double maxDistance) → void @@ -808,7 +808,7 @@

                                                                          Methods

                                                                          - whereWithinMiles(String column, ParseGeoPoint point, double maxDistance) + whereWithinMiles(String column, ParseGeoPoint point, double maxDistance) → void @@ -821,7 +821,7 @@

                                                                          Methods

                                                                          - whereWithinPolygon(String column, List<ParseGeoPoint> points) + whereWithinPolygon(String column, List<ParseGeoPoint> points) → void @@ -836,7 +836,7 @@

                                                                          Methods

                                                                          - whereWithinRadians(String column, ParseGeoPoint point, double maxDistance) + whereWithinRadians(String column, ParseGeoPoint point, double maxDistance) → void @@ -857,8 +857,8 @@

                                                                          Methods

                                                                          Operators

                                                                          - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -1075,11 +1075,11 @@
                                                                          flutter_parse_sdk library
                                                                          Properties
                                                                        531. extraOptions
                                                                        532. -
                                                                        533. hashCode
                                                                        534. +
                                                                        535. hashCode
                                                                        536. limiters
                                                                        537. object
                                                                        538. queries
                                                                        539. -
                                                                        540. runtimeType
                                                                        541. +
                                                                        542. runtimeType
                                                                        543. Methods
                                                                        544. buildQueries
                                                                        545. @@ -1095,7 +1095,7 @@
                                                                          flutter_parse_sdk library
                                                                        546. getLimitersRelational
                                                                        547. includeObject
                                                                        548. keysToReturn
                                                                        549. -
                                                                        550. noSuchMethod
                                                                        551. +
                                                                        552. noSuchMethod
                                                                        553. orderByAscending
                                                                        554. orderByDescending
                                                                        555. query
                                                                        556. @@ -1104,7 +1104,7 @@
                                                                          flutter_parse_sdk library
                                                                        557. setAmountToSkip
                                                                        558. setLimit
                                                                        559. setRedirectClassNameForKey
                                                                        560. -
                                                                        561. toString
                                                                        562. +
                                                                        563. toString
                                                                        564. whereArrayContainsAll
                                                                        565. whereContainedIn
                                                                        566. whereContains
                                                                        567. @@ -1134,7 +1134,7 @@
                                                                          flutter_parse_sdk library
                                                                        568. whereWithinRadians
                                                                        569. Operators
                                                                        570. -
                                                                        571. operator ==
                                                                        572. +
                                                                        573. operator ==
                                                                        574. diff --git a/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.and.html b/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.and.html index 8c9b7cf06..91ec0cc15 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.and.html +++ b/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.and.html @@ -59,7 +59,7 @@

                                                                          QueryBuilder< QueryBuilder<T extends ParseObject>.and(
                                                                          1. T object,
                                                                          2. -
                                                                          3. List<QueryBuilder<T>> list
                                                                          4. +
                                                                          5. List<QueryBuilder<T>> list
                                                                          )

                                                                          @@ -108,11 +108,11 @@

                                                                          QueryBuilder class
                                                                          Properties
                                                                        575. extraOptions
                                                                        576. -
                                                                        577. hashCode
                                                                        578. +
                                                                        579. hashCode
                                                                        580. limiters
                                                                        581. object
                                                                        582. queries
                                                                        583. -
                                                                        584. runtimeType
                                                                        585. +
                                                                        586. runtimeType
                                                                        587. Methods
                                                                        588. buildQueries
                                                                        589. @@ -128,7 +128,7 @@
                                                                          QueryBuilder class
                                                                        590. getLimitersRelational
                                                                        591. includeObject
                                                                        592. keysToReturn
                                                                        593. -
                                                                        594. noSuchMethod
                                                                        595. +
                                                                        596. noSuchMethod
                                                                        597. orderByAscending
                                                                        598. orderByDescending
                                                                        599. query
                                                                        600. @@ -137,7 +137,7 @@
                                                                          QueryBuilder class
                                                                        601. setAmountToSkip
                                                                        602. setLimit
                                                                        603. setRedirectClassNameForKey
                                                                        604. -
                                                                        605. toString
                                                                        606. +
                                                                        607. toString
                                                                        608. whereArrayContainsAll
                                                                        609. whereContainedIn
                                                                        610. whereContains
                                                                        611. @@ -167,7 +167,7 @@
                                                                          QueryBuilder class
                                                                        612. whereWithinRadians
                                                                        613. Operators
                                                                        614. -
                                                                        615. operator ==
                                                                        616. +
                                                                        617. operator ==
                                                                        618. diff --git a/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.copy.html b/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.copy.html index 661c92b5b..7d989f871 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.copy.html +++ b/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.copy.html @@ -114,11 +114,11 @@
                                                                          QueryBuilder class
                                                                          Properties
                                                                        619. extraOptions
                                                                        620. -
                                                                        621. hashCode
                                                                        622. +
                                                                        623. hashCode
                                                                        624. limiters
                                                                        625. object
                                                                        626. queries
                                                                        627. -
                                                                        628. runtimeType
                                                                        629. +
                                                                        630. runtimeType
                                                                        631. Methods
                                                                        632. buildQueries
                                                                        633. @@ -134,7 +134,7 @@
                                                                          QueryBuilder class
                                                                        634. getLimitersRelational
                                                                        635. includeObject
                                                                        636. keysToReturn
                                                                        637. -
                                                                        638. noSuchMethod
                                                                        639. +
                                                                        640. noSuchMethod
                                                                        641. orderByAscending
                                                                        642. orderByDescending
                                                                        643. query
                                                                        644. @@ -143,7 +143,7 @@
                                                                          QueryBuilder class
                                                                        645. setAmountToSkip
                                                                        646. setLimit
                                                                        647. setRedirectClassNameForKey
                                                                        648. -
                                                                        649. toString
                                                                        650. +
                                                                        651. toString
                                                                        652. whereArrayContainsAll
                                                                        653. whereContainedIn
                                                                        654. whereContains
                                                                        655. @@ -173,7 +173,7 @@
                                                                          QueryBuilder class
                                                                        656. whereWithinRadians
                                                                        657. Operators
                                                                        658. -
                                                                        659. operator ==
                                                                        660. +
                                                                        661. operator ==
                                                                        662. diff --git a/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.html b/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.html index 59ef961e3..ae32f042d 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.html +++ b/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.html @@ -108,11 +108,11 @@
                                                                          QueryBuilder class
                                                                          Properties
                                                                        663. extraOptions
                                                                        664. -
                                                                        665. hashCode
                                                                        666. +
                                                                        667. hashCode
                                                                        668. limiters
                                                                        669. object
                                                                        670. queries
                                                                        671. -
                                                                        672. runtimeType
                                                                        673. +
                                                                        674. runtimeType
                                                                        675. Methods
                                                                        676. buildQueries
                                                                        677. @@ -128,7 +128,7 @@
                                                                          QueryBuilder class
                                                                        678. getLimitersRelational
                                                                        679. includeObject
                                                                        680. keysToReturn
                                                                        681. -
                                                                        682. noSuchMethod
                                                                        683. +
                                                                        684. noSuchMethod
                                                                        685. orderByAscending
                                                                        686. orderByDescending
                                                                        687. query
                                                                        688. @@ -137,7 +137,7 @@
                                                                          QueryBuilder class
                                                                        689. setAmountToSkip
                                                                        690. setLimit
                                                                        691. setRedirectClassNameForKey
                                                                        692. -
                                                                        693. toString
                                                                        694. +
                                                                        695. toString
                                                                        696. whereArrayContainsAll
                                                                        697. whereContainedIn
                                                                        698. whereContains
                                                                        699. @@ -167,7 +167,7 @@
                                                                          QueryBuilder class
                                                                        700. whereWithinRadians
                                                                        701. Operators
                                                                        702. -
                                                                        703. operator ==
                                                                        704. +
                                                                        705. operator ==
                                                                        706. diff --git a/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.name.html b/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.name.html index db455d9aa..a805674bf 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.name.html +++ b/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.name.html @@ -58,7 +58,7 @@

                                                                          QueryBuilder< - QueryBuilder<T extends ParseObject>.name(
                                                                          1. String classname
                                                                          2. + QueryBuilder<T extends ParseObject>.name(
                                                                            1. String classname
                                                                            )

                                                                          @@ -107,11 +107,11 @@

                                                                          QueryBuilder class
                                                                          Properties
                                                                        707. extraOptions
                                                                        708. -
                                                                        709. hashCode
                                                                        710. +
                                                                        711. hashCode
                                                                        712. limiters
                                                                        713. object
                                                                        714. queries
                                                                        715. -
                                                                        716. runtimeType
                                                                        717. +
                                                                        718. runtimeType
                                                                        719. Methods
                                                                        720. buildQueries
                                                                        721. @@ -127,7 +127,7 @@
                                                                          QueryBuilder class
                                                                        722. getLimitersRelational
                                                                        723. includeObject
                                                                        724. keysToReturn
                                                                        725. -
                                                                        726. noSuchMethod
                                                                        727. +
                                                                        728. noSuchMethod
                                                                        729. orderByAscending
                                                                        730. orderByDescending
                                                                        731. query
                                                                        732. @@ -136,7 +136,7 @@
                                                                          QueryBuilder class
                                                                        733. setAmountToSkip
                                                                        734. setLimit
                                                                        735. setRedirectClassNameForKey
                                                                        736. -
                                                                        737. toString
                                                                        738. +
                                                                        739. toString
                                                                        740. whereArrayContainsAll
                                                                        741. whereContainedIn
                                                                        742. whereContains
                                                                        743. @@ -166,7 +166,7 @@
                                                                          QueryBuilder class
                                                                        744. whereWithinRadians
                                                                        745. Operators
                                                                        746. -
                                                                        747. operator ==
                                                                        748. +
                                                                        749. operator ==
                                                                        750. diff --git a/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.nor.html b/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.nor.html index 6b1597152..dcc32da2e 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.nor.html +++ b/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.nor.html @@ -59,7 +59,7 @@

                                                                          QueryBuilder< QueryBuilder<T extends ParseObject>.nor(
                                                                          1. T object,
                                                                          2. -
                                                                          3. List<QueryBuilder<T>> list
                                                                          4. +
                                                                          5. List<QueryBuilder<T>> list
                                                                          )

                                                                          @@ -108,11 +108,11 @@

                                                                          QueryBuilder class
                                                                          Properties
                                                                        751. extraOptions
                                                                        752. -
                                                                        753. hashCode
                                                                        754. +
                                                                        755. hashCode
                                                                        756. limiters
                                                                        757. object
                                                                        758. queries
                                                                        759. -
                                                                        760. runtimeType
                                                                        761. +
                                                                        762. runtimeType
                                                                        763. Methods
                                                                        764. buildQueries
                                                                        765. @@ -128,7 +128,7 @@
                                                                          QueryBuilder class
                                                                        766. getLimitersRelational
                                                                        767. includeObject
                                                                        768. keysToReturn
                                                                        769. -
                                                                        770. noSuchMethod
                                                                        771. +
                                                                        772. noSuchMethod
                                                                        773. orderByAscending
                                                                        774. orderByDescending
                                                                        775. query
                                                                        776. @@ -137,7 +137,7 @@
                                                                          QueryBuilder class
                                                                        777. setAmountToSkip
                                                                        778. setLimit
                                                                        779. setRedirectClassNameForKey
                                                                        780. -
                                                                        781. toString
                                                                        782. +
                                                                        783. toString
                                                                        784. whereArrayContainsAll
                                                                        785. whereContainedIn
                                                                        786. whereContains
                                                                        787. @@ -167,7 +167,7 @@
                                                                          QueryBuilder class
                                                                        788. whereWithinRadians
                                                                        789. Operators
                                                                        790. -
                                                                        791. operator ==
                                                                        792. +
                                                                        793. operator ==
                                                                        794. diff --git a/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.or.html b/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.or.html index 1589188b5..15d77a290 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.or.html +++ b/dart/flutter_parse_sdk/QueryBuilder/QueryBuilder.or.html @@ -59,7 +59,7 @@

                                                                          QueryBuilder< QueryBuilder<T extends ParseObject>.or(
                                                                          1. T object,
                                                                          2. -
                                                                          3. List<QueryBuilder<T>> list
                                                                          4. +
                                                                          5. List<QueryBuilder<T>> list
                                                                          )

                                                                        @@ -108,11 +108,11 @@

                                                                        QueryBuilder class
                                                                        Properties
                                                                      231. extraOptions
                                                                      232. -
                                                                      233. hashCode
                                                                      234. +
                                                                      235. hashCode
                                                                      236. limiters
                                                                      237. object
                                                                      238. queries
                                                                      239. -
                                                                      240. runtimeType
                                                                      241. +
                                                                      242. runtimeType
                                                                      243. Methods
                                                                      244. buildQueries
                                                                      245. @@ -128,7 +128,7 @@
                                                                        QueryBuilder class
                                                                      246. getLimitersRelational
                                                                      247. includeObject
                                                                      248. keysToReturn
                                                                      249. -
                                                                      250. noSuchMethod
                                                                      251. +
                                                                      252. noSuchMethod
                                                                      253. orderByAscending
                                                                      254. orderByDescending
                                                                      255. query
                                                                      256. @@ -137,7 +137,7 @@
                                                                        QueryBuilder class
                                                                      257. setAmountToSkip
                                                                      258. setLimit
                                                                      259. setRedirectClassNameForKey
                                                                      260. -
                                                                      261. toString
                                                                      262. +
                                                                      263. toString
                                                                      264. whereArrayContainsAll
                                                                      265. whereContainedIn
                                                                      266. whereContains
                                                                      267. @@ -167,7 +167,7 @@
                                                                        QueryBuilder class
                                                                      268. whereWithinRadians
                                                                      269. Operators
                                                                      270. -
                                                                      271. operator ==
                                                                      272. +
                                                                      273. operator ==
                                                                      274. diff --git a/dart/flutter_parse_sdk/QueryBuilder/buildQueries.html b/dart/flutter_parse_sdk/QueryBuilder/buildQueries.html index 34f1a5089..81d07b507 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/buildQueries.html +++ b/dart/flutter_parse_sdk/QueryBuilder/buildQueries.html @@ -59,8 +59,8 @@

                                                                        buildQueries method
                                                                        -String -buildQueries(
                                                                        1. List<MapEntry<String, dynamic>> queries
                                                                        2. +String +buildQueries(
                                                                          1. List<MapEntry<String, dynamic>> queries
                                                                          ) @@ -124,11 +124,11 @@
                                                                          QueryBuilder class
                                                                          Properties
                                                                        3. extraOptions
                                                                        4. -
                                                                        5. hashCode
                                                                        6. +
                                                                        7. hashCode
                                                                        8. limiters
                                                                        9. object
                                                                        10. queries
                                                                        11. -
                                                                        12. runtimeType
                                                                        13. +
                                                                        14. runtimeType
                                                                        15. Methods
                                                                        16. buildQueries
                                                                        17. @@ -144,7 +144,7 @@
                                                                          QueryBuilder class
                                                                        18. getLimitersRelational
                                                                        19. includeObject
                                                                        20. keysToReturn
                                                                        21. -
                                                                        22. noSuchMethod
                                                                        23. +
                                                                        24. noSuchMethod
                                                                        25. orderByAscending
                                                                        26. orderByDescending
                                                                        27. query
                                                                        28. @@ -153,7 +153,7 @@
                                                                          QueryBuilder class
                                                                        29. setAmountToSkip
                                                                        30. setLimit
                                                                        31. setRedirectClassNameForKey
                                                                        32. -
                                                                        33. toString
                                                                        34. +
                                                                        35. toString
                                                                        36. whereArrayContainsAll
                                                                        37. whereContainedIn
                                                                        38. whereContains
                                                                        39. @@ -183,7 +183,7 @@
                                                                          QueryBuilder class
                                                                        40. whereWithinRadians
                                                                        41. Operators
                                                                        42. -
                                                                        43. operator ==
                                                                        44. +
                                                                        45. operator ==
                                                                        46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/buildQuery.html b/dart/flutter_parse_sdk/QueryBuilder/buildQuery.html index c113f53f9..a8128f3eb 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/buildQuery.html +++ b/dart/flutter_parse_sdk/QueryBuilder/buildQuery.html @@ -59,7 +59,7 @@

                                                                          buildQuery method
                                                                          -String +String buildQuery() @@ -114,11 +114,11 @@
                                                                          QueryBuilder class
                                                                          Properties
                                                                        47. extraOptions
                                                                        48. -
                                                                        49. hashCode
                                                                        50. +
                                                                        51. hashCode
                                                                        52. limiters
                                                                        53. object
                                                                        54. queries
                                                                        55. -
                                                                        56. runtimeType
                                                                        57. +
                                                                        58. runtimeType
                                                                        59. Methods
                                                                        60. buildQueries
                                                                        61. @@ -134,7 +134,7 @@
                                                                          QueryBuilder class
                                                                        62. getLimitersRelational
                                                                        63. includeObject
                                                                        64. keysToReturn
                                                                        65. -
                                                                        66. noSuchMethod
                                                                        67. +
                                                                        68. noSuchMethod
                                                                        69. orderByAscending
                                                                        70. orderByDescending
                                                                        71. query
                                                                        72. @@ -143,7 +143,7 @@
                                                                          QueryBuilder class
                                                                        73. setAmountToSkip
                                                                        74. setLimit
                                                                        75. setRedirectClassNameForKey
                                                                        76. -
                                                                        77. toString
                                                                        78. +
                                                                        79. toString
                                                                        80. whereArrayContainsAll
                                                                        81. whereContainedIn
                                                                        82. whereContains
                                                                        83. @@ -173,7 +173,7 @@
                                                                          QueryBuilder class
                                                                        84. whereWithinRadians
                                                                        85. Operators
                                                                        86. -
                                                                        87. operator ==
                                                                        88. +
                                                                        89. operator ==
                                                                        90. diff --git a/dart/flutter_parse_sdk/QueryBuilder/count.html b/dart/flutter_parse_sdk/QueryBuilder/count.html index 2e2f1cf0b..4de598b2e 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/count.html +++ b/dart/flutter_parse_sdk/QueryBuilder/count.html @@ -59,7 +59,7 @@

                                                                          count method
                                                                          -Future<ParseResponse> +Future<ParseResponse> count() @@ -113,11 +113,11 @@
                                                                          QueryBuilder class
                                                                          Properties
                                                                        91. extraOptions
                                                                        92. -
                                                                        93. hashCode
                                                                        94. +
                                                                        95. hashCode
                                                                        96. limiters
                                                                        97. object
                                                                        98. queries
                                                                        99. -
                                                                        100. runtimeType
                                                                        101. +
                                                                        102. runtimeType
                                                                        103. Methods
                                                                        104. buildQueries
                                                                        105. @@ -133,7 +133,7 @@
                                                                          QueryBuilder class
                                                                        106. getLimitersRelational
                                                                        107. includeObject
                                                                        108. keysToReturn
                                                                        109. -
                                                                        110. noSuchMethod
                                                                        111. +
                                                                        112. noSuchMethod
                                                                        113. orderByAscending
                                                                        114. orderByDescending
                                                                        115. query
                                                                        116. @@ -142,7 +142,7 @@
                                                                          QueryBuilder class
                                                                        117. setAmountToSkip
                                                                        118. setLimit
                                                                        119. setRedirectClassNameForKey
                                                                        120. -
                                                                        121. toString
                                                                        122. +
                                                                        123. toString
                                                                        124. whereArrayContainsAll
                                                                        125. whereContainedIn
                                                                        126. whereContains
                                                                        127. @@ -172,7 +172,7 @@
                                                                          QueryBuilder class
                                                                        128. whereWithinRadians
                                                                        129. Operators
                                                                        130. -
                                                                        131. operator ==
                                                                        132. +
                                                                        133. operator ==
                                                                        134. diff --git a/dart/flutter_parse_sdk/QueryBuilder/distinct.html b/dart/flutter_parse_sdk/QueryBuilder/distinct.html index 2a5b92e54..1baa940d7 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/distinct.html +++ b/dart/flutter_parse_sdk/QueryBuilder/distinct.html @@ -59,8 +59,8 @@

                                                                          distinct<U ex
                                                                          -Future<ParseResponse> -distinct<U extends ParseObject>(
                                                                          1. String className
                                                                          2. +Future<ParseResponse> +distinct<U extends ParseObject>(
                                                                            1. String className
                                                                            ) @@ -113,11 +113,11 @@
                                                                            QueryBuilder class
                                                                            Properties
                                                                          3. extraOptions
                                                                          4. -
                                                                          5. hashCode
                                                                          6. +
                                                                          7. hashCode
                                                                          8. limiters
                                                                          9. object
                                                                          10. queries
                                                                          11. -
                                                                          12. runtimeType
                                                                          13. +
                                                                          14. runtimeType
                                                                          15. Methods
                                                                          16. buildQueries
                                                                          17. @@ -133,7 +133,7 @@
                                                                            QueryBuilder class
                                                                          18. getLimitersRelational
                                                                          19. includeObject
                                                                          20. keysToReturn
                                                                          21. -
                                                                          22. noSuchMethod
                                                                          23. +
                                                                          24. noSuchMethod
                                                                          25. orderByAscending
                                                                          26. orderByDescending
                                                                          27. query
                                                                          28. @@ -142,7 +142,7 @@
                                                                            QueryBuilder class
                                                                          29. setAmountToSkip
                                                                          30. setLimit
                                                                          31. setRedirectClassNameForKey
                                                                          32. -
                                                                          33. toString
                                                                          34. +
                                                                          35. toString
                                                                          36. whereArrayContainsAll
                                                                          37. whereContainedIn
                                                                          38. whereContains
                                                                          39. @@ -172,7 +172,7 @@
                                                                            QueryBuilder class
                                                                          40. whereWithinRadians
                                                                          41. Operators
                                                                          42. -
                                                                          43. operator ==
                                                                          44. +
                                                                          45. operator ==
                                                                          46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/dontSelectKeys.html b/dart/flutter_parse_sdk/QueryBuilder/dontSelectKeys.html index 1a75cb3c4..a7d710ffe 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/dontSelectKeys.html +++ b/dart/flutter_parse_sdk/QueryBuilder/dontSelectKeys.html @@ -60,7 +60,7 @@

                                                                            dontSelectKeys method void -dontSelectKeys(
                                                                            1. String column,
                                                                            2. +dontSelectKeys(
                                                                              1. String column,
                                                                              2. dynamic value
                                                                              ) @@ -69,7 +69,7 @@

                                                                              dontSelectKeys method

                                                                          -

                                                                          Returns an object where the String column doesn't select

                                                                          +

                                                                          Returns an object where the String column doesn't select

                                                                          @@ -116,11 +116,11 @@
                                                                          QueryBuilder class
                                                                          Properties
                                                                        135. extraOptions
                                                                        136. -
                                                                        137. hashCode
                                                                        138. +
                                                                        139. hashCode
                                                                        140. limiters
                                                                        141. object
                                                                        142. queries
                                                                        143. -
                                                                        144. runtimeType
                                                                        145. +
                                                                        146. runtimeType
                                                                        147. Methods
                                                                        148. buildQueries
                                                                        149. @@ -136,7 +136,7 @@
                                                                          QueryBuilder class
                                                                        150. getLimitersRelational
                                                                        151. includeObject
                                                                        152. keysToReturn
                                                                        153. -
                                                                        154. noSuchMethod
                                                                        155. +
                                                                        156. noSuchMethod
                                                                        157. orderByAscending
                                                                        158. orderByDescending
                                                                        159. query
                                                                        160. @@ -145,7 +145,7 @@
                                                                          QueryBuilder class
                                                                        161. setAmountToSkip
                                                                        162. setLimit
                                                                        163. setRedirectClassNameForKey
                                                                        164. -
                                                                        165. toString
                                                                        166. +
                                                                        167. toString
                                                                        168. whereArrayContainsAll
                                                                        169. whereContainedIn
                                                                        170. whereContains
                                                                        171. @@ -175,7 +175,7 @@
                                                                          QueryBuilder class
                                                                        172. whereWithinRadians
                                                                        173. Operators
                                                                        174. -
                                                                        175. operator ==
                                                                        176. +
                                                                        177. operator ==
                                                                        178. diff --git a/dart/flutter_parse_sdk/QueryBuilder/excludeKeys.html b/dart/flutter_parse_sdk/QueryBuilder/excludeKeys.html index 843751eee..359736658 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/excludeKeys.html +++ b/dart/flutter_parse_sdk/QueryBuilder/excludeKeys.html @@ -60,7 +60,7 @@

                                                                          excludeKeys method void -excludeKeys(
                                                                          1. List<String> keys
                                                                          2. +excludeKeys(
                                                                            1. List<String> keys
                                                                            ) @@ -69,7 +69,7 @@

                                                                            excludeKeys method

                                                                            Exclude specific fields from the returned query

                                                                            -

                                                                            String keys not will return the columns of a result you want the data for

                                                                            +

                                                                            String keys not will return the columns of a result you want the data for

                                                                            @@ -115,11 +115,11 @@

                                                                            QueryBuilder class
                                                                            Properties
                                                                          3. extraOptions
                                                                          4. -
                                                                          5. hashCode
                                                                          6. +
                                                                          7. hashCode
                                                                          8. limiters
                                                                          9. object
                                                                          10. queries
                                                                          11. -
                                                                          12. runtimeType
                                                                          13. +
                                                                          14. runtimeType
                                                                          15. Methods
                                                                          16. buildQueries
                                                                          17. @@ -135,7 +135,7 @@
                                                                            QueryBuilder class
                                                                          18. getLimitersRelational
                                                                          19. includeObject
                                                                          20. keysToReturn
                                                                          21. -
                                                                          22. noSuchMethod
                                                                          23. +
                                                                          24. noSuchMethod
                                                                          25. orderByAscending
                                                                          26. orderByDescending
                                                                          27. query
                                                                          28. @@ -144,7 +144,7 @@
                                                                            QueryBuilder class
                                                                          29. setAmountToSkip
                                                                          30. setLimit
                                                                          31. setRedirectClassNameForKey
                                                                          32. -
                                                                          33. toString
                                                                          34. +
                                                                          35. toString
                                                                          36. whereArrayContainsAll
                                                                          37. whereContainedIn
                                                                          38. whereContains
                                                                          39. @@ -174,7 +174,7 @@
                                                                            QueryBuilder class
                                                                          40. whereWithinRadians
                                                                          41. Operators
                                                                          42. -
                                                                          43. operator ==
                                                                          44. +
                                                                          45. operator ==
                                                                          46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/extraOptions.html b/dart/flutter_parse_sdk/QueryBuilder/extraOptions.html index 095161083..fe051ecdf 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/extraOptions.html +++ b/dart/flutter_parse_sdk/QueryBuilder/extraOptions.html @@ -58,7 +58,7 @@

                                                                            extraOptions property
                                                                            - Map<String, dynamic> + Map<String, dynamic> extraOptions
                                                                            final
                                                                            @@ -105,11 +105,11 @@
                                                                            QueryBuilder class
                                                                            Properties
                                                                          47. extraOptions
                                                                          48. -
                                                                          49. hashCode
                                                                          50. +
                                                                          51. hashCode
                                                                          52. limiters
                                                                          53. object
                                                                          54. queries
                                                                          55. -
                                                                          56. runtimeType
                                                                          57. +
                                                                          58. runtimeType
                                                                          59. Methods
                                                                          60. buildQueries
                                                                          61. @@ -125,7 +125,7 @@
                                                                            QueryBuilder class
                                                                          62. getLimitersRelational
                                                                          63. includeObject
                                                                          64. keysToReturn
                                                                          65. -
                                                                          66. noSuchMethod
                                                                          67. +
                                                                          68. noSuchMethod
                                                                          69. orderByAscending
                                                                          70. orderByDescending
                                                                          71. query
                                                                          72. @@ -134,7 +134,7 @@
                                                                            QueryBuilder class
                                                                          73. setAmountToSkip
                                                                          74. setLimit
                                                                          75. setRedirectClassNameForKey
                                                                          76. -
                                                                          77. toString
                                                                          78. +
                                                                          79. toString
                                                                          80. whereArrayContainsAll
                                                                          81. whereContainedIn
                                                                          82. whereContains
                                                                          83. @@ -164,7 +164,7 @@
                                                                            QueryBuilder class
                                                                          84. whereWithinRadians
                                                                          85. Operators
                                                                          86. -
                                                                          87. operator ==
                                                                          88. +
                                                                          89. operator ==
                                                                          90. diff --git a/dart/flutter_parse_sdk/QueryBuilder/find.html b/dart/flutter_parse_sdk/QueryBuilder/find.html index 7b39472b2..b6c59ebc7 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/find.html +++ b/dart/flutter_parse_sdk/QueryBuilder/find.html @@ -59,7 +59,7 @@

                                                                            find method
                                                                            -Future<List<T>> +Future<List<T>> find() @@ -118,11 +118,11 @@
                                                                            QueryBuilder class
                                                                            Properties
                                                                          91. extraOptions
                                                                          92. -
                                                                          93. hashCode
                                                                          94. +
                                                                          95. hashCode
                                                                          96. limiters
                                                                          97. object
                                                                          98. queries
                                                                          99. -
                                                                          100. runtimeType
                                                                          101. +
                                                                          102. runtimeType
                                                                          103. Methods
                                                                          104. buildQueries
                                                                          105. @@ -138,7 +138,7 @@
                                                                            QueryBuilder class
                                                                          106. getLimitersRelational
                                                                          107. includeObject
                                                                          108. keysToReturn
                                                                          109. -
                                                                          110. noSuchMethod
                                                                          111. +
                                                                          112. noSuchMethod
                                                                          113. orderByAscending
                                                                          114. orderByDescending
                                                                          115. query
                                                                          116. @@ -147,7 +147,7 @@
                                                                            QueryBuilder class
                                                                          117. setAmountToSkip
                                                                          118. setLimit
                                                                          119. setRedirectClassNameForKey
                                                                          120. -
                                                                          121. toString
                                                                          122. +
                                                                          123. toString
                                                                          124. whereArrayContainsAll
                                                                          125. whereContainedIn
                                                                          126. whereContains
                                                                          127. @@ -177,7 +177,7 @@
                                                                            QueryBuilder class
                                                                          128. whereWithinRadians
                                                                          129. Operators
                                                                          130. -
                                                                          131. operator ==
                                                                          132. +
                                                                          133. operator ==
                                                                          134. diff --git a/dart/flutter_parse_sdk/QueryBuilder/first.html b/dart/flutter_parse_sdk/QueryBuilder/first.html index eba69d7da..58afdce08 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/first.html +++ b/dart/flutter_parse_sdk/QueryBuilder/first.html @@ -59,7 +59,7 @@

                                                                            first method
                                                                            -Future<T?> +Future<T?> first() @@ -119,11 +119,11 @@
                                                                            QueryBuilder class
                                                                            Properties
                                                                          135. extraOptions
                                                                          136. -
                                                                          137. hashCode
                                                                          138. +
                                                                          139. hashCode
                                                                          140. limiters
                                                                          141. object
                                                                          142. queries
                                                                          143. -
                                                                          144. runtimeType
                                                                          145. +
                                                                          146. runtimeType
                                                                          147. Methods
                                                                          148. buildQueries
                                                                          149. @@ -139,7 +139,7 @@
                                                                            QueryBuilder class
                                                                          150. getLimitersRelational
                                                                          151. includeObject
                                                                          152. keysToReturn
                                                                          153. -
                                                                          154. noSuchMethod
                                                                          155. +
                                                                          156. noSuchMethod
                                                                          157. orderByAscending
                                                                          158. orderByDescending
                                                                          159. query
                                                                          160. @@ -148,7 +148,7 @@
                                                                            QueryBuilder class
                                                                          161. setAmountToSkip
                                                                          162. setLimit
                                                                          163. setRedirectClassNameForKey
                                                                          164. -
                                                                          165. toString
                                                                          166. +
                                                                          167. toString
                                                                          168. whereArrayContainsAll
                                                                          169. whereContainedIn
                                                                          170. whereContains
                                                                          171. @@ -178,7 +178,7 @@
                                                                            QueryBuilder class
                                                                          172. whereWithinRadians
                                                                          173. Operators
                                                                          174. -
                                                                          175. operator ==
                                                                          176. +
                                                                          177. operator ==
                                                                          178. diff --git a/dart/flutter_parse_sdk/QueryBuilder/getExtraOptions.html b/dart/flutter_parse_sdk/QueryBuilder/getExtraOptions.html index d177a15d7..e6d298322 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/getExtraOptions.html +++ b/dart/flutter_parse_sdk/QueryBuilder/getExtraOptions.html @@ -59,8 +59,8 @@

                                                                            getExtraOptions method
                                                                            -String -getExtraOptions(
                                                                            1. Map<String, dynamic> map
                                                                            2. +String +getExtraOptions(
                                                                              1. Map<String, dynamic> map
                                                                              ) @@ -118,11 +118,11 @@
                                                                              QueryBuilder class
                                                                              Properties
                                                                            3. extraOptions
                                                                            4. -
                                                                            5. hashCode
                                                                            6. +
                                                                            7. hashCode
                                                                            8. limiters
                                                                            9. object
                                                                            10. queries
                                                                            11. -
                                                                            12. runtimeType
                                                                            13. +
                                                                            14. runtimeType
                                                                            15. Methods
                                                                            16. buildQueries
                                                                            17. @@ -138,7 +138,7 @@
                                                                              QueryBuilder class
                                                                            18. getLimitersRelational
                                                                            19. includeObject
                                                                            20. keysToReturn
                                                                            21. -
                                                                            22. noSuchMethod
                                                                            23. +
                                                                            24. noSuchMethod
                                                                            25. orderByAscending
                                                                            26. orderByDescending
                                                                            27. query
                                                                            28. @@ -147,7 +147,7 @@
                                                                              QueryBuilder class
                                                                            29. setAmountToSkip
                                                                            30. setLimit
                                                                            31. setRedirectClassNameForKey
                                                                            32. -
                                                                            33. toString
                                                                            34. +
                                                                            35. toString
                                                                            36. whereArrayContainsAll
                                                                            37. whereContainedIn
                                                                            38. whereContains
                                                                            39. @@ -177,7 +177,7 @@
                                                                              QueryBuilder class
                                                                            40. whereWithinRadians
                                                                            41. Operators
                                                                            42. -
                                                                            43. operator ==
                                                                            44. +
                                                                            45. operator ==
                                                                            46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/getLimiters.html b/dart/flutter_parse_sdk/QueryBuilder/getLimiters.html index c1af76db2..78f1ddf5b 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/getLimiters.html +++ b/dart/flutter_parse_sdk/QueryBuilder/getLimiters.html @@ -59,8 +59,8 @@

                                                                              getLimiters method
                                                                              -String -getLimiters(
                                                                              1. Map<String, dynamic> map
                                                                              2. +String +getLimiters(
                                                                                1. Map<String, dynamic> map
                                                                                ) @@ -118,11 +118,11 @@
                                                                                QueryBuilder class
                                                                                Properties
                                                                              3. extraOptions
                                                                              4. -
                                                                              5. hashCode
                                                                              6. +
                                                                              7. hashCode
                                                                              8. limiters
                                                                              9. object
                                                                              10. queries
                                                                              11. -
                                                                              12. runtimeType
                                                                              13. +
                                                                              14. runtimeType
                                                                              15. Methods
                                                                              16. buildQueries
                                                                              17. @@ -138,7 +138,7 @@
                                                                                QueryBuilder class
                                                                              18. getLimitersRelational
                                                                              19. includeObject
                                                                              20. keysToReturn
                                                                              21. -
                                                                              22. noSuchMethod
                                                                              23. +
                                                                              24. noSuchMethod
                                                                              25. orderByAscending
                                                                              26. orderByDescending
                                                                              27. query
                                                                              28. @@ -147,7 +147,7 @@
                                                                                QueryBuilder class
                                                                              29. setAmountToSkip
                                                                              30. setLimit
                                                                              31. setRedirectClassNameForKey
                                                                              32. -
                                                                              33. toString
                                                                              34. +
                                                                              35. toString
                                                                              36. whereArrayContainsAll
                                                                              37. whereContainedIn
                                                                              38. whereContains
                                                                              39. @@ -177,7 +177,7 @@
                                                                                QueryBuilder class
                                                                              40. whereWithinRadians
                                                                              41. Operators
                                                                              42. -
                                                                              43. operator ==
                                                                              44. +
                                                                              45. operator ==
                                                                              46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/getLimitersRelational.html b/dart/flutter_parse_sdk/QueryBuilder/getLimitersRelational.html index 92161f716..10540d7d5 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/getLimitersRelational.html +++ b/dart/flutter_parse_sdk/QueryBuilder/getLimitersRelational.html @@ -59,8 +59,8 @@

                                                                                getLimitersRelational method
                                                                                -String -getLimitersRelational(
                                                                                1. Map<String, dynamic> map
                                                                                2. +String +getLimitersRelational(
                                                                                  1. Map<String, dynamic> map
                                                                                  ) @@ -122,11 +122,11 @@
                                                                                  QueryBuilder class
                                                                                  Properties
                                                                                3. extraOptions
                                                                                4. -
                                                                                5. hashCode
                                                                                6. +
                                                                                7. hashCode
                                                                                8. limiters
                                                                                9. object
                                                                                10. queries
                                                                                11. -
                                                                                12. runtimeType
                                                                                13. +
                                                                                14. runtimeType
                                                                                15. Methods
                                                                                16. buildQueries
                                                                                17. @@ -142,7 +142,7 @@
                                                                                  QueryBuilder class
                                                                                18. getLimitersRelational
                                                                                19. includeObject
                                                                                20. keysToReturn
                                                                                21. -
                                                                                22. noSuchMethod
                                                                                23. +
                                                                                24. noSuchMethod
                                                                                25. orderByAscending
                                                                                26. orderByDescending
                                                                                27. query
                                                                                28. @@ -151,7 +151,7 @@
                                                                                  QueryBuilder class
                                                                                29. setAmountToSkip
                                                                                30. setLimit
                                                                                31. setRedirectClassNameForKey
                                                                                32. -
                                                                                33. toString
                                                                                34. +
                                                                                35. toString
                                                                                36. whereArrayContainsAll
                                                                                37. whereContainedIn
                                                                                38. whereContains
                                                                                39. @@ -181,7 +181,7 @@
                                                                                  QueryBuilder class
                                                                                40. whereWithinRadians
                                                                                41. Operators
                                                                                42. -
                                                                                43. operator ==
                                                                                44. +
                                                                                45. operator ==
                                                                                46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/includeObject.html b/dart/flutter_parse_sdk/QueryBuilder/includeObject.html index 8ed48aced..748aa396e 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/includeObject.html +++ b/dart/flutter_parse_sdk/QueryBuilder/includeObject.html @@ -60,7 +60,7 @@

                                                                                  includeObject method void -includeObject(
                                                                                  1. List<String> objectTypes
                                                                                  2. +includeObject(
                                                                                    1. List<String> objectTypes
                                                                                    ) @@ -114,11 +114,11 @@
                                                                                    QueryBuilder class
                                                                                    Properties
                                                                                  3. extraOptions
                                                                                  4. -
                                                                                  5. hashCode
                                                                                  6. +
                                                                                  7. hashCode
                                                                                  8. limiters
                                                                                  9. object
                                                                                  10. queries
                                                                                  11. -
                                                                                  12. runtimeType
                                                                                  13. +
                                                                                  14. runtimeType
                                                                                  15. Methods
                                                                                  16. buildQueries
                                                                                  17. @@ -134,7 +134,7 @@
                                                                                    QueryBuilder class
                                                                                  18. getLimitersRelational
                                                                                  19. includeObject
                                                                                  20. keysToReturn
                                                                                  21. -
                                                                                  22. noSuchMethod
                                                                                  23. +
                                                                                  24. noSuchMethod
                                                                                  25. orderByAscending
                                                                                  26. orderByDescending
                                                                                  27. query
                                                                                  28. @@ -143,7 +143,7 @@
                                                                                    QueryBuilder class
                                                                                  29. setAmountToSkip
                                                                                  30. setLimit
                                                                                  31. setRedirectClassNameForKey
                                                                                  32. -
                                                                                  33. toString
                                                                                  34. +
                                                                                  35. toString
                                                                                  36. whereArrayContainsAll
                                                                                  37. whereContainedIn
                                                                                  38. whereContains
                                                                                  39. @@ -173,7 +173,7 @@
                                                                                    QueryBuilder class
                                                                                  40. whereWithinRadians
                                                                                  41. Operators
                                                                                  42. -
                                                                                  43. operator ==
                                                                                  44. +
                                                                                  45. operator ==
                                                                                  46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/keysToReturn.html b/dart/flutter_parse_sdk/QueryBuilder/keysToReturn.html index 20d3034b6..744a78795 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/keysToReturn.html +++ b/dart/flutter_parse_sdk/QueryBuilder/keysToReturn.html @@ -60,7 +60,7 @@

                                                                                    keysToReturn method void -keysToReturn(
                                                                                    1. List<String> keys
                                                                                    2. +keysToReturn(
                                                                                      1. List<String> keys
                                                                                      ) @@ -69,7 +69,7 @@

                                                                                      keysToReturn method

                                                                                      Define which keys in an object to return.

                                                                                      -

                                                                                      String keys will only return the columns of a result you want the data for, +

                                                                                      String keys will only return the columns of a result you want the data for, this is useful for large objects

                                                                                      @@ -116,11 +116,11 @@

                                                                                      QueryBuilder class
                                                                                      Properties
                                                                                    3. extraOptions
                                                                                    4. -
                                                                                    5. hashCode
                                                                                    6. +
                                                                                    7. hashCode
                                                                                    8. limiters
                                                                                    9. object
                                                                                    10. queries
                                                                                    11. -
                                                                                    12. runtimeType
                                                                                    13. +
                                                                                    14. runtimeType
                                                                                    15. Methods
                                                                                    16. buildQueries
                                                                                    17. @@ -136,7 +136,7 @@
                                                                                      QueryBuilder class
                                                                                    18. getLimitersRelational
                                                                                    19. includeObject
                                                                                    20. keysToReturn
                                                                                    21. -
                                                                                    22. noSuchMethod
                                                                                    23. +
                                                                                    24. noSuchMethod
                                                                                    25. orderByAscending
                                                                                    26. orderByDescending
                                                                                    27. query
                                                                                    28. @@ -145,7 +145,7 @@
                                                                                      QueryBuilder class
                                                                                    29. setAmountToSkip
                                                                                    30. setLimit
                                                                                    31. setRedirectClassNameForKey
                                                                                    32. -
                                                                                    33. toString
                                                                                    34. +
                                                                                    35. toString
                                                                                    36. whereArrayContainsAll
                                                                                    37. whereContainedIn
                                                                                    38. whereContains
                                                                                    39. @@ -175,7 +175,7 @@
                                                                                      QueryBuilder class
                                                                                    40. whereWithinRadians
                                                                                    41. Operators
                                                                                    42. -
                                                                                    43. operator ==
                                                                                    44. +
                                                                                    45. operator ==
                                                                                    46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/limiters.html b/dart/flutter_parse_sdk/QueryBuilder/limiters.html index 721b85758..092910008 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/limiters.html +++ b/dart/flutter_parse_sdk/QueryBuilder/limiters.html @@ -58,7 +58,7 @@

                                                                                      limiters property
                                                                                      - Map<String, dynamic> + Map<String, dynamic> limiters
                                                                                      final
                                                                                      @@ -105,11 +105,11 @@
                                                                                      QueryBuilder class
                                                                                      Properties
                                                                                    47. extraOptions
                                                                                    48. -
                                                                                    49. hashCode
                                                                                    50. +
                                                                                    51. hashCode
                                                                                    52. limiters
                                                                                    53. object
                                                                                    54. queries
                                                                                    55. -
                                                                                    56. runtimeType
                                                                                    57. +
                                                                                    58. runtimeType
                                                                                    59. Methods
                                                                                    60. buildQueries
                                                                                    61. @@ -125,7 +125,7 @@
                                                                                      QueryBuilder class
                                                                                    62. getLimitersRelational
                                                                                    63. includeObject
                                                                                    64. keysToReturn
                                                                                    65. -
                                                                                    66. noSuchMethod
                                                                                    67. +
                                                                                    68. noSuchMethod
                                                                                    69. orderByAscending
                                                                                    70. orderByDescending
                                                                                    71. query
                                                                                    72. @@ -134,7 +134,7 @@
                                                                                      QueryBuilder class
                                                                                    73. setAmountToSkip
                                                                                    74. setLimit
                                                                                    75. setRedirectClassNameForKey
                                                                                    76. -
                                                                                    77. toString
                                                                                    78. +
                                                                                    79. toString
                                                                                    80. whereArrayContainsAll
                                                                                    81. whereContainedIn
                                                                                    82. whereContains
                                                                                    83. @@ -164,7 +164,7 @@
                                                                                      QueryBuilder class
                                                                                    84. whereWithinRadians
                                                                                    85. Operators
                                                                                    86. -
                                                                                    87. operator ==
                                                                                    88. +
                                                                                    89. operator ==
                                                                                    90. diff --git a/dart/flutter_parse_sdk/QueryBuilder/object.html b/dart/flutter_parse_sdk/QueryBuilder/object.html index a8687835c..eb11caa8c 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/object.html +++ b/dart/flutter_parse_sdk/QueryBuilder/object.html @@ -105,11 +105,11 @@
                                                                                      QueryBuilder class
                                                                                      Properties
                                                                                    91. extraOptions
                                                                                    92. -
                                                                                    93. hashCode
                                                                                    94. +
                                                                                    95. hashCode
                                                                                    96. limiters
                                                                                    97. object
                                                                                    98. queries
                                                                                    99. -
                                                                                    100. runtimeType
                                                                                    101. +
                                                                                    102. runtimeType
                                                                                    103. Methods
                                                                                    104. buildQueries
                                                                                    105. @@ -125,7 +125,7 @@
                                                                                      QueryBuilder class
                                                                                    106. getLimitersRelational
                                                                                    107. includeObject
                                                                                    108. keysToReturn
                                                                                    109. -
                                                                                    110. noSuchMethod
                                                                                    111. +
                                                                                    112. noSuchMethod
                                                                                    113. orderByAscending
                                                                                    114. orderByDescending
                                                                                    115. query
                                                                                    116. @@ -134,7 +134,7 @@
                                                                                      QueryBuilder class
                                                                                    117. setAmountToSkip
                                                                                    118. setLimit
                                                                                    119. setRedirectClassNameForKey
                                                                                    120. -
                                                                                    121. toString
                                                                                    122. +
                                                                                    123. toString
                                                                                    124. whereArrayContainsAll
                                                                                    125. whereContainedIn
                                                                                    126. whereContains
                                                                                    127. @@ -164,7 +164,7 @@
                                                                                      QueryBuilder class
                                                                                    128. whereWithinRadians
                                                                                    129. Operators
                                                                                    130. -
                                                                                    131. operator ==
                                                                                    132. +
                                                                                    133. operator ==
                                                                                    134. diff --git a/dart/flutter_parse_sdk/QueryBuilder/orderByAscending.html b/dart/flutter_parse_sdk/QueryBuilder/orderByAscending.html index e1e4de067..9bb1e4997 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/orderByAscending.html +++ b/dart/flutter_parse_sdk/QueryBuilder/orderByAscending.html @@ -60,7 +60,7 @@

                                                                                      orderByAscending method void -orderByAscending(
                                                                                      1. String order
                                                                                      2. +orderByAscending(
                                                                                        1. String order
                                                                                        ) @@ -69,7 +69,7 @@

                                                                                        orderByAscending method

                                                                                        Sorts the results in ascending order.

                                                                                        -

                                                                                        String order will be the column of the table that the results are +

                                                                                        String order will be the column of the table that the results are ordered by

                                                                                        @@ -120,11 +120,11 @@

                                                                                        QueryBuilder class
                                                                                        Properties
                                                                                      3. extraOptions
                                                                                      4. -
                                                                                      5. hashCode
                                                                                      6. +
                                                                                      7. hashCode
                                                                                      8. limiters
                                                                                      9. object
                                                                                      10. queries
                                                                                      11. -
                                                                                      12. runtimeType
                                                                                      13. +
                                                                                      14. runtimeType
                                                                                      15. Methods
                                                                                      16. buildQueries
                                                                                      17. @@ -140,7 +140,7 @@
                                                                                        QueryBuilder class
                                                                                      18. getLimitersRelational
                                                                                      19. includeObject
                                                                                      20. keysToReturn
                                                                                      21. -
                                                                                      22. noSuchMethod
                                                                                      23. +
                                                                                      24. noSuchMethod
                                                                                      25. orderByAscending
                                                                                      26. orderByDescending
                                                                                      27. query
                                                                                      28. @@ -149,7 +149,7 @@
                                                                                        QueryBuilder class
                                                                                      29. setAmountToSkip
                                                                                      30. setLimit
                                                                                      31. setRedirectClassNameForKey
                                                                                      32. -
                                                                                      33. toString
                                                                                      34. +
                                                                                      35. toString
                                                                                      36. whereArrayContainsAll
                                                                                      37. whereContainedIn
                                                                                      38. whereContains
                                                                                      39. @@ -179,7 +179,7 @@
                                                                                        QueryBuilder class
                                                                                      40. whereWithinRadians
                                                                                      41. Operators
                                                                                      42. -
                                                                                      43. operator ==
                                                                                      44. +
                                                                                      45. operator ==
                                                                                      46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/orderByDescending.html b/dart/flutter_parse_sdk/QueryBuilder/orderByDescending.html index 3cbe29923..dc17b0632 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/orderByDescending.html +++ b/dart/flutter_parse_sdk/QueryBuilder/orderByDescending.html @@ -60,7 +60,7 @@

                                                                                        orderByDescending method void -orderByDescending(
                                                                                        1. String order
                                                                                        2. +orderByDescending(
                                                                                          1. String order
                                                                                          ) @@ -69,7 +69,7 @@

                                                                                          orderByDescending method

                                                                                          Sorts the results descending order.

                                                                                          -

                                                                                          String order will be the column of the table that the results are +

                                                                                          String order will be the column of the table that the results are ordered by

                                                                                          @@ -120,11 +120,11 @@

                                                                                          QueryBuilder class
                                                                                          Properties
                                                                                        3. extraOptions
                                                                                        4. -
                                                                                        5. hashCode
                                                                                        6. +
                                                                                        7. hashCode
                                                                                        8. limiters
                                                                                        9. object
                                                                                        10. queries
                                                                                        11. -
                                                                                        12. runtimeType
                                                                                        13. +
                                                                                        14. runtimeType
                                                                                        15. Methods
                                                                                        16. buildQueries
                                                                                        17. @@ -140,7 +140,7 @@
                                                                                          QueryBuilder class
                                                                                        18. getLimitersRelational
                                                                                        19. includeObject
                                                                                        20. keysToReturn
                                                                                        21. -
                                                                                        22. noSuchMethod
                                                                                        23. +
                                                                                        24. noSuchMethod
                                                                                        25. orderByAscending
                                                                                        26. orderByDescending
                                                                                        27. query
                                                                                        28. @@ -149,7 +149,7 @@
                                                                                          QueryBuilder class
                                                                                        29. setAmountToSkip
                                                                                        30. setLimit
                                                                                        31. setRedirectClassNameForKey
                                                                                        32. -
                                                                                        33. toString
                                                                                        34. +
                                                                                        35. toString
                                                                                        36. whereArrayContainsAll
                                                                                        37. whereContainedIn
                                                                                        38. whereContains
                                                                                        39. @@ -179,7 +179,7 @@
                                                                                          QueryBuilder class
                                                                                        40. whereWithinRadians
                                                                                        41. Operators
                                                                                        42. -
                                                                                        43. operator ==
                                                                                        44. +
                                                                                        45. operator ==
                                                                                        46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/queries.html b/dart/flutter_parse_sdk/QueryBuilder/queries.html index 0f0b09794..748e2389c 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/queries.html +++ b/dart/flutter_parse_sdk/QueryBuilder/queries.html @@ -58,7 +58,7 @@

                                                                                          queries property
                                                                                          - List<MapEntry<String, dynamic>> + List<MapEntry<String, dynamic>> queries
                                                                                          read / write
                                                                                          @@ -105,11 +105,11 @@
                                                                                          QueryBuilder class
                                                                                          Properties
                                                                                        47. extraOptions
                                                                                        48. -
                                                                                        49. hashCode
                                                                                        50. +
                                                                                        51. hashCode
                                                                                        52. limiters
                                                                                        53. object
                                                                                        54. queries
                                                                                        55. -
                                                                                        56. runtimeType
                                                                                        57. +
                                                                                        58. runtimeType
                                                                                        59. Methods
                                                                                        60. buildQueries
                                                                                        61. @@ -125,7 +125,7 @@
                                                                                          QueryBuilder class
                                                                                        62. getLimitersRelational
                                                                                        63. includeObject
                                                                                        64. keysToReturn
                                                                                        65. -
                                                                                        66. noSuchMethod
                                                                                        67. +
                                                                                        68. noSuchMethod
                                                                                        69. orderByAscending
                                                                                        70. orderByDescending
                                                                                        71. query
                                                                                        72. @@ -134,7 +134,7 @@
                                                                                          QueryBuilder class
                                                                                        73. setAmountToSkip
                                                                                        74. setLimit
                                                                                        75. setRedirectClassNameForKey
                                                                                        76. -
                                                                                        77. toString
                                                                                        78. +
                                                                                        79. toString
                                                                                        80. whereArrayContainsAll
                                                                                        81. whereContainedIn
                                                                                        82. whereContains
                                                                                        83. @@ -164,7 +164,7 @@
                                                                                          QueryBuilder class
                                                                                        84. whereWithinRadians
                                                                                        85. Operators
                                                                                        86. -
                                                                                        87. operator ==
                                                                                        88. +
                                                                                        89. operator ==
                                                                                        90. diff --git a/dart/flutter_parse_sdk/QueryBuilder/query.html b/dart/flutter_parse_sdk/QueryBuilder/query.html index 0c23093d6..753fbdcd9 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/query.html +++ b/dart/flutter_parse_sdk/QueryBuilder/query.html @@ -59,7 +59,7 @@

                                                                                          query<U exten
                                                                                          -Future<ParseResponse> +Future<ParseResponse> query<U extends ParseObject>(
                                                                                          1. {ProgressCallback? progressCallback}
                                                                                          ) @@ -119,11 +119,11 @@
                                                                                          QueryBuilder class
                                                                                          Properties
                                                                                        91. extraOptions
                                                                                        92. -
                                                                                        93. hashCode
                                                                                        94. +
                                                                                        95. hashCode
                                                                                        96. limiters
                                                                                        97. object
                                                                                        98. queries
                                                                                        99. -
                                                                                        100. runtimeType
                                                                                        101. +
                                                                                        102. runtimeType
                                                                                        103. Methods
                                                                                        104. buildQueries
                                                                                        105. @@ -139,7 +139,7 @@
                                                                                          QueryBuilder class
                                                                                        106. getLimitersRelational
                                                                                        107. includeObject
                                                                                        108. keysToReturn
                                                                                        109. -
                                                                                        110. noSuchMethod
                                                                                        111. +
                                                                                        112. noSuchMethod
                                                                                        113. orderByAscending
                                                                                        114. orderByDescending
                                                                                        115. query
                                                                                        116. @@ -148,7 +148,7 @@
                                                                                          QueryBuilder class
                                                                                        117. setAmountToSkip
                                                                                        118. setLimit
                                                                                        119. setRedirectClassNameForKey
                                                                                        120. -
                                                                                        121. toString
                                                                                        122. +
                                                                                        123. toString
                                                                                        124. whereArrayContainsAll
                                                                                        125. whereContainedIn
                                                                                        126. whereContains
                                                                                        127. @@ -178,7 +178,7 @@
                                                                                          QueryBuilder class
                                                                                        128. whereWithinRadians
                                                                                        129. Operators
                                                                                        130. -
                                                                                        131. operator ==
                                                                                        132. +
                                                                                        133. operator ==
                                                                                        134. diff --git a/dart/flutter_parse_sdk/QueryBuilder/regEx.html b/dart/flutter_parse_sdk/QueryBuilder/regEx.html index 07849616f..7a79b861e 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/regEx.html +++ b/dart/flutter_parse_sdk/QueryBuilder/regEx.html @@ -60,8 +60,8 @@

                                                                                          regEx method void -regEx(
                                                                                          1. String column,
                                                                                          2. -
                                                                                          3. String value
                                                                                          4. +regEx(
                                                                                            1. String column,
                                                                                            2. +
                                                                                            3. String value
                                                                                            ) @@ -69,7 +69,7 @@

                                                                                            regEx method

                                                                                          -

                                                                                          Returns an object where the String column has a regEx performed on, +

                                                                                          Returns an object where the String column has a regEx performed on, this can include ^StringsWith, or ^EndsWith. This can be manipulated to the users desire

                                                                                          @@ -117,11 +117,11 @@
                                                                                          QueryBuilder class
                                                                                          Properties
                                                                                        135. extraOptions
                                                                                        136. -
                                                                                        137. hashCode
                                                                                        138. +
                                                                                        139. hashCode
                                                                                        140. limiters
                                                                                        141. object
                                                                                        142. queries
                                                                                        143. -
                                                                                        144. runtimeType
                                                                                        145. +
                                                                                        146. runtimeType
                                                                                        147. Methods
                                                                                        148. buildQueries
                                                                                        149. @@ -137,7 +137,7 @@
                                                                                          QueryBuilder class
                                                                                        150. getLimitersRelational
                                                                                        151. includeObject
                                                                                        152. keysToReturn
                                                                                        153. -
                                                                                        154. noSuchMethod
                                                                                        155. +
                                                                                        156. noSuchMethod
                                                                                        157. orderByAscending
                                                                                        158. orderByDescending
                                                                                        159. query
                                                                                        160. @@ -146,7 +146,7 @@
                                                                                          QueryBuilder class
                                                                                        161. setAmountToSkip
                                                                                        162. setLimit
                                                                                        163. setRedirectClassNameForKey
                                                                                        164. -
                                                                                        165. toString
                                                                                        166. +
                                                                                        167. toString
                                                                                        168. whereArrayContainsAll
                                                                                        169. whereContainedIn
                                                                                        170. whereContains
                                                                                        171. @@ -176,7 +176,7 @@
                                                                                          QueryBuilder class
                                                                                        172. whereWithinRadians
                                                                                        173. Operators
                                                                                        174. -
                                                                                        175. operator ==
                                                                                        176. +
                                                                                        177. operator ==
                                                                                        178. diff --git a/dart/flutter_parse_sdk/QueryBuilder/selectKeys.html b/dart/flutter_parse_sdk/QueryBuilder/selectKeys.html index fb02eecf2..208548efd 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/selectKeys.html +++ b/dart/flutter_parse_sdk/QueryBuilder/selectKeys.html @@ -60,7 +60,7 @@

                                                                                          selectKeys method void -selectKeys(
                                                                                          1. String column,
                                                                                          2. +selectKeys(
                                                                                            1. String column,
                                                                                            2. dynamic value
                                                                                            ) @@ -69,7 +69,7 @@

                                                                                            selectKeys method

                                                                                          -

                                                                                          Returns an object where the String column contains select

                                                                                          +

                                                                                          Returns an object where the String column contains select

                                                                                          @@ -116,11 +116,11 @@

                                                                                          QueryBuilder class
                                                                                          Properties
                                                                                        179. extraOptions
                                                                                        180. -
                                                                                        181. hashCode
                                                                                        182. +
                                                                                        183. hashCode
                                                                                        184. limiters
                                                                                        185. object
                                                                                        186. queries
                                                                                        187. -
                                                                                        188. runtimeType
                                                                                        189. +
                                                                                        190. runtimeType
                                                                                        191. Methods
                                                                                        192. buildQueries
                                                                                        193. @@ -136,7 +136,7 @@
                                                                                          QueryBuilder class
                                                                                        194. getLimitersRelational
                                                                                        195. includeObject
                                                                                        196. keysToReturn
                                                                                        197. -
                                                                                        198. noSuchMethod
                                                                                        199. +
                                                                                        200. noSuchMethod
                                                                                        201. orderByAscending
                                                                                        202. orderByDescending
                                                                                        203. query
                                                                                        204. @@ -145,7 +145,7 @@
                                                                                          QueryBuilder class
                                                                                        205. setAmountToSkip
                                                                                        206. setLimit
                                                                                        207. setRedirectClassNameForKey
                                                                                        208. -
                                                                                        209. toString
                                                                                        210. +
                                                                                        211. toString
                                                                                        212. whereArrayContainsAll
                                                                                        213. whereContainedIn
                                                                                        214. whereContains
                                                                                        215. @@ -175,7 +175,7 @@
                                                                                          QueryBuilder class
                                                                                        216. whereWithinRadians
                                                                                        217. Operators
                                                                                        218. -
                                                                                        219. operator ==
                                                                                        220. +
                                                                                        221. operator ==
                                                                                        222. diff --git a/dart/flutter_parse_sdk/QueryBuilder/setAmountToSkip.html b/dart/flutter_parse_sdk/QueryBuilder/setAmountToSkip.html index 40ca940d6..b8d42a870 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/setAmountToSkip.html +++ b/dart/flutter_parse_sdk/QueryBuilder/setAmountToSkip.html @@ -60,7 +60,7 @@

                                                                                          setAmountToSkip method void -setAmountToSkip(
                                                                                          1. int skip
                                                                                          2. +setAmountToSkip(
                                                                                            1. int skip
                                                                                            ) @@ -68,7 +68,7 @@

                                                                                            setAmountToSkip method

                                                                                      -

                                                                                      Useful for pagination, skips int amount of results

                                                                                      +

                                                                                      Useful for pagination, skips int amount of results

                                                                                      @@ -114,11 +114,11 @@

                                                                                      QueryBuilder class
                                                                                      Properties
                                                                                    135. extraOptions
                                                                                    136. -
                                                                                    137. hashCode
                                                                                    138. +
                                                                                    139. hashCode
                                                                                    140. limiters
                                                                                    141. object
                                                                                    142. queries
                                                                                    143. -
                                                                                    144. runtimeType
                                                                                    145. +
                                                                                    146. runtimeType
                                                                                    147. Methods
                                                                                    148. buildQueries
                                                                                    149. @@ -134,7 +134,7 @@
                                                                                      QueryBuilder class
                                                                                    150. getLimitersRelational
                                                                                    151. includeObject
                                                                                    152. keysToReturn
                                                                                    153. -
                                                                                    154. noSuchMethod
                                                                                    155. +
                                                                                    156. noSuchMethod
                                                                                    157. orderByAscending
                                                                                    158. orderByDescending
                                                                                    159. query
                                                                                    160. @@ -143,7 +143,7 @@
                                                                                      QueryBuilder class
                                                                                    161. setAmountToSkip
                                                                                    162. setLimit
                                                                                    163. setRedirectClassNameForKey
                                                                                    164. -
                                                                                    165. toString
                                                                                    166. +
                                                                                    167. toString
                                                                                    168. whereArrayContainsAll
                                                                                    169. whereContainedIn
                                                                                    170. whereContains
                                                                                    171. @@ -173,7 +173,7 @@
                                                                                      QueryBuilder class
                                                                                    172. whereWithinRadians
                                                                                    173. Operators
                                                                                    174. -
                                                                                    175. operator ==
                                                                                    176. +
                                                                                    177. operator ==
                                                                                    178. diff --git a/dart/flutter_parse_sdk/QueryBuilder/setLimit.html b/dart/flutter_parse_sdk/QueryBuilder/setLimit.html index fb9b2cc00..0ac553798 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/setLimit.html +++ b/dart/flutter_parse_sdk/QueryBuilder/setLimit.html @@ -60,7 +60,7 @@

                                                                                      setLimit method void -setLimit(
                                                                                      1. int limit
                                                                                      2. +setLimit(
                                                                                        1. int limit
                                                                                        ) @@ -114,11 +114,11 @@
                                                                                        QueryBuilder class
                                                                                        Properties
                                                                                      3. extraOptions
                                                                                      4. -
                                                                                      5. hashCode
                                                                                      6. +
                                                                                      7. hashCode
                                                                                      8. limiters
                                                                                      9. object
                                                                                      10. queries
                                                                                      11. -
                                                                                      12. runtimeType
                                                                                      13. +
                                                                                      14. runtimeType
                                                                                      15. Methods
                                                                                      16. buildQueries
                                                                                      17. @@ -134,7 +134,7 @@
                                                                                        QueryBuilder class
                                                                                      18. getLimitersRelational
                                                                                      19. includeObject
                                                                                      20. keysToReturn
                                                                                      21. -
                                                                                      22. noSuchMethod
                                                                                      23. +
                                                                                      24. noSuchMethod
                                                                                      25. orderByAscending
                                                                                      26. orderByDescending
                                                                                      27. query
                                                                                      28. @@ -143,7 +143,7 @@
                                                                                        QueryBuilder class
                                                                                      29. setAmountToSkip
                                                                                      30. setLimit
                                                                                      31. setRedirectClassNameForKey
                                                                                      32. -
                                                                                      33. toString
                                                                                      34. +
                                                                                      35. toString
                                                                                      36. whereArrayContainsAll
                                                                                      37. whereContainedIn
                                                                                      38. whereContains
                                                                                      39. @@ -173,7 +173,7 @@
                                                                                        QueryBuilder class
                                                                                      40. whereWithinRadians
                                                                                      41. Operators
                                                                                      42. -
                                                                                      43. operator ==
                                                                                      44. +
                                                                                      45. operator ==
                                                                                      46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/setRedirectClassNameForKey.html b/dart/flutter_parse_sdk/QueryBuilder/setRedirectClassNameForKey.html index 8218b8bc6..97eb14c3f 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/setRedirectClassNameForKey.html +++ b/dart/flutter_parse_sdk/QueryBuilder/setRedirectClassNameForKey.html @@ -60,7 +60,7 @@

                                                                                        setRedirectClassNameForKey method void -setRedirectClassNameForKey(
                                                                                        1. String key
                                                                                        2. +setRedirectClassNameForKey(
                                                                                          1. String key
                                                                                          ) @@ -114,11 +114,11 @@
                                                                                          QueryBuilder class
                                                                                          Properties
                                                                                        3. extraOptions
                                                                                        4. -
                                                                                        5. hashCode
                                                                                        6. +
                                                                                        7. hashCode
                                                                                        8. limiters
                                                                                        9. object
                                                                                        10. queries
                                                                                        11. -
                                                                                        12. runtimeType
                                                                                        13. +
                                                                                        14. runtimeType
                                                                                        15. Methods
                                                                                        16. buildQueries
                                                                                        17. @@ -134,7 +134,7 @@
                                                                                          QueryBuilder class
                                                                                        18. getLimitersRelational
                                                                                        19. includeObject
                                                                                        20. keysToReturn
                                                                                        21. -
                                                                                        22. noSuchMethod
                                                                                        23. +
                                                                                        24. noSuchMethod
                                                                                        25. orderByAscending
                                                                                        26. orderByDescending
                                                                                        27. query
                                                                                        28. @@ -143,7 +143,7 @@
                                                                                          QueryBuilder class
                                                                                        29. setAmountToSkip
                                                                                        30. setLimit
                                                                                        31. setRedirectClassNameForKey
                                                                                        32. -
                                                                                        33. toString
                                                                                        34. +
                                                                                        35. toString
                                                                                        36. whereArrayContainsAll
                                                                                        37. whereContainedIn
                                                                                        38. whereContains
                                                                                        39. @@ -173,7 +173,7 @@
                                                                                          QueryBuilder class
                                                                                        40. whereWithinRadians
                                                                                        41. Operators
                                                                                        42. -
                                                                                        43. operator ==
                                                                                        44. +
                                                                                        45. operator ==
                                                                                        46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereArrayContainsAll.html b/dart/flutter_parse_sdk/QueryBuilder/whereArrayContainsAll.html index efbc4d889..6d456daaf 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereArrayContainsAll.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereArrayContainsAll.html @@ -60,8 +60,8 @@

                                                                                          whereArrayContainsAll method void -whereArrayContainsAll(
                                                                                          1. String column,
                                                                                          2. -
                                                                                          3. List value
                                                                                          4. +whereArrayContainsAll(
                                                                                            1. String column,
                                                                                            2. +
                                                                                            3. List value
                                                                                            ) @@ -69,7 +69,7 @@

                                                                                            whereArrayContainsAll method

                                                                                -

                                                                                Returns an object where the String column contains all

                                                                                +

                                                                                Returns an object where the String column contains all

                                                                                @@ -116,11 +116,11 @@

                                                                                QueryBuilder class
                                                                                Properties
                                                                              47. extraOptions
                                                                              48. -
                                                                              49. hashCode
                                                                              50. +
                                                                              51. hashCode
                                                                              52. limiters
                                                                              53. object
                                                                              54. queries
                                                                              55. -
                                                                              56. runtimeType
                                                                              57. +
                                                                              58. runtimeType
                                                                              59. Methods
                                                                              60. buildQueries
                                                                              61. @@ -136,7 +136,7 @@
                                                                                QueryBuilder class
                                                                              62. getLimitersRelational
                                                                              63. includeObject
                                                                              64. keysToReturn
                                                                              65. -
                                                                              66. noSuchMethod
                                                                              67. +
                                                                              68. noSuchMethod
                                                                              69. orderByAscending
                                                                              70. orderByDescending
                                                                              71. query
                                                                              72. @@ -145,7 +145,7 @@
                                                                                QueryBuilder class
                                                                              73. setAmountToSkip
                                                                              74. setLimit
                                                                              75. setRedirectClassNameForKey
                                                                              76. -
                                                                              77. toString
                                                                              78. +
                                                                              79. toString
                                                                              80. whereArrayContainsAll
                                                                              81. whereContainedIn
                                                                              82. whereContains
                                                                              83. @@ -175,7 +175,7 @@
                                                                                QueryBuilder class
                                                                              84. whereWithinRadians
                                                                              85. Operators
                                                                              86. -
                                                                              87. operator ==
                                                                              88. +
                                                                              89. operator ==
                                                                              90. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereContainedIn.html b/dart/flutter_parse_sdk/QueryBuilder/whereContainedIn.html index fbed7ee1f..b1d60c9a7 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereContainedIn.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereContainedIn.html @@ -60,8 +60,8 @@

                                                                                whereContainedIn method void -whereContainedIn(
                                                                                1. String column,
                                                                                2. -
                                                                                3. List value
                                                                                4. +whereContainedIn(
                                                                                  1. String column,
                                                                                  2. +
                                                                                  3. List value
                                                                                  ) @@ -69,7 +69,7 @@

                                                                                  whereContainedIn method

                                                                              -

                                                                              Returns an object where the String column is containedIn

                                                                              +

                                                                              Returns an object where the String column is containedIn

                                                                              @@ -116,11 +116,11 @@

                                                                              QueryBuilder class
                                                                              Properties
                                                                            47. extraOptions
                                                                            48. -
                                                                            49. hashCode
                                                                            50. +
                                                                            51. hashCode
                                                                            52. limiters
                                                                            53. object
                                                                            54. queries
                                                                            55. -
                                                                            56. runtimeType
                                                                            57. +
                                                                            58. runtimeType
                                                                            59. Methods
                                                                            60. buildQueries
                                                                            61. @@ -136,7 +136,7 @@
                                                                              QueryBuilder class
                                                                            62. getLimitersRelational
                                                                            63. includeObject
                                                                            64. keysToReturn
                                                                            65. -
                                                                            66. noSuchMethod
                                                                            67. +
                                                                            68. noSuchMethod
                                                                            69. orderByAscending
                                                                            70. orderByDescending
                                                                            71. query
                                                                            72. @@ -145,7 +145,7 @@
                                                                              QueryBuilder class
                                                                            73. setAmountToSkip
                                                                            74. setLimit
                                                                            75. setRedirectClassNameForKey
                                                                            76. -
                                                                            77. toString
                                                                            78. +
                                                                            79. toString
                                                                            80. whereArrayContainsAll
                                                                            81. whereContainedIn
                                                                            82. whereContains
                                                                            83. @@ -175,7 +175,7 @@
                                                                              QueryBuilder class
                                                                            84. whereWithinRadians
                                                                            85. Operators
                                                                            86. -
                                                                            87. operator ==
                                                                            88. +
                                                                            89. operator ==
                                                                            90. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereContains.html b/dart/flutter_parse_sdk/QueryBuilder/whereContains.html index a1cd618fd..d2ba003ae 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereContains.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereContains.html @@ -60,9 +60,9 @@

                                                                              whereContains method void -whereContains(
                                                                              1. String column,
                                                                              2. -
                                                                              3. String value,
                                                                              4. -
                                                                              5. {bool caseSensitive = false}
                                                                              6. +whereContains(
                                                                                1. String column,
                                                                                2. +
                                                                                3. String value,
                                                                                4. +
                                                                                5. {bool caseSensitive = false}
                                                                                ) @@ -70,7 +70,7 @@

                                                                                whereContains method

                                                                            -

                                                                            Performs a search to see if String contains other string

                                                                            +

                                                                            Performs a search to see if String contains other string

                                                                            @@ -123,11 +123,11 @@

                                                                            QueryBuilder class
                                                                            Properties
                                                                          179. extraOptions
                                                                          180. -
                                                                          181. hashCode
                                                                          182. +
                                                                          183. hashCode
                                                                          184. limiters
                                                                          185. object
                                                                          186. queries
                                                                          187. -
                                                                          188. runtimeType
                                                                          189. +
                                                                          190. runtimeType
                                                                          191. Methods
                                                                          192. buildQueries
                                                                          193. @@ -143,7 +143,7 @@
                                                                            QueryBuilder class
                                                                          194. getLimitersRelational
                                                                          195. includeObject
                                                                          196. keysToReturn
                                                                          197. -
                                                                          198. noSuchMethod
                                                                          199. +
                                                                          200. noSuchMethod
                                                                          201. orderByAscending
                                                                          202. orderByDescending
                                                                          203. query
                                                                          204. @@ -152,7 +152,7 @@
                                                                            QueryBuilder class
                                                                          205. setAmountToSkip
                                                                          206. setLimit
                                                                          207. setRedirectClassNameForKey
                                                                          208. -
                                                                          209. toString
                                                                          210. +
                                                                          211. toString
                                                                          212. whereArrayContainsAll
                                                                          213. whereContainedIn
                                                                          214. whereContains
                                                                          215. @@ -182,7 +182,7 @@
                                                                            QueryBuilder class
                                                                          216. whereWithinRadians
                                                                          217. Operators
                                                                          218. -
                                                                          219. operator ==
                                                                          220. +
                                                                          221. operator ==
                                                                          222. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereContainsWholeWord.html b/dart/flutter_parse_sdk/QueryBuilder/whereContainsWholeWord.html index 713278dbe..7f3571f8d 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereContainsWholeWord.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereContainsWholeWord.html @@ -60,11 +60,11 @@

                                                                            whereContainsWholeWord method void -whereContainsWholeWord(
                                                                            1. String column,
                                                                            2. -
                                                                            3. String query,
                                                                            4. -
                                                                            5. {bool caseSensitive = false,
                                                                            6. -
                                                                            7. bool orderByScore = true,
                                                                            8. -
                                                                            9. bool diacriticSensitive = false}
                                                                            10. +whereContainsWholeWord(
                                                                              1. String column,
                                                                              2. +
                                                                              3. String query,
                                                                              4. +
                                                                              5. {bool caseSensitive = false,
                                                                              6. +
                                                                              7. bool orderByScore = true,
                                                                              8. +
                                                                              9. bool diacriticSensitive = false}
                                                                              ) @@ -127,11 +127,11 @@
                                                                              QueryBuilder class
                                                                              Properties
                                                                            11. extraOptions
                                                                            12. -
                                                                            13. hashCode
                                                                            14. +
                                                                            15. hashCode
                                                                            16. limiters
                                                                            17. object
                                                                            18. queries
                                                                            19. -
                                                                            20. runtimeType
                                                                            21. +
                                                                            22. runtimeType
                                                                            23. Methods
                                                                            24. buildQueries
                                                                            25. @@ -147,7 +147,7 @@
                                                                              QueryBuilder class
                                                                            26. getLimitersRelational
                                                                            27. includeObject
                                                                            28. keysToReturn
                                                                            29. -
                                                                            30. noSuchMethod
                                                                            31. +
                                                                            32. noSuchMethod
                                                                            33. orderByAscending
                                                                            34. orderByDescending
                                                                            35. query
                                                                            36. @@ -156,7 +156,7 @@
                                                                              QueryBuilder class
                                                                            37. setAmountToSkip
                                                                            38. setLimit
                                                                            39. setRedirectClassNameForKey
                                                                            40. -
                                                                            41. toString
                                                                            42. +
                                                                            43. toString
                                                                            44. whereArrayContainsAll
                                                                            45. whereContainedIn
                                                                            46. whereContains
                                                                            47. @@ -186,7 +186,7 @@
                                                                              QueryBuilder class
                                                                            48. whereWithinRadians
                                                                            49. Operators
                                                                            50. -
                                                                            51. operator ==
                                                                            52. +
                                                                            53. operator ==
                                                                            54. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereDoesNotMatchKeyInQuery.html b/dart/flutter_parse_sdk/QueryBuilder/whereDoesNotMatchKeyInQuery.html index 2fbdd17f5..b41526340 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereDoesNotMatchKeyInQuery.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereDoesNotMatchKeyInQuery.html @@ -60,8 +60,8 @@

                                                                              whereDoesNotMatchKeyInQuery<void -whereDoesNotMatchKeyInQuery<E extends ParseObject>(
                                                                              1. String column,
                                                                              2. -
                                                                              3. String keyInQuery,
                                                                              4. +whereDoesNotMatchKeyInQuery<E extends ParseObject>(
                                                                                1. String column,
                                                                                2. +
                                                                                3. String keyInQuery,
                                                                                4. QueryBuilder<E> query
                                                                                ) @@ -131,11 +131,11 @@
                                                                                QueryBuilder class
                                                                                Properties
                                                                              5. extraOptions
                                                                              6. -
                                                                              7. hashCode
                                                                              8. +
                                                                              9. hashCode
                                                                              10. limiters
                                                                              11. object
                                                                              12. queries
                                                                              13. -
                                                                              14. runtimeType
                                                                              15. +
                                                                              16. runtimeType
                                                                              17. Methods
                                                                              18. buildQueries
                                                                              19. @@ -151,7 +151,7 @@
                                                                                QueryBuilder class
                                                                              20. getLimitersRelational
                                                                              21. includeObject
                                                                              22. keysToReturn
                                                                              23. -
                                                                              24. noSuchMethod
                                                                              25. +
                                                                              26. noSuchMethod
                                                                              27. orderByAscending
                                                                              28. orderByDescending
                                                                              29. query
                                                                              30. @@ -160,7 +160,7 @@
                                                                                QueryBuilder class
                                                                              31. setAmountToSkip
                                                                              32. setLimit
                                                                              33. setRedirectClassNameForKey
                                                                              34. -
                                                                              35. toString
                                                                              36. +
                                                                              37. toString
                                                                              38. whereArrayContainsAll
                                                                              39. whereContainedIn
                                                                              40. whereContains
                                                                              41. @@ -190,7 +190,7 @@
                                                                                QueryBuilder class
                                                                              42. whereWithinRadians
                                                                              43. Operators
                                                                              44. -
                                                                              45. operator ==
                                                                              46. +
                                                                              47. operator ==
                                                                              48. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereDoesNotMatchQuery.html b/dart/flutter_parse_sdk/QueryBuilder/whereDoesNotMatchQuery.html index e86eaad43..27d492502 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereDoesNotMatchQuery.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereDoesNotMatchQuery.html @@ -60,7 +60,7 @@

                                                                                whereDoesNotMatchQuery<void -whereDoesNotMatchQuery<E extends ParseObject>(
                                                                                1. String column,
                                                                                2. +whereDoesNotMatchQuery<E extends ParseObject>(
                                                                                  1. String column,
                                                                                  2. QueryBuilder<E> query
                                                                                  ) @@ -120,11 +120,11 @@
                                                                                  QueryBuilder class
                                                                                  Properties
                                                                                3. extraOptions
                                                                                4. -
                                                                                5. hashCode
                                                                                6. +
                                                                                7. hashCode
                                                                                8. limiters
                                                                                9. object
                                                                                10. queries
                                                                                11. -
                                                                                12. runtimeType
                                                                                13. +
                                                                                14. runtimeType
                                                                                15. Methods
                                                                                16. buildQueries
                                                                                17. @@ -140,7 +140,7 @@
                                                                                  QueryBuilder class
                                                                                18. getLimitersRelational
                                                                                19. includeObject
                                                                                20. keysToReturn
                                                                                21. -
                                                                                22. noSuchMethod
                                                                                23. +
                                                                                24. noSuchMethod
                                                                                25. orderByAscending
                                                                                26. orderByDescending
                                                                                27. query
                                                                                28. @@ -149,7 +149,7 @@
                                                                                  QueryBuilder class
                                                                                29. setAmountToSkip
                                                                                30. setLimit
                                                                                31. setRedirectClassNameForKey
                                                                                32. -
                                                                                33. toString
                                                                                34. +
                                                                                35. toString
                                                                                36. whereArrayContainsAll
                                                                                37. whereContainedIn
                                                                                38. whereContains
                                                                                39. @@ -179,7 +179,7 @@
                                                                                  QueryBuilder class
                                                                                40. whereWithinRadians
                                                                                41. Operators
                                                                                42. -
                                                                                43. operator ==
                                                                                44. +
                                                                                45. operator ==
                                                                                46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereEndsWith.html b/dart/flutter_parse_sdk/QueryBuilder/whereEndsWith.html index 8670cf9fa..92b677945 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereEndsWith.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereEndsWith.html @@ -60,9 +60,9 @@

                                                                                  whereEndsWith method void -whereEndsWith(
                                                                                  1. String column,
                                                                                  2. -
                                                                                  3. String query,
                                                                                  4. -
                                                                                  5. {bool caseSensitive = false}
                                                                                  6. +whereEndsWith(
                                                                                    1. String column,
                                                                                    2. +
                                                                                    3. String query,
                                                                                    4. +
                                                                                    5. {bool caseSensitive = false}
                                                                                    ) @@ -70,7 +70,7 @@

                                                                                    whereEndsWith method

                                                                            -

                                                                            Returns an object where the String column ends with value

                                                                            +

                                                                            Returns an object where the String column ends with value

                                                                            @@ -123,11 +123,11 @@

                                                                            QueryBuilder class
                                                                            Properties
                                                                          223. extraOptions
                                                                          224. -
                                                                          225. hashCode
                                                                          226. +
                                                                          227. hashCode
                                                                          228. limiters
                                                                          229. object
                                                                          230. queries
                                                                          231. -
                                                                          232. runtimeType
                                                                          233. +
                                                                          234. runtimeType
                                                                          235. Methods
                                                                          236. buildQueries
                                                                          237. @@ -143,7 +143,7 @@
                                                                            QueryBuilder class
                                                                          238. getLimitersRelational
                                                                          239. includeObject
                                                                          240. keysToReturn
                                                                          241. -
                                                                          242. noSuchMethod
                                                                          243. +
                                                                          244. noSuchMethod
                                                                          245. orderByAscending
                                                                          246. orderByDescending
                                                                          247. query
                                                                          248. @@ -152,7 +152,7 @@
                                                                            QueryBuilder class
                                                                          249. setAmountToSkip
                                                                          250. setLimit
                                                                          251. setRedirectClassNameForKey
                                                                          252. -
                                                                          253. toString
                                                                          254. +
                                                                          255. toString
                                                                          256. whereArrayContainsAll
                                                                          257. whereContainedIn
                                                                          258. whereContains
                                                                          259. @@ -182,7 +182,7 @@
                                                                            QueryBuilder class
                                                                          260. whereWithinRadians
                                                                          261. Operators
                                                                          262. -
                                                                          263. operator ==
                                                                          264. +
                                                                          265. operator ==
                                                                          266. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereEqualTo.html b/dart/flutter_parse_sdk/QueryBuilder/whereEqualTo.html index d7754f5f4..a006774f5 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereEqualTo.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereEqualTo.html @@ -60,7 +60,7 @@

                                                                            whereEqualTo method void -whereEqualTo(
                                                                            1. String column,
                                                                            2. +whereEqualTo(
                                                                              1. String column,
                                                                              2. dynamic value
                                                                              ) @@ -69,7 +69,7 @@

                                                                              whereEqualTo method

                                                                            -

                                                                            Returns an object where the String column equals value

                                                                            +

                                                                            Returns an object where the String column equals value

                                                                            @@ -116,11 +116,11 @@

                                                                            QueryBuilder class
                                                                            Properties
                                                                          267. extraOptions
                                                                          268. -
                                                                          269. hashCode
                                                                          270. +
                                                                          271. hashCode
                                                                          272. limiters
                                                                          273. object
                                                                          274. queries
                                                                          275. -
                                                                          276. runtimeType
                                                                          277. +
                                                                          278. runtimeType
                                                                          279. Methods
                                                                          280. buildQueries
                                                                          281. @@ -136,7 +136,7 @@
                                                                            QueryBuilder class
                                                                          282. getLimitersRelational
                                                                          283. includeObject
                                                                          284. keysToReturn
                                                                          285. -
                                                                          286. noSuchMethod
                                                                          287. +
                                                                          288. noSuchMethod
                                                                          289. orderByAscending
                                                                          290. orderByDescending
                                                                          291. query
                                                                          292. @@ -145,7 +145,7 @@
                                                                            QueryBuilder class
                                                                          293. setAmountToSkip
                                                                          294. setLimit
                                                                          295. setRedirectClassNameForKey
                                                                          296. -
                                                                          297. toString
                                                                          298. +
                                                                          299. toString
                                                                          300. whereArrayContainsAll
                                                                          301. whereContainedIn
                                                                          302. whereContains
                                                                          303. @@ -175,7 +175,7 @@
                                                                            QueryBuilder class
                                                                          304. whereWithinRadians
                                                                          305. Operators
                                                                          306. -
                                                                          307. operator ==
                                                                          308. +
                                                                          309. operator ==
                                                                          310. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereEquals.html b/dart/flutter_parse_sdk/QueryBuilder/whereEquals.html index 6e177782d..7fd5450a4 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereEquals.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereEquals.html @@ -60,7 +60,7 @@

                                                                            whereEquals method void -whereEquals(
                                                                            1. String where
                                                                            2. +whereEquals(
                                                                              1. String where
                                                                              ) @@ -114,11 +114,11 @@
                                                                              QueryBuilder class
                                                                              Properties
                                                                            3. extraOptions
                                                                            4. -
                                                                            5. hashCode
                                                                            6. +
                                                                            7. hashCode
                                                                            8. limiters
                                                                            9. object
                                                                            10. queries
                                                                            11. -
                                                                            12. runtimeType
                                                                            13. +
                                                                            14. runtimeType
                                                                            15. Methods
                                                                            16. buildQueries
                                                                            17. @@ -134,7 +134,7 @@
                                                                              QueryBuilder class
                                                                            18. getLimitersRelational
                                                                            19. includeObject
                                                                            20. keysToReturn
                                                                            21. -
                                                                            22. noSuchMethod
                                                                            23. +
                                                                            24. noSuchMethod
                                                                            25. orderByAscending
                                                                            26. orderByDescending
                                                                            27. query
                                                                            28. @@ -143,7 +143,7 @@
                                                                              QueryBuilder class
                                                                            29. setAmountToSkip
                                                                            30. setLimit
                                                                            31. setRedirectClassNameForKey
                                                                            32. -
                                                                            33. toString
                                                                            34. +
                                                                            35. toString
                                                                            36. whereArrayContainsAll
                                                                            37. whereContainedIn
                                                                            38. whereContains
                                                                            39. @@ -173,7 +173,7 @@
                                                                              QueryBuilder class
                                                                            40. whereWithinRadians
                                                                            41. Operators
                                                                            42. -
                                                                            43. operator ==
                                                                            44. +
                                                                            45. operator ==
                                                                            46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereGreaterThan.html b/dart/flutter_parse_sdk/QueryBuilder/whereGreaterThan.html index 846e4ddfd..13314f149 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereGreaterThan.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereGreaterThan.html @@ -60,7 +60,7 @@

                                                                              whereGreaterThan method void -whereGreaterThan(
                                                                              1. String column,
                                                                              2. +whereGreaterThan(
                                                                                1. String column,
                                                                                2. dynamic value
                                                                                ) @@ -69,7 +69,7 @@

                                                                                whereGreaterThan method

                                                                            -

                                                                            Returns an object where the String column contains a value greater +

                                                                            Returns an object where the String column contains a value greater than value

                                                                            @@ -117,11 +117,11 @@

                                                                            QueryBuilder class
                                                                            Properties
                                                                          311. extraOptions
                                                                          312. -
                                                                          313. hashCode
                                                                          314. +
                                                                          315. hashCode
                                                                          316. limiters
                                                                          317. object
                                                                          318. queries
                                                                          319. -
                                                                          320. runtimeType
                                                                          321. +
                                                                          322. runtimeType
                                                                          323. Methods
                                                                          324. buildQueries
                                                                          325. @@ -137,7 +137,7 @@
                                                                            QueryBuilder class
                                                                          326. getLimitersRelational
                                                                          327. includeObject
                                                                          328. keysToReturn
                                                                          329. -
                                                                          330. noSuchMethod
                                                                          331. +
                                                                          332. noSuchMethod
                                                                          333. orderByAscending
                                                                          334. orderByDescending
                                                                          335. query
                                                                          336. @@ -146,7 +146,7 @@
                                                                            QueryBuilder class
                                                                          337. setAmountToSkip
                                                                          338. setLimit
                                                                          339. setRedirectClassNameForKey
                                                                          340. -
                                                                          341. toString
                                                                          342. +
                                                                          343. toString
                                                                          344. whereArrayContainsAll
                                                                          345. whereContainedIn
                                                                          346. whereContains
                                                                          347. @@ -176,7 +176,7 @@
                                                                            QueryBuilder class
                                                                          348. whereWithinRadians
                                                                          349. Operators
                                                                          350. -
                                                                          351. operator ==
                                                                          352. +
                                                                          353. operator ==
                                                                          354. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereGreaterThanOrEqualsTo.html b/dart/flutter_parse_sdk/QueryBuilder/whereGreaterThanOrEqualsTo.html index 52ebefef2..b653d5ac6 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereGreaterThanOrEqualsTo.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereGreaterThanOrEqualsTo.html @@ -60,7 +60,7 @@

                                                                            whereGreaterThanOrEqualsTo method void -whereGreaterThanOrEqualsTo(
                                                                            1. String column,
                                                                            2. +whereGreaterThanOrEqualsTo(
                                                                              1. String column,
                                                                              2. dynamic value
                                                                              ) @@ -69,7 +69,7 @@

                                                                              whereGreaterThanOrEqualsTo method

                                                                          -

                                                                          Returns an object where the String column contains a value greater +

                                                                          Returns an object where the String column contains a value greater than equal to value

                                                                          @@ -117,11 +117,11 @@

                                                                          QueryBuilder class
                                                                          Properties
                                                                        179. extraOptions
                                                                        180. -
                                                                        181. hashCode
                                                                        182. +
                                                                        183. hashCode
                                                                        184. limiters
                                                                        185. object
                                                                        186. queries
                                                                        187. -
                                                                        188. runtimeType
                                                                        189. +
                                                                        190. runtimeType
                                                                        191. Methods
                                                                        192. buildQueries
                                                                        193. @@ -137,7 +137,7 @@
                                                                          QueryBuilder class
                                                                        194. getLimitersRelational
                                                                        195. includeObject
                                                                        196. keysToReturn
                                                                        197. -
                                                                        198. noSuchMethod
                                                                        199. +
                                                                        200. noSuchMethod
                                                                        201. orderByAscending
                                                                        202. orderByDescending
                                                                        203. query
                                                                        204. @@ -146,7 +146,7 @@
                                                                          QueryBuilder class
                                                                        205. setAmountToSkip
                                                                        206. setLimit
                                                                        207. setRedirectClassNameForKey
                                                                        208. -
                                                                        209. toString
                                                                        210. +
                                                                        211. toString
                                                                        212. whereArrayContainsAll
                                                                        213. whereContainedIn
                                                                        214. whereContains
                                                                        215. @@ -176,7 +176,7 @@
                                                                          QueryBuilder class
                                                                        216. whereWithinRadians
                                                                        217. Operators
                                                                        218. -
                                                                        219. operator ==
                                                                        220. +
                                                                        221. operator ==
                                                                        222. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereLessThan.html b/dart/flutter_parse_sdk/QueryBuilder/whereLessThan.html index f771904ad..7e2a7afc7 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereLessThan.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereLessThan.html @@ -60,7 +60,7 @@

                                                                          whereLessThan method void -whereLessThan(
                                                                          1. String column,
                                                                          2. +whereLessThan(
                                                                            1. String column,
                                                                            2. dynamic value
                                                                            ) @@ -69,7 +69,7 @@

                                                                            whereLessThan method

                                                                          -

                                                                          Returns an object where the String column contains a value less than +

                                                                          Returns an object where the String column contains a value less than value

                                                                          @@ -117,11 +117,11 @@

                                                                          QueryBuilder class
                                                                          Properties
                                                                        223. extraOptions
                                                                        224. -
                                                                        225. hashCode
                                                                        226. +
                                                                        227. hashCode
                                                                        228. limiters
                                                                        229. object
                                                                        230. queries
                                                                        231. -
                                                                        232. runtimeType
                                                                        233. +
                                                                        234. runtimeType
                                                                        235. Methods
                                                                        236. buildQueries
                                                                        237. @@ -137,7 +137,7 @@
                                                                          QueryBuilder class
                                                                        238. getLimitersRelational
                                                                        239. includeObject
                                                                        240. keysToReturn
                                                                        241. -
                                                                        242. noSuchMethod
                                                                        243. +
                                                                        244. noSuchMethod
                                                                        245. orderByAscending
                                                                        246. orderByDescending
                                                                        247. query
                                                                        248. @@ -146,7 +146,7 @@
                                                                          QueryBuilder class
                                                                        249. setAmountToSkip
                                                                        250. setLimit
                                                                        251. setRedirectClassNameForKey
                                                                        252. -
                                                                        253. toString
                                                                        254. +
                                                                        255. toString
                                                                        256. whereArrayContainsAll
                                                                        257. whereContainedIn
                                                                        258. whereContains
                                                                        259. @@ -176,7 +176,7 @@
                                                                          QueryBuilder class
                                                                        260. whereWithinRadians
                                                                        261. Operators
                                                                        262. -
                                                                        263. operator ==
                                                                        264. +
                                                                        265. operator ==
                                                                        266. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereLessThanOrEqualTo.html b/dart/flutter_parse_sdk/QueryBuilder/whereLessThanOrEqualTo.html index a21134043..92683e945 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereLessThanOrEqualTo.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereLessThanOrEqualTo.html @@ -60,7 +60,7 @@

                                                                          whereLessThanOrEqualTo method void -whereLessThanOrEqualTo(
                                                                          1. String column,
                                                                          2. +whereLessThanOrEqualTo(
                                                                            1. String column,
                                                                            2. dynamic value
                                                                            ) @@ -69,7 +69,7 @@

                                                                            whereLessThanOrEqualTo method

                                                                        -

                                                                        Returns an object where the String column contains a value less or equal +

                                                                        Returns an object where the String column contains a value less or equal to than value

                                                                        @@ -117,11 +117,11 @@

                                                                        QueryBuilder class
                                                                        Properties
                                                                      275. extraOptions
                                                                      276. -
                                                                      277. hashCode
                                                                      278. +
                                                                      279. hashCode
                                                                      280. limiters
                                                                      281. object
                                                                      282. queries
                                                                      283. -
                                                                      284. runtimeType
                                                                      285. +
                                                                      286. runtimeType
                                                                      287. Methods
                                                                      288. buildQueries
                                                                      289. @@ -137,7 +137,7 @@
                                                                        QueryBuilder class
                                                                      290. getLimitersRelational
                                                                      291. includeObject
                                                                      292. keysToReturn
                                                                      293. -
                                                                      294. noSuchMethod
                                                                      295. +
                                                                      296. noSuchMethod
                                                                      297. orderByAscending
                                                                      298. orderByDescending
                                                                      299. query
                                                                      300. @@ -146,7 +146,7 @@
                                                                        QueryBuilder class
                                                                      301. setAmountToSkip
                                                                      302. setLimit
                                                                      303. setRedirectClassNameForKey
                                                                      304. -
                                                                      305. toString
                                                                      306. +
                                                                      307. toString
                                                                      308. whereArrayContainsAll
                                                                      309. whereContainedIn
                                                                      310. whereContains
                                                                      311. @@ -176,7 +176,7 @@
                                                                        QueryBuilder class
                                                                      312. whereWithinRadians
                                                                      313. Operators
                                                                      314. -
                                                                      315. operator ==
                                                                      316. +
                                                                      317. operator ==
                                                                      318. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereMatchesKeyInQuery.html b/dart/flutter_parse_sdk/QueryBuilder/whereMatchesKeyInQuery.html index 759a4423b..30b1bd519 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereMatchesKeyInQuery.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereMatchesKeyInQuery.html @@ -60,8 +60,8 @@

                                                                        whereMatchesKeyInQuery<void -whereMatchesKeyInQuery<E extends ParseObject>(
                                                                        1. String column,
                                                                        2. -
                                                                        3. String keyInQuery,
                                                                        4. +whereMatchesKeyInQuery<E extends ParseObject>(
                                                                          1. String column,
                                                                          2. +
                                                                          3. String keyInQuery,
                                                                          4. QueryBuilder<E> query
                                                                          ) @@ -131,11 +131,11 @@
                                                                          QueryBuilder class
                                                                          Properties
                                                                        5. extraOptions
                                                                        6. -
                                                                        7. hashCode
                                                                        8. +
                                                                        9. hashCode
                                                                        10. limiters
                                                                        11. object
                                                                        12. queries
                                                                        13. -
                                                                        14. runtimeType
                                                                        15. +
                                                                        16. runtimeType
                                                                        17. Methods
                                                                        18. buildQueries
                                                                        19. @@ -151,7 +151,7 @@
                                                                          QueryBuilder class
                                                                        20. getLimitersRelational
                                                                        21. includeObject
                                                                        22. keysToReturn
                                                                        23. -
                                                                        24. noSuchMethod
                                                                        25. +
                                                                        26. noSuchMethod
                                                                        27. orderByAscending
                                                                        28. orderByDescending
                                                                        29. query
                                                                        30. @@ -160,7 +160,7 @@
                                                                          QueryBuilder class
                                                                        31. setAmountToSkip
                                                                        32. setLimit
                                                                        33. setRedirectClassNameForKey
                                                                        34. -
                                                                        35. toString
                                                                        36. +
                                                                        37. toString
                                                                        38. whereArrayContainsAll
                                                                        39. whereContainedIn
                                                                        40. whereContains
                                                                        41. @@ -190,7 +190,7 @@
                                                                          QueryBuilder class
                                                                        42. whereWithinRadians
                                                                        43. Operators
                                                                        44. -
                                                                        45. operator ==
                                                                        46. +
                                                                        47. operator ==
                                                                        48. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereMatchesQuery.html b/dart/flutter_parse_sdk/QueryBuilder/whereMatchesQuery.html index 105db73a5..f2c1a43c5 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereMatchesQuery.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereMatchesQuery.html @@ -60,7 +60,7 @@

                                                                          whereMatchesQuery<void -whereMatchesQuery<E extends ParseObject>(
                                                                          1. String column,
                                                                          2. +whereMatchesQuery<E extends ParseObject>(
                                                                            1. String column,
                                                                            2. QueryBuilder<E> query
                                                                            ) @@ -120,11 +120,11 @@
                                                                            QueryBuilder class
                                                                            Properties
                                                                          3. extraOptions
                                                                          4. -
                                                                          5. hashCode
                                                                          6. +
                                                                          7. hashCode
                                                                          8. limiters
                                                                          9. object
                                                                          10. queries
                                                                          11. -
                                                                          12. runtimeType
                                                                          13. +
                                                                          14. runtimeType
                                                                          15. Methods
                                                                          16. buildQueries
                                                                          17. @@ -140,7 +140,7 @@
                                                                            QueryBuilder class
                                                                          18. getLimitersRelational
                                                                          19. includeObject
                                                                          20. keysToReturn
                                                                          21. -
                                                                          22. noSuchMethod
                                                                          23. +
                                                                          24. noSuchMethod
                                                                          25. orderByAscending
                                                                          26. orderByDescending
                                                                          27. query
                                                                          28. @@ -149,7 +149,7 @@
                                                                            QueryBuilder class
                                                                          29. setAmountToSkip
                                                                          30. setLimit
                                                                          31. setRedirectClassNameForKey
                                                                          32. -
                                                                          33. toString
                                                                          34. +
                                                                          35. toString
                                                                          36. whereArrayContainsAll
                                                                          37. whereContainedIn
                                                                          38. whereContains
                                                                          39. @@ -179,7 +179,7 @@
                                                                            QueryBuilder class
                                                                          40. whereWithinRadians
                                                                          41. Operators
                                                                          42. -
                                                                          43. operator ==
                                                                          44. +
                                                                          45. operator ==
                                                                          46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereNear.html b/dart/flutter_parse_sdk/QueryBuilder/whereNear.html index aaae09943..25c3b878c 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereNear.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereNear.html @@ -60,7 +60,7 @@

                                                                            whereNear method void -whereNear(
                                                                            1. String column,
                                                                            2. +whereNear(
                                                                              1. String column,
                                                                              2. ParseGeoPoint point
                                                                              ) @@ -118,11 +118,11 @@
                                                                              QueryBuilder class
                                                                              Properties
                                                                            3. extraOptions
                                                                            4. -
                                                                            5. hashCode
                                                                            6. +
                                                                            7. hashCode
                                                                            8. limiters
                                                                            9. object
                                                                            10. queries
                                                                            11. -
                                                                            12. runtimeType
                                                                            13. +
                                                                            14. runtimeType
                                                                            15. Methods
                                                                            16. buildQueries
                                                                            17. @@ -138,7 +138,7 @@
                                                                              QueryBuilder class
                                                                            18. getLimitersRelational
                                                                            19. includeObject
                                                                            20. keysToReturn
                                                                            21. -
                                                                            22. noSuchMethod
                                                                            23. +
                                                                            24. noSuchMethod
                                                                            25. orderByAscending
                                                                            26. orderByDescending
                                                                            27. query
                                                                            28. @@ -147,7 +147,7 @@
                                                                              QueryBuilder class
                                                                            29. setAmountToSkip
                                                                            30. setLimit
                                                                            31. setRedirectClassNameForKey
                                                                            32. -
                                                                            33. toString
                                                                            34. +
                                                                            35. toString
                                                                            36. whereArrayContainsAll
                                                                            37. whereContainedIn
                                                                            38. whereContains
                                                                            39. @@ -177,7 +177,7 @@
                                                                              QueryBuilder class
                                                                            40. whereWithinRadians
                                                                            41. Operators
                                                                            42. -
                                                                            43. operator ==
                                                                            44. +
                                                                            45. operator ==
                                                                            46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereNotContainedIn.html b/dart/flutter_parse_sdk/QueryBuilder/whereNotContainedIn.html index 85d18752e..be30098b4 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereNotContainedIn.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereNotContainedIn.html @@ -60,8 +60,8 @@

                                                                              whereNotContainedIn method void -whereNotContainedIn(
                                                                              1. String column,
                                                                              2. -
                                                                              3. List value
                                                                              4. +whereNotContainedIn(
                                                                                1. String column,
                                                                                2. +
                                                                                3. List value
                                                                                ) @@ -69,7 +69,7 @@

                                                                                whereNotContainedIn method

                                                                        -

                                                                        Returns an object where the String column is notContainedIn

                                                                        +

                                                                        Returns an object where the String column is notContainedIn

                                                                        @@ -116,11 +116,11 @@

                                                                        QueryBuilder class
                                                                        Properties
                                                                      319. extraOptions
                                                                      320. -
                                                                      321. hashCode
                                                                      322. +
                                                                      323. hashCode
                                                                      324. limiters
                                                                      325. object
                                                                      326. queries
                                                                      327. -
                                                                      328. runtimeType
                                                                      329. +
                                                                      330. runtimeType
                                                                      331. Methods
                                                                      332. buildQueries
                                                                      333. @@ -136,7 +136,7 @@
                                                                        QueryBuilder class
                                                                      334. getLimitersRelational
                                                                      335. includeObject
                                                                      336. keysToReturn
                                                                      337. -
                                                                      338. noSuchMethod
                                                                      339. +
                                                                      340. noSuchMethod
                                                                      341. orderByAscending
                                                                      342. orderByDescending
                                                                      343. query
                                                                      344. @@ -145,7 +145,7 @@
                                                                        QueryBuilder class
                                                                      345. setAmountToSkip
                                                                      346. setLimit
                                                                      347. setRedirectClassNameForKey
                                                                      348. -
                                                                      349. toString
                                                                      350. +
                                                                      351. toString
                                                                      352. whereArrayContainsAll
                                                                      353. whereContainedIn
                                                                      354. whereContains
                                                                      355. @@ -175,7 +175,7 @@
                                                                        QueryBuilder class
                                                                      356. whereWithinRadians
                                                                      357. Operators
                                                                      358. -
                                                                      359. operator ==
                                                                      360. +
                                                                      361. operator ==
                                                                      362. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereNotEqualTo.html b/dart/flutter_parse_sdk/QueryBuilder/whereNotEqualTo.html index 22c7fea0b..e5564f0ad 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereNotEqualTo.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereNotEqualTo.html @@ -60,7 +60,7 @@

                                                                        whereNotEqualTo method void -whereNotEqualTo(
                                                                        1. String column,
                                                                        2. +whereNotEqualTo(
                                                                          1. String column,
                                                                          2. dynamic value
                                                                          ) @@ -69,7 +69,7 @@

                                                                          whereNotEqualTo method

                                                                        -

                                                                        Returns an object where the String column is not equal to value

                                                                        +

                                                                        Returns an object where the String column is not equal to value

                                                                        @@ -116,11 +116,11 @@

                                                                        QueryBuilder class
                                                                        Properties
                                                                      363. extraOptions
                                                                      364. -
                                                                      365. hashCode
                                                                      366. +
                                                                      367. hashCode
                                                                      368. limiters
                                                                      369. object
                                                                      370. queries
                                                                      371. -
                                                                      372. runtimeType
                                                                      373. +
                                                                      374. runtimeType
                                                                      375. Methods
                                                                      376. buildQueries
                                                                      377. @@ -136,7 +136,7 @@
                                                                        QueryBuilder class
                                                                      378. getLimitersRelational
                                                                      379. includeObject
                                                                      380. keysToReturn
                                                                      381. -
                                                                      382. noSuchMethod
                                                                      383. +
                                                                      384. noSuchMethod
                                                                      385. orderByAscending
                                                                      386. orderByDescending
                                                                      387. query
                                                                      388. @@ -145,7 +145,7 @@
                                                                        QueryBuilder class
                                                                      389. setAmountToSkip
                                                                      390. setLimit
                                                                      391. setRedirectClassNameForKey
                                                                      392. -
                                                                      393. toString
                                                                      394. +
                                                                      395. toString
                                                                      396. whereArrayContainsAll
                                                                      397. whereContainedIn
                                                                      398. whereContains
                                                                      399. @@ -175,7 +175,7 @@
                                                                        QueryBuilder class
                                                                      400. whereWithinRadians
                                                                      401. Operators
                                                                      402. -
                                                                      403. operator ==
                                                                      404. +
                                                                      405. operator ==
                                                                      406. diff --git a/dart/flutter_parse_sdk/QueryBuilder/wherePolygonContains.html b/dart/flutter_parse_sdk/QueryBuilder/wherePolygonContains.html index 2ace92645..9e3f26a12 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/wherePolygonContains.html +++ b/dart/flutter_parse_sdk/QueryBuilder/wherePolygonContains.html @@ -60,7 +60,7 @@

                                                                        wherePolygonContains method void -wherePolygonContains(
                                                                        1. String column,
                                                                        2. +wherePolygonContains(
                                                                          1. String column,
                                                                          2. ParseGeoPoint point
                                                                          ) @@ -119,11 +119,11 @@
                                                                          QueryBuilder class
                                                                          Properties
                                                                        3. extraOptions
                                                                        4. -
                                                                        5. hashCode
                                                                        6. +
                                                                        7. hashCode
                                                                        8. limiters
                                                                        9. object
                                                                        10. queries
                                                                        11. -
                                                                        12. runtimeType
                                                                        13. +
                                                                        14. runtimeType
                                                                        15. Methods
                                                                        16. buildQueries
                                                                        17. @@ -139,7 +139,7 @@
                                                                          QueryBuilder class
                                                                        18. getLimitersRelational
                                                                        19. includeObject
                                                                        20. keysToReturn
                                                                        21. -
                                                                        22. noSuchMethod
                                                                        23. +
                                                                        24. noSuchMethod
                                                                        25. orderByAscending
                                                                        26. orderByDescending
                                                                        27. query
                                                                        28. @@ -148,7 +148,7 @@
                                                                          QueryBuilder class
                                                                        29. setAmountToSkip
                                                                        30. setLimit
                                                                        31. setRedirectClassNameForKey
                                                                        32. -
                                                                        33. toString
                                                                        34. +
                                                                        35. toString
                                                                        36. whereArrayContainsAll
                                                                        37. whereContainedIn
                                                                        38. whereContains
                                                                        39. @@ -178,7 +178,7 @@
                                                                          QueryBuilder class
                                                                        40. whereWithinRadians
                                                                        41. Operators
                                                                        42. -
                                                                        43. operator ==
                                                                        44. +
                                                                        45. operator ==
                                                                        46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereRelatedTo.html b/dart/flutter_parse_sdk/QueryBuilder/whereRelatedTo.html index e92b3e9a9..9b6da660b 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereRelatedTo.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereRelatedTo.html @@ -60,9 +60,9 @@

                                                                          whereRelatedTo method void -whereRelatedTo(
                                                                          1. String column,
                                                                          2. -
                                                                          3. String className,
                                                                          4. -
                                                                          5. String objectId
                                                                          6. +whereRelatedTo(
                                                                            1. String column,
                                                                            2. +
                                                                            3. String className,
                                                                            4. +
                                                                            5. String objectId
                                                                            ) @@ -70,7 +70,7 @@

                                                                            whereRelatedTo method

                                                                        -

                                                                        Retrieves related objets where String column is a relation field to the class String className

                                                                        +

                                                                        Retrieves related objets where String column is a relation field to the class String className

                                                                        @@ -117,11 +117,11 @@

                                                                        QueryBuilder class
                                                                        Properties
                                                                      407. extraOptions
                                                                      408. -
                                                                      409. hashCode
                                                                      410. +
                                                                      411. hashCode
                                                                      412. limiters
                                                                      413. object
                                                                      414. queries
                                                                      415. -
                                                                      416. runtimeType
                                                                      417. +
                                                                      418. runtimeType
                                                                      419. Methods
                                                                      420. buildQueries
                                                                      421. @@ -137,7 +137,7 @@
                                                                        QueryBuilder class
                                                                      422. getLimitersRelational
                                                                      423. includeObject
                                                                      424. keysToReturn
                                                                      425. -
                                                                      426. noSuchMethod
                                                                      427. +
                                                                      428. noSuchMethod
                                                                      429. orderByAscending
                                                                      430. orderByDescending
                                                                      431. query
                                                                      432. @@ -146,7 +146,7 @@
                                                                        QueryBuilder class
                                                                      433. setAmountToSkip
                                                                      434. setLimit
                                                                      435. setRedirectClassNameForKey
                                                                      436. -
                                                                      437. toString
                                                                      438. +
                                                                      439. toString
                                                                      440. whereArrayContainsAll
                                                                      441. whereContainedIn
                                                                      442. whereContains
                                                                      443. @@ -176,7 +176,7 @@
                                                                        QueryBuilder class
                                                                      444. whereWithinRadians
                                                                      445. Operators
                                                                      446. -
                                                                      447. operator ==
                                                                      448. +
                                                                      449. operator ==
                                                                      450. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereStartsWith.html b/dart/flutter_parse_sdk/QueryBuilder/whereStartsWith.html index 51e3b93c4..c92f1e5ba 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereStartsWith.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereStartsWith.html @@ -60,9 +60,9 @@

                                                                        whereStartsWith method void -whereStartsWith(
                                                                        1. String column,
                                                                        2. -
                                                                        3. String query,
                                                                        4. -
                                                                        5. {bool caseSensitive = false}
                                                                        6. +whereStartsWith(
                                                                          1. String column,
                                                                          2. +
                                                                          3. String query,
                                                                          4. +
                                                                          5. {bool caseSensitive = false}
                                                                          ) @@ -70,7 +70,7 @@

                                                                          whereStartsWith method

                                                                        -

                                                                        Returns an object where the String column starts with value

                                                                        +

                                                                        Returns an object where the String column starts with value

                                                                        @@ -123,11 +123,11 @@

                                                                        QueryBuilder class
                                                                        Properties
                                                                      451. extraOptions
                                                                      452. -
                                                                      453. hashCode
                                                                      454. +
                                                                      455. hashCode
                                                                      456. limiters
                                                                      457. object
                                                                      458. queries
                                                                      459. -
                                                                      460. runtimeType
                                                                      461. +
                                                                      462. runtimeType
                                                                      463. Methods
                                                                      464. buildQueries
                                                                      465. @@ -143,7 +143,7 @@
                                                                        QueryBuilder class
                                                                      466. getLimitersRelational
                                                                      467. includeObject
                                                                      468. keysToReturn
                                                                      469. -
                                                                      470. noSuchMethod
                                                                      471. +
                                                                      472. noSuchMethod
                                                                      473. orderByAscending
                                                                      474. orderByDescending
                                                                      475. query
                                                                      476. @@ -152,7 +152,7 @@
                                                                        QueryBuilder class
                                                                      477. setAmountToSkip
                                                                      478. setLimit
                                                                      479. setRedirectClassNameForKey
                                                                      480. -
                                                                      481. toString
                                                                      482. +
                                                                      483. toString
                                                                      484. whereArrayContainsAll
                                                                      485. whereContainedIn
                                                                      486. whereContains
                                                                      487. @@ -182,7 +182,7 @@
                                                                        QueryBuilder class
                                                                      488. whereWithinRadians
                                                                      489. Operators
                                                                      490. -
                                                                      491. operator ==
                                                                      492. +
                                                                      493. operator ==
                                                                      494. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereValueExists.html b/dart/flutter_parse_sdk/QueryBuilder/whereValueExists.html index 3e2bd1953..936ccbc80 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereValueExists.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereValueExists.html @@ -60,8 +60,8 @@

                                                                        whereValueExists method void -whereValueExists(
                                                                        1. String column,
                                                                        2. -
                                                                        3. bool value
                                                                        4. +whereValueExists(
                                                                          1. String column,
                                                                          2. +
                                                                          3. bool value
                                                                          ) @@ -69,7 +69,7 @@

                                                                          whereValueExists method

                                                                      -

                                                                      Returns an object where the String column for the object has data correctly entered/saved

                                                                      +

                                                                      Returns an object where the String column for the object has data correctly entered/saved

                                                                      @@ -116,11 +116,11 @@

                                                                      QueryBuilder class
                                                                      Properties
                                                                    51. extraOptions
                                                                    52. -
                                                                    53. hashCode
                                                                    54. +
                                                                    55. hashCode
                                                                    56. limiters
                                                                    57. object
                                                                    58. queries
                                                                    59. -
                                                                    60. runtimeType
                                                                    61. +
                                                                    62. runtimeType
                                                                    63. Methods
                                                                    64. buildQueries
                                                                    65. @@ -136,7 +136,7 @@
                                                                      QueryBuilder class
                                                                    66. getLimitersRelational
                                                                    67. includeObject
                                                                    68. keysToReturn
                                                                    69. -
                                                                    70. noSuchMethod
                                                                    71. +
                                                                    72. noSuchMethod
                                                                    73. orderByAscending
                                                                    74. orderByDescending
                                                                    75. query
                                                                    76. @@ -145,7 +145,7 @@
                                                                      QueryBuilder class
                                                                    77. setAmountToSkip
                                                                    78. setLimit
                                                                    79. setRedirectClassNameForKey
                                                                    80. -
                                                                    81. toString
                                                                    82. +
                                                                    83. toString
                                                                    84. whereArrayContainsAll
                                                                    85. whereContainedIn
                                                                    86. whereContains
                                                                    87. @@ -175,7 +175,7 @@
                                                                      QueryBuilder class
                                                                    88. whereWithinRadians
                                                                    89. Operators
                                                                    90. -
                                                                    91. operator ==
                                                                    92. +
                                                                    93. operator ==
                                                                    94. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereWithinGeoBox.html b/dart/flutter_parse_sdk/QueryBuilder/whereWithinGeoBox.html index 61b1bb70d..fcec57636 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereWithinGeoBox.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereWithinGeoBox.html @@ -60,7 +60,7 @@

                                                                      whereWithinGeoBox method void -whereWithinGeoBox(
                                                                      1. String column,
                                                                      2. +whereWithinGeoBox(
                                                                        1. String column,
                                                                        2. ParseGeoPoint southwest,
                                                                        3. ParseGeoPoint northeast
                                                                        ) @@ -124,11 +124,11 @@
                                                                        QueryBuilder class
                                                                        Properties
                                                                      3. extraOptions
                                                                      4. -
                                                                      5. hashCode
                                                                      6. +
                                                                      7. hashCode
                                                                      8. limiters
                                                                      9. object
                                                                      10. queries
                                                                      11. -
                                                                      12. runtimeType
                                                                      13. +
                                                                      14. runtimeType
                                                                      15. Methods
                                                                      16. buildQueries
                                                                      17. @@ -144,7 +144,7 @@
                                                                        QueryBuilder class
                                                                      18. getLimitersRelational
                                                                      19. includeObject
                                                                      20. keysToReturn
                                                                      21. -
                                                                      22. noSuchMethod
                                                                      23. +
                                                                      24. noSuchMethod
                                                                      25. orderByAscending
                                                                      26. orderByDescending
                                                                      27. query
                                                                      28. @@ -153,7 +153,7 @@
                                                                        QueryBuilder class
                                                                      29. setAmountToSkip
                                                                      30. setLimit
                                                                      31. setRedirectClassNameForKey
                                                                      32. -
                                                                      33. toString
                                                                      34. +
                                                                      35. toString
                                                                      36. whereArrayContainsAll
                                                                      37. whereContainedIn
                                                                      38. whereContains
                                                                      39. @@ -183,7 +183,7 @@
                                                                        QueryBuilder class
                                                                      40. whereWithinRadians
                                                                      41. Operators
                                                                      42. -
                                                                      43. operator ==
                                                                      44. +
                                                                      45. operator ==
                                                                      46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereWithinKilometers.html b/dart/flutter_parse_sdk/QueryBuilder/whereWithinKilometers.html index 423907ae6..920970f9f 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereWithinKilometers.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereWithinKilometers.html @@ -60,9 +60,9 @@

                                                                        whereWithinKilometers method void -whereWithinKilometers(
                                                                        1. String column,
                                                                        2. +whereWithinKilometers(
                                                                          1. String column,
                                                                          2. ParseGeoPoint point,
                                                                          3. -
                                                                          4. double maxDistance
                                                                          5. +
                                                                          6. double maxDistance
                                                                          ) @@ -121,11 +121,11 @@
                                                                          QueryBuilder class
                                                                          Properties
                                                                        3. extraOptions
                                                                        4. -
                                                                        5. hashCode
                                                                        6. +
                                                                        7. hashCode
                                                                        8. limiters
                                                                        9. object
                                                                        10. queries
                                                                        11. -
                                                                        12. runtimeType
                                                                        13. +
                                                                        14. runtimeType
                                                                        15. Methods
                                                                        16. buildQueries
                                                                        17. @@ -141,7 +141,7 @@
                                                                          QueryBuilder class
                                                                        18. getLimitersRelational
                                                                        19. includeObject
                                                                        20. keysToReturn
                                                                        21. -
                                                                        22. noSuchMethod
                                                                        23. +
                                                                        24. noSuchMethod
                                                                        25. orderByAscending
                                                                        26. orderByDescending
                                                                        27. query
                                                                        28. @@ -150,7 +150,7 @@
                                                                          QueryBuilder class
                                                                        29. setAmountToSkip
                                                                        30. setLimit
                                                                        31. setRedirectClassNameForKey
                                                                        32. -
                                                                        33. toString
                                                                        34. +
                                                                        35. toString
                                                                        36. whereArrayContainsAll
                                                                        37. whereContainedIn
                                                                        38. whereContains
                                                                        39. @@ -180,7 +180,7 @@
                                                                          QueryBuilder class
                                                                        40. whereWithinRadians
                                                                        41. Operators
                                                                        42. -
                                                                        43. operator ==
                                                                        44. +
                                                                        45. operator ==
                                                                        46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereWithinMiles.html b/dart/flutter_parse_sdk/QueryBuilder/whereWithinMiles.html index d9a2f6a2d..5f576048f 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereWithinMiles.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereWithinMiles.html @@ -60,9 +60,9 @@

                                                                          whereWithinMiles method void -whereWithinMiles(
                                                                          1. String column,
                                                                          2. +whereWithinMiles(
                                                                            1. String column,
                                                                            2. ParseGeoPoint point,
                                                                            3. -
                                                                            4. double maxDistance
                                                                            5. +
                                                                            6. double maxDistance
                                                                            ) @@ -121,11 +121,11 @@
                                                                            QueryBuilder class
                                                                            Properties
                                                                          3. extraOptions
                                                                          4. -
                                                                          5. hashCode
                                                                          6. +
                                                                          7. hashCode
                                                                          8. limiters
                                                                          9. object
                                                                          10. queries
                                                                          11. -
                                                                          12. runtimeType
                                                                          13. +
                                                                          14. runtimeType
                                                                          15. Methods
                                                                          16. buildQueries
                                                                          17. @@ -141,7 +141,7 @@
                                                                            QueryBuilder class
                                                                          18. getLimitersRelational
                                                                          19. includeObject
                                                                          20. keysToReturn
                                                                          21. -
                                                                          22. noSuchMethod
                                                                          23. +
                                                                          24. noSuchMethod
                                                                          25. orderByAscending
                                                                          26. orderByDescending
                                                                          27. query
                                                                          28. @@ -150,7 +150,7 @@
                                                                            QueryBuilder class
                                                                          29. setAmountToSkip
                                                                          30. setLimit
                                                                          31. setRedirectClassNameForKey
                                                                          32. -
                                                                          33. toString
                                                                          34. +
                                                                          35. toString
                                                                          36. whereArrayContainsAll
                                                                          37. whereContainedIn
                                                                          38. whereContains
                                                                          39. @@ -180,7 +180,7 @@
                                                                            QueryBuilder class
                                                                          40. whereWithinRadians
                                                                          41. Operators
                                                                          42. -
                                                                          43. operator ==
                                                                          44. +
                                                                          45. operator ==
                                                                          46. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereWithinPolygon.html b/dart/flutter_parse_sdk/QueryBuilder/whereWithinPolygon.html index d0504f703..397408f33 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereWithinPolygon.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereWithinPolygon.html @@ -60,8 +60,8 @@

                                                                            whereWithinPolygon method void -whereWithinPolygon(
                                                                            1. String column,
                                                                            2. -
                                                                            3. List<ParseGeoPoint> points
                                                                            4. +whereWithinPolygon(
                                                                              1. String column,
                                                                              2. +
                                                                              3. List<ParseGeoPoint> points
                                                                              ) @@ -124,11 +124,11 @@
                                                                              QueryBuilder class
                                                                              Properties
                                                                            5. extraOptions
                                                                            6. -
                                                                            7. hashCode
                                                                            8. +
                                                                            9. hashCode
                                                                            10. limiters
                                                                            11. object
                                                                            12. queries
                                                                            13. -
                                                                            14. runtimeType
                                                                            15. +
                                                                            16. runtimeType
                                                                            17. Methods
                                                                            18. buildQueries
                                                                            19. @@ -144,7 +144,7 @@
                                                                              QueryBuilder class
                                                                            20. getLimitersRelational
                                                                            21. includeObject
                                                                            22. keysToReturn
                                                                            23. -
                                                                            24. noSuchMethod
                                                                            25. +
                                                                            26. noSuchMethod
                                                                            27. orderByAscending
                                                                            28. orderByDescending
                                                                            29. query
                                                                            30. @@ -153,7 +153,7 @@
                                                                              QueryBuilder class
                                                                            31. setAmountToSkip
                                                                            32. setLimit
                                                                            33. setRedirectClassNameForKey
                                                                            34. -
                                                                            35. toString
                                                                            36. +
                                                                            37. toString
                                                                            38. whereArrayContainsAll
                                                                            39. whereContainedIn
                                                                            40. whereContains
                                                                            41. @@ -183,7 +183,7 @@
                                                                              QueryBuilder class
                                                                            42. whereWithinRadians
                                                                            43. Operators
                                                                            44. -
                                                                            45. operator ==
                                                                            46. +
                                                                            47. operator ==
                                                                            48. diff --git a/dart/flutter_parse_sdk/QueryBuilder/whereWithinRadians.html b/dart/flutter_parse_sdk/QueryBuilder/whereWithinRadians.html index 2b1c88671..e4937ed44 100644 --- a/dart/flutter_parse_sdk/QueryBuilder/whereWithinRadians.html +++ b/dart/flutter_parse_sdk/QueryBuilder/whereWithinRadians.html @@ -60,9 +60,9 @@

                                                                              whereWithinRadians method void -whereWithinRadians(
                                                                              1. String column,
                                                                              2. +whereWithinRadians(
                                                                                1. String column,
                                                                                2. ParseGeoPoint point,
                                                                                3. -
                                                                                4. double maxDistance
                                                                                5. +
                                                                                6. double maxDistance
                                                                                ) @@ -121,11 +121,11 @@
                                                                                QueryBuilder class
                                                                                Properties
                                                                              3. extraOptions
                                                                              4. -
                                                                              5. hashCode
                                                                              6. +
                                                                              7. hashCode
                                                                              8. limiters
                                                                              9. object
                                                                              10. queries
                                                                              11. -
                                                                              12. runtimeType
                                                                              13. +
                                                                              14. runtimeType
                                                                              15. Methods
                                                                              16. buildQueries
                                                                              17. @@ -141,7 +141,7 @@
                                                                                QueryBuilder class
                                                                              18. getLimitersRelational
                                                                              19. includeObject
                                                                              20. keysToReturn
                                                                              21. -
                                                                              22. noSuchMethod
                                                                              23. +
                                                                              24. noSuchMethod
                                                                              25. orderByAscending
                                                                              26. orderByDescending
                                                                              27. query
                                                                              28. @@ -150,7 +150,7 @@
                                                                                QueryBuilder class
                                                                              29. setAmountToSkip
                                                                              30. setLimit
                                                                              31. setRedirectClassNameForKey
                                                                              32. -
                                                                              33. toString
                                                                              34. +
                                                                              35. toString
                                                                              36. whereArrayContainsAll
                                                                              37. whereContainedIn
                                                                              38. whereContains
                                                                              39. @@ -180,7 +180,7 @@
                                                                                QueryBuilder class
                                                                              40. whereWithinRadians
                                                                              41. Operators
                                                                              42. -
                                                                              43. operator ==
                                                                              44. +
                                                                              45. operator ==
                                                                              46. diff --git a/dart/flutter_parse_sdk/Subscription-class.html b/dart/flutter_parse_sdk/Subscription-class.html index db34d4261..818e9ac08 100644 --- a/dart/flutter_parse_sdk/Subscription-class.html +++ b/dart/flutter_parse_sdk/Subscription-class.html @@ -66,7 +66,7 @@

                                                                                Constructors

                                                                                - Subscription(QueryBuilder<T> query, int requestId, {T? copyObject}) + Subscription(QueryBuilder<T> query, int requestId, {T? copyObject})
                                                                                @@ -91,7 +91,7 @@

                                                                                Properties

                                                                                eventCallbacks - Map<String, Function> + Map<String, Function>
                                                                                @@ -101,8 +101,8 @@

                                                                                Properties

                                                                                - hashCode - int + hashCode + int
                                                                                @@ -124,7 +124,7 @@

                                                                                Properties

                                                                                requestId - int + int
                                                                                @@ -134,8 +134,8 @@

                                                                                Properties

                                                                                - runtimeType - Type + runtimeType + Type
                                                                                @@ -154,7 +154,7 @@

                                                                                Properties

                                                                                Methods

                                                                                - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -167,7 +167,7 @@

                                                                                Methods

                                                                                - on(LiveQueryEvent op, Function callback) + on(LiveQueryEvent op, Function callback) → void @@ -180,8 +180,8 @@

                                                                                Methods

                                                                                - toString() - String + toString() + String @@ -201,8 +201,8 @@

                                                                                Methods

                                                                                Operators

                                                                                - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -415,18 +415,18 @@
                                                                                flutter_parse_sdk library
                                                                              47. copyObject
                                                                              48. eventCallbacks
                                                                              49. -
                                                                              50. hashCode
                                                                              51. +
                                                                              52. hashCode
                                                                              53. query
                                                                              54. requestId
                                                                              55. -
                                                                              56. runtimeType
                                                                              57. +
                                                                              58. runtimeType
                                                                              59. Methods
                                                                              60. -
                                                                              61. noSuchMethod
                                                                              62. +
                                                                              63. noSuchMethod
                                                                              64. on
                                                                              65. -
                                                                              66. toString
                                                                              67. +
                                                                              68. toString
                                                                              69. Operators
                                                                              70. -
                                                                              71. operator ==
                                                                              72. +
                                                                              73. operator ==
                                                                              74. diff --git a/dart/flutter_parse_sdk/Subscription/Subscription.html b/dart/flutter_parse_sdk/Subscription/Subscription.html index 07e35856d..b2d6e447e 100644 --- a/dart/flutter_parse_sdk/Subscription/Subscription.html +++ b/dart/flutter_parse_sdk/Subscription/Subscription.html @@ -59,7 +59,7 @@

                                                                                Subscription< Subscription<T extends ParseObject>(
                                                                                1. QueryBuilder<T> query,
                                                                                2. -
                                                                                3. int requestId,
                                                                                4. +
                                                                                5. int requestId,
                                                                                6. {T? copyObject}
                                                                                )

                                                                    @@ -105,18 +105,18 @@

                                                                    Subscription class
                                                                  41. copyObject
                                                                  42. eventCallbacks
                                                                  43. -
                                                                  44. hashCode
                                                                  45. +
                                                                  46. hashCode
                                                                  47. query
                                                                  48. requestId
                                                                  49. -
                                                                  50. runtimeType
                                                                  51. +
                                                                  52. runtimeType
                                                                  53. Methods
                                                                  54. -
                                                                  55. noSuchMethod
                                                                  56. +
                                                                  57. noSuchMethod
                                                                  58. on
                                                                  59. -
                                                                  60. toString
                                                                  61. +
                                                                  62. toString
                                                                  63. Operators
                                                                  64. -
                                                                  65. operator ==
                                                                  66. +
                                                                  67. operator ==
                                                                  68. diff --git a/dart/flutter_parse_sdk/Subscription/copyObject.html b/dart/flutter_parse_sdk/Subscription/copyObject.html index 4c4c163c3..1413fd9d7 100644 --- a/dart/flutter_parse_sdk/Subscription/copyObject.html +++ b/dart/flutter_parse_sdk/Subscription/copyObject.html @@ -110,18 +110,18 @@
                                                                    Subscription class
                                                                  69. copyObject
                                                                  70. eventCallbacks
                                                                  71. -
                                                                  72. hashCode
                                                                  73. +
                                                                  74. hashCode
                                                                  75. query
                                                                  76. requestId
                                                                  77. -
                                                                  78. runtimeType
                                                                  79. +
                                                                  80. runtimeType
                                                                  81. Methods
                                                                  82. -
                                                                  83. noSuchMethod
                                                                  84. +
                                                                  85. noSuchMethod
                                                                  86. on
                                                                  87. -
                                                                  88. toString
                                                                  89. +
                                                                  90. toString
                                                                  91. Operators
                                                                  92. -
                                                                  93. operator ==
                                                                  94. +
                                                                  95. operator ==
                                                                  96. diff --git a/dart/flutter_parse_sdk/Subscription/eventCallbacks.html b/dart/flutter_parse_sdk/Subscription/eventCallbacks.html index 6a769033d..7e2a3bfcb 100644 --- a/dart/flutter_parse_sdk/Subscription/eventCallbacks.html +++ b/dart/flutter_parse_sdk/Subscription/eventCallbacks.html @@ -58,7 +58,7 @@

                                                                    eventCallbacks property
                                                                    - Map<String, Function> + Map<String, Function> eventCallbacks
                                                                    read / write
                                                                    @@ -101,18 +101,18 @@
                                                                    Subscription class
                                                                  97. copyObject
                                                                  98. eventCallbacks
                                                                  99. -
                                                                  100. hashCode
                                                                  101. +
                                                                  102. hashCode
                                                                  103. query
                                                                  104. requestId
                                                                  105. -
                                                                  106. runtimeType
                                                                  107. +
                                                                  108. runtimeType
                                                                  109. Methods
                                                                  110. -
                                                                  111. noSuchMethod
                                                                  112. +
                                                                  113. noSuchMethod
                                                                  114. on
                                                                  115. -
                                                                  116. toString
                                                                  117. +
                                                                  118. toString
                                                                  119. Operators
                                                                  120. -
                                                                  121. operator ==
                                                                  122. +
                                                                  123. operator ==
                                                                  124. diff --git a/dart/flutter_parse_sdk/Subscription/on.html b/dart/flutter_parse_sdk/Subscription/on.html index f333b2d9f..87a43e8a1 100644 --- a/dart/flutter_parse_sdk/Subscription/on.html +++ b/dart/flutter_parse_sdk/Subscription/on.html @@ -61,7 +61,7 @@

                                                                    on method void on(
                                                                    1. LiveQueryEvent op,
                                                                    2. -
                                                                    3. Function callback
                                                                    4. +
                                                                    5. Function callback
                                                                    ) @@ -108,18 +108,18 @@

                                                                    Subscription class
                                                                  125. copyObject
                                                                  126. eventCallbacks
                                                                  127. -
                                                                  128. hashCode
                                                                  129. +
                                                                  130. hashCode
                                                                  131. query
                                                                  132. requestId
                                                                  133. -
                                                                  134. runtimeType
                                                                  135. +
                                                                  136. runtimeType
                                                                  137. Methods
                                                                  138. -
                                                                  139. noSuchMethod
                                                                  140. +
                                                                  141. noSuchMethod
                                                                  142. on
                                                                  143. -
                                                                  144. toString
                                                                  145. +
                                                                  146. toString
                                                                  147. Operators
                                                                  148. -
                                                                  149. operator ==
                                                                  150. +
                                                                  151. operator ==
                                                                  152. diff --git a/dart/flutter_parse_sdk/Subscription/query.html b/dart/flutter_parse_sdk/Subscription/query.html index 36fef19b4..5cecfc830 100644 --- a/dart/flutter_parse_sdk/Subscription/query.html +++ b/dart/flutter_parse_sdk/Subscription/query.html @@ -101,18 +101,18 @@
                                                                    Subscription class
                                                                  153. copyObject
                                                                  154. eventCallbacks
                                                                  155. -
                                                                  156. hashCode
                                                                  157. +
                                                                  158. hashCode
                                                                  159. query
                                                                  160. requestId
                                                                  161. -
                                                                  162. runtimeType
                                                                  163. +
                                                                  164. runtimeType
                                                                  165. Methods
                                                                  166. -
                                                                  167. noSuchMethod
                                                                  168. +
                                                                  169. noSuchMethod
                                                                  170. on
                                                                  171. -
                                                                  172. toString
                                                                  173. +
                                                                  174. toString
                                                                  175. Operators
                                                                  176. -
                                                                  177. operator ==
                                                                  178. +
                                                                  179. operator ==
                                                                  180. diff --git a/dart/flutter_parse_sdk/Subscription/requestId.html b/dart/flutter_parse_sdk/Subscription/requestId.html index 8d7d4bb63..e7880aa58 100644 --- a/dart/flutter_parse_sdk/Subscription/requestId.html +++ b/dart/flutter_parse_sdk/Subscription/requestId.html @@ -58,7 +58,7 @@

                                                                    requestId property
                                                                    - int + int requestId
                                                                    read / write
                                                                    @@ -101,18 +101,18 @@
                                                                    Subscription class
                                                                  181. copyObject
                                                                  182. eventCallbacks
                                                                  183. -
                                                                  184. hashCode
                                                                  185. +
                                                                  186. hashCode
                                                                  187. query
                                                                  188. requestId
                                                                  189. -
                                                                  190. runtimeType
                                                                  191. +
                                                                  192. runtimeType
                                                                  193. Methods
                                                                  194. -
                                                                  195. noSuchMethod
                                                                  196. +
                                                                  197. noSuchMethod
                                                                  198. on
                                                                  199. -
                                                                  200. toString
                                                                  201. +
                                                                  202. toString
                                                                  203. Operators
                                                                  204. -
                                                                  205. operator ==
                                                                  206. +
                                                                  207. operator ==
                                                                  208. diff --git a/dart/flutter_parse_sdk/apple.html b/dart/flutter_parse_sdk/apple.html index 08198e42d..386006e19 100644 --- a/dart/flutter_parse_sdk/apple.html +++ b/dart/flutter_parse_sdk/apple.html @@ -59,9 +59,9 @@

                                                                    apple function
                                                                    -Map<String, dynamic> -apple(
                                                                    1. String token,
                                                                    2. -
                                                                    3. String id
                                                                    4. +Map<String, dynamic> +apple(
                                                                      1. String token,
                                                                      2. +
                                                                      3. String id
                                                                      ) diff --git a/dart/flutter_parse_sdk/batchRequest.html b/dart/flutter_parse_sdk/batchRequest.html index 00a9b29e7..ed02ea2d5 100644 --- a/dart/flutter_parse_sdk/batchRequest.html +++ b/dart/flutter_parse_sdk/batchRequest.html @@ -59,11 +59,11 @@

                                                                      batchRequest function
                                                                      -Future<ParseResponse> -batchRequest(
                                                                      1. List requests,
                                                                      2. -
                                                                      3. List<ParseObject> objects,
                                                                      4. +Future<ParseResponse> +batchRequest(
                                                                        1. List requests,
                                                                        2. +
                                                                        3. List<ParseObject> objects,
                                                                        4. {ParseClient? client,
                                                                        5. -
                                                                        6. bool? debug}
                                                                        7. +
                                                                        8. bool? debug}
                                                                        ) diff --git a/dart/flutter_parse_sdk/buildParseResponseWithException.html b/dart/flutter_parse_sdk/buildParseResponseWithException.html index c9f74d51e..70787b2ad 100644 --- a/dart/flutter_parse_sdk/buildParseResponseWithException.html +++ b/dart/flutter_parse_sdk/buildParseResponseWithException.html @@ -60,7 +60,7 @@

                                                                        buildParseResponseWithException function ParseResponse -buildParseResponseWithException(
                                                                        1. Exception exception
                                                                        2. +buildParseResponseWithException(
                                                                          1. Exception exception
                                                                          ) diff --git a/dart/flutter_parse_sdk/buildSuccessResponseWithNoResults.html b/dart/flutter_parse_sdk/buildSuccessResponseWithNoResults.html index b0732a569..19ca77095 100644 --- a/dart/flutter_parse_sdk/buildSuccessResponseWithNoResults.html +++ b/dart/flutter_parse_sdk/buildSuccessResponseWithNoResults.html @@ -61,8 +61,8 @@

                                                                          buildSuccessResponseWithNoResults functio ParseResponse buildSuccessResponseWithNoResults(
                                                                          1. ParseResponse response,
                                                                          2. -
                                                                          3. int code,
                                                                          4. -
                                                                          5. String value
                                                                          6. +
                                                                          7. int code,
                                                                          8. +
                                                                          9. String value
                                                                          ) diff --git a/dart/flutter_parse_sdk/concatenateArray.html b/dart/flutter_parse_sdk/concatenateArray.html index cbfbe83bc..daa6bd4fe 100644 --- a/dart/flutter_parse_sdk/concatenateArray.html +++ b/dart/flutter_parse_sdk/concatenateArray.html @@ -59,8 +59,8 @@

                                                                          concatenateArray function
                                                                          -String -concatenateArray(
                                                                          1. List<String> list
                                                                          2. +String +concatenateArray(
                                                                            1. List<String> list
                                                                            ) diff --git a/dart/flutter_parse_sdk/encodeObject.html b/dart/flutter_parse_sdk/encodeObject.html index ec4b6ae19..bb267fb64 100644 --- a/dart/flutter_parse_sdk/encodeObject.html +++ b/dart/flutter_parse_sdk/encodeObject.html @@ -59,9 +59,9 @@

                                                                            encodeObject function
                                                                            -Map<String, String> -encodeObject(
                                                                            1. String className,
                                                                            2. -
                                                                            3. String objectId
                                                                            4. +Map<String, String> +encodeObject(
                                                                              1. String className,
                                                                              2. +
                                                                              3. String objectId
                                                                              ) diff --git a/dart/flutter_parse_sdk/facebook.html b/dart/flutter_parse_sdk/facebook.html index bd98c10e8..f4785b62e 100644 --- a/dart/flutter_parse_sdk/facebook.html +++ b/dart/flutter_parse_sdk/facebook.html @@ -59,10 +59,10 @@

                                                                              facebook function
                                                                              -Map<String, dynamic> -facebook(
                                                                              1. String token,
                                                                              2. -
                                                                              3. String id,
                                                                              4. -
                                                                              5. DateTime expires
                                                                              6. +Map<String, dynamic> +facebook(
                                                                                1. String token,
                                                                                2. +
                                                                                3. String id,
                                                                                4. +
                                                                                5. DateTime expires
                                                                                ) diff --git a/dart/flutter_parse_sdk/flutter_parse_sdk-library.html b/dart/flutter_parse_sdk/flutter_parse_sdk-library.html index a8c77d808..4e41a3cff 100644 --- a/dart/flutter_parse_sdk/flutter_parse_sdk-library.html +++ b/dart/flutter_parse_sdk/flutter_parse_sdk-library.html @@ -423,7 +423,7 @@

                                                                                Constants

                                                                                keyAppIdentifier - → const String + → const String
                                                                                @@ -438,7 +438,7 @@

                                                                                Constants

                                                                                keyAppName - → const String + → const String
                                                                                @@ -453,7 +453,7 @@

                                                                                Constants

                                                                                keyAppVersion - → const String + → const String
                                                                                @@ -468,7 +468,7 @@

                                                                                Constants

                                                                                keyClassInstallation - → const String + → const String
                                                                                @@ -483,7 +483,7 @@

                                                                                Constants

                                                                                keyClassMain - → const String + → const String
                                                                                @@ -498,7 +498,7 @@

                                                                                Constants

                                                                                keyClassSession - → const String + → const String
                                                                                @@ -513,7 +513,7 @@

                                                                                Constants

                                                                                keyClassUser - → const String + → const String
                                                                                @@ -528,7 +528,7 @@

                                                                                Constants

                                                                                keyCode - → const String + → const String
                                                                                @@ -543,7 +543,7 @@

                                                                                Constants

                                                                                keyDeviceToken - → const String + → const String
                                                                                @@ -558,7 +558,7 @@

                                                                                Constants

                                                                                keyDeviceType - → const String + → const String
                                                                                @@ -573,7 +573,7 @@

                                                                                Constants

                                                                                keyEndPointAggregate - → const String + → const String
                                                                                @@ -588,7 +588,7 @@

                                                                                Constants

                                                                                keyEndPointClasses - → const String + → const String
                                                                                @@ -603,7 +603,7 @@

                                                                                Constants

                                                                                keyEndPointHealth - → const String + → const String
                                                                                @@ -618,7 +618,7 @@

                                                                                Constants

                                                                                keyEndPointInstallations - → const String + → const String
                                                                                @@ -633,7 +633,7 @@

                                                                                Constants

                                                                                keyEndPointLogin - → const String + → const String
                                                                                @@ -648,7 +648,7 @@

                                                                                Constants

                                                                                keyEndPointLogout - → const String + → const String
                                                                                @@ -663,7 +663,7 @@

                                                                                Constants

                                                                                keyEndPointRequestPasswordReset - → const String + → const String
                                                                                @@ -678,7 +678,7 @@

                                                                                Constants

                                                                                keyEndPointSessions - → const String + → const String
                                                                                @@ -693,7 +693,7 @@

                                                                                Constants

                                                                                keyEndPointUserName - → const String + → const String
                                                                                @@ -708,7 +708,7 @@

                                                                                Constants

                                                                                keyEndPointUsers - → const String + → const String
                                                                                @@ -723,7 +723,7 @@

                                                                                Constants

                                                                                keyEndPointVerificationEmail - → const String + → const String
                                                                                @@ -738,7 +738,7 @@

                                                                                Constants

                                                                                keyError - → const String + → const String
                                                                                @@ -753,7 +753,7 @@

                                                                                Constants

                                                                                keyFile - → const String + → const String
                                                                                @@ -768,7 +768,7 @@

                                                                                Constants

                                                                                keyFileClassname - → const String + → const String
                                                                                @@ -783,7 +783,7 @@

                                                                                Constants

                                                                                keyGeoPoint - → const String + → const String
                                                                                @@ -798,7 +798,7 @@

                                                                                Constants

                                                                                keyHeaderApplicationId - → const String + → const String
                                                                                @@ -813,7 +813,7 @@

                                                                                Constants

                                                                                keyHeaderClientKey - → const String + → const String
                                                                                @@ -828,7 +828,7 @@

                                                                                Constants

                                                                                keyHeaderContentType - → const String + → const String
                                                                                @@ -843,7 +843,7 @@

                                                                                Constants

                                                                                keyHeaderContentTypeJson - → const String + → const String
                                                                                @@ -858,7 +858,7 @@

                                                                                Constants

                                                                                keyHeaderInstallationId - → const String + → const String
                                                                                @@ -873,7 +873,7 @@

                                                                                Constants

                                                                                keyHeaderMasterKey - → const String + → const String
                                                                                @@ -888,7 +888,7 @@

                                                                                Constants

                                                                                keyHeaderRevocableSession - → const String + → const String
                                                                                @@ -903,7 +903,7 @@

                                                                                Constants

                                                                                keyHeaderSessionToken - → const String + → const String
                                                                                @@ -918,7 +918,7 @@

                                                                                Constants

                                                                                keyHeaderUserAgent - → const String + → const String
                                                                                @@ -933,7 +933,7 @@

                                                                                Constants

                                                                                keyInstallationId - → const String + → const String
                                                                                @@ -948,7 +948,7 @@

                                                                                Constants

                                                                                keyLatitude - → const String + → const String
                                                                                @@ -963,7 +963,7 @@

                                                                                Constants

                                                                                keyLibraryName - → const String + → const String
                                                                                @@ -978,7 +978,7 @@

                                                                                Constants

                                                                                keyLocaleIdentifier - → const String + → const String
                                                                                @@ -993,7 +993,7 @@

                                                                                Constants

                                                                                keyLongitude - → const String + → const String
                                                                                @@ -1008,7 +1008,7 @@

                                                                                Constants

                                                                                keyParamSessionToken - → const String + → const String
                                                                                @@ -1023,7 +1023,7 @@

                                                                                Constants

                                                                                keyParseStoreBase - → const String + → const String
                                                                                @@ -1038,7 +1038,7 @@

                                                                                Constants

                                                                                keyParseStoreInstallation - → const String + → const String
                                                                                @@ -1053,7 +1053,7 @@

                                                                                Constants

                                                                                keyParseStoreUser - → const String + → const String
                                                                                @@ -1068,7 +1068,7 @@

                                                                                Constants

                                                                                keyParseVersion - → const String + → const String
                                                                                @@ -1083,7 +1083,7 @@

                                                                                Constants

                                                                                keyRelation - → const String + → const String
                                                                                @@ -1098,7 +1098,7 @@

                                                                                Constants

                                                                                keySdkVersion - → const String + → const String
                                                                                @@ -1113,7 +1113,7 @@

                                                                                Constants

                                                                                keyTimeZone - → const String + → const String
                                                                                @@ -1128,7 +1128,7 @@

                                                                                Constants

                                                                                keyVarAcl - → const String + → const String
                                                                                @@ -1143,7 +1143,7 @@

                                                                                Constants

                                                                                keyVarAuthData - → const String + → const String
                                                                                @@ -1158,7 +1158,7 @@

                                                                                Constants

                                                                                keyVarClassName - → const String + → const String
                                                                                @@ -1173,7 +1173,7 @@

                                                                                Constants

                                                                                keyVarCreatedAt - → const String + → const String
                                                                                @@ -1188,7 +1188,7 @@

                                                                                Constants

                                                                                keyVarCreatedWith - → const String + → const String
                                                                                @@ -1203,7 +1203,7 @@

                                                                                Constants

                                                                                keyVarEmail - → const String + → const String
                                                                                @@ -1218,7 +1218,7 @@

                                                                                Constants

                                                                                keyVarExpiresAt - → const String + → const String
                                                                                @@ -1233,7 +1233,7 @@

                                                                                Constants

                                                                                keyVarInstallationId - → const String + → const String
                                                                                @@ -1248,7 +1248,7 @@

                                                                                Constants

                                                                                keyVarName - → const String + → const String
                                                                                @@ -1263,7 +1263,7 @@

                                                                                Constants

                                                                                keyVarObjectId - → const String + → const String
                                                                                @@ -1278,7 +1278,7 @@

                                                                                Constants

                                                                                keyVarPassword - → const String + → const String
                                                                                @@ -1293,7 +1293,7 @@

                                                                                Constants

                                                                                keyVarRestricted - → const String + → const String
                                                                                @@ -1308,7 +1308,7 @@

                                                                                Constants

                                                                                keyVarSessionToken - → const String + → const String
                                                                                @@ -1323,7 +1323,7 @@

                                                                                Constants

                                                                                keyVarUpdatedAt - → const String + → const String
                                                                                @@ -1338,7 +1338,7 @@

                                                                                Constants

                                                                                keyVarURL - → const String + → const String
                                                                                @@ -1353,7 +1353,7 @@

                                                                                Constants

                                                                                keyVarUser - → const String + → const String
                                                                                @@ -1368,7 +1368,7 @@

                                                                                Constants

                                                                                keyVarUsername - → const String + → const String
                                                                                @@ -1383,7 +1383,7 @@

                                                                                Constants

                                                                                parseIsWeb - → const bool + → const bool
                                                                                @@ -1405,8 +1405,8 @@

                                                                                Functions

                                                                                - apple(String token, String id) - Map<String, dynamic> + apple(String token, String id) + Map<String, dynamic> @@ -1418,8 +1418,8 @@

                                                                                Functions

                                                                                - batchRequest(List requests, List<ParseObject> objects, {ParseClient? client, bool? debug}) - Future<ParseResponse> + batchRequest(List requests, List<ParseObject> objects, {ParseClient? client, bool? debug}) + Future<ParseResponse> @@ -1444,7 +1444,7 @@

                                                                                Functions

                                                                                - buildParseResponseWithException(Exception exception) + buildParseResponseWithException(Exception exception) ParseResponse @@ -1457,7 +1457,7 @@

                                                                                Functions

                                                                                - buildSuccessResponseWithNoResults(ParseResponse response, int code, String value) + buildSuccessResponseWithNoResults(ParseResponse response, int code, String value) ParseResponse @@ -1470,8 +1470,8 @@

                                                                                Functions

                                                                                - concatenateArray(List<String> list) - String + concatenateArray(List<String> list) + String @@ -1509,8 +1509,8 @@

                                                                                Functions

                                                                                - encodeObject(String className, String objectId) - Map<String, String> + encodeObject(String className, String objectId) + Map<String, String> @@ -1522,8 +1522,8 @@

                                                                                Functions

                                                                                - facebook(String token, String id, DateTime expires) - Map<String, dynamic> + facebook(String token, String id, DateTime expires) + Map<String, dynamic> @@ -1535,8 +1535,8 @@

                                                                                Functions

                                                                                - getCustomUri(ParseClient client, String path, {Map<String, dynamic>? queryParams, String? query}) - Uri + getCustomUri(ParseClient client, String path, {Map<String, dynamic>? queryParams, String? query}) + Uri @@ -1548,8 +1548,8 @@

                                                                                Functions

                                                                                - getSanitisedUri(ParseClient client, String pathToAppend, {Map<String, dynamic>? queryParams, String? query}) - Uri + getSanitisedUri(ParseClient client, String pathToAppend, {Map<String, dynamic>? queryParams, String? query}) + Uri @@ -1561,7 +1561,7 @@

                                                                                Functions

                                                                                - getXXTeaSembastCodec({required String password}) + getXXTeaSembastCodec({required String password}) SembastCodec @@ -1574,8 +1574,8 @@

                                                                                Functions

                                                                                - google(String token, String id, String idToken) - Map<String, dynamic> + google(String token, String id, String idToken) + Map<String, dynamic> @@ -1587,34 +1587,34 @@

                                                                                Functions

                                                                                - handleException(Exception exception, ParseApiRQ type, bool debug, String className) + handleException(Exception exception, ParseApiRQ type, bool debug, String className) ParseResponse
                                                                                - Handles an API response and logs data if bool debug is enabled + Handles an API response and logs data if bool debug is enabled
                                                                                - handleResponse<T>(dynamic object, ParseNetworkResponse response, ParseApiRQ type, bool debug, String className) + handleResponse<T>(dynamic object, ParseNetworkResponse response, ParseApiRQ type, bool debug, String className) ParseResponse
                                                                                - Handles an API response and logs data if bool debug is enabled + Handles an API response and logs data if bool debug is enabled
                                                                                - isDebugEnabled({bool? objectLevelDebug}) - bool + isDebugEnabled({bool? objectLevelDebug}) + bool @@ -1627,7 +1627,7 @@

                                                                                Functions

                                                                                isSuccessButNoResults(ParseNetworkResponse apiResponse) - bool + bool @@ -1640,7 +1640,7 @@

                                                                                Functions

                                                                                isUnsuccessfulResponse(ParseNetworkResponse apiResponse) - bool + bool @@ -1652,7 +1652,7 @@

                                                                                Functions

                                                                                - logAPIResponse(String className, String type, ParseResponse parseResponse) + logAPIResponse(String className, String type, ParseResponse parseResponse) → void @@ -1665,7 +1665,7 @@

                                                                                Functions

                                                                                - logRequest(String? appName, String className, String type, String uri, String body) + logRequest(String? appName, String className, String type, String uri, String body) → void @@ -1691,7 +1691,7 @@

                                                                                Functions

                                                                                - parseEncode(dynamic value, {bool full = false}) + parseEncode(dynamic value, {bool full = false}) → dynamic @@ -1704,8 +1704,8 @@

                                                                                Functions

                                                                                - removeDuplicateParseObjectByObjectId(Iterable iterable) - List + removeDuplicateParseObjectByObjectId(Iterable iterable) + List @@ -1717,8 +1717,8 @@

                                                                                Functions

                                                                                - removeTrailingSlash(String serverUrl) - String + removeTrailingSlash(String serverUrl) + String @@ -1731,7 +1731,7 @@

                                                                                Functions

                                                                                shouldReturnAsABaseResult(ParseApiRQ type) - bool + bool @@ -1799,7 +1799,7 @@

                                                                                Typedefs

                                                                                ParseClientCreator - = ParseClient Function({SecurityContext? securityContext, required bool sendSessionId}) + = ParseClient Function({SecurityContext? securityContext, required bool sendSessionId}) @@ -1813,7 +1813,7 @@

                                                                                Typedefs

                                                                                ParseFileConstructor - = ParseFileBase Function({String? name, String? url}) + = ParseFileBase Function({String? name, String? url}) @@ -1841,7 +1841,7 @@

                                                                                Typedefs

                                                                                ParseUserConstructor - = ParseUser Function(String? username, String? password, String? emailAddress, {ParseClient? client, bool? debug, String? sessionToken}) + = ParseUser Function(String? username, String? password, String? emailAddress, {ParseClient? client, bool? debug, String? sessionToken}) @@ -1855,7 +1855,7 @@

                                                                                Typedefs

                                                                                ProgressCallback - = void Function(int count, int total) + = void Function(int count, int total) diff --git a/dart/flutter_parse_sdk/getCustomUri.html b/dart/flutter_parse_sdk/getCustomUri.html index 59b49ca64..93772fb6e 100644 --- a/dart/flutter_parse_sdk/getCustomUri.html +++ b/dart/flutter_parse_sdk/getCustomUri.html @@ -59,11 +59,11 @@

                                                                                getCustomUri function
                                                                                -Uri +Uri getCustomUri(
                                                                                1. ParseClient client,
                                                                                2. -
                                                                                3. String path,
                                                                                4. -
                                                                                5. {Map<String, dynamic>? queryParams,
                                                                                6. -
                                                                                7. String? query}
                                                                                8. +
                                                                                9. String path,
                                                                                10. +
                                                                                11. {Map<String, dynamic>? queryParams,
                                                                                12. +
                                                                                13. String? query}
                                                                                ) diff --git a/dart/flutter_parse_sdk/getSanitisedUri.html b/dart/flutter_parse_sdk/getSanitisedUri.html index 62e546474..df22a9ef5 100644 --- a/dart/flutter_parse_sdk/getSanitisedUri.html +++ b/dart/flutter_parse_sdk/getSanitisedUri.html @@ -59,11 +59,11 @@

                                                                                getSanitisedUri function
                                                                                -Uri +Uri getSanitisedUri(
                                                                                1. ParseClient client,
                                                                                2. -
                                                                                3. String pathToAppend,
                                                                                4. -
                                                                                5. {Map<String, dynamic>? queryParams,
                                                                                6. -
                                                                                7. String? query}
                                                                                8. +
                                                                                9. String pathToAppend,
                                                                                10. +
                                                                                11. {Map<String, dynamic>? queryParams,
                                                                                12. +
                                                                                13. String? query}
                                                                                ) diff --git a/dart/flutter_parse_sdk/getXXTeaSembastCodec.html b/dart/flutter_parse_sdk/getXXTeaSembastCodec.html index 31c0e7a70..fa7719809 100644 --- a/dart/flutter_parse_sdk/getXXTeaSembastCodec.html +++ b/dart/flutter_parse_sdk/getXXTeaSembastCodec.html @@ -60,7 +60,7 @@

                                                                                getXXTeaSembastCodec function SembastCodec -getXXTeaSembastCodec(
                                                                                1. {required String password}
                                                                                2. +getXXTeaSembastCodec(
                                                                                  1. {required String password}
                                                                                  ) diff --git a/dart/flutter_parse_sdk/google.html b/dart/flutter_parse_sdk/google.html index 342df6789..058e8c51f 100644 --- a/dart/flutter_parse_sdk/google.html +++ b/dart/flutter_parse_sdk/google.html @@ -59,10 +59,10 @@

                                                                                  google function
                                                                                  -Map<String, dynamic> -google(
                                                                                  1. String token,
                                                                                  2. -
                                                                                  3. String id,
                                                                                  4. -
                                                                                  5. String idToken
                                                                                  6. +Map<String, dynamic> +google(
                                                                                    1. String token,
                                                                                    2. +
                                                                                    3. String id,
                                                                                    4. +
                                                                                    5. String idToken
                                                                                    ) diff --git a/dart/flutter_parse_sdk/handleException.html b/dart/flutter_parse_sdk/handleException.html index 22c08559c..74431533d 100644 --- a/dart/flutter_parse_sdk/handleException.html +++ b/dart/flutter_parse_sdk/handleException.html @@ -65,10 +65,10 @@

                                                                                    handleException function ParseResponse -handleException(
                                                                                    1. Exception exception,
                                                                                    2. +handleException(
                                                                                      1. Exception exception,
                                                                                      2. ParseApiRQ type,
                                                                                      3. -
                                                                                      4. bool debug,
                                                                                      5. -
                                                                                      6. String className
                                                                                      7. +
                                                                                      8. bool debug,
                                                                                      9. +
                                                                                      10. String className
                                                                                      ) @@ -76,7 +76,7 @@

                                                                                      handleException function

                                                                                  -

                                                                                  Handles an API response and logs data if bool debug is enabled

                                                                                  +

                                                                                  Handles an API response and logs data if bool debug is enabled

                                                                                  diff --git a/dart/flutter_parse_sdk/handleResponse.html b/dart/flutter_parse_sdk/handleResponse.html index c7d784243..cbb782af4 100644 --- a/dart/flutter_parse_sdk/handleResponse.html +++ b/dart/flutter_parse_sdk/handleResponse.html @@ -68,8 +68,8 @@

                                                                                  handleResponse<handleResponse<T>(
                                                                                  1. dynamic object,
                                                                                  2. ParseNetworkResponse response,
                                                                                  3. ParseApiRQ type,
                                                                                  4. -
                                                                                  5. bool debug,
                                                                                  6. -
                                                                                  7. String className
                                                                                  8. +
                                                                                  9. bool debug,
                                                                                  10. +
                                                                                  11. String className
                                                                                  ) @@ -77,7 +77,7 @@

                                                                                  handleResponse< -

                                                                                  Handles an API response and logs data if bool debug is enabled

                                                                                  +

                                                                                  Handles an API response and logs data if bool debug is enabled

                                                                                diff --git a/dart/flutter_parse_sdk/isDebugEnabled.html b/dart/flutter_parse_sdk/isDebugEnabled.html index ac3689da8..e9ffd06bc 100644 --- a/dart/flutter_parse_sdk/isDebugEnabled.html +++ b/dart/flutter_parse_sdk/isDebugEnabled.html @@ -59,8 +59,8 @@

                                                                                isDebugEnabled function
                                                                                -bool -isDebugEnabled(
                                                                                1. {bool? objectLevelDebug}
                                                                                2. +bool +isDebugEnabled(
                                                                                  1. {bool? objectLevelDebug}
                                                                                  ) diff --git a/dart/flutter_parse_sdk/isSuccessButNoResults.html b/dart/flutter_parse_sdk/isSuccessButNoResults.html index b05b675ca..9cd1edc0a 100644 --- a/dart/flutter_parse_sdk/isSuccessButNoResults.html +++ b/dart/flutter_parse_sdk/isSuccessButNoResults.html @@ -59,7 +59,7 @@

                                                                                  isSuccessButNoResults function
                                                                                  -bool +bool isSuccessButNoResults(
                                                                                  1. ParseNetworkResponse apiResponse
                                                                                  ) diff --git a/dart/flutter_parse_sdk/isUnsuccessfulResponse.html b/dart/flutter_parse_sdk/isUnsuccessfulResponse.html index bf5b76a0c..317977d83 100644 --- a/dart/flutter_parse_sdk/isUnsuccessfulResponse.html +++ b/dart/flutter_parse_sdk/isUnsuccessfulResponse.html @@ -59,7 +59,7 @@

                                                                                  isUnsuccessfulResponse function
                                                                                  -bool +bool isUnsuccessfulResponse(
                                                                                  1. ParseNetworkResponse apiResponse
                                                                                  ) diff --git a/dart/flutter_parse_sdk/keyAppIdentifier-constant.html b/dart/flutter_parse_sdk/keyAppIdentifier-constant.html index c4c1ff2da..80883859a 100644 --- a/dart/flutter_parse_sdk/keyAppIdentifier-constant.html +++ b/dart/flutter_parse_sdk/keyAppIdentifier-constant.html @@ -58,7 +58,7 @@

                                                                                  keyAppIdentifier top-level cons
                                                                                  - String + String const keyAppIdentifier diff --git a/dart/flutter_parse_sdk/keyAppName-constant.html b/dart/flutter_parse_sdk/keyAppName-constant.html index cf9ad0173..45f82f57c 100644 --- a/dart/flutter_parse_sdk/keyAppName-constant.html +++ b/dart/flutter_parse_sdk/keyAppName-constant.html @@ -58,7 +58,7 @@

                                                                                  keyAppName top-level constant
                                                                                  - String + String const keyAppName diff --git a/dart/flutter_parse_sdk/keyAppVersion-constant.html b/dart/flutter_parse_sdk/keyAppVersion-constant.html index e3c2d22c0..cd1c2de99 100644 --- a/dart/flutter_parse_sdk/keyAppVersion-constant.html +++ b/dart/flutter_parse_sdk/keyAppVersion-constant.html @@ -58,7 +58,7 @@

                                                                                  keyAppVersion top-level constan
                                                                                  - String + String const keyAppVersion diff --git a/dart/flutter_parse_sdk/keyClassInstallation-constant.html b/dart/flutter_parse_sdk/keyClassInstallation-constant.html index 048adbe89..2a00133c8 100644 --- a/dart/flutter_parse_sdk/keyClassInstallation-constant.html +++ b/dart/flutter_parse_sdk/keyClassInstallation-constant.html @@ -58,7 +58,7 @@

                                                                                  keyClassInstallation top-level
                                                                                  - String + String const keyClassInstallation diff --git a/dart/flutter_parse_sdk/keyClassMain-constant.html b/dart/flutter_parse_sdk/keyClassMain-constant.html index 39f65de54..05913f76c 100644 --- a/dart/flutter_parse_sdk/keyClassMain-constant.html +++ b/dart/flutter_parse_sdk/keyClassMain-constant.html @@ -58,7 +58,7 @@

                                                                                  keyClassMain top-level constant
                                                                                  - String + String const keyClassMain diff --git a/dart/flutter_parse_sdk/keyClassSession-constant.html b/dart/flutter_parse_sdk/keyClassSession-constant.html index 8a99693af..6c7b8cfeb 100644 --- a/dart/flutter_parse_sdk/keyClassSession-constant.html +++ b/dart/flutter_parse_sdk/keyClassSession-constant.html @@ -58,7 +58,7 @@

                                                                                  keyClassSession top-level const
                                                                                  - String + String const keyClassSession diff --git a/dart/flutter_parse_sdk/keyClassUser-constant.html b/dart/flutter_parse_sdk/keyClassUser-constant.html index a3a1de38f..082bee05f 100644 --- a/dart/flutter_parse_sdk/keyClassUser-constant.html +++ b/dart/flutter_parse_sdk/keyClassUser-constant.html @@ -58,7 +58,7 @@

                                                                                  keyClassUser top-level constant
                                                                                  - String + String const keyClassUser diff --git a/dart/flutter_parse_sdk/keyCode-constant.html b/dart/flutter_parse_sdk/keyCode-constant.html index 0142cf7ca..d8c8397ce 100644 --- a/dart/flutter_parse_sdk/keyCode-constant.html +++ b/dart/flutter_parse_sdk/keyCode-constant.html @@ -58,7 +58,7 @@

                                                                                  keyCode top-level constant
                                                                                  - String + String const keyCode diff --git a/dart/flutter_parse_sdk/keyDeviceToken-constant.html b/dart/flutter_parse_sdk/keyDeviceToken-constant.html index d9de5b57a..a90d7fd72 100644 --- a/dart/flutter_parse_sdk/keyDeviceToken-constant.html +++ b/dart/flutter_parse_sdk/keyDeviceToken-constant.html @@ -58,7 +58,7 @@

                                                                                  keyDeviceToken top-level consta
                                                                                  - String + String const keyDeviceToken diff --git a/dart/flutter_parse_sdk/keyDeviceType-constant.html b/dart/flutter_parse_sdk/keyDeviceType-constant.html index 4f7f33cf8..399bb7f6c 100644 --- a/dart/flutter_parse_sdk/keyDeviceType-constant.html +++ b/dart/flutter_parse_sdk/keyDeviceType-constant.html @@ -58,7 +58,7 @@

                                                                                  keyDeviceType top-level constan
                                                                                  - String + String const keyDeviceType diff --git a/dart/flutter_parse_sdk/keyEndPointAggregate-constant.html b/dart/flutter_parse_sdk/keyEndPointAggregate-constant.html index 3f3c77fda..ce9e2aaf5 100644 --- a/dart/flutter_parse_sdk/keyEndPointAggregate-constant.html +++ b/dart/flutter_parse_sdk/keyEndPointAggregate-constant.html @@ -58,7 +58,7 @@

                                                                                  keyEndPointAggregate top-level
                                                                                  - String + String const keyEndPointAggregate diff --git a/dart/flutter_parse_sdk/keyEndPointClasses-constant.html b/dart/flutter_parse_sdk/keyEndPointClasses-constant.html index f61e5e737..d5d105731 100644 --- a/dart/flutter_parse_sdk/keyEndPointClasses-constant.html +++ b/dart/flutter_parse_sdk/keyEndPointClasses-constant.html @@ -58,7 +58,7 @@

                                                                                  keyEndPointClasses top-level co
                                                                                  - String + String const keyEndPointClasses diff --git a/dart/flutter_parse_sdk/keyEndPointHealth-constant.html b/dart/flutter_parse_sdk/keyEndPointHealth-constant.html index d86f7a24f..ef9829c37 100644 --- a/dart/flutter_parse_sdk/keyEndPointHealth-constant.html +++ b/dart/flutter_parse_sdk/keyEndPointHealth-constant.html @@ -58,7 +58,7 @@

                                                                                  keyEndPointHealth top-level con
                                                                                  - String + String const keyEndPointHealth diff --git a/dart/flutter_parse_sdk/keyEndPointInstallations-constant.html b/dart/flutter_parse_sdk/keyEndPointInstallations-constant.html index d2735c205..ac150891b 100644 --- a/dart/flutter_parse_sdk/keyEndPointInstallations-constant.html +++ b/dart/flutter_parse_sdk/keyEndPointInstallations-constant.html @@ -58,7 +58,7 @@

                                                                                  keyEndPointInstallations top-le
                                                                                  - String + String const keyEndPointInstallations diff --git a/dart/flutter_parse_sdk/keyEndPointLogin-constant.html b/dart/flutter_parse_sdk/keyEndPointLogin-constant.html index 09c129d5f..dcadcb0c6 100644 --- a/dart/flutter_parse_sdk/keyEndPointLogin-constant.html +++ b/dart/flutter_parse_sdk/keyEndPointLogin-constant.html @@ -58,7 +58,7 @@

                                                                                  keyEndPointLogin top-level cons
                                                                                  - String + String const keyEndPointLogin diff --git a/dart/flutter_parse_sdk/keyEndPointLogout-constant.html b/dart/flutter_parse_sdk/keyEndPointLogout-constant.html index 316b6fabe..193a65826 100644 --- a/dart/flutter_parse_sdk/keyEndPointLogout-constant.html +++ b/dart/flutter_parse_sdk/keyEndPointLogout-constant.html @@ -58,7 +58,7 @@

                                                                                  keyEndPointLogout top-level con
                                                                                  - String + String const keyEndPointLogout diff --git a/dart/flutter_parse_sdk/keyEndPointRequestPasswordReset-constant.html b/dart/flutter_parse_sdk/keyEndPointRequestPasswordReset-constant.html index 50d4c99d2..a3148f968 100644 --- a/dart/flutter_parse_sdk/keyEndPointRequestPasswordReset-constant.html +++ b/dart/flutter_parse_sdk/keyEndPointRequestPasswordReset-constant.html @@ -58,7 +58,7 @@

                                                                                  keyEndPointRequestPasswordReset
                                                                                  - String + String const keyEndPointRequestPasswordReset diff --git a/dart/flutter_parse_sdk/keyEndPointSessions-constant.html b/dart/flutter_parse_sdk/keyEndPointSessions-constant.html index 27842cf22..db903b52d 100644 --- a/dart/flutter_parse_sdk/keyEndPointSessions-constant.html +++ b/dart/flutter_parse_sdk/keyEndPointSessions-constant.html @@ -58,7 +58,7 @@

                                                                                  keyEndPointSessions top-level c
                                                                                  - String + String const keyEndPointSessions diff --git a/dart/flutter_parse_sdk/keyEndPointUserName-constant.html b/dart/flutter_parse_sdk/keyEndPointUserName-constant.html index 06fd220a4..855e7798f 100644 --- a/dart/flutter_parse_sdk/keyEndPointUserName-constant.html +++ b/dart/flutter_parse_sdk/keyEndPointUserName-constant.html @@ -58,7 +58,7 @@

                                                                                  keyEndPointUserName top-level c
                                                                                  - String + String const keyEndPointUserName diff --git a/dart/flutter_parse_sdk/keyEndPointUsers-constant.html b/dart/flutter_parse_sdk/keyEndPointUsers-constant.html index 4342089ea..dfc2b8cfc 100644 --- a/dart/flutter_parse_sdk/keyEndPointUsers-constant.html +++ b/dart/flutter_parse_sdk/keyEndPointUsers-constant.html @@ -58,7 +58,7 @@

                                                                                  keyEndPointUsers top-level cons
                                                                                  - String + String const keyEndPointUsers diff --git a/dart/flutter_parse_sdk/keyEndPointVerificationEmail-constant.html b/dart/flutter_parse_sdk/keyEndPointVerificationEmail-constant.html index d7d9cd16a..a8c0a55f0 100644 --- a/dart/flutter_parse_sdk/keyEndPointVerificationEmail-constant.html +++ b/dart/flutter_parse_sdk/keyEndPointVerificationEmail-constant.html @@ -58,7 +58,7 @@

                                                                                  keyEndPointVerificationEmail to
                                                                                  - String + String const keyEndPointVerificationEmail diff --git a/dart/flutter_parse_sdk/keyError-constant.html b/dart/flutter_parse_sdk/keyError-constant.html index 4793c74a9..8b12413b8 100644 --- a/dart/flutter_parse_sdk/keyError-constant.html +++ b/dart/flutter_parse_sdk/keyError-constant.html @@ -58,7 +58,7 @@

                                                                                  keyError top-level constant
                                                                                  - String + String const keyError diff --git a/dart/flutter_parse_sdk/keyFile-constant.html b/dart/flutter_parse_sdk/keyFile-constant.html index 0eacfc359..c98dabfd8 100644 --- a/dart/flutter_parse_sdk/keyFile-constant.html +++ b/dart/flutter_parse_sdk/keyFile-constant.html @@ -58,7 +58,7 @@

                                                                                  keyFile top-level constant
                                                                                  - String + String const keyFile diff --git a/dart/flutter_parse_sdk/keyFileClassname-constant.html b/dart/flutter_parse_sdk/keyFileClassname-constant.html index f7dfcc26e..c870446e6 100644 --- a/dart/flutter_parse_sdk/keyFileClassname-constant.html +++ b/dart/flutter_parse_sdk/keyFileClassname-constant.html @@ -58,7 +58,7 @@

                                                                                  keyFileClassname top-level cons
                                                                                  - String + String const keyFileClassname diff --git a/dart/flutter_parse_sdk/keyGeoPoint-constant.html b/dart/flutter_parse_sdk/keyGeoPoint-constant.html index 548e06f86..6557e5285 100644 --- a/dart/flutter_parse_sdk/keyGeoPoint-constant.html +++ b/dart/flutter_parse_sdk/keyGeoPoint-constant.html @@ -58,7 +58,7 @@

                                                                                  keyGeoPoint top-level constant
                                                                                  - String + String const keyGeoPoint diff --git a/dart/flutter_parse_sdk/keyHeaderApplicationId-constant.html b/dart/flutter_parse_sdk/keyHeaderApplicationId-constant.html index ed2623c73..1bbbba291 100644 --- a/dart/flutter_parse_sdk/keyHeaderApplicationId-constant.html +++ b/dart/flutter_parse_sdk/keyHeaderApplicationId-constant.html @@ -58,7 +58,7 @@

                                                                                  keyHeaderApplicationId top-leve
                                                                                  - String + String const keyHeaderApplicationId diff --git a/dart/flutter_parse_sdk/keyHeaderClientKey-constant.html b/dart/flutter_parse_sdk/keyHeaderClientKey-constant.html index e177422a8..dd3e97b1f 100644 --- a/dart/flutter_parse_sdk/keyHeaderClientKey-constant.html +++ b/dart/flutter_parse_sdk/keyHeaderClientKey-constant.html @@ -58,7 +58,7 @@

                                                                                  keyHeaderClientKey top-level co
                                                                                  - String + String const keyHeaderClientKey diff --git a/dart/flutter_parse_sdk/keyHeaderContentType-constant.html b/dart/flutter_parse_sdk/keyHeaderContentType-constant.html index d6d516771..35b2bcd89 100644 --- a/dart/flutter_parse_sdk/keyHeaderContentType-constant.html +++ b/dart/flutter_parse_sdk/keyHeaderContentType-constant.html @@ -58,7 +58,7 @@

                                                                                  keyHeaderContentType top-level
                                                                                  - String + String const keyHeaderContentType diff --git a/dart/flutter_parse_sdk/keyHeaderContentTypeJson-constant.html b/dart/flutter_parse_sdk/keyHeaderContentTypeJson-constant.html index e653bf521..3760c06eb 100644 --- a/dart/flutter_parse_sdk/keyHeaderContentTypeJson-constant.html +++ b/dart/flutter_parse_sdk/keyHeaderContentTypeJson-constant.html @@ -58,7 +58,7 @@

                                                                                  keyHeaderContentTypeJson top-le
                                                                                  - String + String const keyHeaderContentTypeJson diff --git a/dart/flutter_parse_sdk/keyHeaderInstallationId-constant.html b/dart/flutter_parse_sdk/keyHeaderInstallationId-constant.html index 27a4734ad..1560cfa25 100644 --- a/dart/flutter_parse_sdk/keyHeaderInstallationId-constant.html +++ b/dart/flutter_parse_sdk/keyHeaderInstallationId-constant.html @@ -58,7 +58,7 @@

                                                                                  keyHeaderInstallationId top-lev
                                                                                  - String + String const keyHeaderInstallationId diff --git a/dart/flutter_parse_sdk/keyHeaderMasterKey-constant.html b/dart/flutter_parse_sdk/keyHeaderMasterKey-constant.html index ab1c11f6e..e7b57f745 100644 --- a/dart/flutter_parse_sdk/keyHeaderMasterKey-constant.html +++ b/dart/flutter_parse_sdk/keyHeaderMasterKey-constant.html @@ -58,7 +58,7 @@

                                                                                  keyHeaderMasterKey top-level co
                                                                                  - String + String const keyHeaderMasterKey diff --git a/dart/flutter_parse_sdk/keyHeaderRevocableSession-constant.html b/dart/flutter_parse_sdk/keyHeaderRevocableSession-constant.html index 4a409f7d9..9f77bf927 100644 --- a/dart/flutter_parse_sdk/keyHeaderRevocableSession-constant.html +++ b/dart/flutter_parse_sdk/keyHeaderRevocableSession-constant.html @@ -58,7 +58,7 @@

                                                                                  keyHeaderRevocableSession top-l
                                                                                  - String + String const keyHeaderRevocableSession diff --git a/dart/flutter_parse_sdk/keyHeaderSessionToken-constant.html b/dart/flutter_parse_sdk/keyHeaderSessionToken-constant.html index a944c3b4b..942e3d3bf 100644 --- a/dart/flutter_parse_sdk/keyHeaderSessionToken-constant.html +++ b/dart/flutter_parse_sdk/keyHeaderSessionToken-constant.html @@ -58,7 +58,7 @@

                                                                                  keyHeaderSessionToken top-level
                                                                                  - String + String const keyHeaderSessionToken diff --git a/dart/flutter_parse_sdk/keyHeaderUserAgent-constant.html b/dart/flutter_parse_sdk/keyHeaderUserAgent-constant.html index d8583fa9b..5b7fc34ef 100644 --- a/dart/flutter_parse_sdk/keyHeaderUserAgent-constant.html +++ b/dart/flutter_parse_sdk/keyHeaderUserAgent-constant.html @@ -58,7 +58,7 @@

                                                                                  keyHeaderUserAgent top-level co
                                                                                  - String + String const keyHeaderUserAgent diff --git a/dart/flutter_parse_sdk/keyInstallationId-constant.html b/dart/flutter_parse_sdk/keyInstallationId-constant.html index b83696c8d..288f9f114 100644 --- a/dart/flutter_parse_sdk/keyInstallationId-constant.html +++ b/dart/flutter_parse_sdk/keyInstallationId-constant.html @@ -58,7 +58,7 @@

                                                                                  keyInstallationId top-level con
                                                                                  - String + String const keyInstallationId diff --git a/dart/flutter_parse_sdk/keyLatitude-constant.html b/dart/flutter_parse_sdk/keyLatitude-constant.html index 9fa8717c0..3f898fd3e 100644 --- a/dart/flutter_parse_sdk/keyLatitude-constant.html +++ b/dart/flutter_parse_sdk/keyLatitude-constant.html @@ -58,7 +58,7 @@

                                                                                  keyLatitude top-level constant
                                                                                  - String + String const keyLatitude diff --git a/dart/flutter_parse_sdk/keyLibraryName-constant.html b/dart/flutter_parse_sdk/keyLibraryName-constant.html index 8852c28a9..1a5b20306 100644 --- a/dart/flutter_parse_sdk/keyLibraryName-constant.html +++ b/dart/flutter_parse_sdk/keyLibraryName-constant.html @@ -58,7 +58,7 @@

                                                                                  keyLibraryName top-level consta
                                                                                  - String + String const keyLibraryName diff --git a/dart/flutter_parse_sdk/keyLocaleIdentifier-constant.html b/dart/flutter_parse_sdk/keyLocaleIdentifier-constant.html index 872e202a6..ccea6ffe4 100644 --- a/dart/flutter_parse_sdk/keyLocaleIdentifier-constant.html +++ b/dart/flutter_parse_sdk/keyLocaleIdentifier-constant.html @@ -58,7 +58,7 @@

                                                                                  keyLocaleIdentifier top-level c
                                                                                  - String + String const keyLocaleIdentifier diff --git a/dart/flutter_parse_sdk/keyLongitude-constant.html b/dart/flutter_parse_sdk/keyLongitude-constant.html index b958c4e6d..8bbd00b67 100644 --- a/dart/flutter_parse_sdk/keyLongitude-constant.html +++ b/dart/flutter_parse_sdk/keyLongitude-constant.html @@ -58,7 +58,7 @@

                                                                                  keyLongitude top-level constant
                                                                                  - String + String const keyLongitude diff --git a/dart/flutter_parse_sdk/keyParamSessionToken-constant.html b/dart/flutter_parse_sdk/keyParamSessionToken-constant.html index 42a038bc5..cbf17d647 100644 --- a/dart/flutter_parse_sdk/keyParamSessionToken-constant.html +++ b/dart/flutter_parse_sdk/keyParamSessionToken-constant.html @@ -58,7 +58,7 @@

                                                                                  keyParamSessionToken top-level
                                                                                  - String + String const keyParamSessionToken diff --git a/dart/flutter_parse_sdk/keyParseStoreBase-constant.html b/dart/flutter_parse_sdk/keyParseStoreBase-constant.html index d93c6a185..33621ae0d 100644 --- a/dart/flutter_parse_sdk/keyParseStoreBase-constant.html +++ b/dart/flutter_parse_sdk/keyParseStoreBase-constant.html @@ -58,7 +58,7 @@

                                                                                  keyParseStoreBase top-level con
                                                                                  - String + String const keyParseStoreBase diff --git a/dart/flutter_parse_sdk/keyParseStoreInstallation-constant.html b/dart/flutter_parse_sdk/keyParseStoreInstallation-constant.html index 00a199cbe..1d5a5476f 100644 --- a/dart/flutter_parse_sdk/keyParseStoreInstallation-constant.html +++ b/dart/flutter_parse_sdk/keyParseStoreInstallation-constant.html @@ -58,7 +58,7 @@

                                                                                  keyParseStoreInstallation top-l
                                                                                  - String + String const keyParseStoreInstallation diff --git a/dart/flutter_parse_sdk/keyParseStoreUser-constant.html b/dart/flutter_parse_sdk/keyParseStoreUser-constant.html index 9a69b44f1..471532d54 100644 --- a/dart/flutter_parse_sdk/keyParseStoreUser-constant.html +++ b/dart/flutter_parse_sdk/keyParseStoreUser-constant.html @@ -58,7 +58,7 @@

                                                                                  keyParseStoreUser top-level con
                                                                                  - String + String const keyParseStoreUser diff --git a/dart/flutter_parse_sdk/keyParseVersion-constant.html b/dart/flutter_parse_sdk/keyParseVersion-constant.html index f6881ff08..4f107a2e8 100644 --- a/dart/flutter_parse_sdk/keyParseVersion-constant.html +++ b/dart/flutter_parse_sdk/keyParseVersion-constant.html @@ -58,7 +58,7 @@

                                                                                  keyParseVersion top-level const
                                                                                  - String + String const keyParseVersion diff --git a/dart/flutter_parse_sdk/keyRelation-constant.html b/dart/flutter_parse_sdk/keyRelation-constant.html index 5d2e09bad..936aaa573 100644 --- a/dart/flutter_parse_sdk/keyRelation-constant.html +++ b/dart/flutter_parse_sdk/keyRelation-constant.html @@ -58,7 +58,7 @@

                                                                                  keyRelation top-level constant
                                                                                  - String + String const keyRelation diff --git a/dart/flutter_parse_sdk/keySdkVersion-constant.html b/dart/flutter_parse_sdk/keySdkVersion-constant.html index 83301d80d..6c21b9754 100644 --- a/dart/flutter_parse_sdk/keySdkVersion-constant.html +++ b/dart/flutter_parse_sdk/keySdkVersion-constant.html @@ -58,7 +58,7 @@

                                                                                  keySdkVersion top-level constan
                                                                                  - String + String const keySdkVersion diff --git a/dart/flutter_parse_sdk/keyTimeZone-constant.html b/dart/flutter_parse_sdk/keyTimeZone-constant.html index 35b20fddf..bdfd3b936 100644 --- a/dart/flutter_parse_sdk/keyTimeZone-constant.html +++ b/dart/flutter_parse_sdk/keyTimeZone-constant.html @@ -58,7 +58,7 @@

                                                                                  keyTimeZone top-level constant
                                                                                  - String + String const keyTimeZone diff --git a/dart/flutter_parse_sdk/keyVarAcl-constant.html b/dart/flutter_parse_sdk/keyVarAcl-constant.html index aaddc748f..edb571281 100644 --- a/dart/flutter_parse_sdk/keyVarAcl-constant.html +++ b/dart/flutter_parse_sdk/keyVarAcl-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarAcl top-level constant
                                                                                  - String + String const keyVarAcl diff --git a/dart/flutter_parse_sdk/keyVarAuthData-constant.html b/dart/flutter_parse_sdk/keyVarAuthData-constant.html index c71c108f0..e437d6c9a 100644 --- a/dart/flutter_parse_sdk/keyVarAuthData-constant.html +++ b/dart/flutter_parse_sdk/keyVarAuthData-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarAuthData top-level consta
                                                                                  - String + String const keyVarAuthData diff --git a/dart/flutter_parse_sdk/keyVarClassName-constant.html b/dart/flutter_parse_sdk/keyVarClassName-constant.html index 34aafe0c5..38e5ea94d 100644 --- a/dart/flutter_parse_sdk/keyVarClassName-constant.html +++ b/dart/flutter_parse_sdk/keyVarClassName-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarClassName top-level const
                                                                                  - String + String const keyVarClassName diff --git a/dart/flutter_parse_sdk/keyVarCreatedAt-constant.html b/dart/flutter_parse_sdk/keyVarCreatedAt-constant.html index 365bd8bce..fdf41fade 100644 --- a/dart/flutter_parse_sdk/keyVarCreatedAt-constant.html +++ b/dart/flutter_parse_sdk/keyVarCreatedAt-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarCreatedAt top-level const
                                                                                  - String + String const keyVarCreatedAt diff --git a/dart/flutter_parse_sdk/keyVarCreatedWith-constant.html b/dart/flutter_parse_sdk/keyVarCreatedWith-constant.html index 31ba9fb4d..34d140a1f 100644 --- a/dart/flutter_parse_sdk/keyVarCreatedWith-constant.html +++ b/dart/flutter_parse_sdk/keyVarCreatedWith-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarCreatedWith top-level con
                                                                                  - String + String const keyVarCreatedWith diff --git a/dart/flutter_parse_sdk/keyVarEmail-constant.html b/dart/flutter_parse_sdk/keyVarEmail-constant.html index 3d3736fd9..5a75cd5c8 100644 --- a/dart/flutter_parse_sdk/keyVarEmail-constant.html +++ b/dart/flutter_parse_sdk/keyVarEmail-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarEmail top-level constant
                                                                                  - String + String const keyVarEmail diff --git a/dart/flutter_parse_sdk/keyVarExpiresAt-constant.html b/dart/flutter_parse_sdk/keyVarExpiresAt-constant.html index 8be2919bb..5f6a8d5ab 100644 --- a/dart/flutter_parse_sdk/keyVarExpiresAt-constant.html +++ b/dart/flutter_parse_sdk/keyVarExpiresAt-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarExpiresAt top-level const
                                                                                  - String + String const keyVarExpiresAt diff --git a/dart/flutter_parse_sdk/keyVarInstallationId-constant.html b/dart/flutter_parse_sdk/keyVarInstallationId-constant.html index 0f59c3820..64f192385 100644 --- a/dart/flutter_parse_sdk/keyVarInstallationId-constant.html +++ b/dart/flutter_parse_sdk/keyVarInstallationId-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarInstallationId top-level
                                                                                  - String + String const keyVarInstallationId diff --git a/dart/flutter_parse_sdk/keyVarName-constant.html b/dart/flutter_parse_sdk/keyVarName-constant.html index f97f5740f..0a31d3ad5 100644 --- a/dart/flutter_parse_sdk/keyVarName-constant.html +++ b/dart/flutter_parse_sdk/keyVarName-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarName top-level constant
                                                                                  - String + String const keyVarName diff --git a/dart/flutter_parse_sdk/keyVarObjectId-constant.html b/dart/flutter_parse_sdk/keyVarObjectId-constant.html index 6d8bc8c14..d42b872fb 100644 --- a/dart/flutter_parse_sdk/keyVarObjectId-constant.html +++ b/dart/flutter_parse_sdk/keyVarObjectId-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarObjectId top-level consta
                                                                                  - String + String const keyVarObjectId diff --git a/dart/flutter_parse_sdk/keyVarPassword-constant.html b/dart/flutter_parse_sdk/keyVarPassword-constant.html index 5885a7ca6..b37d52038 100644 --- a/dart/flutter_parse_sdk/keyVarPassword-constant.html +++ b/dart/flutter_parse_sdk/keyVarPassword-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarPassword top-level consta
                                                                                  - String + String const keyVarPassword diff --git a/dart/flutter_parse_sdk/keyVarRestricted-constant.html b/dart/flutter_parse_sdk/keyVarRestricted-constant.html index e42b50468..eb030fff1 100644 --- a/dart/flutter_parse_sdk/keyVarRestricted-constant.html +++ b/dart/flutter_parse_sdk/keyVarRestricted-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarRestricted top-level cons
                                                                                  - String + String const keyVarRestricted diff --git a/dart/flutter_parse_sdk/keyVarSessionToken-constant.html b/dart/flutter_parse_sdk/keyVarSessionToken-constant.html index f137700db..e018bebf2 100644 --- a/dart/flutter_parse_sdk/keyVarSessionToken-constant.html +++ b/dart/flutter_parse_sdk/keyVarSessionToken-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarSessionToken top-level co
                                                                                  - String + String const keyVarSessionToken diff --git a/dart/flutter_parse_sdk/keyVarURL-constant.html b/dart/flutter_parse_sdk/keyVarURL-constant.html index d34e9a04f..06008651a 100644 --- a/dart/flutter_parse_sdk/keyVarURL-constant.html +++ b/dart/flutter_parse_sdk/keyVarURL-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarURL top-level constant
                                                                                  - String + String const keyVarURL diff --git a/dart/flutter_parse_sdk/keyVarUpdatedAt-constant.html b/dart/flutter_parse_sdk/keyVarUpdatedAt-constant.html index c48fc394e..fb544e1f9 100644 --- a/dart/flutter_parse_sdk/keyVarUpdatedAt-constant.html +++ b/dart/flutter_parse_sdk/keyVarUpdatedAt-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarUpdatedAt top-level const
                                                                                  - String + String const keyVarUpdatedAt diff --git a/dart/flutter_parse_sdk/keyVarUser-constant.html b/dart/flutter_parse_sdk/keyVarUser-constant.html index 02b0df6c2..3e663dd98 100644 --- a/dart/flutter_parse_sdk/keyVarUser-constant.html +++ b/dart/flutter_parse_sdk/keyVarUser-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarUser top-level constant
                                                                                  - String + String const keyVarUser diff --git a/dart/flutter_parse_sdk/keyVarUsername-constant.html b/dart/flutter_parse_sdk/keyVarUsername-constant.html index 411e6ed95..867e01492 100644 --- a/dart/flutter_parse_sdk/keyVarUsername-constant.html +++ b/dart/flutter_parse_sdk/keyVarUsername-constant.html @@ -58,7 +58,7 @@

                                                                                  keyVarUsername top-level consta
                                                                                  - String + String const keyVarUsername diff --git a/dart/flutter_parse_sdk/logAPIResponse.html b/dart/flutter_parse_sdk/logAPIResponse.html index 9b3f2866d..cdc4a1c84 100644 --- a/dart/flutter_parse_sdk/logAPIResponse.html +++ b/dart/flutter_parse_sdk/logAPIResponse.html @@ -60,8 +60,8 @@

                                                                                  logAPIResponse function void -logAPIResponse(
                                                                                  1. String className,
                                                                                  2. -
                                                                                  3. String type,
                                                                                  4. +logAPIResponse(
                                                                                    1. String className,
                                                                                    2. +
                                                                                    3. String type,
                                                                                    4. ParseResponse parseResponse
                                                                                    ) diff --git a/dart/flutter_parse_sdk/logRequest.html b/dart/flutter_parse_sdk/logRequest.html index 6dc36518c..95c623f49 100644 --- a/dart/flutter_parse_sdk/logRequest.html +++ b/dart/flutter_parse_sdk/logRequest.html @@ -60,11 +60,11 @@

                                                                                    logRequest function void -logRequest(
                                                                                    1. String? appName,
                                                                                    2. -
                                                                                    3. String className,
                                                                                    4. -
                                                                                    5. String type,
                                                                                    6. -
                                                                                    7. String uri,
                                                                                    8. -
                                                                                    9. String body
                                                                                    10. +logRequest(
                                                                                      1. String? appName,
                                                                                      2. +
                                                                                      3. String className,
                                                                                      4. +
                                                                                      5. String type,
                                                                                      6. +
                                                                                      7. String uri,
                                                                                      8. +
                                                                                      9. String body
                                                                                      ) diff --git a/dart/flutter_parse_sdk/parseEncode.html b/dart/flutter_parse_sdk/parseEncode.html index 502072700..ad0f48091 100644 --- a/dart/flutter_parse_sdk/parseEncode.html +++ b/dart/flutter_parse_sdk/parseEncode.html @@ -61,7 +61,7 @@

                                                                                      parseEncode function dynamic parseEncode(
                                                                                      1. dynamic value,
                                                                                      2. -
                                                                                      3. {bool full = false}
                                                                                      4. +
                                                                                      5. {bool full = false}
                                                                                      ) diff --git a/dart/flutter_parse_sdk/parseIsWeb-constant.html b/dart/flutter_parse_sdk/parseIsWeb-constant.html index 3a445ef63..c1d12a06e 100644 --- a/dart/flutter_parse_sdk/parseIsWeb-constant.html +++ b/dart/flutter_parse_sdk/parseIsWeb-constant.html @@ -58,7 +58,7 @@

                                                                                      parseIsWeb top-level constant
                                                                                      - bool + bool const parseIsWeb diff --git a/dart/flutter_parse_sdk/removeDuplicateParseObjectByObjectId.html b/dart/flutter_parse_sdk/removeDuplicateParseObjectByObjectId.html index aaf773cb8..9afde9d8b 100644 --- a/dart/flutter_parse_sdk/removeDuplicateParseObjectByObjectId.html +++ b/dart/flutter_parse_sdk/removeDuplicateParseObjectByObjectId.html @@ -59,8 +59,8 @@

                                                                                      removeDuplicateParseObjectByObjectId func
                                                                                      -List -removeDuplicateParseObjectByObjectId(
                                                                                      1. Iterable iterable
                                                                                      2. +List +removeDuplicateParseObjectByObjectId(
                                                                                        1. Iterable iterable
                                                                                        ) diff --git a/dart/flutter_parse_sdk/removeTrailingSlash.html b/dart/flutter_parse_sdk/removeTrailingSlash.html index d3857a72e..b25222b53 100644 --- a/dart/flutter_parse_sdk/removeTrailingSlash.html +++ b/dart/flutter_parse_sdk/removeTrailingSlash.html @@ -59,8 +59,8 @@

                                                                                        removeTrailingSlash function
                                                                                        -String -removeTrailingSlash(
                                                                                        1. String serverUrl
                                                                                        2. +String +removeTrailingSlash(
                                                                                          1. String serverUrl
                                                                                          ) diff --git a/dart/flutter_parse_sdk/shouldReturnAsABaseResult.html b/dart/flutter_parse_sdk/shouldReturnAsABaseResult.html index eaf9b68b4..3dd56b3c4 100644 --- a/dart/flutter_parse_sdk/shouldReturnAsABaseResult.html +++ b/dart/flutter_parse_sdk/shouldReturnAsABaseResult.html @@ -59,7 +59,7 @@

                                                                                          shouldReturnAsABaseResult function
                                                                                          -bool +bool shouldReturnAsABaseResult(
                                                                                          1. ParseApiRQ type
                                                                                          ) From 7880b2d09e6455cde6ecb1c786a029df7a8edee7 Mon Sep 17 00:00:00 2001 From: mtrezza Date: Sun, 31 Mar 2024 10:19:33 +0000 Subject: [PATCH 5/5] deploy: c3885453520c6258ee391f05389dbc628a3615ab --- dart/__404error.html | 13 +- .../CoreStore-class-sidebar.html | 40 + dart/flutter_parse_sdk/CoreStore-class.html | 300 +- .../CoreStore/CoreStore.html | 60 +- dart/flutter_parse_sdk/CoreStore/clear.html | 62 +- .../CoreStore/containsKey.html | 64 +- dart/flutter_parse_sdk/CoreStore/get.html | 64 +- dart/flutter_parse_sdk/CoreStore/getBool.html | 64 +- .../CoreStore/getDouble.html | 64 +- dart/flutter_parse_sdk/CoreStore/getInt.html | 64 +- .../CoreStore/getString.html | 64 +- .../CoreStore/getStringList.html | 64 +- dart/flutter_parse_sdk/CoreStore/remove.html | 64 +- dart/flutter_parse_sdk/CoreStore/setBool.html | 66 +- .../CoreStore/setDouble.html | 66 +- dart/flutter_parse_sdk/CoreStore/setInt.html | 66 +- .../CoreStore/setString.html | 66 +- .../CoreStore/setStringList.html | 66 +- .../CoreStoreMemoryImp-class-sidebar.html | 40 + .../CoreStoreMemoryImp-class.html | 298 +- .../CoreStoreMemoryImp.html | 60 +- .../CoreStoreMemoryImp/clear.html | 64 +- .../CoreStoreMemoryImp/containsKey.html | 66 +- .../CoreStoreMemoryImp/get.html | 66 +- .../CoreStoreMemoryImp/getBool.html | 66 +- .../CoreStoreMemoryImp/getDouble.html | 66 +- .../CoreStoreMemoryImp/getInt.html | 66 +- .../CoreStoreMemoryImp/getString.html | 66 +- .../CoreStoreMemoryImp/getStringList.html | 66 +- .../CoreStoreMemoryImp/remove.html | 66 +- .../CoreStoreMemoryImp/setBool.html | 68 +- .../CoreStoreMemoryImp/setDouble.html | 68 +- .../CoreStoreMemoryImp/setInt.html | 68 +- .../CoreStoreMemoryImp/setString.html | 68 +- .../CoreStoreMemoryImp/setStringList.html | 68 +- .../CoreStoreSembastImp-class-sidebar.html | 40 + .../CoreStoreSembastImp-class.html | 302 +- .../CoreStoreSembastImp/clear.html | 64 +- .../CoreStoreSembastImp/containsKey.html | 66 +- .../CoreStoreSembastImp/get.html | 66 +- .../CoreStoreSembastImp/getBool.html | 66 +- .../CoreStoreSembastImp/getDouble.html | 66 +- .../CoreStoreSembastImp/getInstance.html | 68 +- .../CoreStoreSembastImp/getInt.html | 66 +- .../CoreStoreSembastImp/getString.html | 66 +- .../CoreStoreSembastImp/getStringList.html | 66 +- .../CoreStoreSembastImp/remove.html | 66 +- .../CoreStoreSembastImp/setBool.html | 68 +- .../CoreStoreSembastImp/setDouble.html | 68 +- .../CoreStoreSembastImp/setInt.html | 68 +- .../CoreStoreSembastImp/setString.html | 68 +- .../CoreStoreSembastImp/setStringList.html | 68 +- .../LiveQuery-class-sidebar.html | 27 + dart/flutter_parse_sdk/LiveQuery-class.html | 235 +- .../LiveQuery/LiveQuery.html | 51 +- dart/flutter_parse_sdk/LiveQuery/client.html | 49 +- .../LiveQueryClient-class-sidebar.html | 36 + .../LiveQueryClient-class.html | 270 +- .../LiveQueryClient/LiveQueryClient.html | 55 +- .../LiveQueryClient/chanelStream.html | 125 + .../LiveQueryClient/disconnect.html | 59 +- .../LiveQueryClient/getClientEventStream.html | 57 +- .../LiveQueryClient/instance.html | 55 +- .../LiveQueryClient/readyState.html | 57 +- .../LiveQueryClient/reconnect.html | 61 +- .../reconnectingController.html | 57 +- .../LiveQueryClient/subscribe.html | 57 +- .../LiveQueryClient/unSubscribe.html | 55 +- .../LiveQueryClientEvent-enum-sidebar.html | 33 + .../LiveQueryClientEvent.html | 252 +- .../LiveQueryClientEvent.html | 53 +- .../LiveQueryClientEvent/values-constant.html | 55 +- .../LiveQueryEvent-enum-sidebar.html | 36 + dart/flutter_parse_sdk/LiveQueryEvent.html | 255 +- .../LiveQueryEvent/LiveQueryEvent.html | 56 +- .../LiveQueryEvent/values-constant.html | 58 +- ...yReconnectingController-class-sidebar.html | 31 + ...LiveQueryReconnectingController-class.html | 248 +- .../LiveQueryReconnectingController.html | 57 +- .../debug.html | 53 +- .../debugTag-constant.html | 53 +- .../retryInterval.html | 53 +- .../Parse-class-sidebar.html | 31 + dart/flutter_parse_sdk/Parse-class.html | 260 +- dart/flutter_parse_sdk/Parse/Parse.html | 49 +- .../Parse/hasParseBeenInitialized.html | 51 +- dart/flutter_parse_sdk/Parse/healthCheck.html | 55 +- dart/flutter_parse_sdk/Parse/initialize.html | 91 +- .../Parse/objectsExistForEventually.html | 125 + .../ParseACL-class-sidebar.html | 36 + dart/flutter_parse_sdk/ParseACL-class.html | 262 +- dart/flutter_parse_sdk/ParseACL/ParseACL.html | 56 +- dart/flutter_parse_sdk/ParseACL/fromJson.html | 58 +- .../ParseACL/getPublicReadAccess.html | 58 +- .../ParseACL/getPublicWriteAccess.html | 58 +- .../ParseACL/getReadAccess.html | 60 +- .../ParseACL/getWriteAccess.html | 60 +- .../ParseACL/setPublicReadAccess.html | 58 +- .../ParseACL/setPublicWriteAccess.html | 58 +- .../ParseACL/setReadAccess.html | 60 +- .../ParseACL/setWriteAccess.html | 60 +- dart/flutter_parse_sdk/ParseACL/toJson.html | 58 +- dart/flutter_parse_sdk/ParseACL/toString.html | 62 +- .../ParseApiRQ-enum-sidebar.html | 62 + dart/flutter_parse_sdk/ParseApiRQ.html | 281 +- .../ParseApiRQ/ParseApiRQ.html | 82 +- .../ParseApiRQ/values-constant.html | 84 +- .../ParseBase-class-sidebar.html | 49 + dart/flutter_parse_sdk/ParseBase-class.html | 319 +- .../ParseBase/ParseBase.html | 69 +- .../ParseBase/clearUnsavedChanges.html | 69 +- .../ParseBase/containsKey.html | 73 +- .../ParseBase/containsValue.html | 73 +- dart/flutter_parse_sdk/ParseBase/copy.html | 71 +- .../ParseBase/createdAt.html | 73 +- .../flutter_parse_sdk/ParseBase/fromJson.html | 71 +- .../ParseBase/fromJsonForManualObject.html | 71 +- dart/flutter_parse_sdk/ParseBase/fromPin.html | 73 +- dart/flutter_parse_sdk/ParseBase/get.html | 71 +- dart/flutter_parse_sdk/ParseBase/getACL.html | 69 +- dart/flutter_parse_sdk/ParseBase/isDirty.html | 73 +- .../flutter_parse_sdk/ParseBase/objectId.html | 75 +- .../ParseBase/operator_get.html | 71 +- .../ParseBase/operator_put.html | 71 +- .../ParseBase/parseClassName.html | 73 +- dart/flutter_parse_sdk/ParseBase/pin.html | 71 +- .../ParseBase/saveInStorage.html | 73 +- dart/flutter_parse_sdk/ParseBase/set.html | 75 +- dart/flutter_parse_sdk/ParseBase/setACL.html | 69 +- dart/flutter_parse_sdk/ParseBase/toJson.html | 77 +- .../ParseBase/toPointer.html | 71 +- .../flutter_parse_sdk/ParseBase/toString.html | 75 +- dart/flutter_parse_sdk/ParseBase/unpin.html | 73 +- .../ParseBase/updatedAt.html | 73 +- .../ParseClient-class-sidebar.html | 33 + dart/flutter_parse_sdk/ParseClient-class.html | 265 +- .../ParseClient/ParseClient.html | 53 +- dart/flutter_parse_sdk/ParseClient/data.html | 55 +- .../flutter_parse_sdk/ParseClient/delete.html | 57 +- dart/flutter_parse_sdk/ParseClient/get.html | 57 +- .../ParseClient/getBytes.html | 57 +- dart/flutter_parse_sdk/ParseClient/post.html | 59 +- .../ParseClient/postBytes.html | 59 +- dart/flutter_parse_sdk/ParseClient/put.html | 59 +- .../flutter_parse_sdk/ParseClientCreator.html | 186 +- .../ParseCloneable-class-sidebar.html | 27 + .../ParseCloneable-class.html | 235 +- .../ParseCloneable/ParseCloneable.html | 47 +- .../ParseCloneable/clone.html | 49 +- .../ParseCloudFunction-class-sidebar.html | 76 + .../ParseCloudFunction-class.html | 446 +- .../ParseCloudFunction.html | 100 +- .../ParseCloudFunction/execute.html | 100 +- .../executeObjectFunction.html | 100 +- .../ParseCloudFunction/functionName.html | 96 +- .../ParseConfig-class-sidebar.html | 75 + dart/flutter_parse_sdk/ParseConfig-class.html | 441 +- .../ParseConfig/ParseConfig.html | 97 +- .../ParseConfig/addConfig.html | 97 +- .../ParseConfig/getConfigs.html | 95 +- ...rseConnectivityProvider-class-sidebar.html | 28 + .../ParseConnectivityProvider-class.html | 240 +- .../ParseConnectivityProvider.html | 48 +- .../checkConnectivity.html | 50 +- .../connectivityStream.html | 50 +- .../ParseConnectivityResult-enum-sidebar.html | 33 + .../ParseConnectivityResult.html | 252 +- .../ParseConnectivityResult.html | 53 +- .../values-constant.html | 55 +- .../ParseCoreData-class-sidebar.html | 57 + .../ParseCoreData-class.html | 345 +- .../ParseCoreData/ParseCoreData.html | 77 +- .../ParseCoreData/appName.html | 81 +- .../ParseCoreData/appPackageName.html | 81 +- .../ParseCoreData/appResumedStream.html | 81 +- .../ParseCoreData/appVersion.html | 81 +- .../ParseCoreData/applicationId.html | 81 +- .../ParseCoreData/autoSendSessionId.html | 81 +- .../ParseCoreData/clientCreator.html | 79 +- .../ParseCoreData/clientKey.html | 81 +- .../ParseCoreData/connectivityProvider.html | 79 +- .../ParseCoreData/createFile.html | 81 +- .../ParseCoreData/createObject.html | 79 +- .../ParseCoreData/createParseUser.html | 87 +- .../ParseCoreData/debug.html | 81 +- .../ParseCoreData/fileDirectory.html | 81 +- .../ParseCoreData/getStore.html | 77 +- .../flutter_parse_sdk/ParseCoreData/init.html | 113 +- .../ParseCoreData/instance.html | 77 +- .../ParseCoreData/liveListRetryIntervals.html | 81 +- .../ParseCoreData/liveQueryURL.html | 81 +- .../ParseCoreData/locale.html | 81 +- .../ParseCoreData/masterKey.html | 81 +- .../ParseCoreData/registerFileSubClass.html | 77 +- .../ParseCoreData/registerSubClass.html | 79 +- .../ParseCoreData/registerUserSubClass.html | 77 +- .../ParseCoreData/securityContext.html | 81 +- .../ParseCoreData/serverUrl.html | 81 +- .../ParseCoreData/sessionId.html | 81 +- .../ParseCoreData/setSessionId.html | 79 +- .../ParseCoreData/storage.html | 79 +- .../ParseCoreData/toString.html | 83 +- .../ParseDioClient-class-sidebar.html | 33 + .../ParseDioClient-class.html | 267 +- .../ParseDioClient/ParseDioClient.html | 55 +- .../ParseDioClient/delete.html | 61 +- .../flutter_parse_sdk/ParseDioClient/get.html | 61 +- .../ParseDioClient/getBytes.html | 61 +- .../ParseDioClient/post.html | 63 +- .../ParseDioClient/postBytes.html | 63 +- .../flutter_parse_sdk/ParseDioClient/put.html | 63 +- .../ParseError-class-sidebar.html | 92 + dart/flutter_parse_sdk/ParseError-class.html | 611 +- .../ParseError/ParseError.html | 120 +- .../accountAlreadyLinked-constant.html | 114 +- .../ParseError/aggregateError-constant.html | 114 +- .../ParseError/cacheMiss-constant.html | 114 +- dart/flutter_parse_sdk/ParseError/code.html | 114 +- .../commandUnavailable-constant.html | 114 +- .../ParseError/connectionFailed-constant.html | 114 +- .../ParseError/duplicateRequest-constant.html | 114 +- .../ParseError/duplicateValue-constant.html | 114 +- .../ParseError/emailMissing-constant.html | 114 +- .../ParseError/emailNotFound-constant.html | 114 +- .../ParseError/emailTaken-constant.html | 114 +- .../ParseError/exceededQuota-constant.html | 114 +- .../ParseError/exception.html | 114 +- .../ParseError/fileDeleteError-constant.html | 114 +- .../fileDeleteUnnamedError-constant.html | 114 +- .../ParseError/fileReadError-constant.html | 114 +- .../ParseError/fileSaveError-constant.html | 114 +- .../ParseError/fileTooLarge-constant.html | 114 +- .../ParseError/incorrectType-constant.html | 114 +- .../internalServerError-constant.html | 114 +- .../ParseError/invalidAcl-constant.html | 114 +- .../invalidChannelName-constant.html | 114 +- .../ParseError/invalidClassName-constant.html | 114 +- .../invalidContentLength-constant.html | 114 +- .../invalidEmailAddress-constant.html | 114 +- .../ParseError/invalidEventName-constant.html | 114 +- .../ParseError/invalidFileName-constant.html | 114 +- .../ParseError/invalidImageData-constant.html | 114 +- .../ParseError/invalidJson-constant.html | 114 +- .../ParseError/invalidKeyName-constant.html | 114 +- .../invalidLinkedSession-constant.html | 114 +- .../ParseError/invalidNestedKey-constant.html | 114 +- .../ParseError/invalidPointer-constant.html | 114 +- .../invalidPushTimeError-constant.html | 114 +- .../ParseError/invalidQuery-constant.html | 114 +- .../ParseError/invalidRoleName-constant.html | 114 +- .../invalidSchemaOperation-constant.html | 114 +- .../invalidSessionToken-constant.html | 114 +- .../ParseError/invalidValue-constant.html | 114 +- .../ParseError/linkedIdMissing-constant.html | 114 +- .../flutter_parse_sdk/ParseError/message.html | 114 +- .../ParseError/mfaError-constant.html | 114 +- .../ParseError/mfaTokenRequired-constant.html | 114 +- .../missingContentLength-constant.html | 114 +- .../missingContentType-constant.html | 114 +- .../ParseError/missingObjectId-constant.html | 114 +- .../mustCreateUserThroughSignup-constant.html | 114 +- .../ParseError/notInitialized-constant.html | 114 +- .../ParseError/objectNotFound-constant.html | 114 +- .../ParseError/objectTooLarge-constant.html | 114 +- .../operationForbidden-constant.html | 114 +- .../ParseError/otherCause-constant.html | 114 +- .../ParseError/passwordMissing-constant.html | 114 +- .../pushMisconfigured-constant.html | 114 +- .../requestLimitExceeded-constant.html | 114 +- .../ParseError/scriptFailed-constant.html | 114 +- .../ParseError/sessionMissing-constant.html | 114 +- .../ParseError/timeout-constant.html | 114 +- .../ParseError/toString.html | 118 +- dart/flutter_parse_sdk/ParseError/type.html | 116 +- .../ParseError/unsavedFileError-constant.html | 114 +- .../unsupportedService-constant.html | 114 +- .../ParseError/usernameMissing-constant.html | 114 +- .../ParseError/usernameTaken-constant.html | 114 +- .../ParseError/validationError-constant.html | 114 +- .../ParseError/xDomainRequest-constant.html | 114 +- .../ParseException-class-sidebar.html | 26 + .../ParseException-class.html | 234 +- .../ParseException/ParseException.html | 46 +- .../ParseFile-class-sidebar.html | 82 + dart/flutter_parse_sdk/ParseFile-class.html | 464 +- .../ParseFile/ParseFile.html | 110 +- dart/flutter_parse_sdk/ParseFile/cancel.html | 102 +- .../flutter_parse_sdk/ParseFile/download.html | 104 +- dart/flutter_parse_sdk/ParseFile/file.html | 104 +- .../ParseFile/loadStorage.html | 102 +- .../ParseFile/progressCallback.html | 102 +- dart/flutter_parse_sdk/ParseFile/upload.html | 106 +- .../ParseFileBase-class-sidebar.html | 80 + .../ParseFileBase-class.html | 459 +- .../ParseFileBase/ParseFileBase.html | 106 +- .../ParseFileBase/cancel.html | 98 +- .../ParseFileBase/download.html | 100 +- .../flutter_parse_sdk/ParseFileBase/name.html | 102 +- .../ParseFileBase/progressCallback.html | 98 +- .../flutter_parse_sdk/ParseFileBase/save.html | 107 +- .../ParseFileBase/saved.html | 100 +- .../ParseFileBase/toJson.html | 108 +- .../ParseFileBase/toString.html | 104 +- .../ParseFileBase/upload.html | 100 +- dart/flutter_parse_sdk/ParseFileBase/url.html | 102 +- .../ParseFileConstructor.html | 186 +- .../ParseGeoPoint-class-sidebar.html | 29 + .../ParseGeoPoint-class.html | 245 +- .../ParseGeoPoint/ParseGeoPoint.html | 53 +- .../ParseGeoPoint/latitude.html | 53 +- .../ParseGeoPoint/longitude.html | 53 +- .../ParseGeoPoint/toJson.html | 55 +- .../ParseGeoPoint/toString.html | 55 +- .../ParseHTTPClient-class-sidebar.html | 34 + .../ParseHTTPClient-class.html | 272 +- .../ParseHTTPClient/ParseHTTPClient.html | 58 +- .../ParseHTTPClient/additionalHeaders.html | 58 +- .../ParseHTTPClient/delete.html | 60 +- .../ParseHTTPClient/get.html | 60 +- .../ParseHTTPClient/getBytes.html | 60 +- .../ParseHTTPClient/post.html | 62 +- .../ParseHTTPClient/postBytes.html | 62 +- .../ParseHTTPClient/put.html | 62 +- .../ParseInstallation-class-sidebar.html | 90 + .../ParseInstallation-class.html | 498 +- .../ParseInstallation.forQuery.html | 108 +- .../ParseInstallation/ParseInstallation.html | 112 +- .../ParseInstallation/acl.html | 112 +- .../ParseInstallation/appIdentifier.html | 110 +- .../ParseInstallation/appName.html | 110 +- .../ParseInstallation/appVersion.html | 110 +- .../ParseInstallation/create.html | 118 +- .../currentInstallation.html | 110 +- .../ParseInstallation/deviceToken.html | 112 +- .../ParseInstallation/deviceType.html | 110 +- .../getSubscribedChannels.html | 110 +- .../ParseInstallation/installationId.html | 110 +- .../ParseInstallation/isCurrent.html | 110 +- .../ParseInstallation/parseVersion.html | 110 +- .../ParseInstallation/readOnlyKeys.html | 110 +- .../ParseInstallation/save.html | 117 +- .../ParseInstallation/subscribeToChannel.html | 112 +- .../unsubscribeFromChannel.html | 112 +- .../ParseLiveElement-class-sidebar.html | 32 + .../ParseLiveElement-class.html | 254 +- .../ParseLiveElement/ParseLiveElement.html | 56 +- .../ParseLiveElement/dispose.html | 54 +- .../ParseLiveElement/queryBuilder.html | 54 +- .../ParseLiveList-class-sidebar.html | 37 + .../ParseLiveList-class.html | 279 +- .../ParseLiveList/after.html | 59 +- .../ParseLiveList/create.html | 67 +- .../ParseLiveList/dispose.html | 57 +- .../ParseLiveList/getAt.html | 61 +- .../ParseLiveList/getIdentifier.html | 61 +- .../ParseLiveList/getLoadedAt.html | 59 +- .../ParseLiveList/getPreLoadedAt.html | 59 +- .../flutter_parse_sdk/ParseLiveList/idOf.html | 61 +- .../ParseLiveList/includes.html | 59 +- .../ParseLiveList/nextID.html | 59 +- .../flutter_parse_sdk/ParseLiveList/size.html | 59 +- .../ParseLiveList/stream.html | 59 +- .../ParseLiveListAddEvent-class-sidebar.html | 28 + .../ParseLiveListAddEvent-class.html | 242 +- .../ParseLiveListAddEvent.html | 50 +- ...arseLiveListDeleteEvent-class-sidebar.html | 28 + .../ParseLiveListDeleteEvent-class.html | 242 +- .../ParseLiveListDeleteEvent.html | 50 +- .../ParseLiveListElement-class-sidebar.html | 31 + .../ParseLiveListElement-class.html | 249 +- .../ParseLiveListElement.html | 55 +- .../ParseLiveListElement/dispose.html | 51 +- .../ParseLiveListElement/loaded.html | 53 +- .../ParseLiveListElement/object.html | 51 +- .../ParseLiveListElement/reconnected.html | 53 +- .../ParseLiveListElement/stream.html | 53 +- ...LiveListElementSnapshot-class-sidebar.html | 32 + .../ParseLiveListElementSnapshot-class.html | 248 +- .../ParseLiveListElementSnapshot.html | 52 +- .../ParseLiveListElementSnapshot/error.html | 52 +- .../ParseLiveListElementSnapshot/failed.html | 54 +- .../ParseLiveListElementSnapshot/hasData.html | 54 +- .../hasPreLoadedData.html | 54 +- .../loadedData.html | 52 +- .../preLoadedData.html | 52 +- .../ParseLiveListEvent-class-sidebar.html | 28 + .../ParseLiveListEvent-class.html | 242 +- .../ParseLiveListEvent.html | 50 +- .../ParseLiveListEvent/index.html | 50 +- .../ParseLiveListEvent/object.html | 48 +- ...arseLiveListUpdateEvent-class-sidebar.html | 28 + .../ParseLiveListUpdateEvent-class.html | 242 +- .../ParseLiveListUpdateEvent.html | 50 +- ...arseNetworkByteResponse-class-sidebar.html | 29 + .../ParseNetworkByteResponse-class.html | 243 +- .../ParseNetworkByteResponse.html | 55 +- .../ParseNetworkByteResponse/bytes.html | 51 +- .../ParseNetworkOptions-class-sidebar.html | 27 + .../ParseNetworkOptions-class.html | 235 +- .../ParseNetworkOptions.html | 49 +- .../ParseNetworkOptions/headers.html | 49 +- .../ParseNetworkResponse-class-sidebar.html | 28 + .../ParseNetworkResponse-class.html | 238 +- .../ParseNetworkResponse.html | 52 +- .../ParseNetworkResponse/data.html | 50 +- .../ParseNetworkResponse/statusCode.html | 50 +- ...ParseNetworkResponseType-enum-sidebar.html | 34 + .../ParseNetworkResponseType.html | 253 +- .../ParseNetworkResponseType.html | 54 +- .../values-constant.html | 56 +- .../ParseObject-class-sidebar.html | 78 + dart/flutter_parse_sdk/ParseObject-class.html | 480 +- .../ParseObject/ParseObject.clone.html | 94 +- .../ParseObject/ParseObject.html | 98 +- .../ParseObject/addRelation.html | 96 +- dart/flutter_parse_sdk/ParseObject/clone.html | 96 +- .../flutter_parse_sdk/ParseObject/create.html | 113 +- .../flutter_parse_sdk/ParseObject/delete.html | 98 +- .../ParseObject/deleteEventually.html | 145 + .../ParseObject/distinct.html | 96 +- dart/flutter_parse_sdk/ParseObject/fetch.html | 96 +- .../flutter_parse_sdk/ParseObject/getAll.html | 94 +- .../ParseObject/getObject.html | 98 +- .../ParseObject/getRelation.html | 94 +- dart/flutter_parse_sdk/ParseObject/query.html | 96 +- .../ParseObject/removeRelation.html | 96 +- dart/flutter_parse_sdk/ParseObject/save.html | 105 +- .../ParseObject/saveEventually.html | 145 + .../flutter_parse_sdk/ParseObject/setAdd.html | 94 +- .../ParseObject/setAddAll.html | 96 +- .../ParseObject/setAddAllUnique.html | 96 +- .../ParseObject/setAddUnique.html | 94 +- .../ParseObject/setDecrement.html | 96 +- .../ParseObject/setIncrement.html | 96 +- .../ParseObject/setRemove.html | 94 +- .../ParseObject/setRemoveAll.html | 98 +- .../ParseObject/submitDeleteEventually.html | 187 + .../ParseObject/submitEventually.html | 138 + .../ParseObject/submitSaveEventually.html | 169 + dart/flutter_parse_sdk/ParseObject/unset.html | 98 +- .../flutter_parse_sdk/ParseObject/update.html | 106 +- .../ParseObjectConstructor.html | 184 +- ...ParseOperationException-class-sidebar.html | 27 + .../ParseOperationException-class.html | 233 +- .../ParseOperationException.html | 49 +- .../ParseOperationException/message.html | 49 +- .../ParseOperationException/toString.html | 53 +- .../ParseRelation-class-sidebar.html | 38 + .../ParseRelation-class.html | 270 +- .../ParseRelation/ParseRelation.fromJson.html | 62 +- .../ParseRelation/ParseRelation.html | 60 +- dart/flutter_parse_sdk/ParseRelation/add.html | 58 +- .../ParseRelation/addAll.html | 60 +- .../ParseRelation/getKey.html | 60 +- .../ParseRelation/getParent.html | 58 +- .../ParseRelation/getQuery.html | 58 +- .../ParseRelation/getTargetClass.html | 62 +- .../ParseRelation/remove.html | 58 +- .../ParseRelation/removeAll.html | 60 +- .../ParseRelation/setTargetClass.html | 60 +- .../ParseRelation/targetClass.html | 60 +- .../ParseRelation/toJson.html | 62 +- .../ParseRelationException-class-sidebar.html | 27 + .../ParseRelationException-class.html | 233 +- .../ParseRelationException.html | 49 +- .../ParseRelationException/message.html | 49 +- .../ParseRelationException/toString.html | 53 +- .../ParseResponse-class-sidebar.html | 32 + .../ParseResponse-class.html | 256 +- .../ParseResponse/ParseResponse.html | 52 +- .../ParseResponse/count.html | 56 +- .../ParseResponse/error.html | 54 +- .../ParseResponse/result.html | 54 +- .../ParseResponse/results.html | 56 +- .../ParseResponse/statusCode.html | 56 +- .../ParseResponse/success.html | 56 +- .../ParseSession-class-sidebar.html | 80 + .../flutter_parse_sdk/ParseSession-class.html | 464 +- .../ParseSession/ParseSession.html | 100 +- .../flutter_parse_sdk/ParseSession/clone.html | 102 +- .../ParseSession/createdWith.html | 100 +- .../ParseSession/expiresAt.html | 100 +- .../getCurrentSessionFromServer.html | 100 +- .../ParseSession/installationId.html | 102 +- .../ParseSession/restricted.html | 100 +- .../ParseSession/sessionToken.html | 100 +- dart/flutter_parse_sdk/ParseSession/user.html | 98 +- .../ParseSubClassHandler-class-sidebar.html | 34 + .../ParseSubClassHandler-class.html | 250 +- .../ParseSubClassHandler.html | 56 +- .../ParseSubClassHandler/createFile.html | 58 +- .../ParseSubClassHandler/createObject.html | 56 +- .../ParseSubClassHandler/createParseUser.html | 64 +- .../defaultParseFileConstructor.html | 58 +- .../registerFileSubClass.html | 54 +- .../registerSubClass.html | 56 +- .../registerUserSubClass.html | 54 +- .../ParseUser-class-sidebar.html | 103 + dart/flutter_parse_sdk/ParseUser-class.html | 557 +- .../ParseUser/ParseUser.clone.html | 123 +- .../ParseUser/ParseUser.forQuery.html | 121 +- .../ParseUser/ParseUser.html | 135 +- dart/flutter_parse_sdk/ParseUser/acl.html | 125 +- dart/flutter_parse_sdk/ParseUser/all.html | 125 +- .../flutter_parse_sdk/ParseUser/authData.html | 125 +- dart/flutter_parse_sdk/ParseUser/clone.html | 125 +- .../ParseUser/createUser.html | 127 +- .../ParseUser/currentUser.html | 125 +- .../ParseUser/deleteLocalUserData.html | 123 +- dart/flutter_parse_sdk/ParseUser/destroy.html | 123 +- .../ParseUser/emailAddress.html | 125 +- .../ParseUser/emailVerified.html | 125 +- .../ParseUser/forgetLocalSession.html | 121 +- .../ParseUser/getCurrentUserFromServer.html | 129 +- .../ParseUser/getUpdatedUser.html | 125 +- .../ParseUser/keyEmailAddress-constant.html | 123 +- .../ParseUser/keyEmailVerified-constant.html | 123 +- .../ParseUser/keyUsername-constant.html | 123 +- dart/flutter_parse_sdk/ParseUser/login.html | 125 +- .../ParseUser/loginAnonymous.html | 125 +- .../ParseUser/loginWith.html | 135 +- dart/flutter_parse_sdk/ParseUser/logout.html | 125 +- .../flutter_parse_sdk/ParseUser/password.html | 125 +- .../ParseUser/path-constant.html | 123 +- .../ParseUser/requestPasswordReset.html | 123 +- dart/flutter_parse_sdk/ParseUser/save.html | 130 +- .../ParseUser/sessionToken.html | 125 +- dart/flutter_parse_sdk/ParseUser/signUp.html | 127 +- dart/flutter_parse_sdk/ParseUser/update.html | 130 +- .../flutter_parse_sdk/ParseUser/username.html | 125 +- .../ParseUser/verificationEmailRequest.html | 123 +- .../ParseUserConstructor.html | 186 +- .../ParseWebFile-class-sidebar.html | 81 + .../flutter_parse_sdk/ParseWebFile-class.html | 461 +- .../ParseWebFile/ParseWebFile.html | 109 +- .../ParseWebFile/cancel.html | 101 +- .../ParseWebFile/download.html | 103 +- dart/flutter_parse_sdk/ParseWebFile/file.html | 103 +- .../ParseWebFile/progressCallback.html | 101 +- .../ParseWebFile/upload.html | 105 +- .../ParseXFile-class-sidebar.html | 82 + dart/flutter_parse_sdk/ParseXFile-class.html | 958 +++ .../ParseXFile/ParseXFile.html | 146 + dart/flutter_parse_sdk/ParseXFile/cancel.html | 141 + .../ParseXFile/download.html | 167 + dart/flutter_parse_sdk/ParseXFile/file.html | 125 + .../ParseXFile/loadStorage.html | 145 + .../ParseXFile/progressCallback.html | 140 + dart/flutter_parse_sdk/ParseXFile/upload.html | 201 + .../PathKey-class-sidebar.html | 28 + dart/flutter_parse_sdk/PathKey-class.html | 236 +- dart/flutter_parse_sdk/PathKey/PathKey.html | 50 +- dart/flutter_parse_sdk/PathKey/key.html | 50 +- .../PathKey/subscription.html | 50 +- dart/flutter_parse_sdk/PathKey/toString.html | 54 +- dart/flutter_parse_sdk/ProgressCallback.html | 186 +- .../QueryBuilder-class-sidebar.html | 83 + .../flutter_parse_sdk/QueryBuilder-class.html | 457 +- .../QueryBuilder/QueryBuilder.and.html | 105 +- .../QueryBuilder/QueryBuilder.copy.html | 103 +- .../QueryBuilder/QueryBuilder.html | 103 +- .../QueryBuilder/QueryBuilder.name.html | 105 +- .../QueryBuilder/QueryBuilder.nor.html | 105 +- .../QueryBuilder/QueryBuilder.or.html | 105 +- .../QueryBuilder/buildQueries.html | 107 +- .../QueryBuilder/buildQuery.html | 105 +- .../flutter_parse_sdk/QueryBuilder/count.html | 105 +- .../QueryBuilder/distinct.html | 107 +- .../QueryBuilder/dontSelectKeys.html | 107 +- .../QueryBuilder/excludeKeys.html | 107 +- .../QueryBuilder/extraOptions.html | 105 +- dart/flutter_parse_sdk/QueryBuilder/find.html | 105 +- .../flutter_parse_sdk/QueryBuilder/first.html | 105 +- .../QueryBuilder/getExtraOptions.html | 107 +- .../QueryBuilder/getLimiters.html | 107 +- .../QueryBuilder/getLimitersRelational.html | 107 +- .../QueryBuilder/includeObject.html | 105 +- .../QueryBuilder/keysToReturn.html | 107 +- .../QueryBuilder/limiters.html | 105 +- .../QueryBuilder/object.html | 105 +- .../QueryBuilder/orderByAscending.html | 107 +- .../QueryBuilder/orderByDescending.html | 107 +- .../QueryBuilder/queries.html | 107 +- .../flutter_parse_sdk/QueryBuilder/query.html | 105 +- .../flutter_parse_sdk/QueryBuilder/regEx.html | 109 +- .../QueryBuilder/selectKeys.html | 107 +- .../QueryBuilder/setAmountToSkip.html | 107 +- .../QueryBuilder/setLimit.html | 105 +- .../setRedirectClassNameForKey.html | 105 +- .../QueryBuilder/whereArrayContainsAll.html | 109 +- .../QueryBuilder/whereContainedIn.html | 109 +- .../QueryBuilder/whereContains.html | 127 +- .../QueryBuilder/whereContainsWholeWord.html | 133 +- .../whereDoesNotMatchKeyInQuery.html | 107 +- .../QueryBuilder/whereDoesNotMatchQuery.html | 105 +- .../QueryBuilder/whereEndsWith.html | 127 +- .../QueryBuilder/whereEqualTo.html | 112 +- .../QueryBuilder/whereEquals.html | 105 +- .../QueryBuilder/whereGreaterThan.html | 107 +- .../whereGreaterThanOrEqualsTo.html | 107 +- .../QueryBuilder/whereLessThan.html | 107 +- .../QueryBuilder/whereLessThanOrEqualTo.html | 107 +- .../QueryBuilder/whereMatchesKeyInQuery.html | 107 +- .../QueryBuilder/whereMatchesQuery.html | 105 +- .../QueryBuilder/whereNear.html | 105 +- .../QueryBuilder/whereNotContainedIn.html | 109 +- .../QueryBuilder/whereNotEqualTo.html | 112 +- .../QueryBuilder/wherePolygonContains.html | 105 +- .../QueryBuilder/whereRelatedTo.html | 111 +- .../QueryBuilder/whereStartsWith.html | 125 +- .../QueryBuilder/whereValueExists.html | 109 +- .../QueryBuilder/whereWithinGeoBox.html | 105 +- .../QueryBuilder/whereWithinKilometers.html | 107 +- .../QueryBuilder/whereWithinMiles.html | 107 +- .../QueryBuilder/whereWithinPolygon.html | 107 +- .../QueryBuilder/whereWithinRadians.html | 107 +- .../Subscription-class-sidebar.html | 31 + .../flutter_parse_sdk/Subscription-class.html | 251 +- .../Subscription/Subscription.html | 53 +- .../Subscription/copyObject.html | 51 +- .../Subscription/eventCallbacks.html | 55 +- dart/flutter_parse_sdk/Subscription/on.html | 53 +- .../flutter_parse_sdk/Subscription/query.html | 53 +- .../Subscription/requestId.html | 55 +- dart/flutter_parse_sdk/apple.html | 190 +- dart/flutter_parse_sdk/batchRequest.html | 192 +- .../flutter_parse_sdk/buildErrorResponse.html | 184 +- .../buildParseResponseWithException.html | 188 +- .../buildSuccessResponseWithNoResults.html | 188 +- .../checkForSubmitEventually.html | 135 + .../checkObjectsExistForEventually.html | 149 + dart/flutter_parse_sdk/concatenateArray.html | 188 +- .../convertValueToCorrectType.html | 184 +- dart/flutter_parse_sdk/dateTimeEncoder.html | 184 +- dart/flutter_parse_sdk/encodeObject.html | 190 +- dart/flutter_parse_sdk/facebook.html | 192 +- .../flutter_parse_sdk-library-sidebar.html | 171 + .../flutter_parse_sdk-library.html | 683 +- dart/flutter_parse_sdk/getCustomUri.html | 192 +- dart/flutter_parse_sdk/getSanitisedUri.html | 192 +- .../getXXTeaSembastCodec.html | 188 +- dart/flutter_parse_sdk/google.html | 192 +- dart/flutter_parse_sdk/handleException.html | 194 +- dart/flutter_parse_sdk/handleResponse.html | 192 +- dart/flutter_parse_sdk/isDebugEnabled.html | 188 +- .../isSuccessButNoResults.html | 186 +- .../isUnsuccessfulResponse.html | 186 +- .../keyAppIdentifier-constant.html | 186 +- .../keyAppName-constant.html | 186 +- .../keyAppVersion-constant.html | 186 +- .../keyClassInstallation-constant.html | 186 +- .../keyClassMain-constant.html | 186 +- .../keyClassSession-constant.html | 186 +- .../keyClassUser-constant.html | 186 +- dart/flutter_parse_sdk/keyCode-constant.html | 186 +- .../keyDeviceToken-constant.html | 186 +- .../keyDeviceType-constant.html | 186 +- .../keyEndPointAggregate-constant.html | 186 +- .../keyEndPointClasses-constant.html | 186 +- .../keyEndPointHealth-constant.html | 186 +- .../keyEndPointInstallations-constant.html | 186 +- .../keyEndPointLogin-constant.html | 186 +- .../keyEndPointLogout-constant.html | 186 +- ...EndPointRequestPasswordReset-constant.html | 186 +- .../keyEndPointSessions-constant.html | 186 +- .../keyEndPointUserName-constant.html | 186 +- .../keyEndPointUsers-constant.html | 186 +- ...keyEndPointVerificationEmail-constant.html | 186 +- dart/flutter_parse_sdk/keyError-constant.html | 186 +- dart/flutter_parse_sdk/keyFile-constant.html | 186 +- .../keyFileClassname-constant.html | 186 +- .../keyGeoPoint-constant.html | 186 +- .../keyHeaderApplicationId-constant.html | 186 +- .../keyHeaderClientKey-constant.html | 186 +- .../keyHeaderCloudContext-constant.html | 125 + .../keyHeaderContentType-constant.html | 186 +- .../keyHeaderContentTypeJson-constant.html | 186 +- .../keyHeaderInstallationId-constant.html | 186 +- .../keyHeaderMasterKey-constant.html | 186 +- .../keyHeaderRevocableSession-constant.html | 186 +- .../keyHeaderSessionToken-constant.html | 186 +- .../keyHeaderUserAgent-constant.html | 186 +- .../keyInstallationId-constant.html | 186 +- .../keyLatitude-constant.html | 186 +- .../keyLibraryName-constant.html | 186 +- .../keyLocaleIdentifier-constant.html | 186 +- .../keyLongitude-constant.html | 186 +- .../keyNetworkError-constant.html | 125 + .../keyParamSessionToken-constant.html | 186 +- .../keyParseStoreBase-constant.html | 186 +- .../keyParseStoreDeletes-constant.html | 125 + .../keyParseStoreInstallation-constant.html | 186 +- .../keyParseStoreObjects-constant.html | 125 + .../keyParseStoreUser-constant.html | 186 +- .../keyParseVersion-constant.html | 186 +- .../keyRelation-constant.html | 186 +- .../keySdkVersion-constant.html | 188 +- .../keyTimeZone-constant.html | 186 +- .../flutter_parse_sdk/keyVarAcl-constant.html | 186 +- .../keyVarAuthData-constant.html | 186 +- .../keyVarClassName-constant.html | 186 +- .../keyVarCreatedAt-constant.html | 186 +- .../keyVarCreatedWith-constant.html | 186 +- .../keyVarEmail-constant.html | 186 +- .../keyVarExpiresAt-constant.html | 186 +- .../keyVarInstallationId-constant.html | 186 +- .../keyVarName-constant.html | 186 +- .../keyVarObjectId-constant.html | 186 +- .../keyVarPassword-constant.html | 186 +- .../keyVarRestricted-constant.html | 186 +- .../keyVarSessionToken-constant.html | 186 +- .../flutter_parse_sdk/keyVarURL-constant.html | 186 +- .../keyVarUpdatedAt-constant.html | 186 +- .../keyVarUser-constant.html | 186 +- .../keyVarUsername-constant.html | 186 +- dart/flutter_parse_sdk/logAPIResponse.html | 188 +- dart/flutter_parse_sdk/logRequest.html | 194 +- dart/flutter_parse_sdk/parseDecode.html | 184 +- dart/flutter_parse_sdk/parseEncode.html | 186 +- .../parseIsWeb-constant.html | 186 +- .../removeDuplicateParseObjectByObjectId.html | 188 +- .../removeTrailingSlash.html | 188 +- .../shouldReturnAsABaseResult.html | 186 +- dart/index.html | 786 +- dart/index.json | 2 +- dart/search.html | 13 +- dart/static-assets/docs.dart.js | 7151 +++++++++-------- dart/static-assets/docs.dart.js.map | 12 +- dart/static-assets/highlight.pack.js | 1347 ++-- dart/static-assets/styles.css | 3 +- 730 files changed, 23142 insertions(+), 69405 deletions(-) create mode 100644 dart/flutter_parse_sdk/CoreStore-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/CoreStoreMemoryImp-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/CoreStoreSembastImp-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/LiveQuery-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/LiveQueryClient-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/LiveQueryClient/chanelStream.html create mode 100644 dart/flutter_parse_sdk/LiveQueryClientEvent-enum-sidebar.html create mode 100644 dart/flutter_parse_sdk/LiveQueryEvent-enum-sidebar.html create mode 100644 dart/flutter_parse_sdk/LiveQueryReconnectingController-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/Parse-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/Parse/objectsExistForEventually.html create mode 100644 dart/flutter_parse_sdk/ParseACL-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseApiRQ-enum-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseBase-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseClient-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseCloneable-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseCloudFunction-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseConfig-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseConnectivityProvider-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseConnectivityResult-enum-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseCoreData-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseDioClient-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseError-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseException-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseFile-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseFileBase-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseGeoPoint-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseHTTPClient-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseInstallation-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseLiveElement-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseLiveList-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseLiveListAddEvent-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseLiveListDeleteEvent-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseLiveListElement-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseLiveListElementSnapshot-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseLiveListEvent-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseLiveListUpdateEvent-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseNetworkByteResponse-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseNetworkOptions-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseNetworkResponse-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseNetworkResponseType-enum-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseObject-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseObject/deleteEventually.html create mode 100644 dart/flutter_parse_sdk/ParseObject/saveEventually.html create mode 100644 dart/flutter_parse_sdk/ParseObject/submitDeleteEventually.html create mode 100644 dart/flutter_parse_sdk/ParseObject/submitEventually.html create mode 100644 dart/flutter_parse_sdk/ParseObject/submitSaveEventually.html create mode 100644 dart/flutter_parse_sdk/ParseOperationException-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseRelation-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseRelationException-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseResponse-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseSession-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseSubClassHandler-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseUser-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseWebFile-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseXFile-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/ParseXFile-class.html create mode 100644 dart/flutter_parse_sdk/ParseXFile/ParseXFile.html create mode 100644 dart/flutter_parse_sdk/ParseXFile/cancel.html create mode 100644 dart/flutter_parse_sdk/ParseXFile/download.html create mode 100644 dart/flutter_parse_sdk/ParseXFile/file.html create mode 100644 dart/flutter_parse_sdk/ParseXFile/loadStorage.html create mode 100644 dart/flutter_parse_sdk/ParseXFile/progressCallback.html create mode 100644 dart/flutter_parse_sdk/ParseXFile/upload.html create mode 100644 dart/flutter_parse_sdk/PathKey-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/QueryBuilder-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/Subscription-class-sidebar.html create mode 100644 dart/flutter_parse_sdk/checkForSubmitEventually.html create mode 100644 dart/flutter_parse_sdk/checkObjectsExistForEventually.html create mode 100644 dart/flutter_parse_sdk/flutter_parse_sdk-library-sidebar.html create mode 100644 dart/flutter_parse_sdk/keyHeaderCloudContext-constant.html create mode 100644 dart/flutter_parse_sdk/keyNetworkError-constant.html create mode 100644 dart/flutter_parse_sdk/keyParseStoreDeletes-constant.html create mode 100644 dart/flutter_parse_sdk/keyParseStoreObjects-constant.html diff --git a/dart/__404error.html b/dart/__404error.html index a069e5dc2..b55662109 100644 --- a/dart/__404error.html +++ b/dart/__404error.html @@ -4,7 +4,7 @@ - + parse_server_sdk - Dart API docs @@ -29,7 +29,7 @@
                                                                                          menu
                                                                                          parse_server_sdk
                                                                                          @@ -92,7 +93,7 @@
                                                                                          parse_server_sdk parse_server_sdk - 5.1.1 + 6.4.0 diff --git a/dart/flutter_parse_sdk/CoreStore-class-sidebar.html b/dart/flutter_parse_sdk/CoreStore-class-sidebar.html new file mode 100644 index 000000000..4bf892266 --- /dev/null +++ b/dart/flutter_parse_sdk/CoreStore-class-sidebar.html @@ -0,0 +1,40 @@ +
                                                                                            + +
                                                                                          1. Constructors
                                                                                          2. +
                                                                                          3. CoreStore
                                                                                          4. + + + +
                                                                                          5. + Properties +
                                                                                          6. +
                                                                                          7. hashCode
                                                                                          8. +
                                                                                          9. runtimeType
                                                                                          10. + +
                                                                                          11. Methods
                                                                                          12. +
                                                                                          13. clear
                                                                                          14. +
                                                                                          15. containsKey
                                                                                          16. +
                                                                                          17. get
                                                                                          18. +
                                                                                          19. getBool
                                                                                          20. +
                                                                                          21. getDouble
                                                                                          22. +
                                                                                          23. getInt
                                                                                          24. +
                                                                                          25. getString
                                                                                          26. +
                                                                                          27. getStringList
                                                                                          28. +
                                                                                          29. noSuchMethod
                                                                                          30. +
                                                                                          31. remove
                                                                                          32. +
                                                                                          33. setBool
                                                                                          34. +
                                                                                          35. setDouble
                                                                                          36. +
                                                                                          37. setInt
                                                                                          38. +
                                                                                          39. setString
                                                                                          40. +
                                                                                          41. setStringList
                                                                                          42. +
                                                                                          43. toString
                                                                                          44. + +
                                                                                          45. Operators
                                                                                          46. +
                                                                                          47. operator ==
                                                                                          48. + + + + + + +
                                                                                          diff --git a/dart/flutter_parse_sdk/CoreStore-class.html b/dart/flutter_parse_sdk/CoreStore-class.html index 51c6b6b16..26e2675de 100644 --- a/dart/flutter_parse_sdk/CoreStore-class.html +++ b/dart/flutter_parse_sdk/CoreStore-class.html @@ -29,7 +29,7 @@ menu
                                                                                          CoreStore
                                                                                          @@ -50,10 +50,14 @@
                                                                                          -
                                                                                          +

                                                                                          CoreStore class - abstract + abstract

                                                                                          @@ -99,24 +103,24 @@

                                                                                          Properties

                                                                                          - hashCode - int + hashCode + int
                                                                                          The hash code for this object. -
                                                                                          read-onlyinherited
                                                                                          +
                                                                                          no setterinherited
                                                                                          - runtimeType - Type + runtimeType + Type
                                                                                          A representation of the runtime type of the object. -
                                                                                          read-onlyinherited
                                                                                          +
                                                                                          no setterinherited
                                                                                          @@ -131,7 +135,7 @@

                                                                                          Methods

                                                                                          clear() - Future + Future @@ -143,8 +147,8 @@

                                                                                          Methods

                                                                                          - containsKey(String key) - Future<bool> + containsKey(String key) + Future<bool> @@ -156,8 +160,8 @@

                                                                                          Methods

                                                                                          - get(String key) - Future + get(String key) + Future @@ -169,8 +173,8 @@

                                                                                          Methods

                                                                                          - getBool(String key) - Future<bool?> + getBool(String key) + Future<bool?> @@ -182,8 +186,8 @@

                                                                                          Methods

                                                                                          - getDouble(String key) - Future<double?> + getDouble(String key) + Future<double?> @@ -195,8 +199,8 @@

                                                                                          Methods

                                                                                          - getInt(String key) - Future<int?> + getInt(String key) + Future<int?> @@ -208,8 +212,8 @@

                                                                                          Methods

                                                                                          - getString(String key) - Future<String?> + getString(String key) + Future<String?> @@ -221,8 +225,8 @@

                                                                                          Methods

                                                                                          - getStringList(String key) - Future<List<String>?> + getStringList(String key) + Future<List<String>?> @@ -234,7 +238,7 @@

                                                                                          Methods

                                                                                          - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -247,8 +251,8 @@

                                                                                          Methods

                                                                                          - remove(String key) - Future + remove(String key) + Future @@ -260,8 +264,8 @@

                                                                                          Methods

                                                                                          - setBool(String key, bool value) - Future + setBool(String key, bool value) + Future @@ -273,8 +277,8 @@

                                                                                          Methods

                                                                                          - setDouble(String key, double value) - Future + setDouble(String key, double value) + Future @@ -286,8 +290,8 @@

                                                                                          Methods

                                                                                          - setInt(String key, int value) - Future + setInt(String key, int value) + Future @@ -299,8 +303,8 @@

                                                                                          Methods

                                                                                          - setString(String key, String value) - Future + setString(String key, String value) + Future @@ -312,8 +316,8 @@

                                                                                          Methods

                                                                                          - setStringList(String key, List<String> values) - Future + setStringList(String key, List<String> values) + Future @@ -325,8 +329,8 @@

                                                                                          Methods

                                                                                          - toString() - String + toString() + String @@ -346,8 +350,8 @@

                                                                                          Methods

                                                                                          Operators

                                                                                          - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -368,225 +372,25 @@

                                                                                          Operators

                                                                                          @@ -594,7 +398,7 @@
                                                                                          flutter_parse_sdk library

                                                                                -
                                                                                read / write
                                                                                +
                                                                                getter/setter pair
                                                                                - hashCode - int + hashCode + int
                                                                                The hash code for this object. -
                                                                                read-onlyinherited
                                                                                +
                                                                                no setterinherited
                                                                                - runtimeType - Type + runtimeType + Type
                                                                                A representation of the runtime type of the object. -
                                                                                read-onlyinherited
                                                                                +
                                                                                no setterinherited
                                                                                @@ -121,7 +125,7 @@

                                                                                Properties

                                                                                Methods

                                                                                - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -134,8 +138,8 @@

                                                                                Methods

                                                                                - toString() - String + toString() + String @@ -155,8 +159,8 @@

                                                                                Methods

                                                                                Operators

                                                                                - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -177,212 +181,25 @@

                                                                                Operators

                                                                                @@ -390,7 +207,7 @@
                                                                                flutter_parse_sdk library
                                                                              @@ -75,46 +79,23 @@

                                                                              Implementation

                                                      -
                                                      read / write
                                                      +
                                                      getter/setter pair
                                                      - runtimeType - Type + runtimeType + Type
                                                      A representation of the runtime type of the object. -
                                                      read-onlyinherited
                                                      +
                                                      no setterinherited
                                                      @@ -133,8 +148,8 @@

                                                      Properties

                                                      Methods

                                                      - disconnect({bool userInitialized = false}) - Future + disconnect({bool userInitialized = false}) + Future @@ -146,7 +161,7 @@

                                                      Methods

                                                      - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -160,7 +175,7 @@

                                                      Methods

                                                      readyState() - int + int @@ -172,8 +187,8 @@

                                                      Methods

                                                      - reconnect({bool userInitialized = false}) - Future<void> + reconnect({bool userInitialized = false}) + Future<void> @@ -186,7 +201,7 @@

                                                      Methods

                                                      subscribe<T extends ParseObject>(QueryBuilder<T> query, {T? copyObject}) - Future<Subscription<T>> + Future<Subscription<T>> @@ -198,8 +213,8 @@

                                                      Methods

                                                      - toString() - String + toString() + String @@ -232,8 +247,8 @@

                                                      Methods

                                                      Operators

                                                      - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -258,7 +273,7 @@

                                                      Static Properties

                                                      -
                                                      read-only
                                                      +
                                                      no setter
                                                      @@ -271,220 +286,25 @@

                                                      Static Properties

                                                      @@ -492,7 +312,7 @@
                                                      flutter_parse_sdk library

                                          @@ -75,54 +79,23 @@

                                          Implementation

                                          +
                                          +

                                          Static Properties

                                          + +
                                          +
                                          + objectsExistForEventually + bool + +
                                          +
                                          + +
                                          getter/setter pair
                                          + +
                                          + +
                                          +
                                          @@ -205,214 +226,25 @@

                                          Operators

                                          @@ -420,7 +252,7 @@
                                          flutter_parse_sdk library

                                        -
                                        read-only
                                        +
                                        no setter
                                        - hashCode - int + hashCode + int
                                        The hash code for this object. -
                                        read-onlyinherited
                                        +
                                        no setterinherited
                                        - runtimeType - Type + runtimeType + Type
                                        A representation of the runtime type of the object. -
                                        read-onlyinherited
                                        +
                                        no setterinherited
                                        @@ -141,8 +145,8 @@

                                        Properties

                                        Methods

                                        - delete(String path, {ParseNetworkOptions? options}) - Future<ParseNetworkResponse> + delete(String path, {ParseNetworkOptions? options}) + Future<ParseNetworkResponse> @@ -154,8 +158,8 @@

                                        Methods

                                        - get(String path, {ParseNetworkOptions? options, ProgressCallback? onReceiveProgress}) - Future<ParseNetworkResponse> + get(String path, {ParseNetworkOptions? options, ProgressCallback? onReceiveProgress}) + Future<ParseNetworkResponse> @@ -167,8 +171,8 @@

                                        Methods

                                        - getBytes(String path, {ParseNetworkOptions? options, ProgressCallback? onReceiveProgress, dynamic cancelToken}) - Future<ParseNetworkByteResponse> + getBytes(String path, {ParseNetworkOptions? options, ProgressCallback? onReceiveProgress, dynamic cancelToken}) + Future<ParseNetworkByteResponse> @@ -180,7 +184,7 @@

                                        Methods

                                        - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -193,8 +197,8 @@

                                        Methods

                                        - post(String path, {String? data, ParseNetworkOptions? options}) - Future<ParseNetworkResponse> + post(String path, {String? data, ParseNetworkOptions? options}) + Future<ParseNetworkResponse> @@ -206,8 +210,8 @@

                                        Methods

                                        - postBytes(String path, {Stream<List<int>>? data, ParseNetworkOptions? options, ProgressCallback? onSendProgress, dynamic cancelToken}) - Future<ParseNetworkResponse> + postBytes(String path, {Stream<List<int>>? data, ParseNetworkOptions? options, ProgressCallback? onSendProgress, dynamic cancelToken}) + Future<ParseNetworkResponse> @@ -219,8 +223,8 @@

                                        Methods

                                        - put(String path, {String? data, ParseNetworkOptions? options}) - Future<ParseNetworkResponse> + put(String path, {String? data, ParseNetworkOptions? options}) + Future<ParseNetworkResponse> @@ -232,8 +236,8 @@

                                        Methods

                                        - toString() - String + toString() + String @@ -253,8 +257,8 @@

                                        Methods

                                        Operators

                                        - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -275,218 +279,25 @@

                                        Operators

                                        @@ -494,7 +305,7 @@
                                        flutter_parse_sdk library
                                        -
                                        read / write
                                        +
                                        getter/setter pair
                                        clientKey - String? + String?
                                        -
                                        read / write
                                        +
                                        getter/setter pair
                                        @@ -177,128 +181,128 @@

                                        Properties

                                        -
                                        read / write
                                        +
                                        getter/setter pair
                                        debug - bool + bool
                                        -
                                        read / write
                                        +
                                        getter/setter pair
                                        fileDirectory - String? + String?
                                        -
                                        read / write
                                        +
                                        getter/setter pair
                                        - hashCode - int + hashCode + int
                                        The hash code for this object. -
                                        read-onlyinherited
                                        +
                                        no setterinherited
                                        liveListRetryIntervals - List<int> + List<int>
                                        -
                                        read / write
                                        +
                                        getter/setter pair
                                        liveQueryURL - String? + String?
                                        -
                                        read / write
                                        +
                                        getter/setter pair
                                        locale - String? + String?
                                        -
                                        read / write
                                        +
                                        getter/setter pair
                                        masterKey - String? + String?
                                        -
                                        read / write
                                        +
                                        getter/setter pair
                                        - runtimeType - Type + runtimeType + Type
                                        A representation of the runtime type of the object. -
                                        read-onlyinherited
                                        +
                                        no setterinherited
                                        securityContext - SecurityContext? + SecurityContext?
                                        -
                                        read / write
                                        +
                                        getter/setter pair
                                        serverUrl - String + String
                                        -
                                        read / write
                                        +
                                        getter/setter pair
                                        sessionId - String? + String?
                                        -
                                        read / write
                                        +
                                        getter/setter pair
                                        @@ -309,7 +313,7 @@

                                        Properties

                                        -
                                        read / write
                                        +
                                        getter/setter pair
                                        @@ -323,7 +327,7 @@

                                        Properties

                                        Methods

                                        - createFile({String? url, String? name}) + createFile({String? url, String? name}) ParseFileBase @@ -336,7 +340,7 @@

                                        Methods

                                        - createObject(String classname) + createObject(String classname) ParseObject @@ -349,7 +353,7 @@

                                        Methods

                                        - createParseUser(String? username, String? password, String? emailAddress, {String? sessionToken, bool? debug, ParseClient? client}) + createParseUser(String? username, String? password, String? emailAddress, {String? sessionToken, bool? debug, ParseClient? client}) ParseUser @@ -375,7 +379,7 @@

                                        Methods

                                        - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -401,7 +405,7 @@

                                        Methods

                                        - registerSubClass(String className, ParseObjectConstructor objectConstructor) + registerSubClass(String className, ParseObjectConstructor objectConstructor) → void @@ -427,7 +431,7 @@

                                        Methods

                                        - setSessionId(String sessionId) + setSessionId(String sessionId) → void @@ -441,7 +445,7 @@

                                        Methods

                                        toString() - String + String @@ -461,8 +465,8 @@

                                        Methods

                                        Operators

                                        - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -487,7 +491,7 @@

                                        Static Properties

                                        -
                                        read-only
                                        +
                                        no setter
                                        @@ -498,8 +502,8 @@

                                        Static Properties

                                        Static Methods

                                        - init(String appId, String serverUrl, {required bool debug, String? appName, String? appVersion, String? appPackageName, String? locale, String? liveQueryUrl, String? masterKey, String? clientKey, String? sessionId, required bool autoSendSessionId, SecurityContext? securityContext, CoreStore? store, Map<String, ParseObjectConstructor>? registeredSubClassMap, ParseUserConstructor? parseUserConstructor, ParseFileConstructor? parseFileConstructor, List<int>? liveListRetryIntervals, ParseConnectivityProvider? connectivityProvider, String? fileDirectory, Stream<void>? appResumedStream, ParseClientCreator? clientCreator}) - Future<void> + init(String appId, String serverUrl, {required bool debug, String? appName, String? appVersion, String? appPackageName, String? locale, String? liveQueryUrl, String? masterKey, String? clientKey, String? sessionId, required bool autoSendSessionId, SecurityContext? securityContext, CoreStore? store, Map<String, ParseObjectConstructor>? registeredSubClassMap, ParseUserConstructor? parseUserConstructor, ParseFileConstructor? parseFileConstructor, List<int>? liveListRetryIntervals, ParseConnectivityProvider? connectivityProvider, String? fileDirectory, Stream<void>? appResumedStream, ParseClientCreator? clientCreator}) + Future<void> @@ -518,242 +522,25 @@

                                        Static Methods

                                        @@ -761,7 +548,7 @@
                                        flutter_parse_sdk library
                                      @@ -75,76 +79,23 @@

                                      Implementation

                                      @@ -75,76 +79,23 @@

                                      Implementation

                                    @@ -75,76 +79,23 @@

                                    Implementation

              -
              read-onlyinherited
              +
              no setterinherited
              - hashCode - int + hashCode + int
              The hash code for this object. -
              read-onlyinherited
              +
              no setterinherited
              - runtimeType - Type + runtimeType + Type
              A representation of the runtime type of the object. -
              read-onlyinherited
              +
              no setterinherited
              @@ -143,8 +147,8 @@

              Properties

              Methods

              - delete(String path, {ParseNetworkOptions? options}) - Future<ParseNetworkResponse> + delete(String path, {ParseNetworkOptions? options}) + Future<ParseNetworkResponse> @@ -156,8 +160,8 @@

              Methods

              - get(String path, {ParseNetworkOptions? options, ProgressCallback? onReceiveProgress}) - Future<ParseNetworkResponse> + get(String path, {ParseNetworkOptions? options, ProgressCallback? onReceiveProgress}) + Future<ParseNetworkResponse> @@ -169,8 +173,8 @@

              Methods

              - getBytes(String path, {ParseNetworkOptions? options, ProgressCallback? onReceiveProgress, dynamic cancelToken}) - Future<ParseNetworkByteResponse> + getBytes(String path, {ParseNetworkOptions? options, ProgressCallback? onReceiveProgress, dynamic cancelToken}) + Future<ParseNetworkByteResponse> @@ -182,7 +186,7 @@

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -195,8 +199,8 @@

              Methods

              - post(String path, {String? data, ParseNetworkOptions? options}) - Future<ParseNetworkResponse> + post(String path, {String? data, ParseNetworkOptions? options}) + Future<ParseNetworkResponse> @@ -208,8 +212,8 @@

              Methods

              - postBytes(String path, {Stream<List<int>>? data, ParseNetworkOptions? options, ProgressCallback? onSendProgress, dynamic cancelToken}) - Future<ParseNetworkResponse> + postBytes(String path, {Stream<List<int>>? data, ParseNetworkOptions? options, ProgressCallback? onSendProgress, dynamic cancelToken}) + Future<ParseNetworkResponse> @@ -221,8 +225,8 @@

              Methods

              - put(String path, {String? data, ParseNetworkOptions? options}) - Future<ParseNetworkResponse> + put(String path, {String? data, ParseNetworkOptions? options}) + Future<ParseNetworkResponse> @@ -234,8 +238,8 @@

              Methods

              - toString() - String + toString() + String @@ -255,8 +259,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -277,218 +281,25 @@

              Operators

              @@ -496,7 +307,7 @@
              flutter_parse_sdk library
              -
              read-onlyinherited
              +
              no setterinherited
              - hashCode - int + hashCode + int
              The hash code for this object. -
              read-onlyinherited
              +
              no setterinherited
              - runtimeType - Type + runtimeType + Type
              A representation of the runtime type of the object. -
              read-onlyinherited
              +
              no setterinherited
              @@ -154,8 +158,8 @@

              Properties

              Methods

              - delete(String path, {ParseNetworkOptions? options}) - Future<ParseNetworkResponse> + delete(String path, {ParseNetworkOptions? options}) + Future<ParseNetworkResponse> @@ -167,8 +171,8 @@

              Methods

              - get(String path, {ParseNetworkOptions? options, ProgressCallback? onReceiveProgress}) - Future<ParseNetworkResponse> + get(String path, {ParseNetworkOptions? options, ProgressCallback? onReceiveProgress}) + Future<ParseNetworkResponse> @@ -180,8 +184,8 @@

              Methods

              - getBytes(String path, {ParseNetworkOptions? options, ProgressCallback? onReceiveProgress, dynamic cancelToken}) - Future<ParseNetworkByteResponse> + getBytes(String path, {ParseNetworkOptions? options, ProgressCallback? onReceiveProgress, dynamic cancelToken}) + Future<ParseNetworkByteResponse> @@ -193,7 +197,7 @@

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -206,8 +210,8 @@

              Methods

              - post(String path, {String? data, ParseNetworkOptions? options}) - Future<ParseNetworkResponse> + post(String path, {String? data, ParseNetworkOptions? options}) + Future<ParseNetworkResponse> @@ -219,8 +223,8 @@

              Methods

              - postBytes(String path, {Stream<List<int>>? data, ParseNetworkOptions? options, ProgressCallback? onSendProgress, dynamic cancelToken}) - Future<ParseNetworkResponse> + postBytes(String path, {Stream<List<int>>? data, ParseNetworkOptions? options, ProgressCallback? onSendProgress, dynamic cancelToken}) + Future<ParseNetworkResponse> @@ -232,8 +236,8 @@

              Methods

              - put(String path, {String? data, ParseNetworkOptions? options}) - Future<ParseNetworkResponse> + put(String path, {String? data, ParseNetworkOptions? options}) + Future<ParseNetworkResponse> @@ -245,8 +249,8 @@

              Methods

              - toString() - String + toString() + String @@ -266,8 +270,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -288,219 +292,25 @@

              Operators

              @@ -508,7 +318,7 @@
              flutter_parse_sdk library
              -
              read / writeinherited
              +
              getter/setter pairinherited
              @@ -140,29 +144,29 @@

              Properties

              -
              read / write
              +
              getter/setter pair
              - runtimeType - Type + runtimeType + Type
              A representation of the runtime type of the object. -
              read-onlyinherited
              +
              no setterinherited
              stream - Stream<T> + Stream<T>
              -
              read-onlyinherited
              +
              no setterinherited
              @@ -189,7 +193,7 @@

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -203,7 +207,7 @@

              Methods

              reconnected() - Future<void> + Future<void> @@ -215,8 +219,8 @@

              Methods

              - toString() - String + toString() + String @@ -236,8 +240,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -258,217 +262,25 @@

              Operators

              @@ -476,7 +288,7 @@
              flutter_parse_sdk library
              parse_server_sdk - 5.1.1 + 6.4.0 diff --git a/dart/flutter_parse_sdk/ParseLiveElement/ParseLiveElement.html b/dart/flutter_parse_sdk/ParseLiveElement/ParseLiveElement.html index 28f60606c..605fedd02 100644 --- a/dart/flutter_parse_sdk/ParseLiveElement/ParseLiveElement.html +++ b/dart/flutter_parse_sdk/ParseLiveElement/ParseLiveElement.html @@ -29,7 +29,7 @@ menu @@ -51,7 +51,11 @@
              -
              +

              ParseLiveElement<T extends ParseObject> constructor

              @@ -59,8 +63,8 @@

              ParseLiveElement< ParseLiveElement<T extends ParseObject>(
              1. T object,
              2. -
              3. {bool loaded = false,
              4. -
              5. List<String>? includeObject}
              6. +
              7. {bool loaded = false,
              8. +
              9. List<String>? includeObject}
              )

              @@ -89,51 +93,23 @@

              Implementation

              @@ -75,51 +79,23 @@

              Implementation

              -
              read-onlyinherited
              +
              no setterinherited
              - runtimeType - Type + runtimeType + Type
              A representation of the runtime type of the object. -
              read-onlyinherited
              +
              no setterinherited
              @@ -154,7 +158,7 @@

              Properties

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -167,8 +171,8 @@

              Methods

              - toString() - String + toString() + String @@ -188,8 +192,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -210,213 +214,25 @@

              Operators

              @@ -424,7 +240,7 @@
              flutter_parse_sdk library
              -
              read-onlyinherited
              +
              no setterinherited
              - runtimeType - Type + runtimeType + Type
              A representation of the runtime type of the object. -
              read-onlyinherited
              +
              no setterinherited
              @@ -154,7 +158,7 @@

              Properties

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -167,8 +171,8 @@

              Methods

              - toString() - String + toString() + String @@ -188,8 +192,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -210,213 +214,25 @@

              Operators

              @@ -424,7 +240,7 @@
              flutter_parse_sdk library
              -
              read / write
              +
              getter/setter pair
              - runtimeType - Type + runtimeType + Type
              A representation of the runtime type of the object. -
              read-onlyinherited
              +
              no setterinherited
              stream - Stream<T> + Stream<T>
              -
              read-only
              +
              no setter
              @@ -174,7 +178,7 @@

              Methods

              - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -188,7 +192,7 @@

              Methods

              reconnected() - Future<void> + Future<void> @@ -200,8 +204,8 @@

              Methods

              - toString() - String + toString() + String @@ -221,8 +225,8 @@

              Methods

              Operators

              - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -243,216 +247,25 @@

              Operators

              @@ -460,7 +273,7 @@
              flutter_parse_sdk library
              parse_server_sdk - 5.1.1 + 6.4.0 diff --git a/dart/flutter_parse_sdk/ParseLiveListElement/ParseLiveListElement.html b/dart/flutter_parse_sdk/ParseLiveListElement/ParseLiveListElement.html index 32637b928..68a26c5f2 100644 --- a/dart/flutter_parse_sdk/ParseLiveListElement/ParseLiveListElement.html +++ b/dart/flutter_parse_sdk/ParseLiveListElement/ParseLiveListElement.html @@ -29,7 +29,7 @@ menu @@ -51,7 +51,11 @@
              -
              +

              ParseLiveListElement<T extends ParseObject> constructor

              @@ -59,8 +63,8 @@

              ParseLiveListElement< ParseLiveListElement<T extends ParseObject>(
              1. T _object,
              2. -
              3. {bool loaded = false,
              4. -
              5. Map<String, dynamic>? updatedSubItems}
              6. +
              7. {bool loaded = false,
              8. +
              9. Map<String, dynamic>? updatedSubItems}
              )

              @@ -86,50 +90,23 @@

              Implementation

    -
    read-only
    +
    no setter
    - runtimeType - Type + runtimeType + Type
    A representation of the runtime type of the object. -
    read-onlyinherited
    +
    no setterinherited
    @@ -153,7 +157,7 @@

    Properties

    Methods

    - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -166,8 +170,8 @@

    Methods

    - toString() - String + toString() + String @@ -187,8 +191,8 @@

    Methods

    Operators

    - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -209,213 +213,25 @@

    Operators

    @@ -423,7 +239,7 @@
    flutter_parse_sdk library
    -
    read-onlyinherited
    +
    no setterinherited
    - runtimeType - Type + runtimeType + Type
    A representation of the runtime type of the object. -
    read-onlyinherited
    +
    no setterinherited
    @@ -154,7 +158,7 @@

    Properties

    Methods

    - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -167,8 +171,8 @@

    Methods

    - toString() - String + toString() + String @@ -188,8 +192,8 @@

    Methods

    Operators

    - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -210,213 +214,25 @@

    Operators

    @@ -424,7 +240,7 @@
    flutter_parse_sdk library
    -
    read / write
    +
    getter/setter pair
    - hashCode - int + hashCode + int
    The hash code for this object. -
    read-onlyinherited
    +
    no setterinherited
    @@ -118,51 +122,51 @@

    Properties

    If result is a singular result, i.e. getByObjectID -
    read / write
    +
    getter/setter pair
    results - List? + List?
    All results stored as a list - Even if only one response is returned -
    read / write
    +
    getter/setter pair
    - runtimeType - Type + runtimeType + Type
    A representation of the runtime type of the object. -
    read-onlyinherited
    +
    no setterinherited
    statusCode - int + int
    -
    read / write
    +
    getter/setter pair
    success - bool + bool
    -
    read / write
    +
    getter/setter pair
    @@ -176,7 +180,7 @@

    Properties

    Methods

    - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -189,8 +193,8 @@

    Methods

    - toString() - String + toString() + String @@ -210,8 +214,8 @@

    Methods

    Operators

    - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -232,217 +236,25 @@

    Operators

    @@ -450,7 +262,7 @@
    flutter_parse_sdk library
    -
    read-only
    +
    no setter
    @@ -249,7 +253,7 @@

    Properties

    Methods

    - addRelation(String key, List<ParseObject> objets) + addRelation(String key, List<ParseObject> objets) → void @@ -275,7 +279,7 @@

    Methods

    - clone(Map<String, dynamic> map) + clone(Map<String, dynamic> map) ParseSession @@ -288,8 +292,8 @@

    Methods

    - containsKey(String key) - bool + containsKey(String key) + bool @@ -301,8 +305,8 @@

    Methods

    - containsValue(Object value) - bool + containsValue(Object value) + bool @@ -327,8 +331,8 @@

    Methods

    - create({bool allowCustomObjectId = false}) - Future<ParseResponse> + create({bool allowCustomObjectId = false, dynamic context}) + Future<ParseResponse> @@ -340,8 +344,8 @@

    Methods

    - delete<T extends ParseObject>({String? id, String? path}) - Future<ParseResponse> + delete<T extends ParseObject>({String? id, String? path}) + Future<ParseResponse> @@ -350,11 +354,24 @@

    Methods

    Deletes the current object locally and online
    inherited
    + + +
    + deleteEventually() + Future<ParseResponse> + + + +
    +
    + +
    inherited
    +
    - distinct<T extends ParseObject>(String query) - Future<ParseResponse> + distinct<T extends ParseObject>(String query) + Future<ParseResponse> @@ -366,8 +383,8 @@

    Methods

    - fetch({List<String>? include}) - Future<ParseObject> + fetch({List<String>? include}) + Future<ParseObject> @@ -379,7 +396,7 @@

    Methods

    - fromJson(Map<String, dynamic> objectData) + fromJson(Map<String, dynamic> objectData) → dynamic @@ -392,7 +409,7 @@

    Methods

    - fromJsonForManualObject(Map<String, dynamic> objectData) + fromJsonForManualObject(Map<String, dynamic> objectData) → dynamic @@ -405,8 +422,8 @@

    Methods

    - fromPin(String objectId) - Future + fromPin(String objectId) + Future @@ -418,7 +435,7 @@

    Methods

    - get<T>(String key, {T? defaultValue}) + get<T>(String key, {T? defaultValue}) → T? @@ -445,7 +462,7 @@

    Methods

    getAll() - Future<ParseResponse> + Future<ParseResponse> @@ -458,7 +475,7 @@

    Methods

    getCurrentSessionFromServer() - Future<ParseResponse> + Future<ParseResponse> @@ -470,8 +487,8 @@

    Methods

    - getObject(String objectId, {List<String>? include}) - Future<ParseResponse> + getObject(String objectId, {List<String>? include}) + Future<ParseResponse> @@ -483,7 +500,7 @@

    Methods

    - getRelation<T extends ParseObject>(String key) + getRelation<T extends ParseObject>(String key) ParseRelation<T> @@ -496,8 +513,8 @@

    Methods

    - isDirty({String? key}) - bool + isDirty({String? key}) + bool @@ -509,7 +526,7 @@

    Methods

    - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -523,7 +540,7 @@

    Methods

    pin() - Future<bool> + Future<bool> @@ -535,8 +552,8 @@

    Methods

    - query<T extends ParseObject>(String query, {ProgressCallback? progressCallback}) - Future<ParseResponse> + query<T extends ParseObject>(String query, {ProgressCallback? progressCallback}) + Future<ParseResponse> @@ -548,7 +565,7 @@

    Methods

    - removeRelation(String key, List<ParseObject> objets) + removeRelation(String key, List<ParseObject> objets) → void @@ -561,8 +578,8 @@

    Methods

    - save() - Future<ParseResponse> + save({dynamic context}) + Future<ParseResponse> @@ -571,11 +588,24 @@

    Methods

    Saves the current object online.
    inherited
    + + +
    + saveEventually() + Future<ParseResponse> + + + +
    +
    + +
    inherited
    +
    - saveInStorage(String key) - Future<void> + saveInStorage(String key) + Future<void> @@ -587,7 +617,7 @@

    Methods

    - set<T>(String key, T value, {bool forceUpdate = true}) + set<T>(String key, T value, {bool forceUpdate = true}) → void @@ -613,7 +643,7 @@

    Methods

    - setAdd<T>(String key, T element) + setAdd<T>(String key, T element) → void @@ -626,7 +656,7 @@

    Methods

    - setAddAll(String key, List elements) + setAddAll(String key, List elements) → void @@ -640,7 +670,7 @@

    Methods

    - setAddAllUnique(String key, List elements) + setAddAllUnique(String key, List elements) → void @@ -655,7 +685,7 @@

    Methods

    - setAddUnique(String key, dynamic element) + setAddUnique(String key, dynamic element) → void @@ -670,7 +700,7 @@

    Methods

    - setDecrement(String key, num amount) + setDecrement(String key, num amount) → void @@ -683,7 +713,7 @@

    Methods

    - setIncrement(String key, num amount) + setIncrement(String key, num amount) → void @@ -696,7 +726,7 @@

    Methods

    - setRemove(String key, dynamic element) + setRemove(String key, dynamic element) → void @@ -710,22 +740,22 @@

    Methods

    - setRemoveAll(String key, List elements) + setRemoveAll(String key, List elements) → void
    - Removes all instances of the elements contained in a List from the + Removes all instances of the elements contained in a List from the array associated with a given key
    inherited
    - toJson({bool full = false, bool forApiRQ = false, bool allowCustomObjectId = false}) - Map<String, dynamic> + toJson({bool full = false, bool forApiRQ = false, bool allowCustomObjectId = false}) + Map<String, dynamic> @@ -738,7 +768,7 @@

    Methods

    toPointer() - Map<String, dynamic> + Map<String, dynamic> @@ -751,7 +781,7 @@

    Methods

    toString() - String + String @@ -763,8 +793,8 @@

    Methods

    - unpin({String? key}) - Future<bool> + unpin({String? key}) + Future<bool> @@ -776,8 +806,8 @@

    Methods

    - unset(String key, {bool offlineOnly = false}) - Future<ParseResponse> + unset(String key, {bool offlineOnly = false}) + Future<ParseResponse> @@ -789,8 +819,8 @@

    Methods

    - update() - Future<ParseResponse> + update({dynamic context}) + Future<ParseResponse> @@ -810,8 +840,8 @@

    Methods

    Operators

    - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -823,7 +853,7 @@

    Operators

    - operator [](String key) + operator [](String key) → dynamic @@ -836,7 +866,7 @@

    Operators

    - operator []=(String key, dynamic value) + operator []=(String key, dynamic value) → void @@ -858,263 +888,25 @@

    Operators

    @@ -1122,7 +914,7 @@
    flutter_parse_sdk library
    -
    read / write
    +
    getter/setter pair
    @@ -132,7 +136,7 @@

    Properties

    Methods

    - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -146,7 +150,7 @@

    Methods

    toString() - String + String @@ -166,8 +170,8 @@

    Methods

    Operators

    - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -188,213 +192,25 @@

    Operators

    @@ -402,7 +218,7 @@
    flutter_parse_sdk library
    -
    read / write
    +
    getter/setter pair
    queries - List<MapEntry<String, dynamic>> + List<MapEntry<String, dynamic>>
    -
    read / write
    +
    getter/setter pair
    - runtimeType - Type + runtimeType + Type
    A representation of the runtime type of the object. -
    read-onlyinherited
    +
    no setterinherited
    @@ -189,8 +193,8 @@

    Properties

    Methods

    - buildQueries(List<MapEntry<String, dynamic>> queries) - String + buildQueries(List<MapEntry<String, dynamic>> queries) + String @@ -203,7 +207,7 @@

    Methods

    buildQuery() - String + String @@ -216,7 +220,7 @@

    Methods

    count() - Future<ParseResponse> + Future<ParseResponse> @@ -228,8 +232,8 @@

    Methods

    - distinct<U extends ParseObject>(String className) - Future<ParseResponse> + distinct<U extends ParseObject>(String className) + Future<ParseResponse> @@ -241,20 +245,20 @@

    Methods

    - dontSelectKeys(String column, dynamic value) + dontSelectKeys(String column, dynamic value) → void
    - Returns an object where the String column doesn't select + Returns an object where the String column doesn't select
    - excludeKeys(List<String> keys) + excludeKeys(List<String> keys) → void @@ -268,7 +272,7 @@

    Methods

    find() - Future<List<T>> + Future<List<T>> @@ -282,7 +286,7 @@

    Methods

    first() - Future<T?> + Future<T?> @@ -295,8 +299,8 @@

    Methods

    - getExtraOptions(Map<String, dynamic> map) - String + getExtraOptions(Map<String, dynamic> map) + String @@ -308,8 +312,8 @@

    Methods

    - getLimiters(Map<String, dynamic> map) - String + getLimiters(Map<String, dynamic> map) + String @@ -321,8 +325,8 @@

    Methods

    - getLimitersRelational(Map<String, dynamic> map) - String + getLimitersRelational(Map<String, dynamic> map) + String @@ -334,7 +338,7 @@

    Methods

    - includeObject(List<String> objectTypes) + includeObject(List<String> objectTypes) → void @@ -347,7 +351,7 @@

    Methods

    - keysToReturn(List<String> keys) + keysToReturn(List<String> keys) → void @@ -360,7 +364,7 @@

    Methods

    - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -373,7 +377,7 @@

    Methods

    - orderByAscending(String order) + orderByAscending(String order) → void @@ -386,7 +390,7 @@

    Methods

    - orderByDescending(String order) + orderByDescending(String order) → void @@ -400,7 +404,7 @@

    Methods

    query<U extends ParseObject>({ProgressCallback? progressCallback}) - Future<ParseResponse> + Future<ParseResponse> @@ -412,47 +416,47 @@

    Methods

    - regEx(String column, String value) + regEx(String column, String value) → void
    - Returns an object where the String column has a regEx performed on, + Returns an object where the String column has a regEx performed on, this can include ^StringsWith, or ^EndsWith. This can be manipulated to the users desire
    - selectKeys(String column, dynamic value) + selectKeys(String column, dynamic value) → void
    - Returns an object where the String column contains select + Returns an object where the String column contains select
    - setAmountToSkip(int skip) + setAmountToSkip(int skip) → void
    - Useful for pagination, skips int amount of results + Useful for pagination, skips int amount of results
    - setLimit(int limit) + setLimit(int limit) → void @@ -465,7 +469,7 @@

    Methods

    - setRedirectClassNameForKey(String key) + setRedirectClassNameForKey(String key) → void @@ -478,8 +482,8 @@

    Methods

    - toString() - String + toString() + String @@ -491,60 +495,62 @@

    Methods

    - whereArrayContainsAll(String column, List value) + whereArrayContainsAll(String column, List value) → void
    - Returns an object where the String column contains all + Returns an object where the String column contains all
    - whereContainedIn(String column, List value) + whereContainedIn(String column, List value) → void
    - Returns an object where the String column is containedIn + Returns an object where the String column is containedIn
    - whereContains(String column, String value, {bool caseSensitive = false}) + whereContains(String column, String substring, {bool caseSensitive = false}) → void
    - Performs a search to see if String contains other string + Add a constraint for finding String values that contain the provided +substring
    - whereContainsWholeWord(String column, String query, {bool caseSensitive = false, bool orderByScore = true, bool diacriticSensitive = false}) + whereContainsWholeWord(String column, String searchTerm, {bool caseSensitive = false, bool orderByScore = true, bool diacriticSensitive = false}) → void
    - Powerful search for containing whole words. This search is much quicker than regex and can search for whole words including whether they are case sensitive or not. -This search can also order by the score of the search + Powerful search for containing whole words. This search is much quicker +than regex and can search for whole words including whether they are case +sensitive or not. This search can also order by the score of the search
    - whereDoesNotMatchKeyInQuery<E extends ParseObject>(String column, String keyInQuery, QueryBuilder<E> query) + whereDoesNotMatchKeyInQuery<E extends ParseObject>(String column, String keyInQuery, QueryBuilder<E> query) → void @@ -557,7 +563,7 @@

    Methods

    - whereDoesNotMatchQuery<E extends ParseObject>(String column, QueryBuilder<E> query) + whereDoesNotMatchQuery<E extends ParseObject>(String column, QueryBuilder<E> query) → void @@ -570,20 +576,21 @@

    Methods

    - whereEndsWith(String column, String query, {bool caseSensitive = false}) + whereEndsWith(String column, String prefix, {bool caseSensitive = false}) → void
    - Returns an object where the String column ends with value + Add a constraint for finding objects where the String value in column +ends with prefix
    - whereEquals(String where) + whereEquals(String where) → void @@ -596,76 +603,77 @@

    Methods

    - whereEqualTo(String column, dynamic value) + whereEqualTo(String column, dynamic value) → void
    - Returns an object where the String column equals value + Add a constraint to the query that requires a particular column's value +to be equal to the provided value
    - whereGreaterThan(String column, dynamic value) + whereGreaterThan(String column, dynamic value) → void
    - Returns an object where the String column contains a value greater + Returns an object where the String column contains a value greater than value
    - whereGreaterThanOrEqualsTo(String column, dynamic value) + whereGreaterThanOrEqualsTo(String column, dynamic value) → void
    - Returns an object where the String column contains a value greater + Returns an object where the String column contains a value greater than equal to value
    - whereLessThan(String column, dynamic value) + whereLessThan(String column, dynamic value) → void
    - Returns an object where the String column contains a value less than + Returns an object where the String column contains a value less than value
    - whereLessThanOrEqualTo(String column, dynamic value) + whereLessThanOrEqualTo(String column, dynamic value) → void
    - Returns an object where the String column contains a value less or equal + Returns an object where the String column contains a value less or equal to than value
    - whereMatchesKeyInQuery<E extends ParseObject>(String column, String keyInQuery, QueryBuilder<E> query) + whereMatchesKeyInQuery<E extends ParseObject>(String column, String keyInQuery, QueryBuilder<E> query) → void @@ -678,7 +686,7 @@

    Methods

    - whereMatchesQuery<E extends ParseObject>(String column, QueryBuilder<E> query) + whereMatchesQuery<E extends ParseObject>(String column, QueryBuilder<E> query) → void @@ -691,7 +699,7 @@

    Methods

    - whereNear(String column, ParseGeoPoint point) + whereNear(String column, ParseGeoPoint point) → void @@ -704,33 +712,34 @@

    Methods

    - whereNotContainedIn(String column, List value) + whereNotContainedIn(String column, List value) → void
    - Returns an object where the String column is notContainedIn + Returns an object where the String column is notContainedIn
    - whereNotEqualTo(String column, dynamic value) + whereNotEqualTo(String column, dynamic value) → void
    - Returns an object where the String column is not equal to value + Add a constraint to the query that requires a particular column's value +to be not equal to the provided value
    - wherePolygonContains(String column, ParseGeoPoint point) + wherePolygonContains(String column, ParseGeoPoint point) → void @@ -743,46 +752,47 @@

    Methods

    - whereRelatedTo(String column, String className, String objectId) + whereRelatedTo(String column, String className, String objectId) → void
    - Retrieves related objets where String column is a relation field to the class String className + Retrieves related objets where String column is a relation field to the class String className
    - whereStartsWith(String column, String query, {bool caseSensitive = false}) + whereStartsWith(String column, String prefix, {bool caseSensitive = false}) → void
    - Returns an object where the String column starts with value + Add a constraint for finding objects where the String value in column +starts with prefix
    - whereValueExists(String column, bool value) + whereValueExists(String column, bool value) → void
    - Returns an object where the String column for the object has data correctly entered/saved + Returns an object where the String column for the object has data correctly entered/saved
    - whereWithinGeoBox(String column, ParseGeoPoint southwest, ParseGeoPoint northeast) + whereWithinGeoBox(String column, ParseGeoPoint southwest, ParseGeoPoint northeast) → void @@ -795,7 +805,7 @@

    Methods

    - whereWithinKilometers(String column, ParseGeoPoint point, double maxDistance) + whereWithinKilometers(String column, ParseGeoPoint point, double maxDistance) → void @@ -808,7 +818,7 @@

    Methods

    - whereWithinMiles(String column, ParseGeoPoint point, double maxDistance) + whereWithinMiles(String column, ParseGeoPoint point, double maxDistance) → void @@ -821,7 +831,7 @@

    Methods

    - whereWithinPolygon(String column, List<ParseGeoPoint> points) + whereWithinPolygon(String column, List<ParseGeoPoint> points) → void @@ -836,7 +846,7 @@

    Methods

    - whereWithinRadians(String column, ParseGeoPoint point, double maxDistance) + whereWithinRadians(String column, ParseGeoPoint point, double maxDistance) → void @@ -857,8 +867,8 @@

    Methods

    Operators

    - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -879,268 +889,25 @@

    Operators

    @@ -1148,7 +915,7 @@
    flutter_parse_sdk library
    -
    read-only
    +
    no setter
    eventCallbacks - Map<String, Function> + Map<String, Function>
    -
    read / write
    +
    getter/setter pair
    - hashCode - int + hashCode + int
    The hash code for this object. -
    read-onlyinherited
    +
    no setterinherited
    @@ -118,29 +122,29 @@

    Properties

    -
    read / write
    +
    getter/setter pair
    requestId - int + int
    -
    read / write
    +
    getter/setter pair
    - runtimeType - Type + runtimeType + Type
    A representation of the runtime type of the object. -
    read-onlyinherited
    +
    no setterinherited
    @@ -154,7 +158,7 @@

    Properties

    Methods

    - noSuchMethod(Invocation invocation) + noSuchMethod(Invocation invocation) → dynamic @@ -167,7 +171,7 @@

    Methods

    - on(LiveQueryEvent op, Function callback) + on(LiveQueryEvent op, Function callback) → void @@ -180,8 +184,8 @@

    Methods

    - toString() - String + toString() + String @@ -201,8 +205,8 @@

    Methods

    Operators

    - operator ==(Object other) - bool + operator ==(Object other) + bool @@ -223,216 +227,25 @@

    Operators

    @@ -440,7 +253,7 @@
    flutter_parse_sdk library

    + @@ -386,6 +396,14 @@

    Classes

    +
    + +
    + ParseXFile + +
    +
    +
    @@ -417,13 +435,14 @@

    Classes

    +

    Constants

    keyAppIdentifier - → const String + → const String
    @@ -431,14 +450,11 @@

    Constants

    -
    - 'appIdentifier' -
    keyAppName - → const String + → const String
    @@ -446,14 +462,11 @@

    Constants

    -
    - 'appName' -
    keyAppVersion - → const String + → const String
    @@ -461,14 +474,11 @@

    Constants

    -
    - 'appVersion' -
    keyClassInstallation - → const String + → const String
    @@ -476,14 +486,11 @@

    Constants

    -
    - '_Installation' -
    keyClassMain - → const String + → const String
    @@ -491,14 +498,11 @@

    Constants

    -
    - 'ParseMain' -
    keyClassSession - → const String + → const String
    @@ -506,14 +510,11 @@

    Constants

    -
    - '_Session' -
    keyClassUser - → const String + → const String
    @@ -521,14 +522,11 @@

    Constants

    -
    - '_User' -
    keyCode - → const String + → const String
    @@ -536,14 +534,11 @@

    Constants

    -
    - 'code' -
    keyDeviceToken - → const String + → const String
    @@ -551,14 +546,11 @@

    Constants

    -
    - 'deviceToken' -
    keyDeviceType - → const String + → const String
    @@ -566,14 +558,11 @@

    Constants

    -
    - 'deviceType' -
    keyEndPointAggregate - → const String + → const String
    @@ -581,14 +570,11 @@

    Constants

    -
    - '/aggregate/' -
    keyEndPointClasses - → const String + → const String
    @@ -596,14 +582,11 @@

    Constants

    -
    - '/classes/' -
    keyEndPointHealth - → const String + → const String
    @@ -611,14 +594,11 @@

    Constants

    -
    - '/health' -
    keyEndPointInstallations - → const String + → const String
    @@ -626,14 +606,11 @@

    Constants

    -
    - '/installations' -
    keyEndPointLogin - → const String + → const String
    @@ -641,14 +618,11 @@

    Constants

    -
    - '/login' -
    keyEndPointLogout - → const String + → const String
    @@ -656,14 +630,11 @@

    Constants

    -
    - '/logout' -
    keyEndPointRequestPasswordReset - → const String + → const String
    @@ -671,14 +642,11 @@

    Constants

    -
    - '/requestPasswordReset' -
    keyEndPointSessions - → const String + → const String
    @@ -686,14 +654,11 @@

    Constants

    -
    - '/sessions' -
    keyEndPointUserName - → const String + → const String
    @@ -701,14 +666,11 @@

    Constants

    -
    - '/users/me' -
    keyEndPointUsers - → const String + → const String
    @@ -716,14 +678,11 @@

    Constants

    -
    - '/users' -
    keyEndPointVerificationEmail - → const String + → const String
    @@ -731,14 +690,11 @@

    Constants

    -
    - '/verificationEmailRequest' -
    keyError - → const String + → const String
    @@ -746,14 +702,11 @@

    Constants

    -
    - 'error' -
    keyFile - → const String + → const String
    @@ -761,14 +714,11 @@

    Constants

    -
    - 'File' -
    keyFileClassname - → const String + → const String
    @@ -776,14 +726,11 @@

    Constants

    -
    - 'ParseFile' -
    keyGeoPoint - → const String + → const String
    @@ -791,14 +738,11 @@

    Constants

    -
    - 'GeoPoint' -
    keyHeaderApplicationId - → const String + → const String
    @@ -806,14 +750,23 @@

    Constants

    -
    - 'X-Parse-Application-Id' -
    keyHeaderClientKey - → const String + → const String + + +
    +
    + + + +
    + +
    + keyHeaderCloudContext + → const String
    @@ -821,14 +774,11 @@

    Constants

    -
    - 'X-Parse-Client-Key' -
    keyHeaderContentType - → const String + → const String
    @@ -836,14 +786,11 @@

    Constants

    -
    - 'content-type' -
    keyHeaderContentTypeJson - → const String + → const String
    @@ -851,14 +798,11 @@

    Constants

    -
    - 'application/json' -
    keyHeaderInstallationId - → const String + → const String
    @@ -866,14 +810,11 @@

    Constants

    -
    - 'X-Parse-Installation-Id' -
    keyHeaderMasterKey - → const String + → const String
    @@ -881,14 +822,11 @@

    Constants

    -
    - 'X-Parse-Master-Key' -
    keyHeaderRevocableSession - → const String + → const String
    @@ -896,14 +834,11 @@

    Constants

    -
    - 'X-Parse-Revocable-Session' -
    keyHeaderSessionToken - → const String + → const String
    @@ -911,14 +846,11 @@

    Constants

    -
    - 'X-Parse-Session-Token' -
    keyHeaderUserAgent - → const String + → const String
    @@ -926,14 +858,11 @@

    Constants

    -
    - 'user-agent' -
    keyInstallationId - → const String + → const String
    @@ -941,14 +870,11 @@

    Constants

    -
    - 'installationId' -
    keyLatitude - → const String + → const String
    @@ -956,14 +882,11 @@

    Constants

    -
    - 'latitude' -
    keyLibraryName - → const String + → const String
    @@ -971,14 +894,11 @@

    Constants

    -
    - 'Flutter Parse SDK' -
    keyLocaleIdentifier - → const String + → const String
    @@ -986,14 +906,23 @@

    Constants

    -
    - 'localeIdentifier' -
    keyLongitude - → const String + → const String + + +
    +
    + + + +
    + +
    + keyNetworkError + → const String
    @@ -1001,14 +930,11 @@

    Constants

    -
    - 'longitude' -
    keyParamSessionToken - → const String + → const String
    @@ -1016,14 +942,23 @@

    Constants

    -
    - 'sessionToken' -
    keyParseStoreBase - → const String + → const String + + +
    +
    + + + +
    + +
    + keyParseStoreDeletes + → const String
    @@ -1031,14 +966,23 @@

    Constants

    -
    - 'flutter_parse_sdk_' -
    keyParseStoreInstallation - → const String + → const String + + +
    +
    + + + +
    + +
    + keyParseStoreObjects + → const String
    @@ -1046,14 +990,11 @@

    Constants

    -
    - '${keyParseStoreBase}installation' -
    keyParseStoreUser - → const String + → const String
    @@ -1061,14 +1002,11 @@

    Constants

    -
    - '${keyParseStoreBase}user' -
    keyParseVersion - → const String + → const String
    @@ -1076,14 +1014,11 @@

    Constants

    -
    - 'parseVersion' -
    keyRelation - → const String + → const String
    @@ -1091,14 +1026,11 @@

    Constants

    -
    - 'Relation' -
    keySdkVersion - → const String + → const String
    @@ -1106,14 +1038,11 @@

    Constants

    -
    - '5.1.1' -
    keyTimeZone - → const String + → const String
    @@ -1121,14 +1050,11 @@

    Constants

    -
    - 'timeZone' -
    keyVarAcl - → const String + → const String
    @@ -1136,14 +1062,11 @@

    Constants

    -
    - 'ACL' -
    keyVarAuthData - → const String + → const String
    @@ -1151,14 +1074,11 @@

    Constants

    -
    - 'authData' -
    keyVarClassName - → const String + → const String
    @@ -1166,14 +1086,11 @@

    Constants

    -
    - 'className' -
    keyVarCreatedAt - → const String + → const String
    @@ -1181,14 +1098,11 @@

    Constants

    -
    - 'createdAt' -
    keyVarCreatedWith - → const String + → const String
    @@ -1196,14 +1110,11 @@

    Constants

    -
    - 'createdWith' -
    keyVarEmail - → const String + → const String
    @@ -1211,14 +1122,11 @@

    Constants

    -
    - 'email' -
    keyVarExpiresAt - → const String + → const String
    @@ -1226,14 +1134,11 @@

    Constants

    -
    - 'expiresAt' -
    keyVarInstallationId - → const String + → const String
    @@ -1241,14 +1146,11 @@

    Constants

    -
    - 'installationId' -
    keyVarName - → const String + → const String
    @@ -1256,14 +1158,11 @@

    Constants

    -
    - 'name' -
    keyVarObjectId - → const String + → const String
    @@ -1271,14 +1170,11 @@

    Constants

    -
    - 'objectId' -
    keyVarPassword - → const String + → const String
    @@ -1286,14 +1182,11 @@

    Constants

    -
    - 'password' -
    keyVarRestricted - → const String + → const String
    @@ -1301,14 +1194,11 @@

    Constants

    -
    - 'restricted' -
    keyVarSessionToken - → const String + → const String
    @@ -1316,14 +1206,11 @@

    Constants

    -
    - 'sessionToken' -
    keyVarUpdatedAt - → const String + → const String
    @@ -1331,14 +1218,11 @@

    Constants

    -
    - 'updatedAt' -
    keyVarURL - → const String + → const String
    @@ -1346,14 +1230,11 @@

    Constants

    -
    - 'url' -
    keyVarUser - → const String + → const String
    @@ -1361,14 +1242,11 @@

    Constants

    -
    - 'user' -
    keyVarUsername - → const String + → const String
    @@ -1376,14 +1254,11 @@

    Constants

    -
    - 'username' -
    parseIsWeb - → const bool + → const bool
    @@ -1391,9 +1266,6 @@

    Constants

    -
    - identical(0, 0.0) -
    @@ -1405,8 +1277,8 @@

    Functions

    - apple(String token, String id) - Map<String, dynamic> + apple(String token, String id) + Map<String, dynamic> @@ -1418,8 +1290,8 @@

    Functions

    - batchRequest(List requests, List<ParseObject> objects, {ParseClient? client, bool? debug}) - Future<ParseResponse> + batchRequest(List requests, List<ParseObject> objects, {ParseClient? client, bool? debug}) + Future<ParseResponse> @@ -1444,7 +1316,7 @@

    Functions

    - buildParseResponseWithException(Exception exception) + buildParseResponseWithException(Exception exception) ParseResponse @@ -1457,7 +1329,7 @@

    Functions

    - buildSuccessResponseWithNoResults(ParseResponse response, int code, String value) + buildSuccessResponseWithNoResults(ParseResponse response, int code, String value) ParseResponse @@ -1467,11 +1339,37 @@

    Functions

    Handles successful responses with no results + + +
    + checkForSubmitEventually() + Future<void> + + + +
    +
    + + + +
    + +
    + checkObjectsExistForEventually() + Future<bool> + + + +
    +
    + + +
    - concatenateArray(List<String> list) - String + concatenateArray(List<String> list) + String @@ -1509,8 +1407,8 @@

    Functions

    - encodeObject(String className, String objectId) - Map<String, String> + encodeObject(String className, String objectId) + Map<String, String> @@ -1522,8 +1420,8 @@

    Functions

    - facebook(String token, String id, DateTime expires) - Map<String, dynamic> + facebook(String token, String id, DateTime expires) + Map<String, dynamic> @@ -1535,8 +1433,8 @@

    Functions

    - getCustomUri(ParseClient client, String path, {Map<String, dynamic>? queryParams, String? query}) - Uri + getCustomUri(ParseClient client, String path, {Map<String, dynamic>? queryParams, String? query}) + Uri @@ -1548,8 +1446,8 @@

    Functions

    - getSanitisedUri(ParseClient client, String pathToAppend, {Map<String, dynamic>? queryParams, String? query}) - Uri + getSanitisedUri(ParseClient client, String pathToAppend, {Map<String, dynamic>? queryParams, String? query}) + Uri @@ -1561,8 +1459,8 @@

    Functions

    - getXXTeaSembastCodec({required String password}) - SembastCodec + getXXTeaSembastCodec({required String password}) + SembastCodec @@ -1574,8 +1472,8 @@

    Functions

    - google(String token, String id, String idToken) - Map<String, dynamic> + google(String token, String id, String idToken) + Map<String, dynamic> @@ -1587,34 +1485,34 @@

    Functions

    - handleException(Exception exception, ParseApiRQ type, bool debug, String className) + handleException(Exception exception, ParseApiRQ type, bool debug, String className) ParseResponse
    - Handles an API response and logs data if bool debug is enabled + Handles an API response and logs data if bool debug is enabled
    - handleResponse<T>(dynamic object, ParseNetworkResponse response, ParseApiRQ type, bool debug, String className) + handleResponse<T>(dynamic object, ParseNetworkResponse response, ParseApiRQ type, bool debug, String className) ParseResponse
    - Handles an API response and logs data if bool debug is enabled + Handles an API response and logs data if bool debug is enabled
    - isDebugEnabled({bool? objectLevelDebug}) - bool + isDebugEnabled({bool? objectLevelDebug}) + bool @@ -1627,7 +1525,7 @@

    Functions

    isSuccessButNoResults(ParseNetworkResponse apiResponse) - bool + bool @@ -1640,7 +1538,7 @@

    Functions

    isUnsuccessfulResponse(ParseNetworkResponse apiResponse) - bool + bool @@ -1652,7 +1550,7 @@

    Functions

    - logAPIResponse(String className, String type, ParseResponse parseResponse) + logAPIResponse(String className, String type, ParseResponse parseResponse) → void @@ -1665,7 +1563,7 @@

    Functions

    - logRequest(String? appName, String className, String type, String uri, String body) + logRequest(String? appName, String className, String type, String uri, String body) → void @@ -1691,7 +1589,7 @@

    Functions

    - parseEncode(dynamic value, {bool full = false}) + parseEncode(dynamic value, {bool full = false}) → dynamic @@ -1704,8 +1602,8 @@

    Functions

    - removeDuplicateParseObjectByObjectId(Iterable iterable) - List + removeDuplicateParseObjectByObjectId(Iterable iterable) + List @@ -1717,8 +1615,8 @@

    Functions

    - removeTrailingSlash(String serverUrl) - String + removeTrailingSlash(String serverUrl) + String @@ -1731,7 +1629,7 @@

    Functions

    shouldReturnAsABaseResult(ParseApiRQ type) - bool + bool @@ -1799,7 +1697,7 @@

    Typedefs

    ParseClientCreator - = ParseClient Function({SecurityContext? securityContext, required bool sendSessionId}) + = ParseClient Function({SecurityContext? securityContext, required bool sendSessionId}) @@ -1813,7 +1711,7 @@

    Typedefs

    ParseFileConstructor - = ParseFileBase Function({String? name, String? url}) + = ParseFileBase Function({String? name, String? url}) @@ -1841,7 +1739,7 @@

    Typedefs

    ParseUserConstructor - = ParseUser Function(String? username, String? password, String? emailAddress, {ParseClient? client, bool? debug, String? sessionToken}) + = ParseUser Function(String? username, String? password, String? emailAddress, {ParseClient? client, bool? debug, String? sessionToken}) @@ -1855,7 +1753,7 @@

    Typedefs

    ProgressCallback - = void Function(int count, int total) + = void Function(int count, int total) @@ -1903,192 +1801,29 @@

    Exceptions / Errors

    @@ -2096,7 +1831,7 @@
    flutter_parse_sdk library
    -

    Handles an API response and logs data if bool debug is enabled

    +

    Handles an API response and logs data if bool debug is enabled

    @@ -101,184 +105,22 @@

    Implementation