From 86c3e6bad7bef4b78df62828f6829c703c1557d1 Mon Sep 17 00:00:00 2001 From: Astrovic Date: Mon, 14 Nov 2022 11:11:54 +0100 Subject: [PATCH] - Removed the FBLPromises framework - Added sample demo app - Minor fixes --- .github/.gitignore | 35 ++ ios/{README => README.md} | 3 +- ios/admob.xcodeproj/project.pbxproj | 8 +- ios/documentation/index.md | 1 + ios/example/app.js | 4 +- ios/manifest | 2 +- .../FBLPromises.xcframework/Info.plist | 95 ------ .../FBLPromises.framework/FBLPromises | Bin 238840 -> 0 bytes .../Headers/FBLPromise+All.h | 63 ---- .../Headers/FBLPromise+Always.h | 54 --- .../Headers/FBLPromise+Any.h | 69 ---- .../Headers/FBLPromise+Async.h | 60 ---- .../Headers/FBLPromise+Await.h | 32 -- .../Headers/FBLPromise+Catch.h | 59 ---- .../Headers/FBLPromise+Delay.h | 59 ---- .../Headers/FBLPromise+Do.h | 55 --- .../Headers/FBLPromise+Race.h | 62 ---- .../Headers/FBLPromise+Recover.h | 60 ---- .../Headers/FBLPromise+Reduce.h | 71 ---- .../Headers/FBLPromise+Retry.h | 165 --------- .../Headers/FBLPromise+Testing.h | 57 ---- .../Headers/FBLPromise+Then.h | 63 ---- .../Headers/FBLPromise+Timeout.h | 57 ---- .../Headers/FBLPromise+Validate.h | 60 ---- .../Headers/FBLPromise+Wrap.h | 316 ------------------ .../Headers/FBLPromise.h | 93 ------ .../Headers/FBLPromiseError.h | 43 --- .../Headers/FBLPromises.h | 32 -- .../Headers/PromisesObjC-umbrella.h | 36 -- .../FBLPromises.framework/Info.plist | 20 -- .../Modules/module.modulemap | 5 - .../FBLPromises.framework/FBLPromises | Bin 452824 -> 0 bytes .../Headers/FBLPromise+All.h | 63 ---- .../Headers/FBLPromise+Always.h | 54 --- .../Headers/FBLPromise+Any.h | 69 ---- .../Headers/FBLPromise+Async.h | 60 ---- .../Headers/FBLPromise+Await.h | 32 -- .../Headers/FBLPromise+Catch.h | 59 ---- .../Headers/FBLPromise+Delay.h | 59 ---- .../Headers/FBLPromise+Do.h | 55 --- .../Headers/FBLPromise+Race.h | 62 ---- .../Headers/FBLPromise+Recover.h | 60 ---- .../Headers/FBLPromise+Reduce.h | 71 ---- .../Headers/FBLPromise+Retry.h | 165 --------- .../Headers/FBLPromise+Testing.h | 57 ---- .../Headers/FBLPromise+Then.h | 63 ---- .../Headers/FBLPromise+Timeout.h | 57 ---- .../Headers/FBLPromise+Validate.h | 60 ---- .../Headers/FBLPromise+Wrap.h | 316 ------------------ .../Headers/FBLPromise.h | 93 ------ .../Headers/FBLPromiseError.h | 43 --- .../Headers/FBLPromises.h | 32 -- .../Headers/PromisesObjC-umbrella.h | 36 -- .../FBLPromises.framework/Info.plist | 20 -- .../Modules/module.modulemap | 5 - .../FBLPromises.framework/FBLPromises | Bin 449360 -> 0 bytes .../Headers/FBLPromise+All.h | 63 ---- .../Headers/FBLPromise+Always.h | 54 --- .../Headers/FBLPromise+Any.h | 69 ---- .../Headers/FBLPromise+Async.h | 60 ---- .../Headers/FBLPromise+Await.h | 32 -- .../Headers/FBLPromise+Catch.h | 59 ---- .../Headers/FBLPromise+Delay.h | 59 ---- .../Headers/FBLPromise+Do.h | 55 --- .../Headers/FBLPromise+Race.h | 62 ---- .../Headers/FBLPromise+Recover.h | 60 ---- .../Headers/FBLPromise+Reduce.h | 71 ---- .../Headers/FBLPromise+Retry.h | 165 --------- .../Headers/FBLPromise+Testing.h | 57 ---- .../Headers/FBLPromise+Then.h | 63 ---- .../Headers/FBLPromise+Timeout.h | 57 ---- .../Headers/FBLPromise+Validate.h | 60 ---- .../Headers/FBLPromise+Wrap.h | 316 ------------------ .../Headers/FBLPromise.h | 93 ------ .../Headers/FBLPromiseError.h | 43 --- .../Headers/FBLPromises.h | 32 -- .../Headers/PromisesObjC-umbrella.h | 36 -- .../FBLPromises.framework/Info.plist | 20 -- .../Modules/module.modulemap | 5 - .../FBLPromises.framework/FBLPromises | Bin 455560 -> 0 bytes .../Headers/FBLPromise+All.h | 63 ---- .../Headers/FBLPromise+Always.h | 54 --- .../Headers/FBLPromise+Any.h | 69 ---- .../Headers/FBLPromise+Async.h | 60 ---- .../Headers/FBLPromise+Await.h | 32 -- .../Headers/FBLPromise+Catch.h | 59 ---- .../Headers/FBLPromise+Delay.h | 59 ---- .../Headers/FBLPromise+Do.h | 55 --- .../Headers/FBLPromise+Race.h | 62 ---- .../Headers/FBLPromise+Recover.h | 60 ---- .../Headers/FBLPromise+Reduce.h | 71 ---- .../Headers/FBLPromise+Retry.h | 165 --------- .../Headers/FBLPromise+Testing.h | 57 ---- .../Headers/FBLPromise+Then.h | 63 ---- .../Headers/FBLPromise+Timeout.h | 57 ---- .../Headers/FBLPromise+Validate.h | 60 ---- .../Headers/FBLPromise+Wrap.h | 316 ------------------ .../Headers/FBLPromise.h | 93 ------ .../Headers/FBLPromiseError.h | 43 --- .../Headers/FBLPromises.h | 32 -- .../Headers/PromisesObjC-umbrella.h | 36 -- .../FBLPromises.framework/Info.plist | 20 -- .../Modules/module.modulemap | 5 - .../FBLPromises.framework/FBLPromises | Bin 238840 -> 0 bytes .../Headers/FBLPromise+All.h | 63 ---- .../Headers/FBLPromise+Always.h | 54 --- .../Headers/FBLPromise+Any.h | 69 ---- .../Headers/FBLPromise+Async.h | 60 ---- .../Headers/FBLPromise+Await.h | 32 -- .../Headers/FBLPromise+Catch.h | 59 ---- .../Headers/FBLPromise+Delay.h | 59 ---- .../Headers/FBLPromise+Do.h | 55 --- .../Headers/FBLPromise+Race.h | 62 ---- .../Headers/FBLPromise+Recover.h | 60 ---- .../Headers/FBLPromise+Reduce.h | 71 ---- .../Headers/FBLPromise+Retry.h | 165 --------- .../Headers/FBLPromise+Testing.h | 57 ---- .../Headers/FBLPromise+Then.h | 63 ---- .../Headers/FBLPromise+Timeout.h | 57 ---- .../Headers/FBLPromise+Validate.h | 60 ---- .../Headers/FBLPromise+Wrap.h | 316 ------------------ .../Headers/FBLPromise.h | 93 ------ .../Headers/FBLPromiseError.h | 43 --- .../Headers/FBLPromises.h | 32 -- .../Headers/PromisesObjC-umbrella.h | 36 -- .../FBLPromises.framework/Info.plist | 20 -- .../Modules/module.modulemap | 5 - .../FBLPromises.framework/FBLPromises | Bin 449360 -> 0 bytes .../Headers/FBLPromise+All.h | 63 ---- .../Headers/FBLPromise+Always.h | 54 --- .../Headers/FBLPromise+Any.h | 69 ---- .../Headers/FBLPromise+Async.h | 60 ---- .../Headers/FBLPromise+Await.h | 32 -- .../Headers/FBLPromise+Catch.h | 59 ---- .../Headers/FBLPromise+Delay.h | 59 ---- .../Headers/FBLPromise+Do.h | 55 --- .../Headers/FBLPromise+Race.h | 62 ---- .../Headers/FBLPromise+Recover.h | 60 ---- .../Headers/FBLPromise+Reduce.h | 71 ---- .../Headers/FBLPromise+Retry.h | 165 --------- .../Headers/FBLPromise+Testing.h | 57 ---- .../Headers/FBLPromise+Then.h | 63 ---- .../Headers/FBLPromise+Timeout.h | 57 ---- .../Headers/FBLPromise+Validate.h | 60 ---- .../Headers/FBLPromise+Wrap.h | 316 ------------------ .../Headers/FBLPromise.h | 93 ------ .../Headers/FBLPromiseError.h | 43 --- .../Headers/FBLPromises.h | 32 -- .../Headers/PromisesObjC-umbrella.h | 36 -- .../FBLPromises.framework/Info.plist | 20 -- .../Modules/module.modulemap | 5 - 151 files changed, 45 insertions(+), 9649 deletions(-) create mode 100644 .github/.gitignore rename ios/{README => README.md} (69%) delete mode 100644 ios/platform/FBLPromises.xcframework/Info.plist delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/FBLPromises delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+All.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Always.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Any.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Async.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Await.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Catch.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Delay.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Do.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Race.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Recover.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Reduce.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Retry.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Testing.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Then.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Timeout.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Validate.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Wrap.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromiseError.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromises.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/PromisesObjC-umbrella.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Info.plist delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Modules/module.modulemap delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/FBLPromises delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+All.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Always.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Any.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Async.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Await.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Catch.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Delay.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Do.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Race.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Recover.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Reduce.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Retry.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Testing.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Then.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Timeout.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Validate.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Wrap.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromiseError.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromises.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/PromisesObjC-umbrella.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Info.plist delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Modules/module.modulemap delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/FBLPromises delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+All.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Always.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Any.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Async.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Await.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Catch.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Delay.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Do.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Race.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Recover.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Reduce.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Retry.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Testing.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Then.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Timeout.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Validate.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Wrap.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromiseError.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromises.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/PromisesObjC-umbrella.h delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Info.plist delete mode 100644 ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Modules/module.modulemap delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/FBLPromises delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+All.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Always.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Any.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Async.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Await.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Catch.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Delay.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Do.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Race.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Recover.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Reduce.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Retry.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Testing.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Then.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Timeout.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Validate.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Wrap.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromiseError.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromises.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/PromisesObjC-umbrella.h delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Info.plist delete mode 100644 ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Modules/module.modulemap delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/FBLPromises delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+All.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Always.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Any.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Async.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Await.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Catch.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Delay.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Do.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Race.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Recover.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Reduce.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Retry.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Testing.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Then.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Timeout.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Validate.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Wrap.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromiseError.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromises.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/PromisesObjC-umbrella.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Info.plist delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Modules/module.modulemap delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/FBLPromises delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+All.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Always.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Any.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Async.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Await.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Catch.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Delay.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Do.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Race.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Recover.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Reduce.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Retry.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Testing.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Then.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Timeout.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Validate.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Wrap.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromiseError.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromises.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/PromisesObjC-umbrella.h delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Info.plist delete mode 100644 ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Modules/module.modulemap diff --git a/.github/.gitignore b/.github/.gitignore new file mode 100644 index 00000000..c50a848a --- /dev/null +++ b/.github/.gitignore @@ -0,0 +1,35 @@ +tmp +bin +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +*.xcworkspace +!default.xcworkspace +xcuserdata +profile +*.moved-aside +DerivedData +.DS_Store +.project + +android/libs +android/build.properties +android/dist +android/java-sources.txt +android/.gradle + +ios/metadata.json +ios/ti.admob-iphone-*.zip +ios/dist/ +ios/titanium.xcconfig.bak +ios/admob.xcodeproj/project.xcworkspace/xcuserdata/* + +node_modules/ + +TESTS-*.xml diff --git a/ios/README b/ios/README.md similarity index 69% rename from ios/README rename to ios/README.md index a47308aa..495d2c00 100644 --- a/ios/README +++ b/ios/README.md @@ -13,4 +13,5 @@ Consult the [documentation](./documentation/) to use the module: ## Example -A complete example in [app.js](./example/app.js) \ No newline at end of file +A complete example in [app.js](./example/app.js) +Here a demo app ready to use: https://github.com/Astrovic/ti.admob-sample-app/ \ No newline at end of file diff --git a/ios/admob.xcodeproj/project.pbxproj b/ios/admob.xcodeproj/project.pbxproj index 08f48ede..275757f3 100644 --- a/ios/admob.xcodeproj/project.pbxproj +++ b/ios/admob.xcodeproj/project.pbxproj @@ -26,7 +26,7 @@ 5E6743A627F4B85800BEE594 /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E6743A527F4B85800BEE594 /* libsqlite3.0.tbd */; }; 5E6743A827F4B86A00BEE594 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E6743A727F4B86A00BEE594 /* libz.tbd */; }; 5E6743AE27F4BEA300BEE594 /* GoogleAppMeasurementIdentitySupport.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E6743AD27F4BEA300BEE594 /* GoogleAppMeasurementIdentitySupport.xcframework */; }; - 5EB1EE78291D6339009D08AC /* FBLPromises.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5EB1EE77291D6339009D08AC /* FBLPromises.xcframework */; }; + 5ED7B66026EBC395007F4D90 /* FBAudienceNetwork.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5ED7B65F26EBC395007F4D90 /* FBAudienceNetwork.xcframework */; }; 5EFC8F50263ABC430011A0C2 /* InMobiSDK.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5EFC8F4C263ABC430011A0C2 /* InMobiSDK.xcframework */; }; 5EFC8F51263ABC430011A0C2 /* InMobiAdapter.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5EFC8F4D263ABC430011A0C2 /* InMobiAdapter.xcframework */; }; @@ -55,7 +55,7 @@ 5E6743A527F4B85800BEE594 /* libsqlite3.0.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.0.tbd; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/lib/libsqlite3.0.tbd; sourceTree = DEVELOPER_DIR; }; 5E6743A727F4B86A00BEE594 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/lib/libz.tbd; sourceTree = DEVELOPER_DIR; }; 5E6743AD27F4BEA300BEE594 /* GoogleAppMeasurementIdentitySupport.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = GoogleAppMeasurementIdentitySupport.xcframework; path = platform/GoogleAppMeasurementIdentitySupport.xcframework; sourceTree = ""; }; - 5EB1EE77291D6339009D08AC /* FBLPromises.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FBLPromises.xcframework; path = platform/FBLPromises.xcframework; sourceTree = ""; }; + 5ED7B65F26EBC395007F4D90 /* FBAudienceNetwork.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FBAudienceNetwork.xcframework; path = platform/FBAudienceNetwork.xcframework; sourceTree = ""; }; 5EFC8F4C263ABC430011A0C2 /* InMobiSDK.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = InMobiSDK.xcframework; path = platform/InMobiSDK.xcframework; sourceTree = ""; }; 5EFC8F4D263ABC430011A0C2 /* InMobiAdapter.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = InMobiAdapter.xcframework; path = platform/InMobiAdapter.xcframework; sourceTree = ""; }; @@ -73,7 +73,7 @@ 5E6743A427F4B84500BEE594 /* WebKit.framework in Frameworks */, 5E343CDF291BFA3600F047EB /* MetaAdapter.xcframework in Frameworks */, 5ED7B66026EBC395007F4D90 /* FBAudienceNetwork.xcframework in Frameworks */, - 5EB1EE78291D6339009D08AC /* FBLPromises.xcframework in Frameworks */, + 5EFC8F50263ABC430011A0C2 /* InMobiSDK.xcframework in Frameworks */, 5EFC8F51263ABC430011A0C2 /* InMobiAdapter.xcframework in Frameworks */, 3ABFE38E26335E0000887180 /* nanopb.xcframework in Frameworks */, @@ -113,7 +113,7 @@ 0867D69AFE84028FC02AAC07 /* Frameworks */ = { isa = PBXGroup; children = ( - 5EB1EE77291D6339009D08AC /* FBLPromises.xcframework */, + 5E343CDE291BFA3600F047EB /* MetaAdapter.xcframework */, 5E6743A727F4B86A00BEE594 /* libz.tbd */, 5E6743A527F4B85800BEE594 /* libsqlite3.0.tbd */, diff --git a/ios/documentation/index.md b/ios/documentation/index.md index 7c5f008a..0a34bb2b 100644 --- a/ios/documentation/index.md +++ b/ios/documentation/index.md @@ -565,6 +565,7 @@ If you are also using [Titanium Firebase Core Module](https://github.com/hansema ## Usage See example in [app.js](/ios/example/app.js); +Here a demo app ready to use: https://github.com/Astrovic/ti.admob-sample-app/ ## Author diff --git a/ios/example/app.js b/ios/example/app.js index 6f78eaee..fb2c93d3 100644 --- a/ios/example/app.js +++ b/ios/example/app.js @@ -100,8 +100,8 @@ function requestTrackingAuthorization() { Admob.requestTrackingAuthorization({ callback: e => { getStatus(e); - if (Admob.TRACKING_AUTHORIZATION_STATUS_AUTHORIZED) { - Ti.info("Admob.TRACKING_AUTHORIZATION_STATUS_AUTHORIZED, enable personalized ads in ads mediation too") + if (e.status === Admob.TRACKING_AUTHORIZATION_STATUS_AUTHORIZED) { + Ti.API.info("Admob.TRACKING_AUTHORIZATION_STATUS_AUTHORIZED, enable personalized ads in ads mediation too") Admob.setInMobi_updateGDPRConsent(true); Admob.setAdvertiserTrackingEnabled(true); } diff --git a/ios/manifest b/ios/manifest index 2b3e8619..8d209ea9 100644 --- a/ios/manifest +++ b/ios/manifest @@ -2,7 +2,7 @@ # this is your module manifest and used by Titanium # during compilation, packaging, distribution, etc. # -version: 5.0.0 +version: 5.1.0 architectures: arm64 x86_64 mac: false description: AdMob module for ad delivery via AdMob diff --git a/ios/platform/FBLPromises.xcframework/Info.plist b/ios/platform/FBLPromises.xcframework/Info.plist deleted file mode 100644 index 7469f0a7..00000000 --- a/ios/platform/FBLPromises.xcframework/Info.plist +++ /dev/null @@ -1,95 +0,0 @@ - - - - - AvailableLibraries - - - LibraryIdentifier - ios-arm64 - LibraryPath - FBLPromises.framework - SupportedArchitectures - - arm64 - - SupportedPlatform - ios - - - LibraryIdentifier - ios-arm64_x86_64-simulator - LibraryPath - FBLPromises.framework - SupportedArchitectures - - arm64 - x86_64 - - SupportedPlatform - ios - SupportedPlatformVariant - simulator - - - LibraryIdentifier - tvos-arm64_x86_64-simulator - LibraryPath - FBLPromises.framework - SupportedArchitectures - - arm64 - x86_64 - - SupportedPlatform - tvos - SupportedPlatformVariant - simulator - - - LibraryIdentifier - tvos-arm64 - LibraryPath - FBLPromises.framework - SupportedArchitectures - - arm64 - - SupportedPlatform - tvos - - - LibraryIdentifier - ios-arm64_x86_64-maccatalyst - LibraryPath - FBLPromises.framework - SupportedArchitectures - - arm64 - x86_64 - - SupportedPlatform - ios - SupportedPlatformVariant - maccatalyst - - - LibraryIdentifier - macos-arm64_x86_64 - LibraryPath - FBLPromises.framework - SupportedArchitectures - - arm64 - x86_64 - - SupportedPlatform - macos - - - CFBundlePackageType - XFWK - XCFrameworkFormatVersion - 1.0 - - diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/FBLPromises b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/FBLPromises deleted file mode 100644 index 3ed3f50db8097e2dff983b01cacefaf4a2f712fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238840 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%0DjgQ2wT%iSNS_ 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 - -/** - Wait until all of the given promises are fulfilled. - If one of the given promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param promises Promises to wait for. - @return Promise of an array containing the values of input promises in the same order. - */ -+ (FBLPromise *)all:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Wait until all of the given promises are fulfilled. - If one of the given promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected FBLPromise correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return Promise of an array containing the values of input promises in the same order. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - all:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `all` operators. - Usage: FBLPromise.all(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_AllAdditions) - -+ (FBLPromise * (^)(NSArray *))all FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))allOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Always.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Always.h deleted file mode 100644 index 13000f5b..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Always.h +++ /dev/null @@ -1,54 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AlwaysAdditions) - -typedef void (^FBLPromiseAlwaysWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block that always executes, no matter if the receiver is rejected or fulfilled. - @return A new pending promise to be resolved with same resolution as the receiver. - */ -- (FBLPromise *)always:(FBLPromiseAlwaysWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to dispatch on. - @param work A block that always executes, no matter if the receiver is rejected or fulfilled. - @return A new pending promise to be resolved with same resolution as the receiver. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - always:(FBLPromiseAlwaysWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `always` operators. - Usage: promise.always(^{...}) - */ -@interface FBLPromise(DotSyntax_AlwaysAdditions) - -- (FBLPromise* (^)(FBLPromiseAlwaysWorkBlock))always FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAlwaysWorkBlock))alwaysOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Any.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Any.h deleted file mode 100644 index 82875bf7..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Any.h +++ /dev/null @@ -1,69 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AnyAdditions) - -/** - Waits until all of the given promises are either fulfilled or rejected. - If all promises are rejected, then the returned promise is rejected with same error - as the last one rejected. - If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of - values or `NSErrors`, matching the original order of fulfilled or rejected promises respectively. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param promises Promises to wait for. - @return Promise of array containing the values or `NSError`s of input promises in the same order. - */ -+ (FBLPromise *)any:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Waits until all of the given promises are either fulfilled or rejected. - If all promises are rejected, then the returned promise is rejected with same error - as the last one rejected. - If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of - values or `NSError`s, matching the original order of fulfilled or rejected promises respectively. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return Promise of array containing the values or `NSError`s of input promises in the same order. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - any:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `any` operators. - Usage: FBLPromise.any(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_AnyAdditions) - -+ (FBLPromise * (^)(NSArray *))any FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))anyOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Async.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Async.h deleted file mode 100644 index 0588a9ea..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Async.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AsyncAdditions) - -typedef void (^FBLPromiseFulfillBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseRejectBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseAsyncWorkBlock)(FBLPromiseFulfillBlock fulfill, - FBLPromiseRejectBlock reject) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously. - - @param work A block to perform any operations needed to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)async:(FBLPromiseAsyncWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously on the given queue. - - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - async:(FBLPromiseAsyncWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `async` operators. - Usage: FBLPromise.async(^(FBLPromiseFulfillBlock fulfill, FBLPromiseRejectBlock reject) { ... }) - */ -@interface FBLPromise(DotSyntax_AsyncAdditions) - -+ (FBLPromise* (^)(FBLPromiseAsyncWorkBlock))async FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAsyncWorkBlock))asyncOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Await.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Await.h deleted file mode 100644 index c97a1baf..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Await.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Waits for promise resolution. The current thread blocks until the promise is resolved. - - @param promise Promise to wait for. - @param error Error the promise was rejected with, or `nil` if the promise was fulfilled. - @return Value the promise was fulfilled with. If the promise was rejected, the return value - is always `nil`, but the error out arg is not. - */ -FOUNDATION_EXTERN id __nullable FBLPromiseAwait(FBLPromise *promise, - NSError **error) NS_REFINED_FOR_SWIFT; - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Catch.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Catch.h deleted file mode 100644 index a9ff170f..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Catch.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(CatchAdditions) - -typedef void (^FBLPromiseCatchWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with same resolution as the receiver. - If receiver is rejected, then `reject` block is executed asynchronously. - - @param reject A block to handle the error that receiver was rejected with. - @return A new pending promise. - */ -- (FBLPromise *)catch:(FBLPromiseCatchWorkBlock)reject NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with same resolution as the receiver. - If receiver is rejected, then `reject` block is executed asynchronously on the given queue. - - @param queue A queue to invoke the `reject` block on. - @param reject A block to handle the error that receiver was rejected with. - @return A new pending promise. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - catch:(FBLPromiseCatchWorkBlock)reject NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `catch` operators. - Usage: promise.catch(^(NSError *error) { ... }) - */ -@interface FBLPromise(DotSyntax_CatchAdditions) - -- (FBLPromise* (^)(FBLPromiseCatchWorkBlock))catch FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseCatchWorkBlock))catchOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Delay.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Delay.h deleted file mode 100644 index 557df485..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Delay.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(DelayAdditions) - -/** - Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or - rejects with the same error immediately. - - @param interval Time to wait in seconds. - @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects - with the same error immediately. - */ -- (FBLPromise *)delay:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or - rejects with the same error immediately. - - @param queue A queue to dispatch on. - @param interval Time to wait in seconds. - @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects - with the same error immediately. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - delay:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `delay` operators. - Usage: promise.delay(...) - */ -@interface FBLPromise(DotSyntax_DelayAdditions) - -- (FBLPromise * (^)(NSTimeInterval))delay FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, NSTimeInterval))delayOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Do.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Do.h deleted file mode 100644 index 6838e0ad..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Do.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(DoAdditions) - -typedef id __nullable (^FBLPromiseDoWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously. - - @param work A block that returns a value or an error used to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)do:(FBLPromiseDoWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously on the given queue. - - @param queue A queue to invoke the `work` block on. - @param work A block that returns a value or an error used to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue do:(FBLPromiseDoWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `do` operators. - Usage: FBLPromise.doOn(queue, ^(NSError *error) { ... }) - */ -@interface FBLPromise(DotSyntax_DoAdditions) - -+ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseDoWorkBlock))doOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Race.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Race.h deleted file mode 100644 index 2f67258d..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Race.h +++ /dev/null @@ -1,62 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(RaceAdditions) - -/** - Wait until any of the given promises are fulfilled. - If one of the promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - - @param promises Promises to wait for. - @return A new pending promise to be resolved with the same resolution as the first promise, among - the given ones, which was resolved. - */ -+ (instancetype)race:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Wait until any of the given promises are fulfilled. - If one of the promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return A new pending promise to be resolved with the same resolution as the first promise, among - the given ones, which was resolved. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue race:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `race` operators. - Usage: FBLPromise.race(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_RaceAdditions) - -+ (FBLPromise * (^)(NSArray *))race FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))raceOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Recover.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Recover.h deleted file mode 100644 index bb7df7ec..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Recover.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(RecoverAdditions) - -typedef id __nullable (^FBLPromiseRecoverWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); - -/** - Provides a new promise to recover in case the receiver gets rejected. - - @param recovery A block to handle the error that the receiver was rejected with. - @return A new pending promise to use instead of the rejected one that gets resolved with resolution - returned from `recovery` block. - */ -- (FBLPromise *)recover:(FBLPromiseRecoverWorkBlock)recovery NS_SWIFT_UNAVAILABLE(""); - -/** - Provides a new promise to recover in case the receiver gets rejected. - - @param queue A queue to dispatch on. - @param recovery A block to handle the error that the receiver was rejected with. - @return A new pending promise to use instead of the rejected one that gets resolved with resolution - returned from `recovery` block. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - recover:(FBLPromiseRecoverWorkBlock)recovery NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `recover` operators. - Usage: promise.recover(^id(NSError *error) {...}) - */ -@interface FBLPromise(DotSyntax_RecoverAdditions) - -- (FBLPromise * (^)(FBLPromiseRecoverWorkBlock))recover FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRecoverWorkBlock))recoverOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Reduce.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Reduce.h deleted file mode 100644 index 5bb1eeee..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Reduce.h +++ /dev/null @@ -1,71 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ReduceAdditions) - -typedef id __nullable (^FBLPromiseReducerBlock)(Value __nullable partial, id next) - NS_SWIFT_UNAVAILABLE(""); - -/** - Sequentially reduces a collection of values to a single promise using a given combining block - and the value `self` resolves with as initial value. - - @param items An array of values to process in order. - @param reducer A block to combine an accumulating value and an element of the sequence into - the new accumulating value or a promise resolved with it, to be used in the next - call of the `reducer` or returned to the caller. - @return A new pending promise returned from the last `reducer` invocation. - Or `self` if `items` is empty. - */ -- (FBLPromise *)reduce:(NSArray *)items - combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE(""); - -/** - Sequentially reduces a collection of values to a single promise using a given combining block - and the value `self` resolves with as initial value. - - @param queue A queue to dispatch on. - @param items An array of values to process in order. - @param reducer A block to combine an accumulating value and an element of the sequence into - the new accumulating value or a promise resolved with it, to be used in the next - call of the `reducer` or returned to the caller. - @return A new pending promise returned from the last `reducer` invocation. - Or `self` if `items` is empty. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - reduce:(NSArray *)items - combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE(""); - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `reduce` operators. - Usage: promise.reduce(values, ^id(id partial, id next) { ... }) - */ -@interface FBLPromise(DotSyntax_ReduceAdditions) - -- (FBLPromise * (^)(NSArray *, FBLPromiseReducerBlock))reduce FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, NSArray *, FBLPromiseReducerBlock))reduceOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Retry.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Retry.h deleted file mode 100644 index 98ef558c..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Retry.h +++ /dev/null @@ -1,165 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** The default number of retry attempts is 1. */ -FOUNDATION_EXTERN NSInteger const FBLPromiseRetryDefaultAttemptsCount NS_REFINED_FOR_SWIFT; - -/** The default delay interval before making a retry attempt is 1.0 second. */ -FOUNDATION_EXTERN NSTimeInterval const FBLPromiseRetryDefaultDelayInterval NS_REFINED_FOR_SWIFT; - -@interface FBLPromise(RetryAdditions) - -typedef id __nullable (^FBLPromiseRetryWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); -typedef BOOL (^FBLPromiseRetryPredicateBlock)(NSInteger, NSError *) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on rejection where the - `work` block is retried after a delay of `FBLPromiseRetryDefaultDelayInterval` second(s). - - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on - rejection where the `work` block is retried on the given `queue` after a delay of - `FBLPromiseRetryDefaultDelayInterval` second(s). - - @param queue A queue to invoke the `work` block on. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. - - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)attempts:(NSInteger)count - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. - - @param queue A queue to invoke the `work` block on. - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - attempts:(NSInteger)count - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. On rejection, the `work` block is retried after the given delay `interval` and will - continue to retry until the number of specified attempts have been exhausted or will bail early if - the given condition is not met. - - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param interval Time to wait before the next retry attempt. - @param predicate Condition to check before the next retry attempt. The predicate block provides the - the number of remaining retry attempts and the error that the promise was rejected - with. - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted or if - the given condition is not met. - */ -+ (FBLPromise *)attempts:(NSInteger)count - delay:(NSTimeInterval)interval - condition:(nullable FBLPromiseRetryPredicateBlock)predicate - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. On rejection, the `work` block is retried after the given - delay `interval` and will continue to retry until the number of specified attempts have been - exhausted or will bail early if the given condition is not met. - - @param queue A queue to invoke the `work` block on. - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param interval Time to wait before the next retry attempt. - @param predicate Condition to check before the next retry attempt. The predicate block provides the - the number of remaining retry attempts and the error that the promise was rejected - with. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted or if - the given condition is not met. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - attempts:(NSInteger)count - delay:(NSTimeInterval)interval - condition:(nullable FBLPromiseRetryPredicateBlock)predicate - retry:(FBLPromiseRetryWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise+Retry` operators. - Usage: FBLPromise.retry(^id { ... }) - */ -@interface FBLPromise(DotSyntax_RetryAdditions) - -+ (FBLPromise * (^)(FBLPromiseRetryWorkBlock))retry FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRetryWorkBlock))retryOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(NSInteger, NSTimeInterval, FBLPromiseRetryPredicateBlock __nullable, - FBLPromiseRetryWorkBlock))retryAgain FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSInteger, NSTimeInterval, - FBLPromiseRetryPredicateBlock __nullable, - FBLPromiseRetryWorkBlock))retryAgainOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Testing.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Testing.h deleted file mode 100644 index 8478ae22..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Testing.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Waits for all scheduled promises blocks. - - @param timeout Maximum time to wait. - @return YES if all promises blocks have completed before the timeout and NO otherwise. - */ -FOUNDATION_EXTERN BOOL FBLWaitForPromisesWithTimeout(NSTimeInterval timeout) NS_REFINED_FOR_SWIFT; - -@interface FBLPromise(TestingAdditions) - -/** - Dispatch group for promises that is typically used to wait for all scheduled blocks. - */ -@property(class, nonatomic, readonly) dispatch_group_t dispatchGroup NS_REFINED_FOR_SWIFT; - -/** - Properties to get the current state of the promise. - */ -@property(nonatomic, readonly) BOOL isPending NS_REFINED_FOR_SWIFT; -@property(nonatomic, readonly) BOOL isFulfilled NS_REFINED_FOR_SWIFT; -@property(nonatomic, readonly) BOOL isRejected NS_REFINED_FOR_SWIFT; - -/** - Value the promise was fulfilled with. - Can be nil if the promise is still pending, was resolved with nil or after it has been rejected. - */ -@property(nonatomic, readonly, nullable) Value value NS_REFINED_FOR_SWIFT; - -/** - Error the promise was rejected with. - Can be nil if the promise is still pending or after it has been fulfilled. - */ -@property(nonatomic, readonly, nullable) NSError *error NS_REFINED_FOR_SWIFT; - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Then.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Then.h deleted file mode 100644 index 32027e69..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Then.h +++ /dev/null @@ -1,63 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ThenAdditions) - -typedef id __nullable (^FBLPromiseThenWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with resolution returned from `work` - block: either value, error or another promise. The `work` block is executed asynchronously only - when the receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with - the same error. - - @param work A block to handle the value that receiver was fulfilled with. - @return A new pending promise to be resolved with resolution returned from the `work` block. - */ -- (FBLPromise *)then:(FBLPromiseThenWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with resolution returned from `work` - block: either value, error or another promise. The `work` block is executed asynchronously when the - receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with the same - error. - - @param queue A queue to invoke the `work` block on. - @param work A block to handle the value that receiver was fulfilled with. - @return A new pending promise to be resolved with resolution returned from the `work` block. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - then:(FBLPromiseThenWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `then` operators. - Usage: promise.then(^id(id value) { ... }) - */ -@interface FBLPromise(DotSyntax_ThenAdditions) - -- (FBLPromise* (^)(FBLPromiseThenWorkBlock))then FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseThenWorkBlock))thenOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Timeout.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Timeout.h deleted file mode 100644 index 184ba166..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Timeout.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(TimeoutAdditions) - -/** - Waits for a promise with the specified `timeout`. - - @param interval Time to wait in seconds. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)timeout:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE(""); - -/** - Waits for a promise with the specified `timeout`. - - @param queue A queue to dispatch on. - @param interval Time to wait in seconds. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - timeout:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `timeout` operators. - Usage: promise.timeout(...) - */ -@interface FBLPromise(DotSyntax_TimeoutAdditions) - -- (FBLPromise* (^)(NSTimeInterval))timeout FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, NSTimeInterval))timeoutOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Validate.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Validate.h deleted file mode 100644 index 9dfa2f16..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Validate.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ValidateAdditions) - -typedef BOOL (^FBLPromiseValidateWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); - -/** - Validates a fulfilled value or rejects the value if it can not be validated. - - @param predicate An expression to validate. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)validate:(FBLPromiseValidateWorkBlock)predicate NS_SWIFT_UNAVAILABLE(""); - -/** - Validates a fulfilled value or rejects the value if it can not be validated. - - @param queue A queue to dispatch on. - @param predicate An expression to validate. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - validate:(FBLPromiseValidateWorkBlock)predicate NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `validate` operators. - Usage: promise.validate(^BOOL(id value) { ... }) - */ -@interface FBLPromise(DotSyntax_ValidateAdditions) - -- (FBLPromise * (^)(FBLPromiseValidateWorkBlock))validate FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseValidateWorkBlock))validateOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Wrap.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Wrap.h deleted file mode 100644 index 664e1bbf..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise+Wrap.h +++ /dev/null @@ -1,316 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Different types of completion handlers available to be wrapped with promise. - */ -typedef void (^FBLPromiseCompletion)(void) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseObjectCompletion)(id __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseErrorCompletion)(NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseObjectOrErrorCompletion)(id __nullable, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseErrorOrObjectCompletion)(NSError* __nullable, id __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromise2ObjectsOrErrorCompletion)(id __nullable, id __nullable, - NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseBoolCompletion)(BOOL) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseBoolOrErrorCompletion)(BOOL, NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseIntegerCompletion)(NSInteger) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseIntegerOrErrorCompletion)(NSInteger, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseDoubleCompletion)(double) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseDoubleOrErrorCompletion)(double, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); - -/** - Provides an easy way to convert methods that use common callback patterns into promises. - */ -@interface FBLPromise(WrapAdditions) - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with `nil` when completion handler is invoked. - */ -+ (instancetype)wrapCompletion:(void (^)(FBLPromiseCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with `nil` when completion handler is invoked. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapCompletion:(void (^)(FBLPromiseCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler. - */ -+ (instancetype)wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error provided by completion handler. - If error is `nil`, fulfills with `nil`, otherwise rejects with the error. - */ -+ (instancetype)wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error provided by completion handler. - If error is `nil`, fulfills with `nil`, otherwise rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler if error is `nil`. - Otherwise, rejects with the error. - */ -+ (instancetype)wrapObjectOrErrorCompletion: - (void (^)(FBLPromiseObjectOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler if error is `nil`. - Otherwise, rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapObjectOrErrorCompletion:(void (^)(FBLPromiseObjectOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error or object provided by completion handler. If error - is not `nil`, rejects with the error. - */ -+ (instancetype)wrapErrorOrObjectCompletion: - (void (^)(FBLPromiseErrorOrObjectCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error or object provided by completion handler. If error - is not `nil`, rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapErrorOrObjectCompletion:(void (^)(FBLPromiseErrorOrObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an array of objects provided by completion handler in order - if error is `nil`. Otherwise, rejects with the error. - */ -+ (FBLPromise*)wrap2ObjectsOrErrorCompletion: - (void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an array of objects provided by completion handler in order - if error is `nil`. Otherwise, rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrap2ObjectsOrErrorCompletion:(void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO. - */ -+ (FBLPromise*)wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapBoolOrErrorCompletion: - (void (^)(FBLPromiseBoolOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapBoolOrErrorCompletion:(void (^)(FBLPromiseBoolOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer. - */ -+ (FBLPromise*)wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapIntegerOrErrorCompletion: - (void (^)(FBLPromiseIntegerOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapIntegerOrErrorCompletion:(void (^)(FBLPromiseIntegerOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double. - */ -+ (FBLPromise*)wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapDoubleOrErrorCompletion: - (void (^)(FBLPromiseDoubleOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapDoubleOrErrorCompletion:(void (^)(FBLPromiseDoubleOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `wrap` operators. - Usage: FBLPromise.wrapCompletion(^(FBLPromiseCompletion handler) {...}) - */ -@interface FBLPromise(DotSyntax_WrapAdditions) - -+ (FBLPromise* (^)(void (^)(FBLPromiseCompletion)))wrapCompletion FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseCompletion)))wrapCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletion FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromise2ObjectsOrErrorCompletion))) - wrap2ObjectsOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromise2ObjectsOrErrorCompletion))) - wrap2ObjectsOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseIntegerOrErrorCompletion))) - wrapIntegerOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseIntegerOrErrorCompletion))) - wrapIntegerOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseDoubleOrErrorCompletion))) - wrapDoubleOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseDoubleOrErrorCompletion))) - wrapDoubleOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise.h deleted file mode 100644 index b1380dc7..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromise.h +++ /dev/null @@ -1,93 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromiseError.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Promises synchronization construct in Objective-C. - */ -@interface FBLPromise<__covariant Value> : NSObject - -/** - Default dispatch queue used for `FBLPromise`, which is `main` if a queue is not specified. - */ -@property(class) dispatch_queue_t defaultDispatchQueue NS_REFINED_FOR_SWIFT; - -/** - Creates a pending promise. - */ -+ (instancetype)pendingPromise NS_REFINED_FOR_SWIFT; - -/** - Creates a resolved promise. - - @param resolution An object to resolve the promise with: either a value or an error. - @return A new resolved promise. - */ -+ (instancetype)resolvedWith:(nullable id)resolution NS_REFINED_FOR_SWIFT; - -/** - Synchronously fulfills the promise with a value. - - @param value An arbitrary value to fulfill the promise with, including `nil`. - */ -- (void)fulfill:(nullable Value)value NS_REFINED_FOR_SWIFT; - -/** - Synchronously rejects the promise with an error. - - @param error An error to reject the promise with. - */ -- (void)reject:(NSError *)error NS_REFINED_FOR_SWIFT; - -+ (instancetype)new NS_UNAVAILABLE; -- (instancetype)init NS_UNAVAILABLE; -@end - -@interface FBLPromise() - -/** - Adds an object to the set of pending objects to keep strongly while the promise is pending. - Used by the Swift wrappers to keep them alive until the underlying ObjC promise is resolved. - - @param object An object to add. - */ -- (void)addPendingObject:(id)object NS_REFINED_FOR_SWIFT; - -@end - -#ifdef FBL_PROMISES_DOT_SYNTAX_IS_DEPRECATED -#define FBL_PROMISES_DOT_SYNTAX __attribute__((deprecated)) -#else -#define FBL_PROMISES_DOT_SYNTAX -#endif - -@interface FBLPromise(DotSyntaxAdditions) - -/** - Convenience dot-syntax wrappers for FBLPromise. - Usage: FBLPromise.pending() - FBLPromise.resolved(value) - - */ -+ (instancetype (^)(void))pending FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (instancetype (^)(id __nullable))resolved FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromiseError.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromiseError.h deleted file mode 100644 index d37af536..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromiseError.h +++ /dev/null @@ -1,43 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -NS_ASSUME_NONNULL_BEGIN - -FOUNDATION_EXTERN NSErrorDomain const FBLPromiseErrorDomain NS_REFINED_FOR_SWIFT; - -/** - Possible error codes in `FBLPromiseErrorDomain`. - */ -typedef NS_ENUM(NSInteger, FBLPromiseErrorCode) { - /** Promise failed to resolve in time. */ - FBLPromiseErrorCodeTimedOut = 1, - /** Validation predicate returned false. */ - FBLPromiseErrorCodeValidationFailure = 2, -} NS_REFINED_FOR_SWIFT; - -NS_INLINE BOOL FBLPromiseErrorIsTimedOut(NSError *error) NS_SWIFT_UNAVAILABLE("") { - return error.domain == FBLPromiseErrorDomain && - error.code == FBLPromiseErrorCodeTimedOut; -} - -NS_INLINE BOOL FBLPromiseErrorIsValidationFailure(NSError *error) NS_SWIFT_UNAVAILABLE("") { - return error.domain == FBLPromiseErrorDomain && - error.code == FBLPromiseErrorCodeValidationFailure; -} - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromises.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromises.h deleted file mode 100644 index 2d90badb..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/FBLPromises.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise+All.h" -#import "FBLPromise+Always.h" -#import "FBLPromise+Any.h" -#import "FBLPromise+Async.h" -#import "FBLPromise+Await.h" -#import "FBLPromise+Catch.h" -#import "FBLPromise+Delay.h" -#import "FBLPromise+Do.h" -#import "FBLPromise+Race.h" -#import "FBLPromise+Recover.h" -#import "FBLPromise+Reduce.h" -#import "FBLPromise+Retry.h" -#import "FBLPromise+Then.h" -#import "FBLPromise+Timeout.h" -#import "FBLPromise+Validate.h" -#import "FBLPromise+Wrap.h" diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/PromisesObjC-umbrella.h b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/PromisesObjC-umbrella.h deleted file mode 100644 index 5b014a8b..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Headers/PromisesObjC-umbrella.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "FBLPromise+All.h" -#import "FBLPromise+Always.h" -#import "FBLPromise+Any.h" -#import "FBLPromise+Async.h" -#import "FBLPromise+Await.h" -#import "FBLPromise+Catch.h" -#import "FBLPromise+Delay.h" -#import "FBLPromise+Do.h" -#import "FBLPromise+Race.h" -#import "FBLPromise+Recover.h" -#import "FBLPromise+Reduce.h" -#import "FBLPromise+Retry.h" -#import "FBLPromise+Testing.h" -#import "FBLPromise+Then.h" -#import "FBLPromise+Timeout.h" -#import "FBLPromise+Validate.h" -#import "FBLPromise+Wrap.h" -#import "FBLPromise.h" -#import "FBLPromiseError.h" -#import "FBLPromises.h" - -FOUNDATION_EXPORT double FBLPromisesVersionNumber; -FOUNDATION_EXPORT const unsigned char FBLPromisesVersionString[]; - diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Info.plist b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Info.plist deleted file mode 100644 index 6db2f5f5..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleExecutable - FBLPromises - CFBundleIdentifier - com.firebase.Firebase-FBLPromises - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - FBLPromises - CFBundlePackageType - FMWK - CFBundleVersion - 2.1.1 - DTSDKName - iphonesimulator11.2 - - diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Modules/module.modulemap b/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Modules/module.modulemap deleted file mode 100644 index bd7b48e1..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64/FBLPromises.framework/Modules/module.modulemap +++ /dev/null @@ -1,5 +0,0 @@ -framework module PromisesObjC { -umbrella header "PromisesObjC-umbrella.h" -export * -module * { export * } -} diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/FBLPromises b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/FBLPromises deleted file mode 100644 index 0fbffedcdb02ce2490c820f140c41529ad4be547..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452824 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

1`VF4D6ORB{4~KxNJ%RHPz8g3XxC_Yk-!AlR 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 diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+All.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+All.h deleted file mode 100644 index 9c0090e2..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+All.h +++ /dev/null @@ -1,63 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AllAdditions) - -/** - Wait until all of the given promises are fulfilled. - If one of the given promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param promises Promises to wait for. - @return Promise of an array containing the values of input promises in the same order. - */ -+ (FBLPromise *)all:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Wait until all of the given promises are fulfilled. - If one of the given promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected FBLPromise correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return Promise of an array containing the values of input promises in the same order. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - all:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `all` operators. - Usage: FBLPromise.all(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_AllAdditions) - -+ (FBLPromise * (^)(NSArray *))all FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))allOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Always.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Always.h deleted file mode 100644 index 13000f5b..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Always.h +++ /dev/null @@ -1,54 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AlwaysAdditions) - -typedef void (^FBLPromiseAlwaysWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block that always executes, no matter if the receiver is rejected or fulfilled. - @return A new pending promise to be resolved with same resolution as the receiver. - */ -- (FBLPromise *)always:(FBLPromiseAlwaysWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to dispatch on. - @param work A block that always executes, no matter if the receiver is rejected or fulfilled. - @return A new pending promise to be resolved with same resolution as the receiver. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - always:(FBLPromiseAlwaysWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `always` operators. - Usage: promise.always(^{...}) - */ -@interface FBLPromise(DotSyntax_AlwaysAdditions) - -- (FBLPromise* (^)(FBLPromiseAlwaysWorkBlock))always FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAlwaysWorkBlock))alwaysOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Any.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Any.h deleted file mode 100644 index 82875bf7..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Any.h +++ /dev/null @@ -1,69 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AnyAdditions) - -/** - Waits until all of the given promises are either fulfilled or rejected. - If all promises are rejected, then the returned promise is rejected with same error - as the last one rejected. - If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of - values or `NSErrors`, matching the original order of fulfilled or rejected promises respectively. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param promises Promises to wait for. - @return Promise of array containing the values or `NSError`s of input promises in the same order. - */ -+ (FBLPromise *)any:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Waits until all of the given promises are either fulfilled or rejected. - If all promises are rejected, then the returned promise is rejected with same error - as the last one rejected. - If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of - values or `NSError`s, matching the original order of fulfilled or rejected promises respectively. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return Promise of array containing the values or `NSError`s of input promises in the same order. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - any:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `any` operators. - Usage: FBLPromise.any(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_AnyAdditions) - -+ (FBLPromise * (^)(NSArray *))any FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))anyOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Async.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Async.h deleted file mode 100644 index 0588a9ea..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Async.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AsyncAdditions) - -typedef void (^FBLPromiseFulfillBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseRejectBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseAsyncWorkBlock)(FBLPromiseFulfillBlock fulfill, - FBLPromiseRejectBlock reject) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously. - - @param work A block to perform any operations needed to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)async:(FBLPromiseAsyncWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously on the given queue. - - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - async:(FBLPromiseAsyncWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `async` operators. - Usage: FBLPromise.async(^(FBLPromiseFulfillBlock fulfill, FBLPromiseRejectBlock reject) { ... }) - */ -@interface FBLPromise(DotSyntax_AsyncAdditions) - -+ (FBLPromise* (^)(FBLPromiseAsyncWorkBlock))async FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAsyncWorkBlock))asyncOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Await.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Await.h deleted file mode 100644 index c97a1baf..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Await.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Waits for promise resolution. The current thread blocks until the promise is resolved. - - @param promise Promise to wait for. - @param error Error the promise was rejected with, or `nil` if the promise was fulfilled. - @return Value the promise was fulfilled with. If the promise was rejected, the return value - is always `nil`, but the error out arg is not. - */ -FOUNDATION_EXTERN id __nullable FBLPromiseAwait(FBLPromise *promise, - NSError **error) NS_REFINED_FOR_SWIFT; - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Catch.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Catch.h deleted file mode 100644 index a9ff170f..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Catch.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(CatchAdditions) - -typedef void (^FBLPromiseCatchWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with same resolution as the receiver. - If receiver is rejected, then `reject` block is executed asynchronously. - - @param reject A block to handle the error that receiver was rejected with. - @return A new pending promise. - */ -- (FBLPromise *)catch:(FBLPromiseCatchWorkBlock)reject NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with same resolution as the receiver. - If receiver is rejected, then `reject` block is executed asynchronously on the given queue. - - @param queue A queue to invoke the `reject` block on. - @param reject A block to handle the error that receiver was rejected with. - @return A new pending promise. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - catch:(FBLPromiseCatchWorkBlock)reject NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `catch` operators. - Usage: promise.catch(^(NSError *error) { ... }) - */ -@interface FBLPromise(DotSyntax_CatchAdditions) - -- (FBLPromise* (^)(FBLPromiseCatchWorkBlock))catch FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseCatchWorkBlock))catchOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Delay.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Delay.h deleted file mode 100644 index 557df485..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Delay.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(DelayAdditions) - -/** - Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or - rejects with the same error immediately. - - @param interval Time to wait in seconds. - @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects - with the same error immediately. - */ -- (FBLPromise *)delay:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or - rejects with the same error immediately. - - @param queue A queue to dispatch on. - @param interval Time to wait in seconds. - @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects - with the same error immediately. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - delay:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `delay` operators. - Usage: promise.delay(...) - */ -@interface FBLPromise(DotSyntax_DelayAdditions) - -- (FBLPromise * (^)(NSTimeInterval))delay FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, NSTimeInterval))delayOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Do.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Do.h deleted file mode 100644 index 6838e0ad..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Do.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(DoAdditions) - -typedef id __nullable (^FBLPromiseDoWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously. - - @param work A block that returns a value or an error used to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)do:(FBLPromiseDoWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously on the given queue. - - @param queue A queue to invoke the `work` block on. - @param work A block that returns a value or an error used to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue do:(FBLPromiseDoWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `do` operators. - Usage: FBLPromise.doOn(queue, ^(NSError *error) { ... }) - */ -@interface FBLPromise(DotSyntax_DoAdditions) - -+ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseDoWorkBlock))doOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Race.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Race.h deleted file mode 100644 index 2f67258d..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Race.h +++ /dev/null @@ -1,62 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(RaceAdditions) - -/** - Wait until any of the given promises are fulfilled. - If one of the promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - - @param promises Promises to wait for. - @return A new pending promise to be resolved with the same resolution as the first promise, among - the given ones, which was resolved. - */ -+ (instancetype)race:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Wait until any of the given promises are fulfilled. - If one of the promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return A new pending promise to be resolved with the same resolution as the first promise, among - the given ones, which was resolved. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue race:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `race` operators. - Usage: FBLPromise.race(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_RaceAdditions) - -+ (FBLPromise * (^)(NSArray *))race FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))raceOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Recover.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Recover.h deleted file mode 100644 index bb7df7ec..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Recover.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(RecoverAdditions) - -typedef id __nullable (^FBLPromiseRecoverWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); - -/** - Provides a new promise to recover in case the receiver gets rejected. - - @param recovery A block to handle the error that the receiver was rejected with. - @return A new pending promise to use instead of the rejected one that gets resolved with resolution - returned from `recovery` block. - */ -- (FBLPromise *)recover:(FBLPromiseRecoverWorkBlock)recovery NS_SWIFT_UNAVAILABLE(""); - -/** - Provides a new promise to recover in case the receiver gets rejected. - - @param queue A queue to dispatch on. - @param recovery A block to handle the error that the receiver was rejected with. - @return A new pending promise to use instead of the rejected one that gets resolved with resolution - returned from `recovery` block. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - recover:(FBLPromiseRecoverWorkBlock)recovery NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `recover` operators. - Usage: promise.recover(^id(NSError *error) {...}) - */ -@interface FBLPromise(DotSyntax_RecoverAdditions) - -- (FBLPromise * (^)(FBLPromiseRecoverWorkBlock))recover FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRecoverWorkBlock))recoverOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Reduce.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Reduce.h deleted file mode 100644 index 5bb1eeee..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Reduce.h +++ /dev/null @@ -1,71 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ReduceAdditions) - -typedef id __nullable (^FBLPromiseReducerBlock)(Value __nullable partial, id next) - NS_SWIFT_UNAVAILABLE(""); - -/** - Sequentially reduces a collection of values to a single promise using a given combining block - and the value `self` resolves with as initial value. - - @param items An array of values to process in order. - @param reducer A block to combine an accumulating value and an element of the sequence into - the new accumulating value or a promise resolved with it, to be used in the next - call of the `reducer` or returned to the caller. - @return A new pending promise returned from the last `reducer` invocation. - Or `self` if `items` is empty. - */ -- (FBLPromise *)reduce:(NSArray *)items - combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE(""); - -/** - Sequentially reduces a collection of values to a single promise using a given combining block - and the value `self` resolves with as initial value. - - @param queue A queue to dispatch on. - @param items An array of values to process in order. - @param reducer A block to combine an accumulating value and an element of the sequence into - the new accumulating value or a promise resolved with it, to be used in the next - call of the `reducer` or returned to the caller. - @return A new pending promise returned from the last `reducer` invocation. - Or `self` if `items` is empty. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - reduce:(NSArray *)items - combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE(""); - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `reduce` operators. - Usage: promise.reduce(values, ^id(id partial, id next) { ... }) - */ -@interface FBLPromise(DotSyntax_ReduceAdditions) - -- (FBLPromise * (^)(NSArray *, FBLPromiseReducerBlock))reduce FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, NSArray *, FBLPromiseReducerBlock))reduceOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Retry.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Retry.h deleted file mode 100644 index 98ef558c..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Retry.h +++ /dev/null @@ -1,165 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** The default number of retry attempts is 1. */ -FOUNDATION_EXTERN NSInteger const FBLPromiseRetryDefaultAttemptsCount NS_REFINED_FOR_SWIFT; - -/** The default delay interval before making a retry attempt is 1.0 second. */ -FOUNDATION_EXTERN NSTimeInterval const FBLPromiseRetryDefaultDelayInterval NS_REFINED_FOR_SWIFT; - -@interface FBLPromise(RetryAdditions) - -typedef id __nullable (^FBLPromiseRetryWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); -typedef BOOL (^FBLPromiseRetryPredicateBlock)(NSInteger, NSError *) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on rejection where the - `work` block is retried after a delay of `FBLPromiseRetryDefaultDelayInterval` second(s). - - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on - rejection where the `work` block is retried on the given `queue` after a delay of - `FBLPromiseRetryDefaultDelayInterval` second(s). - - @param queue A queue to invoke the `work` block on. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. - - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)attempts:(NSInteger)count - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. - - @param queue A queue to invoke the `work` block on. - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - attempts:(NSInteger)count - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. On rejection, the `work` block is retried after the given delay `interval` and will - continue to retry until the number of specified attempts have been exhausted or will bail early if - the given condition is not met. - - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param interval Time to wait before the next retry attempt. - @param predicate Condition to check before the next retry attempt. The predicate block provides the - the number of remaining retry attempts and the error that the promise was rejected - with. - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted or if - the given condition is not met. - */ -+ (FBLPromise *)attempts:(NSInteger)count - delay:(NSTimeInterval)interval - condition:(nullable FBLPromiseRetryPredicateBlock)predicate - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. On rejection, the `work` block is retried after the given - delay `interval` and will continue to retry until the number of specified attempts have been - exhausted or will bail early if the given condition is not met. - - @param queue A queue to invoke the `work` block on. - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param interval Time to wait before the next retry attempt. - @param predicate Condition to check before the next retry attempt. The predicate block provides the - the number of remaining retry attempts and the error that the promise was rejected - with. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted or if - the given condition is not met. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - attempts:(NSInteger)count - delay:(NSTimeInterval)interval - condition:(nullable FBLPromiseRetryPredicateBlock)predicate - retry:(FBLPromiseRetryWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise+Retry` operators. - Usage: FBLPromise.retry(^id { ... }) - */ -@interface FBLPromise(DotSyntax_RetryAdditions) - -+ (FBLPromise * (^)(FBLPromiseRetryWorkBlock))retry FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRetryWorkBlock))retryOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(NSInteger, NSTimeInterval, FBLPromiseRetryPredicateBlock __nullable, - FBLPromiseRetryWorkBlock))retryAgain FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSInteger, NSTimeInterval, - FBLPromiseRetryPredicateBlock __nullable, - FBLPromiseRetryWorkBlock))retryAgainOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Testing.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Testing.h deleted file mode 100644 index 8478ae22..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Testing.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Waits for all scheduled promises blocks. - - @param timeout Maximum time to wait. - @return YES if all promises blocks have completed before the timeout and NO otherwise. - */ -FOUNDATION_EXTERN BOOL FBLWaitForPromisesWithTimeout(NSTimeInterval timeout) NS_REFINED_FOR_SWIFT; - -@interface FBLPromise(TestingAdditions) - -/** - Dispatch group for promises that is typically used to wait for all scheduled blocks. - */ -@property(class, nonatomic, readonly) dispatch_group_t dispatchGroup NS_REFINED_FOR_SWIFT; - -/** - Properties to get the current state of the promise. - */ -@property(nonatomic, readonly) BOOL isPending NS_REFINED_FOR_SWIFT; -@property(nonatomic, readonly) BOOL isFulfilled NS_REFINED_FOR_SWIFT; -@property(nonatomic, readonly) BOOL isRejected NS_REFINED_FOR_SWIFT; - -/** - Value the promise was fulfilled with. - Can be nil if the promise is still pending, was resolved with nil or after it has been rejected. - */ -@property(nonatomic, readonly, nullable) Value value NS_REFINED_FOR_SWIFT; - -/** - Error the promise was rejected with. - Can be nil if the promise is still pending or after it has been fulfilled. - */ -@property(nonatomic, readonly, nullable) NSError *error NS_REFINED_FOR_SWIFT; - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Then.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Then.h deleted file mode 100644 index 32027e69..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Then.h +++ /dev/null @@ -1,63 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ThenAdditions) - -typedef id __nullable (^FBLPromiseThenWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with resolution returned from `work` - block: either value, error or another promise. The `work` block is executed asynchronously only - when the receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with - the same error. - - @param work A block to handle the value that receiver was fulfilled with. - @return A new pending promise to be resolved with resolution returned from the `work` block. - */ -- (FBLPromise *)then:(FBLPromiseThenWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with resolution returned from `work` - block: either value, error or another promise. The `work` block is executed asynchronously when the - receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with the same - error. - - @param queue A queue to invoke the `work` block on. - @param work A block to handle the value that receiver was fulfilled with. - @return A new pending promise to be resolved with resolution returned from the `work` block. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - then:(FBLPromiseThenWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `then` operators. - Usage: promise.then(^id(id value) { ... }) - */ -@interface FBLPromise(DotSyntax_ThenAdditions) - -- (FBLPromise* (^)(FBLPromiseThenWorkBlock))then FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseThenWorkBlock))thenOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Timeout.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Timeout.h deleted file mode 100644 index 184ba166..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Timeout.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(TimeoutAdditions) - -/** - Waits for a promise with the specified `timeout`. - - @param interval Time to wait in seconds. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)timeout:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE(""); - -/** - Waits for a promise with the specified `timeout`. - - @param queue A queue to dispatch on. - @param interval Time to wait in seconds. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - timeout:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `timeout` operators. - Usage: promise.timeout(...) - */ -@interface FBLPromise(DotSyntax_TimeoutAdditions) - -- (FBLPromise* (^)(NSTimeInterval))timeout FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, NSTimeInterval))timeoutOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Validate.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Validate.h deleted file mode 100644 index 9dfa2f16..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Validate.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ValidateAdditions) - -typedef BOOL (^FBLPromiseValidateWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); - -/** - Validates a fulfilled value or rejects the value if it can not be validated. - - @param predicate An expression to validate. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)validate:(FBLPromiseValidateWorkBlock)predicate NS_SWIFT_UNAVAILABLE(""); - -/** - Validates a fulfilled value or rejects the value if it can not be validated. - - @param queue A queue to dispatch on. - @param predicate An expression to validate. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - validate:(FBLPromiseValidateWorkBlock)predicate NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `validate` operators. - Usage: promise.validate(^BOOL(id value) { ... }) - */ -@interface FBLPromise(DotSyntax_ValidateAdditions) - -- (FBLPromise * (^)(FBLPromiseValidateWorkBlock))validate FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseValidateWorkBlock))validateOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Wrap.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Wrap.h deleted file mode 100644 index 664e1bbf..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise+Wrap.h +++ /dev/null @@ -1,316 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Different types of completion handlers available to be wrapped with promise. - */ -typedef void (^FBLPromiseCompletion)(void) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseObjectCompletion)(id __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseErrorCompletion)(NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseObjectOrErrorCompletion)(id __nullable, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseErrorOrObjectCompletion)(NSError* __nullable, id __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromise2ObjectsOrErrorCompletion)(id __nullable, id __nullable, - NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseBoolCompletion)(BOOL) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseBoolOrErrorCompletion)(BOOL, NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseIntegerCompletion)(NSInteger) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseIntegerOrErrorCompletion)(NSInteger, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseDoubleCompletion)(double) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseDoubleOrErrorCompletion)(double, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); - -/** - Provides an easy way to convert methods that use common callback patterns into promises. - */ -@interface FBLPromise(WrapAdditions) - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with `nil` when completion handler is invoked. - */ -+ (instancetype)wrapCompletion:(void (^)(FBLPromiseCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with `nil` when completion handler is invoked. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapCompletion:(void (^)(FBLPromiseCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler. - */ -+ (instancetype)wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error provided by completion handler. - If error is `nil`, fulfills with `nil`, otherwise rejects with the error. - */ -+ (instancetype)wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error provided by completion handler. - If error is `nil`, fulfills with `nil`, otherwise rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler if error is `nil`. - Otherwise, rejects with the error. - */ -+ (instancetype)wrapObjectOrErrorCompletion: - (void (^)(FBLPromiseObjectOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler if error is `nil`. - Otherwise, rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapObjectOrErrorCompletion:(void (^)(FBLPromiseObjectOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error or object provided by completion handler. If error - is not `nil`, rejects with the error. - */ -+ (instancetype)wrapErrorOrObjectCompletion: - (void (^)(FBLPromiseErrorOrObjectCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error or object provided by completion handler. If error - is not `nil`, rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapErrorOrObjectCompletion:(void (^)(FBLPromiseErrorOrObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an array of objects provided by completion handler in order - if error is `nil`. Otherwise, rejects with the error. - */ -+ (FBLPromise*)wrap2ObjectsOrErrorCompletion: - (void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an array of objects provided by completion handler in order - if error is `nil`. Otherwise, rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrap2ObjectsOrErrorCompletion:(void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO. - */ -+ (FBLPromise*)wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapBoolOrErrorCompletion: - (void (^)(FBLPromiseBoolOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapBoolOrErrorCompletion:(void (^)(FBLPromiseBoolOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer. - */ -+ (FBLPromise*)wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapIntegerOrErrorCompletion: - (void (^)(FBLPromiseIntegerOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapIntegerOrErrorCompletion:(void (^)(FBLPromiseIntegerOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double. - */ -+ (FBLPromise*)wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapDoubleOrErrorCompletion: - (void (^)(FBLPromiseDoubleOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapDoubleOrErrorCompletion:(void (^)(FBLPromiseDoubleOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `wrap` operators. - Usage: FBLPromise.wrapCompletion(^(FBLPromiseCompletion handler) {...}) - */ -@interface FBLPromise(DotSyntax_WrapAdditions) - -+ (FBLPromise* (^)(void (^)(FBLPromiseCompletion)))wrapCompletion FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseCompletion)))wrapCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletion FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromise2ObjectsOrErrorCompletion))) - wrap2ObjectsOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromise2ObjectsOrErrorCompletion))) - wrap2ObjectsOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseIntegerOrErrorCompletion))) - wrapIntegerOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseIntegerOrErrorCompletion))) - wrapIntegerOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseDoubleOrErrorCompletion))) - wrapDoubleOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseDoubleOrErrorCompletion))) - wrapDoubleOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise.h deleted file mode 100644 index b1380dc7..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromise.h +++ /dev/null @@ -1,93 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromiseError.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Promises synchronization construct in Objective-C. - */ -@interface FBLPromise<__covariant Value> : NSObject - -/** - Default dispatch queue used for `FBLPromise`, which is `main` if a queue is not specified. - */ -@property(class) dispatch_queue_t defaultDispatchQueue NS_REFINED_FOR_SWIFT; - -/** - Creates a pending promise. - */ -+ (instancetype)pendingPromise NS_REFINED_FOR_SWIFT; - -/** - Creates a resolved promise. - - @param resolution An object to resolve the promise with: either a value or an error. - @return A new resolved promise. - */ -+ (instancetype)resolvedWith:(nullable id)resolution NS_REFINED_FOR_SWIFT; - -/** - Synchronously fulfills the promise with a value. - - @param value An arbitrary value to fulfill the promise with, including `nil`. - */ -- (void)fulfill:(nullable Value)value NS_REFINED_FOR_SWIFT; - -/** - Synchronously rejects the promise with an error. - - @param error An error to reject the promise with. - */ -- (void)reject:(NSError *)error NS_REFINED_FOR_SWIFT; - -+ (instancetype)new NS_UNAVAILABLE; -- (instancetype)init NS_UNAVAILABLE; -@end - -@interface FBLPromise() - -/** - Adds an object to the set of pending objects to keep strongly while the promise is pending. - Used by the Swift wrappers to keep them alive until the underlying ObjC promise is resolved. - - @param object An object to add. - */ -- (void)addPendingObject:(id)object NS_REFINED_FOR_SWIFT; - -@end - -#ifdef FBL_PROMISES_DOT_SYNTAX_IS_DEPRECATED -#define FBL_PROMISES_DOT_SYNTAX __attribute__((deprecated)) -#else -#define FBL_PROMISES_DOT_SYNTAX -#endif - -@interface FBLPromise(DotSyntaxAdditions) - -/** - Convenience dot-syntax wrappers for FBLPromise. - Usage: FBLPromise.pending() - FBLPromise.resolved(value) - - */ -+ (instancetype (^)(void))pending FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (instancetype (^)(id __nullable))resolved FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromiseError.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromiseError.h deleted file mode 100644 index d37af536..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromiseError.h +++ /dev/null @@ -1,43 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -NS_ASSUME_NONNULL_BEGIN - -FOUNDATION_EXTERN NSErrorDomain const FBLPromiseErrorDomain NS_REFINED_FOR_SWIFT; - -/** - Possible error codes in `FBLPromiseErrorDomain`. - */ -typedef NS_ENUM(NSInteger, FBLPromiseErrorCode) { - /** Promise failed to resolve in time. */ - FBLPromiseErrorCodeTimedOut = 1, - /** Validation predicate returned false. */ - FBLPromiseErrorCodeValidationFailure = 2, -} NS_REFINED_FOR_SWIFT; - -NS_INLINE BOOL FBLPromiseErrorIsTimedOut(NSError *error) NS_SWIFT_UNAVAILABLE("") { - return error.domain == FBLPromiseErrorDomain && - error.code == FBLPromiseErrorCodeTimedOut; -} - -NS_INLINE BOOL FBLPromiseErrorIsValidationFailure(NSError *error) NS_SWIFT_UNAVAILABLE("") { - return error.domain == FBLPromiseErrorDomain && - error.code == FBLPromiseErrorCodeValidationFailure; -} - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromises.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromises.h deleted file mode 100644 index 2d90badb..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/FBLPromises.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise+All.h" -#import "FBLPromise+Always.h" -#import "FBLPromise+Any.h" -#import "FBLPromise+Async.h" -#import "FBLPromise+Await.h" -#import "FBLPromise+Catch.h" -#import "FBLPromise+Delay.h" -#import "FBLPromise+Do.h" -#import "FBLPromise+Race.h" -#import "FBLPromise+Recover.h" -#import "FBLPromise+Reduce.h" -#import "FBLPromise+Retry.h" -#import "FBLPromise+Then.h" -#import "FBLPromise+Timeout.h" -#import "FBLPromise+Validate.h" -#import "FBLPromise+Wrap.h" diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/PromisesObjC-umbrella.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/PromisesObjC-umbrella.h deleted file mode 100644 index 5b014a8b..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Headers/PromisesObjC-umbrella.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "FBLPromise+All.h" -#import "FBLPromise+Always.h" -#import "FBLPromise+Any.h" -#import "FBLPromise+Async.h" -#import "FBLPromise+Await.h" -#import "FBLPromise+Catch.h" -#import "FBLPromise+Delay.h" -#import "FBLPromise+Do.h" -#import "FBLPromise+Race.h" -#import "FBLPromise+Recover.h" -#import "FBLPromise+Reduce.h" -#import "FBLPromise+Retry.h" -#import "FBLPromise+Testing.h" -#import "FBLPromise+Then.h" -#import "FBLPromise+Timeout.h" -#import "FBLPromise+Validate.h" -#import "FBLPromise+Wrap.h" -#import "FBLPromise.h" -#import "FBLPromiseError.h" -#import "FBLPromises.h" - -FOUNDATION_EXPORT double FBLPromisesVersionNumber; -FOUNDATION_EXPORT const unsigned char FBLPromisesVersionString[]; - diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Info.plist b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Info.plist deleted file mode 100644 index 6db2f5f5..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleExecutable - FBLPromises - CFBundleIdentifier - com.firebase.Firebase-FBLPromises - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - FBLPromises - CFBundlePackageType - FMWK - CFBundleVersion - 2.1.1 - DTSDKName - iphonesimulator11.2 - - diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Modules/module.modulemap b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Modules/module.modulemap deleted file mode 100644 index bd7b48e1..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-maccatalyst/FBLPromises.framework/Modules/module.modulemap +++ /dev/null @@ -1,5 +0,0 @@ -framework module PromisesObjC { -umbrella header "PromisesObjC-umbrella.h" -export * -module * { export * } -} diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/FBLPromises b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/FBLPromises deleted file mode 100644 index 5acb25cd00158aa630c696740b14ba82bd7ea9c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449360 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

D~6xR}t@;6|X0R7w3M}I)< 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 zen^@V(AllAdditions) - -/** - Wait until all of the given promises are fulfilled. - If one of the given promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param promises Promises to wait for. - @return Promise of an array containing the values of input promises in the same order. - */ -+ (FBLPromise *)all:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Wait until all of the given promises are fulfilled. - If one of the given promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected FBLPromise correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return Promise of an array containing the values of input promises in the same order. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - all:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `all` operators. - Usage: FBLPromise.all(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_AllAdditions) - -+ (FBLPromise * (^)(NSArray *))all FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))allOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Always.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Always.h deleted file mode 100644 index 13000f5b..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Always.h +++ /dev/null @@ -1,54 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AlwaysAdditions) - -typedef void (^FBLPromiseAlwaysWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block that always executes, no matter if the receiver is rejected or fulfilled. - @return A new pending promise to be resolved with same resolution as the receiver. - */ -- (FBLPromise *)always:(FBLPromiseAlwaysWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to dispatch on. - @param work A block that always executes, no matter if the receiver is rejected or fulfilled. - @return A new pending promise to be resolved with same resolution as the receiver. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - always:(FBLPromiseAlwaysWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `always` operators. - Usage: promise.always(^{...}) - */ -@interface FBLPromise(DotSyntax_AlwaysAdditions) - -- (FBLPromise* (^)(FBLPromiseAlwaysWorkBlock))always FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAlwaysWorkBlock))alwaysOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Any.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Any.h deleted file mode 100644 index 82875bf7..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Any.h +++ /dev/null @@ -1,69 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AnyAdditions) - -/** - Waits until all of the given promises are either fulfilled or rejected. - If all promises are rejected, then the returned promise is rejected with same error - as the last one rejected. - If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of - values or `NSErrors`, matching the original order of fulfilled or rejected promises respectively. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param promises Promises to wait for. - @return Promise of array containing the values or `NSError`s of input promises in the same order. - */ -+ (FBLPromise *)any:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Waits until all of the given promises are either fulfilled or rejected. - If all promises are rejected, then the returned promise is rejected with same error - as the last one rejected. - If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of - values or `NSError`s, matching the original order of fulfilled or rejected promises respectively. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return Promise of array containing the values or `NSError`s of input promises in the same order. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - any:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `any` operators. - Usage: FBLPromise.any(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_AnyAdditions) - -+ (FBLPromise * (^)(NSArray *))any FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))anyOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Async.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Async.h deleted file mode 100644 index 0588a9ea..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Async.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AsyncAdditions) - -typedef void (^FBLPromiseFulfillBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseRejectBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseAsyncWorkBlock)(FBLPromiseFulfillBlock fulfill, - FBLPromiseRejectBlock reject) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously. - - @param work A block to perform any operations needed to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)async:(FBLPromiseAsyncWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously on the given queue. - - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - async:(FBLPromiseAsyncWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `async` operators. - Usage: FBLPromise.async(^(FBLPromiseFulfillBlock fulfill, FBLPromiseRejectBlock reject) { ... }) - */ -@interface FBLPromise(DotSyntax_AsyncAdditions) - -+ (FBLPromise* (^)(FBLPromiseAsyncWorkBlock))async FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAsyncWorkBlock))asyncOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Await.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Await.h deleted file mode 100644 index c97a1baf..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Await.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Waits for promise resolution. The current thread blocks until the promise is resolved. - - @param promise Promise to wait for. - @param error Error the promise was rejected with, or `nil` if the promise was fulfilled. - @return Value the promise was fulfilled with. If the promise was rejected, the return value - is always `nil`, but the error out arg is not. - */ -FOUNDATION_EXTERN id __nullable FBLPromiseAwait(FBLPromise *promise, - NSError **error) NS_REFINED_FOR_SWIFT; - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Catch.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Catch.h deleted file mode 100644 index a9ff170f..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Catch.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(CatchAdditions) - -typedef void (^FBLPromiseCatchWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with same resolution as the receiver. - If receiver is rejected, then `reject` block is executed asynchronously. - - @param reject A block to handle the error that receiver was rejected with. - @return A new pending promise. - */ -- (FBLPromise *)catch:(FBLPromiseCatchWorkBlock)reject NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with same resolution as the receiver. - If receiver is rejected, then `reject` block is executed asynchronously on the given queue. - - @param queue A queue to invoke the `reject` block on. - @param reject A block to handle the error that receiver was rejected with. - @return A new pending promise. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - catch:(FBLPromiseCatchWorkBlock)reject NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `catch` operators. - Usage: promise.catch(^(NSError *error) { ... }) - */ -@interface FBLPromise(DotSyntax_CatchAdditions) - -- (FBLPromise* (^)(FBLPromiseCatchWorkBlock))catch FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseCatchWorkBlock))catchOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Delay.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Delay.h deleted file mode 100644 index 557df485..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Delay.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(DelayAdditions) - -/** - Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or - rejects with the same error immediately. - - @param interval Time to wait in seconds. - @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects - with the same error immediately. - */ -- (FBLPromise *)delay:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or - rejects with the same error immediately. - - @param queue A queue to dispatch on. - @param interval Time to wait in seconds. - @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects - with the same error immediately. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - delay:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `delay` operators. - Usage: promise.delay(...) - */ -@interface FBLPromise(DotSyntax_DelayAdditions) - -- (FBLPromise * (^)(NSTimeInterval))delay FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, NSTimeInterval))delayOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Do.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Do.h deleted file mode 100644 index 6838e0ad..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Do.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(DoAdditions) - -typedef id __nullable (^FBLPromiseDoWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously. - - @param work A block that returns a value or an error used to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)do:(FBLPromiseDoWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously on the given queue. - - @param queue A queue to invoke the `work` block on. - @param work A block that returns a value or an error used to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue do:(FBLPromiseDoWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `do` operators. - Usage: FBLPromise.doOn(queue, ^(NSError *error) { ... }) - */ -@interface FBLPromise(DotSyntax_DoAdditions) - -+ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseDoWorkBlock))doOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Race.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Race.h deleted file mode 100644 index 2f67258d..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Race.h +++ /dev/null @@ -1,62 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(RaceAdditions) - -/** - Wait until any of the given promises are fulfilled. - If one of the promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - - @param promises Promises to wait for. - @return A new pending promise to be resolved with the same resolution as the first promise, among - the given ones, which was resolved. - */ -+ (instancetype)race:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Wait until any of the given promises are fulfilled. - If one of the promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return A new pending promise to be resolved with the same resolution as the first promise, among - the given ones, which was resolved. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue race:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `race` operators. - Usage: FBLPromise.race(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_RaceAdditions) - -+ (FBLPromise * (^)(NSArray *))race FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))raceOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Recover.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Recover.h deleted file mode 100644 index bb7df7ec..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Recover.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(RecoverAdditions) - -typedef id __nullable (^FBLPromiseRecoverWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); - -/** - Provides a new promise to recover in case the receiver gets rejected. - - @param recovery A block to handle the error that the receiver was rejected with. - @return A new pending promise to use instead of the rejected one that gets resolved with resolution - returned from `recovery` block. - */ -- (FBLPromise *)recover:(FBLPromiseRecoverWorkBlock)recovery NS_SWIFT_UNAVAILABLE(""); - -/** - Provides a new promise to recover in case the receiver gets rejected. - - @param queue A queue to dispatch on. - @param recovery A block to handle the error that the receiver was rejected with. - @return A new pending promise to use instead of the rejected one that gets resolved with resolution - returned from `recovery` block. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - recover:(FBLPromiseRecoverWorkBlock)recovery NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `recover` operators. - Usage: promise.recover(^id(NSError *error) {...}) - */ -@interface FBLPromise(DotSyntax_RecoverAdditions) - -- (FBLPromise * (^)(FBLPromiseRecoverWorkBlock))recover FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRecoverWorkBlock))recoverOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Reduce.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Reduce.h deleted file mode 100644 index 5bb1eeee..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Reduce.h +++ /dev/null @@ -1,71 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ReduceAdditions) - -typedef id __nullable (^FBLPromiseReducerBlock)(Value __nullable partial, id next) - NS_SWIFT_UNAVAILABLE(""); - -/** - Sequentially reduces a collection of values to a single promise using a given combining block - and the value `self` resolves with as initial value. - - @param items An array of values to process in order. - @param reducer A block to combine an accumulating value and an element of the sequence into - the new accumulating value or a promise resolved with it, to be used in the next - call of the `reducer` or returned to the caller. - @return A new pending promise returned from the last `reducer` invocation. - Or `self` if `items` is empty. - */ -- (FBLPromise *)reduce:(NSArray *)items - combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE(""); - -/** - Sequentially reduces a collection of values to a single promise using a given combining block - and the value `self` resolves with as initial value. - - @param queue A queue to dispatch on. - @param items An array of values to process in order. - @param reducer A block to combine an accumulating value and an element of the sequence into - the new accumulating value or a promise resolved with it, to be used in the next - call of the `reducer` or returned to the caller. - @return A new pending promise returned from the last `reducer` invocation. - Or `self` if `items` is empty. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - reduce:(NSArray *)items - combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE(""); - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `reduce` operators. - Usage: promise.reduce(values, ^id(id partial, id next) { ... }) - */ -@interface FBLPromise(DotSyntax_ReduceAdditions) - -- (FBLPromise * (^)(NSArray *, FBLPromiseReducerBlock))reduce FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, NSArray *, FBLPromiseReducerBlock))reduceOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Retry.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Retry.h deleted file mode 100644 index 98ef558c..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Retry.h +++ /dev/null @@ -1,165 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** The default number of retry attempts is 1. */ -FOUNDATION_EXTERN NSInteger const FBLPromiseRetryDefaultAttemptsCount NS_REFINED_FOR_SWIFT; - -/** The default delay interval before making a retry attempt is 1.0 second. */ -FOUNDATION_EXTERN NSTimeInterval const FBLPromiseRetryDefaultDelayInterval NS_REFINED_FOR_SWIFT; - -@interface FBLPromise(RetryAdditions) - -typedef id __nullable (^FBLPromiseRetryWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); -typedef BOOL (^FBLPromiseRetryPredicateBlock)(NSInteger, NSError *) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on rejection where the - `work` block is retried after a delay of `FBLPromiseRetryDefaultDelayInterval` second(s). - - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on - rejection where the `work` block is retried on the given `queue` after a delay of - `FBLPromiseRetryDefaultDelayInterval` second(s). - - @param queue A queue to invoke the `work` block on. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. - - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)attempts:(NSInteger)count - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. - - @param queue A queue to invoke the `work` block on. - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - attempts:(NSInteger)count - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. On rejection, the `work` block is retried after the given delay `interval` and will - continue to retry until the number of specified attempts have been exhausted or will bail early if - the given condition is not met. - - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param interval Time to wait before the next retry attempt. - @param predicate Condition to check before the next retry attempt. The predicate block provides the - the number of remaining retry attempts and the error that the promise was rejected - with. - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted or if - the given condition is not met. - */ -+ (FBLPromise *)attempts:(NSInteger)count - delay:(NSTimeInterval)interval - condition:(nullable FBLPromiseRetryPredicateBlock)predicate - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. On rejection, the `work` block is retried after the given - delay `interval` and will continue to retry until the number of specified attempts have been - exhausted or will bail early if the given condition is not met. - - @param queue A queue to invoke the `work` block on. - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param interval Time to wait before the next retry attempt. - @param predicate Condition to check before the next retry attempt. The predicate block provides the - the number of remaining retry attempts and the error that the promise was rejected - with. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted or if - the given condition is not met. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - attempts:(NSInteger)count - delay:(NSTimeInterval)interval - condition:(nullable FBLPromiseRetryPredicateBlock)predicate - retry:(FBLPromiseRetryWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise+Retry` operators. - Usage: FBLPromise.retry(^id { ... }) - */ -@interface FBLPromise(DotSyntax_RetryAdditions) - -+ (FBLPromise * (^)(FBLPromiseRetryWorkBlock))retry FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRetryWorkBlock))retryOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(NSInteger, NSTimeInterval, FBLPromiseRetryPredicateBlock __nullable, - FBLPromiseRetryWorkBlock))retryAgain FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSInteger, NSTimeInterval, - FBLPromiseRetryPredicateBlock __nullable, - FBLPromiseRetryWorkBlock))retryAgainOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Testing.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Testing.h deleted file mode 100644 index 8478ae22..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Testing.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Waits for all scheduled promises blocks. - - @param timeout Maximum time to wait. - @return YES if all promises blocks have completed before the timeout and NO otherwise. - */ -FOUNDATION_EXTERN BOOL FBLWaitForPromisesWithTimeout(NSTimeInterval timeout) NS_REFINED_FOR_SWIFT; - -@interface FBLPromise(TestingAdditions) - -/** - Dispatch group for promises that is typically used to wait for all scheduled blocks. - */ -@property(class, nonatomic, readonly) dispatch_group_t dispatchGroup NS_REFINED_FOR_SWIFT; - -/** - Properties to get the current state of the promise. - */ -@property(nonatomic, readonly) BOOL isPending NS_REFINED_FOR_SWIFT; -@property(nonatomic, readonly) BOOL isFulfilled NS_REFINED_FOR_SWIFT; -@property(nonatomic, readonly) BOOL isRejected NS_REFINED_FOR_SWIFT; - -/** - Value the promise was fulfilled with. - Can be nil if the promise is still pending, was resolved with nil or after it has been rejected. - */ -@property(nonatomic, readonly, nullable) Value value NS_REFINED_FOR_SWIFT; - -/** - Error the promise was rejected with. - Can be nil if the promise is still pending or after it has been fulfilled. - */ -@property(nonatomic, readonly, nullable) NSError *error NS_REFINED_FOR_SWIFT; - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Then.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Then.h deleted file mode 100644 index 32027e69..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Then.h +++ /dev/null @@ -1,63 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ThenAdditions) - -typedef id __nullable (^FBLPromiseThenWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with resolution returned from `work` - block: either value, error or another promise. The `work` block is executed asynchronously only - when the receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with - the same error. - - @param work A block to handle the value that receiver was fulfilled with. - @return A new pending promise to be resolved with resolution returned from the `work` block. - */ -- (FBLPromise *)then:(FBLPromiseThenWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with resolution returned from `work` - block: either value, error or another promise. The `work` block is executed asynchronously when the - receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with the same - error. - - @param queue A queue to invoke the `work` block on. - @param work A block to handle the value that receiver was fulfilled with. - @return A new pending promise to be resolved with resolution returned from the `work` block. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - then:(FBLPromiseThenWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `then` operators. - Usage: promise.then(^id(id value) { ... }) - */ -@interface FBLPromise(DotSyntax_ThenAdditions) - -- (FBLPromise* (^)(FBLPromiseThenWorkBlock))then FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseThenWorkBlock))thenOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Timeout.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Timeout.h deleted file mode 100644 index 184ba166..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Timeout.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(TimeoutAdditions) - -/** - Waits for a promise with the specified `timeout`. - - @param interval Time to wait in seconds. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)timeout:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE(""); - -/** - Waits for a promise with the specified `timeout`. - - @param queue A queue to dispatch on. - @param interval Time to wait in seconds. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - timeout:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `timeout` operators. - Usage: promise.timeout(...) - */ -@interface FBLPromise(DotSyntax_TimeoutAdditions) - -- (FBLPromise* (^)(NSTimeInterval))timeout FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, NSTimeInterval))timeoutOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Validate.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Validate.h deleted file mode 100644 index 9dfa2f16..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Validate.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ValidateAdditions) - -typedef BOOL (^FBLPromiseValidateWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); - -/** - Validates a fulfilled value or rejects the value if it can not be validated. - - @param predicate An expression to validate. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)validate:(FBLPromiseValidateWorkBlock)predicate NS_SWIFT_UNAVAILABLE(""); - -/** - Validates a fulfilled value or rejects the value if it can not be validated. - - @param queue A queue to dispatch on. - @param predicate An expression to validate. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - validate:(FBLPromiseValidateWorkBlock)predicate NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `validate` operators. - Usage: promise.validate(^BOOL(id value) { ... }) - */ -@interface FBLPromise(DotSyntax_ValidateAdditions) - -- (FBLPromise * (^)(FBLPromiseValidateWorkBlock))validate FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseValidateWorkBlock))validateOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Wrap.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Wrap.h deleted file mode 100644 index 664e1bbf..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Wrap.h +++ /dev/null @@ -1,316 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Different types of completion handlers available to be wrapped with promise. - */ -typedef void (^FBLPromiseCompletion)(void) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseObjectCompletion)(id __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseErrorCompletion)(NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseObjectOrErrorCompletion)(id __nullable, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseErrorOrObjectCompletion)(NSError* __nullable, id __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromise2ObjectsOrErrorCompletion)(id __nullable, id __nullable, - NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseBoolCompletion)(BOOL) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseBoolOrErrorCompletion)(BOOL, NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseIntegerCompletion)(NSInteger) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseIntegerOrErrorCompletion)(NSInteger, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseDoubleCompletion)(double) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseDoubleOrErrorCompletion)(double, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); - -/** - Provides an easy way to convert methods that use common callback patterns into promises. - */ -@interface FBLPromise(WrapAdditions) - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with `nil` when completion handler is invoked. - */ -+ (instancetype)wrapCompletion:(void (^)(FBLPromiseCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with `nil` when completion handler is invoked. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapCompletion:(void (^)(FBLPromiseCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler. - */ -+ (instancetype)wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error provided by completion handler. - If error is `nil`, fulfills with `nil`, otherwise rejects with the error. - */ -+ (instancetype)wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error provided by completion handler. - If error is `nil`, fulfills with `nil`, otherwise rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler if error is `nil`. - Otherwise, rejects with the error. - */ -+ (instancetype)wrapObjectOrErrorCompletion: - (void (^)(FBLPromiseObjectOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler if error is `nil`. - Otherwise, rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapObjectOrErrorCompletion:(void (^)(FBLPromiseObjectOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error or object provided by completion handler. If error - is not `nil`, rejects with the error. - */ -+ (instancetype)wrapErrorOrObjectCompletion: - (void (^)(FBLPromiseErrorOrObjectCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error or object provided by completion handler. If error - is not `nil`, rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapErrorOrObjectCompletion:(void (^)(FBLPromiseErrorOrObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an array of objects provided by completion handler in order - if error is `nil`. Otherwise, rejects with the error. - */ -+ (FBLPromise*)wrap2ObjectsOrErrorCompletion: - (void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an array of objects provided by completion handler in order - if error is `nil`. Otherwise, rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrap2ObjectsOrErrorCompletion:(void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO. - */ -+ (FBLPromise*)wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapBoolOrErrorCompletion: - (void (^)(FBLPromiseBoolOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapBoolOrErrorCompletion:(void (^)(FBLPromiseBoolOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer. - */ -+ (FBLPromise*)wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapIntegerOrErrorCompletion: - (void (^)(FBLPromiseIntegerOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapIntegerOrErrorCompletion:(void (^)(FBLPromiseIntegerOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double. - */ -+ (FBLPromise*)wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapDoubleOrErrorCompletion: - (void (^)(FBLPromiseDoubleOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapDoubleOrErrorCompletion:(void (^)(FBLPromiseDoubleOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `wrap` operators. - Usage: FBLPromise.wrapCompletion(^(FBLPromiseCompletion handler) {...}) - */ -@interface FBLPromise(DotSyntax_WrapAdditions) - -+ (FBLPromise* (^)(void (^)(FBLPromiseCompletion)))wrapCompletion FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseCompletion)))wrapCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletion FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromise2ObjectsOrErrorCompletion))) - wrap2ObjectsOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromise2ObjectsOrErrorCompletion))) - wrap2ObjectsOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseIntegerOrErrorCompletion))) - wrapIntegerOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseIntegerOrErrorCompletion))) - wrapIntegerOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseDoubleOrErrorCompletion))) - wrapDoubleOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseDoubleOrErrorCompletion))) - wrapDoubleOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise.h deleted file mode 100644 index b1380dc7..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise.h +++ /dev/null @@ -1,93 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromiseError.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Promises synchronization construct in Objective-C. - */ -@interface FBLPromise<__covariant Value> : NSObject - -/** - Default dispatch queue used for `FBLPromise`, which is `main` if a queue is not specified. - */ -@property(class) dispatch_queue_t defaultDispatchQueue NS_REFINED_FOR_SWIFT; - -/** - Creates a pending promise. - */ -+ (instancetype)pendingPromise NS_REFINED_FOR_SWIFT; - -/** - Creates a resolved promise. - - @param resolution An object to resolve the promise with: either a value or an error. - @return A new resolved promise. - */ -+ (instancetype)resolvedWith:(nullable id)resolution NS_REFINED_FOR_SWIFT; - -/** - Synchronously fulfills the promise with a value. - - @param value An arbitrary value to fulfill the promise with, including `nil`. - */ -- (void)fulfill:(nullable Value)value NS_REFINED_FOR_SWIFT; - -/** - Synchronously rejects the promise with an error. - - @param error An error to reject the promise with. - */ -- (void)reject:(NSError *)error NS_REFINED_FOR_SWIFT; - -+ (instancetype)new NS_UNAVAILABLE; -- (instancetype)init NS_UNAVAILABLE; -@end - -@interface FBLPromise() - -/** - Adds an object to the set of pending objects to keep strongly while the promise is pending. - Used by the Swift wrappers to keep them alive until the underlying ObjC promise is resolved. - - @param object An object to add. - */ -- (void)addPendingObject:(id)object NS_REFINED_FOR_SWIFT; - -@end - -#ifdef FBL_PROMISES_DOT_SYNTAX_IS_DEPRECATED -#define FBL_PROMISES_DOT_SYNTAX __attribute__((deprecated)) -#else -#define FBL_PROMISES_DOT_SYNTAX -#endif - -@interface FBLPromise(DotSyntaxAdditions) - -/** - Convenience dot-syntax wrappers for FBLPromise. - Usage: FBLPromise.pending() - FBLPromise.resolved(value) - - */ -+ (instancetype (^)(void))pending FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (instancetype (^)(id __nullable))resolved FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromiseError.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromiseError.h deleted file mode 100644 index d37af536..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromiseError.h +++ /dev/null @@ -1,43 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -NS_ASSUME_NONNULL_BEGIN - -FOUNDATION_EXTERN NSErrorDomain const FBLPromiseErrorDomain NS_REFINED_FOR_SWIFT; - -/** - Possible error codes in `FBLPromiseErrorDomain`. - */ -typedef NS_ENUM(NSInteger, FBLPromiseErrorCode) { - /** Promise failed to resolve in time. */ - FBLPromiseErrorCodeTimedOut = 1, - /** Validation predicate returned false. */ - FBLPromiseErrorCodeValidationFailure = 2, -} NS_REFINED_FOR_SWIFT; - -NS_INLINE BOOL FBLPromiseErrorIsTimedOut(NSError *error) NS_SWIFT_UNAVAILABLE("") { - return error.domain == FBLPromiseErrorDomain && - error.code == FBLPromiseErrorCodeTimedOut; -} - -NS_INLINE BOOL FBLPromiseErrorIsValidationFailure(NSError *error) NS_SWIFT_UNAVAILABLE("") { - return error.domain == FBLPromiseErrorDomain && - error.code == FBLPromiseErrorCodeValidationFailure; -} - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromises.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromises.h deleted file mode 100644 index 2d90badb..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromises.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise+All.h" -#import "FBLPromise+Always.h" -#import "FBLPromise+Any.h" -#import "FBLPromise+Async.h" -#import "FBLPromise+Await.h" -#import "FBLPromise+Catch.h" -#import "FBLPromise+Delay.h" -#import "FBLPromise+Do.h" -#import "FBLPromise+Race.h" -#import "FBLPromise+Recover.h" -#import "FBLPromise+Reduce.h" -#import "FBLPromise+Retry.h" -#import "FBLPromise+Then.h" -#import "FBLPromise+Timeout.h" -#import "FBLPromise+Validate.h" -#import "FBLPromise+Wrap.h" diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/PromisesObjC-umbrella.h b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/PromisesObjC-umbrella.h deleted file mode 100644 index 5b014a8b..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Headers/PromisesObjC-umbrella.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "FBLPromise+All.h" -#import "FBLPromise+Always.h" -#import "FBLPromise+Any.h" -#import "FBLPromise+Async.h" -#import "FBLPromise+Await.h" -#import "FBLPromise+Catch.h" -#import "FBLPromise+Delay.h" -#import "FBLPromise+Do.h" -#import "FBLPromise+Race.h" -#import "FBLPromise+Recover.h" -#import "FBLPromise+Reduce.h" -#import "FBLPromise+Retry.h" -#import "FBLPromise+Testing.h" -#import "FBLPromise+Then.h" -#import "FBLPromise+Timeout.h" -#import "FBLPromise+Validate.h" -#import "FBLPromise+Wrap.h" -#import "FBLPromise.h" -#import "FBLPromiseError.h" -#import "FBLPromises.h" - -FOUNDATION_EXPORT double FBLPromisesVersionNumber; -FOUNDATION_EXPORT const unsigned char FBLPromisesVersionString[]; - diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Info.plist b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Info.plist deleted file mode 100644 index 6db2f5f5..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleExecutable - FBLPromises - CFBundleIdentifier - com.firebase.Firebase-FBLPromises - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - FBLPromises - CFBundlePackageType - FMWK - CFBundleVersion - 2.1.1 - DTSDKName - iphonesimulator11.2 - - diff --git a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Modules/module.modulemap b/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Modules/module.modulemap deleted file mode 100644 index bd7b48e1..00000000 --- a/ios/platform/FBLPromises.xcframework/ios-arm64_x86_64-simulator/FBLPromises.framework/Modules/module.modulemap +++ /dev/null @@ -1,5 +0,0 @@ -framework module PromisesObjC { -umbrella header "PromisesObjC-umbrella.h" -export * -module * { export * } -} diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/FBLPromises b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/FBLPromises deleted file mode 100644 index c17496ac749011677187ed1863b3c8bc1089a5bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 455560 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%0D7}j-zz^Q^Mzdopkd1W>UKHrIj}SY2kC8rISCK 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 - -/** - Wait until all of the given promises are fulfilled. - If one of the given promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param promises Promises to wait for. - @return Promise of an array containing the values of input promises in the same order. - */ -+ (FBLPromise *)all:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Wait until all of the given promises are fulfilled. - If one of the given promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected FBLPromise correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return Promise of an array containing the values of input promises in the same order. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - all:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `all` operators. - Usage: FBLPromise.all(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_AllAdditions) - -+ (FBLPromise * (^)(NSArray *))all FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))allOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Always.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Always.h deleted file mode 100644 index 13000f5b..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Always.h +++ /dev/null @@ -1,54 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AlwaysAdditions) - -typedef void (^FBLPromiseAlwaysWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block that always executes, no matter if the receiver is rejected or fulfilled. - @return A new pending promise to be resolved with same resolution as the receiver. - */ -- (FBLPromise *)always:(FBLPromiseAlwaysWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to dispatch on. - @param work A block that always executes, no matter if the receiver is rejected or fulfilled. - @return A new pending promise to be resolved with same resolution as the receiver. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - always:(FBLPromiseAlwaysWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `always` operators. - Usage: promise.always(^{...}) - */ -@interface FBLPromise(DotSyntax_AlwaysAdditions) - -- (FBLPromise* (^)(FBLPromiseAlwaysWorkBlock))always FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAlwaysWorkBlock))alwaysOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Any.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Any.h deleted file mode 100644 index 82875bf7..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Any.h +++ /dev/null @@ -1,69 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AnyAdditions) - -/** - Waits until all of the given promises are either fulfilled or rejected. - If all promises are rejected, then the returned promise is rejected with same error - as the last one rejected. - If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of - values or `NSErrors`, matching the original order of fulfilled or rejected promises respectively. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param promises Promises to wait for. - @return Promise of array containing the values or `NSError`s of input promises in the same order. - */ -+ (FBLPromise *)any:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Waits until all of the given promises are either fulfilled or rejected. - If all promises are rejected, then the returned promise is rejected with same error - as the last one rejected. - If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of - values or `NSError`s, matching the original order of fulfilled or rejected promises respectively. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return Promise of array containing the values or `NSError`s of input promises in the same order. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - any:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `any` operators. - Usage: FBLPromise.any(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_AnyAdditions) - -+ (FBLPromise * (^)(NSArray *))any FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))anyOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Async.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Async.h deleted file mode 100644 index 0588a9ea..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Async.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AsyncAdditions) - -typedef void (^FBLPromiseFulfillBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseRejectBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseAsyncWorkBlock)(FBLPromiseFulfillBlock fulfill, - FBLPromiseRejectBlock reject) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously. - - @param work A block to perform any operations needed to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)async:(FBLPromiseAsyncWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously on the given queue. - - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - async:(FBLPromiseAsyncWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `async` operators. - Usage: FBLPromise.async(^(FBLPromiseFulfillBlock fulfill, FBLPromiseRejectBlock reject) { ... }) - */ -@interface FBLPromise(DotSyntax_AsyncAdditions) - -+ (FBLPromise* (^)(FBLPromiseAsyncWorkBlock))async FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAsyncWorkBlock))asyncOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Await.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Await.h deleted file mode 100644 index c97a1baf..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Await.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Waits for promise resolution. The current thread blocks until the promise is resolved. - - @param promise Promise to wait for. - @param error Error the promise was rejected with, or `nil` if the promise was fulfilled. - @return Value the promise was fulfilled with. If the promise was rejected, the return value - is always `nil`, but the error out arg is not. - */ -FOUNDATION_EXTERN id __nullable FBLPromiseAwait(FBLPromise *promise, - NSError **error) NS_REFINED_FOR_SWIFT; - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Catch.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Catch.h deleted file mode 100644 index a9ff170f..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Catch.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(CatchAdditions) - -typedef void (^FBLPromiseCatchWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with same resolution as the receiver. - If receiver is rejected, then `reject` block is executed asynchronously. - - @param reject A block to handle the error that receiver was rejected with. - @return A new pending promise. - */ -- (FBLPromise *)catch:(FBLPromiseCatchWorkBlock)reject NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with same resolution as the receiver. - If receiver is rejected, then `reject` block is executed asynchronously on the given queue. - - @param queue A queue to invoke the `reject` block on. - @param reject A block to handle the error that receiver was rejected with. - @return A new pending promise. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - catch:(FBLPromiseCatchWorkBlock)reject NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `catch` operators. - Usage: promise.catch(^(NSError *error) { ... }) - */ -@interface FBLPromise(DotSyntax_CatchAdditions) - -- (FBLPromise* (^)(FBLPromiseCatchWorkBlock))catch FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseCatchWorkBlock))catchOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Delay.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Delay.h deleted file mode 100644 index 557df485..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Delay.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(DelayAdditions) - -/** - Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or - rejects with the same error immediately. - - @param interval Time to wait in seconds. - @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects - with the same error immediately. - */ -- (FBLPromise *)delay:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or - rejects with the same error immediately. - - @param queue A queue to dispatch on. - @param interval Time to wait in seconds. - @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects - with the same error immediately. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - delay:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `delay` operators. - Usage: promise.delay(...) - */ -@interface FBLPromise(DotSyntax_DelayAdditions) - -- (FBLPromise * (^)(NSTimeInterval))delay FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, NSTimeInterval))delayOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Do.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Do.h deleted file mode 100644 index 6838e0ad..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Do.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(DoAdditions) - -typedef id __nullable (^FBLPromiseDoWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously. - - @param work A block that returns a value or an error used to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)do:(FBLPromiseDoWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously on the given queue. - - @param queue A queue to invoke the `work` block on. - @param work A block that returns a value or an error used to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue do:(FBLPromiseDoWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `do` operators. - Usage: FBLPromise.doOn(queue, ^(NSError *error) { ... }) - */ -@interface FBLPromise(DotSyntax_DoAdditions) - -+ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseDoWorkBlock))doOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Race.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Race.h deleted file mode 100644 index 2f67258d..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Race.h +++ /dev/null @@ -1,62 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(RaceAdditions) - -/** - Wait until any of the given promises are fulfilled. - If one of the promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - - @param promises Promises to wait for. - @return A new pending promise to be resolved with the same resolution as the first promise, among - the given ones, which was resolved. - */ -+ (instancetype)race:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Wait until any of the given promises are fulfilled. - If one of the promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return A new pending promise to be resolved with the same resolution as the first promise, among - the given ones, which was resolved. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue race:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `race` operators. - Usage: FBLPromise.race(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_RaceAdditions) - -+ (FBLPromise * (^)(NSArray *))race FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))raceOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Recover.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Recover.h deleted file mode 100644 index bb7df7ec..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Recover.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(RecoverAdditions) - -typedef id __nullable (^FBLPromiseRecoverWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); - -/** - Provides a new promise to recover in case the receiver gets rejected. - - @param recovery A block to handle the error that the receiver was rejected with. - @return A new pending promise to use instead of the rejected one that gets resolved with resolution - returned from `recovery` block. - */ -- (FBLPromise *)recover:(FBLPromiseRecoverWorkBlock)recovery NS_SWIFT_UNAVAILABLE(""); - -/** - Provides a new promise to recover in case the receiver gets rejected. - - @param queue A queue to dispatch on. - @param recovery A block to handle the error that the receiver was rejected with. - @return A new pending promise to use instead of the rejected one that gets resolved with resolution - returned from `recovery` block. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - recover:(FBLPromiseRecoverWorkBlock)recovery NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `recover` operators. - Usage: promise.recover(^id(NSError *error) {...}) - */ -@interface FBLPromise(DotSyntax_RecoverAdditions) - -- (FBLPromise * (^)(FBLPromiseRecoverWorkBlock))recover FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRecoverWorkBlock))recoverOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Reduce.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Reduce.h deleted file mode 100644 index 5bb1eeee..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Reduce.h +++ /dev/null @@ -1,71 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ReduceAdditions) - -typedef id __nullable (^FBLPromiseReducerBlock)(Value __nullable partial, id next) - NS_SWIFT_UNAVAILABLE(""); - -/** - Sequentially reduces a collection of values to a single promise using a given combining block - and the value `self` resolves with as initial value. - - @param items An array of values to process in order. - @param reducer A block to combine an accumulating value and an element of the sequence into - the new accumulating value or a promise resolved with it, to be used in the next - call of the `reducer` or returned to the caller. - @return A new pending promise returned from the last `reducer` invocation. - Or `self` if `items` is empty. - */ -- (FBLPromise *)reduce:(NSArray *)items - combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE(""); - -/** - Sequentially reduces a collection of values to a single promise using a given combining block - and the value `self` resolves with as initial value. - - @param queue A queue to dispatch on. - @param items An array of values to process in order. - @param reducer A block to combine an accumulating value and an element of the sequence into - the new accumulating value or a promise resolved with it, to be used in the next - call of the `reducer` or returned to the caller. - @return A new pending promise returned from the last `reducer` invocation. - Or `self` if `items` is empty. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - reduce:(NSArray *)items - combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE(""); - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `reduce` operators. - Usage: promise.reduce(values, ^id(id partial, id next) { ... }) - */ -@interface FBLPromise(DotSyntax_ReduceAdditions) - -- (FBLPromise * (^)(NSArray *, FBLPromiseReducerBlock))reduce FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, NSArray *, FBLPromiseReducerBlock))reduceOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Retry.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Retry.h deleted file mode 100644 index 98ef558c..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Retry.h +++ /dev/null @@ -1,165 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** The default number of retry attempts is 1. */ -FOUNDATION_EXTERN NSInteger const FBLPromiseRetryDefaultAttemptsCount NS_REFINED_FOR_SWIFT; - -/** The default delay interval before making a retry attempt is 1.0 second. */ -FOUNDATION_EXTERN NSTimeInterval const FBLPromiseRetryDefaultDelayInterval NS_REFINED_FOR_SWIFT; - -@interface FBLPromise(RetryAdditions) - -typedef id __nullable (^FBLPromiseRetryWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); -typedef BOOL (^FBLPromiseRetryPredicateBlock)(NSInteger, NSError *) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on rejection where the - `work` block is retried after a delay of `FBLPromiseRetryDefaultDelayInterval` second(s). - - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on - rejection where the `work` block is retried on the given `queue` after a delay of - `FBLPromiseRetryDefaultDelayInterval` second(s). - - @param queue A queue to invoke the `work` block on. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. - - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)attempts:(NSInteger)count - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. - - @param queue A queue to invoke the `work` block on. - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - attempts:(NSInteger)count - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. On rejection, the `work` block is retried after the given delay `interval` and will - continue to retry until the number of specified attempts have been exhausted or will bail early if - the given condition is not met. - - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param interval Time to wait before the next retry attempt. - @param predicate Condition to check before the next retry attempt. The predicate block provides the - the number of remaining retry attempts and the error that the promise was rejected - with. - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted or if - the given condition is not met. - */ -+ (FBLPromise *)attempts:(NSInteger)count - delay:(NSTimeInterval)interval - condition:(nullable FBLPromiseRetryPredicateBlock)predicate - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. On rejection, the `work` block is retried after the given - delay `interval` and will continue to retry until the number of specified attempts have been - exhausted or will bail early if the given condition is not met. - - @param queue A queue to invoke the `work` block on. - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param interval Time to wait before the next retry attempt. - @param predicate Condition to check before the next retry attempt. The predicate block provides the - the number of remaining retry attempts and the error that the promise was rejected - with. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted or if - the given condition is not met. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - attempts:(NSInteger)count - delay:(NSTimeInterval)interval - condition:(nullable FBLPromiseRetryPredicateBlock)predicate - retry:(FBLPromiseRetryWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise+Retry` operators. - Usage: FBLPromise.retry(^id { ... }) - */ -@interface FBLPromise(DotSyntax_RetryAdditions) - -+ (FBLPromise * (^)(FBLPromiseRetryWorkBlock))retry FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRetryWorkBlock))retryOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(NSInteger, NSTimeInterval, FBLPromiseRetryPredicateBlock __nullable, - FBLPromiseRetryWorkBlock))retryAgain FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSInteger, NSTimeInterval, - FBLPromiseRetryPredicateBlock __nullable, - FBLPromiseRetryWorkBlock))retryAgainOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Testing.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Testing.h deleted file mode 100644 index 8478ae22..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Testing.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Waits for all scheduled promises blocks. - - @param timeout Maximum time to wait. - @return YES if all promises blocks have completed before the timeout and NO otherwise. - */ -FOUNDATION_EXTERN BOOL FBLWaitForPromisesWithTimeout(NSTimeInterval timeout) NS_REFINED_FOR_SWIFT; - -@interface FBLPromise(TestingAdditions) - -/** - Dispatch group for promises that is typically used to wait for all scheduled blocks. - */ -@property(class, nonatomic, readonly) dispatch_group_t dispatchGroup NS_REFINED_FOR_SWIFT; - -/** - Properties to get the current state of the promise. - */ -@property(nonatomic, readonly) BOOL isPending NS_REFINED_FOR_SWIFT; -@property(nonatomic, readonly) BOOL isFulfilled NS_REFINED_FOR_SWIFT; -@property(nonatomic, readonly) BOOL isRejected NS_REFINED_FOR_SWIFT; - -/** - Value the promise was fulfilled with. - Can be nil if the promise is still pending, was resolved with nil or after it has been rejected. - */ -@property(nonatomic, readonly, nullable) Value value NS_REFINED_FOR_SWIFT; - -/** - Error the promise was rejected with. - Can be nil if the promise is still pending or after it has been fulfilled. - */ -@property(nonatomic, readonly, nullable) NSError *error NS_REFINED_FOR_SWIFT; - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Then.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Then.h deleted file mode 100644 index 32027e69..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Then.h +++ /dev/null @@ -1,63 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ThenAdditions) - -typedef id __nullable (^FBLPromiseThenWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with resolution returned from `work` - block: either value, error or another promise. The `work` block is executed asynchronously only - when the receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with - the same error. - - @param work A block to handle the value that receiver was fulfilled with. - @return A new pending promise to be resolved with resolution returned from the `work` block. - */ -- (FBLPromise *)then:(FBLPromiseThenWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with resolution returned from `work` - block: either value, error or another promise. The `work` block is executed asynchronously when the - receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with the same - error. - - @param queue A queue to invoke the `work` block on. - @param work A block to handle the value that receiver was fulfilled with. - @return A new pending promise to be resolved with resolution returned from the `work` block. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - then:(FBLPromiseThenWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `then` operators. - Usage: promise.then(^id(id value) { ... }) - */ -@interface FBLPromise(DotSyntax_ThenAdditions) - -- (FBLPromise* (^)(FBLPromiseThenWorkBlock))then FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseThenWorkBlock))thenOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Timeout.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Timeout.h deleted file mode 100644 index 184ba166..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Timeout.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(TimeoutAdditions) - -/** - Waits for a promise with the specified `timeout`. - - @param interval Time to wait in seconds. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)timeout:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE(""); - -/** - Waits for a promise with the specified `timeout`. - - @param queue A queue to dispatch on. - @param interval Time to wait in seconds. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - timeout:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `timeout` operators. - Usage: promise.timeout(...) - */ -@interface FBLPromise(DotSyntax_TimeoutAdditions) - -- (FBLPromise* (^)(NSTimeInterval))timeout FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, NSTimeInterval))timeoutOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Validate.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Validate.h deleted file mode 100644 index 9dfa2f16..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Validate.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ValidateAdditions) - -typedef BOOL (^FBLPromiseValidateWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); - -/** - Validates a fulfilled value or rejects the value if it can not be validated. - - @param predicate An expression to validate. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)validate:(FBLPromiseValidateWorkBlock)predicate NS_SWIFT_UNAVAILABLE(""); - -/** - Validates a fulfilled value or rejects the value if it can not be validated. - - @param queue A queue to dispatch on. - @param predicate An expression to validate. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - validate:(FBLPromiseValidateWorkBlock)predicate NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `validate` operators. - Usage: promise.validate(^BOOL(id value) { ... }) - */ -@interface FBLPromise(DotSyntax_ValidateAdditions) - -- (FBLPromise * (^)(FBLPromiseValidateWorkBlock))validate FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseValidateWorkBlock))validateOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Wrap.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Wrap.h deleted file mode 100644 index 664e1bbf..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise+Wrap.h +++ /dev/null @@ -1,316 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Different types of completion handlers available to be wrapped with promise. - */ -typedef void (^FBLPromiseCompletion)(void) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseObjectCompletion)(id __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseErrorCompletion)(NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseObjectOrErrorCompletion)(id __nullable, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseErrorOrObjectCompletion)(NSError* __nullable, id __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromise2ObjectsOrErrorCompletion)(id __nullable, id __nullable, - NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseBoolCompletion)(BOOL) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseBoolOrErrorCompletion)(BOOL, NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseIntegerCompletion)(NSInteger) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseIntegerOrErrorCompletion)(NSInteger, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseDoubleCompletion)(double) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseDoubleOrErrorCompletion)(double, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); - -/** - Provides an easy way to convert methods that use common callback patterns into promises. - */ -@interface FBLPromise(WrapAdditions) - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with `nil` when completion handler is invoked. - */ -+ (instancetype)wrapCompletion:(void (^)(FBLPromiseCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with `nil` when completion handler is invoked. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapCompletion:(void (^)(FBLPromiseCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler. - */ -+ (instancetype)wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error provided by completion handler. - If error is `nil`, fulfills with `nil`, otherwise rejects with the error. - */ -+ (instancetype)wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error provided by completion handler. - If error is `nil`, fulfills with `nil`, otherwise rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler if error is `nil`. - Otherwise, rejects with the error. - */ -+ (instancetype)wrapObjectOrErrorCompletion: - (void (^)(FBLPromiseObjectOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler if error is `nil`. - Otherwise, rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapObjectOrErrorCompletion:(void (^)(FBLPromiseObjectOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error or object provided by completion handler. If error - is not `nil`, rejects with the error. - */ -+ (instancetype)wrapErrorOrObjectCompletion: - (void (^)(FBLPromiseErrorOrObjectCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error or object provided by completion handler. If error - is not `nil`, rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapErrorOrObjectCompletion:(void (^)(FBLPromiseErrorOrObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an array of objects provided by completion handler in order - if error is `nil`. Otherwise, rejects with the error. - */ -+ (FBLPromise*)wrap2ObjectsOrErrorCompletion: - (void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an array of objects provided by completion handler in order - if error is `nil`. Otherwise, rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrap2ObjectsOrErrorCompletion:(void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO. - */ -+ (FBLPromise*)wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapBoolOrErrorCompletion: - (void (^)(FBLPromiseBoolOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapBoolOrErrorCompletion:(void (^)(FBLPromiseBoolOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer. - */ -+ (FBLPromise*)wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapIntegerOrErrorCompletion: - (void (^)(FBLPromiseIntegerOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapIntegerOrErrorCompletion:(void (^)(FBLPromiseIntegerOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double. - */ -+ (FBLPromise*)wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapDoubleOrErrorCompletion: - (void (^)(FBLPromiseDoubleOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapDoubleOrErrorCompletion:(void (^)(FBLPromiseDoubleOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `wrap` operators. - Usage: FBLPromise.wrapCompletion(^(FBLPromiseCompletion handler) {...}) - */ -@interface FBLPromise(DotSyntax_WrapAdditions) - -+ (FBLPromise* (^)(void (^)(FBLPromiseCompletion)))wrapCompletion FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseCompletion)))wrapCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletion FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromise2ObjectsOrErrorCompletion))) - wrap2ObjectsOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromise2ObjectsOrErrorCompletion))) - wrap2ObjectsOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseIntegerOrErrorCompletion))) - wrapIntegerOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseIntegerOrErrorCompletion))) - wrapIntegerOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseDoubleOrErrorCompletion))) - wrapDoubleOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseDoubleOrErrorCompletion))) - wrapDoubleOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise.h deleted file mode 100644 index b1380dc7..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromise.h +++ /dev/null @@ -1,93 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromiseError.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Promises synchronization construct in Objective-C. - */ -@interface FBLPromise<__covariant Value> : NSObject - -/** - Default dispatch queue used for `FBLPromise`, which is `main` if a queue is not specified. - */ -@property(class) dispatch_queue_t defaultDispatchQueue NS_REFINED_FOR_SWIFT; - -/** - Creates a pending promise. - */ -+ (instancetype)pendingPromise NS_REFINED_FOR_SWIFT; - -/** - Creates a resolved promise. - - @param resolution An object to resolve the promise with: either a value or an error. - @return A new resolved promise. - */ -+ (instancetype)resolvedWith:(nullable id)resolution NS_REFINED_FOR_SWIFT; - -/** - Synchronously fulfills the promise with a value. - - @param value An arbitrary value to fulfill the promise with, including `nil`. - */ -- (void)fulfill:(nullable Value)value NS_REFINED_FOR_SWIFT; - -/** - Synchronously rejects the promise with an error. - - @param error An error to reject the promise with. - */ -- (void)reject:(NSError *)error NS_REFINED_FOR_SWIFT; - -+ (instancetype)new NS_UNAVAILABLE; -- (instancetype)init NS_UNAVAILABLE; -@end - -@interface FBLPromise() - -/** - Adds an object to the set of pending objects to keep strongly while the promise is pending. - Used by the Swift wrappers to keep them alive until the underlying ObjC promise is resolved. - - @param object An object to add. - */ -- (void)addPendingObject:(id)object NS_REFINED_FOR_SWIFT; - -@end - -#ifdef FBL_PROMISES_DOT_SYNTAX_IS_DEPRECATED -#define FBL_PROMISES_DOT_SYNTAX __attribute__((deprecated)) -#else -#define FBL_PROMISES_DOT_SYNTAX -#endif - -@interface FBLPromise(DotSyntaxAdditions) - -/** - Convenience dot-syntax wrappers for FBLPromise. - Usage: FBLPromise.pending() - FBLPromise.resolved(value) - - */ -+ (instancetype (^)(void))pending FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (instancetype (^)(id __nullable))resolved FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromiseError.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromiseError.h deleted file mode 100644 index d37af536..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromiseError.h +++ /dev/null @@ -1,43 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -NS_ASSUME_NONNULL_BEGIN - -FOUNDATION_EXTERN NSErrorDomain const FBLPromiseErrorDomain NS_REFINED_FOR_SWIFT; - -/** - Possible error codes in `FBLPromiseErrorDomain`. - */ -typedef NS_ENUM(NSInteger, FBLPromiseErrorCode) { - /** Promise failed to resolve in time. */ - FBLPromiseErrorCodeTimedOut = 1, - /** Validation predicate returned false. */ - FBLPromiseErrorCodeValidationFailure = 2, -} NS_REFINED_FOR_SWIFT; - -NS_INLINE BOOL FBLPromiseErrorIsTimedOut(NSError *error) NS_SWIFT_UNAVAILABLE("") { - return error.domain == FBLPromiseErrorDomain && - error.code == FBLPromiseErrorCodeTimedOut; -} - -NS_INLINE BOOL FBLPromiseErrorIsValidationFailure(NSError *error) NS_SWIFT_UNAVAILABLE("") { - return error.domain == FBLPromiseErrorDomain && - error.code == FBLPromiseErrorCodeValidationFailure; -} - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromises.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromises.h deleted file mode 100644 index 2d90badb..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/FBLPromises.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise+All.h" -#import "FBLPromise+Always.h" -#import "FBLPromise+Any.h" -#import "FBLPromise+Async.h" -#import "FBLPromise+Await.h" -#import "FBLPromise+Catch.h" -#import "FBLPromise+Delay.h" -#import "FBLPromise+Do.h" -#import "FBLPromise+Race.h" -#import "FBLPromise+Recover.h" -#import "FBLPromise+Reduce.h" -#import "FBLPromise+Retry.h" -#import "FBLPromise+Then.h" -#import "FBLPromise+Timeout.h" -#import "FBLPromise+Validate.h" -#import "FBLPromise+Wrap.h" diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/PromisesObjC-umbrella.h b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/PromisesObjC-umbrella.h deleted file mode 100644 index 7447f7c9..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Headers/PromisesObjC-umbrella.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "FBLPromise+All.h" -#import "FBLPromise+Always.h" -#import "FBLPromise+Any.h" -#import "FBLPromise+Async.h" -#import "FBLPromise+Await.h" -#import "FBLPromise+Catch.h" -#import "FBLPromise+Delay.h" -#import "FBLPromise+Do.h" -#import "FBLPromise+Race.h" -#import "FBLPromise+Recover.h" -#import "FBLPromise+Reduce.h" -#import "FBLPromise+Retry.h" -#import "FBLPromise+Testing.h" -#import "FBLPromise+Then.h" -#import "FBLPromise+Timeout.h" -#import "FBLPromise+Validate.h" -#import "FBLPromise+Wrap.h" -#import "FBLPromise.h" -#import "FBLPromiseError.h" -#import "FBLPromises.h" - -FOUNDATION_EXPORT double FBLPromisesVersionNumber; -FOUNDATION_EXPORT const unsigned char FBLPromisesVersionString[]; - diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Info.plist b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Info.plist deleted file mode 100644 index 6db2f5f5..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleExecutable - FBLPromises - CFBundleIdentifier - com.firebase.Firebase-FBLPromises - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - FBLPromises - CFBundlePackageType - FMWK - CFBundleVersion - 2.1.1 - DTSDKName - iphonesimulator11.2 - - diff --git a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Modules/module.modulemap b/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Modules/module.modulemap deleted file mode 100644 index bd7b48e1..00000000 --- a/ios/platform/FBLPromises.xcframework/macos-arm64_x86_64/FBLPromises.framework/Modules/module.modulemap +++ /dev/null @@ -1,5 +0,0 @@ -framework module PromisesObjC { -umbrella header "PromisesObjC-umbrella.h" -export * -module * { export * } -} diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/FBLPromises b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/FBLPromises deleted file mode 100644 index 4d0100e2a1aa0c76e8ae5fb0d6ddfc3a3b66a296..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238840 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 uUAk@Znj-1NO)=HM(AllAdditions) - -/** - Wait until all of the given promises are fulfilled. - If one of the given promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param promises Promises to wait for. - @return Promise of an array containing the values of input promises in the same order. - */ -+ (FBLPromise *)all:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Wait until all of the given promises are fulfilled. - If one of the given promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected FBLPromise correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return Promise of an array containing the values of input promises in the same order. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - all:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `all` operators. - Usage: FBLPromise.all(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_AllAdditions) - -+ (FBLPromise * (^)(NSArray *))all FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))allOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Always.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Always.h deleted file mode 100644 index 13000f5b..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Always.h +++ /dev/null @@ -1,54 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AlwaysAdditions) - -typedef void (^FBLPromiseAlwaysWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block that always executes, no matter if the receiver is rejected or fulfilled. - @return A new pending promise to be resolved with same resolution as the receiver. - */ -- (FBLPromise *)always:(FBLPromiseAlwaysWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to dispatch on. - @param work A block that always executes, no matter if the receiver is rejected or fulfilled. - @return A new pending promise to be resolved with same resolution as the receiver. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - always:(FBLPromiseAlwaysWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `always` operators. - Usage: promise.always(^{...}) - */ -@interface FBLPromise(DotSyntax_AlwaysAdditions) - -- (FBLPromise* (^)(FBLPromiseAlwaysWorkBlock))always FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAlwaysWorkBlock))alwaysOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Any.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Any.h deleted file mode 100644 index 82875bf7..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Any.h +++ /dev/null @@ -1,69 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AnyAdditions) - -/** - Waits until all of the given promises are either fulfilled or rejected. - If all promises are rejected, then the returned promise is rejected with same error - as the last one rejected. - If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of - values or `NSErrors`, matching the original order of fulfilled or rejected promises respectively. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param promises Promises to wait for. - @return Promise of array containing the values or `NSError`s of input promises in the same order. - */ -+ (FBLPromise *)any:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Waits until all of the given promises are either fulfilled or rejected. - If all promises are rejected, then the returned promise is rejected with same error - as the last one rejected. - If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of - values or `NSError`s, matching the original order of fulfilled or rejected promises respectively. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return Promise of array containing the values or `NSError`s of input promises in the same order. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - any:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `any` operators. - Usage: FBLPromise.any(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_AnyAdditions) - -+ (FBLPromise * (^)(NSArray *))any FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))anyOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Async.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Async.h deleted file mode 100644 index 0588a9ea..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Async.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AsyncAdditions) - -typedef void (^FBLPromiseFulfillBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseRejectBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseAsyncWorkBlock)(FBLPromiseFulfillBlock fulfill, - FBLPromiseRejectBlock reject) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously. - - @param work A block to perform any operations needed to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)async:(FBLPromiseAsyncWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously on the given queue. - - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - async:(FBLPromiseAsyncWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `async` operators. - Usage: FBLPromise.async(^(FBLPromiseFulfillBlock fulfill, FBLPromiseRejectBlock reject) { ... }) - */ -@interface FBLPromise(DotSyntax_AsyncAdditions) - -+ (FBLPromise* (^)(FBLPromiseAsyncWorkBlock))async FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAsyncWorkBlock))asyncOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Await.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Await.h deleted file mode 100644 index c97a1baf..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Await.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Waits for promise resolution. The current thread blocks until the promise is resolved. - - @param promise Promise to wait for. - @param error Error the promise was rejected with, or `nil` if the promise was fulfilled. - @return Value the promise was fulfilled with. If the promise was rejected, the return value - is always `nil`, but the error out arg is not. - */ -FOUNDATION_EXTERN id __nullable FBLPromiseAwait(FBLPromise *promise, - NSError **error) NS_REFINED_FOR_SWIFT; - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Catch.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Catch.h deleted file mode 100644 index a9ff170f..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Catch.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(CatchAdditions) - -typedef void (^FBLPromiseCatchWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with same resolution as the receiver. - If receiver is rejected, then `reject` block is executed asynchronously. - - @param reject A block to handle the error that receiver was rejected with. - @return A new pending promise. - */ -- (FBLPromise *)catch:(FBLPromiseCatchWorkBlock)reject NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with same resolution as the receiver. - If receiver is rejected, then `reject` block is executed asynchronously on the given queue. - - @param queue A queue to invoke the `reject` block on. - @param reject A block to handle the error that receiver was rejected with. - @return A new pending promise. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - catch:(FBLPromiseCatchWorkBlock)reject NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `catch` operators. - Usage: promise.catch(^(NSError *error) { ... }) - */ -@interface FBLPromise(DotSyntax_CatchAdditions) - -- (FBLPromise* (^)(FBLPromiseCatchWorkBlock))catch FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseCatchWorkBlock))catchOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Delay.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Delay.h deleted file mode 100644 index 557df485..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Delay.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(DelayAdditions) - -/** - Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or - rejects with the same error immediately. - - @param interval Time to wait in seconds. - @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects - with the same error immediately. - */ -- (FBLPromise *)delay:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or - rejects with the same error immediately. - - @param queue A queue to dispatch on. - @param interval Time to wait in seconds. - @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects - with the same error immediately. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - delay:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `delay` operators. - Usage: promise.delay(...) - */ -@interface FBLPromise(DotSyntax_DelayAdditions) - -- (FBLPromise * (^)(NSTimeInterval))delay FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, NSTimeInterval))delayOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Do.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Do.h deleted file mode 100644 index 6838e0ad..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Do.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(DoAdditions) - -typedef id __nullable (^FBLPromiseDoWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously. - - @param work A block that returns a value or an error used to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)do:(FBLPromiseDoWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously on the given queue. - - @param queue A queue to invoke the `work` block on. - @param work A block that returns a value or an error used to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue do:(FBLPromiseDoWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `do` operators. - Usage: FBLPromise.doOn(queue, ^(NSError *error) { ... }) - */ -@interface FBLPromise(DotSyntax_DoAdditions) - -+ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseDoWorkBlock))doOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Race.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Race.h deleted file mode 100644 index 2f67258d..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Race.h +++ /dev/null @@ -1,62 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(RaceAdditions) - -/** - Wait until any of the given promises are fulfilled. - If one of the promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - - @param promises Promises to wait for. - @return A new pending promise to be resolved with the same resolution as the first promise, among - the given ones, which was resolved. - */ -+ (instancetype)race:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Wait until any of the given promises are fulfilled. - If one of the promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return A new pending promise to be resolved with the same resolution as the first promise, among - the given ones, which was resolved. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue race:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `race` operators. - Usage: FBLPromise.race(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_RaceAdditions) - -+ (FBLPromise * (^)(NSArray *))race FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))raceOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Recover.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Recover.h deleted file mode 100644 index bb7df7ec..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Recover.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(RecoverAdditions) - -typedef id __nullable (^FBLPromiseRecoverWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); - -/** - Provides a new promise to recover in case the receiver gets rejected. - - @param recovery A block to handle the error that the receiver was rejected with. - @return A new pending promise to use instead of the rejected one that gets resolved with resolution - returned from `recovery` block. - */ -- (FBLPromise *)recover:(FBLPromiseRecoverWorkBlock)recovery NS_SWIFT_UNAVAILABLE(""); - -/** - Provides a new promise to recover in case the receiver gets rejected. - - @param queue A queue to dispatch on. - @param recovery A block to handle the error that the receiver was rejected with. - @return A new pending promise to use instead of the rejected one that gets resolved with resolution - returned from `recovery` block. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - recover:(FBLPromiseRecoverWorkBlock)recovery NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `recover` operators. - Usage: promise.recover(^id(NSError *error) {...}) - */ -@interface FBLPromise(DotSyntax_RecoverAdditions) - -- (FBLPromise * (^)(FBLPromiseRecoverWorkBlock))recover FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRecoverWorkBlock))recoverOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Reduce.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Reduce.h deleted file mode 100644 index 5bb1eeee..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Reduce.h +++ /dev/null @@ -1,71 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ReduceAdditions) - -typedef id __nullable (^FBLPromiseReducerBlock)(Value __nullable partial, id next) - NS_SWIFT_UNAVAILABLE(""); - -/** - Sequentially reduces a collection of values to a single promise using a given combining block - and the value `self` resolves with as initial value. - - @param items An array of values to process in order. - @param reducer A block to combine an accumulating value and an element of the sequence into - the new accumulating value or a promise resolved with it, to be used in the next - call of the `reducer` or returned to the caller. - @return A new pending promise returned from the last `reducer` invocation. - Or `self` if `items` is empty. - */ -- (FBLPromise *)reduce:(NSArray *)items - combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE(""); - -/** - Sequentially reduces a collection of values to a single promise using a given combining block - and the value `self` resolves with as initial value. - - @param queue A queue to dispatch on. - @param items An array of values to process in order. - @param reducer A block to combine an accumulating value and an element of the sequence into - the new accumulating value or a promise resolved with it, to be used in the next - call of the `reducer` or returned to the caller. - @return A new pending promise returned from the last `reducer` invocation. - Or `self` if `items` is empty. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - reduce:(NSArray *)items - combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE(""); - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `reduce` operators. - Usage: promise.reduce(values, ^id(id partial, id next) { ... }) - */ -@interface FBLPromise(DotSyntax_ReduceAdditions) - -- (FBLPromise * (^)(NSArray *, FBLPromiseReducerBlock))reduce FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, NSArray *, FBLPromiseReducerBlock))reduceOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Retry.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Retry.h deleted file mode 100644 index 98ef558c..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Retry.h +++ /dev/null @@ -1,165 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** The default number of retry attempts is 1. */ -FOUNDATION_EXTERN NSInteger const FBLPromiseRetryDefaultAttemptsCount NS_REFINED_FOR_SWIFT; - -/** The default delay interval before making a retry attempt is 1.0 second. */ -FOUNDATION_EXTERN NSTimeInterval const FBLPromiseRetryDefaultDelayInterval NS_REFINED_FOR_SWIFT; - -@interface FBLPromise(RetryAdditions) - -typedef id __nullable (^FBLPromiseRetryWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); -typedef BOOL (^FBLPromiseRetryPredicateBlock)(NSInteger, NSError *) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on rejection where the - `work` block is retried after a delay of `FBLPromiseRetryDefaultDelayInterval` second(s). - - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on - rejection where the `work` block is retried on the given `queue` after a delay of - `FBLPromiseRetryDefaultDelayInterval` second(s). - - @param queue A queue to invoke the `work` block on. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. - - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)attempts:(NSInteger)count - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. - - @param queue A queue to invoke the `work` block on. - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - attempts:(NSInteger)count - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. On rejection, the `work` block is retried after the given delay `interval` and will - continue to retry until the number of specified attempts have been exhausted or will bail early if - the given condition is not met. - - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param interval Time to wait before the next retry attempt. - @param predicate Condition to check before the next retry attempt. The predicate block provides the - the number of remaining retry attempts and the error that the promise was rejected - with. - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted or if - the given condition is not met. - */ -+ (FBLPromise *)attempts:(NSInteger)count - delay:(NSTimeInterval)interval - condition:(nullable FBLPromiseRetryPredicateBlock)predicate - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. On rejection, the `work` block is retried after the given - delay `interval` and will continue to retry until the number of specified attempts have been - exhausted or will bail early if the given condition is not met. - - @param queue A queue to invoke the `work` block on. - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param interval Time to wait before the next retry attempt. - @param predicate Condition to check before the next retry attempt. The predicate block provides the - the number of remaining retry attempts and the error that the promise was rejected - with. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted or if - the given condition is not met. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - attempts:(NSInteger)count - delay:(NSTimeInterval)interval - condition:(nullable FBLPromiseRetryPredicateBlock)predicate - retry:(FBLPromiseRetryWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise+Retry` operators. - Usage: FBLPromise.retry(^id { ... }) - */ -@interface FBLPromise(DotSyntax_RetryAdditions) - -+ (FBLPromise * (^)(FBLPromiseRetryWorkBlock))retry FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRetryWorkBlock))retryOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(NSInteger, NSTimeInterval, FBLPromiseRetryPredicateBlock __nullable, - FBLPromiseRetryWorkBlock))retryAgain FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSInteger, NSTimeInterval, - FBLPromiseRetryPredicateBlock __nullable, - FBLPromiseRetryWorkBlock))retryAgainOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Testing.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Testing.h deleted file mode 100644 index 8478ae22..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Testing.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Waits for all scheduled promises blocks. - - @param timeout Maximum time to wait. - @return YES if all promises blocks have completed before the timeout and NO otherwise. - */ -FOUNDATION_EXTERN BOOL FBLWaitForPromisesWithTimeout(NSTimeInterval timeout) NS_REFINED_FOR_SWIFT; - -@interface FBLPromise(TestingAdditions) - -/** - Dispatch group for promises that is typically used to wait for all scheduled blocks. - */ -@property(class, nonatomic, readonly) dispatch_group_t dispatchGroup NS_REFINED_FOR_SWIFT; - -/** - Properties to get the current state of the promise. - */ -@property(nonatomic, readonly) BOOL isPending NS_REFINED_FOR_SWIFT; -@property(nonatomic, readonly) BOOL isFulfilled NS_REFINED_FOR_SWIFT; -@property(nonatomic, readonly) BOOL isRejected NS_REFINED_FOR_SWIFT; - -/** - Value the promise was fulfilled with. - Can be nil if the promise is still pending, was resolved with nil or after it has been rejected. - */ -@property(nonatomic, readonly, nullable) Value value NS_REFINED_FOR_SWIFT; - -/** - Error the promise was rejected with. - Can be nil if the promise is still pending or after it has been fulfilled. - */ -@property(nonatomic, readonly, nullable) NSError *error NS_REFINED_FOR_SWIFT; - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Then.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Then.h deleted file mode 100644 index 32027e69..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Then.h +++ /dev/null @@ -1,63 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ThenAdditions) - -typedef id __nullable (^FBLPromiseThenWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with resolution returned from `work` - block: either value, error or another promise. The `work` block is executed asynchronously only - when the receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with - the same error. - - @param work A block to handle the value that receiver was fulfilled with. - @return A new pending promise to be resolved with resolution returned from the `work` block. - */ -- (FBLPromise *)then:(FBLPromiseThenWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with resolution returned from `work` - block: either value, error or another promise. The `work` block is executed asynchronously when the - receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with the same - error. - - @param queue A queue to invoke the `work` block on. - @param work A block to handle the value that receiver was fulfilled with. - @return A new pending promise to be resolved with resolution returned from the `work` block. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - then:(FBLPromiseThenWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `then` operators. - Usage: promise.then(^id(id value) { ... }) - */ -@interface FBLPromise(DotSyntax_ThenAdditions) - -- (FBLPromise* (^)(FBLPromiseThenWorkBlock))then FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseThenWorkBlock))thenOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Timeout.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Timeout.h deleted file mode 100644 index 184ba166..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Timeout.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(TimeoutAdditions) - -/** - Waits for a promise with the specified `timeout`. - - @param interval Time to wait in seconds. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)timeout:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE(""); - -/** - Waits for a promise with the specified `timeout`. - - @param queue A queue to dispatch on. - @param interval Time to wait in seconds. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - timeout:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `timeout` operators. - Usage: promise.timeout(...) - */ -@interface FBLPromise(DotSyntax_TimeoutAdditions) - -- (FBLPromise* (^)(NSTimeInterval))timeout FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, NSTimeInterval))timeoutOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Validate.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Validate.h deleted file mode 100644 index 9dfa2f16..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Validate.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ValidateAdditions) - -typedef BOOL (^FBLPromiseValidateWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); - -/** - Validates a fulfilled value or rejects the value if it can not be validated. - - @param predicate An expression to validate. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)validate:(FBLPromiseValidateWorkBlock)predicate NS_SWIFT_UNAVAILABLE(""); - -/** - Validates a fulfilled value or rejects the value if it can not be validated. - - @param queue A queue to dispatch on. - @param predicate An expression to validate. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - validate:(FBLPromiseValidateWorkBlock)predicate NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `validate` operators. - Usage: promise.validate(^BOOL(id value) { ... }) - */ -@interface FBLPromise(DotSyntax_ValidateAdditions) - -- (FBLPromise * (^)(FBLPromiseValidateWorkBlock))validate FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseValidateWorkBlock))validateOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Wrap.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Wrap.h deleted file mode 100644 index 664e1bbf..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise+Wrap.h +++ /dev/null @@ -1,316 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Different types of completion handlers available to be wrapped with promise. - */ -typedef void (^FBLPromiseCompletion)(void) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseObjectCompletion)(id __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseErrorCompletion)(NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseObjectOrErrorCompletion)(id __nullable, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseErrorOrObjectCompletion)(NSError* __nullable, id __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromise2ObjectsOrErrorCompletion)(id __nullable, id __nullable, - NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseBoolCompletion)(BOOL) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseBoolOrErrorCompletion)(BOOL, NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseIntegerCompletion)(NSInteger) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseIntegerOrErrorCompletion)(NSInteger, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseDoubleCompletion)(double) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseDoubleOrErrorCompletion)(double, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); - -/** - Provides an easy way to convert methods that use common callback patterns into promises. - */ -@interface FBLPromise(WrapAdditions) - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with `nil` when completion handler is invoked. - */ -+ (instancetype)wrapCompletion:(void (^)(FBLPromiseCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with `nil` when completion handler is invoked. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapCompletion:(void (^)(FBLPromiseCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler. - */ -+ (instancetype)wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error provided by completion handler. - If error is `nil`, fulfills with `nil`, otherwise rejects with the error. - */ -+ (instancetype)wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error provided by completion handler. - If error is `nil`, fulfills with `nil`, otherwise rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler if error is `nil`. - Otherwise, rejects with the error. - */ -+ (instancetype)wrapObjectOrErrorCompletion: - (void (^)(FBLPromiseObjectOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler if error is `nil`. - Otherwise, rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapObjectOrErrorCompletion:(void (^)(FBLPromiseObjectOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error or object provided by completion handler. If error - is not `nil`, rejects with the error. - */ -+ (instancetype)wrapErrorOrObjectCompletion: - (void (^)(FBLPromiseErrorOrObjectCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error or object provided by completion handler. If error - is not `nil`, rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapErrorOrObjectCompletion:(void (^)(FBLPromiseErrorOrObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an array of objects provided by completion handler in order - if error is `nil`. Otherwise, rejects with the error. - */ -+ (FBLPromise*)wrap2ObjectsOrErrorCompletion: - (void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an array of objects provided by completion handler in order - if error is `nil`. Otherwise, rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrap2ObjectsOrErrorCompletion:(void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO. - */ -+ (FBLPromise*)wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapBoolOrErrorCompletion: - (void (^)(FBLPromiseBoolOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapBoolOrErrorCompletion:(void (^)(FBLPromiseBoolOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer. - */ -+ (FBLPromise*)wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapIntegerOrErrorCompletion: - (void (^)(FBLPromiseIntegerOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapIntegerOrErrorCompletion:(void (^)(FBLPromiseIntegerOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double. - */ -+ (FBLPromise*)wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapDoubleOrErrorCompletion: - (void (^)(FBLPromiseDoubleOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapDoubleOrErrorCompletion:(void (^)(FBLPromiseDoubleOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `wrap` operators. - Usage: FBLPromise.wrapCompletion(^(FBLPromiseCompletion handler) {...}) - */ -@interface FBLPromise(DotSyntax_WrapAdditions) - -+ (FBLPromise* (^)(void (^)(FBLPromiseCompletion)))wrapCompletion FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseCompletion)))wrapCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletion FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromise2ObjectsOrErrorCompletion))) - wrap2ObjectsOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromise2ObjectsOrErrorCompletion))) - wrap2ObjectsOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseIntegerOrErrorCompletion))) - wrapIntegerOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseIntegerOrErrorCompletion))) - wrapIntegerOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseDoubleOrErrorCompletion))) - wrapDoubleOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseDoubleOrErrorCompletion))) - wrapDoubleOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise.h deleted file mode 100644 index b1380dc7..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromise.h +++ /dev/null @@ -1,93 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromiseError.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Promises synchronization construct in Objective-C. - */ -@interface FBLPromise<__covariant Value> : NSObject - -/** - Default dispatch queue used for `FBLPromise`, which is `main` if a queue is not specified. - */ -@property(class) dispatch_queue_t defaultDispatchQueue NS_REFINED_FOR_SWIFT; - -/** - Creates a pending promise. - */ -+ (instancetype)pendingPromise NS_REFINED_FOR_SWIFT; - -/** - Creates a resolved promise. - - @param resolution An object to resolve the promise with: either a value or an error. - @return A new resolved promise. - */ -+ (instancetype)resolvedWith:(nullable id)resolution NS_REFINED_FOR_SWIFT; - -/** - Synchronously fulfills the promise with a value. - - @param value An arbitrary value to fulfill the promise with, including `nil`. - */ -- (void)fulfill:(nullable Value)value NS_REFINED_FOR_SWIFT; - -/** - Synchronously rejects the promise with an error. - - @param error An error to reject the promise with. - */ -- (void)reject:(NSError *)error NS_REFINED_FOR_SWIFT; - -+ (instancetype)new NS_UNAVAILABLE; -- (instancetype)init NS_UNAVAILABLE; -@end - -@interface FBLPromise() - -/** - Adds an object to the set of pending objects to keep strongly while the promise is pending. - Used by the Swift wrappers to keep them alive until the underlying ObjC promise is resolved. - - @param object An object to add. - */ -- (void)addPendingObject:(id)object NS_REFINED_FOR_SWIFT; - -@end - -#ifdef FBL_PROMISES_DOT_SYNTAX_IS_DEPRECATED -#define FBL_PROMISES_DOT_SYNTAX __attribute__((deprecated)) -#else -#define FBL_PROMISES_DOT_SYNTAX -#endif - -@interface FBLPromise(DotSyntaxAdditions) - -/** - Convenience dot-syntax wrappers for FBLPromise. - Usage: FBLPromise.pending() - FBLPromise.resolved(value) - - */ -+ (instancetype (^)(void))pending FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (instancetype (^)(id __nullable))resolved FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromiseError.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromiseError.h deleted file mode 100644 index d37af536..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromiseError.h +++ /dev/null @@ -1,43 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -NS_ASSUME_NONNULL_BEGIN - -FOUNDATION_EXTERN NSErrorDomain const FBLPromiseErrorDomain NS_REFINED_FOR_SWIFT; - -/** - Possible error codes in `FBLPromiseErrorDomain`. - */ -typedef NS_ENUM(NSInteger, FBLPromiseErrorCode) { - /** Promise failed to resolve in time. */ - FBLPromiseErrorCodeTimedOut = 1, - /** Validation predicate returned false. */ - FBLPromiseErrorCodeValidationFailure = 2, -} NS_REFINED_FOR_SWIFT; - -NS_INLINE BOOL FBLPromiseErrorIsTimedOut(NSError *error) NS_SWIFT_UNAVAILABLE("") { - return error.domain == FBLPromiseErrorDomain && - error.code == FBLPromiseErrorCodeTimedOut; -} - -NS_INLINE BOOL FBLPromiseErrorIsValidationFailure(NSError *error) NS_SWIFT_UNAVAILABLE("") { - return error.domain == FBLPromiseErrorDomain && - error.code == FBLPromiseErrorCodeValidationFailure; -} - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromises.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromises.h deleted file mode 100644 index 2d90badb..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/FBLPromises.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise+All.h" -#import "FBLPromise+Always.h" -#import "FBLPromise+Any.h" -#import "FBLPromise+Async.h" -#import "FBLPromise+Await.h" -#import "FBLPromise+Catch.h" -#import "FBLPromise+Delay.h" -#import "FBLPromise+Do.h" -#import "FBLPromise+Race.h" -#import "FBLPromise+Recover.h" -#import "FBLPromise+Reduce.h" -#import "FBLPromise+Retry.h" -#import "FBLPromise+Then.h" -#import "FBLPromise+Timeout.h" -#import "FBLPromise+Validate.h" -#import "FBLPromise+Wrap.h" diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/PromisesObjC-umbrella.h b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/PromisesObjC-umbrella.h deleted file mode 100644 index 5b014a8b..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Headers/PromisesObjC-umbrella.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "FBLPromise+All.h" -#import "FBLPromise+Always.h" -#import "FBLPromise+Any.h" -#import "FBLPromise+Async.h" -#import "FBLPromise+Await.h" -#import "FBLPromise+Catch.h" -#import "FBLPromise+Delay.h" -#import "FBLPromise+Do.h" -#import "FBLPromise+Race.h" -#import "FBLPromise+Recover.h" -#import "FBLPromise+Reduce.h" -#import "FBLPromise+Retry.h" -#import "FBLPromise+Testing.h" -#import "FBLPromise+Then.h" -#import "FBLPromise+Timeout.h" -#import "FBLPromise+Validate.h" -#import "FBLPromise+Wrap.h" -#import "FBLPromise.h" -#import "FBLPromiseError.h" -#import "FBLPromises.h" - -FOUNDATION_EXPORT double FBLPromisesVersionNumber; -FOUNDATION_EXPORT const unsigned char FBLPromisesVersionString[]; - diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Info.plist b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Info.plist deleted file mode 100644 index 6db2f5f5..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleExecutable - FBLPromises - CFBundleIdentifier - com.firebase.Firebase-FBLPromises - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - FBLPromises - CFBundlePackageType - FMWK - CFBundleVersion - 2.1.1 - DTSDKName - iphonesimulator11.2 - - diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Modules/module.modulemap b/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Modules/module.modulemap deleted file mode 100644 index bd7b48e1..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64/FBLPromises.framework/Modules/module.modulemap +++ /dev/null @@ -1,5 +0,0 @@ -framework module PromisesObjC { -umbrella header "PromisesObjC-umbrella.h" -export * -module * { export * } -} diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/FBLPromises b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/FBLPromises deleted file mode 100644 index 785d160f5d65944cde956561211f4db395ab1340..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449360 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≦ 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 - -/** - Wait until all of the given promises are fulfilled. - If one of the given promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param promises Promises to wait for. - @return Promise of an array containing the values of input promises in the same order. - */ -+ (FBLPromise *)all:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Wait until all of the given promises are fulfilled. - If one of the given promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected FBLPromise correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return Promise of an array containing the values of input promises in the same order. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - all:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `all` operators. - Usage: FBLPromise.all(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_AllAdditions) - -+ (FBLPromise * (^)(NSArray *))all FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))allOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Always.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Always.h deleted file mode 100644 index 13000f5b..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Always.h +++ /dev/null @@ -1,54 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AlwaysAdditions) - -typedef void (^FBLPromiseAlwaysWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block that always executes, no matter if the receiver is rejected or fulfilled. - @return A new pending promise to be resolved with same resolution as the receiver. - */ -- (FBLPromise *)always:(FBLPromiseAlwaysWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to dispatch on. - @param work A block that always executes, no matter if the receiver is rejected or fulfilled. - @return A new pending promise to be resolved with same resolution as the receiver. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - always:(FBLPromiseAlwaysWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `always` operators. - Usage: promise.always(^{...}) - */ -@interface FBLPromise(DotSyntax_AlwaysAdditions) - -- (FBLPromise* (^)(FBLPromiseAlwaysWorkBlock))always FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAlwaysWorkBlock))alwaysOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Any.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Any.h deleted file mode 100644 index 82875bf7..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Any.h +++ /dev/null @@ -1,69 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AnyAdditions) - -/** - Waits until all of the given promises are either fulfilled or rejected. - If all promises are rejected, then the returned promise is rejected with same error - as the last one rejected. - If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of - values or `NSErrors`, matching the original order of fulfilled or rejected promises respectively. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param promises Promises to wait for. - @return Promise of array containing the values or `NSError`s of input promises in the same order. - */ -+ (FBLPromise *)any:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Waits until all of the given promises are either fulfilled or rejected. - If all promises are rejected, then the returned promise is rejected with same error - as the last one rejected. - If at least one of the promises is fulfilled, the resulting promise is fulfilled with an array of - values or `NSError`s, matching the original order of fulfilled or rejected promises respectively. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - Promises resolved with `nil` become `NSNull` instances in the resulting array. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return Promise of array containing the values or `NSError`s of input promises in the same order. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - any:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `any` operators. - Usage: FBLPromise.any(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_AnyAdditions) - -+ (FBLPromise * (^)(NSArray *))any FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))anyOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Async.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Async.h deleted file mode 100644 index 0588a9ea..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Async.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(AsyncAdditions) - -typedef void (^FBLPromiseFulfillBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseRejectBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseAsyncWorkBlock)(FBLPromiseFulfillBlock fulfill, - FBLPromiseRejectBlock reject) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously. - - @param work A block to perform any operations needed to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)async:(FBLPromiseAsyncWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously on the given queue. - - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - async:(FBLPromiseAsyncWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `async` operators. - Usage: FBLPromise.async(^(FBLPromiseFulfillBlock fulfill, FBLPromiseRejectBlock reject) { ... }) - */ -@interface FBLPromise(DotSyntax_AsyncAdditions) - -+ (FBLPromise* (^)(FBLPromiseAsyncWorkBlock))async FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, FBLPromiseAsyncWorkBlock))asyncOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Await.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Await.h deleted file mode 100644 index c97a1baf..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Await.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Waits for promise resolution. The current thread blocks until the promise is resolved. - - @param promise Promise to wait for. - @param error Error the promise was rejected with, or `nil` if the promise was fulfilled. - @return Value the promise was fulfilled with. If the promise was rejected, the return value - is always `nil`, but the error out arg is not. - */ -FOUNDATION_EXTERN id __nullable FBLPromiseAwait(FBLPromise *promise, - NSError **error) NS_REFINED_FOR_SWIFT; - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Catch.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Catch.h deleted file mode 100644 index a9ff170f..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Catch.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(CatchAdditions) - -typedef void (^FBLPromiseCatchWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with same resolution as the receiver. - If receiver is rejected, then `reject` block is executed asynchronously. - - @param reject A block to handle the error that receiver was rejected with. - @return A new pending promise. - */ -- (FBLPromise *)catch:(FBLPromiseCatchWorkBlock)reject NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with same resolution as the receiver. - If receiver is rejected, then `reject` block is executed asynchronously on the given queue. - - @param queue A queue to invoke the `reject` block on. - @param reject A block to handle the error that receiver was rejected with. - @return A new pending promise. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - catch:(FBLPromiseCatchWorkBlock)reject NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `catch` operators. - Usage: promise.catch(^(NSError *error) { ... }) - */ -@interface FBLPromise(DotSyntax_CatchAdditions) - -- (FBLPromise* (^)(FBLPromiseCatchWorkBlock))catch FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseCatchWorkBlock))catchOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Delay.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Delay.h deleted file mode 100644 index 557df485..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Delay.h +++ /dev/null @@ -1,59 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(DelayAdditions) - -/** - Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or - rejects with the same error immediately. - - @param interval Time to wait in seconds. - @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects - with the same error immediately. - */ -- (FBLPromise *)delay:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a new pending promise that fulfills with the same value as `self` after the `delay`, or - rejects with the same error immediately. - - @param queue A queue to dispatch on. - @param interval Time to wait in seconds. - @return A new pending promise that fulfills at least `delay` seconds later than `self`, or rejects - with the same error immediately. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - delay:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `delay` operators. - Usage: promise.delay(...) - */ -@interface FBLPromise(DotSyntax_DelayAdditions) - -- (FBLPromise * (^)(NSTimeInterval))delay FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, NSTimeInterval))delayOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Do.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Do.h deleted file mode 100644 index 6838e0ad..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Do.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(DoAdditions) - -typedef id __nullable (^FBLPromiseDoWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously. - - @param work A block that returns a value or an error used to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)do:(FBLPromiseDoWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise and executes `work` block asynchronously on the given queue. - - @param queue A queue to invoke the `work` block on. - @param work A block that returns a value or an error used to resolve the promise. - @return A new pending promise. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue do:(FBLPromiseDoWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `do` operators. - Usage: FBLPromise.doOn(queue, ^(NSError *error) { ... }) - */ -@interface FBLPromise(DotSyntax_DoAdditions) - -+ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseDoWorkBlock))doOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Race.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Race.h deleted file mode 100644 index 2f67258d..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Race.h +++ /dev/null @@ -1,62 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(RaceAdditions) - -/** - Wait until any of the given promises are fulfilled. - If one of the promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - - @param promises Promises to wait for. - @return A new pending promise to be resolved with the same resolution as the first promise, among - the given ones, which was resolved. - */ -+ (instancetype)race:(NSArray *)promises NS_SWIFT_UNAVAILABLE(""); - -/** - Wait until any of the given promises are fulfilled. - If one of the promises is rejected, then the returned promise is rejected with same error. - If any other arbitrary value or `NSError` appears in the array instead of `FBLPromise`, - it's implicitly considered a pre-fulfilled or pre-rejected `FBLPromise` correspondingly. - - @param queue A queue to dispatch on. - @param promises Promises to wait for. - @return A new pending promise to be resolved with the same resolution as the first promise, among - the given ones, which was resolved. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue race:(NSArray *)promises NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `race` operators. - Usage: FBLPromise.race(@[ ... ]) - */ -@interface FBLPromise(DotSyntax_RaceAdditions) - -+ (FBLPromise * (^)(NSArray *))race FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSArray *))raceOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Recover.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Recover.h deleted file mode 100644 index bb7df7ec..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Recover.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(RecoverAdditions) - -typedef id __nullable (^FBLPromiseRecoverWorkBlock)(NSError *error) NS_SWIFT_UNAVAILABLE(""); - -/** - Provides a new promise to recover in case the receiver gets rejected. - - @param recovery A block to handle the error that the receiver was rejected with. - @return A new pending promise to use instead of the rejected one that gets resolved with resolution - returned from `recovery` block. - */ -- (FBLPromise *)recover:(FBLPromiseRecoverWorkBlock)recovery NS_SWIFT_UNAVAILABLE(""); - -/** - Provides a new promise to recover in case the receiver gets rejected. - - @param queue A queue to dispatch on. - @param recovery A block to handle the error that the receiver was rejected with. - @return A new pending promise to use instead of the rejected one that gets resolved with resolution - returned from `recovery` block. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - recover:(FBLPromiseRecoverWorkBlock)recovery NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `recover` operators. - Usage: promise.recover(^id(NSError *error) {...}) - */ -@interface FBLPromise(DotSyntax_RecoverAdditions) - -- (FBLPromise * (^)(FBLPromiseRecoverWorkBlock))recover FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRecoverWorkBlock))recoverOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Reduce.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Reduce.h deleted file mode 100644 index 5bb1eeee..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Reduce.h +++ /dev/null @@ -1,71 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ReduceAdditions) - -typedef id __nullable (^FBLPromiseReducerBlock)(Value __nullable partial, id next) - NS_SWIFT_UNAVAILABLE(""); - -/** - Sequentially reduces a collection of values to a single promise using a given combining block - and the value `self` resolves with as initial value. - - @param items An array of values to process in order. - @param reducer A block to combine an accumulating value and an element of the sequence into - the new accumulating value or a promise resolved with it, to be used in the next - call of the `reducer` or returned to the caller. - @return A new pending promise returned from the last `reducer` invocation. - Or `self` if `items` is empty. - */ -- (FBLPromise *)reduce:(NSArray *)items - combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE(""); - -/** - Sequentially reduces a collection of values to a single promise using a given combining block - and the value `self` resolves with as initial value. - - @param queue A queue to dispatch on. - @param items An array of values to process in order. - @param reducer A block to combine an accumulating value and an element of the sequence into - the new accumulating value or a promise resolved with it, to be used in the next - call of the `reducer` or returned to the caller. - @return A new pending promise returned from the last `reducer` invocation. - Or `self` if `items` is empty. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - reduce:(NSArray *)items - combine:(FBLPromiseReducerBlock)reducer NS_SWIFT_UNAVAILABLE(""); - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `reduce` operators. - Usage: promise.reduce(values, ^id(id partial, id next) { ... }) - */ -@interface FBLPromise(DotSyntax_ReduceAdditions) - -- (FBLPromise * (^)(NSArray *, FBLPromiseReducerBlock))reduce FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, NSArray *, FBLPromiseReducerBlock))reduceOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Retry.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Retry.h deleted file mode 100644 index 98ef558c..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Retry.h +++ /dev/null @@ -1,165 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** The default number of retry attempts is 1. */ -FOUNDATION_EXTERN NSInteger const FBLPromiseRetryDefaultAttemptsCount NS_REFINED_FOR_SWIFT; - -/** The default delay interval before making a retry attempt is 1.0 second. */ -FOUNDATION_EXTERN NSTimeInterval const FBLPromiseRetryDefaultDelayInterval NS_REFINED_FOR_SWIFT; - -@interface FBLPromise(RetryAdditions) - -typedef id __nullable (^FBLPromiseRetryWorkBlock)(void) NS_SWIFT_UNAVAILABLE(""); -typedef BOOL (^FBLPromiseRetryPredicateBlock)(NSInteger, NSError *) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on rejection where the - `work` block is retried after a delay of `FBLPromiseRetryDefaultDelayInterval` second(s). - - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. Defaults to `FBLPromiseRetryDefaultAttemptsCount` attempt(s) on - rejection where the `work` block is retried on the given `queue` after a delay of - `FBLPromiseRetryDefaultDelayInterval` second(s). - - @param queue A queue to invoke the `work` block on. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. - - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)attempts:(NSInteger)count - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. - - @param queue A queue to invoke the `work` block on. - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - attempts:(NSInteger)count - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously, or rejects with the same error after all retry attempts have - been exhausted. On rejection, the `work` block is retried after the given delay `interval` and will - continue to retry until the number of specified attempts have been exhausted or will bail early if - the given condition is not met. - - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param interval Time to wait before the next retry attempt. - @param predicate Condition to check before the next retry attempt. The predicate block provides the - the number of remaining retry attempts and the error that the promise was rejected - with. - @param work A block that executes asynchronously on the default queue and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted or if - the given condition is not met. - */ -+ (FBLPromise *)attempts:(NSInteger)count - delay:(NSTimeInterval)interval - condition:(nullable FBLPromiseRetryPredicateBlock)predicate - retry:(FBLPromiseRetryWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise that fulfills with the same value as the promise returned from `work` - block, which executes asynchronously on the given `queue`, or rejects with the same error after all - retry attempts have been exhausted. On rejection, the `work` block is retried after the given - delay `interval` and will continue to retry until the number of specified attempts have been - exhausted or will bail early if the given condition is not met. - - @param queue A queue to invoke the `work` block on. - @param count Max number of retry attempts. The `work` block will be executed once if the specified - count is less than or equal to zero. - @param interval Time to wait before the next retry attempt. - @param predicate Condition to check before the next retry attempt. The predicate block provides the - the number of remaining retry attempts and the error that the promise was rejected - with. - @param work A block that executes asynchronously on the given `queue` and returns a value or an - error used to resolve the promise. - @return A new pending promise that fulfills with the same value as the promise returned from `work` - block, or rejects with the same error after all retry attempts have been exhausted or if - the given condition is not met. - */ -+ (FBLPromise *)onQueue:(dispatch_queue_t)queue - attempts:(NSInteger)count - delay:(NSTimeInterval)interval - condition:(nullable FBLPromiseRetryPredicateBlock)predicate - retry:(FBLPromiseRetryWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise+Retry` operators. - Usage: FBLPromise.retry(^id { ... }) - */ -@interface FBLPromise(DotSyntax_RetryAdditions) - -+ (FBLPromise * (^)(FBLPromiseRetryWorkBlock))retry FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, FBLPromiseRetryWorkBlock))retryOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(NSInteger, NSTimeInterval, FBLPromiseRetryPredicateBlock __nullable, - FBLPromiseRetryWorkBlock))retryAgain FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise * (^)(dispatch_queue_t, NSInteger, NSTimeInterval, - FBLPromiseRetryPredicateBlock __nullable, - FBLPromiseRetryWorkBlock))retryAgainOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Testing.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Testing.h deleted file mode 100644 index 8478ae22..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Testing.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Waits for all scheduled promises blocks. - - @param timeout Maximum time to wait. - @return YES if all promises blocks have completed before the timeout and NO otherwise. - */ -FOUNDATION_EXTERN BOOL FBLWaitForPromisesWithTimeout(NSTimeInterval timeout) NS_REFINED_FOR_SWIFT; - -@interface FBLPromise(TestingAdditions) - -/** - Dispatch group for promises that is typically used to wait for all scheduled blocks. - */ -@property(class, nonatomic, readonly) dispatch_group_t dispatchGroup NS_REFINED_FOR_SWIFT; - -/** - Properties to get the current state of the promise. - */ -@property(nonatomic, readonly) BOOL isPending NS_REFINED_FOR_SWIFT; -@property(nonatomic, readonly) BOOL isFulfilled NS_REFINED_FOR_SWIFT; -@property(nonatomic, readonly) BOOL isRejected NS_REFINED_FOR_SWIFT; - -/** - Value the promise was fulfilled with. - Can be nil if the promise is still pending, was resolved with nil or after it has been rejected. - */ -@property(nonatomic, readonly, nullable) Value value NS_REFINED_FOR_SWIFT; - -/** - Error the promise was rejected with. - Can be nil if the promise is still pending or after it has been fulfilled. - */ -@property(nonatomic, readonly, nullable) NSError *error NS_REFINED_FOR_SWIFT; - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Then.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Then.h deleted file mode 100644 index 32027e69..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Then.h +++ /dev/null @@ -1,63 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ThenAdditions) - -typedef id __nullable (^FBLPromiseThenWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with resolution returned from `work` - block: either value, error or another promise. The `work` block is executed asynchronously only - when the receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with - the same error. - - @param work A block to handle the value that receiver was fulfilled with. - @return A new pending promise to be resolved with resolution returned from the `work` block. - */ -- (FBLPromise *)then:(FBLPromiseThenWorkBlock)work NS_SWIFT_UNAVAILABLE(""); - -/** - Creates a pending promise which eventually gets resolved with resolution returned from `work` - block: either value, error or another promise. The `work` block is executed asynchronously when the - receiver is fulfilled. If receiver is rejected, the returned promise is also rejected with the same - error. - - @param queue A queue to invoke the `work` block on. - @param work A block to handle the value that receiver was fulfilled with. - @return A new pending promise to be resolved with resolution returned from the `work` block. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - then:(FBLPromiseThenWorkBlock)work NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `then` operators. - Usage: promise.then(^id(id value) { ... }) - */ -@interface FBLPromise(DotSyntax_ThenAdditions) - -- (FBLPromise* (^)(FBLPromiseThenWorkBlock))then FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, FBLPromiseThenWorkBlock))thenOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Timeout.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Timeout.h deleted file mode 100644 index 184ba166..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Timeout.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(TimeoutAdditions) - -/** - Waits for a promise with the specified `timeout`. - - @param interval Time to wait in seconds. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)timeout:(NSTimeInterval)interval NS_SWIFT_UNAVAILABLE(""); - -/** - Waits for a promise with the specified `timeout`. - - @param queue A queue to dispatch on. - @param interval Time to wait in seconds. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeTimedOut` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - timeout:(NSTimeInterval)interval NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `timeout` operators. - Usage: promise.timeout(...) - */ -@interface FBLPromise(DotSyntax_TimeoutAdditions) - -- (FBLPromise* (^)(NSTimeInterval))timeout FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise* (^)(dispatch_queue_t, NSTimeInterval))timeoutOn FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Validate.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Validate.h deleted file mode 100644 index 9dfa2f16..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Validate.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FBLPromise(ValidateAdditions) - -typedef BOOL (^FBLPromiseValidateWorkBlock)(Value __nullable value) NS_SWIFT_UNAVAILABLE(""); - -/** - Validates a fulfilled value or rejects the value if it can not be validated. - - @param predicate An expression to validate. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)validate:(FBLPromiseValidateWorkBlock)predicate NS_SWIFT_UNAVAILABLE(""); - -/** - Validates a fulfilled value or rejects the value if it can not be validated. - - @param queue A queue to dispatch on. - @param predicate An expression to validate. - @return A new pending promise that gets either resolved with same resolution as the receiver or - rejected with `FBLPromiseErrorCodeValidationFailure` error code in `FBLPromiseErrorDomain`. - */ -- (FBLPromise *)onQueue:(dispatch_queue_t)queue - validate:(FBLPromiseValidateWorkBlock)predicate NS_REFINED_FOR_SWIFT; - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `validate` operators. - Usage: promise.validate(^BOOL(id value) { ... }) - */ -@interface FBLPromise(DotSyntax_ValidateAdditions) - -- (FBLPromise * (^)(FBLPromiseValidateWorkBlock))validate FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -- (FBLPromise * (^)(dispatch_queue_t, FBLPromiseValidateWorkBlock))validateOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Wrap.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Wrap.h deleted file mode 100644 index 664e1bbf..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise+Wrap.h +++ /dev/null @@ -1,316 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Different types of completion handlers available to be wrapped with promise. - */ -typedef void (^FBLPromiseCompletion)(void) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseObjectCompletion)(id __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseErrorCompletion)(NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseObjectOrErrorCompletion)(id __nullable, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseErrorOrObjectCompletion)(NSError* __nullable, id __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromise2ObjectsOrErrorCompletion)(id __nullable, id __nullable, - NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseBoolCompletion)(BOOL) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseBoolOrErrorCompletion)(BOOL, NSError* __nullable) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseIntegerCompletion)(NSInteger) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseIntegerOrErrorCompletion)(NSInteger, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseDoubleCompletion)(double) NS_SWIFT_UNAVAILABLE(""); -typedef void (^FBLPromiseDoubleOrErrorCompletion)(double, NSError* __nullable) - NS_SWIFT_UNAVAILABLE(""); - -/** - Provides an easy way to convert methods that use common callback patterns into promises. - */ -@interface FBLPromise(WrapAdditions) - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with `nil` when completion handler is invoked. - */ -+ (instancetype)wrapCompletion:(void (^)(FBLPromiseCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with `nil` when completion handler is invoked. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapCompletion:(void (^)(FBLPromiseCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler. - */ -+ (instancetype)wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapObjectCompletion:(void (^)(FBLPromiseObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error provided by completion handler. - If error is `nil`, fulfills with `nil`, otherwise rejects with the error. - */ -+ (instancetype)wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error provided by completion handler. - If error is `nil`, fulfills with `nil`, otherwise rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapErrorCompletion:(void (^)(FBLPromiseErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler if error is `nil`. - Otherwise, rejects with the error. - */ -+ (instancetype)wrapObjectOrErrorCompletion: - (void (^)(FBLPromiseObjectOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an object provided by completion handler if error is `nil`. - Otherwise, rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapObjectOrErrorCompletion:(void (^)(FBLPromiseObjectOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error or object provided by completion handler. If error - is not `nil`, rejects with the error. - */ -+ (instancetype)wrapErrorOrObjectCompletion: - (void (^)(FBLPromiseErrorOrObjectCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an error or object provided by completion handler. If error - is not `nil`, rejects with the error. - */ -+ (instancetype)onQueue:(dispatch_queue_t)queue - wrapErrorOrObjectCompletion:(void (^)(FBLPromiseErrorOrObjectCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an array of objects provided by completion handler in order - if error is `nil`. Otherwise, rejects with the error. - */ -+ (FBLPromise*)wrap2ObjectsOrErrorCompletion: - (void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an array of objects provided by completion handler in order - if error is `nil`. Otherwise, rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrap2ObjectsOrErrorCompletion:(void (^)(FBLPromise2ObjectsOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO. - */ -+ (FBLPromise*)wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapBoolCompletion:(void (^)(FBLPromiseBoolCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapBoolOrErrorCompletion: - (void (^)(FBLPromiseBoolOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping YES/NO when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapBoolOrErrorCompletion:(void (^)(FBLPromiseBoolOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer. - */ -+ (FBLPromise*)wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapIntegerCompletion:(void (^)(FBLPromiseIntegerCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapIntegerOrErrorCompletion: - (void (^)(FBLPromiseIntegerOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping an integer when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapIntegerOrErrorCompletion:(void (^)(FBLPromiseIntegerOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double. - */ -+ (FBLPromise*)wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapDoubleCompletion:(void (^)(FBLPromiseDoubleCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -/** - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)wrapDoubleOrErrorCompletion: - (void (^)(FBLPromiseDoubleOrErrorCompletion handler))work NS_SWIFT_UNAVAILABLE(""); - -/** - @param queue A queue to invoke the `work` block on. - @param work A block to perform any operations needed to resolve the promise. - @returns A promise that resolves with an `NSNumber` wrapping a double when error is `nil`. - Otherwise rejects with the error. - */ -+ (FBLPromise*)onQueue:(dispatch_queue_t)queue - wrapDoubleOrErrorCompletion:(void (^)(FBLPromiseDoubleOrErrorCompletion handler))work - NS_SWIFT_UNAVAILABLE(""); - -@end - -/** - Convenience dot-syntax wrappers for `FBLPromise` `wrap` operators. - Usage: FBLPromise.wrapCompletion(^(FBLPromiseCompletion handler) {...}) - */ -@interface FBLPromise(DotSyntax_WrapAdditions) - -+ (FBLPromise* (^)(void (^)(FBLPromiseCompletion)))wrapCompletion FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseCompletion)))wrapCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseObjectCompletion)))wrapObjectCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletion FBL_PROMISES_DOT_SYNTAX - NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseErrorCompletion)))wrapErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseObjectOrErrorCompletion)))wrapObjectOrErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseErrorOrObjectCompletion)))wrapErrorOrObjectCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromise2ObjectsOrErrorCompletion))) - wrap2ObjectsOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromise2ObjectsOrErrorCompletion))) - wrap2ObjectsOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseBoolCompletion)))wrapBoolCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseBoolOrErrorCompletion)))wrapBoolOrErrorCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseIntegerCompletion)))wrapIntegerCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseIntegerOrErrorCompletion))) - wrapIntegerOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseIntegerOrErrorCompletion))) - wrapIntegerOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletion - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, - void (^)(FBLPromiseDoubleCompletion)))wrapDoubleCompletionOn - FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(void (^)(FBLPromiseDoubleOrErrorCompletion))) - wrapDoubleOrErrorCompletion FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (FBLPromise* (^)(dispatch_queue_t, void (^)(FBLPromiseDoubleOrErrorCompletion))) - wrapDoubleOrErrorCompletionOn FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise.h deleted file mode 100644 index b1380dc7..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromise.h +++ /dev/null @@ -1,93 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromiseError.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - Promises synchronization construct in Objective-C. - */ -@interface FBLPromise<__covariant Value> : NSObject - -/** - Default dispatch queue used for `FBLPromise`, which is `main` if a queue is not specified. - */ -@property(class) dispatch_queue_t defaultDispatchQueue NS_REFINED_FOR_SWIFT; - -/** - Creates a pending promise. - */ -+ (instancetype)pendingPromise NS_REFINED_FOR_SWIFT; - -/** - Creates a resolved promise. - - @param resolution An object to resolve the promise with: either a value or an error. - @return A new resolved promise. - */ -+ (instancetype)resolvedWith:(nullable id)resolution NS_REFINED_FOR_SWIFT; - -/** - Synchronously fulfills the promise with a value. - - @param value An arbitrary value to fulfill the promise with, including `nil`. - */ -- (void)fulfill:(nullable Value)value NS_REFINED_FOR_SWIFT; - -/** - Synchronously rejects the promise with an error. - - @param error An error to reject the promise with. - */ -- (void)reject:(NSError *)error NS_REFINED_FOR_SWIFT; - -+ (instancetype)new NS_UNAVAILABLE; -- (instancetype)init NS_UNAVAILABLE; -@end - -@interface FBLPromise() - -/** - Adds an object to the set of pending objects to keep strongly while the promise is pending. - Used by the Swift wrappers to keep them alive until the underlying ObjC promise is resolved. - - @param object An object to add. - */ -- (void)addPendingObject:(id)object NS_REFINED_FOR_SWIFT; - -@end - -#ifdef FBL_PROMISES_DOT_SYNTAX_IS_DEPRECATED -#define FBL_PROMISES_DOT_SYNTAX __attribute__((deprecated)) -#else -#define FBL_PROMISES_DOT_SYNTAX -#endif - -@interface FBLPromise(DotSyntaxAdditions) - -/** - Convenience dot-syntax wrappers for FBLPromise. - Usage: FBLPromise.pending() - FBLPromise.resolved(value) - - */ -+ (instancetype (^)(void))pending FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); -+ (instancetype (^)(id __nullable))resolved FBL_PROMISES_DOT_SYNTAX NS_SWIFT_UNAVAILABLE(""); - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromiseError.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromiseError.h deleted file mode 100644 index d37af536..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromiseError.h +++ /dev/null @@ -1,43 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import - -NS_ASSUME_NONNULL_BEGIN - -FOUNDATION_EXTERN NSErrorDomain const FBLPromiseErrorDomain NS_REFINED_FOR_SWIFT; - -/** - Possible error codes in `FBLPromiseErrorDomain`. - */ -typedef NS_ENUM(NSInteger, FBLPromiseErrorCode) { - /** Promise failed to resolve in time. */ - FBLPromiseErrorCodeTimedOut = 1, - /** Validation predicate returned false. */ - FBLPromiseErrorCodeValidationFailure = 2, -} NS_REFINED_FOR_SWIFT; - -NS_INLINE BOOL FBLPromiseErrorIsTimedOut(NSError *error) NS_SWIFT_UNAVAILABLE("") { - return error.domain == FBLPromiseErrorDomain && - error.code == FBLPromiseErrorCodeTimedOut; -} - -NS_INLINE BOOL FBLPromiseErrorIsValidationFailure(NSError *error) NS_SWIFT_UNAVAILABLE("") { - return error.domain == FBLPromiseErrorDomain && - error.code == FBLPromiseErrorCodeValidationFailure; -} - -NS_ASSUME_NONNULL_END diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromises.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromises.h deleted file mode 100644 index 2d90badb..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/FBLPromises.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - Copyright 2018 Google Inc. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at: - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "FBLPromise+All.h" -#import "FBLPromise+Always.h" -#import "FBLPromise+Any.h" -#import "FBLPromise+Async.h" -#import "FBLPromise+Await.h" -#import "FBLPromise+Catch.h" -#import "FBLPromise+Delay.h" -#import "FBLPromise+Do.h" -#import "FBLPromise+Race.h" -#import "FBLPromise+Recover.h" -#import "FBLPromise+Reduce.h" -#import "FBLPromise+Retry.h" -#import "FBLPromise+Then.h" -#import "FBLPromise+Timeout.h" -#import "FBLPromise+Validate.h" -#import "FBLPromise+Wrap.h" diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/PromisesObjC-umbrella.h b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/PromisesObjC-umbrella.h deleted file mode 100644 index 5b014a8b..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Headers/PromisesObjC-umbrella.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "FBLPromise+All.h" -#import "FBLPromise+Always.h" -#import "FBLPromise+Any.h" -#import "FBLPromise+Async.h" -#import "FBLPromise+Await.h" -#import "FBLPromise+Catch.h" -#import "FBLPromise+Delay.h" -#import "FBLPromise+Do.h" -#import "FBLPromise+Race.h" -#import "FBLPromise+Recover.h" -#import "FBLPromise+Reduce.h" -#import "FBLPromise+Retry.h" -#import "FBLPromise+Testing.h" -#import "FBLPromise+Then.h" -#import "FBLPromise+Timeout.h" -#import "FBLPromise+Validate.h" -#import "FBLPromise+Wrap.h" -#import "FBLPromise.h" -#import "FBLPromiseError.h" -#import "FBLPromises.h" - -FOUNDATION_EXPORT double FBLPromisesVersionNumber; -FOUNDATION_EXPORT const unsigned char FBLPromisesVersionString[]; - diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Info.plist b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Info.plist deleted file mode 100644 index 6db2f5f5..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleExecutable - FBLPromises - CFBundleIdentifier - com.firebase.Firebase-FBLPromises - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - FBLPromises - CFBundlePackageType - FMWK - CFBundleVersion - 2.1.1 - DTSDKName - iphonesimulator11.2 - - diff --git a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Modules/module.modulemap b/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Modules/module.modulemap deleted file mode 100644 index bd7b48e1..00000000 --- a/ios/platform/FBLPromises.xcframework/tvos-arm64_x86_64-simulator/FBLPromises.framework/Modules/module.modulemap +++ /dev/null @@ -1,5 +0,0 @@ -framework module PromisesObjC { -umbrella header "PromisesObjC-umbrella.h" -export * -module * { export * } -}