├── .clang-format ├── .github ├── ISSUE_TEMPLATE │ ├── ---1-report-an-issue.md │ ├── ---2-feature-request.md │ └── config.yml ├── dependabot.yml ├── pull_request_template.md └── workflows │ ├── ci.yml │ ├── release-automated.yml │ └── release-manual-docs.yml ├── .gitignore ├── .gitmodules ├── .releaserc ├── commit.hbs ├── footer.hbs ├── header.hbs └── template.hbs ├── .ruby-version ├── .swiftpm └── xcode │ └── package.xcworkspace │ └── contents.xcworkspacedata ├── Assets └── logo large.png ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── PATENTS ├── Package.resolved ├── Package.swift ├── Parse.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ ├── IDEWorkspaceChecks.plist │ ├── WorkspaceSettings.xcsettings │ └── swiftpm │ └── Package.resolved ├── Parse ├── Configurations │ ├── Parse-iOS-Dynamic.xcconfig │ ├── Parse-iOS.xcconfig │ ├── Parse-macOS.xcconfig │ ├── Parse-tvOS-Dynamic.xcconfig │ ├── Parse-tvOS.xcconfig │ ├── Parse-watchOS-Dynamic.xcconfig │ ├── Parse-watchOS.xcconfig │ ├── ParseUnitTests-iOS.xcconfig │ ├── ParseUnitTests-macOS.xcconfig │ └── Shared ├── Parse.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ ├── Parse-iOS-Dynamic.xcscheme │ │ ├── Parse-iOS.xcscheme │ │ ├── Parse-macOS.xcscheme │ │ ├── Parse-tvOS-Dynamic.xcscheme │ │ ├── Parse-tvOS.xcscheme │ │ ├── Parse-watchOS-Dynamic.xcscheme │ │ └── Parse-watchOS.xcscheme ├── Parse │ ├── Internal │ │ ├── ACL │ │ │ ├── DefaultACLController │ │ │ │ ├── PFDefaultACLController.h │ │ │ │ └── PFDefaultACLController.m │ │ │ ├── PFACLPrivate.h │ │ │ └── State │ │ │ │ ├── PFACLState.h │ │ │ │ ├── PFACLState.m │ │ │ │ ├── PFACLState_Private.h │ │ │ │ ├── PFMutableACLState.h │ │ │ │ └── PFMutableACLState.m │ │ ├── Analytics │ │ │ ├── Controller │ │ │ │ ├── PFAnalyticsController.h │ │ │ │ └── PFAnalyticsController.m │ │ │ ├── PFAnalytics_Private.h │ │ │ └── Utilities │ │ │ │ ├── PFAnalyticsUtilities.h │ │ │ │ └── PFAnalyticsUtilities.m │ │ ├── BFTask+Private.h │ │ ├── BFTask+Private.m │ │ ├── CloudCode │ │ │ ├── PFCloudCodeController.h │ │ │ └── PFCloudCodeController.m │ │ ├── Commands │ │ │ ├── CommandRunner │ │ │ │ ├── PFCommandRunning.h │ │ │ │ ├── PFCommandRunning.m │ │ │ │ ├── PFCommandRunningConstants.h │ │ │ │ ├── PFCommandRunningConstants.m │ │ │ │ ├── URLRequestConstructor │ │ │ │ │ ├── PFCommandURLRequestConstructor.h │ │ │ │ │ └── PFCommandURLRequestConstructor.m │ │ │ │ └── URLSession │ │ │ │ │ ├── PFURLSessionCommandRunner.h │ │ │ │ │ ├── PFURLSessionCommandRunner.m │ │ │ │ │ ├── PFURLSessionCommandRunner_Private.h │ │ │ │ │ └── Session │ │ │ │ │ ├── PFURLSession.h │ │ │ │ │ ├── PFURLSession.m │ │ │ │ │ ├── PFURLSession_Private.h │ │ │ │ │ └── TaskDelegate │ │ │ │ │ ├── PFURLSessionDataTaskDelegate.h │ │ │ │ │ ├── PFURLSessionDataTaskDelegate.m │ │ │ │ │ ├── PFURLSessionDataTaskDelegate_Private.h │ │ │ │ │ ├── PFURLSessionFileDownloadTaskDelegate.h │ │ │ │ │ ├── PFURLSessionFileDownloadTaskDelegate.m │ │ │ │ │ ├── PFURLSessionJSONDataTaskDelegate.h │ │ │ │ │ ├── PFURLSessionJSONDataTaskDelegate.m │ │ │ │ │ ├── PFURLSessionUploadTaskDelegate.h │ │ │ │ │ └── PFURLSessionUploadTaskDelegate.m │ │ │ ├── PFRESTAnalyticsCommand.h │ │ │ ├── PFRESTAnalyticsCommand.m │ │ │ ├── PFRESTCloudCommand.h │ │ │ ├── PFRESTCloudCommand.m │ │ │ ├── PFRESTCommand.h │ │ │ ├── PFRESTCommand.m │ │ │ ├── PFRESTCommand_Private.h │ │ │ ├── PFRESTConfigCommand.h │ │ │ ├── PFRESTConfigCommand.m │ │ │ ├── PFRESTFileCommand.h │ │ │ ├── PFRESTFileCommand.m │ │ │ ├── PFRESTObjectBatchCommand.h │ │ │ ├── PFRESTObjectBatchCommand.m │ │ │ ├── PFRESTObjectCommand.h │ │ │ ├── PFRESTObjectCommand.m │ │ │ ├── PFRESTPushCommand.h │ │ │ ├── PFRESTPushCommand.m │ │ │ ├── PFRESTQueryCommand.h │ │ │ ├── PFRESTQueryCommand.m │ │ │ ├── PFRESTSessionCommand.h │ │ │ ├── PFRESTSessionCommand.m │ │ │ ├── PFRESTUserCommand.h │ │ │ └── PFRESTUserCommand.m │ │ ├── Config │ │ │ ├── Controller │ │ │ │ ├── PFConfigController.h │ │ │ │ ├── PFConfigController.m │ │ │ │ ├── PFCurrentConfigController.h │ │ │ │ └── PFCurrentConfigController.m │ │ │ └── PFConfig_Private.h │ │ ├── FieldOperation │ │ │ ├── PFFieldOperation.h │ │ │ ├── PFFieldOperation.m │ │ │ ├── PFFieldOperationDecoder.h │ │ │ └── PFFieldOperationDecoder.m │ │ ├── File │ │ │ ├── Controller │ │ │ │ ├── PFFileController.h │ │ │ │ ├── PFFileController.m │ │ │ │ ├── PFFileStagingController.h │ │ │ │ ├── PFFileStagingController.m │ │ │ │ └── PFFileUploadResult.m │ │ │ ├── FileDataStream │ │ │ │ ├── PFFileDataStream.h │ │ │ │ └── PFFileDataStream.m │ │ │ ├── PFFileObject_Private.h │ │ │ └── State │ │ │ │ ├── PFFileState.h │ │ │ │ ├── PFFileState.m │ │ │ │ ├── PFFileState_Private.h │ │ │ │ ├── PFMutableFileState.h │ │ │ │ └── PFMutableFileState.m │ │ ├── HTTPRequest │ │ │ ├── PFHTTPRequest.h │ │ │ ├── PFHTTPURLRequestConstructor.h │ │ │ ├── PFHTTPURLRequestConstructor.m │ │ │ ├── PFURLConstructor.h │ │ │ └── PFURLConstructor.m │ │ ├── Installation │ │ │ ├── Constants │ │ │ │ ├── PFInstallationConstants.h │ │ │ │ └── PFInstallationConstants.m │ │ │ ├── Controller │ │ │ │ ├── PFInstallationController.h │ │ │ │ └── PFInstallationController.m │ │ │ ├── CurrentInstallationController │ │ │ │ ├── PFCurrentInstallationController.h │ │ │ │ └── PFCurrentInstallationController.m │ │ │ ├── InstallationIdentifierStore │ │ │ │ ├── PFInstallationIdentifierStore.h │ │ │ │ ├── PFInstallationIdentifierStore.m │ │ │ │ └── PFInstallationIdentifierStore_Private.h │ │ │ └── PFInstallationPrivate.h │ │ ├── KeyValueCache │ │ │ ├── PFKeyValueCache.h │ │ │ ├── PFKeyValueCache.m │ │ │ └── PFKeyValueCache_Private.h │ │ ├── LocalDataStore │ │ │ ├── OfflineQueryLogic │ │ │ │ ├── PFOfflineQueryLogic.h │ │ │ │ └── PFOfflineQueryLogic.m │ │ │ ├── OfflineStore │ │ │ │ ├── PFOfflineStore.h │ │ │ │ └── PFOfflineStore.m │ │ │ ├── Pin │ │ │ │ ├── PFPin.h │ │ │ │ └── PFPin.m │ │ │ └── SQLite │ │ │ │ ├── PFSQLiteDatabase.h │ │ │ │ ├── PFSQLiteDatabase.m │ │ │ │ ├── PFSQLiteDatabaseController.h │ │ │ │ ├── PFSQLiteDatabaseController.m │ │ │ │ ├── PFSQLiteDatabaseResult.h │ │ │ │ ├── PFSQLiteDatabaseResult.m │ │ │ │ ├── PFSQLiteDatabase_Private.h │ │ │ │ ├── PFSQLiteStatement.h │ │ │ │ └── PFSQLiteStatement.m │ │ ├── MultiProcessLock │ │ │ ├── PFMultiProcessFileLock.h │ │ │ ├── PFMultiProcessFileLock.m │ │ │ ├── PFMultiProcessFileLockController.h │ │ │ └── PFMultiProcessFileLockController.m │ │ ├── Object │ │ │ ├── BatchController │ │ │ │ ├── PFObjectBatchController.h │ │ │ │ └── PFObjectBatchController.m │ │ │ ├── Coder │ │ │ │ └── File │ │ │ │ │ ├── PFObjectFileCoder.h │ │ │ │ │ ├── PFObjectFileCoder.m │ │ │ │ │ ├── PFObjectFileCodingLogic.h │ │ │ │ │ └── PFObjectFileCodingLogic.m │ │ │ ├── Constants │ │ │ │ ├── PFObjectConstants.h │ │ │ │ └── PFObjectConstants.m │ │ │ ├── Controller │ │ │ │ ├── OfflineController │ │ │ │ │ ├── PFOfflineObjectController.h │ │ │ │ │ └── PFOfflineObjectController.m │ │ │ │ ├── PFObjectController.h │ │ │ │ ├── PFObjectController.m │ │ │ │ ├── PFObjectController_Private.h │ │ │ │ └── PFObjectControlling.h │ │ │ ├── CurrentController │ │ │ │ └── PFCurrentObjectControlling.h │ │ │ ├── EstimatedData │ │ │ │ ├── PFObjectEstimatedData.h │ │ │ │ └── PFObjectEstimatedData.m │ │ │ ├── FilePersistence │ │ │ │ ├── PFObjectFilePersistenceController.h │ │ │ │ └── PFObjectFilePersistenceController.m │ │ │ ├── LocalIdStore │ │ │ │ ├── PFObjectLocalIdStore.h │ │ │ │ └── PFObjectLocalIdStore.m │ │ │ ├── OperationSet │ │ │ │ ├── PFOperationSet.h │ │ │ │ └── PFOperationSet.m │ │ │ ├── PFObjectPrivate.h │ │ │ ├── PinningStore │ │ │ │ ├── PFPinningObjectStore.h │ │ │ │ └── PFPinningObjectStore.m │ │ │ ├── State │ │ │ │ ├── PFMutableObjectState.h │ │ │ │ ├── PFMutableObjectState.m │ │ │ │ ├── PFObjectState.h │ │ │ │ ├── PFObjectState.m │ │ │ │ └── PFObjectState_Private.h │ │ │ ├── Subclassing │ │ │ │ ├── PFObjectSubclassInfo.h │ │ │ │ ├── PFObjectSubclassInfo.m │ │ │ │ ├── PFObjectSubclassingController.h │ │ │ │ └── PFObjectSubclassingController.m │ │ │ └── Utilities │ │ │ │ ├── PFObjectUtilities.h │ │ │ │ └── PFObjectUtilities.m │ │ ├── PFAlertView.h │ │ ├── PFAlertView.m │ │ ├── PFApplication.h │ │ ├── PFApplication.m │ │ ├── PFAssert.h │ │ ├── PFAsyncTaskQueue.h │ │ ├── PFAsyncTaskQueue.m │ │ ├── PFBase64Encoder.h │ │ ├── PFBase64Encoder.m │ │ ├── PFBaseState.h │ │ ├── PFBaseState.m │ │ ├── PFCategoryLoader.h │ │ ├── PFCategoryLoader.m │ │ ├── PFCommandCache.h │ │ ├── PFCommandCache.m │ │ ├── PFCommandCache_Private.h │ │ ├── PFCommandResult.h │ │ ├── PFCommandResult.m │ │ ├── PFCoreDataProvider.h │ │ ├── PFCoreLocalization.h │ │ ├── PFCoreLocalization.m │ │ ├── PFCoreManager.h │ │ ├── PFCoreManager.m │ │ ├── PFDataProvider.h │ │ ├── PFDateFormatter.h │ │ ├── PFDateFormatter.m │ │ ├── PFDevice.h │ │ ├── PFDevice.m │ │ ├── PFErrorUtilities.h │ │ ├── PFErrorUtilities.m │ │ ├── PFEventuallyPin.h │ │ ├── PFEventuallyPin.m │ │ ├── PFEventuallyQueue.h │ │ ├── PFEventuallyQueue.m │ │ ├── PFEventuallyQueue_Private.h │ │ ├── PFFileManager.h │ │ ├── PFFileManager.m │ │ ├── PFGeoPointPrivate.h │ │ ├── PFHash.h │ │ ├── PFHash.m │ │ ├── PFInternalUtils.h │ │ ├── PFInternalUtils.m │ │ ├── PFJSONSerialization.h │ │ ├── PFJSONSerialization.m │ │ ├── PFKeychainStore.h │ │ ├── PFKeychainStore.m │ │ ├── PFLocationManager.h │ │ ├── PFLocationManager.m │ │ ├── PFLogging.h │ │ ├── PFMacros.h │ │ ├── PFMemoryEventuallyQueue.h │ │ ├── PFMemoryEventuallyQueue.m │ │ ├── PFMulticastDelegate.h │ │ ├── PFMulticastDelegate.m │ │ ├── PFNetworkCommand.h │ │ ├── PFPinningEventuallyQueue.h │ │ ├── PFPinningEventuallyQueue.m │ │ ├── PFPolygonPrivate.h │ │ ├── PFReachability.h │ │ ├── PFReachability.m │ │ ├── PFSystemLogger.h │ │ ├── PFSystemLogger.m │ │ ├── PFTaskQueue.h │ │ ├── PFTaskQueue.m │ │ ├── PFWeakValue.h │ │ ├── PFWeakValue.m │ │ ├── ParseClientConfiguration_Private.h │ │ ├── ParseInternal.h │ │ ├── ParseManager.h │ │ ├── ParseManager.m │ │ ├── ParseManagerPrivate.h │ │ ├── ParseModule.h │ │ ├── ParseModule.m │ │ ├── Parse_Private.h │ │ ├── Persistence │ │ │ ├── Group │ │ │ │ ├── PFFilePersistenceGroup.h │ │ │ │ ├── PFFilePersistenceGroup.m │ │ │ │ ├── PFPersistenceGroup.h │ │ │ │ ├── PFUserDefaultsPersistenceGroup.h │ │ │ │ └── PFUserDefaultsPersistenceGroup.m │ │ │ ├── PFPersistenceController.h │ │ │ └── PFPersistenceController.m │ │ ├── Product │ │ │ ├── PFProduct+Private.h │ │ │ └── ProductsRequestHandler │ │ │ │ ├── PFProductsRequestHandler.h │ │ │ │ └── PFProductsRequestHandler.m │ │ ├── PropertyInfo │ │ │ ├── PFPropertyInfo.h │ │ │ ├── PFPropertyInfo.m │ │ │ ├── PFPropertyInfo_Private.h │ │ │ ├── PFPropertyInfo_Runtime.h │ │ │ └── PFPropertyInfo_Runtime.m │ │ ├── Purchase │ │ │ ├── Controller │ │ │ │ ├── PFPurchaseController.h │ │ │ │ └── PFPurchaseController.m │ │ │ └── PaymentTransactionObserver │ │ │ │ ├── PFPaymentTransactionObserver.h │ │ │ │ ├── PFPaymentTransactionObserver.m │ │ │ │ └── PFPaymentTransactionObserver_Private.h │ │ ├── Push │ │ │ ├── ChannelsController │ │ │ │ ├── PFPushChannelsController.h │ │ │ │ └── PFPushChannelsController.m │ │ │ ├── Controller │ │ │ │ ├── PFPushController.h │ │ │ │ └── PFPushController.m │ │ │ ├── Manager │ │ │ │ ├── PFPushManager.h │ │ │ │ └── PFPushManager.m │ │ │ ├── PFPushPrivate.h │ │ │ ├── State │ │ │ │ ├── PFMutablePushState.h │ │ │ │ ├── PFMutablePushState.m │ │ │ │ ├── PFPushState.h │ │ │ │ ├── PFPushState.m │ │ │ │ └── PFPushState_Private.h │ │ │ └── Utilites │ │ │ │ ├── PFPushUtilities.h │ │ │ │ └── PFPushUtilities.m │ │ ├── Query │ │ │ ├── Controller │ │ │ │ ├── PFCachedQueryController.h │ │ │ │ ├── PFCachedQueryController.m │ │ │ │ ├── PFOfflineQueryController.h │ │ │ │ ├── PFOfflineQueryController.m │ │ │ │ ├── PFQueryController.h │ │ │ │ └── PFQueryController.m │ │ │ ├── PFQueryConstants.h │ │ │ ├── PFQueryConstants.m │ │ │ ├── PFQueryPrivate.h │ │ │ ├── State │ │ │ │ ├── PFMutableQueryState.h │ │ │ │ ├── PFMutableQueryState.m │ │ │ │ ├── PFQueryState.h │ │ │ │ ├── PFQueryState.m │ │ │ │ └── PFQueryState_Private.h │ │ │ └── Utilities │ │ │ │ ├── PFQueryUtilities.h │ │ │ │ └── PFQueryUtilities.m │ │ ├── Relation │ │ │ ├── PFRelationPrivate.h │ │ │ └── State │ │ │ │ ├── PFMutableRelationState.h │ │ │ │ ├── PFMutableRelationState.m │ │ │ │ ├── PFRelationState.h │ │ │ │ ├── PFRelationState.m │ │ │ │ └── PFRelationState_Private.h │ │ ├── Session │ │ │ ├── Controller │ │ │ │ ├── PFSessionController.h │ │ │ │ └── PFSessionController.m │ │ │ ├── PFSession_Private.h │ │ │ └── Utilities │ │ │ │ ├── PFSessionUtilities.h │ │ │ │ └── PFSessionUtilities.m │ │ ├── ThreadSafety │ │ │ ├── PFThreadsafety.h │ │ │ └── PFThreadsafety.m │ │ └── User │ │ │ ├── AuthenticationProviders │ │ │ ├── Controller │ │ │ │ ├── PFUserAuthenticationController.h │ │ │ │ └── PFUserAuthenticationController.m │ │ │ └── Providers │ │ │ │ └── Anonymous │ │ │ │ ├── PFAnonymousAuthenticationProvider.h │ │ │ │ ├── PFAnonymousAuthenticationProvider.m │ │ │ │ └── PFAnonymousUtils_Private.h │ │ │ ├── Coder │ │ │ └── File │ │ │ │ ├── PFUserFileCodingLogic.h │ │ │ │ └── PFUserFileCodingLogic.m │ │ │ ├── Constants │ │ │ ├── PFUserConstants.h │ │ │ └── PFUserConstants.m │ │ │ ├── Controller │ │ │ ├── PFUserController.h │ │ │ └── PFUserController.m │ │ │ ├── CurrentUserController │ │ │ ├── PFCurrentUserController.h │ │ │ └── PFCurrentUserController.m │ │ │ ├── PFUserPrivate.h │ │ │ └── State │ │ │ ├── PFMutableUserState.h │ │ │ ├── PFMutableUserState.m │ │ │ ├── PFUserState.h │ │ │ ├── PFUserState.m │ │ │ └── PFUserState_Private.h │ ├── Resources │ │ ├── Parse-OSX.Info.plist │ │ ├── Parse-iOS.Info.plist │ │ ├── Parse-tvOS.Info.plist │ │ ├── Parse-watchOS.Info.plist │ │ └── en.lproj │ │ │ └── Parse.strings │ └── Source │ │ ├── PFACL.h │ │ ├── PFACL.m │ │ ├── PFAnalytics.h │ │ ├── PFAnalytics.m │ │ ├── PFAnonymousUtils+Deprecated.h │ │ ├── PFAnonymousUtils.h │ │ ├── PFAnonymousUtils.m │ │ ├── PFCloud+Deprecated.h │ │ ├── PFCloud+Synchronous.h │ │ ├── PFCloud.h │ │ ├── PFCloud.m │ │ ├── PFConfig+Synchronous.h │ │ ├── PFConfig.h │ │ ├── PFConfig.m │ │ ├── PFConstants.h │ │ ├── PFConstants.m │ │ ├── PFDecoder.h │ │ ├── PFDecoder.m │ │ ├── PFEncoder.h │ │ ├── PFEncoder.m │ │ ├── PFFileObject+Deprecated.h │ │ ├── PFFileObject+Synchronous.h │ │ ├── PFFileObject.h │ │ ├── PFFileObject.m │ │ ├── PFFileUploadController.h │ │ ├── PFFileUploadResult.h │ │ ├── PFGeoPoint.h │ │ ├── PFGeoPoint.m │ │ ├── PFInstallation.h │ │ ├── PFInstallation.m │ │ ├── PFNetworkActivityIndicatorManager.h │ │ ├── PFNetworkActivityIndicatorManager.m │ │ ├── PFObject+Deprecated.h │ │ ├── PFObject+Subclass.h │ │ ├── PFObject+Synchronous.h │ │ ├── PFObject.h │ │ ├── PFObject.m │ │ ├── PFPolygon.h │ │ ├── PFPolygon.m │ │ ├── PFProduct.h │ │ ├── PFProduct.m │ │ ├── PFPurchase.h │ │ ├── PFPurchase.m │ │ ├── PFPush+Deprecated.h │ │ ├── PFPush+Synchronous.h │ │ ├── PFPush.h │ │ ├── PFPush.m │ │ ├── PFQuery+Deprecated.h │ │ ├── PFQuery+Synchronous.h │ │ ├── PFQuery.h │ │ ├── PFQuery.m │ │ ├── PFRelation.h │ │ ├── PFRelation.m │ │ ├── PFRole.h │ │ ├── PFRole.m │ │ ├── PFSession.h │ │ ├── PFSession.m │ │ ├── PFSubclassing.h │ │ ├── PFUser+Deprecated.h │ │ ├── PFUser+Synchronous.h │ │ ├── PFUser.h │ │ ├── PFUser.m │ │ ├── PFUserAuthenticationDelegate.h │ │ ├── Parse.h │ │ ├── Parse.m │ │ ├── ParseClientConfiguration.h │ │ └── ParseClientConfiguration.m ├── ParseUnitTests-iOS-host │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Main.storyboard │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── Tests │ ├── Other │ │ ├── Cache │ │ │ ├── TestCache.h │ │ │ └── TestCache.m │ │ ├── ExtensionDataSharing │ │ │ ├── PFExtensionDataSharingTestHelper.h │ │ │ └── PFExtensionDataSharingTestHelper.m │ │ ├── FileManager │ │ │ ├── TestFileManager.h │ │ │ └── TestFileManager.m │ │ ├── LocationManager │ │ │ ├── CLLocationManager+TestAdditions.h │ │ │ └── CLLocationManager+TestAdditions.m │ │ ├── NetworkMocking │ │ │ ├── PFMockURLProtocol.h │ │ │ ├── PFMockURLProtocol.m │ │ │ ├── PFMockURLResponse.h │ │ │ └── PFMockURLResponse.m │ │ ├── OCMock │ │ │ ├── OCMock+Parse.h │ │ │ └── OCMock+Parse.m │ │ ├── StoreKitMocking │ │ │ ├── PFTestSKPaymentQueue.h │ │ │ ├── PFTestSKPaymentQueue.m │ │ │ ├── PFTestSKPaymentTransaction.h │ │ │ ├── PFTestSKPaymentTransaction.m │ │ │ ├── PFTestSKProduct.h │ │ │ ├── PFTestSKProduct.m │ │ │ ├── PFTestSKProductsRequest.h │ │ │ ├── PFTestSKProductsRequest.m │ │ │ ├── PFTestSKProductsResponse.h │ │ │ └── PFTestSKProductsResponse.m │ │ ├── Swift │ │ │ └── SwiftSubclass.swift │ │ ├── Swizzling │ │ │ ├── PFTestSwizzledMethod.h │ │ │ ├── PFTestSwizzledMethod.m │ │ │ ├── PFTestSwizzlingUtilities.h │ │ │ └── PFTestSwizzlingUtilities.m │ │ └── TestCases │ │ │ ├── TestCase │ │ │ ├── PFTestCase.h │ │ │ └── PFTestCase.m │ │ │ └── UnitTestCase │ │ │ ├── PFUnitTestCase.h │ │ │ └── PFUnitTestCase.m │ ├── Resources │ │ ├── ParseUnitTests-OSX-Info.plist │ │ └── ParseUnitTests-iOS-Info.plist │ ├── Unit │ │ ├── ACLDefaultTests.m │ │ ├── ACLStateTests.m │ │ ├── ACLTests.m │ │ ├── AlertViewTests.m │ │ ├── AnalyticsCommandTests.m │ │ ├── AnalyticsControllerTests.m │ │ ├── AnalyticsUnitTests.m │ │ ├── AnalyticsUtilitiesTests.m │ │ ├── AnonymousAuthenticationProviderTests.m │ │ ├── AnonymousUtilsTests.m │ │ ├── BaseStateTests.m │ │ ├── CloudCodeControllerTests.m │ │ ├── CloudCommandTests.m │ │ ├── CloudUnitTests.m │ │ ├── CommandResultTests.m │ │ ├── CommandURLRequestConstructorTests.m │ │ ├── CommandUnitTests.m │ │ ├── ConfigCommandTests.m │ │ ├── ConfigControllerTests.m │ │ ├── ConfigUnitTests.m │ │ ├── CurrentConfigControllerTests.m │ │ ├── DateFormatterTests.m │ │ ├── DecoderTests.m │ │ ├── DefaultACLControllerTests.m │ │ ├── DeviceTests.m │ │ ├── ExtensionDataSharingMobileTests.m │ │ ├── ExtensionDataSharingTests.m │ │ ├── FieldOperationDecoderTests.m │ │ ├── FieldOperationTests.m │ │ ├── FileCommandTests.m │ │ ├── FileControllerTests.m │ │ ├── FileDataStreamTests.m │ │ ├── FileStateTests.m │ │ ├── FileUnitTests.m │ │ ├── GeoPointLocationTests.m │ │ ├── GeoPointUnitTests.m │ │ ├── HashTests.m │ │ ├── IncrementUnitTests.m │ │ ├── InstallationIdentifierUnitTests.m │ │ ├── InstallationUnitTests.m │ │ ├── KeyValueCacheTests.m │ │ ├── KeychainStoreTests.m │ │ ├── LocationManagerMobileTests.m │ │ ├── LocationManagerTests.m │ │ ├── ObjectBatchCommandTests.m │ │ ├── ObjectBatchControllerTests.m │ │ ├── ObjectCommandTests.m │ │ ├── ObjectEstimatedDataTests.m │ │ ├── ObjectFileCoderTests.m │ │ ├── ObjectFileCodingLogicTests.m │ │ ├── ObjectFilePersistenceControllerTests.m │ │ ├── ObjectLocalIdStoreTests.m │ │ ├── ObjectOfflineTests.m │ │ ├── ObjectPinTests.m │ │ ├── ObjectStateTests.m │ │ ├── ObjectSubclassPropertiesTests.m │ │ ├── ObjectSubclassTests.m │ │ ├── ObjectSubclassingControllerTests.m │ │ ├── ObjectUnitTests.m │ │ ├── ObjectUtilitiesTests.m │ │ ├── OfflineQueryControllerTests.m │ │ ├── OfflineQueryLogicUnitTests.m │ │ ├── OperationSetUnitTests.m │ │ ├── ParseClientConfigurationTests.m │ │ ├── ParseModuleUnitTests.m │ │ ├── ParseSetupUnitTests.m │ │ ├── PinUnitTests.m │ │ ├── PinningObjectStoreTests.m │ │ ├── PolygonUnitTests.m │ │ ├── ProductTests.m │ │ ├── PropertyInfoTests.m │ │ ├── PurchaseControllerTests.m │ │ ├── PurchaseUnitTests.m │ │ ├── PushChannelsControllerTests.m │ │ ├── PushCommandTests.m │ │ ├── PushControllerTests.m │ │ ├── PushManagerTests.m │ │ ├── PushMobileTests.m │ │ ├── PushStateTests.m │ │ ├── PushUnitTests.m │ │ ├── QueryCachedControllerTests.m │ │ ├── QueryControllerUnitTests.m │ │ ├── QueryPredicateUnitTests.m │ │ ├── QueryStateUnitTests.m │ │ ├── QueryUnitTests.m │ │ ├── QueryUtilitiesTests.m │ │ ├── RelationStateTests.m │ │ ├── RelationUnitTests.m │ │ ├── RoleUnitTests.m │ │ ├── SQLiteDatabaseTest.m │ │ ├── SessionControllerTests.m │ │ ├── SessionUnitTests.m │ │ ├── SessionUtilitiesTests.m │ │ ├── URLConstructorTests.m │ │ ├── URLSessionCommandRunnerTests.m │ │ ├── URLSessionDataTaskDelegateTests.m │ │ ├── URLSessionTests.m │ │ ├── URLSessionUploadTaskDelegateTests.m │ │ ├── UserCommandTests.m │ │ ├── UserControllerTests.m │ │ ├── UserFileCodingLogicTests.m │ │ └── UserUnitTests.m │ └── testServer.config └── third_party_licenses.txt ├── ParseLiveQuery ├── .gitignore ├── Examples │ ├── LiveQueryDemo-ObjC.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── LiveQueryDemo-ObjC.xcscheme │ ├── LiveQueryDemo-ObjC │ │ ├── ChatRoomManager.h │ │ ├── ChatRoomManager.m │ │ ├── Info.plist │ │ ├── Message.h │ │ ├── Message.m │ │ ├── Room.h │ │ ├── Room.m │ │ └── main.m │ ├── LiveQueryDemo.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── LiveQueryDemo.xcscheme │ └── LiveQueryDemo │ │ ├── Info.plist │ │ ├── Message.swift │ │ ├── Room.swift │ │ └── main.swift ├── ParseLiveQuery-tvOS │ ├── Info.plist │ └── ParseLiveQuery_tvOS.h ├── ParseLiveQuery-watchOS │ ├── Info.plist │ └── ParseLiveQuery_watchOS.h ├── ParseLiveQuery.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ ├── ParseLiveQuery-OSX.xcscheme │ │ ├── ParseLiveQuery-iOS.xcscheme │ │ ├── ParseLiveQuery-tvOS.xcscheme │ │ └── ParseLiveQuery-watchOS.xcscheme └── ParseLiveQuery │ ├── Client.swift │ ├── Internal │ ├── ClientPrivate.swift │ ├── Common.swift │ ├── Errors.swift │ ├── Operation.swift │ └── QueryEncoder.swift │ ├── ObjCCompat.swift │ ├── PFQuery+Subscribe.swift │ ├── Parse+LiveQuery.swift │ ├── Resources │ └── Info.plist │ └── Subscription.swift ├── ParseStarterProject ├── .gitignore ├── OSX │ ├── ParseOSXStarterProject-Swift │ │ ├── ParseOSXStarterProject-Swift.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── ParseOSXStarterProject │ │ │ └── AppDelegate.swift │ │ └── Resources │ │ │ ├── Base.lproj │ │ │ └── MainMenu.xib │ │ │ ├── Images.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Info.plist │ └── ParseOSXStarterProject │ │ ├── ParseOSXStarterProject.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── ParseOSXStarterProject │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ └── main.m │ │ └── Resources │ │ ├── Base.lproj │ │ └── MainMenu.xib │ │ ├── Info.plist │ │ └── en.lproj │ │ ├── Credits.rtf │ │ └── InfoPlist.strings ├── iOS │ ├── ParseStarterProject-Swift │ │ ├── ParseStarterProject-Swift.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── ParseStarterProject │ │ │ ├── AppDelegate.swift │ │ │ └── ViewController.swift │ │ └── Resources │ │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ └── Launch.storyboard │ └── ParseStarterProject │ │ ├── ParseStarterProject.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── ParseStarterProject │ │ ├── ParseStarterProjectAppDelegate.h │ │ ├── ParseStarterProjectAppDelegate.m │ │ ├── ParseStarterProjectViewController.h │ │ ├── ParseStarterProjectViewController.m │ │ └── main.m │ │ └── Resources │ │ ├── Base.lproj │ │ ├── MainWindow.xib │ │ └── ParseStarterProjectViewController.xib │ │ ├── Default-568h@2x.png │ │ ├── Default.png │ │ ├── Default@2x.png │ │ ├── Info.plist │ │ └── en.lproj │ │ └── InfoPlist.strings ├── tvOS │ └── ParseStarterProject-Swift │ │ ├── ParseStarter-Swift.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── ParseStarter │ │ ├── AppDelegate.swift │ │ ├── Base.lproj │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── ViewController.swift └── watchOS │ └── ParseStarterProject-Swift │ ├── ParseStarter Extension │ ├── ExtensionDelegate.swift │ ├── Info.plist │ └── InterfaceController.swift │ ├── ParseStarter-Swift.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ ├── ParseStarter │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ └── Interface.storyboard │ └── Info.plist │ ├── ParseStarterProject │ ├── AppDelegate.swift │ └── ViewController.swift │ └── Resources │ ├── Base.lproj │ └── Main.storyboard │ ├── Images.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── LaunchImage.launchimage │ │ └── Contents.json │ └── Info.plist ├── README.md ├── Rakefile ├── Scripts └── jazzy.sh ├── Tests └── Parse-SDK-iOS-OSXTests │ └── Parse_SDK_iOS_OSXTests.swift ├── package-lock.json ├── package.json └── release.config.js /.clang-format: -------------------------------------------------------------------------------- 1 | Vendor/xctoolchain/.clang-format -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/---2-feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "\U0001F4A1 Request a feature" 3 | about: Suggest new functionality or an enhancement of existing functionality. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | ### New Feature / Enhancement Checklist 11 | 16 | 17 | - [ ] I am not disclosing a [vulnerability](https://github.com/parse-community/Parse-SDK-iOS-OSX/security/policy). 18 | - [ ] I am not just asking a [question](https://github.com/parse-community/.github/blob/main/SUPPORT.md). 19 | - [ ] I have searched through [existing issues](https://github.com/parse-community/Parse-SDK-iOS-OSX/issues?q=is%3Aissue). 20 | 21 | ### Current Limitation 22 | 23 | 24 | ### Feature / Enhancement Description 25 | 26 | 27 | ### Example Use Case 28 | 29 | 30 | ### Alternatives / Workarounds 31 | 32 | 33 | ### 3rd Party References 34 | 35 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: 🙋🏽‍♀️ Getting help with code 4 | url: https://stackoverflow.com/questions/tagged/parse-platform 5 | about: Get help with code-level questions on Stack Overflow. 6 | - name: 🙋 Getting general help 7 | url: https://community.parseplatform.org 8 | about: Get help with other questions on our Community Forum. 9 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # Dependabot dependency updates 2 | # Docs: https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 3 | 4 | version: 2 5 | updates: 6 | - package-ecosystem: "npm" 7 | # Location of package-lock.json 8 | directory: "/" 9 | # Check daily for updates 10 | schedule: 11 | interval: "daily" 12 | commit-message: 13 | # Set commit message prefix 14 | prefix: "refactor" 15 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | ### New Pull Request Checklist 2 | 7 | 8 | - [ ] I am not disclosing a [vulnerability](https://github.com/parse-community/Parse-SDK-iOS-OSX/security/policy). 9 | - [ ] I am creating this PR in reference to an [issue](https://github.com/parse-community/Parse-SDK-iOS-OSX/issues?q=is%3Aissue). 10 | 11 | ### Issue Description 12 | 13 | 14 | Closes: FILL_THIS_OUT 15 | 16 | ### Approach 17 | 18 | 19 | ### TODOs before merging 20 | 24 | 25 | - [ ] Add tests 26 | - [ ] Add changes to documentation (guides, repository pages, in-code descriptions) 27 | -------------------------------------------------------------------------------- /.github/workflows/release-manual-docs.yml: -------------------------------------------------------------------------------- 1 | name: release-manual-docs 2 | on: 3 | workflow_dispatch: 4 | inputs: 5 | tag: 6 | default: '' 7 | description: 'Version tag:' 8 | env: 9 | CI_XCODE_16: /Applications/Xcode_16.1.0.app/Contents/Developer 10 | 11 | jobs: 12 | publish-docs: 13 | if: github.event.inputs.tag != '' 14 | runs-on: macos-15 15 | steps: 16 | - name: Checkout repository 17 | uses: actions/checkout@v4 18 | with: 19 | ref: ${{ github.event.inputs.tag }} 20 | - name: Setup Ruby 21 | uses: ruby/setup-ruby@v1 22 | with: 23 | ruby-version: '3.1.0' 24 | bundler-cache: true 25 | - name: Submodules 26 | run: git submodule update --init --recursive 27 | - name: Create Jazzy Docs 28 | run: | 29 | ./Scripts/jazzy.sh 30 | env: 31 | DEVELOPER_DIR: ${{ env.CI_XCODE_16 }} 32 | - name: Deploy Jazzy Docs 33 | uses: peaceiris/actions-gh-pages@v3 34 | with: 35 | github_token: ${{ secrets.GITHUB_TOKEN }} 36 | publish_dir: ./docs 37 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## OS X 2 | .DS_Store 3 | 4 | ## Build generated 5 | .build/ 6 | build/ 7 | DerivedData 8 | OCMock.framework 9 | 10 | ## Various settings 11 | *.pbxuser 12 | !default.pbxuser 13 | *.mode1v3 14 | !default.mode1v3 15 | *.mode2v3 16 | !default.mode2v3 17 | *.perspectivev3 18 | !default.perspectivev3 19 | xcuserdata 20 | 21 | ## Other 22 | *.xccheckout 23 | *.moved-aside 24 | *.xcuserstate 25 | *.xcscmblueprint 26 | 27 | ## Obj-C/Swift specific 28 | *.hmap 29 | *.ipa 30 | 31 | ## Dependency Managers 32 | Pods/ 33 | Carthage/Build 34 | Carthage/Checkouts 35 | docs/ 36 | ./Bolts 37 | 38 | ## AppCode 39 | .idea/ 40 | 41 | # VSC 42 | .project 43 | 44 | # Node 45 | node_modules/ 46 | npm-debug.log 47 | 48 | # Ruby 49 | .bundle 50 | Vendor/ 51 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Vendor/xctoolchain"] 2 | path = Vendor/xctoolchain 3 | url = https://github.com/parse-community/xctoolchain.git 4 | -------------------------------------------------------------------------------- /.releaserc/footer.hbs: -------------------------------------------------------------------------------- 1 | {{#if noteGroups}} 2 | {{#each noteGroups}} 3 | 4 | ### {{title}} 5 | 6 | {{#each notes}} 7 | * {{#if commit.scope}}**{{commit.scope}}:** {{/if}}{{text}} ([{{commit.shortHash}}]({{commit.shortHash}})) 8 | {{/each}} 9 | {{/each}} 10 | 11 | {{/if}} 12 | -------------------------------------------------------------------------------- /.releaserc/header.hbs: -------------------------------------------------------------------------------- 1 | {{#if isPatch~}} 2 | ## 3 | {{~else~}} 4 | # 5 | {{~/if}} {{#if @root.linkCompare~}} 6 | [{{version}}]( 7 | {{~#if @root.repository~}} 8 | {{~#if @root.host}} 9 | {{~@root.host}}/ 10 | {{~/if}} 11 | {{~#if @root.owner}} 12 | {{~@root.owner}}/ 13 | {{~/if}} 14 | {{~@root.repository}} 15 | {{~else}} 16 | {{~@root.repoUrl}} 17 | {{~/if~}} 18 | /compare/{{previousTag}}...{{currentTag}}) 19 | {{~else}} 20 | {{~version}} 21 | {{~/if}} 22 | {{~#if title}} "{{title}}" 23 | {{~/if}} 24 | {{~#if date}} ({{date}}) 25 | {{/if}} 26 | -------------------------------------------------------------------------------- /.releaserc/template.hbs: -------------------------------------------------------------------------------- 1 | {{> header}} 2 | 3 | {{#each commitGroups}} 4 | 5 | {{#if title}} 6 | ### {{title}} 7 | 8 | {{/if}} 9 | {{#each commits}} 10 | {{> commit root=@root}} 11 | {{/each}} 12 | {{/each}} 13 | 14 | {{> footer}} 15 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | ruby-3.1.0 2 | -------------------------------------------------------------------------------- /.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Assets/logo large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/parse-community/Parse-SDK-iOS-OSX/e270078541dbe87a8471a7824808755d4120a365/Assets/logo large.png -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # Docs 4 | gem 'jazzy', '0.15.3' 5 | 6 | # Development 7 | gem 'xcpretty', '0.3.0' 8 | gem 'rake', '13.2.1' 9 | gem 'plist', '3.7.1' 10 | -------------------------------------------------------------------------------- /Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "object": { 3 | "pins": [ 4 | { 5 | "package": "Bolts", 6 | "repositoryURL": "https://github.com/parse-community/Bolts-ObjC.git", 7 | "state": { 8 | "branch": null, 9 | "revision": "1eee96ad3bcfc8964c0a5815ce94f491eb6ac8c2", 10 | "version": "1.10.0" 11 | } 12 | }, 13 | { 14 | "package": "BoltsSwift", 15 | "repositoryURL": "https://github.com/BoltsFramework/Bolts-Swift.git", 16 | "state": { 17 | "branch": null, 18 | "revision": "d8c07eee2045a13f34330c0a4664053b5176e3f0", 19 | "version": "1.5.0" 20 | } 21 | }, 22 | { 23 | "package": "OCMock", 24 | "repositoryURL": "https://github.com/erikdoe/ocmock.git", 25 | "state": { 26 | "branch": null, 27 | "revision": "2c0bfd373289f4a7716db5d6db471640f91a6507", 28 | "version": null 29 | } 30 | }, 31 | { 32 | "package": "Starscream", 33 | "repositoryURL": "https://github.com/daltoniam/Starscream.git", 34 | "state": { 35 | "branch": null, 36 | "revision": "c6bfd1af48efcc9a9ad203665db12375ba6b145a", 37 | "version": "4.0.8" 38 | } 39 | } 40 | ] 41 | }, 42 | "version": 1 43 | } 44 | -------------------------------------------------------------------------------- /Parse.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Parse.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildSystemType 6 | Latest 7 | IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded 8 | 9 | PreviewsEnabled 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Parse.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "object": { 3 | "pins": [ 4 | { 5 | "package": "Bolts", 6 | "repositoryURL": "https://github.com/parse-community/Bolts-ObjC.git", 7 | "state": { 8 | "branch": null, 9 | "revision": "1eee96ad3bcfc8964c0a5815ce94f491eb6ac8c2", 10 | "version": "1.10.0" 11 | } 12 | }, 13 | { 14 | "package": "BoltsSwift", 15 | "repositoryURL": "https://github.com/BoltsFramework/Bolts-Swift.git", 16 | "state": { 17 | "branch": null, 18 | "revision": "d8c07eee2045a13f34330c0a4664053b5176e3f0", 19 | "version": "1.5.0" 20 | } 21 | }, 22 | { 23 | "package": "OCMock", 24 | "repositoryURL": "https://github.com/erikdoe/ocmock", 25 | "state": { 26 | "branch": null, 27 | "revision": "2c0bfd373289f4a7716db5d6db471640f91a6507", 28 | "version": null 29 | } 30 | }, 31 | { 32 | "package": "Starscream", 33 | "repositoryURL": "https://github.com/daltoniam/Starscream.git", 34 | "state": { 35 | "branch": null, 36 | "revision": "c6bfd1af48efcc9a9ad203665db12375ba6b145a", 37 | "version": "4.0.8" 38 | } 39 | } 40 | ] 41 | }, 42 | "version": 1 43 | } 44 | -------------------------------------------------------------------------------- /Parse/Configurations/Parse-iOS-Dynamic.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2015-present, Parse, LLC. 3 | // All rights reserved. 4 | // 5 | // This source code is licensed under the BSD-style license found in the 6 | // LICENSE file in the root directory of this source tree. An additional grant 7 | // of patent rights can be found in the PATENTS file in the same directory. 8 | // 9 | 10 | #include "Shared/Platform/iOS.xcconfig" 11 | #include "Shared/Product/DynamicFramework.xcconfig" 12 | 13 | PRODUCT_NAME = Parse 14 | PRODUCT_BUNDLE_IDENTIFIER = com.parse.ios 15 | 16 | IPHONEOS_DEPLOYMENT_TARGET = 12.0 17 | 18 | INFOPLIST_FILE = $(PROJECT_DIR)/Parse/Resources/Parse-iOS.Info.plist 19 | 20 | // TODO: (nlutsenko) Cleanup source code so we can safely ignore local variable shadow warnings. 21 | GCC_WARN_SHADOW = NO 22 | -------------------------------------------------------------------------------- /Parse/Configurations/Parse-iOS.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2015-present, Parse, LLC. 3 | // All rights reserved. 4 | // 5 | // This source code is licensed under the BSD-style license found in the 6 | // LICENSE file in the root directory of this source tree. An additional grant 7 | // of patent rights can be found in the PATENTS file in the same directory. 8 | // 9 | 10 | #include "Shared/Platform/iOS.xcconfig" 11 | #include "Shared/Product/StaticFramework.xcconfig" 12 | 13 | PRODUCT_NAME = Parse 14 | PRODUCT_BUNDLE_IDENTIFIER = com.parse.ios 15 | APPLICATION_EXTENSION_API_ONLY = YES 16 | 17 | INFOPLIST_FILE = $(PROJECT_DIR)/Parse/Resources/Parse-iOS.Info.plist 18 | 19 | // TODO: (nlutsenko) Cleanup source code so we can safely ignore local variable shadow warnings. 20 | GCC_WARN_SHADOW = NO 21 | -------------------------------------------------------------------------------- /Parse/Configurations/Parse-macOS.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2015-present, Parse, LLC. 3 | // All rights reserved. 4 | // 5 | // This source code is licensed under the BSD-style license found in the 6 | // LICENSE file in the root directory of this source tree. An additional grant 7 | // of patent rights can be found in the PATENTS file in the same directory. 8 | // 9 | 10 | #include "Shared/Platform/macOS.xcconfig" 11 | #include "Shared/Product/DynamicFramework.xcconfig" 12 | 13 | PRODUCT_NAME = Parse 14 | PRODUCT_BUNDLE_IDENTIFIER = com.parse.macos 15 | 16 | INFOPLIST_FILE = $(PROJECT_DIR)/Parse/Resources/Parse-OSX.Info.plist 17 | 18 | // TODO: (nlutsenko) Cleanup source code so we can safely ignore local variable shadow warnings. 19 | GCC_WARN_SHADOW = NO 20 | 21 | CONFIGURATION_BUILD_DIR=$(BUILD_DIR)/$(CONFIGURATION) 22 | -------------------------------------------------------------------------------- /Parse/Configurations/Parse-tvOS-Dynamic.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2015-present, Parse, LLC. 3 | // All rights reserved. 4 | // 5 | // This source code is licensed under the BSD-style license found in the 6 | // LICENSE file in the root directory of this source tree. An additional grant 7 | // of patent rights can be found in the PATENTS file in the same directory. 8 | // 9 | 10 | #include "Shared/Platform/tvOS.xcconfig" 11 | #include "Shared/Product/DynamicFramework.xcconfig" 12 | 13 | PRODUCT_NAME = Parse 14 | PRODUCT_BUNDLE_IDENTIFIER = com.parse.tvos 15 | 16 | INFOPLIST_FILE = $(PROJECT_DIR)/Parse/Resources/Parse-tvOS.Info.plist 17 | 18 | // TODO: (nlutsenko) Cleanup source code so we can safely ignore local variable shadow warnings. 19 | GCC_WARN_SHADOW = NO 20 | -------------------------------------------------------------------------------- /Parse/Configurations/Parse-tvOS.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2015-present, Parse, LLC. 3 | // All rights reserved. 4 | // 5 | // This source code is licensed under the BSD-style license found in the 6 | // LICENSE file in the root directory of this source tree. An additional grant 7 | // of patent rights can be found in the PATENTS file in the same directory. 8 | // 9 | 10 | #include "Shared/Platform/tvOS.xcconfig" 11 | #include "Shared/Product/StaticFramework.xcconfig" 12 | 13 | PRODUCT_NAME = Parse 14 | PRODUCT_BUNDLE_IDENTIFIER = com.parse.tvos 15 | 16 | INFOPLIST_FILE = $(PROJECT_DIR)/Parse/Resources/Parse-tvOS.Info.plist 17 | 18 | // TODO: (nlutsenko) Cleanup source code so we can safely ignore local variable shadow warnings. 19 | GCC_WARN_SHADOW = NO 20 | -------------------------------------------------------------------------------- /Parse/Configurations/Parse-watchOS-Dynamic.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2015-present, Parse, LLC. 3 | // All rights reserved. 4 | // 5 | // This source code is licensed under the BSD-style license found in the 6 | // LICENSE file in the root directory of this source tree. An additional grant 7 | // of patent rights can be found in the PATENTS file in the same directory. 8 | // 9 | 10 | #include "Shared/Platform/watchOS.xcconfig" 11 | #include "Shared/Product/DynamicFramework.xcconfig" 12 | 13 | PRODUCT_NAME = Parse 14 | PRODUCT_BUNDLE_IDENTIFIER = com.parse.watchos 15 | 16 | INFOPLIST_FILE = $(PROJECT_DIR)/Parse/Resources/Parse-watchOS.Info.plist 17 | 18 | // TODO: (nlutsenko) Cleanup source code so we can safely ignore local variable shadow warnings. 19 | GCC_WARN_SHADOW = NO 20 | -------------------------------------------------------------------------------- /Parse/Configurations/Parse-watchOS.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2015-present, Parse, LLC. 3 | // All rights reserved. 4 | // 5 | // This source code is licensed under the BSD-style license found in the 6 | // LICENSE file in the root directory of this source tree. An additional grant 7 | // of patent rights can be found in the PATENTS file in the same directory. 8 | // 9 | 10 | #include "Shared/Platform/watchOS.xcconfig" 11 | #include "Shared/Product/StaticFramework.xcconfig" 12 | 13 | PRODUCT_NAME = Parse 14 | PRODUCT_BUNDLE_IDENTIFIER = com.parse.watchos 15 | 16 | INFOPLIST_FILE = $(PROJECT_DIR)/Parse/Resources/Parse-watchOS.Info.plist 17 | 18 | // TODO: (nlutsenko) Cleanup source code so we can safely ignore local variable shadow warnings. 19 | GCC_WARN_SHADOW = NO 20 | -------------------------------------------------------------------------------- /Parse/Configurations/ParseUnitTests-iOS.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2015-present, Parse, LLC. 3 | // All rights reserved. 4 | // 5 | // This source code is licensed under the BSD-style license found in the 6 | // LICENSE file in the root directory of this source tree. An additional grant 7 | // of patent rights can be found in the PATENTS file in the same directory. 8 | // 9 | 10 | #include "Shared/Platform/iOS.xcconfig" 11 | #include "Shared/Product/LogicTests.xcconfig" 12 | 13 | PRODUCT_NAME = ParseUnitTests-iOS 14 | PRODUCT_MODULE_NAME = ParseUnitTests 15 | PRODUCT_BUNDLE_IDENTIFIER = com.parse.unit.ios 16 | 17 | SWIFT_VERSION = 5.0 18 | 19 | IPHONEOS_DEPLOYMENT_TARGET = 12.0 20 | 21 | INFOPLIST_FILE = $(SRCROOT)/Tests/Resources/ParseUnitTests-iOS-Info.plist 22 | 23 | USER_HEADER_SEARCH_PATHS = $(inherited) $(PARSE_DIR)/Parse/Internal/** 24 | 25 | // TODO: (nlutsenko) Cleanup source code so we can safely ignore local variable shadow warnings. 26 | GCC_WARN_SHADOW = NO 27 | -------------------------------------------------------------------------------- /Parse/Configurations/ParseUnitTests-macOS.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2015-present, Parse, LLC. 3 | // All rights reserved. 4 | // 5 | // This source code is licensed under the BSD-style license found in the 6 | // LICENSE file in the root directory of this source tree. An additional grant 7 | // of patent rights can be found in the PATENTS file in the same directory. 8 | // 9 | 10 | #include "Shared/Platform/macOS.xcconfig" 11 | #include "Shared/Product/LogicTests.xcconfig" 12 | 13 | PRODUCT_NAME = ParseUnitTests-macOS 14 | PRODUCT_MODULE_NAME = ParseUnitTests 15 | PRODUCT_BUNDLE_IDENTIFIER = com.parse.unit.macOS 16 | 17 | SWIFT_VERSION = 5.0 18 | 19 | INFOPLIST_FILE = $(SRCROOT)/Tests/Resources/ParseUnitTests-OSX-Info.plist 20 | 21 | USER_HEADER_SEARCH_PATHS = $(inherited) $(PARSE_DIR)/Parse/Internal/** 22 | 23 | // TODO: (nlutsenko) Cleanup source code so we can safely ignore local variable shadow warnings. 24 | GCC_WARN_SHADOW = NO 25 | -------------------------------------------------------------------------------- /Parse/Configurations/Shared: -------------------------------------------------------------------------------- 1 | ../../Vendor/xctoolchain/Configurations -------------------------------------------------------------------------------- /Parse/Parse.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Parse/Parse.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/ACL/PFACLPrivate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFACL.h" 13 | 14 | @class PFUser; 15 | 16 | @interface PFACL (Private) 17 | 18 | // Internal commands 19 | 20 | /* 21 | Gets the encoded format for an ACL. 22 | */ 23 | - (NSDictionary *)encodeIntoDictionary:(NSError **)error; 24 | 25 | /* 26 | Creates a new ACL object from an existing dictionary. 27 | */ 28 | - (instancetype)initWithDictionary:(NSDictionary *)dictionary; 29 | 30 | /** 31 | Creates an ACL from its encoded format. 32 | */ 33 | + (instancetype)ACLWithDictionary:(NSDictionary *)dictionary; 34 | 35 | - (void)setShared:(BOOL)shared; 36 | - (BOOL)isShared; 37 | - (instancetype)createUnsharedCopy; 38 | - (BOOL)hasUnresolvedUser; 39 | 40 | + (instancetype)defaultACL; 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/ACL/State/PFACLState_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFACLState.h" 11 | 12 | #import "PFMacros.h" 13 | 14 | /** 15 | Returns NSString representation of a property on PFACLState 16 | 17 | @param NAME The name of the property. 18 | 19 | @return NSString representaiton of a given property. 20 | */ 21 | #define PFACLStatePropertyName(NAME) @keypath(PFACLState, NAME) 22 | 23 | @interface PFACLState () { 24 | @protected 25 | NSDictionary *_permissions; 26 | BOOL _shared; 27 | } 28 | 29 | @property (nonatomic, copy, readwrite) NSDictionary *permissions; 30 | @property (nonatomic, assign, readwrite, getter=isShared) BOOL shared; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/ACL/State/PFMutableACLState.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFACLState.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PFMutableACLState : PFACLState 15 | 16 | @property (nonatomic, copy, readonly) NSMutableDictionary *permissions; 17 | @property (nonatomic, assign, readwrite, getter=isShared) BOOL shared; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/ACL/State/PFMutableACLState.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFMutableACLState.h" 11 | 12 | #import "PFACLState_Private.h" 13 | 14 | @implementation PFMutableACLState 15 | 16 | @dynamic permissions; 17 | @dynamic shared; 18 | 19 | ///-------------------------------------- 20 | #pragma mark - Init 21 | ///-------------------------------------- 22 | 23 | - (instancetype)init { 24 | self = [super init]; 25 | if (!self) return self; 26 | 27 | _permissions = [NSMutableDictionary dictionary]; 28 | 29 | return self; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Analytics/PFAnalytics_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFAnalytics.h" 11 | 12 | /** 13 | Predefined events - AppOpened, CrashReport 14 | Coming soon - Log, ... 15 | */ 16 | extern NSString *const PFAnalyticsEventAppOpened; 17 | extern NSString *const PFAnalyticsEventCrashReport; 18 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Analytics/Utilities/PFAnalyticsUtilities.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @interface PFAnalyticsUtilities : NSObject 13 | 14 | /** 15 | Serializes and hexdigests an alert payload into a "push_hash" identifier 16 | for use in Analytics. 17 | Limitedly flexible - the payload is the value under the "alert" key in the 18 | "aps" hash of a remote notification, so we can reasonably assume that the 19 | complexity of its structure is limited to that accepted by Apple (in its 20 | "The Notification Payload" docs) 21 | 22 | @param payload `alert` value from a push notification. 23 | 24 | @return md5 identifier. 25 | */ 26 | + (NSString *)md5DigestFromPushPayload:(id)payload; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/CommandRunner/PFCommandRunning.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFCommandRunning.h" 11 | 12 | NSTimeInterval const PFCommandRunningDefaultRetryDelay = 1.0; 13 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/CommandRunner/PFCommandRunningConstants.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFCommandRunningConstants.h" 11 | 12 | uint8_t const PFCommandRunningDefaultMaxAttemptsCount = 5; 13 | 14 | NSString *const PFCommandHeaderNameApplicationId = @"X-Parse-Application-Id"; 15 | NSString *const PFCommandHeaderNameClientKey = @"X-Parse-Client-Key"; 16 | NSString *const PFCommandHeaderNameClientVersion = @"X-Parse-Client-Version"; 17 | NSString *const PFCommandHeaderNameInstallationId = @"X-Parse-Installation-Id"; 18 | NSString *const PFCommandHeaderNameAppBuildVersion = @"X-Parse-App-Build-Version"; 19 | NSString *const PFCommandHeaderNameAppDisplayVersion = @"X-Parse-App-Display-Version"; 20 | NSString *const PFCommandHeaderNameOSVersion = @"X-Parse-OS-Version"; 21 | NSString *const PFCommandHeaderNameSessionToken = @"X-Parse-Session-Token"; 22 | NSString *const PFCommandHeaderNameRequestId = @"X-Parse-Request-Id"; 23 | 24 | NSString *const PFCommandParameterNameMethodOverride = @"_method"; 25 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/CommandRunner/URLSession/PFURLSessionCommandRunner.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFCommandRunning.h" 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @interface PFURLSessionCommandRunner : NSObject 17 | 18 | - (instancetype)init NS_UNAVAILABLE; 19 | + (instancetype)new NS_UNAVAILABLE; 20 | 21 | + (instancetype)commandRunnerWithDataSource:(id)dataSource 22 | retryAttempts:(NSUInteger)retryAttempts 23 | applicationId:(NSString *)applicationId 24 | clientKey:(nullable NSString *)clientKey 25 | serverURL:(NSURL *)serverURL; 26 | 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/CommandRunner/URLSession/PFURLSessionCommandRunner_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFURLSessionCommandRunner.h" 11 | 12 | @class PFCommandURLRequestConstructor; 13 | @class PFURLSession; 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface PFURLSessionCommandRunner () 18 | 19 | @property (nonatomic, strong, readonly) PFURLSession *session; 20 | @property (nonatomic, strong, readonly) PFCommandURLRequestConstructor *requestConstructor; 21 | 22 | - (instancetype)initWithDataSource:(id)dataSource 23 | session:(PFURLSession *)session 24 | requestConstructor:(PFCommandURLRequestConstructor *)requestConstructor 25 | notificationCenter:(NSNotificationCenter *)notificationCenter NS_DESIGNATED_INITIALIZER; 26 | 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/CommandRunner/URLSession/Session/PFURLSession_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFURLSession.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PFURLSession () 15 | 16 | - (instancetype)initWithURLSession:(NSURLSession *)session 17 | delegate:(id)delegate NS_DESIGNATED_INITIALIZER; 18 | 19 | + (instancetype)sessionWithURLSession:(NSURLSession *)session 20 | delegate:(id)delegate; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/CommandRunner/URLSession/Session/TaskDelegate/PFURLSessionDataTaskDelegate_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFURLSessionDataTaskDelegate.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PFURLSessionDataTaskDelegate () 15 | 16 | @property (nonatomic, strong, readonly) dispatch_queue_t dataQueue; 17 | 18 | /** 19 | Defaults to to-memory output stream if not overwritten. 20 | */ 21 | @property (nonatomic, strong, readonly) NSOutputStream *dataOutputStream; 22 | @property (nonatomic, assign, readonly) uint64_t downloadedBytes; 23 | 24 | @property (nullable, nonatomic, strong) id result; 25 | @property (nullable, nonatomic, strong) NSError *error; 26 | 27 | @property (nullable, nonatomic, copy, readwrite) NSString *responseString; 28 | 29 | - (void)_taskDidFinish NS_REQUIRES_SUPER; 30 | - (void)_taskDidCancel NS_REQUIRES_SUPER; 31 | 32 | @end 33 | 34 | NS_ASSUME_NONNULL_END 35 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/CommandRunner/URLSession/Session/TaskDelegate/PFURLSessionJSONDataTaskDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFURLSessionDataTaskDelegate.h" 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @interface PFURLSessionJSONDataTaskDelegate : PFURLSessionDataTaskDelegate 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/CommandRunner/URLSession/Session/TaskDelegate/PFURLSessionUploadTaskDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFConstants.h" 13 | 14 | #import "PFURLSessionJSONDataTaskDelegate.h" 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | @interface PFURLSessionUploadTaskDelegate : PFURLSessionJSONDataTaskDelegate 19 | 20 | - (instancetype)initForDataTask:(NSURLSessionDataTask *)dataTask 21 | withCancellationToken:(nullable BFCancellationToken *)cancellationToken 22 | uploadProgressBlock:(nullable PFProgressBlock)progressBlock; 23 | + (instancetype)taskDelegateForDataTask:(NSURLSessionDataTask *)dataTask 24 | withCancellationToken:(nullable BFCancellationToken *)cancellationToken 25 | uploadProgressBlock:(nullable PFProgressBlock)progressBlock; 26 | 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/PFRESTAnalyticsCommand.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFRESTCommand.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | extern NSString *const PFRESTAnalyticsEventNameAppOpened; 15 | extern NSString *const PFRESTAnalyticsEventNameCrashReport; 16 | 17 | @interface PFRESTAnalyticsCommand : PFRESTCommand 18 | 19 | + (instancetype)trackAppOpenedEventCommandWithPushHash:(nullable NSString *)pushHash 20 | sessionToken:(nullable NSString *)sessionToken; 21 | 22 | + (instancetype)trackEventCommandWithEventName:(NSString *)eventName 23 | dimensions:(nullable NSDictionary *)dimensions 24 | sessionToken:(nullable NSString *)sessionToken; 25 | 26 | + (instancetype)trackCrashReportCommandWithBreakpadDumpParameters:(NSDictionary *)parameters 27 | sessionToken:(nullable NSString *)sessionToken; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/PFRESTCloudCommand.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFRESTCommand.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PFRESTCloudCommand : PFRESTCommand 15 | 16 | + (instancetype)commandForFunction:(NSString *)function 17 | withParameters:(nullable NSDictionary *)parameters 18 | sessionToken:(nullable NSString *)sessionToken 19 | error:(NSError **)error; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/PFRESTCloudCommand.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFRESTCloudCommand.h" 11 | 12 | #import "PFAssert.h" 13 | #import "PFHTTPRequest.h" 14 | 15 | @implementation PFRESTCloudCommand 16 | 17 | + (instancetype)commandForFunction:(NSString *)function 18 | withParameters:(NSDictionary *)parameters 19 | sessionToken:(NSString *)sessionToken 20 | error:(NSError **)error { 21 | NSString *path = [NSString stringWithFormat:@"functions/%@", function]; 22 | return [self commandWithHTTPPath:path 23 | httpMethod:PFHTTPRequestMethodPOST 24 | parameters:parameters 25 | sessionToken:sessionToken 26 | error:error]; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/PFRESTCommand_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFRESTCommand.h" 11 | 12 | @interface PFRESTCommand () 13 | 14 | @property (nonatomic, copy, readwrite) NSString *sessionToken; 15 | 16 | @property (nonatomic, copy, readwrite) NSString *httpPath; 17 | @property (nonatomic, copy, readwrite) NSString *httpMethod; 18 | 19 | @property (nonatomic, copy, readwrite) NSDictionary *parameters; 20 | 21 | @property (nonatomic, copy, readwrite) NSString *cacheKey; 22 | 23 | @property (nonatomic, copy, readwrite) NSString *operationSetUUID; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/PFRESTConfigCommand.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFRESTCommand.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PFRESTConfigCommand : PFRESTCommand 15 | 16 | + (instancetype)configFetchCommandWithSessionToken:(nullable NSString *)sessionToken; 17 | + (instancetype)configUpdateCommandWithConfigParameters:(NSDictionary *)parameters 18 | sessionToken:(nullable NSString *)sessionToken; 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/PFRESTFileCommand.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFRESTCommand.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PFRESTFileCommand : PFRESTCommand 15 | 16 | + (instancetype)uploadCommandForFileWithName:(NSString *)fileName 17 | sessionToken:(nullable NSString *)sessionToken; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/PFRESTFileCommand.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFRESTFileCommand.h" 11 | 12 | #import "PFAssert.h" 13 | #import "PFHTTPRequest.h" 14 | 15 | @implementation PFRESTFileCommand 16 | 17 | + (instancetype)uploadCommandForFileWithName:(NSString *)fileName 18 | sessionToken:(NSString *)sessionToken { 19 | NSMutableString *httpPath = [@"files/" mutableCopy]; 20 | if (fileName) { 21 | [httpPath appendString:fileName]; 22 | } 23 | return [self commandWithHTTPPath:httpPath 24 | httpMethod:PFHTTPRequestMethodPOST 25 | parameters:nil 26 | sessionToken:sessionToken 27 | error:nil]; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/PFRESTObjectBatchCommand.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFRESTCommand.h" 11 | 12 | #import "PFConstants.h" 13 | 14 | extern NSUInteger const PFRESTObjectBatchCommandSubcommandsLimit; 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | @interface PFRESTObjectBatchCommand : PFRESTCommand 19 | 20 | + (instancetype)batchCommandWithCommands:(NSArray *)commands 21 | sessionToken:(nullable NSString *)sessionToken 22 | serverURL:(NSURL *)serverURL 23 | error:(NSError **)error; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/PFRESTPushCommand.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFRESTCommand.h" 11 | 12 | #import "PFConstants.h" 13 | 14 | PF_WATCH_UNAVAILABLE_WARNING 15 | 16 | @class PFPushState; 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | PF_WATCH_UNAVAILABLE @interface PFRESTPushCommand : PFRESTCommand 21 | 22 | + (nullable instancetype)sendPushCommandWithPushState:(PFPushState *)state 23 | sessionToken:(nullable NSString *)sessionToken 24 | error:(NSError **)error; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/PFRESTSessionCommand.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFRESTCommand.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PFRESTSessionCommand : PFRESTCommand 15 | 16 | + (instancetype)getCurrentSessionCommandWithSessionToken:(nullable NSString *)sessionToken; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Commands/PFRESTSessionCommand.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFRESTSessionCommand.h" 11 | 12 | #import "PFHTTPRequest.h" 13 | 14 | @implementation PFRESTSessionCommand 15 | 16 | + (instancetype)getCurrentSessionCommandWithSessionToken:(nullable NSString *)sessionToken { 17 | return [self commandWithHTTPPath:@"sessions/me" 18 | httpMethod:PFHTTPRequestMethodGET 19 | parameters:nil 20 | sessionToken:sessionToken 21 | error:nil]; 22 | } 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Config/PFConfig_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFConfig.h" 13 | 14 | extern NSString *const PFConfigParametersRESTKey; 15 | 16 | @interface PFConfig (Private) 17 | 18 | @property (atomic, copy, readonly) NSDictionary *parametersDictionary; 19 | 20 | - (instancetype)initWithFetchedConfig:(NSDictionary *)config; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/FieldOperation/PFFieldOperationDecoder.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @class PFDecoder; 13 | @class PFFieldOperation; 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface PFFieldOperationDecoder : NSObject 18 | 19 | ///-------------------------------------- 20 | #pragma mark - Init 21 | ///-------------------------------------- 22 | 23 | + (instancetype)defaultDecoder; 24 | 25 | ///-------------------------------------- 26 | #pragma mark - Decoding 27 | ///-------------------------------------- 28 | 29 | /** 30 | Converts a parsed JSON object into a PFFieldOperation. 31 | 32 | @param encoded An NSDictionary containing an __op field. 33 | @return An NSObject that conforms to PFFieldOperation. 34 | */ 35 | - (PFFieldOperation *)decode:(NSDictionary *)encoded withDecoder:(PFDecoder *)decoder; 36 | 37 | @end 38 | 39 | NS_ASSUME_NONNULL_END 40 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/File/Controller/PFFileUploadResult.m: -------------------------------------------------------------------------------- 1 | // 2 | // PFFileUploadResult.m 3 | // Parse 4 | // 5 | // Created by Ken Cooper on 2/21/17. 6 | // Copyright © 2017 Parse Inc. All rights reserved. 7 | // 8 | 9 | #import "PFFileUploadResult.h" 10 | 11 | @implementation PFFileUploadResult 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/File/FileDataStream/PFFileDataStream.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** 15 | PFFileDataStream is an NSStream proxy which won't read the last byte of a file until the downlaod has finished. 16 | 17 | When downloading a file stream via `-[PFFileObject getDataDownloadStreamInBackground]`, we need to be able to read and write 18 | to the same file on disk concurrently. 19 | 20 | NSInputStream closes itself as soon as it hits EOF, so this class wraps an underlying NSInputStream and stops the 21 | stream from closing until after writing has finished. 22 | */ 23 | @interface PFFileDataStream : NSProxy 24 | 25 | - (instancetype)initWithFileAtPath:(NSString *)path; 26 | 27 | - (void)stopBlocking; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/File/PFFileObject_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFConstants.h" 13 | #import "PFFileObject.h" 14 | 15 | #import "PFFileState.h" 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | @interface PFFileObject (Private) 20 | 21 | @property (nonatomic, strong, readonly) PFFileState *state; 22 | 23 | + (instancetype)fileObjectWithName:(nullable NSString *)name url:(nullable NSString *)url; 24 | 25 | - (nullable NSString *)_cachedFilePath; 26 | 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/File/State/PFFileState.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFBaseState.h" 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @interface PFFileState : PFBaseState 17 | 18 | @property (nonatomic, copy, readonly) NSString *name; 19 | @property (nullable, nonatomic, copy, readonly) NSString *urlString; 20 | @property (nullable, nonatomic, copy, readonly) NSString *secureURLString; 21 | 22 | @property (nullable, nonatomic, copy, readonly) NSString *mimeType; 23 | 24 | ///-------------------------------------- 25 | #pragma mark - Init 26 | ///-------------------------------------- 27 | 28 | - (instancetype)initWithState:(PFFileState *)state; 29 | - (instancetype)initWithName:(nullable NSString *)name 30 | urlString:(nullable NSString *)urlString 31 | mimeType:(nullable NSString *)mimeType; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/File/State/PFFileState_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFFileState.h" 11 | 12 | #import "PFMacros.h" 13 | 14 | /** 15 | Returns NSString representation of a property. 16 | 17 | @param NAME The name of the property. 18 | 19 | @return NSString representation of a given property. 20 | */ 21 | #define PFFileStatePropertyName(NAME) @keypath(PFFileState, NAME) 22 | 23 | NS_ASSUME_NONNULL_BEGIN 24 | 25 | @interface PFFileState () 26 | 27 | @property (nonatomic, copy, readwrite) NSString *name; 28 | @property (nullable, nonatomic, copy, readwrite) NSString *urlString; 29 | @property (nullable, nonatomic, copy, readwrite) NSString *mimeType; 30 | 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/File/State/PFMutableFileState.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFFileState.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PFMutableFileState : PFFileState 15 | 16 | @property (nonatomic, copy, readwrite) NSString *name; 17 | @property (nullable, nonatomic, copy, readwrite) NSString *urlString; 18 | @property (nullable, nonatomic, copy, readwrite) NSString *mimeType; 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/File/State/PFMutableFileState.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFMutableFileState.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @implementation PFMutableFileState 15 | 16 | @dynamic name; 17 | @dynamic urlString; 18 | @dynamic mimeType; 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/HTTPRequest/PFHTTPRequest.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #ifndef Parse_PFHTTPRequest_h 11 | #define Parse_PFHTTPRequest_h 12 | 13 | #import 14 | 15 | static NSString *const PFHTTPRequestMethodGET = @"GET"; 16 | static NSString *const PFHTTPRequestMethodHEAD = @"HEAD"; 17 | static NSString *const PFHTTPRequestMethodDELETE = @"DELETE"; 18 | static NSString *const PFHTTPRequestMethodPOST = @"POST"; 19 | static NSString *const PFHTTPRequestMethodPUT = @"PUT"; 20 | 21 | static NSString *const PFHTTPRequestHeaderNameContentType = @"Content-Type"; 22 | static NSString *const PFHTTPRequestHeaderNameContentLength = @"Content-Length"; 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/HTTPRequest/PFHTTPURLRequestConstructor.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @interface PFHTTPURLRequestConstructor : NSObject 13 | 14 | + (NSMutableURLRequest *)urlRequestWithURL:(NSURL *)url 15 | httpMethod:(NSString *)httpMethod 16 | httpHeaders:(NSDictionary *)httpHeaders 17 | parameters:(NSDictionary *)parameters; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/HTTPRequest/PFURLConstructor.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PFURLConstructor : NSObject 15 | 16 | + (NSURL *)URLFromAbsoluteString:(NSString *)string 17 | path:(nullable NSString *)path 18 | query:(nullable NSString *)query; 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Installation/Constants/PFInstallationConstants.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | extern NSString *const PFInstallationKeyParseVersion; 13 | extern NSString *const PFInstallationKeyDeviceType; 14 | extern NSString *const PFInstallationKeyInstallationId; 15 | extern NSString *const PFInstallationKeyDeviceToken; 16 | extern NSString *const PFInstallationKeyAppName; 17 | extern NSString *const PFInstallationKeyAppVersion; 18 | extern NSString *const PFInstallationKeyAppIdentifier; 19 | extern NSString *const PFInstallationKeyTimeZone; 20 | extern NSString *const PFInstallationKeyLocaleIdentifier; 21 | extern NSString *const PFInstallationKeyBadge; 22 | extern NSString *const PFInstallationKeyChannels; 23 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Installation/Constants/PFInstallationConstants.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFInstallationConstants.h" 11 | 12 | NSString *const PFInstallationKeyParseVersion = @"parseVersion"; 13 | NSString *const PFInstallationKeyDeviceType = @"deviceType"; 14 | NSString *const PFInstallationKeyInstallationId = @"installationId"; 15 | NSString *const PFInstallationKeyDeviceToken = @"deviceToken"; 16 | NSString *const PFInstallationKeyAppName = @"appName"; 17 | NSString *const PFInstallationKeyAppVersion = @"appVersion"; 18 | NSString *const PFInstallationKeyAppIdentifier = @"appIdentifier"; 19 | NSString *const PFInstallationKeyTimeZone = @"timeZone"; 20 | NSString *const PFInstallationKeyLocaleIdentifier = @"localeIdentifier"; 21 | NSString *const PFInstallationKeyBadge = @"badge"; 22 | NSString *const PFInstallationKeyChannels = @"channels"; 23 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Installation/Controller/PFInstallationController.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFCoreDataProvider.h" 13 | #import "PFObjectControlling.h" 14 | 15 | PF_WATCH_UNAVAILABLE_WARNING 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | PF_WATCH_UNAVAILABLE @interface PFInstallationController : NSObject 20 | 21 | @property (nonatomic, weak, readonly) id dataSource; 22 | 23 | ///-------------------------------------- 24 | #pragma mark - Init 25 | ///-------------------------------------- 26 | 27 | - (instancetype)init NS_UNAVAILABLE; 28 | - (instancetype)initWithDataSource:(id)dataSource; 29 | + (instancetype)controllerWithDataSource:(id)dataSource; 30 | 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Installation/InstallationIdentifierStore/PFInstallationIdentifierStore_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFInstallationIdentifierStore.h" 11 | 12 | @interface PFInstallationIdentifierStore (Private) 13 | 14 | /** 15 | Clears in-memory cached installation identifier, if any. 16 | */ 17 | - (BFTask *)_clearCachedInstallationIdentifierAsync; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Installation/PFInstallationPrivate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFInstallation.h" 13 | 14 | PF_WATCH_UNAVAILABLE_WARNING 15 | 16 | @interface PFInstallation (Private) 17 | 18 | - (void)_clearDeviceToken; 19 | - (void)_markAllFieldsDirty; 20 | 21 | @end 22 | 23 | @interface PFInstallation () 24 | 25 | // Private read-write declarations of publicly-readonly fields. 26 | @property (nonatomic, copy, readwrite) NSString *deviceType; 27 | @property (nonatomic, copy, readwrite) NSString *installationId; 28 | @property (nonatomic, copy, readwrite) NSString *timeZone; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/LocalDataStore/Pin/PFPin.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFObject.h" 13 | #import "PFSubclassing.h" 14 | 15 | extern NSString *const PFPinKeyName; 16 | extern NSString *const PFPinKeyObjects; 17 | 18 | /** 19 | PFPin represent internal pin implementation of PFObject's `pin`. 20 | */ 21 | @interface PFPin : PFObject 22 | 23 | @property (nonatomic, copy) NSString *name; 24 | @property (nonatomic, strong) NSMutableArray *objects; 25 | 26 | ///-------------------------------------- 27 | #pragma mark - Init 28 | ///-------------------------------------- 29 | 30 | - (instancetype)initWithName:(NSString *)name; 31 | + (instancetype)pinWithName:(NSString *)name; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/LocalDataStore/SQLite/PFSQLiteDatabase_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFSQLiteDatabase.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PFSQLiteDatabase () 15 | 16 | @property (nonatomic, strong, readonly) BFTask *databaseClosedTask; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/LocalDataStore/SQLite/PFSQLiteStatement.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** 15 | PFSQLiteStatement is sqlite3_stmt wrapper class. 16 | */ 17 | typedef struct sqlite3_stmt sqlite3_stmt; 18 | 19 | @interface PFSQLiteStatement : NSObject 20 | 21 | @property (nullable, nonatomic, assign, readonly) sqlite3_stmt *sqliteStatement; 22 | @property (nonatomic, strong, readonly) dispatch_queue_t databaseQueue; 23 | 24 | - (instancetype)initWithStatement:(sqlite3_stmt *)stmt queue:(dispatch_queue_t)databaseQueue; 25 | 26 | - (BOOL)close; 27 | - (BOOL)reset; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/MultiProcessLock/PFMultiProcessFileLock.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | //TODO: (nlutsenko) Add unit tests for this class. 13 | @interface PFMultiProcessFileLock : NSObject 14 | 15 | @property (nonatomic, copy, readonly) NSString *filePath; 16 | @property (nonatomic, copy, readonly) NSString *lockFilePath; 17 | 18 | ///-------------------------------------- 19 | #pragma mark - Init 20 | ///-------------------------------------- 21 | 22 | - (instancetype)init NS_UNAVAILABLE; 23 | + (instancetype)new NS_UNAVAILABLE; 24 | 25 | - (instancetype)initForFileWithPath:(NSString *)path NS_DESIGNATED_INITIALIZER; 26 | + (instancetype)lockForFileWithPath:(NSString *)path; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/MultiProcessLock/PFMultiProcessFileLockController.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | //TODO: (nlutsenko) Add unit tests for this class. 13 | @interface PFMultiProcessFileLockController : NSObject 14 | 15 | //TODO: (nlutsenko) Re-consider using singleton here. 16 | + (instancetype)sharedController; 17 | 18 | /** 19 | Increments the content access counter by 1. 20 | If the count was 0 - this will try to acquire the file lock first. 21 | 22 | @param filePath Path to a file to lock access to. 23 | */ 24 | - (void)beginLockedContentAccessForFileAtPath:(NSString *)filePath; 25 | 26 | /** 27 | Decrements the content access counter by 1. 28 | If the count reaches 0 - the lock is going to be released. 29 | 30 | @param filePath Path to a file to lock access to. 31 | */ 32 | - (void)endLockedContentAccessForFileAtPath:(NSString *)filePath; 33 | 34 | - (NSUInteger)lockedContentAccessCountForFileAtPath:(NSString *)filePath; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Object/Coder/File/PFObjectFileCoder.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @class PFDecoder; 13 | @class PFEncoder; 14 | @class PFObject; 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** 19 | Handles encoding/decoding of `PFObject`s into a /2 JSON format. 20 | /2 format is only used for persisting `currentUser`, `currentInstallation` to disk when LDS is not enabled. 21 | */ 22 | @interface PFObjectFileCoder : NSObject 23 | 24 | ///-------------------------------------- 25 | #pragma mark - Encode 26 | ///-------------------------------------- 27 | 28 | + (NSData *)dataFromObject:(PFObject *)object usingEncoder:(PFEncoder *)encoder; 29 | 30 | ///-------------------------------------- 31 | #pragma mark - Decode 32 | ///-------------------------------------- 33 | 34 | + (PFObject *)objectFromData:(NSData *)data usingDecoder:(PFDecoder *)decoder; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Object/Coder/File/PFObjectFileCodingLogic.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @class PFDecoder; 13 | @class PFObject; 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface PFObjectFileCodingLogic : NSObject 18 | 19 | ///-------------------------------------- 20 | #pragma mark - Init 21 | ///-------------------------------------- 22 | 23 | + (instancetype)codingLogic; 24 | 25 | ///-------------------------------------- 26 | #pragma mark - Logic 27 | ///-------------------------------------- 28 | 29 | - (void)updateObject:(PFObject *)object fromDictionary:(NSDictionary *)dictionary usingDecoder:(PFDecoder *)decoder; 30 | 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Object/Constants/PFObjectConstants.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | // REST Key magic strings 13 | extern NSString *const PFObjectCompleteRESTKey; 14 | extern NSString *const PFObjectOperationsRESTKey; 15 | extern NSString *const PFObjectTypeRESTKey; 16 | extern NSString *const PFObjectObjectIdRESTKey; 17 | extern NSString *const PFObjectUpdatedAtRESTKey; 18 | extern NSString *const PFObjectCreatedAtRESTKey; 19 | extern NSString *const PFObjectIsDeletingEventuallyRESTKey; 20 | extern NSString *const PFObjectClassNameRESTKey; 21 | extern NSString *const PFObjectACLRESTKey; 22 | 23 | extern NSString *const PFObjectDefaultPin; 24 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Object/Constants/PFObjectConstants.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFObjectConstants.h" 11 | 12 | NSString *const PFObjectCompleteRESTKey = @"__complete"; 13 | NSString *const PFObjectOperationsRESTKey = @"__operations"; 14 | NSString *const PFObjectTypeRESTKey = @"__type"; 15 | NSString *const PFObjectObjectIdRESTKey = @"objectId"; 16 | NSString *const PFObjectUpdatedAtRESTKey = @"updatedAt"; 17 | NSString *const PFObjectCreatedAtRESTKey = @"createdAt"; 18 | NSString *const PFObjectIsDeletingEventuallyRESTKey = @"isDeletingEventually"; 19 | NSString *const PFObjectClassNameRESTKey = @"className"; 20 | NSString *const PFObjectACLRESTKey = @"ACL"; 21 | 22 | NSString *const PFObjectDefaultPin = @"_default"; 23 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Object/Controller/OfflineController/PFOfflineObjectController.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFObjectController.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PFOfflineObjectController : PFObjectController 15 | 16 | @property (nonatomic, weak, readonly) id dataSource; 17 | 18 | ///-------------------------------------- 19 | #pragma mark - Init 20 | ///-------------------------------------- 21 | 22 | - (instancetype)initWithDataSource:(id)dataSource NS_DESIGNATED_INITIALIZER; 23 | + (instancetype)controllerWithDataSource:(id)dataSource; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Object/Controller/PFObjectController.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFDataProvider.h" 13 | #import "PFObjectControlling.h" 14 | 15 | @class BFTask<__covariant BFGenericType>; 16 | @class PFObject; 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | @interface PFObjectController : NSObject 21 | 22 | @property (nonatomic, weak, readonly) id dataSource; 23 | 24 | ///-------------------------------------- 25 | #pragma mark - Init 26 | ///-------------------------------------- 27 | 28 | - (instancetype)init NS_UNAVAILABLE; 29 | + (instancetype)new NS_UNAVAILABLE; 30 | 31 | - (instancetype)initWithDataSource:(id)dataSource NS_DESIGNATED_INITIALIZER; 32 | + (instancetype)controllerWithDataSource:(id)dataSource; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Object/Controller/PFObjectController_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFObjectController.h" 11 | 12 | @class PFRESTCommand; 13 | 14 | @interface PFObjectController () 15 | 16 | ///-------------------------------------- 17 | #pragma mark - Fetch 18 | ///-------------------------------------- 19 | 20 | - (BFTask *)_runFetchCommand:(PFRESTCommand *)command forObject:(PFObject *)object; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Object/CurrentController/PFCurrentObjectControlling.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFConstants.h" 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @class BFTask<__covariant BFGenericType>; 17 | @class PFObject; 18 | 19 | typedef NS_ENUM(NSUInteger, PFCurrentObjectStorageType) { 20 | PFCurrentObjectStorageTypeFile = 1, 21 | PFCurrentObjectStorageTypeOfflineStore, 22 | }; 23 | 24 | @protocol PFCurrentObjectControlling 25 | 26 | @property (nonatomic, assign, readonly) PFCurrentObjectStorageType storageType; 27 | 28 | ///-------------------------------------- 29 | #pragma mark - Current 30 | ///-------------------------------------- 31 | 32 | - (BFTask *)getCurrentObjectAsync; 33 | - (BFTask *)saveCurrentObjectAsync:(PFObject *)object; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Object/Subclassing/PFObjectSubclassInfo.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @class PFPropertyInfo; 13 | 14 | @interface PFObjectSubclassInfo : NSObject 15 | 16 | @property (atomic, strong) Class subclass; 17 | 18 | - (instancetype)init NS_UNAVAILABLE; 19 | + (instancetype)new NS_UNAVAILABLE; 20 | 21 | - (instancetype)initWithSubclass:(Class)kls NS_DESIGNATED_INITIALIZER; 22 | + (instancetype)subclassInfoWithSubclass:(Class)kls; 23 | 24 | - (PFPropertyInfo *)propertyInfoForSelector:(SEL)cmd isSetter:(BOOL *)isSetter; 25 | - (NSMethodSignature *)forwardingMethodSignatureForSelector:(SEL)cmd; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Object/Subclassing/PFObjectSubclassingController.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @class PFObject; 13 | @protocol PFSubclassing; 14 | 15 | @interface PFObjectSubclassingController : NSObject 16 | 17 | ///-------------------------------------- 18 | #pragma mark - Registration 19 | ///-------------------------------------- 20 | 21 | - (void)scanForUnregisteredSubclasses:(BOOL)shouldSubscribe; 22 | 23 | - (Class)subclassForParseClassName:(NSString *)parseClassName; 24 | - (void)registerSubclass:(Class)kls; 25 | - (void)unregisterSubclass:(Class)kls; 26 | 27 | ///-------------------------------------- 28 | #pragma mark - Forwarding 29 | ///-------------------------------------- 30 | 31 | - (NSMethodSignature *)forwardingMethodSignatureForSelector:(SEL)cmd ofClass:(Class)kls; 32 | - (BOOL)forwardObjectInvocation:(NSInvocation *)invocation withObject:(PFObject *)object; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Object/Utilities/PFObjectUtilities.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @class PFFieldOperation; 15 | @class PFOperationSet; 16 | 17 | @interface PFObjectUtilities : NSObject 18 | 19 | ///-------------------------------------- 20 | #pragma mark - Operations 21 | ///-------------------------------------- 22 | 23 | + (nullable id)newValueByApplyingFieldOperation:(PFFieldOperation *)operation 24 | toDictionary:(NSMutableDictionary *)dictionary 25 | forKey:(NSString *)key; 26 | + (void)applyOperationSet:(PFOperationSet *)operationSet toDictionary:(NSMutableDictionary *)dictionary; 27 | 28 | ///-------------------------------------- 29 | #pragma mark - Equality 30 | ///-------------------------------------- 31 | 32 | + (BOOL)isObject:(nullable id)objectA equalToObject:(nullable id)objectB; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFAlertView.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFConstants.h" 13 | 14 | PF_OSX_UNAVAILABLE_WARNING 15 | PF_WATCH_UNAVAILABLE_WARNING 16 | 17 | typedef void(^PFAlertViewCompletion)(NSUInteger selectedOtherButtonIndex); 18 | 19 | PF_OSX_UNAVAILABLE PF_WATCH_UNAVAILABLE @interface PFAlertView : NSObject 20 | 21 | + (void)showAlertWithTitle:(NSString *)title 22 | message:(NSString *)message 23 | cancelButtonTitle:(NSString *)cancelButtonTitle 24 | otherButtonTitles:(NSArray *)otherButtonTitles 25 | completion:(PFAlertViewCompletion)completion NS_EXTENSION_UNAVAILABLE_IOS(""); 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFApplication.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFConstants.h" 13 | 14 | #if TARGET_OS_IOS || TARGET_OS_TV 15 | #import 16 | #elif TARGET_OS_WATCH 17 | @class UIApplication; 18 | #elif PF_TARGET_OS_OSX 19 | #import 20 | @compatibility_alias UIApplication NSApplication; 21 | #endif 22 | 23 | /** 24 | `PFApplication` class provides a centralized way to get the information about the current application, 25 | or the environment it's running in. Please note, that all device specific things - should go to . 26 | */ 27 | @interface PFApplication : NSObject 28 | 29 | @property (nonatomic, strong, readonly) UIApplication *systemApplication; 30 | 31 | @property (nonatomic, assign, readonly, getter=isAppStoreEnvironment) BOOL appStoreEnvironment; 32 | @property (nonatomic, assign, readonly, getter=isExtensionEnvironment) BOOL extensionEnvironment; 33 | 34 | @property (nonatomic, assign) NSInteger iconBadgeNumber; 35 | 36 | + (instancetype)currentApplication; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFAsyncTaskQueue.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #if __has_include() 13 | #import 14 | #else 15 | #import "BFTask.h" 16 | #endif 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | @interface PFAsyncTaskQueue : NSObject 21 | 22 | + (instancetype)taskQueue; 23 | 24 | - (BFTask *)enqueue:(BFContinuationBlock)block; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFBase64Encoder.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @interface PFBase64Encoder : NSObject 13 | 14 | + (NSData *)dataFromBase64String:(NSString *)string; 15 | + (NSString *)base64StringFromData:(NSData *)data; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFBase64Encoder.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFBase64Encoder.h" 11 | 12 | @implementation PFBase64Encoder 13 | 14 | + (NSData *)dataFromBase64String:(NSString *)string { 15 | if (!string) { 16 | return [NSData data]; 17 | } 18 | return [[NSData alloc] initWithBase64EncodedString:string options:NSDataBase64DecodingIgnoreUnknownCharacters]; 19 | } 20 | 21 | + (NSString *)base64StringFromData:(NSData *)data { 22 | if (!data) { 23 | return [NSString string]; 24 | } 25 | return [data base64EncodedStringWithOptions:0]; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFCategoryLoader.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @interface PFCategoryLoader : NSObject 13 | 14 | + (void)loadPrivateCategories; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFCategoryLoader.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFCategoryLoader.h" 11 | 12 | #import "BFTask+Private.h" 13 | 14 | @implementation PFCategoryLoader 15 | 16 | + (void)loadPrivateCategories { 17 | forceLoadCategory_BFTask_Private(); 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFCommandCache_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFCommandCache.h" 11 | 12 | @interface PFCommandCache () 13 | 14 | - (void)_setDiskCacheSize:(unsigned long long)diskCacheSize; 15 | 16 | @end; 17 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFCommandResult.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFCommandResult.h" 11 | 12 | #import "PFAssert.h" 13 | 14 | @implementation PFCommandResult 15 | 16 | ///-------------------------------------- 17 | #pragma mark - Init 18 | ///-------------------------------------- 19 | 20 | - (instancetype)initWithResult:(NSDictionary *)result 21 | resultString:(NSString *)resultString 22 | httpResponse:(NSHTTPURLResponse *)response { 23 | self = [super init]; 24 | if (!self) return nil; 25 | 26 | _result = result; 27 | _resultString = [resultString copy]; 28 | _httpResponse = response; 29 | 30 | return self; 31 | } 32 | 33 | + (instancetype)commandResultWithResult:(NSDictionary *)result 34 | resultString:(NSString *)resultString 35 | httpResponse:(NSHTTPURLResponse *)response { 36 | return [[self alloc] initWithResult:result resultString:resultString httpResponse:response]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFDevice.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @interface PFDevice : NSObject 13 | 14 | @property (nonatomic, copy, readonly) NSString *detailedModel; 15 | 16 | @property (nonatomic, copy, readonly) NSString *operatingSystemFullVersion; 17 | @property (nonatomic, copy, readonly) NSString *operatingSystemVersion; 18 | @property (nonatomic, copy, readonly) NSString *operatingSystemBuild; 19 | 20 | @property (nonatomic, assign, readonly, getter=isJailbroken) BOOL jailbroken; 21 | 22 | + (instancetype)currentDevice; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFGeoPointPrivate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFGeoPoint.h" 13 | 14 | extern const double EARTH_RADIUS_MILES; 15 | extern const double EARTH_RADIUS_KILOMETERS; 16 | 17 | @class PFGeoPoint; 18 | 19 | @interface PFGeoPoint (Private) 20 | 21 | // Internal commands 22 | 23 | /* 24 | Gets the encoded format for an GeoPoint. 25 | */ 26 | - (NSDictionary *)encodeIntoDictionary:(NSError **)error; 27 | 28 | /** 29 | Creates an GeoPoint from its encoded format. 30 | */ 31 | + (instancetype)geoPointWithDictionary:(NSDictionary *)dictionary; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFHash.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | extern NSUInteger PFIntegerPairHash(NSUInteger a, NSUInteger b); 13 | 14 | extern NSUInteger PFDoublePairHash(double a, double b); 15 | 16 | extern NSUInteger PFDoubleHash(double d); 17 | 18 | extern NSUInteger PFLongHash(unsigned long long l); 19 | 20 | extern NSString *PFMD5HashFromData(NSData *data); 21 | extern NSString *PFMD5HashFromString(NSString *string); 22 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFKeychainStore.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | extern NSString *const PFKeychainStoreDefaultService; 15 | 16 | /** 17 | PFKeychainStore is NSUserDefaults-like wrapper on top of Keychain. 18 | It supports any object, with NSCoding support. Every object is serialized using NSKeyedArchiver. 19 | 20 | All objects are available after the first device unlock and are not backed up. 21 | */ 22 | @interface PFKeychainStore : NSObject 23 | 24 | - (instancetype)init NS_UNAVAILABLE; 25 | + (instancetype)new NS_UNAVAILABLE; 26 | 27 | - (instancetype)initWithService:(NSString *)service NS_DESIGNATED_INITIALIZER; 28 | 29 | - (nullable id)objectForKey:(NSString *)key; 30 | - (nullable id)objectForKeyedSubscript:(NSString *)key; 31 | 32 | - (BOOL)setObject:(nullable id)object forKey:(NSString *)key; 33 | - (BOOL)setObject:(nullable id)object forKeyedSubscript:(NSString *)key; 34 | - (BOOL)removeObjectForKey:(NSString *)key; 35 | - (BOOL)removeAllObjects; 36 | 37 | @end 38 | 39 | NS_ASSUME_NONNULL_END 40 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFMemoryEventuallyQueue.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFEventuallyQueue.h" 11 | 12 | PF_IOS_UNAVAILABLE_WARNING 13 | PF_OSX_UNAVAILABLE_WARNING 14 | PF_WATCH_UNAVAILABLE_WARNING 15 | 16 | PF_IOS_UNAVAILABLE PF_OSX_UNAVAILABLE PF_WATCH_UNAVAILABLE @interface PFMemoryEventuallyQueue : PFEventuallyQueue 17 | 18 | + (instancetype)newDefaultMemoryEventuallyQueueWithDataSource:(id)dataSource; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFMulticastDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | /** 13 | Represents an event that can be subscribed to by multiple observers. 14 | */ 15 | @interface PFMulticastDelegate : NSObject 16 | 17 | /** 18 | Subscribes a block for callback. 19 | 20 | Important: if you ever plan to be able to unsubscribe the block, you must copy the block 21 | before passing it to subscribe, and use the same instance for unsubscribe. 22 | */ 23 | - (void)subscribe:(void(^)(id result, NSError *error))block; 24 | - (void)unsubscribe:(void(^)(id result, NSError *error))block; 25 | - (void)invoke:(id)result error:(NSError *)error; 26 | - (void)clear; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFMulticastDelegate.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFMulticastDelegate.h" 11 | 12 | @interface PFMulticastDelegate () { 13 | NSMutableArray *_callbacks; 14 | } 15 | 16 | @end 17 | 18 | @implementation PFMulticastDelegate 19 | 20 | - (instancetype)init { 21 | self = [super init]; 22 | if (!self) return nil; 23 | 24 | _callbacks = [[NSMutableArray alloc] init]; 25 | 26 | return self; 27 | } 28 | 29 | - (void)subscribe:(void(^)(id result, NSError *error))block { 30 | [_callbacks addObject:block]; 31 | } 32 | 33 | - (void)unsubscribe:(void(^)(id result, NSError *error))block { 34 | [_callbacks removeObject:block]; 35 | } 36 | 37 | - (void)invoke:(id)result error:(NSError *)error { 38 | NSArray *callbackCopy = [_callbacks copy]; 39 | for (void (^block)(id result, NSError *error) in callbackCopy) { 40 | block(result, error); 41 | } 42 | } 43 | - (void)clear { 44 | [_callbacks removeAllObjects]; 45 | } 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFPinningEventuallyQueue.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFEventuallyQueue.h" 13 | 14 | @interface PFPinningEventuallyQueue : PFEventuallyQueue 15 | 16 | ///-------------------------------------- 17 | #pragma mark - Init 18 | ///-------------------------------------- 19 | 20 | + (instancetype)newDefaultPinningEventuallyQueueWithDataSource:(id)dataSource; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFPolygonPrivate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFPolygon.h" 13 | 14 | @class PFPolygon; 15 | 16 | @interface PFPolygon (Private) 17 | 18 | // Internal commands 19 | 20 | /* 21 | Gets the encoded format for a Polygon. 22 | */ 23 | - (NSDictionary *)encodeIntoDictionary:(NSError **)error; 24 | 25 | /** 26 | Creates a Polygon from its encoded format. 27 | */ 28 | + (instancetype)polygonWithDictionary:(NSDictionary *)dictionary; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFTaskQueue.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFConstants.h" 13 | 14 | @class BFTask<__covariant BFGenericType>; 15 | 16 | @interface PFTaskQueue : NSObject 17 | 18 | // The lock for this task queue. 19 | @property (nonatomic, strong, readonly) NSObject *mutex; 20 | 21 | /** 22 | Enqueues a task created by the given block. Then block is given a task to 23 | await once state is snapshotted (e.g. after capturing session tokens at the 24 | time of the save call. Awaiting this task will wait for the created task's 25 | turn in the queue. 26 | */ 27 | - (BFTask *)enqueue:(BFTask *(^)(BFTask *toAwait))taskStart; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFWeakValue.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @interface PFWeakValue : NSObject 13 | 14 | @property (nonatomic, weak, readonly) id weakObject; 15 | 16 | + (instancetype)valueWithWeakObject:(id)object; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PFWeakValue.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFWeakValue.h" 11 | 12 | @interface PFWeakValue () 13 | 14 | @property (nonatomic, weak, readwrite) id weakObject; 15 | 16 | @end 17 | 18 | @implementation PFWeakValue 19 | 20 | + (instancetype)valueWithWeakObject:(id)object { 21 | PFWeakValue *value = [[self alloc] init]; 22 | value.weakObject = object; 23 | return value; 24 | } 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/ParseInternal.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "Parse.h" 13 | 14 | #import "PFAssert.h" 15 | #import "PFCommandCache.h" 16 | #import "PFEventuallyQueue.h" 17 | #import "PFFieldOperation.h" 18 | #import "PFGeoPointPrivate.h" 19 | #import "PFPolygonPrivate.h" 20 | #import "PFInternalUtils.h" 21 | #import "PFKeyValueCache.h" 22 | #import "PFObjectPrivate.h" 23 | #import "PFUserPrivate.h" 24 | #import "ParseModule.h" 25 | 26 | @interface Parse (ParseModules) 27 | 28 | + (void)enableParseModule:(id)module; 29 | + (void)disableParseModule:(id)module; 30 | + (BOOL)isModuleEnabled:(id)module; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/ParseManagerPrivate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "ParseManager.h" 11 | 12 | @interface ParseManager () 13 | 14 | - (void)setCommandRunner:(id)commandRunner; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/ParseModule.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #if __has_include() 13 | #import 14 | #else 15 | #import "Bolts.h" 16 | #endif 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | @protocol ParseModule 21 | 22 | - (BFTask *)parseDidInitializeWithApplicationId:(NSString *)applicationId clientKey:(nullable NSString *)clientKey; 23 | 24 | @end 25 | 26 | @interface ParseModuleCollection : NSObject 27 | 28 | @property (nonatomic, assign, readonly) NSUInteger modulesCount; 29 | 30 | - (void)addParseModule:(id)module; 31 | - (void)removeParseModule:(id)module; 32 | 33 | - (BOOL)containsModule:(id)module; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Parse_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "Parse.h" 13 | 14 | #import "ParseManager.h" 15 | 16 | @class PFEventuallyQueue; 17 | 18 | @interface Parse () 19 | 20 | + (void)_resetDataSharingIdentifiers; 21 | 22 | + (ParseManager *)_currentManager; 23 | + (void)_clearCurrentManager; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Persistence/Group/PFFilePersistenceGroup.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFPersistenceGroup.h" 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | typedef NS_OPTIONS(NSUInteger, PFFilePersistenceGroupOptions) { 17 | PFFilePersistenceGroupOptionUseFileLocks = 1 << 0, 18 | }; 19 | 20 | @interface PFFilePersistenceGroup : NSObject 21 | 22 | @property (nonatomic, copy, readonly) NSString *storageDirectoryPath; 23 | @property (nonatomic, assign, readonly) PFFilePersistenceGroupOptions options; 24 | 25 | - (instancetype)initWithStorageDirectoryPath:(NSString *)path 26 | options:(PFFilePersistenceGroupOptions)options; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Persistence/Group/PFPersistenceGroup.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFConstants.h" 13 | 14 | @class BFTask<__covariant BFGenericType>; 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | @protocol PFPersistenceGroup 19 | 20 | ///-------------------------------------- 21 | #pragma mark - Data 22 | ///-------------------------------------- 23 | 24 | - (BFTask *)getDataAsyncForKey:(NSString *)key; 25 | 26 | - (BFTask *)setDataAsync:(NSData *)data forKey:(NSString *)key; 27 | - (BFTask *)removeDataAsyncForKey:(NSString *)key; 28 | 29 | - (BFTask *)removeAllDataAsync; 30 | 31 | ///-------------------------------------- 32 | #pragma mark - Access 33 | ///-------------------------------------- 34 | 35 | - (BFTask *)beginLockedContentAccessAsyncToDataForKey:(NSString *)key; 36 | - (BFTask *)endLockedContentAccessAsyncToDataForKey:(NSString *)key; 37 | 38 | @end 39 | 40 | NS_ASSUME_NONNULL_END 41 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Persistence/Group/PFUserDefaultsPersistenceGroup.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFPersistenceGroup.h" 13 | 14 | @interface PFUserDefaultsPersistenceGroup : NSObject 15 | 16 | @property (nonatomic, copy, readonly) NSString *key; 17 | @property (nonatomic, strong, readonly) NSUserDefaults *userDefaults; 18 | 19 | ///-------------------------------------- 20 | #pragma mark - Init 21 | ///-------------------------------------- 22 | 23 | - (instancetype)init NS_UNAVAILABLE; 24 | - (instancetype)initWithKey:(NSString *)key; 25 | - (instancetype)initWithKey:(NSString *)key userDefaults:(NSUserDefaults *)userDefaults NS_DESIGNATED_INITIALIZER; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Product/PFProduct+Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFProduct.h" 11 | 12 | typedef enum { 13 | PFProductDownloadStateStart, 14 | PFProductDownloadStateDownloading, 15 | PFProductDownloadStateDownloaded 16 | } PFProductDownloadState; 17 | 18 | @interface PFProduct () { 19 | NSDecimalNumber *price; 20 | NSLocale *priceLocale; 21 | NSInteger progress; 22 | NSString *contentPath; 23 | } 24 | 25 | /// The properties below are transient properties, not stored on Parse's server. 26 | /** 27 | The price of the product, discovered via iTunes Connect. 28 | */ 29 | @property (nonatomic, strong) NSDecimalNumber *price; 30 | 31 | /** 32 | The price locale of the product. 33 | */ 34 | @property (nonatomic, strong) NSLocale *priceLocale; 35 | 36 | /** 37 | The progress of the download, if one is in progress. It's an integer between 0 and 100. 38 | */ 39 | @property (nonatomic, assign) NSInteger progress; 40 | 41 | /** 42 | The content path of the download. 43 | */ 44 | @property (nonatomic, strong) NSString *contentPath; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/PropertyInfo/PFPropertyInfo_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFPropertyInfo.h" 13 | 14 | @interface PFPropertyInfo () 15 | 16 | @property (atomic, assign, readonly) Class sourceClass; 17 | @property (atomic, assign, readonly, getter=isObject) BOOL object; 18 | 19 | @property (atomic, copy, readonly) NSString *typeEncoding; 20 | @property (atomic, assign, readonly) Ivar ivar; 21 | 22 | @property (atomic, assign, readonly) SEL getterSelector; 23 | @property (atomic, assign, readonly) SEL setterSelector; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Purchase/PaymentTransactionObserver/PFPaymentTransactionObserver_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFPaymentTransactionObserver.h" 11 | 12 | @interface PFPaymentTransactionObserver () 13 | 14 | @property (nonatomic, strong) NSMutableDictionary *blocks; 15 | @property (nonatomic, strong) NSMutableDictionary *runOnceBlocks; 16 | @property (nonatomic, strong) NSObject *lockObj; 17 | @property (nonatomic, strong) NSObject *runOnceLockObj; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Push/PFPushPrivate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFPush.h" 13 | 14 | #import "PFMacros.h" 15 | 16 | PF_WATCH_UNAVAILABLE_WARNING 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | @protocol PFPushInternalUtils 21 | 22 | @optional 23 | + (NSString *)convertDeviceTokenToString:(id)deviceToken; 24 | + (nullable NSString *)getDeviceTokenFromKeychain; 25 | + (void)clearDeviceToken; 26 | 27 | #if TARGET_OS_IOS 28 | 29 | + (void)showAlertViewWithTitle:(nullable NSString *)title message:(nullable NSString *)message NS_EXTENSION_UNAVAILABLE_IOS(""); 30 | + (void)playVibrate; 31 | + (void)playAudioWithName:(nullable NSString *)audioName; 32 | 33 | #endif 34 | 35 | @end 36 | 37 | @interface PFPush (Private) 38 | 39 | // For unit testability 40 | + (Class)pushInternalUtilClass; 41 | + (void)setPushInternalUtilClass:(nullable Class)utilClass; 42 | 43 | @end 44 | 45 | NS_ASSUME_NONNULL_END 46 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Push/State/PFMutablePushState.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFPushState.h" 11 | 12 | PF_WATCH_UNAVAILABLE_WARNING 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | PF_WATCH_UNAVAILABLE @interface PFMutablePushState : PFPushState 17 | 18 | @property (nullable, nonatomic, copy, readwrite) NSSet *channels; 19 | @property (nullable, nonatomic, copy, readwrite) PFQueryState *queryState; 20 | 21 | @property (nullable, nonatomic, strong, readwrite) NSDate *expirationDate; 22 | @property (nullable, nonatomic, strong, readwrite) NSNumber *expirationTimeInterval; 23 | @property (nullable, nonatomic, strong, readwrite) NSDate *pushDate; 24 | 25 | @property (nullable, nonatomic, copy, readwrite) NSDictionary *payload; 26 | 27 | ///-------------------------------------- 28 | #pragma mark - Payload 29 | ///-------------------------------------- 30 | 31 | - (void)setPayloadWithMessage:(nullable NSString *)message; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Push/State/PFMutablePushState.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFMutablePushState.h" 11 | 12 | #import "PFPushState_Private.h" 13 | 14 | @implementation PFMutablePushState 15 | 16 | @dynamic channels; 17 | @dynamic queryState; 18 | @dynamic expirationDate; 19 | @dynamic expirationTimeInterval; 20 | @dynamic pushDate; 21 | @dynamic payload; 22 | 23 | ///-------------------------------------- 24 | #pragma mark - Payload 25 | ///-------------------------------------- 26 | 27 | - (void)setPayloadWithMessage:(NSString *)message { 28 | if (!message) { 29 | self.payload = nil; 30 | } else { 31 | self.payload = @{ @"alert" : [message copy] }; 32 | } 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Push/State/PFPushState_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFPushState.h" 11 | 12 | /** 13 | Returns NSString representation of a property. 14 | 15 | @param NAME The name of the property. 16 | 17 | @return NSString representation of a given property. 18 | */ 19 | #define PFPushStatePropertyName(NAME) @keypath(PFPushState, NAME) 20 | 21 | NS_ASSUME_NONNULL_BEGIN 22 | 23 | @interface PFPushState () 24 | 25 | @property (nullable, nonatomic, copy, readwrite) NSSet *channels; 26 | @property (nullable, nonatomic, copy, readwrite) PFQueryState *queryState; 27 | 28 | @property (nullable, nonatomic, strong, readwrite) NSDate *expirationDate; 29 | @property (nullable, nonatomic, strong, readwrite) NSNumber *expirationTimeInterval; 30 | @property (nullable, nonatomic, strong, readwrite) NSDate *pushDate; 31 | 32 | @property (nullable, nonatomic, copy, readwrite) NSDictionary *payload; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Push/Utilites/PFPushUtilities.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFPushPrivate.h" 13 | 14 | PF_WATCH_UNAVAILABLE_WARNING 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | PF_WATCH_UNAVAILABLE @interface PFPushUtilities : NSObject 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Query/Controller/PFCachedQueryController.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFQueryController.h" 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @interface PFCachedQueryController : PFQueryController 17 | 18 | @property (nonatomic, weak, readonly) id commonDataSource; 19 | 20 | - (instancetype)initWithCommonDataSource:(id)dataSource; 21 | + (instancetype)controllerWithCommonDataSource:(id)dataSource; 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Query/PFQueryPrivate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFQuery.h" 13 | 14 | #import "PFQueryState.h" 15 | 16 | @class BFTask<__covariant BFGenericType>; 17 | @class PFObject; 18 | 19 | @interface PFQuery (Private) 20 | 21 | @property (nonatomic, strong, readonly) PFQueryState *state; 22 | 23 | - (instancetype)whereRelatedToObject:(PFObject *)parent fromKey:(NSString *)key; 24 | - (void)redirectClassNameForKey:(NSString *)key; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Query/Utilities/PFQueryUtilities.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @interface PFQueryUtilities : NSObject 13 | 14 | ///-------------------------------------- 15 | #pragma mark - Predicate 16 | ///-------------------------------------- 17 | 18 | /** 19 | Takes an arbitrary predicate and normalizes it to a form that can easily be converted to a `PFQuery`. 20 | */ 21 | + (NSPredicate *)predicateByNormalizingPredicate:(NSPredicate *)predicate; 22 | 23 | ///-------------------------------------- 24 | #pragma mark - Regex 25 | ///-------------------------------------- 26 | 27 | /** 28 | Converts a string into a regex that matches it. 29 | 30 | @param string String to convert from. 31 | 32 | @return Query regex string from a string. 33 | */ 34 | + (NSString *)regexStringForString:(NSString *)string; 35 | 36 | ///-------------------------------------- 37 | #pragma mark - Errors 38 | ///-------------------------------------- 39 | 40 | + (NSError *)objectNotFoundError; 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Relation/PFRelationPrivate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFRelation.h" 13 | 14 | @class PFDecoder; 15 | 16 | @interface PFRelation (Private) 17 | 18 | + (PFRelation *)relationForObject:(PFObject *)parent forKey:(NSString *)key; 19 | + (PFRelation *)relationWithTargetClass:(NSString *)targetClass; 20 | + (PFRelation *)relationFromDictionary:(NSDictionary *)dictionary withDecoder:(PFDecoder *)decoder; 21 | - (void)ensureParentIs:(PFObject *)someParent andKeyIs:(NSString *)someKey; 22 | - (NSDictionary *)encodeIntoDictionary:(NSError **)error; 23 | - (BOOL)_hasKnownObject:(PFObject *)object; 24 | - (void)_addKnownObject:(PFObject *)object; 25 | - (void)_removeKnownObject:(PFObject *)object; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Relation/State/PFMutableRelationState.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFRelationState.h" 11 | 12 | @interface PFMutableRelationState : PFRelationState 13 | 14 | @property (nonatomic, weak, readwrite) PFObject *parent; 15 | @property (nonatomic, copy, readwrite) NSString *targetClass; 16 | @property (nonatomic, copy, readonly) NSMutableSet *knownObjects; 17 | @property (nonatomic, copy, readwrite) NSString *key; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Relation/State/PFRelationState.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFBaseState.h" 11 | 12 | @class PFObject; 13 | 14 | @interface PFRelationState : PFBaseState 15 | 16 | @property (nonatomic, weak, readonly) PFObject *parent; 17 | @property (nonatomic, copy, readonly) NSString *parentClassName; 18 | @property (nonatomic, copy, readonly) NSString *parentObjectId; 19 | @property (nonatomic, copy, readonly) NSString *targetClass; 20 | @property (nonatomic, copy, readonly) NSSet *knownObjects; 21 | @property (nonatomic, copy, readonly) NSString *key; 22 | 23 | ///-------------------------------------- 24 | #pragma mark - Init 25 | ///-------------------------------------- 26 | 27 | - (instancetype)initWithState:(PFRelationState *)otherState; 28 | + (instancetype)stateWithState:(PFRelationState *)otherState; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Relation/State/PFRelationState_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFRelationState.h" 11 | 12 | #import "PFMacros.h" 13 | 14 | /** 15 | Returns NSString representation of a property. 16 | 17 | @param NAME The name of the property. 18 | 19 | @return NSString representation of a given property. 20 | */ 21 | #define PFRelationStatePropertyName(NAME) @keypath(PFRelationState, NAME) 22 | 23 | @interface PFRelationState() { 24 | @protected 25 | __weak PFObject *_parent; 26 | NSString *_parentClassName; 27 | NSString *_parentObjectId; 28 | NSSet *_knownObjects; 29 | NSString *_key; 30 | } 31 | 32 | @property (nonatomic, weak, readwrite) PFObject *parent; 33 | @property (nonatomic, copy, readwrite) NSString *parentClassName; 34 | @property (nonatomic, copy, readwrite) NSString *parentObjectId; 35 | @property (nonatomic, copy, readwrite) NSString *targetClass; 36 | @property (nonatomic, copy, readwrite) NSSet *knownObjects; 37 | @property (nonatomic, copy, readwrite) NSString *key; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Session/Controller/PFSessionController.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFConstants.h" 13 | 14 | #import "PFDataProvider.h" 15 | 16 | @class BFTask<__covariant BFGenericType>; 17 | @class PFSession; 18 | 19 | NS_ASSUME_NONNULL_BEGIN 20 | 21 | @interface PFSessionController : NSObject 22 | 23 | @property (nonatomic, weak, readonly) id dataSource; 24 | 25 | ///-------------------------------------- 26 | #pragma mark - Init 27 | ///-------------------------------------- 28 | 29 | - (instancetype)initWithDataSource:(id)dataSource; 30 | + (instancetype)controllerWithDataSource:(id)dataSource; 31 | 32 | ///-------------------------------------- 33 | #pragma mark - Current Session 34 | ///-------------------------------------- 35 | 36 | - (BFTask *)getCurrentSessionAsyncWithSessionToken:(nullable NSString *)sessionToken; 37 | 38 | @end 39 | 40 | NS_ASSUME_NONNULL_END 41 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Session/PFSession_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFSession.h" 13 | 14 | @class PFSessionController; 15 | 16 | @interface PFSession () 17 | 18 | ///-------------------------------------- 19 | #pragma mark - Session Controller 20 | ///-------------------------------------- 21 | 22 | + (PFSessionController *)sessionController; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Session/Utilities/PFSessionUtilities.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PFSessionUtilities : NSObject 15 | 16 | ///-------------------------------------- 17 | #pragma mark - Session Token 18 | ///-------------------------------------- 19 | 20 | + (BOOL)isSessionTokenRevocable:(nullable NSString *)sessionToken; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/Session/Utilities/PFSessionUtilities.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFSessionUtilities.h" 11 | 12 | @implementation PFSessionUtilities 13 | 14 | ///-------------------------------------- 15 | #pragma mark - Session Token 16 | ///-------------------------------------- 17 | 18 | + (BOOL)isSessionTokenRevocable:(NSString *)sessionToken { 19 | return (sessionToken && [sessionToken rangeOfString:@"r:"].location != NSNotFound); 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/ThreadSafety/PFThreadsafety.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | extern dispatch_queue_t PFThreadsafetyCreateQueueForObject(id object); 13 | extern void PFThreadsafetySafeDispatchSync(dispatch_queue_t queue, dispatch_block_t block); 14 | 15 | 16 | // PFThreadsafetySafeDispatchSync, but with a return type. 17 | #define PFThreadSafetyPerform(queue, block) ({ \ 18 | __block typeof((block())) result; \ 19 | PFThreadsafetySafeDispatchSync(queue, ^{ result = block(); }); \ 20 | result; \ 21 | }) 22 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/ThreadSafety/PFThreadsafety.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFThreadsafety.h" 11 | 12 | static void *const PFThreadsafetyQueueIDKey = (void *)&PFThreadsafetyQueueIDKey; 13 | 14 | dispatch_queue_t PFThreadsafetyCreateQueueForObject(id object) { 15 | NSString *label = [NSStringFromClass([object class]) stringByAppendingString:@".synchronizationQueue"]; 16 | dispatch_queue_t queue = dispatch_queue_create(label.UTF8String, DISPATCH_QUEUE_SERIAL); 17 | 18 | void *uuid = calloc(1, sizeof(uuid)); 19 | dispatch_queue_set_specific(queue, PFThreadsafetyQueueIDKey, uuid, free); 20 | 21 | return queue; 22 | } 23 | 24 | void PFThreadsafetySafeDispatchSync(dispatch_queue_t queue, dispatch_block_t block) { 25 | void *uuidMine = dispatch_get_specific(PFThreadsafetyQueueIDKey); 26 | void *uuidOther = dispatch_queue_get_specific(queue, PFThreadsafetyQueueIDKey); 27 | 28 | if (uuidMine == uuidOther) { 29 | block(); 30 | } else { 31 | dispatch_sync(queue, block); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/User/AuthenticationProviders/Providers/Anonymous/PFAnonymousAuthenticationProvider.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFUserAuthenticationDelegate.h" 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | extern NSString *const PFAnonymousUserAuthenticationType; 17 | 18 | @interface PFAnonymousAuthenticationProvider : NSObject 19 | 20 | /** 21 | Gets auth data with a fresh UUID. 22 | */ 23 | @property (nonatomic, copy, readonly) NSDictionary *authData; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/User/AuthenticationProviders/Providers/Anonymous/PFAnonymousAuthenticationProvider.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFAnonymousAuthenticationProvider.h" 11 | 12 | #if __has_include() 13 | #import 14 | #else 15 | #import "BFTask.h" 16 | #endif 17 | 18 | NSString *const PFAnonymousUserAuthenticationType = @"anonymous"; 19 | 20 | @implementation PFAnonymousAuthenticationProvider 21 | 22 | ///-------------------------------------- 23 | #pragma mark - PFAnonymousAuthenticationProvider 24 | ///-------------------------------------- 25 | 26 | - (BOOL)restoreAuthenticationWithAuthData:(NSDictionary *)authData { 27 | return YES; 28 | } 29 | 30 | ///-------------------------------------- 31 | #pragma mark - Accessors 32 | ///-------------------------------------- 33 | 34 | - (NSDictionary *)authData { 35 | NSString *uuidString = [NSUUID UUID].UUIDString; 36 | uuidString = uuidString.lowercaseString; 37 | return @{ @"id" : uuidString }; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/User/AuthenticationProviders/Providers/Anonymous/PFAnonymousUtils_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFAnonymousUtils.h" 11 | 12 | @class PFAnonymousAuthenticationProvider; 13 | @class PFUser; 14 | 15 | @interface PFAnonymousUtils (Private) 16 | 17 | + (PFAnonymousAuthenticationProvider *)_authenticationProvider; 18 | + (void)_clearAuthenticationProvider; 19 | 20 | + (PFUser *)_lazyLogIn; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/User/Coder/File/PFUserFileCodingLogic.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFObjectFileCodingLogic.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PFUserFileCodingLogic : PFObjectFileCodingLogic 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/User/Constants/PFUserConstants.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | extern NSString *const PFUserUsernameRESTKey; 13 | extern NSString *const PFUserPasswordRESTKey; 14 | extern NSString *const PFUserSessionTokenRESTKey; 15 | extern NSString *const PFUserAuthDataRESTKey; 16 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/User/Constants/PFUserConstants.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFUserConstants.h" 11 | 12 | NSString *const PFUserUsernameRESTKey = @"username"; 13 | NSString *const PFUserPasswordRESTKey = @"password"; 14 | NSString *const PFUserSessionTokenRESTKey = @"sessionToken"; 15 | NSString *const PFUserAuthDataRESTKey = @"authData"; 16 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/User/State/PFMutableUserState.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFUserState.h" 11 | 12 | @interface PFMutableUserState : PFUserState 13 | 14 | @property (nonatomic, copy, readwrite) NSString *sessionToken; 15 | @property (nonatomic, copy, readwrite) NSDictionary *authData; 16 | 17 | @property (nonatomic, assign, readwrite) BOOL isNew; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/User/State/PFMutableUserState.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFMutableUserState.h" 11 | 12 | #import "PFUserState_Private.h" 13 | 14 | @implementation PFMutableUserState 15 | 16 | @dynamic sessionToken; 17 | @dynamic authData; 18 | @dynamic isNew; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/User/State/PFUserState.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFObjectState.h" 11 | 12 | @class PFMutableUserState; 13 | 14 | typedef void(^PFUserStateMutationBlock)(PFMutableUserState *state); 15 | 16 | @interface PFUserState : PFObjectState 17 | 18 | @property (nonatomic, copy, readonly) NSString *sessionToken; 19 | @property (nonatomic, copy, readonly) NSDictionary *authData; 20 | 21 | @property (nonatomic, assign, readonly) BOOL isNew; 22 | 23 | ///-------------------------------------- 24 | #pragma mark - Init 25 | ///-------------------------------------- 26 | 27 | - (instancetype)initWithState:(PFUserState *)state; 28 | - (instancetype)initWithState:(PFUserState *)state mutatingBlock:(PFUserStateMutationBlock)block; 29 | + (instancetype)stateWithState:(PFUserState *)state; 30 | 31 | ///-------------------------------------- 32 | #pragma mark - Mutating 33 | ///-------------------------------------- 34 | 35 | - (PFUserState *)copyByMutatingWithBlock:(PFUserStateMutationBlock)block; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Parse/Parse/Internal/User/State/PFUserState_Private.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFUserState.h" 11 | 12 | @interface PFUserState () { 13 | @protected 14 | NSString *_sessionToken; 15 | NSDictionary *_authData; 16 | 17 | BOOL _isNew; 18 | } 19 | 20 | @property (nonatomic, copy, readwrite) NSString *sessionToken; 21 | @property (nonatomic, copy, readwrite) NSDictionary *authData; 22 | 23 | @property (nonatomic, assign, readwrite) BOOL isNew; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Parse/Parse/Resources/Parse-OSX.Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | Parse 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | FMWK 15 | CFBundleShortVersionString 16 | 5.1.1 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 5.1.1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Parse/Parse/Resources/Parse-iOS.Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | Parse 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | FMWK 15 | CFBundleShortVersionString 16 | 5.1.1 17 | CFBundleSignature 18 | ???? 19 | CFBundleSupportedPlatforms 20 | 21 | iPhoneOS 22 | 23 | CFBundleVersion 24 | 5.1.1 25 | MinimumOSVersion 26 | 12.0 27 | 28 | 29 | -------------------------------------------------------------------------------- /Parse/Parse/Resources/Parse-tvOS.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 | 5.1.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 5.1.1 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Parse/Parse/Resources/Parse-watchOS.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 | 5.1.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 5.1.1 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Parse/Parse/Resources/en.lproj/Parse.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/parse-community/Parse-SDK-iOS-OSX/e270078541dbe87a8471a7824808755d4120a365/Parse/Parse/Resources/en.lproj/Parse.strings -------------------------------------------------------------------------------- /Parse/Parse/Source/PFFileUploadResult.h: -------------------------------------------------------------------------------- 1 | // 2 | // PFFileUploadResult.h 3 | // Parse 4 | // 5 | // Created by Ken Cooper on 2/21/17. 6 | // Copyright © 2017 Parse Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /** 12 | Response provided by a custom `PFFileUploadController`. 13 | */ 14 | @interface PFFileUploadResult : NSObject 15 | @property (strong, nonatomic) NSString *url; 16 | @property (strong, nonatomic) NSString *name; 17 | @end 18 | -------------------------------------------------------------------------------- /Parse/Parse/Source/PFUserAuthenticationDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "PFConstants.h" 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | /** 17 | Provides a general interface for delegation of third party authentication with `PFUser`s. 18 | */ 19 | @protocol PFUserAuthenticationDelegate 20 | 21 | /** 22 | Called when restoring third party authentication credentials that have been serialized, 23 | such as session keys, user id, etc. 24 | 25 | @note This method will be executed on a background thread. 26 | 27 | @param authData The auth data for the provider. This value may be `nil` when unlinking an account. 28 | 29 | @return `YES` - if the `authData` was succesfully synchronized, 30 | or `NO` if user should not longer be associated because of bad `authData`. 31 | */ 32 | - (BOOL)restoreAuthenticationWithAuthData:(nullable NSDictionary *)authData; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /Parse/ParseUnitTests-iOS-host/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // ParseUnitTests-iOS-host 4 | // 5 | // Created by Florent Vilmart on 17-08-28. 6 | // Copyright © 2017 Parse Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Parse/ParseUnitTests-iOS-host/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // ParseUnitTests-iOS-host 4 | // 5 | // Created by Florent Vilmart on 17-08-28. 6 | // Copyright © 2017 Parse Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Parse/ParseUnitTests-iOS-host/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // ParseUnitTests-iOS-host 4 | // 5 | // Created by Florent Vilmart on 17-08-28. 6 | // Copyright © 2017 Parse Inc. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | 11 | @interface ViewController () 12 | 13 | @end 14 | 15 | @implementation ViewController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | // Do any additional setup after loading the view, typically from a nib. 20 | } 21 | 22 | 23 | - (void)didReceiveMemoryWarning { 24 | [super didReceiveMemoryWarning]; 25 | // Dispose of any resources that can be recreated. 26 | } 27 | 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Parse/ParseUnitTests-iOS-host/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // ParseUnitTests-iOS-host 4 | // 5 | // Created by Florent Vilmart on 17-08-28. 6 | // Copyright © 2017 Parse Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Parse/Tests/Other/Cache/TestCache.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | @import Foundation; 11 | 12 | /** 13 | Because OCMock is not thread-safe, let's create our own class that implements NSCache. 14 | Note that we don't inherit from NSCache, so we still get 'strict mock' functionality. We cannot do expectations 15 | this way, however. 16 | */ 17 | @interface TestCache : NSObject 18 | 19 | + (NSCache *)cache; 20 | 21 | - (id)objectForKey:(id)key; 22 | - (void)setObject:(id)object forKey:(id)aKey; 23 | - (void)removeObjectForKey:(id)aKey; 24 | - (void)removeAllObjects; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Parse/Tests/Other/ExtensionDataSharing/PFExtensionDataSharingTestHelper.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | @import Foundation; 11 | 12 | @interface PFExtensionDataSharingTestHelper : NSObject 13 | 14 | @property (nonatomic, assign) BOOL swizzledGroupContainerDirectoryPath; 15 | @property (nonatomic, assign) BOOL runningInExtensionEnvironment; 16 | 17 | + (NSString *)sharedTestDirectoryPath; 18 | + (NSString *)sharedTestDirectoryPathForGroupIdentifier:(NSString *)groupIdentifier; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Parse/Tests/Other/FileManager/TestFileManager.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | @import Foundation; 11 | 12 | @interface TestFileManager : NSObject 13 | 14 | + (NSFileManager *)fileManager; 15 | 16 | - (NSData *)contentsAtPath:(NSString *)path; 17 | - (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr; 18 | - (BOOL) removeItemAtURL:(NSURL *)URL error:(NSError **)error; 19 | - (BOOL)createDirectoryAtURL:(NSURL *)url 20 | withIntermediateDirectories:(BOOL)createIntermediates 21 | attributes:(NSDictionary *)attributes 22 | error:(NSError **)error; 23 | - (NSDirectoryEnumerator *)enumeratorAtPath:(NSString *)path; 24 | - (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error; 25 | - (BOOL)setAttributes:(NSDictionary *)attributes ofItemAtPath:(NSString *)path error:(NSError **)error; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Parse/Tests/Other/LocationManager/CLLocationManager+TestAdditions.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | @import CoreLocation; 11 | 12 | #define CL_DEFAULT_LATITUDE 37.7937 13 | #define CL_DEFAULT_LONGITUDE -122.3967 14 | 15 | @interface CLLocationManager (TestAdditions) 16 | 17 | // Used to simulate a delay in finding + returning updated location. 18 | + (void)setMockingEnabled:(BOOL)enabled; 19 | + (void)setAuthorizationStatus:(CLAuthorizationStatus)status; 20 | 21 | + (void)setReturnLocation:(BOOL)doReturnLocation; 22 | + (void)setWillFail:(BOOL)doFail; 23 | + (void)reset; 24 | 25 | - (void)overriddenStartUpdatingLocation; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Parse/Tests/Other/NetworkMocking/PFMockURLProtocol.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | @import Foundation; 11 | 12 | #import "PFMockURLResponse.h" 13 | 14 | typedef BOOL(^PFMockURLProtocolRequestTestBlock)(NSURLRequest *request); 15 | typedef PFMockURLResponse*(^PFMockURLResponseContructingBlock)(NSURLRequest *request); 16 | 17 | @interface PFMockURLProtocol : NSURLProtocol 18 | 19 | + (void)mockRequestsWithResponse:(PFMockURLResponseContructingBlock)constructingBlock; 20 | + (void)mockRequestsPassingTest:(PFMockURLProtocolRequestTestBlock)testBlock 21 | withResponse:(PFMockURLResponseContructingBlock)constructingBlock; 22 | + (void)mockRequestsPassingTest:(PFMockURLProtocolRequestTestBlock)testBlock 23 | withResponse:(PFMockURLResponseContructingBlock)constructingBlock 24 | forAttempts:(NSUInteger)attemptsCount; 25 | 26 | + (void)removeAllMocking; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Parse/Tests/Other/OCMock/OCMock+Parse.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @class PFRESTCommand; 13 | 14 | @interface OCMockObject (PFCommandRunning) 15 | 16 | - (void)mockCommandResult:(id)result forCommandsPassingTest:(BOOL (^)(PFRESTCommand *command))block; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Parse/Tests/Other/StoreKitMocking/PFTestSKPaymentQueue.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | @import StoreKit; 11 | 12 | @interface PFTestSKPaymentQueue : SKPaymentQueue 13 | 14 | + (void)setCanMakePayments:(BOOL)canMakePayments; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Parse/Tests/Other/StoreKitMocking/PFTestSKPaymentTransaction.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | @import StoreKit; 11 | 12 | @interface PFTestSKPaymentTransaction : SKPaymentTransaction 13 | 14 | @property (nonatomic, strong) NSError *error; 15 | @property (nonatomic, strong) SKPaymentTransaction *originalTransaction; 16 | @property (nonatomic, strong) SKPayment *payment; 17 | @property (nonatomic, strong) NSDate *transactionDate; 18 | @property (nonatomic, copy) NSString *transactionIdentifier; 19 | @property (nonatomic, strong) NSData *transactionReceipt; 20 | @property (nonatomic, assign) SKPaymentTransactionState transactionState; 21 | 22 | + (instancetype)transactionForPayment:(SKPayment *)payment 23 | withError:(NSError *)error 24 | inState:(SKPaymentTransactionState)state; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Parse/Tests/Other/StoreKitMocking/PFTestSKPaymentTransaction.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFTestSKPaymentTransaction.h" 11 | 12 | @implementation PFTestSKPaymentTransaction 13 | 14 | @synthesize 15 | error = _error, 16 | originalTransaction = _originalTransaction, 17 | payment = _payment, 18 | transactionDate = _transactionDate, 19 | transactionIdentifier = _transactionIdentifier, 20 | transactionReceipt = _transactionReceipt, 21 | transactionState = _transactionState; 22 | 23 | + (instancetype)transactionForPayment:(SKPayment *)payment 24 | withError:(NSError *)error 25 | inState:(SKPaymentTransactionState)state { 26 | PFTestSKPaymentTransaction *transaction = [[self alloc] init]; 27 | transaction.payment = payment; 28 | transaction.error = error; 29 | transaction.transactionState = state; 30 | return transaction; 31 | } 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Parse/Tests/Other/StoreKitMocking/PFTestSKProduct.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | @import StoreKit; 11 | 12 | @interface PFTestSKProduct : SKProduct 13 | 14 | + (instancetype)productWithProductIdentifier:(NSString *)productIdentifier 15 | price:(NSDecimalNumber *)price 16 | title:(NSString *)title 17 | description:(NSString *)description; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Parse/Tests/Other/StoreKitMocking/PFTestSKProductsRequest.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | @import StoreKit; 11 | 12 | @interface PFTestSKProductsRequest : SKProductsRequest 13 | 14 | + (void)setValidProducts:(NSSet *)products; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Parse/Tests/Other/StoreKitMocking/PFTestSKProductsResponse.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | @import StoreKit; 11 | 12 | @interface PFTestSKProductsResponse : SKProductsResponse 13 | 14 | - (instancetype)initWithProducts:(NSArray *)products 15 | invalidProductIdentifiers:(NSArray *)invalidProductIdentifiers NS_DESIGNATED_INITIALIZER; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Parse/Tests/Other/StoreKitMocking/PFTestSKProductsResponse.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFTestSKProductsResponse.h" 11 | 12 | #import "PFAssert.h" 13 | 14 | @interface PFTestSKProductsResponse () 15 | 16 | @property (nonatomic, copy) NSArray *products; 17 | @property (nonatomic, copy) NSArray *invalidProductIdentifiers; 18 | 19 | @end 20 | 21 | @implementation PFTestSKProductsResponse 22 | 23 | @synthesize products = _products; 24 | @synthesize invalidProductIdentifiers = _invalidProductIdentifiers; 25 | 26 | - (instancetype)init { 27 | return [self initWithProducts:nil invalidProductIdentifiers:nil]; 28 | } 29 | 30 | - (instancetype)initWithProducts:(NSArray *)products 31 | invalidProductIdentifiers:(NSArray *)invalidProductIdentifiers { 32 | self = [super init]; 33 | if (!self) return nil; 34 | 35 | _products = [products copy]; 36 | _invalidProductIdentifiers = [invalidProductIdentifiers copy]; 37 | 38 | return self; 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /Parse/Tests/Other/Swizzling/PFTestSwizzledMethod.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | @import Foundation; 11 | 12 | @interface PFTestSwizzledMethod : NSObject 13 | 14 | @property (nonatomic, assign, getter=isSwizzled) BOOL swizzled; 15 | 16 | - (instancetype)initWithOriginalSelector:(SEL)originalSelector 17 | inClass:(Class)originalClass 18 | replacementSelector:(SEL)replacementSelector 19 | inClass:(Class)replcementClass; 20 | 21 | - (instancetype)initWithOriginalSelector:(SEL)originalSelector 22 | inClass:(Class)originalClass 23 | replacementSelector:(SEL)replacementSelector 24 | inClass:(Class)replcementClass 25 | isClassMethod:(BOOL)isClassMethod; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Parse/Tests/Other/Swizzling/PFTestSwizzlingUtilities.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | @import Foundation; 11 | 12 | #import "PFConstants.h" 13 | 14 | #import "PFTestSwizzledMethod.h" 15 | 16 | @interface PFTestSwizzlingUtilities : NSObject 17 | 18 | + (PFTestSwizzledMethod *)swizzleMethod:(SEL)originalSelector 19 | withMethod:(SEL)overrideSelector 20 | inClass:(Class)aClass; 21 | + (PFTestSwizzledMethod *)swizzleMethod:(SEL)originalSelector 22 | inClass:(Class)originalClass 23 | withMethod:(SEL)overrideSelector 24 | inClass:(Class)overrideClass; 25 | + (PFTestSwizzledMethod *)swizzleClassMethod:(SEL)originalSelector 26 | inClass:(Class)aClass 27 | withMethod:(SEL)overrideSelector 28 | inClass:(Class)overrideClass; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Parse/Tests/Other/TestCases/UnitTestCase/PFUnitTestCase.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFTestCase.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface PFUnitTestCase : PFTestCase 15 | 16 | @property (nonatomic, copy, readonly) NSString *applicationId; 17 | @property (nonatomic, copy, readonly) NSString *clientKey; 18 | 19 | ///-------------------------------------- 20 | #pragma mark - XCTestCase 21 | ///-------------------------------------- 22 | 23 | - (void)setUp NS_REQUIRES_SUPER; 24 | - (void)tearDown NS_REQUIRES_SUPER; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /Parse/Tests/Unit/ACLDefaultTests.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFUnitTestCase.h" 11 | 12 | #import "PFACLPrivate.h" 13 | 14 | @interface ACLDefaultTests : PFUnitTestCase 15 | 16 | @end 17 | 18 | @implementation ACLDefaultTests 19 | 20 | - (void)testDefaultACL { 21 | PFACL *newACL = [PFACL ACL]; 22 | [newACL setPublicReadAccess:YES]; 23 | [newACL setShared:YES]; 24 | 25 | XCTAssertNotEqualObjects(newACL, [PFACL defaultACL]); 26 | [PFACL setDefaultACL:newACL withAccessForCurrentUser:YES]; 27 | XCTAssertEqualObjects(newACL, [PFACL defaultACL]); 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Parse/Tests/Unit/FileCommandTests.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFHTTPRequest.h" 11 | #import "PFRESTFileCommand.h" 12 | #import "PFTestCase.h" 13 | 14 | @interface FileCommandTests : PFTestCase 15 | 16 | @end 17 | 18 | @implementation FileCommandTests 19 | 20 | - (void)testUploadFileCommand { 21 | PFRESTFileCommand *command = [PFRESTFileCommand uploadCommandForFileWithName:@"a" sessionToken:@"yolo"]; 22 | XCTAssertNotNil(command); 23 | XCTAssertEqualObjects(command.httpPath, @"files/a"); 24 | XCTAssertEqualObjects(command.httpMethod, PFHTTPRequestMethodPOST); 25 | XCTAssertNil(command.parameters); 26 | XCTAssertEqualObjects(command.sessionToken, @"yolo"); 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Parse/Tests/Unit/IncrementUnitTests.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFObject.h" 11 | #import "PFTestCase.h" 12 | 13 | @interface IncrementUnitTests : PFTestCase 14 | 15 | @end 16 | 17 | @implementation IncrementUnitTests 18 | 19 | - (void)testIncrementWorksOnlyOnNumbers { 20 | PFObject *object = [PFObject objectWithClassName:@"Test"]; 21 | object[@"score"] = @"foo"; 22 | 23 | PFAssertThrowsInvalidArgumentException([object incrementKey:@"score"]); 24 | PFAssertThrowsInvalidArgumentException([object incrementKey:@"score" byAmount:@1]); 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Parse/Tests/Unit/PinUnitTests.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFPin.h" 11 | #import "PFUnitTestCase.h" 12 | #import "Parse_Private.h" 13 | 14 | @interface PinUnitTests : PFUnitTestCase 15 | 16 | @end 17 | 18 | @implementation PinUnitTests 19 | 20 | ///-------------------------------------- 21 | #pragma mark - Tests 22 | ///-------------------------------------- 23 | 24 | - (void)testAccessors { 25 | PFPin *pin = [[PFPin alloc] init]; 26 | 27 | pin.name = @"Matcha"; 28 | pin.objects = [@[ @"Green Tea" ] mutableCopy]; 29 | 30 | XCTAssertEqualObjects(@"Matcha", pin.name); 31 | XCTAssertEqualObjects(@"Green Tea", pin.objects[0]); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Parse/Tests/Unit/ProductTests.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFProduct.h" 11 | #import "PFUnitTestCase.h" 12 | #import "PFObjectPrivate.h" 13 | 14 | @interface ProductTests : PFUnitTestCase 15 | 16 | @end 17 | 18 | @implementation ProductTests 19 | 20 | - (void)testSubclass { 21 | XCTAssertNotNil([PFProduct parseClassName]); 22 | 23 | XCTAssertNoThrow([PFProduct object]); 24 | PFAssertThrowsInvalidArgumentException([[PFProduct alloc] initWithClassName:@"Yarr"]); 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Parse/Tests/Unit/SessionUtilitiesTests.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "PFSessionUtilities.h" 11 | #import "PFTestCase.h" 12 | 13 | @interface SessionUtilitiesTests : PFTestCase 14 | 15 | @end 16 | 17 | @implementation SessionUtilitiesTests 18 | 19 | - (void)testRevocableSessionToken { 20 | XCTAssertTrue([PFSessionUtilities isSessionTokenRevocable:@"r:blahblahblah"]); 21 | } 22 | 23 | - (void)testRevocableSesionTokenWithMiddleToken { 24 | XCTAssertTrue([PFSessionUtilities isSessionTokenRevocable:@"blahr:blah"]); 25 | } 26 | 27 | - (void)testRevocableSessionTokenFromNil { 28 | XCTAssertFalse([PFSessionUtilities isSessionTokenRevocable:nil]); 29 | } 30 | 31 | - (void)testRevocableSessionTokenFromBadToken { 32 | XCTAssertFalse([PFSessionUtilities isSessionTokenRevocable:@"blahblah"]); 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Parse/Tests/testServer.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/parse-community/Parse-SDK-iOS-OSX/e270078541dbe87a8471a7824808755d4120a365/Parse/Tests/testServer.config -------------------------------------------------------------------------------- /ParseLiveQuery/.gitignore: -------------------------------------------------------------------------------- 1 | Package.resolved 2 | -------------------------------------------------------------------------------- /ParseLiveQuery/Examples/LiveQueryDemo-ObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ParseLiveQuery/Examples/LiveQueryDemo-ObjC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ParseLiveQuery/Examples/LiveQueryDemo-ObjC/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | LSMinimumSystemVersion 26 | $(MACOSX_DEPLOYMENT_TARGET) 27 | NSHumanReadableCopyright 28 | Copyright © 2016 Parse. All rights reserved. 29 | NSPrincipalClass 30 | NSApplication 31 | 32 | 33 | -------------------------------------------------------------------------------- /ParseLiveQuery/Examples/LiveQueryDemo-ObjC/Message.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | @import ParseCore; 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface Message : PFObject 15 | 16 | @property (nullable, nonatomic, strong) PFUser *author; 17 | @property (nullable, nonatomic, strong) NSString *authorName; 18 | @property (nullable, nonatomic, strong) NSString *message; 19 | @property (nullable, nonatomic, strong) PFObject *room; 20 | @property (nullable, nonatomic, strong) NSString *roomName; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /ParseLiveQuery/Examples/LiveQueryDemo-ObjC/Message.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "Message.h" 11 | 12 | @implementation Message 13 | 14 | @dynamic author, authorName, message, room, roomName; 15 | 16 | + (NSString *)parseClassName { 17 | return @"Message"; 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /ParseLiveQuery/Examples/LiveQueryDemo-ObjC/Room.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | @import ParseCore; 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface Room : PFObject 15 | 16 | @property (nullable, nonatomic, strong) NSString *name; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /ParseLiveQuery/Examples/LiveQueryDemo-ObjC/Room.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "Room.h" 11 | 12 | @implementation Room 13 | 14 | @dynamic name; 15 | 16 | + (NSString *)parseClassName { 17 | return @"Room"; 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /ParseLiveQuery/Examples/LiveQueryDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ParseLiveQuery/Examples/LiveQueryDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ParseLiveQuery/Examples/LiveQueryDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSAppTransportSecurity 6 | 7 | NSAllowsArbitraryLoads 8 | 9 | 10 | CFBundleDevelopmentRegion 11 | en 12 | CFBundleExecutable 13 | $(EXECUTABLE_NAME) 14 | CFBundleIconFile 15 | 16 | CFBundleIdentifier 17 | $(PRODUCT_BUNDLE_IDENTIFIER) 18 | CFBundleInfoDictionaryVersion 19 | 6.0 20 | CFBundleName 21 | $(PRODUCT_NAME) 22 | CFBundlePackageType 23 | APPL 24 | CFBundleShortVersionString 25 | 1.0 26 | CFBundleSignature 27 | ???? 28 | CFBundleVersion 29 | 1 30 | LSMinimumSystemVersion 31 | $(MACOSX_DEPLOYMENT_TARGET) 32 | NSHumanReadableCopyright 33 | Copyright © 2016 Parse. All rights reserved. 34 | NSPrincipalClass 35 | NSApplication 36 | 37 | 38 | -------------------------------------------------------------------------------- /ParseLiveQuery/Examples/LiveQueryDemo/Message.swift: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | import Foundation 11 | import ParseCore 12 | 13 | class Message: PFObject, PFSubclassing { 14 | @NSManaged var author: PFUser? 15 | @NSManaged var authorName: String? 16 | @NSManaged var message: String? 17 | @NSManaged var room: PFObject? 18 | @NSManaged var roomName: String? 19 | 20 | class func parseClassName() -> String { 21 | return "Message" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ParseLiveQuery/Examples/LiveQueryDemo/Room.swift: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | import Foundation 11 | import ParseCore 12 | 13 | class Room: PFObject, PFSubclassing { 14 | @NSManaged var name: String? 15 | 16 | static func parseClassName() -> String { 17 | return "Room" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ParseLiveQuery/ParseLiveQuery-tvOS/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 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 5.1.1 19 | CFBundleVersion 20 | 5.1.1 21 | 22 | 23 | -------------------------------------------------------------------------------- /ParseLiveQuery/ParseLiveQuery-tvOS/ParseLiveQuery_tvOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // ParseLiveQuery_tvOS.h 3 | // ParseLiveQuery-tvOS 4 | // 5 | // Created by Corey Baker on 11/15/20. 6 | // Copyright © 2020 Parse. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for ParseLiveQuery_tvOS. 12 | FOUNDATION_EXPORT double ParseLiveQuery_tvOSVersionNumber; 13 | 14 | //! Project version string for ParseLiveQuery_tvOS. 15 | FOUNDATION_EXPORT const unsigned char ParseLiveQuery_tvOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /ParseLiveQuery/ParseLiveQuery-watchOS/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 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 5.1.1 19 | CFBundleVersion 20 | 5.1.1 21 | 22 | 23 | -------------------------------------------------------------------------------- /ParseLiveQuery/ParseLiveQuery-watchOS/ParseLiveQuery_watchOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // ParseLiveQuery_watchOS.h 3 | // ParseLiveQuery-watchOS 4 | // 5 | // Created by Corey Baker on 11/15/20. 6 | // Copyright © 2020 Parse. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for ParseLiveQuery_watchOS. 12 | FOUNDATION_EXPORT double ParseLiveQuery_watchOSVersionNumber; 13 | 14 | //! Project version string for ParseLiveQuery_watchOS. 15 | FOUNDATION_EXPORT const unsigned char ParseLiveQuery_watchOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /ParseLiveQuery/ParseLiveQuery.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ParseLiveQuery/ParseLiveQuery.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ParseLiveQuery/ParseLiveQuery/Internal/Common.swift: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | /** 11 | * Add support for both SPM and Dynamic Framework Imports TODO: (@dplewis) 12 | */ 13 | #if canImport(ParseCore) 14 | @_exported import ParseCore 15 | #else 16 | @_exported import Parse 17 | #endif 18 | -------------------------------------------------------------------------------- /ParseLiveQuery/ParseLiveQuery/PFQuery+Subscribe.swift: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | import Foundation 11 | -------------------------------------------------------------------------------- /ParseLiveQuery/ParseLiveQuery/Parse+LiveQuery.swift: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | //import ParseCore 11 | 12 | extension Parse { 13 | static func validatedCurrentConfiguration() -> ParseClientConfiguration { 14 | guard let configuration = Parse.currentConfiguration else { 15 | preconditionFailure("Parse SDK is not initialized. Call Parse.initializeWithConfiguration() before loading live query client.") 16 | } 17 | return configuration 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ParseLiveQuery/ParseLiveQuery/Resources/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 | BNDL 17 | CFBundleShortVersionString 18 | 5.1.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 5.1.1 23 | 24 | 25 | -------------------------------------------------------------------------------- /ParseStarterProject/.gitignore: -------------------------------------------------------------------------------- 1 | *.framework 2 | Package.resolved 3 | -------------------------------------------------------------------------------- /ParseStarterProject/OSX/ParseOSXStarterProject-Swift/ParseOSXStarterProject-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ParseStarterProject/OSX/ParseOSXStarterProject-Swift/ParseOSXStarterProject-Swift.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ParseStarterProject/OSX/ParseOSXStarterProject-Swift/Resources/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "mac", 5 | "size" : "16x16", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "mac", 10 | "size" : "16x16", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "mac", 15 | "size" : "32x32", 16 | "scale" : "1x" 17 | }, 18 | { 19 | "idiom" : "mac", 20 | "size" : "32x32", 21 | "scale" : "2x" 22 | }, 23 | { 24 | "idiom" : "mac", 25 | "size" : "128x128", 26 | "scale" : "1x" 27 | }, 28 | { 29 | "idiom" : "mac", 30 | "size" : "128x128", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "idiom" : "mac", 35 | "size" : "256x256", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "mac", 40 | "size" : "256x256", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "mac", 45 | "size" : "512x512", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "mac", 50 | "size" : "512x512", 51 | "scale" : "2x" 52 | } 53 | ], 54 | "info" : { 55 | "version" : 1, 56 | "author" : "xcode" 57 | } 58 | } -------------------------------------------------------------------------------- /ParseStarterProject/OSX/ParseOSXStarterProject-Swift/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 5.1.1 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 5.1.1 25 | LSMinimumSystemVersion 26 | $(MACOSX_DEPLOYMENT_TARGET) 27 | NSMainNibFile 28 | MainMenu 29 | NSPrincipalClass 30 | NSApplication 31 | 32 | 33 | -------------------------------------------------------------------------------- /ParseStarterProject/OSX/ParseOSXStarterProject/ParseOSXStarterProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ParseStarterProject/OSX/ParseOSXStarterProject/ParseOSXStarterProject.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ParseStarterProject/OSX/ParseOSXStarterProject/ParseOSXStarterProject/AppDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import 13 | 14 | @interface AppDelegate : NSObject 15 | 16 | @property (assign) IBOutlet NSWindow *window; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /ParseStarterProject/OSX/ParseOSXStarterProject/ParseOSXStarterProject/main.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | int main(int argc, const char *argv[]) 13 | { 14 | return NSApplicationMain(argc, argv); 15 | } 16 | -------------------------------------------------------------------------------- /ParseStarterProject/OSX/ParseOSXStarterProject/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 5.1.1 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 5.1.1 25 | LSMinimumSystemVersion 26 | ${MACOSX_DEPLOYMENT_TARGET} 27 | NSMainNibFile 28 | MainMenu 29 | NSPrincipalClass 30 | NSApplication 31 | 32 | 33 | -------------------------------------------------------------------------------- /ParseStarterProject/OSX/ParseOSXStarterProject/Resources/en.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} 2 | {\colortbl;\red255\green255\blue255;} 3 | \paperw9840\paperh8400 4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 5 | 6 | \f0\b\fs24 \cf0 Engineering: 7 | \b0 \ 8 | Some people\ 9 | \ 10 | 11 | \b Human Interface Design: 12 | \b0 \ 13 | Some other people\ 14 | \ 15 | 16 | \b Testing: 17 | \b0 \ 18 | Hopefully not nobody\ 19 | \ 20 | 21 | \b Documentation: 22 | \b0 \ 23 | Whoever\ 24 | \ 25 | 26 | \b With special thanks to: 27 | \b0 \ 28 | Mom\ 29 | } 30 | -------------------------------------------------------------------------------- /ParseStarterProject/OSX/ParseOSXStarterProject/Resources/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject-Swift/ParseStarterProject-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject-Swift/ParseStarterProject-Swift.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject-Swift/ParseStarterProject/ViewController.swift: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | import UIKit 11 | import ParseCore 12 | 13 | class ViewController: UIViewController { 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | // Do any additional setup after loading the view, typically from a nib. 18 | } 19 | 20 | override func didReceiveMemoryWarning() { 21 | super.didReceiveMemoryWarning() 22 | // Dispose of any resources that can be recreated. 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject-Swift/Resources/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject/ParseStarterProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject/ParseStarterProject.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject/ParseStarterProject/ParseStarterProjectAppDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @class ParseStarterProjectViewController; 13 | 14 | @interface ParseStarterProjectAppDelegate : NSObject 15 | 16 | @property (nonatomic, strong) IBOutlet UIWindow *window; 17 | 18 | @property (nonatomic, strong) IBOutlet ParseStarterProjectViewController *viewController; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject/ParseStarterProject/ParseStarterProjectViewController.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @interface ParseStarterProjectViewController : UIViewController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject/ParseStarterProject/ParseStarterProjectViewController.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "ParseStarterProjectViewController.h" 11 | 12 | @implementation ParseStarterProjectViewController 13 | 14 | #pragma mark - 15 | #pragma mark UIViewController 16 | 17 | // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 18 | - (void)viewDidLoad { 19 | [super viewDidLoad]; 20 | } 21 | 22 | - (void)didReceiveMemoryWarning { 23 | // Releases the view if it doesn't have a superview. 24 | [super didReceiveMemoryWarning]; 25 | 26 | // Release any cached data, images, etc that aren't in use. 27 | } 28 | 29 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 30 | // Return YES for supported orientations 31 | return (interfaceOrientation == UIInterfaceOrientationPortrait); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject/ParseStarterProject/main.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | 11 | #import 12 | 13 | #import "ParseStarterProjectAppDelegate.h" 14 | 15 | int main(int argc, char *argv[]) 16 | { 17 | @autoreleasepool { 18 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([ParseStarterProjectAppDelegate class])); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject/Resources/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/parse-community/Parse-SDK-iOS-OSX/e270078541dbe87a8471a7824808755d4120a365/ParseStarterProject/iOS/ParseStarterProject/Resources/Default-568h@2x.png -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject/Resources/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/parse-community/Parse-SDK-iOS-OSX/e270078541dbe87a8471a7824808755d4120a365/ParseStarterProject/iOS/ParseStarterProject/Resources/Default.png -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject/Resources/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/parse-community/Parse-SDK-iOS-OSX/e270078541dbe87a8471a7824808755d4120a365/ParseStarterProject/iOS/ParseStarterProject/Resources/Default@2x.png -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIconFile 12 | 13 | CFBundleIdentifier 14 | $(PRODUCT_BUNDLE_IDENTIFIER) 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | ${PRODUCT_NAME} 19 | CFBundlePackageType 20 | APPL 21 | CFBundleShortVersionString 22 | 5.1.1 23 | CFBundleSignature 24 | ???? 25 | CFBundleVersion 26 | 5.1.1 27 | LSRequiresIPhoneOS 28 | 29 | NSMainNibFile 30 | MainWindow 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /ParseStarterProject/iOS/ParseStarterProject/Resources/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | -------------------------------------------------------------------------------- /ParseStarterProject/tvOS/ParseStarterProject-Swift/ParseStarter-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ParseStarterProject/tvOS/ParseStarterProject-Swift/ParseStarter-Swift.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ParseStarterProject/tvOS/ParseStarterProject-Swift/ParseStarter/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 | APPL 17 | CFBundleShortVersionString 18 | 5.1.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 5.1.1 23 | LSRequiresIPhoneOS 24 | 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | arm64 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /ParseStarterProject/tvOS/ParseStarterProject-Swift/ParseStarter/ViewController.swift: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | import UIKit 11 | 12 | class ViewController: UIViewController { 13 | 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | // Do any additional setup after loading the view, typically from a nib. 17 | } 18 | 19 | override func didReceiveMemoryWarning() { 20 | super.didReceiveMemoryWarning() 21 | // Dispose of any resources that can be recreated. 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter Extension/InterfaceController.swift: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | import WatchKit 11 | import Foundation 12 | import ParseCore 13 | 14 | class InterfaceController: WKInterfaceController { 15 | 16 | override func awake(withContext context: Any?) { 17 | super.awake(withContext: context) 18 | 19 | // Configure interface objects here. 20 | } 21 | 22 | override func willActivate() { 23 | // This method is called when watch view controller is about to be visible to user 24 | super.willActivate() 25 | } 26 | 27 | override func didDeactivate() { 28 | // This method is called when watch view controller is no longer visible 29 | super.didDeactivate() 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter-Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter-Swift.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter/Base.lproj/Interface.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarter/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ParseStarter 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 5.1.1 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 5.1.1 25 | UISupportedInterfaceOrientations 26 | 27 | UIInterfaceOrientationPortrait 28 | UIInterfaceOrientationPortraitUpsideDown 29 | 30 | WKCompanionAppBundleIdentifier 31 | com.parse.starter 32 | WKWatchKitApp 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /ParseStarterProject/watchOS/ParseStarterProject-Swift/ParseStarterProject/ViewController.swift: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Parse, LLC. 3 | * All rights reserved. 4 | * 5 | * This source code is licensed under the BSD-style license found in the 6 | * LICENSE file in the root directory of this source tree. An additional grant 7 | * of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | import UIKit 11 | import ParseCore 12 | 13 | class ViewController: UIViewController { 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | // Do any additional setup after loading the view, typically from a nib. 18 | } 19 | 20 | override func didReceiveMemoryWarning() { 21 | super.didReceiveMemoryWarning() 22 | // Dispose of any resources that can be recreated. 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ParseStarterProject/watchOS/ParseStarterProject-Swift/Resources/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "ipad", 6 | "minimum-system-version" : "7.0", 7 | "extent" : "full-screen", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "landscape", 12 | "idiom" : "ipad", 13 | "minimum-system-version" : "7.0", 14 | "extent" : "full-screen", 15 | "scale" : "1x" 16 | }, 17 | { 18 | "orientation" : "landscape", 19 | "idiom" : "ipad", 20 | "minimum-system-version" : "7.0", 21 | "extent" : "full-screen", 22 | "scale" : "2x" 23 | }, 24 | { 25 | "orientation" : "portrait", 26 | "idiom" : "iphone", 27 | "minimum-system-version" : "7.0", 28 | "scale" : "2x" 29 | }, 30 | { 31 | "orientation" : "portrait", 32 | "idiom" : "iphone", 33 | "minimum-system-version" : "7.0", 34 | "subtype" : "retina4", 35 | "scale" : "2x" 36 | }, 37 | { 38 | "orientation" : "portrait", 39 | "idiom" : "ipad", 40 | "minimum-system-version" : "7.0", 41 | "extent" : "full-screen", 42 | "scale" : "1x" 43 | } 44 | ], 45 | "info" : { 46 | "version" : 1, 47 | "author" : "xcode" 48 | } 49 | } -------------------------------------------------------------------------------- /Scripts/jazzy.sh: -------------------------------------------------------------------------------- 1 | mkdir -p ./Parse/Bolts # Create a temporary bolts folder 2 | cp -R Carthage/Checkouts/Bolts-ObjC/Bolts/**/*.h ./Parse/Bolts # Copy bolts 3 | 4 | ver=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" Parse/Parse/Resources/Parse-iOS.Info.plist` 5 | set -eo pipefail && bundle exec jazzy \ 6 | --objc \ 7 | --clean \ 8 | --author "Parse Community" \ 9 | --author_url http://parseplatform.org \ 10 | --github_url https://github.com/parse-community/Parse-SDK-iOS-OSX \ 11 | --root-url http://parseplatform.org/Parse-SDK-iOS-OSX/api/ \ 12 | --module-version ${ver} \ 13 | --theme fullwidth \ 14 | --skip-undocumented \ 15 | --exclude=./Bolts/* \ 16 | --module Parse \ 17 | --umbrella-header Parse/Parse/Source/Parse.h \ 18 | --framework-root Parse \ 19 | --output docs/api 20 | 21 | rm -rf ./Parse/Bolts # cleanup temporary bolts 22 | -------------------------------------------------------------------------------- /Tests/Parse-SDK-iOS-OSXTests/Parse_SDK_iOS_OSXTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import Parse_SDK_iOS_OSX 3 | 4 | final class Parse_SDK_iOS_OSXTests: XCTestCase { 5 | func testExample() throws { 6 | // This is an example of a functional test case. 7 | // Use XCTAssert and related functions to verify your tests produce the correct 8 | // results. 9 | XCTAssertEqual(Parse_SDK_iOS_OSX().text, "Hello, World!") 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "parse-sdk-ios-osx", 3 | "version": "5.1.1", 4 | "private": true, 5 | "repository": { 6 | "type": "git", 7 | "url": "git+https://github.com/parse-community/Parse-SDK-iOS-OSX.git" 8 | }, 9 | "devDependencies": { 10 | "@semantic-release/changelog": "6.0.3", 11 | "@semantic-release/commit-analyzer": "13.0.1", 12 | "@semantic-release/exec": "7.1.0", 13 | "@semantic-release/git": "10.0.1", 14 | "@semantic-release/release-notes-generator": "14.0.3", 15 | "semantic-release": "24.2.5" 16 | } 17 | } 18 | --------------------------------------------------------------------------------