├── .DS_Store ├── .gitignore ├── .gitmodules ├── CBDatabase.podspec ├── CODEOWNERS ├── Makefile ├── android ├── .editorconfig ├── build.gradle ├── databases │ ├── .gitignore │ ├── build.gradle │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── coinbase │ │ │ └── wallet │ │ │ └── libraries │ │ │ └── databases │ │ │ ├── DatabaseTests.kt │ │ │ ├── MockDatabaseProvider.kt │ │ │ └── MockUser.kt │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── coinbase │ │ └── wallet │ │ └── libraries │ │ └── databases │ │ ├── converters │ │ ├── BigDecimalConverter.kt │ │ ├── BigIntegerConverter.kt │ │ ├── DateConverter.kt │ │ └── UrlConverter.kt │ │ ├── db │ │ ├── Database.kt │ │ ├── RoomDatabaseProvider.kt │ │ └── Storage.kt │ │ ├── exceptions │ │ └── DatabaseException.kt │ │ ├── interfaces │ │ ├── DatabaseDaoInterface.kt │ │ ├── DatabaseModelObject.kt │ │ └── StorageOptions.kt │ │ └── model │ │ ├── DatabaseOperation.kt │ │ ├── DiskOptions.kt │ │ └── MemoryOptions.kt ├── gradle.properties ├── gradle │ ├── dependencies.gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle └── ios ├── CBDatabase.xcodeproj ├── project.pbxproj └── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── CBDatabase.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ ├── IDEWorkspaceChecks.plist │ └── WorkspaceSettings.xcsettings ├── CBDatabaseTests ├── DatabasesTests.swift ├── Info.plist ├── MigrationTests.swift ├── ProgressiveMigrationDB.xcdatamodeld │ ├── .xccurrentversion │ ├── ProgressiveMigrationDB.xcdatamodel │ │ └── contents │ ├── v2db.xcdatamodel │ │ └── contents │ ├── v3db.xcdatamodel │ │ └── contents │ └── v4db.xcdatamodel │ │ └── contents ├── ProgressiveV1toV2.xcmappingmodel │ └── xcmapping.xml ├── ProgressiveV2toV3.xcmappingmodel │ └── xcmapping.xml ├── TestDatabase.xcdatamodeld │ ├── .xccurrentversion │ ├── Model.xcdatamodel │ │ └── contents │ └── v2.0.xcdatamodel │ │ └── contents └── progressivedb_v1 │ ├── progressivedb.sqlite │ ├── progressivedb.sqlite-shm │ └── progressivedb.sqlite-wal ├── LICENSE ├── Podfile ├── Podfile.lock ├── Pods ├── BigInt │ ├── LICENSE.md │ ├── README.md │ └── sources │ │ ├── Addition.swift │ │ ├── BigInt.swift │ │ ├── BigUInt.swift │ │ ├── Bitwise Ops.swift │ │ ├── Codable.swift │ │ ├── Comparable.swift │ │ ├── Data Conversion.swift │ │ ├── Division.swift │ │ ├── Exponentiation.swift │ │ ├── Floating Point Conversion.swift │ │ ├── GCD.swift │ │ ├── Hashable.swift │ │ ├── Integer Conversion.swift │ │ ├── Multiplication.swift │ │ ├── Prime Test.swift │ │ ├── Random.swift │ │ ├── Shifts.swift │ │ ├── Square Root.swift │ │ ├── Strideable.swift │ │ ├── String Conversion.swift │ │ ├── Subtraction.swift │ │ └── Words and Bits.swift ├── Manifest.lock ├── Pods.xcodeproj │ └── project.pbxproj ├── RxAtomic │ ├── LICENSE.md │ ├── README.md │ └── RxAtomic │ │ ├── RxAtomic.c │ │ └── include │ │ └── RxAtomic.h ├── RxBlocking │ ├── LICENSE.md │ ├── Platform │ │ ├── DataStructures │ │ │ ├── Bag.swift │ │ │ ├── InfiniteSequence.swift │ │ │ ├── PriorityQueue.swift │ │ │ └── Queue.swift │ │ ├── DeprecationWarner.swift │ │ ├── DispatchQueue+Extensions.swift │ │ ├── Platform.Darwin.swift │ │ ├── Platform.Linux.swift │ │ └── RecursiveLock.swift │ ├── README.md │ └── RxBlocking │ │ ├── BlockingObservable+Operators.swift │ │ ├── BlockingObservable.swift │ │ ├── ObservableConvertibleType+Blocking.swift │ │ ├── Resources.swift │ │ └── RunLoopLock.swift ├── RxCocoa │ ├── LICENSE.md │ ├── Platform │ │ ├── DataStructures │ │ │ ├── Bag.swift │ │ │ ├── InfiniteSequence.swift │ │ │ ├── PriorityQueue.swift │ │ │ └── Queue.swift │ │ ├── DeprecationWarner.swift │ │ ├── DispatchQueue+Extensions.swift │ │ ├── Platform.Darwin.swift │ │ ├── Platform.Linux.swift │ │ └── RecursiveLock.swift │ ├── README.md │ └── RxCocoa │ │ ├── Common │ │ ├── Binder.swift │ │ ├── ControlTarget.swift │ │ ├── DelegateProxy.swift │ │ ├── DelegateProxyType.swift │ │ ├── KeyPathBinder.swift │ │ ├── NSLayoutConstraint+Rx.swift │ │ ├── Observable+Bind.swift │ │ ├── RxCocoaObjCRuntimeError+Extensions.swift │ │ ├── RxTarget.swift │ │ ├── SectionedViewDataSourceType.swift │ │ └── TextInput.swift │ │ ├── Deprecated.swift │ │ ├── Foundation │ │ ├── KVORepresentable+CoreGraphics.swift │ │ ├── KVORepresentable+Swift.swift │ │ ├── KVORepresentable.swift │ │ ├── Logging.swift │ │ ├── NSObject+Rx+KVORepresentable.swift │ │ ├── NSObject+Rx+RawRepresentable.swift │ │ ├── NSObject+Rx.swift │ │ ├── NotificationCenter+Rx.swift │ │ └── URLSession+Rx.swift │ │ ├── Runtime │ │ ├── _RX.m │ │ ├── _RXDelegateProxy.m │ │ ├── _RXKVOObserver.m │ │ ├── _RXObjCRuntime.m │ │ └── include │ │ │ ├── RxCocoaRuntime.h │ │ │ ├── _RX.h │ │ │ ├── _RXDelegateProxy.h │ │ │ ├── _RXKVOObserver.h │ │ │ └── _RXObjCRuntime.h │ │ ├── RxCocoa.h │ │ ├── RxCocoa.swift │ │ ├── Traits │ │ ├── BehaviorRelay.swift │ │ ├── ControlEvent.swift │ │ ├── ControlProperty.swift │ │ ├── Driver │ │ │ ├── BehaviorRelay+Driver.swift │ │ │ ├── ControlEvent+Driver.swift │ │ │ ├── ControlProperty+Driver.swift │ │ │ ├── Driver+Subscription.swift │ │ │ ├── Driver.swift │ │ │ └── ObservableConvertibleType+Driver.swift │ │ ├── PublishRelay.swift │ │ ├── SharedSequence │ │ │ ├── ObservableConvertibleType+SharedSequence.swift │ │ │ ├── SchedulerType+SharedSequence.swift │ │ │ ├── SharedSequence+Operators+arity.swift │ │ │ ├── SharedSequence+Operators.swift │ │ │ └── SharedSequence.swift │ │ └── Signal │ │ │ ├── ControlEvent+Signal.swift │ │ │ ├── ObservableConvertibleType+Signal.swift │ │ │ ├── PublishRelay+Signal.swift │ │ │ ├── Signal+Subscription.swift │ │ │ └── Signal.swift │ │ ├── iOS │ │ ├── DataSources │ │ │ ├── RxCollectionViewReactiveArrayDataSource.swift │ │ │ ├── RxPickerViewAdapter.swift │ │ │ └── RxTableViewReactiveArrayDataSource.swift │ │ ├── Events │ │ │ └── ItemEvents.swift │ │ ├── NSTextStorage+Rx.swift │ │ ├── Protocols │ │ │ ├── RxCollectionViewDataSourceType.swift │ │ │ ├── RxPickerViewDataSourceType.swift │ │ │ └── RxTableViewDataSourceType.swift │ │ ├── Proxies │ │ │ ├── RxCollectionViewDataSourcePrefetchingProxy.swift │ │ │ ├── RxCollectionViewDataSourceProxy.swift │ │ │ ├── RxCollectionViewDelegateProxy.swift │ │ │ ├── RxNavigationControllerDelegateProxy.swift │ │ │ ├── RxPickerViewDataSourceProxy.swift │ │ │ ├── RxPickerViewDelegateProxy.swift │ │ │ ├── RxScrollViewDelegateProxy.swift │ │ │ ├── RxSearchBarDelegateProxy.swift │ │ │ ├── RxSearchControllerDelegateProxy.swift │ │ │ ├── RxTabBarControllerDelegateProxy.swift │ │ │ ├── RxTabBarDelegateProxy.swift │ │ │ ├── RxTableViewDataSourcePrefetchingProxy.swift │ │ │ ├── RxTableViewDataSourceProxy.swift │ │ │ ├── RxTableViewDelegateProxy.swift │ │ │ ├── RxTextStorageDelegateProxy.swift │ │ │ ├── RxTextViewDelegateProxy.swift │ │ │ └── RxWebViewDelegateProxy.swift │ │ ├── UIActivityIndicatorView+Rx.swift │ │ ├── UIAlertAction+Rx.swift │ │ ├── UIApplication+Rx.swift │ │ ├── UIBarButtonItem+Rx.swift │ │ ├── UIButton+Rx.swift │ │ ├── UICollectionView+Rx.swift │ │ ├── UIControl+Rx.swift │ │ ├── UIDatePicker+Rx.swift │ │ ├── UIGestureRecognizer+Rx.swift │ │ ├── UIImageView+Rx.swift │ │ ├── UILabel+Rx.swift │ │ ├── UINavigationController+Rx.swift │ │ ├── UINavigationItem+Rx.swift │ │ ├── UIPageControl+Rx.swift │ │ ├── UIPickerView+Rx.swift │ │ ├── UIProgressView+Rx.swift │ │ ├── UIRefreshControl+Rx.swift │ │ ├── UIScrollView+Rx.swift │ │ ├── UISearchBar+Rx.swift │ │ ├── UISearchController+Rx.swift │ │ ├── UISegmentedControl+Rx.swift │ │ ├── UISlider+Rx.swift │ │ ├── UIStepper+Rx.swift │ │ ├── UISwitch+Rx.swift │ │ ├── UITabBar+Rx.swift │ │ ├── UITabBarController+Rx.swift │ │ ├── UITabBarItem+Rx.swift │ │ ├── UITableView+Rx.swift │ │ ├── UITextField+Rx.swift │ │ ├── UITextView+Rx.swift │ │ ├── UIView+Rx.swift │ │ ├── UIViewController+Rx.swift │ │ └── UIWebView+Rx.swift │ │ └── macOS │ │ ├── NSButton+Rx.swift │ │ ├── NSControl+Rx.swift │ │ ├── NSImageView+Rx.swift │ │ ├── NSSlider+Rx.swift │ │ ├── NSTextField+Rx.swift │ │ ├── NSTextView+Rx.swift │ │ └── NSView+Rx.swift ├── RxSwift │ ├── LICENSE.md │ ├── Platform │ │ ├── AtomicInt.swift │ │ ├── DataStructures │ │ │ ├── Bag.swift │ │ │ ├── InfiniteSequence.swift │ │ │ ├── PriorityQueue.swift │ │ │ └── Queue.swift │ │ ├── DeprecationWarner.swift │ │ ├── DispatchQueue+Extensions.swift │ │ ├── Platform.Darwin.swift │ │ ├── Platform.Linux.swift │ │ └── RecursiveLock.swift │ ├── README.md │ └── RxSwift │ │ ├── AnyObserver.swift │ │ ├── Cancelable.swift │ │ ├── Concurrency │ │ ├── AsyncLock.swift │ │ ├── Lock.swift │ │ ├── LockOwnerType.swift │ │ ├── SynchronizedDisposeType.swift │ │ ├── SynchronizedOnType.swift │ │ └── SynchronizedUnsubscribeType.swift │ │ ├── ConnectableObservableType.swift │ │ ├── Deprecated.swift │ │ ├── Disposable.swift │ │ ├── Disposables │ │ ├── AnonymousDisposable.swift │ │ ├── BinaryDisposable.swift │ │ ├── BooleanDisposable.swift │ │ ├── CompositeDisposable.swift │ │ ├── Disposables.swift │ │ ├── DisposeBag.swift │ │ ├── DisposeBase.swift │ │ ├── NopDisposable.swift │ │ ├── RefCountDisposable.swift │ │ ├── ScheduledDisposable.swift │ │ ├── SerialDisposable.swift │ │ ├── SingleAssignmentDisposable.swift │ │ └── SubscriptionDisposable.swift │ │ ├── Errors.swift │ │ ├── Event.swift │ │ ├── Extensions │ │ ├── Bag+Rx.swift │ │ └── String+Rx.swift │ │ ├── GroupedObservable.swift │ │ ├── ImmediateSchedulerType.swift │ │ ├── Observable.swift │ │ ├── ObservableConvertibleType.swift │ │ ├── ObservableType+Extensions.swift │ │ ├── ObservableType.swift │ │ ├── Observables │ │ ├── AddRef.swift │ │ ├── Amb.swift │ │ ├── AsMaybe.swift │ │ ├── AsSingle.swift │ │ ├── Buffer.swift │ │ ├── Catch.swift │ │ ├── CombineLatest+Collection.swift │ │ ├── CombineLatest+arity.swift │ │ ├── CombineLatest.swift │ │ ├── Concat.swift │ │ ├── Create.swift │ │ ├── Debounce.swift │ │ ├── Debug.swift │ │ ├── DefaultIfEmpty.swift │ │ ├── Deferred.swift │ │ ├── Delay.swift │ │ ├── DelaySubscription.swift │ │ ├── Dematerialize.swift │ │ ├── DistinctUntilChanged.swift │ │ ├── Do.swift │ │ ├── ElementAt.swift │ │ ├── Empty.swift │ │ ├── Enumerated.swift │ │ ├── Error.swift │ │ ├── Filter.swift │ │ ├── First.swift │ │ ├── Generate.swift │ │ ├── GroupBy.swift │ │ ├── Just.swift │ │ ├── Map.swift │ │ ├── Materialize.swift │ │ ├── Merge.swift │ │ ├── Multicast.swift │ │ ├── Never.swift │ │ ├── ObserveOn.swift │ │ ├── Optional.swift │ │ ├── Producer.swift │ │ ├── Range.swift │ │ ├── Reduce.swift │ │ ├── Repeat.swift │ │ ├── RetryWhen.swift │ │ ├── Sample.swift │ │ ├── Scan.swift │ │ ├── Sequence.swift │ │ ├── ShareReplayScope.swift │ │ ├── SingleAsync.swift │ │ ├── Sink.swift │ │ ├── Skip.swift │ │ ├── SkipUntil.swift │ │ ├── SkipWhile.swift │ │ ├── StartWith.swift │ │ ├── SubscribeOn.swift │ │ ├── Switch.swift │ │ ├── SwitchIfEmpty.swift │ │ ├── Take.swift │ │ ├── TakeLast.swift │ │ ├── TakeUntil.swift │ │ ├── TakeWhile.swift │ │ ├── Throttle.swift │ │ ├── Timeout.swift │ │ ├── Timer.swift │ │ ├── ToArray.swift │ │ ├── Using.swift │ │ ├── Window.swift │ │ ├── WithLatestFrom.swift │ │ ├── Zip+Collection.swift │ │ ├── Zip+arity.swift │ │ └── Zip.swift │ │ ├── ObserverType.swift │ │ ├── Observers │ │ ├── AnonymousObserver.swift │ │ ├── ObserverBase.swift │ │ └── TailRecursiveSink.swift │ │ ├── Reactive.swift │ │ ├── Rx.swift │ │ ├── RxMutableBox.swift │ │ ├── SchedulerType.swift │ │ ├── Schedulers │ │ ├── ConcurrentDispatchQueueScheduler.swift │ │ ├── ConcurrentMainScheduler.swift │ │ ├── CurrentThreadScheduler.swift │ │ ├── HistoricalScheduler.swift │ │ ├── HistoricalSchedulerTimeConverter.swift │ │ ├── Internal │ │ │ ├── DispatchQueueConfiguration.swift │ │ │ ├── InvocableScheduledItem.swift │ │ │ ├── InvocableType.swift │ │ │ ├── ScheduledItem.swift │ │ │ └── ScheduledItemType.swift │ │ ├── MainScheduler.swift │ │ ├── OperationQueueScheduler.swift │ │ ├── RecursiveScheduler.swift │ │ ├── SchedulerServices+Emulation.swift │ │ ├── SerialDispatchQueueScheduler.swift │ │ ├── VirtualTimeConverterType.swift │ │ └── VirtualTimeScheduler.swift │ │ ├── Subjects │ │ ├── AsyncSubject.swift │ │ ├── BehaviorSubject.swift │ │ ├── PublishSubject.swift │ │ ├── ReplaySubject.swift │ │ └── SubjectType.swift │ │ ├── SwiftSupport │ │ └── SwiftSupport.swift │ │ └── Traits │ │ ├── Completable+AndThen.swift │ │ ├── Completable.swift │ │ ├── Maybe.swift │ │ ├── ObservableType+PrimitiveSequence.swift │ │ ├── PrimitiveSequence+Zip+arity.swift │ │ ├── PrimitiveSequence.swift │ │ └── Single.swift ├── SipHash │ ├── LICENSE.md │ ├── README.md │ └── SipHash │ │ ├── Primitive Types.swift │ │ ├── RandomUInt64.swift │ │ ├── SipHashable.swift │ │ └── SipHasher.swift ├── SwiftFormat │ ├── CommandLineTool │ │ └── swiftformat │ ├── LICENSE.md │ └── README.md ├── SwiftLint │ ├── LICENSE │ └── swiftlint └── Target Support Files │ ├── BigInt │ ├── BigInt-Info.plist │ ├── BigInt-dummy.m │ ├── BigInt-prefix.pch │ ├── BigInt-umbrella.h │ ├── BigInt.modulemap │ ├── BigInt.xcconfig │ └── Info.plist │ ├── Pods-CBDatabase │ ├── Info.plist │ ├── Pods-CBDatabase-Info.plist │ ├── Pods-CBDatabase-acknowledgements.markdown │ ├── Pods-CBDatabase-acknowledgements.plist │ ├── Pods-CBDatabase-dummy.m │ ├── Pods-CBDatabase-resources.sh │ ├── Pods-CBDatabase-umbrella.h │ ├── Pods-CBDatabase.debug.xcconfig │ ├── Pods-CBDatabase.modulemap │ └── Pods-CBDatabase.release.xcconfig │ ├── Pods-CBDatabaseTests │ ├── Info.plist │ ├── Pods-CBDatabaseTests-Info.plist │ ├── Pods-CBDatabaseTests-acknowledgements.markdown │ ├── Pods-CBDatabaseTests-acknowledgements.plist │ ├── Pods-CBDatabaseTests-dummy.m │ ├── Pods-CBDatabaseTests-frameworks-Debug-input-files.xcfilelist │ ├── Pods-CBDatabaseTests-frameworks-Debug-output-files.xcfilelist │ ├── Pods-CBDatabaseTests-frameworks-Release-input-files.xcfilelist │ ├── Pods-CBDatabaseTests-frameworks-Release-output-files.xcfilelist │ ├── Pods-CBDatabaseTests-frameworks.sh │ ├── Pods-CBDatabaseTests-resources.sh │ ├── Pods-CBDatabaseTests-umbrella.h │ ├── Pods-CBDatabaseTests.debug.xcconfig │ ├── Pods-CBDatabaseTests.modulemap │ └── Pods-CBDatabaseTests.release.xcconfig │ ├── RxAtomic │ ├── Info.plist │ ├── RxAtomic-Info.plist │ ├── RxAtomic-dummy.m │ ├── RxAtomic-prefix.pch │ ├── RxAtomic-umbrella.h │ ├── RxAtomic.modulemap │ └── RxAtomic.xcconfig │ ├── RxBlocking │ ├── Info.plist │ ├── RxBlocking-Info.plist │ ├── RxBlocking-dummy.m │ ├── RxBlocking-prefix.pch │ ├── RxBlocking-umbrella.h │ ├── RxBlocking.modulemap │ └── RxBlocking.xcconfig │ ├── RxCocoa │ ├── Info.plist │ ├── RxCocoa-Info.plist │ ├── RxCocoa-dummy.m │ ├── RxCocoa-prefix.pch │ ├── RxCocoa-umbrella.h │ ├── RxCocoa.modulemap │ └── RxCocoa.xcconfig │ ├── RxSwift │ ├── Info.plist │ ├── RxSwift-Info.plist │ ├── RxSwift-dummy.m │ ├── RxSwift-prefix.pch │ ├── RxSwift-umbrella.h │ ├── RxSwift.modulemap │ └── RxSwift.xcconfig │ ├── SipHash │ ├── Info.plist │ ├── SipHash-Info.plist │ ├── SipHash-dummy.m │ ├── SipHash-prefix.pch │ ├── SipHash-umbrella.h │ ├── SipHash.modulemap │ └── SipHash.xcconfig │ ├── SwiftFormat │ └── SwiftFormat.xcconfig │ └── SwiftLint │ └── SwiftLint.xcconfig ├── README.md └── Source ├── DB ├── CoreDataDiskStorage.swift ├── CoreDataMemoryStorage.swift └── Database.swift ├── Decoders ├── DatabaseDecoder.swift └── DatabaseKeyedDecodingContainer.swift ├── Errors ├── DatabaseDecoderError.swift └── DatabaseError.swift ├── Extensions ├── MirrorChild+Databases.swift ├── NSManagedObject+Database.swift └── NSManagedObjectContext+Database.swift ├── Models ├── DatabaseOperation.swift ├── DatabaseUpdate.swift ├── DiskDatabaseOptions.swift └── MemoryDatabaseOptions.swift ├── Module ├── Databases.h └── Info.plist ├── Protocols ├── DBDataTypeEquality.swift ├── DBDataTypeWrapper.swift ├── DatabaseModelObject.swift └── DatabaseStorage.swift └── Wrappers └── BigIntDBWrapper.swift /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CoinbaseWallet/CBDatabase/8c0d10e2f749fdd4076ceed792af46c1f21a85cf/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Built application files 2 | android/**/*.apk 3 | android/**/*.ap_ 4 | 5 | # Files for the Dalvik VM 6 | android/**/*.dex 7 | 8 | # Java class files 9 | android/**/*.class 10 | android/**/bcprov*.jar 11 | 12 | # Generated files 13 | android/**/bin/ 14 | android/**/gen/ 15 | android/**/jniLibs/ 16 | .DS_Store 17 | 18 | # Gradle files 19 | android/**/.gradle/ 20 | android/**/build/ 21 | android/**/captures 22 | 23 | # Local configuration file (sdk path, etc) 24 | android/**/local.properties 25 | 26 | # Log Files 27 | android/**/*.log 28 | 29 | # IDE Files 30 | .idea/ 31 | *.iml 32 | android/**/.project 33 | 34 | ## Build generated 35 | build/ 36 | DerivedData/ 37 | 38 | ## CircleCI 39 | vendor/ 40 | .bundle/ 41 | 42 | ## Various settings 43 | *.pbxuser 44 | !default.pbxuser 45 | *.mode1v3 46 | !default.mode1v3 47 | *.mode2v3 48 | !default.mode2v3 49 | *.perspectivev3 50 | !default.perspectivev3 51 | xcuserdata/ 52 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "android/libraries/core"] 2 | path = android/libraries/core 3 | url = git@github.com:CoinbaseWallet/CBCore.git 4 | -------------------------------------------------------------------------------- /CBDatabase.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'CBDatabase' 3 | s.version = '0.1.0' 4 | s.summary = 'A simple wrapper around CoreData' 5 | s.description = 'A simple wrapper around CoreData. Developed by Coinbase Wallet team.' 6 | 7 | s.homepage = 'https://github.com/CoinbaseWallet/Databases' 8 | s.license = { :type => "AGPL-3.0-only", :file => 'LICENSE' } 9 | s.author = { 'Coinbase' => 'developer@toshi.org' } 10 | s.source = { :git => 'https://github.com/CoinbaseWallet/Databases.git', :tag => s.version.to_s } 11 | s.social_media_url = 'https://twitter.com/coinbase' 12 | 13 | s.ios.deployment_target = '10.0' 14 | s.swift_version = '4.2' 15 | s.source_files = 'ios/Source/**/*.swift' 16 | 17 | s.dependency 'RxCocoa', '>= 4.4.0', '< 5.0.0' 18 | s.dependency 'RxSwift', '>= 4.4.0', '< 5.0.0' 19 | s.dependency 'BigInt', '>= 3.1.0', '< 4.0.0' 20 | end 21 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @hishbase @petejkim @andrewgold @johnnycoinbase @alexshoykhet 2 | 3 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | format: 2 | ios/Pods/SwiftFormat/CommandLineTool/swiftformat ios/Source --exclude Toshi/Generated/Code --header "Copyright (c) 2017-{year} Coinbase Inc. See LICENSE" 3 | gradle ktlintFormat -p android 4 | 5 | lint: 6 | ios/Pods/SwiftLint/swiftlint --path ios 7 | android/gradlew ktlint -p android 8 | 9 | deps: 10 | rm -rf android/libraries; git submodule update --init --force --recursive 11 | git submodule foreach 'git checkout $$sha1 || :' 12 | -------------------------------------------------------------------------------- /android/.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{kt,kts}] 2 | insert_final_newline=true -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | apply from: rootProject.file('gradle/dependencies.gradle') 5 | 6 | repositories { 7 | google() 8 | jcenter() 9 | } 10 | 11 | dependencies { 12 | classpath "com.android.tools.build:gradle:${versions.gradle}" 13 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}" 14 | // NOTE: Do not place your application dependencies here; they belong 15 | // in the individual module build.gradle files 16 | } 17 | } 18 | 19 | allprojects { 20 | repositories { 21 | google() 22 | jcenter() 23 | 24 | } 25 | } 26 | 27 | task clean(type: Delete) { 28 | delete rootProject.buildDir 29 | } 30 | -------------------------------------------------------------------------------- /android/databases/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/databases/src/androidTest/java/com/coinbase/wallet/libraries/databases/MockDatabaseProvider.kt: -------------------------------------------------------------------------------- 1 | package com.coinbase.wallet.libraries.databases 2 | 3 | import androidx.room.Dao 4 | import androidx.room.Database 5 | import com.coinbase.wallet.libraries.databases.db.RoomDatabaseProvider 6 | import com.coinbase.wallet.libraries.databases.interfaces.DatabaseDaoInterface 7 | 8 | @Database(entities = [MockUser::class, TestCurrency::class], version = 1) 9 | abstract class MockDatabaseProvider : RoomDatabaseProvider() { 10 | // List of DAO for given model 11 | 12 | abstract fun getMockUserDao(): MockUserDatabaseDaoInterface 13 | abstract fun getTestCurrencyDao(): TestCurrencyDatabaseDaoInterface 14 | 15 | // Maps a model -> DAO interface 16 | 17 | override fun modelMappings(): Map, DatabaseDaoInterface<*>> { 18 | return mapOf( 19 | MockUser::class.java to getMockUserDao(), 20 | TestCurrency::class.java to getTestCurrencyDao() 21 | ) 22 | } 23 | 24 | // Default DAO declaration 25 | 26 | @Dao 27 | interface TestCurrencyDatabaseDaoInterface : DatabaseDaoInterface 28 | 29 | @Dao 30 | interface MockUserDatabaseDaoInterface : DatabaseDaoInterface 31 | } 32 | -------------------------------------------------------------------------------- /android/databases/src/androidTest/java/com/coinbase/wallet/libraries/databases/MockUser.kt: -------------------------------------------------------------------------------- 1 | package com.coinbase.wallet.libraries.databases 2 | 3 | import androidx.room.Entity 4 | import androidx.room.PrimaryKey 5 | import com.coinbase.wallet.libraries.databases.interfaces.DatabaseModelObject 6 | 7 | @Entity(tableName = "MockUsers") 8 | data class MockUser( 9 | @PrimaryKey override var id: String, 10 | var username: String 11 | ) : DatabaseModelObject 12 | 13 | @Entity(tableName = "TestCurrency") 14 | data class TestCurrency( 15 | var code: String, 16 | var name: String 17 | ) : DatabaseModelObject { 18 | @PrimaryKey 19 | override var id: String = code 20 | } 21 | -------------------------------------------------------------------------------- /android/databases/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /android/databases/src/main/java/com/coinbase/wallet/libraries/databases/converters/BigDecimalConverter.kt: -------------------------------------------------------------------------------- 1 | package com.coinbase.wallet.libraries.databases.converters 2 | 3 | import androidx.room.TypeConverter 4 | import java.math.BigDecimal 5 | 6 | /** 7 | * Database converter for BigDecimal 8 | */ 9 | class BigDecimalConverter { 10 | @TypeConverter 11 | fun fromString(value: String?): BigDecimal? { 12 | return if (value.isNullOrEmpty()) null else BigDecimal(value) 13 | } 14 | 15 | @TypeConverter 16 | fun toString(value: BigDecimal?): String? { 17 | return value?.toString() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /android/databases/src/main/java/com/coinbase/wallet/libraries/databases/converters/BigIntegerConverter.kt: -------------------------------------------------------------------------------- 1 | package com.coinbase.wallet.libraries.databases.converters 2 | 3 | import androidx.room.TypeConverter 4 | import java.math.BigInteger 5 | 6 | /** 7 | * Database converter for BigInteger 8 | */ 9 | class BigIntegerConverter { 10 | @TypeConverter 11 | fun fromString(value: String?): BigInteger? { 12 | return if (value.isNullOrEmpty()) null else BigInteger(value) 13 | } 14 | 15 | @TypeConverter 16 | fun toString(value: BigInteger?): String? { 17 | return value?.toString() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /android/databases/src/main/java/com/coinbase/wallet/libraries/databases/converters/DateConverter.kt: -------------------------------------------------------------------------------- 1 | package com.coinbase.wallet.libraries.databases.converters 2 | 3 | import androidx.room.TypeConverter 4 | import java.util.Date 5 | 6 | /** 7 | * Converts [Date] instances to and from [Long] for disk persistence. 8 | */ 9 | class DateConverter { 10 | 11 | @TypeConverter 12 | fun toDate(timestamp: Long?): Date? { 13 | return if (timestamp == null) null else Date(timestamp) 14 | } 15 | 16 | @TypeConverter 17 | fun toTimestamp(date: Date?): Long? { 18 | return date?.time 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /android/databases/src/main/java/com/coinbase/wallet/libraries/databases/converters/UrlConverter.kt: -------------------------------------------------------------------------------- 1 | package com.coinbase.wallet.libraries.databases.converters 2 | 3 | import androidx.room.TypeConverter 4 | import java.net.URL 5 | 6 | /** 7 | * Database converter for URL 8 | */ 9 | class UrlConverter { 10 | @TypeConverter 11 | fun fromString(value: String?): URL? { 12 | return if (value.isNullOrEmpty()) null else URL(value) 13 | } 14 | 15 | @TypeConverter 16 | fun toString(value: URL?): String? { 17 | return value?.toString() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /android/databases/src/main/java/com/coinbase/wallet/libraries/databases/db/RoomDatabaseProvider.kt: -------------------------------------------------------------------------------- 1 | package com.coinbase.wallet.libraries.databases.db 2 | 3 | import androidx.room.RoomDatabase 4 | import com.coinbase.wallet.libraries.databases.interfaces.DatabaseDaoInterface 5 | 6 | /** 7 | * Provider used to configure and create a room database. 8 | */ 9 | abstract class RoomDatabaseProvider : RoomDatabase() { 10 | /** 11 | * Maps models to default DAO interfaces 12 | */ 13 | abstract fun modelMappings(): Map, DatabaseDaoInterface<*>> 14 | } 15 | -------------------------------------------------------------------------------- /android/databases/src/main/java/com/coinbase/wallet/libraries/databases/exceptions/DatabaseException.kt: -------------------------------------------------------------------------------- 1 | package com.coinbase.wallet.libraries.databases.exceptions 2 | 3 | import java.lang.Exception 4 | 5 | /** 6 | * Represents exceptions thrown by module 7 | */ 8 | sealed class DatabaseException(msg: String) : Exception(msg) { 9 | /** 10 | * Thrown if unable to find DAO for provided model 11 | */ 12 | class MissingDao(clazz: Class<*>) : DatabaseException("Unable to find DAO for $clazz") 13 | 14 | /** 15 | * Error thrown whenever an add/update/query operation is fired when DB is in `destroyed` state 16 | */ 17 | object DatabaseDestroyed : DatabaseException("Database was destroyed") 18 | 19 | /** 20 | * Error thrown whenever fetchOne returns more than one row 21 | */ 22 | object MultipleRowsFetched : DatabaseException("Mutliple rows fetched") 23 | } 24 | -------------------------------------------------------------------------------- /android/databases/src/main/java/com/coinbase/wallet/libraries/databases/interfaces/DatabaseModelObject.kt: -------------------------------------------------------------------------------- 1 | package com.coinbase.wallet.libraries.databases.interfaces 2 | 3 | /** 4 | * Represents a DB record 5 | */ 6 | interface DatabaseModelObject { 7 | /** 8 | * Unique string that represents this object 9 | */ 10 | val id: String 11 | } 12 | -------------------------------------------------------------------------------- /android/databases/src/main/java/com/coinbase/wallet/libraries/databases/interfaces/StorageOptions.kt: -------------------------------------------------------------------------------- 1 | package com.coinbase.wallet.libraries.databases.interfaces 2 | 3 | /** 4 | * Implementers of this interface hold options (i.e. configurations) for the given implementer storage type 5 | */ 6 | internal interface StorageOptions 7 | -------------------------------------------------------------------------------- /android/databases/src/main/java/com/coinbase/wallet/libraries/databases/model/DatabaseOperation.kt: -------------------------------------------------------------------------------- 1 | package com.coinbase.wallet.libraries.databases.model 2 | 3 | /** 4 | * Represents a database operation 5 | */ 6 | @PublishedApi 7 | internal enum class DatabaseOperation { 8 | /** 9 | * Read only operation 10 | */ 11 | READ, 12 | 13 | /** 14 | * Write only operation 15 | */ 16 | WRITE 17 | } 18 | -------------------------------------------------------------------------------- /android/databases/src/main/java/com/coinbase/wallet/libraries/databases/model/DiskOptions.kt: -------------------------------------------------------------------------------- 1 | package com.coinbase.wallet.libraries.databases.model 2 | 3 | import android.content.Context 4 | import androidx.room.migration.Migration 5 | import com.coinbase.wallet.libraries.databases.interfaces.StorageOptions 6 | 7 | /** 8 | * Options for Room sqlite database 9 | * 10 | * @property context Android context used to create room db 11 | * @property providerClazz Room-specific database provider 12 | * @property dbName Name of the database 13 | * @property migrations list of migrations to include 14 | * @property destructiveFallback If true and a migration is missing, the database will be whipped 15 | */ 16 | data class DiskOptions( 17 | val context: Context, 18 | val providerClazz: Class, 19 | val dbName: String, 20 | val migrations: List = emptyList(), 21 | val destructiveFallback: Boolean = false 22 | ) : StorageOptions 23 | -------------------------------------------------------------------------------- /android/databases/src/main/java/com/coinbase/wallet/libraries/databases/model/MemoryOptions.kt: -------------------------------------------------------------------------------- 1 | package com.coinbase.wallet.libraries.databases.model 2 | 3 | import android.content.Context 4 | import com.coinbase.wallet.libraries.databases.interfaces.StorageOptions 5 | 6 | /** 7 | * Options for Room memory db 8 | * 9 | * @property context Android context used to create room db 10 | * @property providerClazz Room-specific database provider 11 | */ 12 | data class MemoryOptions(val context: Context, val providerClazz: Class) : StorageOptions 13 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # Kotlin code style for this project: "official" or "obsolete": 15 | kotlin.code.style=official 16 | -------------------------------------------------------------------------------- /android/gradle/dependencies.gradle: -------------------------------------------------------------------------------- 1 | ext { 2 | versions = [ 3 | gradle : '3.4.2', 4 | kotlin : "1.3.31", 5 | rxJava : "2.2.9", 6 | rxKotlin: "2.3.0", 7 | room : "2.1.0-alpha04", 8 | ] 9 | 10 | testVersions = [ 11 | junit4 : "4.12", 12 | androidXTestCore : "1.1.0", 13 | androidXTestRunner : "1.1.0", 14 | androidXTestExtJUnit: "1.0.0", 15 | ] 16 | 17 | otherVersions = [ 18 | ktlint: "0.32.0", 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CoinbaseWallet/CBDatabase/8c0d10e2f749fdd4076ceed792af46c1f21a85cf/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue May 28 22:48:23 PDT 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip 7 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':libraries:core', 2 | ':databases' 3 | 4 | project(':libraries:core').projectDir = new File('libraries/core/android/core') 5 | -------------------------------------------------------------------------------- /ios/CBDatabase.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/CBDatabase.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/CBDatabase.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/CBDatabase.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/CBDatabase.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildSystemType 6 | Original 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/CBDatabaseTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /ios/CBDatabaseTests/ProgressiveMigrationDB.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | v4db.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/CBDatabaseTests/ProgressiveMigrationDB.xcdatamodeld/ProgressiveMigrationDB.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/CBDatabaseTests/ProgressiveMigrationDB.xcdatamodeld/v2db.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ios/CBDatabaseTests/ProgressiveMigrationDB.xcdatamodeld/v3db.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ios/CBDatabaseTests/ProgressiveMigrationDB.xcdatamodeld/v4db.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ios/CBDatabaseTests/TestDatabase.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | v2.0.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/CBDatabaseTests/progressivedb_v1/progressivedb.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CoinbaseWallet/CBDatabase/8c0d10e2f749fdd4076ceed792af46c1f21a85cf/ios/CBDatabaseTests/progressivedb_v1/progressivedb.sqlite -------------------------------------------------------------------------------- /ios/CBDatabaseTests/progressivedb_v1/progressivedb.sqlite-shm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CoinbaseWallet/CBDatabase/8c0d10e2f749fdd4076ceed792af46c1f21a85cf/ios/CBDatabaseTests/progressivedb_v1/progressivedb.sqlite-shm -------------------------------------------------------------------------------- /ios/CBDatabaseTests/progressivedb_v1/progressivedb.sqlite-wal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CoinbaseWallet/CBDatabase/8c0d10e2f749fdd4076ceed792af46c1f21a85cf/ios/CBDatabaseTests/progressivedb_v1/progressivedb.sqlite-wal -------------------------------------------------------------------------------- /ios/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 Coinbase, Inc. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /ios/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '10.0' 2 | 3 | target 'CBDatabase' do 4 | use_frameworks! 5 | 6 | pod 'RxSwift', '~> 4.4.0' 7 | pod 'RxCocoa', '~> 4.4.0' 8 | pod 'BigInt', '~> 3.1' 9 | pod 'SwiftLint' 10 | pod 'SwiftFormat/CLI', '0.37.2' 11 | 12 | target 'CBDatabaseTests' do 13 | inherit! :search_paths 14 | pod 'RxBlocking', '~> 4.3.1' 15 | end 16 | 17 | end 18 | -------------------------------------------------------------------------------- /ios/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - BigInt (3.1.0): 3 | - SipHash (~> 1.2) 4 | - RxAtomic (4.4.0) 5 | - RxBlocking (4.3.1): 6 | - RxSwift (~> 4.0) 7 | - RxCocoa (4.4.0): 8 | - RxSwift (~> 4.0) 9 | - RxSwift (4.4.0): 10 | - RxAtomic (~> 4.4) 11 | - SipHash (1.2.2) 12 | - SwiftFormat/CLI (0.37.2) 13 | - SwiftLint (0.33.0) 14 | 15 | DEPENDENCIES: 16 | - BigInt (~> 3.1) 17 | - RxBlocking (~> 4.3.1) 18 | - RxCocoa (~> 4.4.0) 19 | - RxSwift (~> 4.4.0) 20 | - SwiftFormat/CLI (= 0.37.2) 21 | - SwiftLint 22 | 23 | SPEC REPOS: 24 | https://github.com/CocoaPods/Specs.git: 25 | - BigInt 26 | - RxAtomic 27 | - RxBlocking 28 | - RxCocoa 29 | - RxSwift 30 | - SipHash 31 | - SwiftFormat 32 | - SwiftLint 33 | 34 | SPEC CHECKSUMS: 35 | BigInt: 76b5dfdfa3e2e478d4ffdf161aeede5502e2742f 36 | RxAtomic: eacf60db868c96bfd63320e28619fe29c179656f 37 | RxBlocking: 64c051285261ca2339481e91b5f70eb06b03660a 38 | RxCocoa: df63ebf7b9a70d6b4eeea407ed5dd4efc8979749 39 | RxSwift: 5976ecd04fc2fefd648827c23de5e11157faa973 40 | SipHash: fad90a4683e420c52ef28063063dbbce248ea6d4 41 | SwiftFormat: abbfb26dde4c6d683923cde153c88e10da9d7881 42 | SwiftLint: fed9c66336e41fc74dc48a73678380718f0c8b0e 43 | 44 | PODFILE CHECKSUM: 3d24642c1886227a2082c9f598dd57f9ae0d7942 45 | 46 | COCOAPODS: 1.9.1 47 | -------------------------------------------------------------------------------- /ios/Pods/BigInt/LICENSE.md: -------------------------------------------------------------------------------- 1 | 2 | Copyright (c) 2016-2017 Károly Lőrentey 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all 12 | copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 20 | SOFTWARE. 21 | -------------------------------------------------------------------------------- /ios/Pods/BigInt/sources/Hashable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Hashable.swift 3 | // BigInt 4 | // 5 | // Created by Károly Lőrentey on 2016-01-03. 6 | // Copyright © 2016-2017 Károly Lőrentey. 7 | // 8 | 9 | import SipHash 10 | 11 | extension BigUInt: SipHashable { 12 | //MARK: Hashing 13 | 14 | /// Append this `BigUInt` to the specified hasher. 15 | public func appendHashes(to hasher: inout SipHasher) { 16 | for word in self.words { 17 | hasher.append(word) 18 | } 19 | } 20 | } 21 | 22 | extension BigInt: SipHashable { 23 | /// Append this `BigInt` to the specified hasher. 24 | public func appendHashes(to hasher: inout SipHasher) { 25 | hasher.append(sign) 26 | hasher.append(magnitude) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /ios/Pods/BigInt/sources/Square Root.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Square Root.swift 3 | // BigInt 4 | // 5 | // Created by Károly Lőrentey on 2016-01-03. 6 | // Copyright © 2016-2017 Károly Lőrentey. 7 | // 8 | 9 | //MARK: Square Root 10 | 11 | extension BigUInt { 12 | /// Returns the integer square root of a big integer; i.e., the largest integer whose square isn't greater than `value`. 13 | /// 14 | /// - Returns: floor(sqrt(self)) 15 | public func squareRoot() -> BigUInt { 16 | // This implementation uses Newton's method. 17 | guard !self.isZero else { return BigUInt() } 18 | var x = BigUInt(1) << ((self.bitWidth + 1) / 2) 19 | var y: BigUInt = 0 20 | while true { 21 | y.load(self) 22 | y /= x 23 | y += x 24 | y >>= 1 25 | if x == y || x == y - 1 { break } 26 | x = y 27 | } 28 | return x 29 | } 30 | } 31 | 32 | extension BigInt { 33 | /// Returns the integer square root of a big integer; i.e., the largest integer whose square isn't greater than `value`. 34 | /// 35 | /// - Requires: self >= 0 36 | /// - Returns: floor(sqrt(self)) 37 | public func squareRoot() -> BigInt { 38 | precondition(self.sign == .plus) 39 | return BigInt(sign: .plus, magnitude: self.magnitude.squareRoot()) 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /ios/Pods/BigInt/sources/Strideable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Strideable.swift 3 | // BigInt 4 | // 5 | // Created by Károly Lőrentey on 2017-08-11. 6 | // Copyright © 2016-2017 Károly Lőrentey. 7 | // 8 | 9 | extension BigUInt: Strideable { 10 | /// A type that can represent the distance between two values ofa `BigUInt`. 11 | public typealias Stride = BigInt 12 | 13 | /// Adds `n` to `self` and returns the result. Traps if the result would be less than zero. 14 | public func advanced(by n: BigInt) -> BigUInt { 15 | return n.sign == .minus ? self - n.magnitude : self + n.magnitude 16 | } 17 | 18 | /// Returns the (potentially negative) difference between `self` and `other` as a `BigInt`. Never traps. 19 | public func distance(to other: BigUInt) -> BigInt { 20 | return BigInt(other) - BigInt(self) 21 | } 22 | } 23 | 24 | extension BigInt: Strideable { 25 | public typealias Stride = BigInt 26 | 27 | /// Returns `self + n`. 28 | public func advanced(by n: Stride) -> BigInt { 29 | return self + n 30 | } 31 | 32 | /// Returns `other - self`. 33 | public func distance(to other: BigInt) -> Stride { 34 | return other - self 35 | } 36 | } 37 | 38 | 39 | -------------------------------------------------------------------------------- /ios/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - BigInt (3.1.0): 3 | - SipHash (~> 1.2) 4 | - RxAtomic (4.4.0) 5 | - RxBlocking (4.3.1): 6 | - RxSwift (~> 4.0) 7 | - RxCocoa (4.4.0): 8 | - RxSwift (~> 4.0) 9 | - RxSwift (4.4.0): 10 | - RxAtomic (~> 4.4) 11 | - SipHash (1.2.2) 12 | - SwiftFormat/CLI (0.37.2) 13 | - SwiftLint (0.33.0) 14 | 15 | DEPENDENCIES: 16 | - BigInt (~> 3.1) 17 | - RxBlocking (~> 4.3.1) 18 | - RxCocoa (~> 4.4.0) 19 | - RxSwift (~> 4.4.0) 20 | - SwiftFormat/CLI (= 0.37.2) 21 | - SwiftLint 22 | 23 | SPEC REPOS: 24 | https://github.com/CocoaPods/Specs.git: 25 | - BigInt 26 | - RxAtomic 27 | - RxBlocking 28 | - RxCocoa 29 | - RxSwift 30 | - SipHash 31 | - SwiftFormat 32 | - SwiftLint 33 | 34 | SPEC CHECKSUMS: 35 | BigInt: 76b5dfdfa3e2e478d4ffdf161aeede5502e2742f 36 | RxAtomic: eacf60db868c96bfd63320e28619fe29c179656f 37 | RxBlocking: 64c051285261ca2339481e91b5f70eb06b03660a 38 | RxCocoa: df63ebf7b9a70d6b4eeea407ed5dd4efc8979749 39 | RxSwift: 5976ecd04fc2fefd648827c23de5e11157faa973 40 | SipHash: fad90a4683e420c52ef28063063dbbce248ea6d4 41 | SwiftFormat: abbfb26dde4c6d683923cde153c88e10da9d7881 42 | SwiftLint: fed9c66336e41fc74dc48a73678380718f0c8b0e 43 | 44 | PODFILE CHECKSUM: 3d24642c1886227a2082c9f598dd57f9ae0d7942 45 | 46 | COCOAPODS: 1.9.1 47 | -------------------------------------------------------------------------------- /ios/Pods/RxAtomic/LICENSE.md: -------------------------------------------------------------------------------- 1 | **The MIT License** 2 | **Copyright © 2015 Krunoslav Zaher** 3 | **All rights reserved.** 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /ios/Pods/RxAtomic/RxAtomic/RxAtomic.c: -------------------------------------------------------------------------------- 1 | // 2 | // RxAtomic.c 3 | // RxAtomic 4 | // 5 | // Created by Krunoslav Zaher on 10/28/18. 6 | // Copyright © 2018 Krunoslav Zaher. All rights reserved. 7 | // 8 | -------------------------------------------------------------------------------- /ios/Pods/RxBlocking/LICENSE.md: -------------------------------------------------------------------------------- 1 | **The MIT License** 2 | **Copyright © 2015 Krunoslav Zaher** 3 | **All rights reserved.** 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /ios/Pods/RxBlocking/Platform/DataStructures/InfiniteSequence.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InfiniteSequence.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 6/13/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Sequence that repeats `repeatedValue` infinite number of times. 10 | struct InfiniteSequence : Sequence { 11 | typealias Element = E 12 | typealias Iterator = AnyIterator 13 | 14 | private let _repeatedValue: E 15 | 16 | init(repeatedValue: E) { 17 | _repeatedValue = repeatedValue 18 | } 19 | 20 | func makeIterator() -> Iterator { 21 | let repeatedValue = _repeatedValue 22 | return AnyIterator { 23 | return repeatedValue 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /ios/Pods/RxBlocking/Platform/DispatchQueue+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DispatchQueue+Extensions.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 10/22/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Dispatch 10 | 11 | extension DispatchQueue { 12 | private static var token: DispatchSpecificKey<()> = { 13 | let key = DispatchSpecificKey<()>() 14 | DispatchQueue.main.setSpecific(key: key, value: ()) 15 | return key 16 | }() 17 | 18 | static var isMain: Bool { 19 | return DispatchQueue.getSpecific(key: token) != nil 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ios/Pods/RxBlocking/Platform/RecursiveLock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RecursiveLock.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/18/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import class Foundation.NSRecursiveLock 10 | 11 | #if TRACE_RESOURCES 12 | class RecursiveLock: NSRecursiveLock { 13 | override init() { 14 | _ = Resources.incrementTotal() 15 | super.init() 16 | } 17 | 18 | override func lock() { 19 | super.lock() 20 | _ = Resources.incrementTotal() 21 | } 22 | 23 | override func unlock() { 24 | super.unlock() 25 | _ = Resources.decrementTotal() 26 | } 27 | 28 | deinit { 29 | _ = Resources.decrementTotal() 30 | } 31 | } 32 | #else 33 | typealias RecursiveLock = NSRecursiveLock 34 | #endif 35 | -------------------------------------------------------------------------------- /ios/Pods/RxBlocking/RxBlocking/BlockingObservable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BlockingObservable.swift 3 | // RxBlocking 4 | // 5 | // Created by Krunoslav Zaher on 10/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | /** 12 | `BlockingObservable` is a variety of `Observable` that provides blocking operators. 13 | 14 | It can be useful for testing and demo purposes, but is generally inappropriate for production applications. 15 | 16 | If you think you need to use a `BlockingObservable` this is usually a sign that you should rethink your 17 | design. 18 | */ 19 | public struct BlockingObservable { 20 | let timeout: RxTimeInterval? 21 | let source: Observable 22 | } 23 | -------------------------------------------------------------------------------- /ios/Pods/RxBlocking/RxBlocking/ObservableConvertibleType+Blocking.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObservableConvertibleType+Blocking.swift 3 | // RxBlocking 4 | // 5 | // Created by Krunoslav Zaher on 7/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | extension ObservableConvertibleType { 12 | /// Converts an Observable into a `BlockingObservable` (an Observable with blocking operators). 13 | /// 14 | /// - parameter timeout: Maximal time interval BlockingObservable can block without throwing `RxError.timeout`. 15 | /// - returns: `BlockingObservable` version of `self` 16 | public func toBlocking(timeout: RxTimeInterval? = nil) -> BlockingObservable { 17 | return BlockingObservable(timeout: timeout, source: self.asObservable()) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ios/Pods/RxBlocking/RxBlocking/Resources.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Resources.swift 3 | // RxBlocking 4 | // 5 | // Created by Krunoslav Zaher on 1/21/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | #if TRACE_RESOURCES 12 | struct Resources { 13 | static func incrementTotal() -> Int32 { 14 | return RxSwift.Resources.incrementTotal() 15 | } 16 | 17 | static func decrementTotal() -> Int32 { 18 | return RxSwift.Resources.decrementTotal() 19 | } 20 | 21 | static var numberOfSerialDispatchQueueObservables: Int32 { 22 | return RxSwift.Resources.numberOfSerialDispatchQueueObservables 23 | } 24 | 25 | static var numberOfMapOperators: Int32 { 26 | return RxSwift.Resources.numberOfMapOperators 27 | } 28 | 29 | static var total: Int32 { 30 | return RxSwift.Resources.total 31 | } 32 | } 33 | #endif 34 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/LICENSE.md: -------------------------------------------------------------------------------- 1 | **The MIT License** 2 | **Copyright © 2015 Krunoslav Zaher** 3 | **All rights reserved.** 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/Platform/DataStructures/InfiniteSequence.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InfiniteSequence.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 6/13/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Sequence that repeats `repeatedValue` infinite number of times. 10 | struct InfiniteSequence : Sequence { 11 | typealias Element = E 12 | typealias Iterator = AnyIterator 13 | 14 | private let _repeatedValue: E 15 | 16 | init(repeatedValue: E) { 17 | _repeatedValue = repeatedValue 18 | } 19 | 20 | func makeIterator() -> Iterator { 21 | let repeatedValue = _repeatedValue 22 | return AnyIterator { 23 | return repeatedValue 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/Platform/DispatchQueue+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DispatchQueue+Extensions.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 10/22/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Dispatch 10 | 11 | extension DispatchQueue { 12 | private static var token: DispatchSpecificKey<()> = { 13 | let key = DispatchSpecificKey<()>() 14 | DispatchQueue.main.setSpecific(key: key, value: ()) 15 | return key 16 | }() 17 | 18 | static var isMain: Bool { 19 | return DispatchQueue.getSpecific(key: token) != nil 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/Platform/Platform.Darwin.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Darwin.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS) 10 | 11 | import Darwin 12 | import class Foundation.Thread 13 | import protocol Foundation.NSCopying 14 | 15 | extension Thread { 16 | static func setThreadLocalStorageValue(_ value: T?, forKey key: NSCopying) { 17 | let currentThread = Thread.current 18 | let threadDictionary = currentThread.threadDictionary 19 | 20 | if let newValue = value { 21 | threadDictionary[key] = newValue 22 | } 23 | else { 24 | threadDictionary[key] = nil 25 | } 26 | } 27 | 28 | static func getThreadLocalStorageValueForKey(_ key: NSCopying) -> T? { 29 | let currentThread = Thread.current 30 | let threadDictionary = currentThread.threadDictionary 31 | 32 | return threadDictionary[key] as? T 33 | } 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/Platform/Platform.Linux.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Linux.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(Linux) 10 | 11 | import class Foundation.Thread 12 | 13 | extension Thread { 14 | 15 | static func setThreadLocalStorageValue(_ value: T?, forKey key: String) { 16 | let currentThread = Thread.current 17 | var threadDictionary = currentThread.threadDictionary 18 | 19 | if let newValue = value { 20 | threadDictionary[key] = newValue 21 | } 22 | else { 23 | threadDictionary[key] = nil 24 | } 25 | 26 | currentThread.threadDictionary = threadDictionary 27 | } 28 | 29 | static func getThreadLocalStorageValueForKey(_ key: String) -> T? { 30 | let currentThread = Thread.current 31 | let threadDictionary = currentThread.threadDictionary 32 | 33 | return threadDictionary[key] as? T 34 | } 35 | } 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/Platform/RecursiveLock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RecursiveLock.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/18/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import class Foundation.NSRecursiveLock 10 | 11 | #if TRACE_RESOURCES 12 | class RecursiveLock: NSRecursiveLock { 13 | override init() { 14 | _ = Resources.incrementTotal() 15 | super.init() 16 | } 17 | 18 | override func lock() { 19 | super.lock() 20 | _ = Resources.incrementTotal() 21 | } 22 | 23 | override func unlock() { 24 | super.unlock() 25 | _ = Resources.decrementTotal() 26 | } 27 | 28 | deinit { 29 | _ = Resources.decrementTotal() 30 | } 31 | } 32 | #else 33 | typealias RecursiveLock = NSRecursiveLock 34 | #endif 35 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Common/KeyPathBinder.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KeyPathBinder.swift 3 | // RxCocoa 4 | // 5 | // Created by Ryo Aoyama on 2/7/18. 6 | // Copyright © 2018 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if swift(>=3.2) 10 | import RxSwift 11 | 12 | extension Reactive where Base: AnyObject { 13 | 14 | /// Bindable sink for arbitrary property using the given key path. 15 | /// Binding runs on the MainScheduler. 16 | /// 17 | /// - parameter keyPath: Key path to write to the property. 18 | public subscript(keyPath: ReferenceWritableKeyPath) -> Binder { 19 | return Binder(self.base) { base, value in 20 | base[keyPath: keyPath] = value 21 | } 22 | } 23 | 24 | /// Bindable sink for arbitrary property using the given key path. 25 | /// Binding runs on the specified scheduler. 26 | /// 27 | /// - parameter keyPath: Key path to write to the property. 28 | /// - parameter scheduler: Scheduler to run bindings on. 29 | public subscript(keyPath: ReferenceWritableKeyPath, on scheduler: ImmediateSchedulerType) -> Binder { 30 | return Binder(self.base, scheduler: scheduler) { base, value in 31 | base[keyPath: keyPath] = value 32 | } 33 | } 34 | 35 | } 36 | #endif 37 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Common/NSLayoutConstraint+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSLayoutConstraint+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if !os(Linux) 10 | 11 | #if os(macOS) 12 | import Cocoa 13 | #else 14 | import UIKit 15 | #endif 16 | 17 | import RxSwift 18 | 19 | #if os(iOS) || os(macOS) || os(tvOS) 20 | extension Reactive where Base: NSLayoutConstraint { 21 | /// Bindable sink for `constant` property. 22 | public var constant: Binder { 23 | return Binder(self.base) { constraint, constant in 24 | constraint.constant = constant 25 | } 26 | } 27 | 28 | /// Bindable sink for `active` property. 29 | @available(iOS 8, OSX 10.10, *) 30 | public var active: Binder { 31 | return Binder(self.base) { constraint, value in 32 | constraint.isActive = value 33 | } 34 | } 35 | } 36 | 37 | #endif 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Common/RxTarget.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTarget.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import class Foundation.NSObject 10 | 11 | import RxSwift 12 | 13 | class RxTarget : NSObject 14 | , Disposable { 15 | 16 | private var retainSelf: RxTarget? 17 | 18 | override init() { 19 | super.init() 20 | self.retainSelf = self 21 | 22 | #if TRACE_RESOURCES 23 | _ = Resources.incrementTotal() 24 | #endif 25 | 26 | #if DEBUG 27 | MainScheduler.ensureExecutingOnScheduler() 28 | #endif 29 | } 30 | 31 | func dispose() { 32 | #if DEBUG 33 | MainScheduler.ensureExecutingOnScheduler() 34 | #endif 35 | self.retainSelf = nil 36 | } 37 | 38 | #if TRACE_RESOURCES 39 | deinit { 40 | _ = Resources.decrementTotal() 41 | } 42 | #endif 43 | } 44 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SectionedViewDataSourceType.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 1/10/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import struct Foundation.IndexPath 10 | 11 | /// Data source with access to underlying sectioned model. 12 | public protocol SectionedViewDataSourceType { 13 | /// Returns model at index path. 14 | /// 15 | /// In case data source doesn't contain any sections when this method is being called, `RxCocoaError.ItemsNotYetBound(object: self)` is thrown. 16 | 17 | /// - parameter indexPath: Model index path 18 | /// - returns: Model at index path. 19 | func model(at indexPath: IndexPath) throws -> Any 20 | } 21 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KVORepresentable.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 11/14/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Type that is KVO representable (KVO mechanism can be used to observe it). 10 | public protocol KVORepresentable { 11 | /// Associated KVO type. 12 | associatedtype KVOType 13 | 14 | /// Constructs `Self` using KVO value. 15 | init?(KVOValue: KVOType) 16 | } 17 | 18 | extension KVORepresentable { 19 | /// Initializes `KVORepresentable` with optional value. 20 | init?(KVOValue: KVOType?) { 21 | guard let KVOValue = KVOValue else { 22 | return nil 23 | } 24 | 25 | self.init(KVOValue: KVOValue) 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Foundation/Logging.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Logging.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 4/3/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import struct Foundation.URLRequest 10 | 11 | /// Simple logging settings for RxCocoa library. 12 | public struct Logging { 13 | public typealias LogURLRequest = (URLRequest) -> Bool 14 | 15 | /// Log URL requests to standard output in curl format. 16 | public static var URLRequests: LogURLRequest = { _ in 17 | #if DEBUG 18 | return true 19 | #else 20 | return false 21 | #endif 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Foundation/NotificationCenter+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NotificationCenter+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 5/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import class Foundation.NotificationCenter 10 | import struct Foundation.Notification 11 | 12 | import RxSwift 13 | 14 | extension Reactive where Base: NotificationCenter { 15 | /** 16 | Transforms notifications posted to notification center to observable sequence of notifications. 17 | 18 | - parameter name: Optional name used to filter notifications. 19 | - parameter object: Optional object used to filter notifications. 20 | - returns: Observable sequence of posted notifications. 21 | */ 22 | public func notification(_ name: Notification.Name?, object: AnyObject? = nil) -> Observable { 23 | return Observable.create { [weak object] observer in 24 | let nsObserver = self.base.addObserver(forName: name, object: object, queue: nil) { notification in 25 | observer.on(.next(notification)) 26 | } 27 | 28 | return Disposables.create { 29 | self.base.removeObserver(nsObserver) 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Runtime/_RX.m: -------------------------------------------------------------------------------- 1 | // 2 | // _RX.m 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import "include/_RX.h" 10 | 11 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Runtime/_RXKVOObserver.m: -------------------------------------------------------------------------------- 1 | // 2 | // _RXKVOObserver.m 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/11/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import "include/_RXKVOObserver.h" 10 | 11 | @interface _RXKVOObserver () 12 | 13 | @property (nonatomic, unsafe_unretained) id target; 14 | @property (nonatomic, strong ) id retainedTarget; 15 | @property (nonatomic, copy ) NSString *keyPath; 16 | @property (nonatomic, copy ) void (^callback)(id); 17 | 18 | @end 19 | 20 | @implementation _RXKVOObserver 21 | 22 | -(instancetype)initWithTarget:(id)target 23 | retainTarget:(BOOL)retainTarget 24 | keyPath:(NSString*)keyPath 25 | options:(NSKeyValueObservingOptions)options 26 | callback:(void (^)(id))callback { 27 | self = [super init]; 28 | if (!self) return nil; 29 | 30 | self.target = target; 31 | if (retainTarget) { 32 | self.retainedTarget = target; 33 | } 34 | self.keyPath = keyPath; 35 | self.callback = callback; 36 | 37 | [self.target addObserver:self forKeyPath:self.keyPath options:options context:nil]; 38 | 39 | return self; 40 | } 41 | 42 | -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { 43 | @synchronized(self) { 44 | self.callback(change[NSKeyValueChangeNewKey]); 45 | } 46 | } 47 | 48 | -(void)dispose { 49 | [self.target removeObserver:self forKeyPath:self.keyPath context:nil]; 50 | self.target = nil; 51 | self.retainedTarget = nil; 52 | } 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Runtime/include/RxCocoaRuntime.h: -------------------------------------------------------------------------------- 1 | // 2 | // RxCocoaRuntime.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 2/21/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "_RX.h" 11 | #import "_RXDelegateProxy.h" 12 | #import "_RXKVOObserver.h" 13 | #import "_RXObjCRuntime.h" 14 | 15 | //! Project version number for RxCocoa. 16 | FOUNDATION_EXPORT double RxCocoaVersionNumber; 17 | 18 | //! Project version string for RxCocoa. 19 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[]; 20 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Runtime/include/_RXDelegateProxy.h: -------------------------------------------------------------------------------- 1 | // 2 | // _RXDelegateProxy.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface _RXDelegateProxy : NSObject 14 | 15 | @property (nonatomic, weak, readonly) id _forwardToDelegate; 16 | 17 | -(void)_setForwardToDelegate:(id __nullable)forwardToDelegate retainDelegate:(BOOL)retainDelegate NS_SWIFT_NAME(_setForwardToDelegate(_:retainDelegate:)) ; 18 | 19 | -(BOOL)hasWiredImplementationForSelector:(SEL)selector; 20 | -(BOOL)voidDelegateMethodsContain:(SEL)selector; 21 | 22 | -(void)_sentMessage:(SEL)selector withArguments:(NSArray*)arguments; 23 | -(void)_methodInvoked:(SEL)selector withArguments:(NSArray*)arguments; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Runtime/include/_RXKVOObserver.h: -------------------------------------------------------------------------------- 1 | // 2 | // _RXKVOObserver.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/11/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /** 12 | ################################################################################ 13 | This file is part of RX private API 14 | ################################################################################ 15 | */ 16 | 17 | // Exists because if written in Swift, reading unowned is disabled during dealloc process 18 | @interface _RXKVOObserver : NSObject 19 | 20 | -(instancetype)initWithTarget:(id)target 21 | retainTarget:(BOOL)retainTarget 22 | keyPath:(NSString*)keyPath 23 | options:(NSKeyValueObservingOptions)options 24 | callback:(void (^)(id))callback; 25 | 26 | -(void)dispose; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/RxCocoa.h: -------------------------------------------------------------------------------- 1 | // 2 | // RxCocoa.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 2/21/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "_RX.h" 11 | #import "_RXDelegateProxy.h" 12 | #import "_RXKVOObserver.h" 13 | #import "_RXObjCRuntime.h" 14 | 15 | //! Project version number for RxCocoa. 16 | FOUNDATION_EXPORT double RxCocoaVersionNumber; 17 | 18 | //! Project version string for RxCocoa. 19 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[]; -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Traits/BehaviorRelay.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BehaviorRelay.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 10/7/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | /// BehaviorRelay is a wrapper for `BehaviorSubject`. 12 | /// 13 | /// Unlike `BehaviorSubject` it can't terminate with error or completed. 14 | public final class BehaviorRelay: ObservableType { 15 | public typealias E = Element 16 | 17 | private let _subject: BehaviorSubject 18 | 19 | /// Accepts `event` and emits it to subscribers 20 | public func accept(_ event: Element) { 21 | _subject.onNext(event) 22 | } 23 | 24 | /// Current value of behavior subject 25 | public var value: Element { 26 | // this try! is ok because subject can't error out or be disposed 27 | return try! _subject.value() 28 | } 29 | 30 | /// Initializes behavior relay with initial value. 31 | public init(value: Element) { 32 | _subject = BehaviorSubject(value: value) 33 | } 34 | 35 | /// Subscribes observer 36 | public func subscribe(_ observer: O) -> Disposable where O.E == E { 37 | return _subject.subscribe(observer) 38 | } 39 | 40 | /// - returns: Canonical interface for push style sequence 41 | public func asObservable() -> Observable { 42 | return _subject.asObservable() 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Traits/Driver/BehaviorRelay+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BehaviorRelay+Driver.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 10/7/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | extension BehaviorRelay { 12 | /// Converts `BehaviorRelay` to `Driver`. 13 | /// 14 | /// - returns: Observable sequence. 15 | public func asDriver() -> Driver { 16 | let source = self.asObservable() 17 | .observeOn(DriverSharingStrategy.scheduler) 18 | return SharedSequence(source) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Traits/Driver/ControlEvent+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ControlEvent+Driver.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 9/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | extension ControlEvent { 12 | /// Converts `ControlEvent` to `Driver` trait. 13 | /// 14 | /// `ControlEvent` already can't fail, so no special case needs to be handled. 15 | public func asDriver() -> Driver { 16 | return self.asDriver { (error) -> Driver in 17 | #if DEBUG 18 | rxFatalError("Somehow driver received error from a source that shouldn't fail.") 19 | #else 20 | return Driver.empty() 21 | #endif 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Traits/Driver/ControlProperty+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ControlProperty+Driver.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 9/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | extension ControlProperty { 12 | /// Converts `ControlProperty` to `Driver` trait. 13 | /// 14 | /// `ControlProperty` already can't fail, so no special case needs to be handled. 15 | public func asDriver() -> Driver { 16 | return self.asDriver { (error) -> Driver in 17 | #if DEBUG 18 | rxFatalError("Somehow driver received error from a source that shouldn't fail.") 19 | #else 20 | return Driver.empty() 21 | #endif 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Traits/PublishRelay.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PublishRelay.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 3/28/15. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | /// PublishRelay is a wrapper for `PublishSubject`. 12 | /// 13 | /// Unlike `PublishSubject` it can't terminate with error or completed. 14 | public final class PublishRelay: ObservableType { 15 | public typealias E = Element 16 | 17 | private let _subject: PublishSubject 18 | 19 | // Accepts `event` and emits it to subscribers 20 | public func accept(_ event: Element) { 21 | _subject.onNext(event) 22 | } 23 | 24 | /// Initializes with internal empty subject. 25 | public init() { 26 | _subject = PublishSubject() 27 | } 28 | 29 | /// Subscribes observer 30 | public func subscribe(_ observer: O) -> Disposable where O.E == E { 31 | return _subject.subscribe(observer) 32 | } 33 | 34 | /// - returns: Canonical interface for push style sequence 35 | public func asObservable() -> Observable { 36 | return _subject.asObservable() 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Traits/Signal/ControlEvent+Signal.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ControlEvent+Signal.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 11/1/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | extension ControlEvent { 12 | /// Converts `ControlEvent` to `Signal` trait. 13 | /// 14 | /// `ControlEvent` already can't fail, so no special case needs to be handled. 15 | public func asSignal() -> Signal { 16 | return self.asSignal { (error) -> Signal in 17 | #if DEBUG 18 | rxFatalError("Somehow signal received error from a source that shouldn't fail.") 19 | #else 20 | return Signal.empty() 21 | #endif 22 | } 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/Traits/Signal/PublishRelay+Signal.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PublishRelay+Signal.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 12/28/15. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | extension PublishRelay { 12 | /// Converts `PublishRelay` to `Signal`. 13 | /// 14 | /// - returns: Observable sequence. 15 | public func asSignal() -> Signal { 16 | let source = self.asObservable() 17 | .observeOn(SignalSharingStrategy.scheduler) 18 | return SharedSequence(source) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Events/ItemEvents.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ItemEvents.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/20/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | import UIKit 11 | 12 | public typealias ItemMovedEvent = (sourceIndex: IndexPath, destinationIndex: IndexPath) 13 | public typealias WillDisplayCellEvent = (cell: UITableViewCell, indexPath: IndexPath) 14 | public typealias DidEndDisplayingCellEvent = (cell: UITableViewCell, indexPath: IndexPath) 15 | #endif 16 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/NSTextStorage+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSTextStorage+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Segii Shulga on 12/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | import RxSwift 11 | import UIKit 12 | 13 | #if swift(>=4.2) 14 | public typealias NSTextStorageEditActions = NSTextStorage.EditActions 15 | #endif 16 | 17 | extension Reactive where Base: NSTextStorage { 18 | 19 | /// Reactive wrapper for `delegate`. 20 | /// 21 | /// For more information take a look at `DelegateProxyType` protocol documentation. 22 | public var delegate: DelegateProxy { 23 | return RxTextStorageDelegateProxy.proxy(for: base) 24 | } 25 | 26 | /// Reactive wrapper for `delegate` message. 27 | public var didProcessEditingRangeChangeInLength: Observable<(editedMask:NSTextStorageEditActions, editedRange:NSRange, delta:Int)> { 28 | return delegate 29 | .methodInvoked(#selector(NSTextStorageDelegate.textStorage(_:didProcessEditing:range:changeInLength:))) 30 | .map { a in 31 | let editedMask = NSTextStorageEditActions(rawValue: try castOrThrow(UInt.self, a[1]) ) 32 | let editedRange = try castOrThrow(NSValue.self, a[2]).rangeValue 33 | let delta = try castOrThrow(Int.self, a[3]) 34 | 35 | return (editedMask, editedRange, delta) 36 | } 37 | } 38 | } 39 | #endif 40 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxCollectionViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCollectionViewDataSourceType.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// Marks data source as `UICollectionView` reactive data source enabling it to be used with one of the `bindTo` methods. 15 | public protocol RxCollectionViewDataSourceType /*: UICollectionViewDataSource*/ { 16 | 17 | /// Type of elements that can be bound to collection view. 18 | associatedtype Element 19 | 20 | /// New observable sequence event observed. 21 | /// 22 | /// - parameter collectionView: Bound collection view. 23 | /// - parameter observedEvent: Event 24 | func collectionView(_ collectionView: UICollectionView, observedEvent: Event) -> Void 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxPickerViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxPickerViewDataSourceType.swift 3 | // RxCocoa 4 | // 5 | // Created by Sergey Shulga on 05/07/2017. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// Marks data source as `UIPickerView` reactive data source enabling it to be used with one of the `bindTo` methods. 15 | public protocol RxPickerViewDataSourceType { 16 | /// Type of elements that can be bound to picker view. 17 | associatedtype Element 18 | 19 | /// New observable sequence event observed. 20 | /// 21 | /// - parameter pickerView: Bound picker view. 22 | /// - parameter observedEvent: Event 23 | func pickerView(_ pickerView: UIPickerView, observedEvent: Event) 24 | } 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxTableViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTableViewDataSourceType.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/26/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// Marks data source as `UITableView` reactive data source enabling it to be used with one of the `bindTo` methods. 15 | public protocol RxTableViewDataSourceType /*: UITableViewDataSource*/ { 16 | 17 | /// Type of elements that can be bound to table view. 18 | associatedtype Element 19 | 20 | /// New observable sequence event observed. 21 | /// 22 | /// - parameter tableView: Bound table view. 23 | /// - parameter observedEvent: Event 24 | func tableView(_ tableView: UITableView, observedEvent: Event) -> Void 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCollectionViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// For more information take a look at `DelegateProxyType`. 15 | open class RxCollectionViewDelegateProxy 16 | : RxScrollViewDelegateProxy 17 | , UICollectionViewDelegate 18 | , UICollectionViewDelegateFlowLayout { 19 | 20 | /// Typed parent object. 21 | public weak private(set) var collectionView: UICollectionView? 22 | 23 | /// Initializes `RxCollectionViewDelegateProxy` 24 | /// 25 | /// - parameter collectionView: Parent object for delegate proxy. 26 | public init(collectionView: UICollectionView) { 27 | self.collectionView = collectionView 28 | super.init(scrollView: collectionView) 29 | } 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxNavigationControllerDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxNavigationControllerDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Diogo on 13/04/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension UINavigationController: HasDelegate { 15 | public typealias Delegate = UINavigationControllerDelegate 16 | } 17 | 18 | /// For more information take a look at `DelegateProxyType`. 19 | open class RxNavigationControllerDelegateProxy 20 | : DelegateProxy 21 | , DelegateProxyType 22 | , UINavigationControllerDelegate { 23 | 24 | /// Typed parent object. 25 | public weak private(set) var navigationController: UINavigationController? 26 | 27 | /// - parameter navigationController: Parent object for delegate proxy. 28 | public init(navigationController: ParentObject) { 29 | self.navigationController = navigationController 30 | super.init(parentObject: navigationController, delegateProxy: RxNavigationControllerDelegateProxy.self) 31 | } 32 | 33 | // Register known implementations 34 | public static func registerKnownImplementations() { 35 | self.register { RxNavigationControllerDelegateProxy(navigationController: $0) } 36 | } 37 | } 38 | #endif 39 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxPickerViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Segii Shulga on 5/12/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension UIPickerView: HasDelegate { 15 | public typealias Delegate = UIPickerViewDelegate 16 | } 17 | 18 | open class RxPickerViewDelegateProxy 19 | : DelegateProxy 20 | , DelegateProxyType 21 | , UIPickerViewDelegate { 22 | 23 | /// Typed parent object. 24 | public weak private(set) var pickerView: UIPickerView? 25 | 26 | /// - parameter pickerView: Parent object for delegate proxy. 27 | public init(pickerView: ParentObject) { 28 | self.pickerView = pickerView 29 | super.init(parentObject: pickerView, delegateProxy: RxPickerViewDelegateProxy.self) 30 | } 31 | 32 | // Register known implementationss 33 | public static func registerKnownImplementations() { 34 | self.register { RxPickerViewDelegateProxy(pickerView: $0) } 35 | } 36 | } 37 | #endif 38 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxSearchBarDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension UISearchBar: HasDelegate { 15 | public typealias Delegate = UISearchBarDelegate 16 | } 17 | 18 | /// For more information take a look at `DelegateProxyType`. 19 | open class RxSearchBarDelegateProxy 20 | : DelegateProxy 21 | , DelegateProxyType 22 | , UISearchBarDelegate { 23 | 24 | /// Typed parent object. 25 | public weak private(set) var searchBar: UISearchBar? 26 | 27 | /// - parameter searchBar: Parent object for delegate proxy. 28 | public init(searchBar: ParentObject) { 29 | self.searchBar = searchBar 30 | super.init(parentObject: searchBar, delegateProxy: RxSearchBarDelegateProxy.self) 31 | } 32 | 33 | // Register known implementations 34 | public static func registerKnownImplementations() { 35 | self.register { RxSearchBarDelegateProxy(searchBar: $0) } 36 | } 37 | } 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxSearchControllerDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Segii Shulga on 3/17/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension UISearchController: HasDelegate { 15 | public typealias Delegate = UISearchControllerDelegate 16 | } 17 | 18 | /// For more information take a look at `DelegateProxyType`. 19 | @available(iOS 8.0, *) 20 | open class RxSearchControllerDelegateProxy 21 | : DelegateProxy 22 | , DelegateProxyType 23 | , UISearchControllerDelegate { 24 | 25 | /// Typed parent object. 26 | public weak private(set) var searchController: UISearchController? 27 | 28 | /// - parameter searchController: Parent object for delegate proxy. 29 | public init(searchController: UISearchController) { 30 | self.searchController = searchController 31 | super.init(parentObject: searchController, delegateProxy: RxSearchControllerDelegateProxy.self) 32 | } 33 | 34 | // Register known implementations 35 | public static func registerKnownImplementations() { 36 | self.register { RxSearchControllerDelegateProxy(searchController: $0) } 37 | } 38 | } 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarControllerDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTabBarControllerDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Yusuke Kita on 2016/12/07. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension UITabBarController: HasDelegate { 15 | public typealias Delegate = UITabBarControllerDelegate 16 | } 17 | 18 | /// For more information take a look at `DelegateProxyType`. 19 | open class RxTabBarControllerDelegateProxy 20 | : DelegateProxy 21 | , DelegateProxyType 22 | , UITabBarControllerDelegate { 23 | 24 | /// Typed parent object. 25 | public weak private(set) var tabBar: UITabBarController? 26 | 27 | /// - parameter tabBar: Parent object for delegate proxy. 28 | public init(tabBar: ParentObject) { 29 | self.tabBar = tabBar 30 | super.init(parentObject: tabBar, delegateProxy: RxTabBarControllerDelegateProxy.self) 31 | } 32 | 33 | // Register known implementations 34 | public static func registerKnownImplementations() { 35 | self.register { RxTabBarControllerDelegateProxy(tabBar: $0) } 36 | } 37 | } 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTabBarDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Jesse Farless on 5/14/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension UITabBar: HasDelegate { 15 | public typealias Delegate = UITabBarDelegate 16 | } 17 | 18 | /// For more information take a look at `DelegateProxyType`. 19 | open class RxTabBarDelegateProxy 20 | : DelegateProxy 21 | , DelegateProxyType 22 | , UITabBarDelegate { 23 | 24 | /// Typed parent object. 25 | public weak private(set) var tabBar: UITabBar? 26 | 27 | /// - parameter tabBar: Parent object for delegate proxy. 28 | public init(tabBar: ParentObject) { 29 | self.tabBar = tabBar 30 | super.init(parentObject: tabBar, delegateProxy: RxTabBarDelegateProxy.self) 31 | } 32 | 33 | // Register known implementations 34 | public static func registerKnownImplementations() { 35 | self.register { RxTabBarDelegateProxy(tabBar: $0) } 36 | } 37 | 38 | /// For more information take a look at `DelegateProxyType`. 39 | open class func currentDelegate(for object: ParentObject) -> UITabBarDelegate? { 40 | return object.delegate 41 | } 42 | 43 | /// For more information take a look at `DelegateProxyType`. 44 | open class func setCurrentDelegate(_ delegate: UITabBarDelegate?, to object: ParentObject) { 45 | object.delegate = delegate 46 | } 47 | } 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTableViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// For more information take a look at `DelegateProxyType`. 15 | open class RxTableViewDelegateProxy 16 | : RxScrollViewDelegateProxy 17 | , UITableViewDelegate { 18 | 19 | /// Typed parent object. 20 | public weak private(set) var tableView: UITableView? 21 | 22 | /// - parameter tableView: Parent object for delegate proxy. 23 | public init(tableView: UITableView) { 24 | self.tableView = tableView 25 | super.init(scrollView: tableView) 26 | } 27 | 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTextStorageDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Segii Shulga on 12/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension NSTextStorage: HasDelegate { 15 | public typealias Delegate = NSTextStorageDelegate 16 | } 17 | 18 | open class RxTextStorageDelegateProxy 19 | : DelegateProxy 20 | , DelegateProxyType 21 | , NSTextStorageDelegate { 22 | 23 | /// Typed parent object. 24 | public weak private(set) var textStorage: NSTextStorage? 25 | 26 | /// - parameter textStorage: Parent object for delegate proxy. 27 | public init(textStorage: NSTextStorage) { 28 | self.textStorage = textStorage 29 | super.init(parentObject: textStorage, delegateProxy: RxTextStorageDelegateProxy.self) 30 | } 31 | 32 | // Register known implementations 33 | public static func registerKnownImplementations() { 34 | self.register { RxTextStorageDelegateProxy(textStorage: $0) } 35 | } 36 | } 37 | #endif 38 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTextViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Yuta ToKoRo on 7/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// For more information take a look at `DelegateProxyType`. 15 | open class RxTextViewDelegateProxy 16 | : RxScrollViewDelegateProxy 17 | , UITextViewDelegate { 18 | 19 | /// Typed parent object. 20 | public weak private(set) var textView: UITextView? 21 | 22 | /// - parameter textview: Parent object for delegate proxy. 23 | public init(textView: UITextView) { 24 | self.textView = textView 25 | super.init(scrollView: textView) 26 | } 27 | 28 | // MARK: delegate methods 29 | 30 | /// For more information take a look at `DelegateProxyType`. 31 | @objc open func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { 32 | /** 33 | We've had some issues with observing text changes. This is here just in case we need the same hack in future and that 34 | we wouldn't need to change the public interface. 35 | */ 36 | let forwardToDelegate = self.forwardToDelegate() as? UITextViewDelegate 37 | return forwardToDelegate?.textView?(textView, 38 | shouldChangeTextIn: range, 39 | replacementText: text) ?? true 40 | } 41 | } 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxWebViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxWebViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Andrew Breckenridge on 9/26/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension UIWebView: HasDelegate { 15 | public typealias Delegate = UIWebViewDelegate 16 | } 17 | 18 | open class RxWebViewDelegateProxy 19 | : DelegateProxy 20 | , DelegateProxyType 21 | , UIWebViewDelegate { 22 | 23 | /// Typed parent object. 24 | public weak private(set) var webView: UIWebView? 25 | 26 | /// - parameter webView: Parent object for delegate proxy. 27 | public init(webView: ParentObject) { 28 | self.webView = webView 29 | super.init(parentObject: webView, delegateProxy: RxWebViewDelegateProxy.self) 30 | } 31 | 32 | // Register known implementations 33 | public static func registerKnownImplementations() { 34 | self.register { RxWebViewDelegateProxy(webView: $0) } 35 | } 36 | } 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UIActivityIndicatorView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIActivityIndicatorView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Ivan Persidskiy on 02/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIActivityIndicatorView { 15 | 16 | /// Bindable sink for `startAnimating()`, `stopAnimating()` methods. 17 | public var isAnimating: Binder { 18 | return Binder(self.base) { activityIndicator, active in 19 | if active { 20 | activityIndicator.startAnimating() 21 | } else { 22 | activityIndicator.stopAnimating() 23 | } 24 | } 25 | } 26 | 27 | } 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UIAlertAction+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIAlertAction+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Andrew Breckenridge on 5/7/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIAlertAction { 15 | 16 | /// Bindable sink for `enabled` property. 17 | public var isEnabled: Binder { 18 | return Binder(self.base) { alertAction, value in 19 | alertAction.isEnabled = value 20 | } 21 | } 22 | 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UIApplication+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIApplication+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Mads Bøgeskov on 18/01/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIApplication { 15 | 16 | /// Bindable sink for `networkActivityIndicatorVisible`. 17 | public var isNetworkActivityIndicatorVisible: Binder { 18 | return Binder(self.base) { application, active in 19 | application.isNetworkActivityIndicatorVisible = active 20 | } 21 | } 22 | } 23 | #endif 24 | 25 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UIDatePicker+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIDatePicker+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Daniel Tartaglia on 5/31/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension Reactive where Base: UIDatePicker { 15 | /// Reactive wrapper for `date` property. 16 | public var date: ControlProperty { 17 | return value 18 | } 19 | 20 | /// Reactive wrapper for `date` property. 21 | public var value: ControlProperty { 22 | return base.rx.controlPropertyWithDefaultEvents( 23 | getter: { datePicker in 24 | datePicker.date 25 | }, setter: { datePicker, value in 26 | datePicker.date = value 27 | } 28 | ) 29 | } 30 | 31 | /// Reactive wrapper for `countDownDuration` property. 32 | public var countDownDuration: ControlProperty { 33 | return base.rx.controlPropertyWithDefaultEvents( 34 | getter: { datePicker in 35 | datePicker.countDownDuration 36 | }, setter: { datePicker, value in 37 | datePicker.countDownDuration = value 38 | } 39 | ) 40 | } 41 | } 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UIImageView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIImageView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 4/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension Reactive where Base: UIImageView { 15 | 16 | /// Bindable sink for `image` property. 17 | public var image: Binder { 18 | return Binder(base) { imageView, image in 19 | imageView.image = image 20 | } 21 | } 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UILabel+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UILabel+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 4/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension Reactive where Base: UILabel { 15 | 16 | /// Bindable sink for `text` property. 17 | public var text: Binder { 18 | return Binder(self.base) { label, text in 19 | label.text = text 20 | } 21 | } 22 | 23 | /// Bindable sink for `attributedText` property. 24 | public var attributedText: Binder { 25 | return Binder(self.base) { label, text in 26 | label.attributedText = text 27 | } 28 | } 29 | 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UINavigationItem+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UINavigationItem+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by kumapo on 2016/05/09. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UINavigationItem { 15 | 16 | /// Bindable sink for `title` property. 17 | public var title: Binder { 18 | return Binder(self.base) { navigationItem, text in 19 | navigationItem.title = text 20 | } 21 | } 22 | 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UIPageControl+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIPageControl+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Francesco Puntillo on 14/04/2016. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension Reactive where Base: UIPageControl { 15 | 16 | /// Bindable sink for `currentPage` property. 17 | public var currentPage: Binder { 18 | return Binder(self.base) { controller, page in 19 | controller.currentPage = page 20 | } 21 | } 22 | 23 | /// Bindable sink for `numberOfPages` property. 24 | public var numberOfPages: Binder { 25 | return Binder(self.base) { controller, page in 26 | controller.numberOfPages = page 27 | } 28 | } 29 | 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UIProgressView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIProgressView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Samuel Bae on 2/27/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension Reactive where Base: UIProgressView { 15 | 16 | /// Bindable sink for `progress` property 17 | public var progress: Binder { 18 | return Binder(self.base) { progressView, progress in 19 | progressView.progress = progress 20 | } 21 | } 22 | 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UIRefreshControl+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIRefreshControl+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Yosuke Ishikawa on 1/31/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIRefreshControl { 15 | /// Bindable sink for `beginRefreshing()`, `endRefreshing()` methods. 16 | public var isRefreshing: Binder { 17 | return Binder(self.base) { refreshControl, refresh in 18 | if refresh { 19 | refreshControl.beginRefreshing() 20 | } else { 21 | refreshControl.endRefreshing() 22 | } 23 | } 24 | } 25 | 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UISlider+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISlider+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Alexander van der Werff on 28/05/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension Reactive where Base: UISlider { 15 | 16 | /// Reactive wrapper for `value` property. 17 | public var value: ControlProperty { 18 | return base.rx.controlPropertyWithDefaultEvents( 19 | getter: { slider in 20 | slider.value 21 | }, setter: { slider, value in 22 | slider.value = value 23 | } 24 | ) 25 | } 26 | 27 | } 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UIStepper+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIStepper+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Yuta ToKoRo on 9/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIStepper { 15 | 16 | /// Reactive wrapper for `value` property. 17 | public var value: ControlProperty { 18 | return base.rx.controlPropertyWithDefaultEvents( 19 | getter: { stepper in 20 | stepper.value 21 | }, setter: { stepper, value in 22 | stepper.value = value 23 | } 24 | ) 25 | } 26 | 27 | /// Reactive wrapper for `stepValue` property. 28 | public var stepValue: Binder { 29 | return Binder(self.base) { stepper, value in 30 | stepper.stepValue = value 31 | } 32 | } 33 | 34 | } 35 | 36 | #endif 37 | 38 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UISwitch+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISwitch+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Carlos García on 8/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UISwitch { 15 | 16 | /// Reactive wrapper for `isOn` property. 17 | public var isOn: ControlProperty { 18 | return value 19 | } 20 | 21 | /// Reactive wrapper for `isOn` property. 22 | /// 23 | /// ⚠️ Versions prior to iOS 10.2 were leaking `UISwitch`'s, so on those versions 24 | /// underlying observable sequence won't complete when nothing holds a strong reference 25 | /// to `UISwitch`. 26 | public var value: ControlProperty { 27 | return base.rx.controlPropertyWithDefaultEvents( 28 | getter: { uiSwitch in 29 | uiSwitch.isOn 30 | }, setter: { uiSwitch, value in 31 | uiSwitch.isOn = value 32 | } 33 | ) 34 | } 35 | 36 | } 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UITabBarItem+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UITabBarItem+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Mateusz Derks on 04/03/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UITabBarItem { 15 | 16 | /// Bindable sink for `badgeValue` property. 17 | public var badgeValue: Binder { 18 | return Binder(self.base) { tabBarItem, badgeValue in 19 | tabBarItem.badgeValue = badgeValue 20 | } 21 | } 22 | 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UIView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIView { 15 | /// Bindable sink for `hidden` property. 16 | public var isHidden: Binder { 17 | return Binder(self.base) { view, hidden in 18 | view.isHidden = hidden 19 | } 20 | } 21 | 22 | /// Bindable sink for `alpha` property. 23 | public var alpha: Binder { 24 | return Binder(self.base) { view, alpha in 25 | view.alpha = alpha 26 | } 27 | } 28 | 29 | /// Bindable sink for `isUserInteractionEnabled` property. 30 | public var isUserInteractionEnabled: Binder { 31 | return Binder(self.base) { view, userInteractionEnabled in 32 | view.isUserInteractionEnabled = userInteractionEnabled 33 | } 34 | } 35 | 36 | } 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UIViewController+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Kyle Fuller on 27/05/2016. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIViewController { 15 | 16 | /// Bindable sink for `title`. 17 | public var title: Binder { 18 | return Binder(self.base) { viewController, title in 19 | viewController.title = title 20 | } 21 | } 22 | 23 | } 24 | #endif 25 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/iOS/UIWebView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIWebView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Andrew Breckenridge on 8/30/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIWebView { 15 | 16 | /// Reactive wrapper for `delegate`. 17 | /// For more information take a look at `DelegateProxyType` protocol documentation. 18 | public var delegate: DelegateProxy { 19 | return RxWebViewDelegateProxy.proxy(for: base) 20 | } 21 | 22 | /// Reactive wrapper for `delegate` message. 23 | public var didStartLoad: Observable { 24 | return delegate 25 | .methodInvoked(#selector(UIWebViewDelegate.webViewDidStartLoad(_:))) 26 | .map {_ in} 27 | } 28 | 29 | /// Reactive wrapper for `delegate` message. 30 | public var didFinishLoad: Observable { 31 | return delegate 32 | .methodInvoked(#selector(UIWebViewDelegate.webViewDidFinishLoad(_:))) 33 | .map {_ in} 34 | } 35 | 36 | /// Reactive wrapper for `delegate` message. 37 | public var didFailLoad: Observable { 38 | return delegate 39 | .methodInvoked(#selector(UIWebViewDelegate.webView(_:didFailLoadWithError:))) 40 | .map { a in 41 | return try castOrThrow(Error.self, a[1]) 42 | } 43 | } 44 | } 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSButton+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 5/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) 10 | 11 | import RxSwift 12 | import Cocoa 13 | 14 | extension Reactive where Base: NSButton { 15 | 16 | /// Reactive wrapper for control event. 17 | public var tap: ControlEvent { 18 | return controlEvent 19 | } 20 | 21 | /// Reactive wrapper for `state` property`. 22 | public var state: ControlProperty { 23 | return base.rx.controlProperty( 24 | getter: { control in 25 | return control.state 26 | }, setter: { (control: NSButton, state: NSControl.StateValue) in 27 | control.state = state 28 | } 29 | ) 30 | } 31 | } 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/macOS/NSImageView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSImageView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 5/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) 10 | 11 | import RxSwift 12 | import Cocoa 13 | 14 | extension Reactive where Base: NSImageView { 15 | 16 | /// Bindable sink for `image` property. 17 | public var image: Binder { 18 | return Binder(base) { imageView, image in 19 | imageView.image = image 20 | } 21 | } 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSSlider+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Junior B. on 24/05/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) 10 | 11 | import RxSwift 12 | import Cocoa 13 | 14 | extension Reactive where Base: NSSlider { 15 | 16 | /// Reactive wrapper for `value` property. 17 | public var value: ControlProperty { 18 | return base.rx.controlProperty( 19 | getter: { control in 20 | return control.doubleValue 21 | }, 22 | setter: { control, value in 23 | control.doubleValue = value 24 | } 25 | ) 26 | } 27 | 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /ios/Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) 10 | 11 | import Cocoa 12 | import RxSwift 13 | 14 | extension Reactive where Base: NSView { 15 | /// Bindable sink for `hidden` property. 16 | public var isHidden: Binder { 17 | return Binder(self.base) { view, value in 18 | view.isHidden = value 19 | } 20 | } 21 | 22 | /// Bindable sink for `alphaValue` property. 23 | public var alpha: Binder { 24 | return Binder(self.base) { view, value in 25 | view.alphaValue = value 26 | } 27 | } 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/LICENSE.md: -------------------------------------------------------------------------------- 1 | **The MIT License** 2 | **Copyright © 2015 Krunoslav Zaher** 3 | **All rights reserved.** 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /ios/Pods/RxSwift/Platform/AtomicInt.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AtomicInt.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 10/28/18. 6 | // Copyright © 2018 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxAtomic 10 | 11 | typealias AtomicInt = RxAtomic.AtomicInt 12 | 13 | extension AtomicInt { 14 | init(_ initialValue: Int32) { 15 | self.init() 16 | self.initialize(initialValue) 17 | } 18 | 19 | @discardableResult 20 | mutating func increment() -> Int32 { 21 | return self.add(1) 22 | } 23 | 24 | @discardableResult 25 | mutating func decrement() -> Int32 { 26 | return self.sub(1) 27 | } 28 | 29 | mutating func isFlagSet(_ mask: Int32) -> Bool { 30 | return (self.load() & mask) != 0 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/Platform/DataStructures/InfiniteSequence.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InfiniteSequence.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 6/13/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Sequence that repeats `repeatedValue` infinite number of times. 10 | struct InfiniteSequence : Sequence { 11 | typealias Element = E 12 | typealias Iterator = AnyIterator 13 | 14 | private let _repeatedValue: E 15 | 16 | init(repeatedValue: E) { 17 | _repeatedValue = repeatedValue 18 | } 19 | 20 | func makeIterator() -> Iterator { 21 | let repeatedValue = _repeatedValue 22 | return AnyIterator { 23 | return repeatedValue 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/Platform/DispatchQueue+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DispatchQueue+Extensions.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 10/22/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Dispatch 10 | 11 | extension DispatchQueue { 12 | private static var token: DispatchSpecificKey<()> = { 13 | let key = DispatchSpecificKey<()>() 14 | DispatchQueue.main.setSpecific(key: key, value: ()) 15 | return key 16 | }() 17 | 18 | static var isMain: Bool { 19 | return DispatchQueue.getSpecific(key: token) != nil 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/Platform/Platform.Darwin.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Darwin.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS) 10 | 11 | import Darwin 12 | import class Foundation.Thread 13 | import protocol Foundation.NSCopying 14 | 15 | extension Thread { 16 | static func setThreadLocalStorageValue(_ value: T?, forKey key: NSCopying) { 17 | let currentThread = Thread.current 18 | let threadDictionary = currentThread.threadDictionary 19 | 20 | if let newValue = value { 21 | threadDictionary[key] = newValue 22 | } 23 | else { 24 | threadDictionary[key] = nil 25 | } 26 | } 27 | 28 | static func getThreadLocalStorageValueForKey(_ key: NSCopying) -> T? { 29 | let currentThread = Thread.current 30 | let threadDictionary = currentThread.threadDictionary 31 | 32 | return threadDictionary[key] as? T 33 | } 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/Platform/Platform.Linux.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Linux.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(Linux) 10 | 11 | import class Foundation.Thread 12 | 13 | extension Thread { 14 | 15 | static func setThreadLocalStorageValue(_ value: T?, forKey key: String) { 16 | let currentThread = Thread.current 17 | var threadDictionary = currentThread.threadDictionary 18 | 19 | if let newValue = value { 20 | threadDictionary[key] = newValue 21 | } 22 | else { 23 | threadDictionary[key] = nil 24 | } 25 | 26 | currentThread.threadDictionary = threadDictionary 27 | } 28 | 29 | static func getThreadLocalStorageValueForKey(_ key: String) -> T? { 30 | let currentThread = Thread.current 31 | let threadDictionary = currentThread.threadDictionary 32 | 33 | return threadDictionary[key] as? T 34 | } 35 | } 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/Platform/RecursiveLock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RecursiveLock.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/18/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import class Foundation.NSRecursiveLock 10 | 11 | #if TRACE_RESOURCES 12 | class RecursiveLock: NSRecursiveLock { 13 | override init() { 14 | _ = Resources.incrementTotal() 15 | super.init() 16 | } 17 | 18 | override func lock() { 19 | super.lock() 20 | _ = Resources.incrementTotal() 21 | } 22 | 23 | override func unlock() { 24 | super.unlock() 25 | _ = Resources.decrementTotal() 26 | } 27 | 28 | deinit { 29 | _ = Resources.decrementTotal() 30 | } 31 | } 32 | #else 33 | typealias RecursiveLock = NSRecursiveLock 34 | #endif 35 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Cancelable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Cancelable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents disposable resource with state tracking. 10 | public protocol Cancelable : Disposable { 11 | /// Was resource disposed. 12 | var isDisposed: Bool { get } 13 | } 14 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Concurrency/Lock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Lock.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/31/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol Lock { 10 | func lock() 11 | func unlock() 12 | } 13 | 14 | // https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000321.html 15 | typealias SpinLock = RecursiveLock 16 | 17 | extension RecursiveLock : Lock { 18 | @inline(__always) 19 | final func performLocked(_ action: () -> Void) { 20 | lock(); defer { unlock() } 21 | action() 22 | } 23 | 24 | @inline(__always) 25 | final func calculateLocked(_ action: () -> T) -> T { 26 | lock(); defer { unlock() } 27 | return action() 28 | } 29 | 30 | @inline(__always) 31 | final func calculateLockedOrFail(_ action: () throws -> T) throws -> T { 32 | lock(); defer { unlock() } 33 | let result = try action() 34 | return result 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LockOwnerType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol LockOwnerType : class, Lock { 10 | var _lock: RecursiveLock { get } 11 | } 12 | 13 | extension LockOwnerType { 14 | func lock() { 15 | _lock.lock() 16 | } 17 | 18 | func unlock() { 19 | _lock.unlock() 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedDisposeType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol SynchronizedDisposeType : class, Disposable, Lock { 10 | func _synchronized_dispose() 11 | } 12 | 13 | extension SynchronizedDisposeType { 14 | func synchronizedDispose() { 15 | lock(); defer { unlock() } 16 | _synchronized_dispose() 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedOnType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol SynchronizedOnType : class, ObserverType, Lock { 10 | func _synchronized_on(_ event: Event) 11 | } 12 | 13 | extension SynchronizedOnType { 14 | func synchronizedOn(_ event: Event) { 15 | lock(); defer { unlock() } 16 | _synchronized_on(event) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedUnsubscribeType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol SynchronizedUnsubscribeType : class { 10 | associatedtype DisposeKey 11 | 12 | func synchronizedUnsubscribe(_ disposeKey: DisposeKey) 13 | } 14 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/ConnectableObservableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ConnectableObservableType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /** 10 | Represents an observable sequence wrapper that can be connected and disconnected from its underlying observable sequence. 11 | */ 12 | public protocol ConnectableObservableType : ObservableType { 13 | /** 14 | Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. 15 | 16 | - returns: Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. 17 | */ 18 | func connect() -> Disposable 19 | } 20 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Disposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Disposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents a disposable resource. 10 | public protocol Disposable { 11 | /// Dispose resource. 12 | func dispose() 13 | } 14 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BooleanDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Junior B. on 10/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents a disposable resource that can be checked for disposal status. 10 | public final class BooleanDisposable : Cancelable { 11 | 12 | internal static let BooleanDisposableTrue = BooleanDisposable(isDisposed: true) 13 | private var _isDisposed = false 14 | 15 | /// Initializes a new instance of the `BooleanDisposable` class 16 | public init() { 17 | } 18 | 19 | /// Initializes a new instance of the `BooleanDisposable` class with given value 20 | public init(isDisposed: Bool) { 21 | self._isDisposed = isDisposed 22 | } 23 | 24 | /// - returns: Was resource disposed. 25 | public var isDisposed: Bool { 26 | return _isDisposed 27 | } 28 | 29 | /// Sets the status to disposed, which can be observer through the `isDisposed` property. 30 | public func dispose() { 31 | _isDisposed = true 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Disposables/Disposables.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Disposables.swift 3 | // RxSwift 4 | // 5 | // Created by Mohsen Ramezanpoor on 01/08/2016. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// A collection of utility methods for common disposable operations. 10 | public struct Disposables { 11 | private init() {} 12 | } 13 | 14 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Disposables/DisposeBase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DisposeBase.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 4/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Base class for all disposables. 10 | public class DisposeBase { 11 | init() { 12 | #if TRACE_RESOURCES 13 | let _ = Resources.incrementTotal() 14 | #endif 15 | } 16 | 17 | deinit { 18 | #if TRACE_RESOURCES 19 | let _ = Resources.decrementTotal() 20 | #endif 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NopDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents a disposable that does nothing on disposal. 10 | /// 11 | /// Nop = No Operation 12 | fileprivate struct NopDisposable : Disposable { 13 | 14 | fileprivate static let noOp: Disposable = NopDisposable() 15 | 16 | fileprivate init() { 17 | 18 | } 19 | 20 | /// Does nothing. 21 | public func dispose() { 22 | } 23 | } 24 | 25 | extension Disposables { 26 | /** 27 | Creates a disposable that does nothing on disposal. 28 | */ 29 | static public func create() -> Disposable { 30 | return NopDisposable.noOp 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Disposables/ScheduledDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScheduledDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 6/13/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | private let disposeScheduledDisposable: (ScheduledDisposable) -> Disposable = { sd in 10 | sd.disposeInner() 11 | return Disposables.create() 12 | } 13 | 14 | /// Represents a disposable resource whose disposal invocation will be scheduled on the specified scheduler. 15 | public final class ScheduledDisposable : Cancelable { 16 | public let scheduler: ImmediateSchedulerType 17 | 18 | private var _isDisposed = AtomicInt(0) 19 | 20 | // state 21 | private var _disposable: Disposable? 22 | 23 | /// - returns: Was resource disposed. 24 | public var isDisposed: Bool { 25 | return _isDisposed.isFlagSet(1) 26 | } 27 | 28 | /** 29 | Initializes a new instance of the `ScheduledDisposable` that uses a `scheduler` on which to dispose the `disposable`. 30 | 31 | - parameter scheduler: Scheduler where the disposable resource will be disposed on. 32 | - parameter disposable: Disposable resource to dispose on the given scheduler. 33 | */ 34 | public init(scheduler: ImmediateSchedulerType, disposable: Disposable) { 35 | self.scheduler = scheduler 36 | _disposable = disposable 37 | } 38 | 39 | /// Disposes the wrapped disposable on the provided scheduler. 40 | public func dispose() { 41 | let _ = scheduler.schedule(self, action: disposeScheduledDisposable) 42 | } 43 | 44 | func disposeInner() { 45 | if _isDisposed.fetchOr(1) == 0 { 46 | _disposable!.dispose() 47 | _disposable = nil 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SubscriptionDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | struct SubscriptionDisposable : Disposable { 10 | private let _key: T.DisposeKey 11 | private weak var _owner: T? 12 | 13 | init(owner: T, key: T.DisposeKey) { 14 | _owner = owner 15 | _key = key 16 | } 17 | 18 | func dispose() { 19 | _owner?.synchronizedUnsubscribe(_key) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Errors.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Errors.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | let RxErrorDomain = "RxErrorDomain" 10 | let RxCompositeFailures = "RxCompositeFailures" 11 | 12 | /// Generic Rx error codes. 13 | public enum RxError 14 | : Swift.Error 15 | , CustomDebugStringConvertible { 16 | /// Unknown error occurred. 17 | case unknown 18 | /// Performing an action on disposed object. 19 | case disposed(object: AnyObject) 20 | /// Aritmetic overflow error. 21 | case overflow 22 | /// Argument out of range error. 23 | case argumentOutOfRange 24 | /// Sequence doesn't contain any elements. 25 | case noElements 26 | /// Sequence contains more than one element. 27 | case moreThanOneElement 28 | /// Timeout error. 29 | case timeout 30 | } 31 | 32 | extension RxError { 33 | /// A textual representation of `self`, suitable for debugging. 34 | public var debugDescription: String { 35 | switch self { 36 | case .unknown: 37 | return "Unknown error occurred." 38 | case .disposed(let object): 39 | return "Object `\(object)` was already disposed." 40 | case .overflow: 41 | return "Arithmetic overflow occurred." 42 | case .argumentOutOfRange: 43 | return "Argument out of range." 44 | case .noElements: 45 | return "Sequence doesn't contain any elements." 46 | case .moreThanOneElement: 47 | return "Sequence contains more than one element." 48 | case .timeout: 49 | return "Sequence timeout." 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Extensions/Bag+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Bag+Rx.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/19/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | 10 | // MARK: forEach 11 | 12 | @inline(__always) 13 | func dispatch(_ bag: Bag<(Event) -> ()>, _ event: Event) { 14 | bag._value0?(event) 15 | 16 | if bag._onlyFastPath { 17 | return 18 | } 19 | 20 | let pairs = bag._pairs 21 | for i in 0 ..< pairs.count { 22 | pairs[i].value(event) 23 | } 24 | 25 | if let dictionary = bag._dictionary { 26 | for element in dictionary.values { 27 | element(event) 28 | } 29 | } 30 | } 31 | 32 | /// Dispatches `dispose` to all disposables contained inside bag. 33 | func disposeAll(in bag: Bag) { 34 | bag._value0?.dispose() 35 | 36 | if bag._onlyFastPath { 37 | return 38 | } 39 | 40 | let pairs = bag._pairs 41 | for i in 0 ..< pairs.count { 42 | pairs[i].value.dispose() 43 | } 44 | 45 | if let dictionary = bag._dictionary { 46 | for element in dictionary.values { 47 | element.dispose() 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Extensions/String+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String+Rx.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 12/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension String { 10 | /// This is needed because on Linux Swift doesn't have `rangeOfString(..., options: .BackwardsSearch)` 11 | func lastIndexOf(_ character: Character) -> Index? { 12 | var index = endIndex 13 | while index > startIndex { 14 | index = self.index(before: index) 15 | if self[index] == character { 16 | return index 17 | } 18 | } 19 | 20 | return nil 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/GroupedObservable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GroupedObservable.swift 3 | // RxSwift 4 | // 5 | // Created by Tomi Koskinen on 01/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents an observable sequence of elements that have a common key. 10 | public struct GroupedObservable : ObservableType { 11 | public typealias E = Element 12 | 13 | /// Gets the common key. 14 | public let key: Key 15 | 16 | private let source: Observable 17 | 18 | /// Initializes grouped observable sequence with key and source observable sequence. 19 | /// 20 | /// - parameter key: Grouped observable sequence key 21 | /// - parameter source: Observable sequence that represents sequence of elements for the key 22 | /// - returns: Grouped observable sequence of elements for the specific key 23 | public init(key: Key, source: Observable) { 24 | self.key = key 25 | self.source = source 26 | } 27 | 28 | /// Subscribes `observer` to receive events for this sequence. 29 | public func subscribe(_ observer: O) -> Disposable where O.E == E { 30 | return self.source.subscribe(observer) 31 | } 32 | 33 | /// Converts `self` to `Observable` sequence. 34 | public func asObservable() -> Observable { 35 | return source 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/ImmediateSchedulerType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ImmediateSchedulerType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 5/31/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents an object that immediately schedules units of work. 10 | public protocol ImmediateSchedulerType { 11 | /** 12 | Schedules an action to be executed immediately. 13 | 14 | - parameter state: State passed to the action to be executed. 15 | - parameter action: Action to be executed. 16 | - returns: The disposable object used to cancel the scheduled action (best effort). 17 | */ 18 | func schedule(_ state: StateType, action: @escaping (StateType) -> Disposable) -> Disposable 19 | } 20 | 21 | extension ImmediateSchedulerType { 22 | /** 23 | Schedules an action to be executed recursively. 24 | 25 | - parameter state: State passed to the action to be executed. 26 | - parameter action: Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. 27 | - returns: The disposable object used to cancel the scheduled action (best effort). 28 | */ 29 | public func scheduleRecursive(_ state: State, action: @escaping (_ state: State, _ recurse: (State) -> ()) -> ()) -> Disposable { 30 | let recursiveScheduler = RecursiveImmediateScheduler(action: action, scheduler: self) 31 | 32 | recursiveScheduler.schedule(state) 33 | 34 | return Disposables.create(with: recursiveScheduler.dispose) 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Observable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// A type-erased `ObservableType`. 10 | /// 11 | /// It represents a push style sequence. 12 | public class Observable : ObservableType { 13 | /// Type of elements in sequence. 14 | public typealias E = Element 15 | 16 | init() { 17 | #if TRACE_RESOURCES 18 | let _ = Resources.incrementTotal() 19 | #endif 20 | } 21 | 22 | public func subscribe(_ observer: O) -> Disposable where O.E == E { 23 | rxAbstractMethod() 24 | } 25 | 26 | public func asObservable() -> Observable { 27 | return self 28 | } 29 | 30 | deinit { 31 | #if TRACE_RESOURCES 32 | let _ = Resources.decrementTotal() 33 | #endif 34 | } 35 | 36 | // this is kind of ugly I know :( 37 | // Swift compiler reports "Not supported yet" when trying to override protocol extensions, so ¯\_(ツ)_/¯ 38 | 39 | /// Optimizations for map operator 40 | internal func composeMap(_ transform: @escaping (Element) throws -> R) -> Observable { 41 | return _map(source: self, transform: transform) 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/ObservableConvertibleType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObservableConvertibleType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 9/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Type that can be converted to observable sequence (`Observable`). 10 | public protocol ObservableConvertibleType { 11 | /// Type of elements in sequence. 12 | associatedtype E 13 | 14 | /// Converts `self` to `Observable` sequence. 15 | /// 16 | /// - returns: Observable sequence that represents `self`. 17 | func asObservable() -> Observable 18 | } 19 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Observables/AddRef.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AddRef.swift 3 | // RxSwift 4 | // 5 | // Created by Junior B. on 30/10/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | final class AddRefSink : Sink, ObserverType { 10 | typealias Element = O.E 11 | 12 | override init(observer: O, cancel: Cancelable) { 13 | super.init(observer: observer, cancel: cancel) 14 | } 15 | 16 | func on(_ event: Event) { 17 | switch event { 18 | case .next(_): 19 | forwardOn(event) 20 | case .completed, .error(_): 21 | forwardOn(event) 22 | dispose() 23 | } 24 | } 25 | } 26 | 27 | final class AddRef : Producer { 28 | typealias EventHandler = (Event) throws -> Void 29 | 30 | private let _source: Observable 31 | private let _refCount: RefCountDisposable 32 | 33 | init(source: Observable, refCount: RefCountDisposable) { 34 | _source = source 35 | _refCount = refCount 36 | } 37 | 38 | override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == Element { 39 | let releaseDisposable = _refCount.retain() 40 | let sink = AddRefSink(observer: observer, cancel: cancel) 41 | let subscription = Disposables.create(releaseDisposable, _source.subscribe(sink)) 42 | 43 | return (sink: sink, subscription: subscription) 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Observables/AsMaybe.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AsMaybe.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/12/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | fileprivate final class AsMaybeSink : Sink, ObserverType { 10 | typealias ElementType = O.E 11 | typealias E = ElementType 12 | 13 | private var _element: Event? = nil 14 | 15 | func on(_ event: Event) { 16 | switch event { 17 | case .next: 18 | if _element != nil { 19 | forwardOn(.error(RxError.moreThanOneElement)) 20 | dispose() 21 | } 22 | 23 | _element = event 24 | case .error: 25 | forwardOn(event) 26 | dispose() 27 | case .completed: 28 | if let element = _element { 29 | forwardOn(element) 30 | } 31 | forwardOn(.completed) 32 | dispose() 33 | } 34 | } 35 | } 36 | 37 | final class AsMaybe: Producer { 38 | fileprivate let _source: Observable 39 | 40 | init(source: Observable) { 41 | _source = source 42 | } 43 | 44 | override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == Element { 45 | let sink = AsMaybeSink(observer: observer, cancel: cancel) 46 | let subscription = _source.subscribe(sink) 47 | return (sink: sink, subscription: subscription) 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Observables/AsSingle.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AsSingle.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/12/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | fileprivate final class AsSingleSink : Sink, ObserverType { 10 | typealias ElementType = O.E 11 | typealias E = ElementType 12 | 13 | private var _element: Event? = nil 14 | 15 | func on(_ event: Event) { 16 | switch event { 17 | case .next: 18 | if _element != nil { 19 | forwardOn(.error(RxError.moreThanOneElement)) 20 | dispose() 21 | } 22 | 23 | _element = event 24 | case .error: 25 | forwardOn(event) 26 | dispose() 27 | case .completed: 28 | if let element = _element { 29 | forwardOn(element) 30 | forwardOn(.completed) 31 | } 32 | else { 33 | forwardOn(.error(RxError.noElements)) 34 | } 35 | dispose() 36 | } 37 | } 38 | } 39 | 40 | final class AsSingle: Producer { 41 | fileprivate let _source: Observable 42 | 43 | init(source: Observable) { 44 | _source = source 45 | } 46 | 47 | override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == Element { 48 | let sink = AsSingleSink(observer: observer, cancel: cancel) 49 | let subscription = _source.subscribe(sink) 50 | return (sink: sink, subscription: subscription) 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Observables/Empty.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Empty.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension ObservableType { 10 | /** 11 | Returns an empty observable sequence, using the specified scheduler to send out the single `Completed` message. 12 | 13 | - seealso: [empty operator on reactivex.io](http://reactivex.io/documentation/operators/empty-never-throw.html) 14 | 15 | - returns: An observable sequence with no elements. 16 | */ 17 | public static func empty() -> Observable { 18 | return EmptyProducer() 19 | } 20 | } 21 | 22 | final fileprivate class EmptyProducer : Producer { 23 | override func subscribe(_ observer: O) -> Disposable where O.E == Element { 24 | observer.on(.completed) 25 | return Disposables.create() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Observables/Error.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Error.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension ObservableType { 10 | /** 11 | Returns an observable sequence that terminates with an `error`. 12 | 13 | - seealso: [throw operator on reactivex.io](http://reactivex.io/documentation/operators/empty-never-throw.html) 14 | 15 | - returns: The observable sequence that terminates with specified error. 16 | */ 17 | public static func error(_ error: Swift.Error) -> Observable { 18 | return ErrorProducer(error: error) 19 | } 20 | } 21 | 22 | final fileprivate class ErrorProducer : Producer { 23 | private let _error: Swift.Error 24 | 25 | init(error: Swift.Error) { 26 | _error = error 27 | } 28 | 29 | override func subscribe(_ observer: O) -> Disposable where O.E == Element { 30 | observer.on(.error(_error)) 31 | return Disposables.create() 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Observables/First.swift: -------------------------------------------------------------------------------- 1 | // 2 | // First.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 7/31/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | fileprivate final class FirstSink : Sink, ObserverType where O.E == Element? { 10 | typealias E = Element 11 | typealias Parent = First 12 | 13 | func on(_ event: Event) { 14 | switch event { 15 | case .next(let value): 16 | forwardOn(.next(value)) 17 | forwardOn(.completed) 18 | dispose() 19 | case .error(let error): 20 | forwardOn(.error(error)) 21 | dispose() 22 | case .completed: 23 | forwardOn(.next(nil)) 24 | forwardOn(.completed) 25 | dispose() 26 | } 27 | } 28 | } 29 | 30 | final class First: Producer { 31 | fileprivate let _source: Observable 32 | 33 | init(source: Observable) { 34 | _source = source 35 | } 36 | 37 | override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == Element? { 38 | let sink = FirstSink(observer: observer, cancel: cancel) 39 | let subscription = _source.subscribe(sink) 40 | return (sink: sink, subscription: subscription) 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Observables/Materialize.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Materialize.swift 3 | // RxSwift 4 | // 5 | // Created by sergdort on 08/03/2017. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension ObservableType { 10 | /** 11 | Convert any Observable into an Observable of its events. 12 | - seealso: [materialize operator on reactivex.io](http://reactivex.io/documentation/operators/materialize-dematerialize.html) 13 | - returns: An observable sequence that wraps events in an Event. The returned Observable never errors, but it does complete after observing all of the events of the underlying Observable. 14 | */ 15 | public func materialize() -> Observable> { 16 | return Materialize(source: self.asObservable()) 17 | } 18 | } 19 | 20 | fileprivate final class MaterializeSink: Sink, ObserverType where O.E == Event { 21 | 22 | func on(_ event: Event) { 23 | forwardOn(.next(event)) 24 | if event.isStopEvent { 25 | forwardOn(.completed) 26 | dispose() 27 | } 28 | } 29 | } 30 | 31 | final fileprivate class Materialize: Producer> { 32 | private let _source: Observable 33 | 34 | init(source: Observable) { 35 | _source = source 36 | } 37 | 38 | override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == E { 39 | let sink = MaterializeSink(observer: observer, cancel: cancel) 40 | let subscription = _source.subscribe(sink) 41 | 42 | return (sink: sink, subscription: subscription) 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Observables/Never.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Never.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension ObservableType { 10 | 11 | /** 12 | Returns a non-terminating observable sequence, which can be used to denote an infinite duration. 13 | 14 | - seealso: [never operator on reactivex.io](http://reactivex.io/documentation/operators/empty-never-throw.html) 15 | 16 | - returns: An observable sequence whose observers will never get called. 17 | */ 18 | public static func never() -> Observable { 19 | return NeverProducer() 20 | } 21 | } 22 | 23 | final fileprivate class NeverProducer : Producer { 24 | override func subscribe(_ observer: O) -> Disposable where O.E == Element { 25 | return Disposables.create() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Observables/StartWith.swift: -------------------------------------------------------------------------------- 1 | // 2 | // StartWith.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 4/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension ObservableType { 10 | 11 | /** 12 | Prepends a sequence of values to an observable sequence. 13 | 14 | - seealso: [startWith operator on reactivex.io](http://reactivex.io/documentation/operators/startwith.html) 15 | 16 | - parameter elements: Elements to prepend to the specified sequence. 17 | - returns: The source sequence prepended with the specified values. 18 | */ 19 | public func startWith(_ elements: E ...) 20 | -> Observable { 21 | return StartWith(source: self.asObservable(), elements: elements) 22 | } 23 | } 24 | 25 | final fileprivate class StartWith: Producer { 26 | let elements: [Element] 27 | let source: Observable 28 | 29 | init(source: Observable, elements: [Element]) { 30 | self.source = source 31 | self.elements = elements 32 | super.init() 33 | } 34 | 35 | override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == Element { 36 | for e in elements { 37 | observer.on(.next(e)) 38 | } 39 | 40 | return (sink: Disposables.create(), subscription: source.subscribe(observer)) 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/ObserverType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObserverType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Supports push-style iteration over an observable sequence. 10 | public protocol ObserverType { 11 | /// The type of elements in sequence that observer can observe. 12 | associatedtype E 13 | 14 | /// Notify observer about sequence event. 15 | /// 16 | /// - parameter event: Event that occurred. 17 | func on(_ event: Event) 18 | } 19 | 20 | /// Convenience API extensions to provide alternate next, error, completed events 21 | extension ObserverType { 22 | 23 | /// Convenience method equivalent to `on(.next(element: E))` 24 | /// 25 | /// - parameter element: Next element to send to observer(s) 26 | public func onNext(_ element: E) { 27 | on(.next(element)) 28 | } 29 | 30 | /// Convenience method equivalent to `on(.completed)` 31 | public func onCompleted() { 32 | on(.completed) 33 | } 34 | 35 | /// Convenience method equivalent to `on(.error(Swift.Error))` 36 | /// - parameter error: Swift.Error to send to observer(s) 37 | public func onError(_ error: Swift.Error) { 38 | on(.error(error)) 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnonymousObserver.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | final class AnonymousObserver : ObserverBase { 10 | typealias Element = ElementType 11 | 12 | typealias EventHandler = (Event) -> Void 13 | 14 | private let _eventHandler : EventHandler 15 | 16 | init(_ eventHandler: @escaping EventHandler) { 17 | #if TRACE_RESOURCES 18 | let _ = Resources.incrementTotal() 19 | #endif 20 | _eventHandler = eventHandler 21 | } 22 | 23 | override func onCore(_ event: Event) { 24 | return _eventHandler(event) 25 | } 26 | 27 | #if TRACE_RESOURCES 28 | deinit { 29 | let _ = Resources.decrementTotal() 30 | } 31 | #endif 32 | } 33 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Observers/ObserverBase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObserverBase.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | class ObserverBase : Disposable, ObserverType { 10 | typealias E = ElementType 11 | 12 | private var _isStopped = AtomicInt(0) 13 | 14 | func on(_ event: Event) { 15 | switch event { 16 | case .next: 17 | if _isStopped.load() == 0 { 18 | onCore(event) 19 | } 20 | case .error, .completed: 21 | if _isStopped.fetchOr(1) == 0 { 22 | onCore(event) 23 | } 24 | } 25 | } 26 | 27 | func onCore(_ event: Event) { 28 | rxAbstractMethod() 29 | } 30 | 31 | func dispose() { 32 | _isStopped.fetchOr(1) 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/RxMutableBox.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxMutableBox.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 5/22/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Creates mutable reference wrapper for any type. 10 | final class RxMutableBox : CustomDebugStringConvertible { 11 | /// Wrapped value 12 | var value : T 13 | 14 | /// Creates reference wrapper for `value`. 15 | /// 16 | /// - parameter value: Value to wrap. 17 | init (_ value: T) { 18 | self.value = value 19 | } 20 | } 21 | 22 | extension RxMutableBox { 23 | /// - returns: Box description. 24 | var debugDescription: String { 25 | return "MutatingBox(\(self.value))" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HistoricalScheduler.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 12/27/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import struct Foundation.Date 10 | 11 | /// Provides a virtual time scheduler that uses `Date` for absolute time and `NSTimeInterval` for relative time. 12 | public class HistoricalScheduler : VirtualTimeScheduler { 13 | 14 | /** 15 | Creates a new historical scheduler with initial clock value. 16 | 17 | - parameter initialClock: Initial value for virtual clock. 18 | */ 19 | public init(initialClock: RxTime = Date(timeIntervalSince1970: 0)) { 20 | super.init(initialClock: initialClock, converter: HistoricalSchedulerTimeConverter()) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InvocableScheduledItem.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | struct InvocableScheduledItem : InvocableType { 10 | 11 | let _invocable: I 12 | let _state: I.Value 13 | 14 | init(invocable: I, state: I.Value) { 15 | _invocable = invocable 16 | _state = state 17 | } 18 | 19 | func invoke() { 20 | _invocable.invoke(_state) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InvocableType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol InvocableType { 10 | func invoke() 11 | } 12 | 13 | protocol InvocableWithValueType { 14 | associatedtype Value 15 | 16 | func invoke(_ value: Value) 17 | } 18 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScheduledItem.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 9/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | struct ScheduledItem 10 | : ScheduledItemType 11 | , InvocableType { 12 | typealias Action = (T) -> Disposable 13 | 14 | private let _action: Action 15 | private let _state: T 16 | 17 | private let _disposable = SingleAssignmentDisposable() 18 | 19 | var isDisposed: Bool { 20 | return _disposable.isDisposed 21 | } 22 | 23 | init(action: @escaping Action, state: T) { 24 | _action = action 25 | _state = state 26 | } 27 | 28 | func invoke() { 29 | _disposable.setDisposable(_action(_state)) 30 | } 31 | 32 | func dispose() { 33 | _disposable.dispose() 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScheduledItemType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol ScheduledItemType 10 | : Cancelable 11 | , InvocableType { 12 | func invoke() 13 | } 14 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Subjects/SubjectType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SubjectType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents an object that is both an observable sequence as well as an observer. 10 | public protocol SubjectType : ObservableType { 11 | /// The type of the observer that represents this subject. 12 | /// 13 | /// Usually this type is type of subject itself, but it doesn't have to be. 14 | associatedtype SubjectObserverType : ObserverType 15 | 16 | /// Returns observer interface for subject. 17 | /// 18 | /// - returns: Observer interface for subject. 19 | func asObserver() -> SubjectObserverType 20 | 21 | } 22 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/SwiftSupport/SwiftSupport.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SwiftSupport.swift 3 | // RxSwift 4 | // 5 | // Created by Volodymyr Gorbenko on 3/6/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | typealias IntMax = Int64 12 | public typealias RxAbstractInteger = FixedWidthInteger 13 | 14 | extension SignedInteger { 15 | func toIntMax() -> IntMax { 16 | return IntMax(self) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ios/Pods/RxSwift/RxSwift/Traits/ObservableType+PrimitiveSequence.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObservableType+PrimitiveSequence.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 9/17/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension ObservableType { 10 | /** 11 | The `asSingle` operator throws a `RxError.noElements` or `RxError.moreThanOneElement` 12 | if the source Observable does not emit exactly one element before successfully completing. 13 | 14 | - seealso: [single operator on reactivex.io](http://reactivex.io/documentation/operators/first.html) 15 | 16 | - returns: An observable sequence that emits a single element or throws an exception if more (or none) of them are emitted. 17 | */ 18 | public func asSingle() -> Single { 19 | return PrimitiveSequence(raw: AsSingle(source: self.asObservable())) 20 | } 21 | 22 | /** 23 | The `asMaybe` operator throws a `RxError.moreThanOneElement` 24 | if the source Observable does not emit at most one element before successfully completing. 25 | 26 | - seealso: [single operator on reactivex.io](http://reactivex.io/documentation/operators/first.html) 27 | 28 | - returns: An observable sequence that emits a single element, completes or throws an exception if more of them are emitted. 29 | */ 30 | public func asMaybe() -> Maybe { 31 | return PrimitiveSequence(raw: AsMaybe(source: self.asObservable())) 32 | } 33 | } 34 | 35 | extension ObservableType where E == Never { 36 | /** 37 | - returns: An observable sequence that completes. 38 | */ 39 | public func asCompletable() 40 | -> Completable { 41 | return PrimitiveSequence(raw: self.asObservable()) 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /ios/Pods/SipHash/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Károly Lőrentey 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ios/Pods/SipHash/SipHash/RandomUInt64.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RandomUInt64.swift 3 | // SipHash 4 | // 5 | // Created by Károly Lőrentey on 2016-11-14. 6 | // Copyright © 2016-2017 Károly Lőrentey. 7 | // 8 | 9 | #if os(iOS) || os(macOS) || os(watchOS) || os(tvOS) 10 | import Darwin 11 | 12 | func randomUInt64() -> UInt64 { 13 | return UInt64(arc4random()) << 32 | UInt64(arc4random()) 14 | } 15 | #elseif os(Linux) || os(FreeBSD) 16 | import Glibc 17 | 18 | func randomUInt64() -> UInt64 { 19 | var randomArray = [UInt8](repeating: 0, count: 8) 20 | 21 | let fd = open("/dev/urandom", O_RDONLY) 22 | defer { 23 | close(fd) 24 | } 25 | 26 | let _ = read(fd, &randomArray, MemoryLayout.size * 8) 27 | 28 | var randomInt: UInt64 = 0 29 | for i in 0.. UInt64 { 37 | fatalError("Unsupported platform") 38 | } 39 | #endif 40 | -------------------------------------------------------------------------------- /ios/Pods/SwiftFormat/CommandLineTool/swiftformat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CoinbaseWallet/CBDatabase/8c0d10e2f749fdd4076ceed792af46c1f21a85cf/ios/Pods/SwiftFormat/CommandLineTool/swiftformat -------------------------------------------------------------------------------- /ios/Pods/SwiftFormat/LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Nick Lockwood 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ios/Pods/SwiftLint/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Realm Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ios/Pods/SwiftLint/swiftlint: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CoinbaseWallet/CBDatabase/8c0d10e2f749fdd4076ceed792af46c1f21a85cf/ios/Pods/SwiftLint/swiftlint -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/BigInt/BigInt-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 3.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/BigInt/BigInt-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_BigInt : NSObject 3 | @end 4 | @implementation PodsDummy_BigInt 5 | @end 6 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/BigInt/BigInt-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/BigInt/BigInt-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double BigIntVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char BigIntVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/BigInt/BigInt.modulemap: -------------------------------------------------------------------------------- 1 | framework module BigInt { 2 | umbrella header "BigInt-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/BigInt/BigInt.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/BigInt 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SipHash" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/BigInt 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/BigInt/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 3.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabase/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabase/Pods-CBDatabase-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabase/Pods-CBDatabase-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_CBDatabase : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_CBDatabase 5 | @end 6 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabase/Pods-CBDatabase-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_CBDatabaseVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_CBDatabaseVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabase/Pods-CBDatabase.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt" "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt/BigInt.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic/RxAtomic.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash/SipHash.framework/Headers" 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' 5 | OTHER_LDFLAGS = $(inherited) -framework "BigInt" -framework "RxAtomic" -framework "RxCocoa" -framework "RxSwift" -framework "SipHash" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabase/Pods-CBDatabase.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_CBDatabase { 2 | umbrella header "Pods-CBDatabase-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabase/Pods-CBDatabase.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt" "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt/BigInt.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic/RxAtomic.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash/SipHash.framework/Headers" 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks' 5 | OTHER_LDFLAGS = $(inherited) -framework "BigInt" -framework "RxAtomic" -framework "RxCocoa" -framework "RxSwift" -framework "SipHash" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabaseTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabaseTests/Pods-CBDatabaseTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabaseTests/Pods-CBDatabaseTests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_CBDatabaseTests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_CBDatabaseTests 5 | @end 6 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabaseTests/Pods-CBDatabaseTests-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-CBDatabaseTests/Pods-CBDatabaseTests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/RxAtomic/RxAtomic.framework 3 | ${BUILT_PRODUCTS_DIR}/RxSwift/RxSwift.framework 4 | ${BUILT_PRODUCTS_DIR}/RxBlocking/RxBlocking.framework -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabaseTests/Pods-CBDatabaseTests-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxAtomic.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxSwift.framework 3 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxBlocking.framework -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabaseTests/Pods-CBDatabaseTests-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-CBDatabaseTests/Pods-CBDatabaseTests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/RxAtomic/RxAtomic.framework 3 | ${BUILT_PRODUCTS_DIR}/RxSwift/RxSwift.framework 4 | ${BUILT_PRODUCTS_DIR}/RxBlocking/RxBlocking.framework -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabaseTests/Pods-CBDatabaseTests-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxAtomic.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxSwift.framework 3 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxBlocking.framework -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabaseTests/Pods-CBDatabaseTests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_CBDatabaseTestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_CBDatabaseTestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabaseTests/Pods-CBDatabaseTests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt" "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic" "${PODS_CONFIGURATION_BUILD_DIR}/RxBlocking" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt/BigInt.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic/RxAtomic.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxBlocking/RxBlocking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash/SipHash.framework/Headers" 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 6 | OTHER_LDFLAGS = $(inherited) -framework "BigInt" -framework "RxAtomic" -framework "RxBlocking" -framework "RxCocoa" -framework "RxSwift" -framework "SipHash" 7 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 8 | PODS_BUILD_DIR = ${BUILD_DIR} 9 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 11 | PODS_ROOT = ${SRCROOT}/Pods 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabaseTests/Pods-CBDatabaseTests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_CBDatabaseTests { 2 | umbrella header "Pods-CBDatabaseTests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/Pods-CBDatabaseTests/Pods-CBDatabaseTests.release.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt" "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic" "${PODS_CONFIGURATION_BUILD_DIR}/RxBlocking" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt/BigInt.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic/RxAtomic.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxBlocking/RxBlocking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash/SipHash.framework/Headers" 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 6 | OTHER_LDFLAGS = $(inherited) -framework "BigInt" -framework "RxAtomic" -framework "RxBlocking" -framework "RxCocoa" -framework "RxSwift" -framework "SipHash" 7 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 8 | PODS_BUILD_DIR = ${BUILD_DIR} 9 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 11 | PODS_ROOT = ${SRCROOT}/Pods 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxAtomic/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 4.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxAtomic/RxAtomic-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 4.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxAtomic/RxAtomic-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxAtomic : NSObject 3 | @end 4 | @implementation PodsDummy_RxAtomic 5 | @end 6 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxAtomic/RxAtomic-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxAtomic/RxAtomic-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "RxAtomic.h" 14 | 15 | FOUNDATION_EXPORT double RxAtomicVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char RxAtomicVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxAtomic/RxAtomic.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxAtomic { 2 | umbrella header "RxAtomic-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxAtomic/RxAtomic.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxAtomic 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxBlocking/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 4.3.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxBlocking/RxBlocking-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 4.3.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxBlocking/RxBlocking-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxBlocking : NSObject 3 | @end 4 | @implementation PodsDummy_RxBlocking 5 | @end 6 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxBlocking/RxBlocking-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxBlocking/RxBlocking-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double RxBlockingVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char RxBlockingVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxBlocking/RxBlocking.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxBlocking { 2 | umbrella header "RxBlocking-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxBlocking/RxBlocking.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxBlocking 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxBlocking 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxCocoa/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 4.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxCocoa/RxCocoa-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 4.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxCocoa/RxCocoa-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxCocoa : NSObject 3 | @end 4 | @implementation PodsDummy_RxCocoa 5 | @end 6 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxCocoa/RxCocoa-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxCocoa/RxCocoa-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "RxCocoaRuntime.h" 14 | #import "_RX.h" 15 | #import "_RXDelegateProxy.h" 16 | #import "_RXKVOObserver.h" 17 | #import "_RXObjCRuntime.h" 18 | #import "RxCocoa.h" 19 | 20 | FOUNDATION_EXPORT double RxCocoaVersionNumber; 21 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[]; 22 | 23 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxCocoa/RxCocoa.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxCocoa { 2 | umbrella header "RxCocoa-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxCocoa/RxCocoa.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxCocoa 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxSwift/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 4.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxSwift/RxSwift-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 4.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxSwift/RxSwift-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxSwift : NSObject 3 | @end 4 | @implementation PodsDummy_RxSwift 5 | @end 6 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxSwift/RxSwift-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxSwift/RxSwift-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double RxSwiftVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char RxSwiftVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxSwift/RxSwift.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxSwift { 2 | umbrella header "RxSwift-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/RxSwift/RxSwift.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxSwift 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxAtomic" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxSwift 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/SipHash/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.2.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/SipHash/SipHash-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.2.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/SipHash/SipHash-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SipHash : NSObject 3 | @end 4 | @implementation PodsDummy_SipHash 5 | @end 6 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/SipHash/SipHash-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/SipHash/SipHash-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double SipHashVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char SipHashVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/SipHash/SipHash.modulemap: -------------------------------------------------------------------------------- 1 | framework module SipHash { 2 | umbrella header "SipHash-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/SipHash/SipHash.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SipHash 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SipHash 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/SwiftFormat/SwiftFormat.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftFormat 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwiftFormat 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | -------------------------------------------------------------------------------- /ios/Pods/Target Support Files/SwiftLint/SwiftLint.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftLint 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwiftLint 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | -------------------------------------------------------------------------------- /ios/Source/Decoders/DatabaseDecoder.swift: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 Coinbase Inc. See LICENSE 2 | 3 | import CoreData 4 | 5 | final class DatabaseDecoder: Decoder { 6 | private let dictionary: [String: Any] 7 | 8 | var codingPath: [CodingKey] = [] 9 | var userInfo: [CodingUserInfoKey: Any] = [:] 10 | 11 | init(dictionary: [String: Any]) { 12 | self.dictionary = dictionary 13 | } 14 | 15 | func container(keyedBy _: Key.Type) throws -> KeyedDecodingContainer where Key: CodingKey { 16 | return KeyedDecodingContainer(DatabaseKeyedDecodingContainer(dictionary: dictionary)) 17 | } 18 | 19 | func unkeyedContainer() throws -> UnkeyedDecodingContainer { 20 | throw DatabaseDecoderError.decoderFunctionNotImplemented 21 | } 22 | 23 | func singleValueContainer() throws -> SingleValueDecodingContainer { 24 | throw DatabaseDecoderError.decoderFunctionNotImplemented 25 | } 26 | 27 | func decode(as type: T.Type) throws -> T { 28 | return try type.init(from: self) 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /ios/Source/Errors/DatabaseDecoderError.swift: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 Coinbase Inc. See LICENSE 2 | 3 | import Foundation 4 | 5 | /// Represents Database Errors 6 | enum DatabaseDecoderError: Error { 7 | /// Unable to decode model property 8 | case unableToDecodeModelProperty 9 | 10 | /// Decoder function not implemented 11 | case decoderFunctionNotImplemented 12 | } 13 | -------------------------------------------------------------------------------- /ios/Source/Errors/DatabaseError.swift: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 Coinbase Inc. See LICENSE 2 | 3 | import Foundation 4 | 5 | /// Represents Database Errors 6 | public enum DatabaseError: Error { 7 | /// Error thrown when db unable to store model 8 | case unableToStoreModelObject 9 | 10 | /// Error thrown when database context is not found 11 | case unableToFindDatabaseContext 12 | 13 | /// Error thrown when an invalid model is encountered during observation 14 | case unableToObserveModel 15 | 16 | /// Error thrown whenever an add/update/query operation is fired when DB is in `destroyed` state 17 | case databaseDestroyed 18 | 19 | /// Thrown when managed object model cannot be created during DB setup 20 | case unableToCreateManagedObjectModel 21 | 22 | /// Thrown when no managed object model is supplied 23 | case missingManagedObjectModel 24 | 25 | /// Thrown when database setup fails 26 | case unableToSetupDatabase 27 | } 28 | -------------------------------------------------------------------------------- /ios/Source/Extensions/MirrorChild+Databases.swift: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 Coinbase Inc. See LICENSE 2 | 3 | import Foundation 4 | 5 | extension Collection where Element == Mirror.Child { 6 | /// Converts array of mirror child pairs to a dictionary 7 | var asDictionary: [String: Any] { 8 | return reduce(into: [:]) { dict, keyValue in 9 | guard let label = keyValue.label else { return } 10 | 11 | if let optionalValue = keyValue.value as? OptionalProtocol { 12 | dict[label] = optionalValue.unwrap() 13 | } else { 14 | dict[label] = keyValue.value 15 | } 16 | } 17 | } 18 | } 19 | 20 | /// Needed to unwrap an `Optional` from `Any` data type 21 | private protocol OptionalProtocol { 22 | func unwrap() -> Any? 23 | } 24 | 25 | extension Optional: OptionalProtocol { 26 | func unwrap() -> Any? { 27 | return map { $0 } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /ios/Source/Extensions/NSManagedObject+Database.swift: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 Coinbase Inc. See LICENSE 2 | 3 | import CoreData 4 | 5 | extension NSManagedObject { 6 | /// Converts model object to NSManagedObject 7 | func modelObject() throws -> T { 8 | let encoded = self.encoded() 9 | let decoder = DatabaseDecoder(dictionary: encoded) 10 | 11 | return try decoder.decode(as: T.self) 12 | } 13 | 14 | // MARK: - Private helpers 15 | 16 | private func encoded() -> [String: Any] { 17 | let entity = self.entity 18 | var dictionary = [String: Any]() 19 | 20 | entity.attributesByName.forEach { attribute in 21 | let key = attribute.key 22 | 23 | guard let value = self.value(forKey: key) else { return } 24 | 25 | if attribute.value.attributeType == .booleanAttributeType, let value = value as? NSNumber { 26 | dictionary[key] = value.boolValue 27 | return 28 | } else if let wrapper = value as? DBDataTypeWrapper { 29 | dictionary[key] = wrapper.asModel.map { $0 } 30 | return 31 | } 32 | 33 | dictionary[key] = value 34 | } 35 | 36 | return dictionary 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /ios/Source/Models/DatabaseOperation.swift: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 Coinbase Inc. See LICENSE 2 | 3 | import Foundation 4 | 5 | /// Represents a database operation 6 | enum DatabaseOperation { 7 | /// Read only operation 8 | case read 9 | 10 | /// Write only operation 11 | case write 12 | } 13 | -------------------------------------------------------------------------------- /ios/Source/Models/DatabaseUpdate.swift: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 Coinbase Inc. See LICENSE 2 | 3 | import Foundation 4 | 5 | /// Represents a db update observed in `Database` 6 | public struct DatabaseUpdate { 7 | /// Inserted models 8 | public let insertedObjects: [T] 9 | 10 | /// Updated models 11 | public let updatedObjects: [T] 12 | 13 | /// Deleted models 14 | public let deletedObjects: [T] 15 | 16 | /// Refreshed models 17 | public let refreshedObjects: [T] 18 | } 19 | -------------------------------------------------------------------------------- /ios/Source/Models/DiskDatabaseOptions.swift: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 Coinbase Inc. See LICENSE 2 | 3 | import CoreData 4 | 5 | /// Options for Coredata sqlite database 6 | public struct DiskDatabaseOptions { 7 | /// Name of the xcdatamodeld file to use 8 | public let dbSchemaName: String 9 | 10 | /// Name of file where actual data will be stored 11 | public let dbStorageFilename: String 12 | 13 | /// Ordered list of xcdatamodel names. Primarily used to run progressive migrations. The last version in the 14 | /// list will be used as the final xcdatamodel. 15 | public let versions: [String] 16 | 17 | /// Bundle used to lookup xcdatamodeld file 18 | public let dataModelBundle: Bundle 19 | 20 | /// Filename where last executed version id is stored 21 | let currentMigrationVersionFilename: String 22 | 23 | public init( 24 | dbSchemaName: String, 25 | dbStorageFilename: String = "DataStore", 26 | versions: [String], 27 | dataModelBundle: Bundle 28 | ) throws { 29 | if versions.isEmpty { 30 | throw DatabaseError.missingManagedObjectModel 31 | } 32 | 33 | self.dbSchemaName = dbSchemaName 34 | self.dbStorageFilename = dbStorageFilename 35 | self.versions = versions 36 | self.dataModelBundle = dataModelBundle 37 | currentMigrationVersionFilename = "\(dbStorageFilename).migration" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /ios/Source/Models/MemoryDatabaseOptions.swift: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 Coinbase Inc. See LICENSE 2 | 3 | import Foundation 4 | 5 | /// Options for Coredata memory database 6 | public struct MemoryDatabaseOptions { 7 | /// Name of the xcdatamodeld file to use 8 | public let dbSchemaName: String 9 | 10 | /// Bundle used to lookup xcdatamodeld file 11 | public let dataModelBundle: Bundle 12 | 13 | public init(dbSchemaName: String, dataModelBundle: Bundle) { 14 | self.dbSchemaName = dbSchemaName 15 | self.dataModelBundle = dataModelBundle 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ios/Source/Module/Databases.h: -------------------------------------------------------------------------------- 1 | // 2 | // Databases.h 3 | // Databases 4 | // 5 | // Created by Hicham Bouabdallah on 10/21/18. 6 | // Copyright © 2018 Coinbase Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Databases. 12 | FOUNDATION_EXPORT double DatabasesVersionNumber; 13 | 14 | //! Project version string for Databases. 15 | FOUNDATION_EXPORT const unsigned char DatabasesVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /ios/Source/Module/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleDisplayName 8 | CBDatabase 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | 24 | 25 | -------------------------------------------------------------------------------- /ios/Source/Protocols/DBDataTypeWrapper.swift: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 Coinbase Inc. See LICENSE 2 | 3 | import Foundation 4 | 5 | /// This protocol is used to wrap custom non-NSObject datatype 6 | public protocol DBDataTypeWrapper: class, NSObjectProtocol, NSCoding, DBDataTypeEquality { 7 | /// Constructor with the wrapped custom datatype 8 | init?(model: Any) 9 | 10 | /// Returns original wrapped model 11 | var asModel: Any? { get } 12 | } 13 | -------------------------------------------------------------------------------- /ios/Source/Protocols/DatabaseStorage.swift: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 Coinbase Inc. See LICENSE 2 | 3 | import CoreData 4 | import RxSwift 5 | 6 | /// Represents database storage type 7 | protocol DatabaseStorage { 8 | /// CoreData's managed object context 9 | var context: NSManagedObjectContext { get } 10 | 11 | /// Perform database operation in private concurrent queue. 12 | /// 13 | /// - Parameters: 14 | /// - operation: Indicate the type of operation to execute 15 | /// - work: closure called when performing a database operation 16 | /// 17 | /// - Returns: Single wrapping model(s) involved in the db operation 18 | func perform(operation: DatabaseOperation, work: @escaping ((NSManagedObjectContext) throws -> T)) -> Single 19 | 20 | /// Delete sqlite file and marks it as destroyed. All read/write operations will fail 21 | func destroy() 22 | 23 | /// Delete the current database sqlite file. 24 | func reset() throws 25 | } 26 | -------------------------------------------------------------------------------- /ios/Source/Wrappers/BigIntDBWrapper.swift: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017-2019 Coinbase Inc. See LICENSE 2 | 3 | import BigInt 4 | 5 | /// DB datatype wrapper to allow `BigInt` storage in Database 6 | public final class BigIntDBWrapper: NSObject, DBDataTypeWrapper { 7 | private let model: BigInt 8 | 9 | public var asModel: Any? { return model } 10 | 11 | public required init?(model: Any) { 12 | guard let bigIntModel = model as? BigInt else { return nil } 13 | 14 | self.model = bigIntModel 15 | } 16 | 17 | public required init?(coder aDecoder: NSCoder) { 18 | guard 19 | let value = aDecoder.decodeObject(forKey: "model") as? String, 20 | let model = BigInt(value) 21 | else { return nil } 22 | 23 | self.model = model 24 | } 25 | 26 | public func encode(with aCoder: NSCoder) { 27 | aCoder.encode(String(model), forKey: "model") 28 | } 29 | 30 | public func isEqual(to otherWrapper: Any) -> Bool { 31 | guard let otherWrapper = otherWrapper as? BigIntDBWrapper else { return false } 32 | 33 | return model == otherWrapper.model 34 | } 35 | } 36 | --------------------------------------------------------------------------------