From c53483173e31da29b1cb0a088322c6fb0a222e59 Mon Sep 17 00:00:00 2001 From: Yucheng Date: Wed, 20 Sep 2023 18:10:14 -0400 Subject: [PATCH 01/71] yg --- .DS_Store | Bin 0 -> 6148 bytes .../UserInterfaceState.xcuserstate | Bin 0 -> 16908 bytes .../xcschemes/xcschememanagement.plist | 14 ++++++++++++++ README.md | 1 + 4 files changed, 15 insertions(+) create mode 100644 .DS_Store create mode 100644 PowerUp.xcodeproj/project.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 PowerUp.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..48cbb3bdf1bd47c0657b43cee37bfa0ed0a01af0 GIT binary patch literal 6148 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 AnE(I) literal 0 HcmV?d00001 diff --git a/PowerUp.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..2c9e80a --- /dev/null +++ b/PowerUp.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + PowerUp.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/README.md b/README.md index 3037ef3..fe3f020 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,4 @@ Hello from Cliff Hello from Jeff Hello from Nick Hello From Dingbang +HI HI From df8f4d8aa52e239c19bb96bd0c95b35aadd72a59 Mon Sep 17 00:00:00 2001 From: Yucheng Date: Wed, 20 Sep 2023 18:12:46 -0400 Subject: [PATCH 02/71] yg --- .DS_Store | Bin 6148 -> 6148 bytes .../UserInterfaceState.xcuserstate | Bin 16882 -> 16875 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/.DS_Store b/.DS_Store index c9c725a6f9a490c2bd7ac59a4b13b0d49c8ba370..134f91932d571968d12bf2b5e7826f1f560547fb 100644 GIT binary patch delta 18 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%0A#odK7Z>ezV9gK$y=iZUR$@e|HT?o#z_`GnG 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 delta 6626 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

DHppm{kzMu22SQa>vbE~^@|@A*zm+-m!vFvP From c0a0f2434cf6f52e4c0ee582dc7bca4b05f04c8c Mon Sep 17 00:00:00 2001 From: Cliff Li Date: Wed, 20 Sep 2023 17:25:17 -0500 Subject: [PATCH 03/71] Please enter the commit message for your changes. Lines starting Commit for testing --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b6bef4f..a88aecf 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,5 @@ Hello from Cliff Hello from Jeff Hello from Nick Hello From Dingbang -Git Modify +Git Modify/n +Test from Cliff From 5bbdb08e8f0ec5d2b9f91cf7b0d9627e82e00757 Mon Sep 17 00:00:00 2001 From: Cliff Li Date: Wed, 20 Sep 2023 17:42:39 -0500 Subject: [PATCH 04/71] Init --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index a88aecf..3037ef3 100644 --- a/README.md +++ b/README.md @@ -2,5 +2,3 @@ Hello from Cliff Hello from Jeff Hello from Nick Hello From Dingbang -Git Modify/n -Test from Cliff From bd2075799f52e827238f880727beaf3f472c88e7 Mon Sep 17 00:00:00 2001 From: Dingbang Chen Date: Thu, 21 Sep 2023 15:39:55 -0400 Subject: [PATCH 05/71] .gitignore --- .../AccentColor.colorset/Contents.json | 11 -------- .../AppIcon.appiconset/Contents.json | 13 --------- HelloWorld/Assets.xcassets/Contents.json | 6 ---- HelloWorld/ContentView.swift | 26 ------------------ HelloWorld/HelloWorldApp.swift | 17 ------------ .../Preview Assets.xcassets/Contents.json | 6 ---- PowerUp.xcodeproj/project.pbxproj | 4 +++ .../UserInterfaceState.xcuserstate | Bin 21231 -> 21552 bytes PowerUp/.gitignore | 2 ++ 9 files changed, 6 insertions(+), 79 deletions(-) delete mode 100644 HelloWorld/Assets.xcassets/AccentColor.colorset/Contents.json delete mode 100644 HelloWorld/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 HelloWorld/Assets.xcassets/Contents.json delete mode 100644 HelloWorld/ContentView.swift delete mode 100644 HelloWorld/HelloWorldApp.swift delete mode 100644 HelloWorld/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 PowerUp/.gitignore diff --git a/HelloWorld/Assets.xcassets/AccentColor.colorset/Contents.json b/HelloWorld/Assets.xcassets/AccentColor.colorset/Contents.json deleted file mode 100644 index eb87897..0000000 --- a/HelloWorld/Assets.xcassets/AccentColor.colorset/Contents.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "colors" : [ - { - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/HelloWorld/Assets.xcassets/AppIcon.appiconset/Contents.json b/HelloWorld/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 13613e3..0000000 --- a/HelloWorld/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/HelloWorld/Assets.xcassets/Contents.json b/HelloWorld/Assets.xcassets/Contents.json deleted file mode 100644 index 73c0059..0000000 --- a/HelloWorld/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/HelloWorld/ContentView.swift b/HelloWorld/ContentView.swift deleted file mode 100644 index 5b19979..0000000 --- a/HelloWorld/ContentView.swift +++ /dev/null @@ -1,26 +0,0 @@ -// -// ContentView.swift -// HelloWorld -// -// Created by Nicholas Letarte on 9/20/23. -// - -import SwiftUI - -struct ContentView: View { - var body: some View { - VStack { - Image(systemName: "globe") - .imageScale(.large) - .foregroundColor(.accentColor) - Text("Hello, world!") - } - .padding() - } -} - -struct ContentView_Previews: PreviewProvider { - static var previews: some View { - ContentView() - } -} diff --git a/HelloWorld/HelloWorldApp.swift b/HelloWorld/HelloWorldApp.swift deleted file mode 100644 index 9d5a5cf..0000000 --- a/HelloWorld/HelloWorldApp.swift +++ /dev/null @@ -1,17 +0,0 @@ -// -// HelloWorldApp.swift -// HelloWorld -// -// Created by Nicholas Letarte on 9/20/23. -// - -import SwiftUI - -@main -struct HelloWorldApp: App { - var body: some Scene { - WindowGroup { - ContentView() - } - } -} diff --git a/HelloWorld/Preview Content/Preview Assets.xcassets/Contents.json b/HelloWorld/Preview Content/Preview Assets.xcassets/Contents.json deleted file mode 100644 index 73c0059..0000000 --- a/HelloWorld/Preview Content/Preview Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index 553938f..a9ac9cf 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 11433FBE2ABCBCDD005AA716 /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 11433FBD2ABCBCDD005AA716 /* .gitignore */; }; 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15422ABB77F0002B64C1 /* AppDelegate.swift */; }; 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */; }; 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15462ABB77F0002B64C1 /* ViewController.swift */; }; @@ -37,6 +38,7 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 11433FBD2ABCBCDD005AA716 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; 858F153F2ABB77F0002B64C1 /* PowerUp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PowerUp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 858F15422ABB77F0002B64C1 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; @@ -109,6 +111,7 @@ 858F154B2ABB77F1002B64C1 /* Assets.xcassets */, 858F154D2ABB77F1002B64C1 /* LaunchScreen.storyboard */, 858F15502ABB77F1002B64C1 /* Info.plist */, + 11433FBD2ABCBCDD005AA716 /* .gitignore */, ); path = PowerUp; sourceTree = ""; @@ -234,6 +237,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 11433FBE2ABCBCDD005AA716 /* .gitignore in Resources */, 858F154F2ABB77F1002B64C1 /* LaunchScreen.storyboard in Resources */, 858F154C2ABB77F1002B64C1 /* Assets.xcassets in Resources */, 858F15752ABB99B4002B64C1 /* README.md in Resources */, diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate index f2067c28a18825ad47998911c1802bc3f61d631f..b585747a59b879cce0a36e19863b2f2a1fc29bb6 100644 GIT binary patch delta 12115 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 F{vSp!N3;L{ literal 21231 zcmeHv2V7Iv+y6Otge8!Wm_V3HWG7^hB?w`NqM}s9fdc~sj3U7#IBL~%wL|T;!&+-w zz)?qCopvuftXfB_)mm$pt!=g2+G^YXb8{1h;_v7C{`-FZ@B9C}@PXvsd+vG8c-DEI z?>V(CO-_$jt9>6~L?Ie6h(#h4ghI!wW;@&-r>l8_%I>b4=7g&;DzB?$yvkKO-BIWD zL?L|hqc!5lk(I+8^Bnbs{z3;)Fbb)v^xC}+g11TVXDAHyK?)R&Vo)~HA|28r1Ij^0 zWI|?SK}Dz-m7u|BI2wT}&{$NBrXo9XASZI67UV QP?7NMKat>`v%C)$7>LmSa1 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 diff --git a/PowerUp/.gitignore b/PowerUp/.gitignore new file mode 100644 index 0000000..31d7325 --- /dev/null +++ b/PowerUp/.gitignore @@ -0,0 +1,2 @@ +*.xcodeproj/xcuserdata/ +.DS_Store From a5c0d5cd6dedca21c47ce497ab37b140e405fb67 Mon Sep 17 00:00:00 2001 From: Dingbang Chen Date: Thu, 21 Sep 2023 15:47:56 -0400 Subject: [PATCH 06/71] change location --- PowerUp/.gitignore => .gitignore | 1 + PowerUp.xcodeproj/project.pbxproj | 2 +- .../UserInterfaceState.xcuserstate | Bin 21552 -> 23483 bytes 3 files changed, 2 insertions(+), 1 deletion(-) rename PowerUp/.gitignore => .gitignore (75%) diff --git a/PowerUp/.gitignore b/.gitignore similarity index 75% rename from PowerUp/.gitignore rename to .gitignore index 31d7325..f668c8d 100644 --- a/PowerUp/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.xcodeproj/xcuserdata/ .DS_Store +.xcodeproj diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index a9ac9cf..773a95c 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -83,6 +83,7 @@ 858F15362ABB77F0002B64C1 = { isa = PBXGroup; children = ( + 11433FBD2ABCBCDD005AA716 /* .gitignore */, 858F15742ABB99B4002B64C1 /* README.md */, 858F15412ABB77F0002B64C1 /* PowerUp */, 858F15582ABB77F1002B64C1 /* PowerUpTests */, @@ -111,7 +112,6 @@ 858F154B2ABB77F1002B64C1 /* Assets.xcassets */, 858F154D2ABB77F1002B64C1 /* LaunchScreen.storyboard */, 858F15502ABB77F1002B64C1 /* Info.plist */, - 11433FBD2ABCBCDD005AA716 /* .gitignore */, ); path = PowerUp; sourceTree = ""; diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate index b585747a59b879cce0a36e19863b2f2a1fc29bb6..09247ce9779d0ce2827b6f700a38fd0080a14cb7 100644 GIT binary patch delta 11585 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¥3*XqymN0r5;vji=vR6%>vb7tgwu+0*ZmX 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 From 0962722898250ed2e2251f4352106244b29c79c0 Mon Sep 17 00:00:00 2001 From: Dingbang Chen Date: Thu, 21 Sep 2023 19:16:30 -0400 Subject: [PATCH 07/71] rm --- .../UserInterfaceState.xcuserstate | Bin 23483 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 PowerUp.xcodeproj/project.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 09247ce9779d0ce2827b6f700a38fd0080a14cb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23483 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 QQsQSwa040mta|W&0f$@!FaQ7m From dcf79a793f0f8b4434f0ae80a00c51df447d4e32 Mon Sep 17 00:00:00 2001 From: Cliff Li Date: Mon, 25 Sep 2023 17:19:07 -0500 Subject: [PATCH 08/71] Add new viewController and Framework --- PowerUp.xcodeproj/project.pbxproj | 4 ++ PowerUp/Base.lproj/Main.storyboard | 60 +++++++++++++++++++++++++++--- PowerUp/StoreViewController.swift | 29 +++++++++++++++ 3 files changed, 88 insertions(+), 5 deletions(-) create mode 100644 PowerUp/StoreViewController.swift diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index 553938f..03aa01e 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -17,6 +17,7 @@ 858F15642ABB77F1002B64C1 /* PowerUpUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15632ABB77F1002B64C1 /* PowerUpUITests.swift */; }; 858F15662ABB77F1002B64C1 /* PowerUpUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15652ABB77F1002B64C1 /* PowerUpUITestsLaunchTests.swift */; }; 858F15752ABB99B4002B64C1 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 858F15742ABB99B4002B64C1 /* README.md */; }; + 858F165F2AC23B1F002B64C1 /* StoreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F165E2AC23B1F002B64C1 /* StoreViewController.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -51,6 +52,7 @@ 858F15632ABB77F1002B64C1 /* PowerUpUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PowerUpUITests.swift; sourceTree = ""; }; 858F15652ABB77F1002B64C1 /* PowerUpUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PowerUpUITestsLaunchTests.swift; sourceTree = ""; }; 858F15742ABB99B4002B64C1 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 858F165E2AC23B1F002B64C1 /* StoreViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreViewController.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -106,6 +108,7 @@ 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */, 858F15462ABB77F0002B64C1 /* ViewController.swift */, 858F15482ABB77F0002B64C1 /* Main.storyboard */, + 858F165E2AC23B1F002B64C1 /* StoreViewController.swift */, 858F154B2ABB77F1002B64C1 /* Assets.xcassets */, 858F154D2ABB77F1002B64C1 /* LaunchScreen.storyboard */, 858F15502ABB77F1002B64C1 /* Info.plist */, @@ -262,6 +265,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 858F165F2AC23B1F002B64C1 /* StoreViewController.swift in Sources */, 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, diff --git a/PowerUp/Base.lproj/Main.storyboard b/PowerUp/Base.lproj/Main.storyboard index 25a7638..0d3c69b 100644 --- a/PowerUp/Base.lproj/Main.storyboard +++ b/PowerUp/Base.lproj/Main.storyboard @@ -1,24 +1,74 @@ - + + - + + + + + + + + + + + + + + + + + - + - + - + + + + + + + + + + + + + diff --git a/PowerUp/StoreViewController.swift b/PowerUp/StoreViewController.swift new file mode 100644 index 0000000..e078f53 --- /dev/null +++ b/PowerUp/StoreViewController.swift @@ -0,0 +1,29 @@ +// +// StoreViewController.swift +// PowerUp +// +// Created by Cliff Li on 9/25/23. +// + +import UIKit + +class StoreViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} From 57f8f9041e8aa5a436fc6b6ab5867a8296358645 Mon Sep 17 00:00:00 2001 From: jcport1 Date: Sun, 1 Oct 2023 12:20:09 -0400 Subject: [PATCH 09/71] Initial Start Screen UI --- PowerUp/Start Screen/StartScreen.swift | 215 ++++++++++++++++++ .../Start Screen/StartScreenController.swift | 36 +++ 2 files changed, 251 insertions(+) create mode 100644 PowerUp/Start Screen/StartScreen.swift create mode 100644 PowerUp/Start Screen/StartScreenController.swift diff --git a/PowerUp/Start Screen/StartScreen.swift b/PowerUp/Start Screen/StartScreen.swift new file mode 100644 index 0000000..e815f31 --- /dev/null +++ b/PowerUp/Start Screen/StartScreen.swift @@ -0,0 +1,215 @@ +// +// StartScreen.swift +// PowerUp +// +// Created by Jefferson Cuartas on 9/25/23. +// + +import UIKit + +class StartScreen: UIView { + + //UI Views + var startView: UIView! + var scanView: UIView! + var typeNumView: UIView! + + //UI Labels + var startLabel: UILabel! + var creditLabel: UILabel! + var creditFigureLabel: UILabel! + + var scanTitleLabel: UILabel! + var scanTextLabel: UILabel! + + var typeTitleLabel: UILabel! + var typeTextLabel: UILabel! + + + //UI Buttons + var scanButton: UIButton! + var typeNumberButton: UIButton! + + //UI Button custom color + let customButtonColor = UIColor(red: 0.45 , green: 0.72 , blue: 1, alpha: 1.0) + + //UI Start background custom color + let customStartBgk = UIColor(red: 0.035 , green: 0.51 , blue: 0.89, alpha: 1.0) + + override init(frame: CGRect) { + super.init(frame: frame) + + self.backgroundColor = .white + + setupStartComponent() + setupScanComponent() + setupTypeComponent() + + initConstraints() + + } + + func setupStartComponent(){ + + // create box + startView = UIView() + startView.backgroundColor = customStartBgk + startView.translatesAutoresizingMaskIntoConstraints = false + + startLabel = UILabel() + startLabel.text = "Start from here" + startLabel.font = UIFont.boldSystemFont(ofSize: 22) + startLabel.textColor = UIColor.white + startLabel.translatesAutoresizingMaskIntoConstraints = false + + // credit label + creditLabel = UILabel() + creditLabel.text = "Credit Available:" + creditLabel.font = UIFont.boldSystemFont(ofSize: 18) + creditLabel.textColor = UIColor.white + creditLabel.translatesAutoresizingMaskIntoConstraints = false + + // credit figure label + creditFigureLabel = UILabel() + creditFigureLabel.text = "$100.00" + creditFigureLabel.font = UIFont.boldSystemFont(ofSize: 18) + creditFigureLabel.textColor = UIColor.white + creditFigureLabel.translatesAutoresizingMaskIntoConstraints = false + + startView.addSubview(startLabel) + startView.addSubview(creditLabel) + startView.addSubview(creditFigureLabel) + self.addSubview(startView) + + } + + func setupScanComponent(){ + //box 2 + scanView = UIView() + scanView.backgroundColor = UIColor.white + scanView.layer.cornerRadius = 10 + scanView.layer.shadowColor = UIColor.black.cgColor + scanView.layer.shadowOpacity = 0.5 + scanView.layer.shadowOffset = CGSize(width: 2, height: 2) + scanView.layer.shadowRadius = 4 + scanView.translatesAutoresizingMaskIntoConstraints = false + + // scan label + scanTitleLabel = UILabel() + scanTitleLabel.text = "Scan" + scanTitleLabel.font = UIFont.boldSystemFont(ofSize: 22) + scanTitleLabel.translatesAutoresizingMaskIntoConstraints = false + + // scan text label + scanTextLabel = UILabel() + scanTextLabel.text = "Scan the SQCode near the device" + scanTextLabel.translatesAutoresizingMaskIntoConstraints = false + + // scan button + scanButton = UIButton(type: .system) + scanButton.setTitle("Scan SQCode", for: .normal) + scanButton.backgroundColor = customButtonColor + scanButton.setTitleColor(UIColor.white, for: .normal) + scanButton.layer.cornerRadius = 20 + scanButton.translatesAutoresizingMaskIntoConstraints = false + + scanView.addSubview(scanTitleLabel) + scanView.addSubview(scanTextLabel) + scanView.addSubview(scanButton) + self.addSubview(scanView) + } + + func setupTypeComponent(){ + //box 3 + typeNumView = UIView() + typeNumView.backgroundColor = UIColor.white + typeNumView.layer.cornerRadius = 10 + typeNumView.layer.shadowColor = UIColor.black.cgColor + typeNumView.layer.shadowOpacity = 0.5 + typeNumView.layer.shadowOffset = CGSize(width: 2, height: 2) + typeNumView.layer.shadowRadius = 4 + typeNumView.layer.cornerRadius = 10 + typeNumView.translatesAutoresizingMaskIntoConstraints = false + + // type label + typeTitleLabel = UILabel() + typeTitleLabel.text = "Type" + typeTitleLabel.font = UIFont.boldSystemFont(ofSize: 22) + typeTitleLabel.translatesAutoresizingMaskIntoConstraints = false + + // type text label + typeTextLabel = UILabel() + typeTextLabel.text = "Type the number near the machine" + typeTextLabel.translatesAutoresizingMaskIntoConstraints = false + + //button + typeNumberButton = UIButton(type: .system) + typeNumberButton.setTitle("Type Number", for: .normal) + typeNumberButton.backgroundColor = customButtonColor + typeNumberButton.setTitleColor(UIColor.white, for: .normal) + typeNumberButton.layer.cornerRadius = 20 + typeNumberButton.translatesAutoresizingMaskIntoConstraints = false + + typeNumView.addSubview(typeTitleLabel) + typeNumView.addSubview(typeTextLabel) + typeNumView.addSubview(typeNumberButton) + self.addSubview(typeNumView) + } + + //MARK: initializing the constraints... + func initConstraints(){ + NSLayoutConstraint.activate([ + startView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor), // Leading constraint to the left edge + startView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor), // Trailing constraint to the right edge + startView.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor, constant: 0), // Adjust top spacing as needed + startView.heightAnchor.constraint(equalToConstant: 200), + + startLabel.topAnchor.constraint(equalTo: startView.topAnchor, constant: 32), + startLabel.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 16), + + creditLabel.topAnchor.constraint(equalTo: startLabel.bottomAnchor, constant: 16), + creditLabel.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -16), + + creditFigureLabel.topAnchor.constraint(equalTo: creditLabel.bottomAnchor, constant: 16), + creditFigureLabel.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -16), + + scanView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 16), + scanView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -16), + scanView.topAnchor.constraint(equalTo: startView.bottomAnchor, constant: 16), + scanView.heightAnchor.constraint(equalToConstant: 200), + + scanTitleLabel.topAnchor.constraint(equalTo: scanView.topAnchor, constant: 32), + scanTitleLabel.leadingAnchor.constraint(equalTo: scanView.leadingAnchor, constant: 16), + + scanTextLabel.topAnchor.constraint(equalTo: scanTitleLabel.bottomAnchor, constant: 16), + scanTextLabel.leadingAnchor.constraint(equalTo: scanView.leadingAnchor, constant: 16), + + scanButton.topAnchor.constraint(equalTo: scanTextLabel.bottomAnchor, constant: 16), + scanButton.centerXAnchor.constraint(equalTo: self.safeAreaLayoutGuide.centerXAnchor), + scanButton.widthAnchor.constraint(equalToConstant: 160), + scanButton.heightAnchor.constraint(equalToConstant: 40), + + typeNumView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 16), // Leading constraint to the left edge + typeNumView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -16), // Trailing constraint to the right edge + typeNumView.topAnchor.constraint(equalTo: scanView.bottomAnchor, constant: 16), // Adjust top spacing as needed + typeNumView.heightAnchor.constraint(equalToConstant: 200), + + typeTitleLabel.topAnchor.constraint(equalTo: typeNumView.topAnchor, constant: 32), + typeTitleLabel.leadingAnchor.constraint(equalTo: typeNumView.leadingAnchor, constant: 16), + + typeTextLabel.topAnchor.constraint(equalTo: typeTitleLabel.bottomAnchor, constant: 16), + typeTextLabel.leadingAnchor.constraint(equalTo: typeNumView.leadingAnchor, constant: 16), + + typeNumberButton.topAnchor.constraint(equalTo: typeTextLabel.bottomAnchor, constant: 32), + typeNumberButton.centerXAnchor.constraint(equalTo: self.safeAreaLayoutGuide.centerXAnchor), + typeNumberButton.widthAnchor.constraint(equalToConstant: 160), + typeNumberButton.heightAnchor.constraint(equalToConstant: 40), + + ]) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} diff --git a/PowerUp/Start Screen/StartScreenController.swift b/PowerUp/Start Screen/StartScreenController.swift new file mode 100644 index 0000000..89812d3 --- /dev/null +++ b/PowerUp/Start Screen/StartScreenController.swift @@ -0,0 +1,36 @@ +// +// StartScreenControllerViewController.swift +// PowerUp +// +// Created by Jefferson Cuartas on 9/25/23. +// + +import UIKit + +class StartScreenController: UIViewController { + + //MARK: initializing the First Screen View... + let startScreen = StartScreen() + + //MARK: add the view to this controller while the view is loading... + override func loadView() { + view = startScreen + } + + override func viewDidLoad() { + super.viewDidLoad() + startScreen.scanButton.addTarget(self, action: #selector(onButtonScanSubmitTapped), for: .touchUpInside) + startScreen.typeNumberButton.addTarget(self, action: #selector(onButtonTypeSubmitTapped), for: .touchUpInside) + } + + //MARK: submit scan button tapped action... + @objc func onButtonScanSubmitTapped(){ + print("Scan Button: I was clicked!") + } + + //MARK: submit type button tapped action... + @objc func onButtonTypeSubmitTapped(){ + print("Type Button: I was clicked!") + } + +} From fff8e1a012396956666b7ee113ae6467f057ac4c Mon Sep 17 00:00:00 2001 From: Cliff Li Date: Sun, 1 Oct 2023 12:31:08 -0500 Subject: [PATCH 10/71] Store Layout finished --- .../blue_bg_1.imageset/Contents.json | 21 +++++ .../blue_bg_1.imageset/blue_bg_1.jpg | Bin 0 -> 9880 bytes PowerUp/Base.lproj/Main.storyboard | 85 ++++++++++++++---- 3 files changed, 89 insertions(+), 17 deletions(-) create mode 100644 PowerUp/Assets.xcassets/blue_bg_1.imageset/Contents.json create mode 100644 PowerUp/Assets.xcassets/blue_bg_1.imageset/blue_bg_1.jpg diff --git a/PowerUp/Assets.xcassets/blue_bg_1.imageset/Contents.json b/PowerUp/Assets.xcassets/blue_bg_1.imageset/Contents.json new file mode 100644 index 0000000..cccdb28 --- /dev/null +++ b/PowerUp/Assets.xcassets/blue_bg_1.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "blue_bg_1.jpg", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/PowerUp/Assets.xcassets/blue_bg_1.imageset/blue_bg_1.jpg b/PowerUp/Assets.xcassets/blue_bg_1.imageset/blue_bg_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b84fd4c0d0ec4b9e6b9334cfe3a2e6eef3d4d7ca GIT binary patch literal 9880 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 literal 0 HcmV?d00001 diff --git a/PowerUp/Base.lproj/Main.storyboard b/PowerUp/Base.lproj/Main.storyboard index 0d3c69b..7f15f59 100644 --- a/PowerUp/Base.lproj/Main.storyboard +++ b/PowerUp/Base.lproj/Main.storyboard @@ -5,6 +5,7 @@ + @@ -32,33 +33,82 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -67,6 +117,7 @@ + From 6c7a1208badf8f869c691c2ff8dc5f29e1b677b4 Mon Sep 17 00:00:00 2001 From: Yucheng Date: Sun, 1 Oct 2023 14:39:23 -0400 Subject: [PATCH 11/71] Wallet FrontPage --- PowerUp.xcodeproj/project.pbxproj | 4 + .../UserInterfaceState.xcuserstate | Bin 16875 -> 40551 bytes PowerUp/SceneDelegate.swift | 20 +++- PowerUp/WalletViewController.swift | 104 ++++++++++++++++++ 4 files changed, 123 insertions(+), 5 deletions(-) create mode 100644 PowerUp/WalletViewController.swift diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index 553938f..7a304eb 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 4453BF782AC9F0820017F04B /* WalletViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4453BF772AC9F0820017F04B /* WalletViewController.swift */; }; 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15422ABB77F0002B64C1 /* AppDelegate.swift */; }; 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */; }; 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15462ABB77F0002B64C1 /* ViewController.swift */; }; @@ -37,6 +38,7 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 4453BF772AC9F0820017F04B /* WalletViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletViewController.swift; sourceTree = ""; }; 858F153F2ABB77F0002B64C1 /* PowerUp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PowerUp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 858F15422ABB77F0002B64C1 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; @@ -109,6 +111,7 @@ 858F154B2ABB77F1002B64C1 /* Assets.xcassets */, 858F154D2ABB77F1002B64C1 /* LaunchScreen.storyboard */, 858F15502ABB77F1002B64C1 /* Info.plist */, + 4453BF772AC9F0820017F04B /* WalletViewController.swift */, ); path = PowerUp; sourceTree = ""; @@ -263,6 +266,7 @@ buildActionMask = 2147483647; files = ( 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, + 4453BF782AC9F0820017F04B /* WalletViewController.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, ); diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate index b043c6134d7656aff63584c0585b896e95c01e8d..849dd5e2bd7e3e1f874c1eeab98e0bc1e503623f 100644 GIT binary patch literal 40551 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 delta 8730 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 Date: Sun, 1 Oct 2023 16:26:12 -0400 Subject: [PATCH 12/71] Wallet FrontPage-MVC --- PowerUp/WalletView/WalletView.swift | 20 ++++ PowerUp/WalletView/WalletViewController.swift | 29 +++++ PowerUp/WalletViewController.swift | 104 ------------------ 3 files changed, 49 insertions(+), 104 deletions(-) create mode 100644 PowerUp/WalletView/WalletView.swift create mode 100644 PowerUp/WalletView/WalletViewController.swift delete mode 100644 PowerUp/WalletViewController.swift diff --git a/PowerUp/WalletView/WalletView.swift b/PowerUp/WalletView/WalletView.swift new file mode 100644 index 0000000..2191ce9 --- /dev/null +++ b/PowerUp/WalletView/WalletView.swift @@ -0,0 +1,20 @@ +// +// WalletView.swift +// PowerUp +// +// Created by Hank Gu on 10/1/23. +// + +import UIKit + +class WalletView: UIView { + + /* + // Only override draw() if you perform custom drawing. + // An empty implementation adversely affects performance during animation. + override func draw(_ rect: CGRect) { + // Drawing code + } + */ + +} diff --git a/PowerUp/WalletView/WalletViewController.swift b/PowerUp/WalletView/WalletViewController.swift new file mode 100644 index 0000000..f4a383c --- /dev/null +++ b/PowerUp/WalletView/WalletViewController.swift @@ -0,0 +1,29 @@ +// +// WalletViewController.swift +// PowerUp +// +// Created by Hank Gu on 10/1/23. +// + +import UIKit + +class WalletViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PowerUp/WalletViewController.swift b/PowerUp/WalletViewController.swift deleted file mode 100644 index 8dd693e..0000000 --- a/PowerUp/WalletViewController.swift +++ /dev/null @@ -1,104 +0,0 @@ -// -// WalletViewController.swift -// PowerUp -// -// Created by Hank Gu on 10/1/23. -// - - - -import UIKit - -class WalletViewController: UIViewController { - - // Gradient Background - let gradientLayer: CAGradientLayer = { - let layer = CAGradientLayer() - layer.colors = [UIColor(red: 0.2, green: 0.6, blue: 1.0, alpha: 1).cgColor, UIColor(red: 0.1, green: 0.5, blue: 0.9, alpha: 1).cgColor] - - - return layer - }() - - // Balance - let balanceCard: UIView = { - let view = UIView() - view.backgroundColor = .white - view.layer.cornerRadius = 15 - view.layer.shadowColor = UIColor.black.cgColor - view.layer.shadowOffset = CGSize(width: 0, height: 2) - view.layer.shadowOpacity = 0.2 - view.layer.shadowRadius = 8 - view.translatesAutoresizingMaskIntoConstraints = false - return view - }() - - // Header - let headerLabel: UILabel = { - let label = UILabel() - label.text = "Wallet" - label.font = UIFont.systemFont(ofSize: 34, weight: .bold) - label.textColor = UIColor.white - label.translatesAutoresizingMaskIntoConstraints = false - return label - }() - - // Balance Display - let balanceLabel: UILabel = { - let label = UILabel() - label.text = "$0.00" - label.font = UIFont.systemFont(ofSize: 40, weight: .semibold) - label.textColor = UIColor.systemBlue - label.translatesAutoresizingMaskIntoConstraints = false - return label - }() - - // Add Funds Button - let addFundsButton: UIButton = { - let button = UIButton(type: .system) - button.setTitle("Add Funds", for: .normal) - button.titleLabel?.font = UIFont.systemFont(ofSize: 20, weight: .semibold) - button.backgroundColor = UIColor.white - button.setTitleColor(UIColor.systemBlue, for: .normal) - button.layer.cornerRadius = 12 - button.translatesAutoresizingMaskIntoConstraints = false - return button - }() - - override func viewDidLoad() { - super.viewDidLoad() - gradientLayer.frame = view.bounds - view.layer.addSublayer(gradientLayer) - setupViews() - addFundsButton.addTarget(self, action: #selector(addFundsTapped), for: .touchUpInside) - } - - func setupViews() { - view.addSubview(headerLabel) - view.addSubview(balanceCard) - balanceCard.addSubview(balanceLabel) - view.addSubview(addFundsButton) - - NSLayoutConstraint.activate([ - headerLabel.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 40), - headerLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20), - - balanceCard.topAnchor.constraint(equalTo: headerLabel.bottomAnchor, constant: 40), - balanceCard.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20), - balanceCard.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20), - balanceCard.heightAnchor.constraint(equalToConstant: 150), - - balanceLabel.centerXAnchor.constraint(equalTo: balanceCard.centerXAnchor), - balanceLabel.centerYAnchor.constraint(equalTo: balanceCard.centerYAnchor), - - addFundsButton.topAnchor.constraint(equalTo: balanceCard.bottomAnchor, constant: 40), - addFundsButton.centerXAnchor.constraint(equalTo: view.centerXAnchor), - addFundsButton.widthAnchor.constraint(equalToConstant: 160), - addFundsButton.heightAnchor.constraint(equalToConstant: 50) - ]) - } - - @objc func addFundsTapped() { - // Redirect to Stripe's page to add funds - } -} From 0832aa561cf852bac7dceea1a8a4e50f8363da62 Mon Sep 17 00:00:00 2001 From: Yucheng Date: Sun, 1 Oct 2023 16:31:53 -0400 Subject: [PATCH 13/71] Wallet FrontPage-MVC --- PowerUp.xcodeproj/project.pbxproj | 20 +++- .../UserInterfaceState.xcuserstate | Bin 40551 -> 39344 bytes PowerUp/WalletView/WalletView.swift | 99 ++++++++++++++++-- PowerUp/WalletView/WalletViewController.swift | 23 ++-- 4 files changed, 120 insertions(+), 22 deletions(-) diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index 7a304eb..d885c9a 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -7,7 +7,8 @@ objects = { /* Begin PBXBuildFile section */ - 4453BF782AC9F0820017F04B /* WalletViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4453BF772AC9F0820017F04B /* WalletViewController.swift */; }; + 4453BF7B2ACA0AC30017F04B /* WalletView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4453BF7A2ACA0AC30017F04B /* WalletView.swift */; }; + 4453BF7D2ACA0ADE0017F04B /* WalletViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4453BF7C2ACA0ADE0017F04B /* WalletViewController.swift */; }; 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15422ABB77F0002B64C1 /* AppDelegate.swift */; }; 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */; }; 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15462ABB77F0002B64C1 /* ViewController.swift */; }; @@ -38,7 +39,8 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 4453BF772AC9F0820017F04B /* WalletViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletViewController.swift; sourceTree = ""; }; + 4453BF7A2ACA0AC30017F04B /* WalletView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletView.swift; sourceTree = ""; }; + 4453BF7C2ACA0ADE0017F04B /* WalletViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletViewController.swift; sourceTree = ""; }; 858F153F2ABB77F0002B64C1 /* PowerUp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PowerUp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 858F15422ABB77F0002B64C1 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; @@ -80,6 +82,15 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 4453BF792ACA0A2A0017F04B /* WalletView */ = { + isa = PBXGroup; + children = ( + 4453BF7A2ACA0AC30017F04B /* WalletView.swift */, + 4453BF7C2ACA0ADE0017F04B /* WalletViewController.swift */, + ); + path = WalletView; + sourceTree = ""; + }; 858F15362ABB77F0002B64C1 = { isa = PBXGroup; children = ( @@ -104,6 +115,7 @@ 858F15412ABB77F0002B64C1 /* PowerUp */ = { isa = PBXGroup; children = ( + 4453BF792ACA0A2A0017F04B /* WalletView */, 858F15422ABB77F0002B64C1 /* AppDelegate.swift */, 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */, 858F15462ABB77F0002B64C1 /* ViewController.swift */, @@ -111,7 +123,6 @@ 858F154B2ABB77F1002B64C1 /* Assets.xcassets */, 858F154D2ABB77F1002B64C1 /* LaunchScreen.storyboard */, 858F15502ABB77F1002B64C1 /* Info.plist */, - 4453BF772AC9F0820017F04B /* WalletViewController.swift */, ); path = PowerUp; sourceTree = ""; @@ -266,9 +277,10 @@ buildActionMask = 2147483647; files = ( 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, - 4453BF782AC9F0820017F04B /* WalletViewController.swift in Sources */, + 4453BF7B2ACA0AC30017F04B /* WalletView.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, + 4453BF7D2ACA0ADE0017F04B /* WalletViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate index 849dd5e2bd7e3e1f874c1eeab98e0bc1e503623f..72fcfce11a7dbe444d7fe2fe0e02e5e37ac2620c 100644 GIT binary patch delta 18940 zcmbun2Y3@l)HbS_ty;Ory~;%{a&NdBcN^Sou#IuYMef~l!A(05Ahb{f2@pbJ(`yI> z2rUpwAVBCffe;8a5L)OZ+>vZU@+IHB_kVu-SxcJTot<;ed)_&7=Eyg9!1Wv9%py=f zt9Yf-7D#~|um=vn5y*fOa0WiW5BP&15DY>=7>EQ>AQlV*@gM;tf>e+OGC(F61+qXc z$OCnt2{eN?&&m)_}EO9rzNg2Va2=U?bQ9z6HC$ zZtxvA01hg_ac}~h1ZTima1LAszk(~^1$YTwf!E*-_zS#+0tg_41Z1EN)P+XS7+OJV zXak*~GmL~$FdD|dSU3z0hjB0-Ccs3P3P-^#I2snfLRbzfU?psXO>hdF3a7#8@FO?_ z&V;kzY^Z{BpmHAk9DV_N;c~bFu7_X24R9OW4o|_;@C-Z)&%yKX0{jX73@^e<@Cv*I zZ^Pf=1NacWfG^=I_?jRIijWXigf(G9*b-90j<6>j2uDIjxDr0Z5F&^OCZdRFB8EsJ zk_kCcMwAm3L?uy0R1-Bst&*rC>WOBegXko>h;hVtVk$9>m`;2|%pg7?<`IjCK4LMk znpi`uB{mXY6Z?q$#P`Gj;vn$@afmod93xHzF%3vrFOMcgJ{5HE>W#B1UW z@fY!y6p(;~BteQuT~bUMl18KjX-P^+J8}r=ODg?He=>j!B!kE>GMtPcW5{7-JefkK zk{M(UIfg7E8_6cJnN*N1WGmT5c9Mu3M@}K9lGDgOaxuAtTuLq@my;{VmEKEz`b)R}bJ*J+}LYkvRv=*&R>(IKi znAW59X(!s5cA;HqH`<-{pgn0X+MAB1W9V3V7(JYhqvPoWdK8^SkEXNf96FaSqKoM= zx}2_|JLpcji|$s^J+zXZKu@Hn(X;7!^dh>CUQ92c*VA9o8|aPn*YqZOGrfi0OYfui z)8Eqv=!5i8`WStRK22YvuhTc^oAfREHvKz&hkil7q+ijm={NLW48f2L%NR07j3pyw z>==8-iE(4x8E?jq@n-^<5N0S7%EU9u1SXM5Vv?B@CWFajvY8wvmnmY3897tN)G)P7 z3)9N9F|(N2jEb4V%w;}iK4IoD^O*(Ar_4g8k6FyDU^XxtnXj2m%w}c_^BuE?*~{!> z_A@^)$C(q%dFCQ>iMhgDWo|IPGk2K#%%99N<~j446|iDfPs!@D2CN}##2T|UtSu{L z?O0bfgpFe3*d)OvHklp4X0oH$95$EDV-;)*+sd}F?d({#gY9Iy*lxCm9mh^)XRtHb zdF*_)m+fO0v&-4_>=t$>`yIQ7{hmF<9%hfRH`!b4ZT5He4ttmVgT2SzXCJT+S>+S< zwGavkp-8ADG!z;MjfK`iN1?mWTj(S77X}N%gyF(yVXiPwm@h0477E7*i-g6(5@D%O zF02$b2wR11LZy%wekhzQoFY^S7YKWWONA?iYlUA4HwZTij|z_oj|)!-PYO>7PYcfo z&kD~8&kHXKe-qvo{w{o^6#glEC44P>!_k~JXTX_orko{b!`X5UTqqaDg>w;HBp1a+ zb1_^jH;fz3C2}LV(OfoH#1(T@Ts2q2)pCto3)jO<;HGgixjEcCZXx#>*UN3?wsG6J z9o$atTW%M(oBNL2!|mk`a7Ve*+!^i?_X~G}i@eF*;qG$Jxfk3^?iKf1#EOI>P9zd( ziS$JVB2$r6WGAv0d5AnkUZNOLtZ0~MxF}8(FG>(4ijqWWq6}3U6ArGcW-<%)XCkl* zfr|)S;%6Xm8G&CnhOut}EhiPncg@@w&3&VJ|Mbyu70^oJnh>x>AP|9J8%JrSGsA%v z&;~j{7l?r#&<6&nv-uo8cO@_eCcqS!0drshEP+I@kI&;P`6|Ae zui@+XdcHwbqGbvq z^7ruZ3-S#b;veAUkKef2czXxn$E`zcJA-x~#S@qJ$fgK?@*9%7SwJMph zMCtDl;5WqE-`CI2KgieH&)?0)&ufT>f1n?hS1nF}zqeoaNzMJE)%RudjeJ~=mv@4D zO@n*=sN})U^MPF8vm6wFLNEptfnrbsO8I8Kg>U1>@|}D)uUrnwKsl%Ym7oe#gBl+3 z3;D0C_yhbU{xJeV-t?594_jujV2NNUXygUFJFifA>kL&LPc~O2nrbnvnzmNeapP>R zQ}e#PP@Js#N+(DaU~0qhnx>9IagwHKsFRV(+JxgKXqvkU#RZz?w3&k0OHz+-`ifU@)icyvFHjn1E$}+{E)U&~70-set1?GUc;A8L! zmjS#kRQj7=Re>l@Duq-{D=HxehNQz6<8#273>r21ASnzz!SeN6S(rz_?i3& z{5y-E$Irm8^YLfXLa}*zeM?h`Ji5MAzHv-lG>8UYtM$K$pU%hi+v6L-xg}t$z*Bwj zAK`n|N1WI|ED#QkZx7ffFzy9=`Psc-Kd(~hNgW-*58#NvxDOlxhxs}D+&=IlILd#_ zf5O}5)>PKXx zZ{@e~+gCyVeu-glzr-*MOT1%1;@txh?;nsj3MQ!~PUd$GN}Q&acmy1&KKO6>U790K ztRuD_9BeksRm+^if7c81_&sWwO~$|yEC4J5hxonxoIY3ze&qM@AFEQOmL^rOwqLj! zEZp~M;YzVS_Vo+b413hVDPRk1g>A4Mj)fht6L!IF{viJYe~3TKAK`!GkMhU(*AN*Y;K2dmj=&!U*n{D5EZnUD z;qLMeG4w|8kKPIQi(0tL{Ov*EuBwIm4PH|p{O|l7%@HRy6uS%xcL)BV7Va+pM=!j` z-%|^h{s=x%TkcP6x%+C%J;j!LfW`Y4TH$cJelHaW2K#$M2>OM8i-rGFE&Nk_=L5B6 za|oKy!@?5`!4g7(BSeH2p-t!zx`dd2!awDo@z41e{7e27|C)cp|Fw$H?-!mh?zb#q zj)i~QFFXRU-?RuY1LDULPFQ@x83Dn7{Dd2ppKup=st*K!I#$4cu(whJ<0X6ve=I-Y zhXBz_1Ry|S4LGI{Aw-zQzCB3mtdDv?HvAVw1DL37!7Jdq1HqT(W*WWFh;2+A>gAHbqE5! z2>7dd+jnrpVYPOTAmFX~(sPmCpp?gn69VHezTj`h8-2V* zU}Kz*5_*#)gSAUiB#ppu1mgQhmJ}k8h(O^##zN}!k0nku(=Shz;pfX5^fx5nhG}}n zq$w7J#28EJCCv~H1l|2@^dzLUy44DSlwQ&XfmDrENPE&13qm@Oj--rqBArQWk~9P` zo<|~(jz9(inafBw(p|8d^d!AVZv;jm92jDE%t0UzfdaKvbje`Bxjr(4#5%}AV6z9s0woBPA|OYg41sb4DwdH|WVJ@vIiWn@tqiS@K{VcDA*sE zts%eE_&K>w?dKhTW5C{41J%`#G^@?;{XydfihfYAGz9r$)6GU zkdHe}{z6_Rf5jNPLS7{gk=L?SwPCi(DF{r)iAn@!*hTJ_)7k##ZVy`HCi%PC&u)>o z5txd=v_A3daVw3-MKx$O~Nj@$VOWt3istPxt z7L!lNr>flW;1U1Z&4WXFLB16DVETFo-#6r2wITjOK-EhL5SaT9Lr|3JN_dVjOW`Sf z1tp|7N|qZEzW}6%#?KeL8D~Km2yxONBX6DQQrR;9OX;-A=KelHsG<0o%ln_{OojDP&Z--cPS%lB)Ia--rG{faqJ|-` zx|fPmxkuTVCsU&Z#;d3lDwRs3Mo=TEbSi_&q()I$s;Vfdsb*%T@~Hxprg|u)Dk^4K@MLQGVrmLC zm70dYK?IH>a1w!^2kb)4pi~&@)J$p?H5-8+5IBUu;lO>A%sf#bYsiNMAI3T#eND+RjLDr)scVwf4JJkhU~wbZ)&cczFbQWPzw)>2;z zaxqP+KMjuME9x7}UU)1UsjsQo)MjdnW<;kDIE@E|z!?P2E~BqR;~wpFkULuYe$%0dvv@v_#;uk~XA`Xk*%h zHl@vIbJ~KoMBo7e4-t5Tz@G>_M&JnoPZ4;A!1I*?SK6Akp>1g?ZAaVVPmXHLzd&#_ zg4qb>A()RCScn^8u_`d_%aJ~GFwWG_Lug;xkM^en=s-FMftLupLf|z5ZxF!ZzC}>5 zoDQLf(xG%19ZpBkkq80=wGcE%&;mg_1l=0H znNFco5rha52$Bd=OGtNmB%My;zzz?LMv%d8RBuLqpqED%U`MC(5oCMmLIj1X`y*|s z61tR@tG>y$CPfHxs=)M-gubDvYI?ej>Wd6xMl3j~qbt@^g=IMDO|7aDgOdzvpw-Kr zG%_~P!mX}i++e2H$C-~DTYl0~Vx_rMD|4OykjVX|FCK*3FH$vSxBxBHXBj?{NrK6O zj|9Df^@6Q}?SkEcJ%R&*p9HrBk1(KLs_tgQ5EXQ#YDlIlQAJm)iZbVosim6*K1=C3 zx}I*J8|fwlwGq@oP!~Zlf_h771>Hidq}%9r1oaU#!t*qOCJ3h-u+9vz$Ho4Q9Gf$m z0R`0;#<5tK+p+6XZ%Kktsm&aY6%V@=+a9cLC{r$t>YM5C)L<8!`O05)dOU4LrrC~ z!prM4fCNd2^-NUvvxA8~T1%BbCP67@z|x!x7&vl9hab1JPv5Z5z`(9Q9u)}sjEwCf z8v8%lMSOT(^X>~)&%z@#F(rL;acNCm^TfG}makg7dF!6T{nr67aJT8e>)^|gL21v> z7csfhXX$fvz_gBOK|j2p#^z1N zL7}NCCD%grAZLu~WR6v&7!LM)mwu#%?jQ6$`ab=Deu$tyf*75F2nHb-yp;YEbD1ms zlzxU_2xc?fT_}P{suj6=;_0`PL!Tg-0lX1{IJW;hZy+49ad5El)(|>FVM1rHgNI=b zKg$Riju8oT87)Rzu!PaYhaRKP7^pVp)#^s@0t6Eg3`a0Qz521KG*-pt+h!Q!_GbVfy!yr|U1d*Bg*Wc69z zNON-Vu|EBG#A_N=F$L~KAQPlg6u5(6RbRm<&oG>m_gTV(GZ9QAgU5myFb%;G2#&-M zWn!6O0}xF|5U-=u5FM}2q%tEgMj3ozW-l`m!BH5aHZ(JeE@eg!f;1~t56=E4NIg9L z)F2hDqP4^ZCKlFGM;A3%4KYT?J59jsr>Eb?ahMnljf_=jjHA8!g!?Ic!qmKvGb~3)W#G-y}FFP@WU~D!4AV zg<1TC;4i$nWP{5bJaC~yC@yZu#8E{pE@NoH#S0&R$zUN^4Za3Dae=~Ka0DC!=fM@6 z#J+{I*_t0X=&?bAt~$^zu#0Gj(7YdTFeZ;Fz=X==BNpcLGI&PIRkaqoIhFK>HSa_o zyu6&ji_l)C0>Oe_oKl;qI#lc=u45YUl7y*e8W0?VV37)zBwM#L9|(L_Gh>+!rjzMn zx|tqE$?yzf#xZybC{b0HSS7D!CSZ_GVm@RhGgFwU%ryM&BL*Y9P7T@)1UnJzLa-ab zX^6m>>qJBiBI?xBl3t9wxTU;Y-jt5nP_y5mx>b^(I#Oz7OWtJh>h#-#A2199P zC9_swyqHEqh@3gAmL@$-jBy$Jm8)nCUUA+@uy$iv1 z_0?ll$&(~;IjIfuy7;<`qT*)pU?PXSTgv1Vi*zEQ{JFlL}JiMiQ-*F?=-gKN)Iq*Gpg!aU{Y3YGc~~em zh#8d;Gq{scUs9x~tgq{19;s~0EX^J>Pnf4U4MmEIbVXBTT{(hN5u8#e4p9|4IIEOp zrpg!0%Us;Su*w>F8osQLc_qmGdqY3TzfqI?UkKtg@}NOkz_NJCVj)YgBulY0%OLm> zf*5w#II|F(ji727^C8QzBK%idJ!4@o&OwBi28OBXIV(qHT;A$n!dl=(6l=jx6qaKk`832xS;vC~0> z5-;gk47RTZve@i+>>K~yi5j3ab_zQUPiriO*T!CUI)Y!Tv)5+qEOw42d(EnF_8M-& zSt-2Rl%&~hGBaJkex^xTu?um^3T}CSa(0b_atXV1AavH`kK%B^R^K#Mom}W+mkDzJ zmvjF{zzU3jRqSevfVH5A4My-=jrsQ?xLsrZv;5e9ng1(xgYv!o_aKPl&v#7GZ-2ZY zyO`a|ZewvTI}yaBwEMmNSJ0Q#_Qy}cF&ehNL3)Y2P9B4U{c=pD1KY~|vCV&D;DA7> zp^xwW69l{l1RWY87}Wo9_GgR)_5^#9J;k18&#-6NbL@Hc0{at!*z@)y_&tIL5Il(B z4+!E2`7nYwLjG|TdvO35zYYN7ni?2K2e&xj@j+yq9z@0?H8TE0@Yo#}7LrANEaY}9bbr={wsdpumLT#Z~gAAdr8X0Ha zo#p@MHdy{YH2W{>3r$#Gp_$N}4G>y_Vzu>u)>!`vf|z%)^FQW0|EKkZHY0?#@2&qU zf*1a$^@TDlvCv8AEOZfKWnmRxMDP-Vzr2Hh&_wOp>c?paUd7i+l>a$3{J+fy!jOI{ zxcr|en4m!cp4{B+VC74TBEQT!$629{`v;T%cD<;^O%F?9zqEaX4f5CvcfMGCQ_z{M|Oi-$Z0n)$#WAdpQ2814uV}XCp z0m3;-;oSEyc!MBbApMgBgrBNmuu%A!aFGyC0M8M8f#6F7U%i6?^N(=h{}2F5fv#{} zKLTF=Cj$N+5Dcn$i*Sz`0pAF>3bzTj3wH>23cnTZ67Cj$hu~X82oM1f0TDqUfXZ=8Uih)3g z-=F>$5^{@+YKrP`Elp8V>A!Fw{EPMF1RP)kI06)691zB891s?WFwo$@gKzntIN%sg z$-ct@VU7sH|A_-m2Tul^E+^*n5MhJ}6GWK4gMjca4HMueX_x@V-H{Cq|No}~P9pGB zVkRNX{u2VN8WL#zI|*=(9M0FT;$)l?=ghfquACd^&UtX2oEIW25g|c@6(Xz=VS@h_FY5!z#|F9|D|z|5U&Qs}bPH8}#pX6HWtD0pT_PfJiP51AvQ1glqr+9Ijva zj|!au<8$d;CN@5ofe7bbZWJPL`bX+$!sT%J*t}dWPOlTL>Z%7z!ESz?%C^Bgoh#wW zG^Xd|YSX)`IlvM##J}rza{s1RF{zoQxjG!Ta`lMt#&PROu1TQFHFFBp{Z>mQ;e&{j ze*r{I6kIzu_J0rs5rT*z{~J+oN{)Yz4~!|_f8k>yRth(X`;eQ=O+mQcf$&!%T<|~y zzC+3X6;WWZ=4*I@2>MTu{0C2zbA8-eHA)t9OSq-nGHyAyf?LV0;#PBO5HS=Hp@;}W zL^vWM5D|%pC`3dfA_ft$t2n%5Q}0W18~TZY+pI>(utA=Pd(RU|gFM0QQ^RCG!qpl5 z^=#b1|1X~4j&XQLzn43XhoUqHVZXBwB2R5Z4}MUjlRK(j|ymRD%b3_8FY z5mfj67xz{q5Md_9K9GfQ6$+8P1nbljC!<~Qx@ZOl_)JyYcwS$mEz-ryY>^Hka(hK$ zMC9RRwx!Y#ud+o(B4b44BVx?^MVZJ9hZv&c%|D#GqwfY;4LA#eL`z;+QWGyk5< z5IKmP|LcAie7_qaiq!WP<06Zui3X_yB8j|3c#mO)$VW6p~y4|a)CRj*5(ltit@ zP@)l{k+~`9n!KN8ohnMl>(swB6pHox^MW$bsEdrIa3^N4xOJjJ!_ zFIhcY#BPMwsTO!;YJ*GI9q}sE6|XnF@Jg_Vtz##!3vmhh74|Qo4X!Is7Utk8@)BG@ zUM{S|HRMe~1+F9i1Xqeb=O~WlI9v*@%jt1uoD|da5Y7)5g2&^s?`*DsE9V-xiQIHf zxd40SDsBz;CHED#5m$MC&m9y|A{~*9NQO(bLq$=zTzeQU(oPnoVjX=XIxIRZx+J9C1@pUrD{#q+N$+d zJ5;+x`%CSgv~OzP)xM|wK>LaIGo|(m?N>Uij#$T1$4bXWN2=4VgLEe8Ow*aK^Qq2f zI-l#j(dBd{y4Je3x^}t_x-wm7T~}RqT~FO8-5A|rx^cP*x=Fezx@o#2bu)BF=~n1A z>n_k;r+Y~En(hNJCzgmE#Y4n?;s9}wI7A#O4i`s?Q^eWgQgNBMLR=+Q?hzjrpAw%J zUl-pL-`0!JOV&%(8=<#KZ;Remz3uw?`quik`gZzV`jhpi>QC3dp?_chnf_}7%0S=1 zz`)SJ*ucvm$ROBYs6nhjgTYvXE`uHe-e9W1G=upDYYf&ItT)(T@U_8agKrGB8SF6l z*5HJ}DT6Zx=L{|w{A_T^;IhFLrNM6o*A1Q-LPKZ6P{VA)W<#ane8V+{n+*3D?lb(} z@Sx!#!y|@A4UZdMGQ4bf#VE*Vm{FWjf>EE*mquS1Z8X+0HZ!&`mKe7fk2C(jc%t!T zk~4#;ne)!EBe=5woLa$IVWf4>6B0k1~%jA7(z@e5Uzq^Eu`poBv_{ z(n8ll&%(gM$il?J%)-J#VqtAzYhkCf2($>c7-|t_5n&N!5o0mTBF-YgBFQ4fqS|7L z#X5`Q7LP5>EyFDHExRn|TlQHlwOnqw(sG04cFUcXyDY!6+-tet@_^+JmWM3QS^i{s z(ekq870cfw0*SUnUt%aRmRLw65^IUA#9cB}5-S-diIXHsG9*QkGD(G`N>VRTHcFZ$ zEs{>j6v-!&HIj9b^^y&euO*u$-$=Gec1XUJ?3SF7oReIT{4BX7xh%ON`Au?Na#M0! za>t6bl368M)mqK6+G6#y)k|wLYk%u->nQ6O>tWWZ)}yU+tn;i3tjAavTbEilS}Uwu zt;bq-T6bG7uwHJx#(JIgdh1QrTa?yYt+!hrvi{NfC+o}BSFC@tzGeNp^jjN5jji-&b%@CV7n*^IAn-rTgn~^pdHlu7t+vM2f*%a7x+AOg7 z*5+4R($>W`#kSUVn(a#44Yr$Xx7cpA-D7*$_D9=ewkK>)*`BdIXM4f+hV5lTNKZ*0*y-90vCFg@YxlX` zUc0OIz~0JUX76I}X76DiU>{*0rL>Q+A7&qCpJ1P4pJJbDUtmARzQkT`UvB?_{Ve;B z?dRDqu>ah?*M716Qv0v%x7hEq|H1yS{g3u1?N8gEwLfov)Bdr8&_U#&?V#(R=V0Jq zJa7-;Sl8z<1ox2&Oz?*fx`-iLk{;G4IKj=m06Ch zjw;86j-NaBIxcoxg#o*(BLy*;Ltd*$mk%nMyWS_K9r1 z>{Ho#*#_Cyvdyw@WZPvsWxHhGDP{X)-^&ilt~-%VPEH9?C$LE9ONA09OfM19OWG2Ji$)4do4A|1 zTf0l$9o%K^q3#NIuUqUUALE1p+9?|VM-eB$}s^OfftFV0KLOUFykE8T01SFKlrSF=~E*I2JEFQwNs zuNhvmyi{Hvd(HP+=(Wh}q&Mju=-uGG(EEGuW8N=)qkM@4DYjzgPaO zzmdPGzlFb*zpcN$zs%p)KfpiOf2e=Bf0Tc$|8W0G|MC7`_2qXjPK!ZTzK(j#0K1dR>q2|__11WgW_7BnMh zR?y<0twG-hT?o1ubUEm1(Dk5OL3e`g1w9OUtPEy?xnQkeonXCSgJ7dzlVI~;%V4YE zkl?~#6udO}aPa*Qoe=ksgpjO|ypV#BqL8wXijeA%+K{f0gCQqEPKTTexe#(SuhRed8!d=1x!h^#@!z03@!(+oohG&G23eOH- z68=^Ap78zQ2g47C9}PbdemeYI_)pSRAn=VtK^+h@BDpA`V5IiZ~r{F5+3FAW}P0CsH?3FVZT~Hqt&)7U>e{ z78w>fJTfjaF)|}EJF+eEgUAVy6C*#2oEteW^3%vgk-d?NBfpB=8u@+X&yl}GUWvRG zc{B3&$Uh<Z*8N+(JjWe{Z)WfEl`C5f_$vWs$za*lG1@{dZ6DvMG^&5l|b z^=;I_s7p~#qM2y3=$z;=(XG+l(H}<7jb0Sp8@(iYdGxC2jnSK5V(MeMV#dczjF}uWEk+gdu`*_U%)*#OF$ZFv#M;KX z#Ja@>#YV(N#}12)k4=kBj~x}89h)0l99tdR96v68Li|VZ3*#5ZuZrIizc2nk{Gs?C z_T`NccM8K*I5a%Lz9U z?k7A-c%1Mwkw~Ny*+iu%Q72KHXqIT1Xq9N2=#uD~=#dzZn3R~3n3gy)F(WZ6F*`9g zF+XukVo9Pru_;lJ*qS&t@p$5;#LJ0S60ao%B@Ii;O3F#fPa2a{l2n#dnN*WhpTsAP zOPY{0DQR-jw4@nHvyxOvbCcF4?MS+tY?K_3+@3rq`ODMP!j$Hei75+GmZ$7YIiB)M%AJ&# zDQ{8*sYEKBDooW%)lIcZwN158m8H6*x~F=j4oUS(El!=2x*~O3>aVG9)1+yhX@O}W zX<=!RX)$TZX=!QcY06P)*=f0HO=%O;K2O`0b|&p=+V!+sX?N1@r9BuS8eurXdxY8wjxFSFi^RtmD&Y@=*xwnMg4wrjRWws*E~c4T%;_VDcZ?8NMp?6mBW z*|ph|vU{_4WFOAHll@2b%N#0)%@O73-@Bt#Si$6LPb28*@L%{UWz7cWLhO+*QilwYlqaujT%c z`!x4O?(5vQc`%R6)628Wljb?(Ipw+L4axJ%3(L#TE6ziCALY%;Q{{b}_j%r$ymfi& z^ET$~&fA-}Kks1PjlBDL&-3l_o$}N3^Yaz?D1S=+^!%Cms{D`hKhN*WUz)!ne|7%a z{C)Z7^B)#y703#F3jzv)3zVS+5d~2N`2}SK;|nGhOfIr6aw_sG3M>jK3M+~%iY_WI zYA9;NRifQRQ;Mb+%`8$C%`N(*Xj9Riq60;Tihe9QS#-MSY|;6m2gUlu*2VtCLB&Ih z!;7PeV~gX86N^)dM-*oiXBF2KHx@S+w-%2r?kZLmk1L)~{9*Cb;*W}FDvOsCpD6yV z_+E)#NkB8GWim3~?JP3hj!{iP>M zPnDi7JzILe^ik=P(&weGO8=4zDmr%hPa8T%o*JUMeq_cgQEnr^u(t zXUG@Gm&;em*T}z=?~w13e<$B3KO(;%|5^Tv{8#yH`P(wG%)HF5%%jY^%(twmtg~!V z*|f5GWxZuf%9fX{D%(=Fuk1kCp|T&#j+dP(J6rZ!*^RQ>Wp~T&mpv+bT=rC14$6(n zUCV>YW6R~`P32?DyULa2yWK@(@d{8m3VoAlGiv1M_D-Ks2tvFF}y5elbg^EWNPb!{QysG%C5>yhET9pQs z#+7E3mX%hOu9Y5@-j%+UiIt-(b1Iejm1A%fMnh#&WlLpu<&?^4l`|@5RW7eQS9z`S zMdj=@}Z>io|y}f#8^`Yt?tB+Tosy|etD3)RK`l|MRcladTx(WqS!-46TI*5kUF%z$P@7eo zU7J^1SX)zDU)xx#sO_qqTsyV)qgv(6+Rth?)NZQ%rgnSnx3%BZ?yEged#Luu+T*p? zYj4&5UVFFpUhTu$KWm@VKC69M`?~h8I*YpCx`H~sZb{vtx_kB7^=|d?^&{&u>qpn; z)R)xP)YsKF)Hl^D>Rao_*H5gUTtBUTM*Xb%b@kipch~Q!-(P>I{z(1N`s4MN>+jY- zRM!7l|Fr&9{hRu?4WL2XVAT-b5Y-Ud5Z92{kkT-sA-!Q#Lw!S2LrX(@LuW%z1K%*Y zVRpmZhItL2HY{rRqG4^r`i6}Sn;T9w{Mzta!}W$+4Nn@LHN0$i)5tYyH|jR(H<~xf z8l4;68a*0A8q*rn8%H%}H|8}KHWoL^8!H->)s1zH;~OV7e%Lsraa!Yy##xQ3#<`92 z8W%J!Y~0#-zVUUFRZ~<`MbosV)lG+*ZZokj-^_vZwZJX_z zWz8zccpr!>!Kp4B|3d4BV!&7U=Y-n_1PNAsoT zUz>kZHs5Hz-F&zCe)GfT#|mwQSYeqk;jai%3{`|F5)~B$iZ(@uqFXUVF($n%q%f6Q1TXkC9Ta#KVTbo*2 zTH9MYTF19eYn{&e#3t=C#_wBByL*ZQFK&(he8(^lWs)Yj70*4ELcYWuite%r#f&)fQx zZA;qLwtd~UrEOc=&bD1`N7|0HooqYPcDwCq+w-dfxU?JVuA?QH05 z?riNGtL*IT{IGLs=k(5*ou74n(b?Czv~xq}*PUBBw{;%qJk)ul^H}G(&TE}FI&XL0 z>3rU$-6ifa=rZmy>$2>!?vi#nbUAgoc13hWcg1!M?~3nA>Pqbz*_F|i)s@|q+tuFn zN!RwSOWmMb)}7d0)jhd;S@)OS8@e}jZ|UCM{X_SWZsoD=lig>!&vjqxzS;eI_aEI4 zx*zrE_E`4V_Sp3}_PF-A_jvXA^hEZg^rZJ>_Kfby?({0eiP)c6OfMQ|EbR*|-V*ycNzX0?qS_ z*JxaUJMaKrz#I4he-H?QKqwds!ax*=2IIhZ5DzARi69x|fvKPfC_x#h1k*q*r~_)y z2xfyhU@n*k=7TqZ7Q6)(fVaUyun6>n0k9mb0PDbd@Co=7dCKaS7=}Y>N!DI*-Nk);Wq$Z6_Cnu9r$P6-*%p>#30Gyz-r4~_(sU_4>>V0Y%)kpPHtErEvP1GmUr_^WE z=hQB0H>KG_eMKFj&Qa&7AE*n|Me0ZD5_N^TN?oUJQunBb)E_iW^R$#Upk=fPZAy=( z-Dr2(gI3UukJBgU zlk|7=Df%+~6McogN?)UYrf<==>3j5jhG0mBVrYh8ScYTF84G44W64-C){FxqXIvOx z#*YbMBAF;Ani1JMIUT3t-Tg(Dx1GAC&i20b=#C*bh%6!Ir&V0daX1-*$GrO5R%wFaYbC~&-Imvv- zoMnDsE-{yxYs|0A6Xs9mDf5hZ&b(kHEYC_=J$3|Z!aA|;tOx7M258toHk6HEBiUFs zjvdDqu!ZbYwumieOW0CY$(FI@Yz14zHn6R18#|NjVqa(9U}v-Q+4tB!b``shUC(~N ze#Cyte#U;u9%oOmC)w}VQ|xK>411RSo;}B&XMbdWW^b{#*@x^S_5~;50LOENoGCYw zv*a|koE>M+xpJd9H_n^$;i9-`E{2Qc;<$0#crJy@eFOKv;&755EyoIAyx=FV|HaaXvj z+zsv~_mq3aJ?CEV5+3kS!_z#&8}dfHF>l3N^ESL6@6V6n1NcBbh!5sN_)vZh{w)7JpL&h|nZM5e!vD%Y?V5CS_8_yK_nf`Gt}2wd9a$-V$|>CNt)Z#~-N$A2O2&)WCyVeMUM z5?3xA01lGVD}Wq00w>@MT!hI&hL9!X2zf&M3CUTBf#iEIT5?|UgD^$=k!cB|(Cuex zFPfNYz0D>vKDy&o)bR!A}5!!rnXEsK1x(~z(#oE`*Z8X82f&KwO zeq;Ro{k;7Gg91J5{R4tMea8d_`}p_;`}%wP`T2JaQj{Rxmnf78@j2c;35u#ZMQz5! z;m#+4DH7imAO)m?G>{G^3l&18P$kp|bt^yy$OKs+8{`P}!fc^m_(C`$Se%gbV-!XV zNR~@hfI>kcCY3NwXQ1p$A*CZJ8n19H^ZXX)EsPZ2g!eE?;ubH{8y@}x@KA*5cVTfKcqA+lVM_QDJQqoNieXwR z!t?^e^!~rVWT>wh>IPDf)u8|xj6$D?!V7%E``RM;$V`1W5)%v!pbQ#9BWMgwpeZzi z=FmbI5S9xogq6Z7VYRSESSzd()~|(@g9Jm{L4u(i6a2vt!5<9~{F#p6bP(l@>4iSR zhePy2e@rhN0|UfO*dT1wZSgXh%zt>OVK4$y48w(w`(UK72~+Hn2xH-RJboC5N&WOERviBvtbU*g?TU^7QjL{6&4Ab zg)fCI!d79MuwB?8>=bqhyVt^!A(G37NS=mC-ZMn<{vnbN4UrttDw5nL>>Vb#Q^#Vc z0k@zAvv;3viQvp!g1k*a8meA zI3=833)c-%wqb~}O_;JXLzJBxqU^_E%65sA?H0}sQ?^fJ=6;EnxC!55!4>J^HAN*GMVUV(u@bn;Mr!Zv~#L=I{lwH&=8Et6+FThKKr2U9VyY$yZOq$cr z@E3`1AG|L7)CYeRt_~YaoxOy==?vc$?K+Qwk?&Tp2#n|_yod&j4FdY&O~%R=wX&u`Ra-Nm6gv}DnMzq- zC^KkK7pax8suDH6P*mSKB)vonF;j%Hm1rZ{i4LNZm_cX=fxvJWARt4)5CJ0uj1e#y zgMcXlW(b(CA-Y7ji4pB3qKNSrQA~w}&TC>oM`B<_FmV@F7*WG%F4|ArL==s*%j!pH zyDFXjhH#Mfg0qnh*~^Z08W}l=t>|fqcM-50##VH-_@Q3nCO!&di$BDeYEWDTh?RqY zt`GsW#()y5Md`KqFRyAil^wq6144Af#D~NN1ndy7@7G`;Kh^>1@c$pk&xu_kkY5m+ zi7$yQ#8zS(v7OjK>_kA0fFlA<2sk6)g1{&QToD+JfZG~kH?arfw^x)-{Aqnq;*J3R zQ;7IsD6xQwUtZW$IcSUA{d8g(7Gk6WO%%=8`e1EJh@m#tT@+CfSgV&}a*8-Rh{+id z6A#hM=zPO}K{AN>MG^BK5%3(w{3j9fgBWwXiDST+;}0y)+%bs(aRULL6ESS>;k7>hs{ z0^tZmAP~8d)F%x{8EHrwkyxCg5Qs(~27y=v;t&|OX|cB-!1E2q!J$edn~wTuppTq% z#zvNOBr*Hq5lHAKT}aHpB!pwvp;%UDnn{nr0Zq_q{O7Sgg9nNDAWz#c#@o=J48YWo zScN9`k$7^Eto>w+yOoW4MJSJ?ca}g-O#(JB6mgIClnN8*(kcB|DRu(8| z3dyO1mPN-1vP5iAN-7b^Lm*$|lhYvaj*%1p#xSz-A3eQPIkF{s=o&EHu(?8ZNuLcKMtRg?cdP=S)*N|(;b>w>T1M)+11G!OqHrRSJd?YF&nK&3H zkefw)3>Z|xoWVE&fmWS10w)tu8#jf8m;#IaDc~UPCncu`FlSDYr!f`Uo1tgi&XX5JxbPem^^q45==!H@T^SUonT4`wJmCq# zio$EX!&vK|$r}>i0rEQe3;8Po-3ZJ=pl5)*N!}uFYbS?|)fR=BSf|u0n^d)p4U>!N z%a!W5QkA;4KBlUup`lRbqTLl{>G}5yg9CgZj`(*3UJ>F?l8?zh$R`p5@=x+9`HXz7 z)eo1Cz(l@=0A|hHzYQtdF=}5yRs7MD!9!9&L5jl4LlG2-z#9n6?x$$ULvNFxb3MBPf0C!Ek$OfHI(D+ONVxGXACM@Dq(G6NxYOox_4i znNv9I@1rab(DqT52rT#qvXtE*vTqg2;xV!z+P5RjBIK02#CJ92NI6l?lnXVAa-~L7 zZV0@M0G6jZuo!_Qt0@mkL3vVMlsDx=`BHw`8xf!Sg;NpB5O`l_AgL%S zIxjhWVxzjKxJsF>R1e@YF_PRV$?5n&hd32SMQBe%j%TSFMs25dAaE3cZxJ{qSU5%u z&4EiK_RdgZf1KJYF`)KQ`!`LC8%b)858`uxI+*_w``99N(ExRT`dX5UJ(hShJgCDs zn)h9a2lWkglv+<6qmJu_b`pW_@aPaYg}~{R)Jf_)>J)Vvf8w)e5IBp#_XwQR?VJ@Y zoP0uTTojJ5npE1gv8Gy!ggKhak||g(N*^Z#9V!*f3uUs&wWUR^_C;!Y-w`; zWb&L893x;^EkGg}v#i9HYb)QVowu>dQiFyby=pWQikEFiEfgiaT$7C>9jCaT}5q;vO!hdSXG1# zp--Tv_s~_f&OU|})mI1jD~jsss_?*S8^i{Rm(7R7g*Kz@u!*3}X$yKJZAn|v*0c?6 zi@+}kU_*QZftv{2Lf|$6zael(zFM-Eb`Vtyw{sT1#h~u4IRDhOxrY^Oev&=VI4c5t z?R|X51larddwbgl<4qBS4}5$A?R|oMz3qLx$BeNb9)ur_qlY!LKRt#Hpabb3I+zZj zLunjM+(+O60@#4#DC-ddj}iC-fhP$3xklnnN6?XU6dg^+(6RVvoT%YX5zIy~M<2m_ z1Pc(Hici84ZD8_-NojPB#CH{)PEV$%&>3_loke5c`wRgblD$Asf*?Q;B1o*FbLl)f zpDv&a>8W%Pf+T_l2-+ZMi=Z=tUIiSJBmU4PA>Mg&>U} zgCM({7*E&J4a9gH10#t4c)X)sm)~VXchEDiL8Chnl=jgY1ogC$1@<)EMR(J)v_E9p zk(h!J+Q8H_!q9Z2_Kj3~F0Hj(29E0+$h07Bv~Qb*58)(N0fu118$VX}&gUNt2{q zGDosRvQn~6@*$2H_Dc>)E=X=k9!mby-bjljUZG#r`lh=RuhFk-r>4IXJe$_yJSjbg zo=eZ8=hJT@C_~T?K_di>5j0srzeO*AkLZQ;I|!O0i2YRnf|dwcX?-SJXEwE)a#%K&(fuM)eF);u0R+vp-%Pd+T1BrB zZN@~wv=3sr2zcox=?~})f3@F;;7Gw?xT{U{C)&&@He-g5zo5VTtLYX5t^aDeo!G3OyVVRXCy={whcIUh$meLCX0y#>|Ja`W>?fUPpYZXp2;@WR%cJm zvJlUyi%O=&)K=HkD;vaVe@0PN4a}|9ixRN4NJ20Y!9?xG+>lXX zmXsO81TcXN9#Axb;}DETa02!@OeixJcN4~hGZ9+DJY&lk1Y;45%k=THuP##6$VTYg zCKJQNYQys!K%91Jo@3nLP2(kAOay}CF?KL6YjQ=svZ&PFXQ)fbMDZ#PK*fv0k4YK4 zBSCjkdmv9iWH6c9$9W1Ip1b5{c;zugSOA%PrhqAArXrYvAm&aQg6UWQnG&XSNB}1z zIAu@(yA7+ES}cD|4T2ecOdW!mSpFO+HQmiLiQ+dBi(l3xLzwta`5WcxDas$Wn%0w< zSXkRTYJVz7a4dZs)putLwoit}{k&1Z5EG_Mn5=A2H^_+Nre@~as6rP9EV0k;uf^>~ zTJ`gm!^|3N1&`a<+KH`9#8$Vz#jPCV{XCD&qm#3Xcp*xB%-sZ?y?Zx3tFwQ!d%v68 zUy|>kaEzQjDBg~dubk2C^?BibynP3F-ltGziHkOt8W|&DC593!iKiq?k|>!h$(9sI zDkPPXdWl-nDtSY)2$z1=NY+cXNVZ9KOTLp_!DjQGF{a|iw)7_a^a$0e5x zyw;-z*K^u%9j6Dpir0560!#3^j+J1~;7H)G=J^dNp8L=@*yk8o7pXfK(m|$;>A>cR zX-6=(kHJnPPa9R_;fe;sqnES|x1PoHimiJPEbPPSVx(PA3f<*`x zYmXF7w0@iEm-wz@7BcTJ?=tT(ig}HhC?1P zlczN-nXFw{;;5ZhY^J?a>@ea4vxV7;Bj6vw0JBYtX1Z!%-Jp`}V0Pvvr|T+7DMjjv zerA^>_wOfiCe#7>dRW+qJw$^xw`#8GG^~v{onUl;NlRs!Uj^L1%`3AwJm+CH=NPQ>j zrWjAdIAhI=!JiYl>E|D`K66^K9D%C{whEF#%D!jL;e2Oo#^l)H%2{nmk(l7@XUFRn_O*w)c2(}l>LUrkEJipcqKHw+jN-pkx91bT3p}UHq z``d{@QhpX~;B^FN{58#CZZP+-!DntVx0u_^Z_FL$E`m5@!OX@Mb|!*d2zHCY@PPRp zf8w-*j{ma|#EzjJ5gudLk}uy_VNz(ST_Nd&Ph_9FPo0810G1U83w0#4yS?VIJ% zq59aEvIeY-HDqy2@fw2b5X3(A2O<6pYs#9j=B$OpfE~$NvR14$Ys1>IcC0}_`uyeIFRU?Ucl3e_4 zuK8~+zlpj07P|m*c_Bz;aa@HTg<1S5g6nlGJ|JK!{)5Gf*u{Ub_!9)Nfg03z%wnCa zv;88E2iWE83Isny@FN627I|#0V~3}syO-UE;AaSaj^GyvZbtA+1aW}6bqs>r z5ZsR7jIo-IsLimi$L8dw6KqSuyNn zaoD-1kG+B5-a&T%#@-XzeMe;XK3z2%v-|x)b}QJ&?4N_|ej>8_E6i?O4obq;|8q%z zs5OFx$$v9jGLa)VlA~CAtV_>1P7K(NB6tkJuQ9JhlX?ZgZ~vjroRrfWwC$V>L2QT* z4f7h?_9HrGb4HkW4$n^xzf@zLss{XjG}48#;F8*EPu*nNvsA5JmSJL@SzA918{C-M zy4IKqJeyZGjK?JaWqoU*EJj!DI-@traR^P$fpfy{mXmW>dXFP`qMvid6BmfnGP)|K z5$Db+u#@II5d5x>^F;8JSm%u7e7Rt3d^tbPpBuvkaDg0-FHa+Q20`puzDE#GBF?Xr z>>Ny?OLk&jBn@ZKG44q?fByM@W6Z^~He3Ri$l7xgL7J#gmvjns4M8j)*k=BLQz-wT zP+TgP_Lo9kMeyP<$ioW7;XM5Sm(AsHxd{G<;AI4V64BP^6pD)%6-IoL&L?7rmR^E0 zAK2$A%W)9ksY`79U&_Um4=UG{e^oA(PPwZ8u3TIl*N&Bo%b(8Ga}AuDYvh`^X0C;6 z<*+6A8A0sluyp^5AeQc%2;M^QHiEw)cxNrwF{oUeFsNKyx2RmYJcnpY?++{2qhaOZ z#9TgyJqa!-4+`AdSh@at;l!{wEaBeA%Ee*Z{h*IqhT!iy<>Hoet3>tLz+pp*;6u?` z#$z^$iy$mC+y|U)xy?3igQ#4OUtawe<+5uK!F4SRX;xKL#njf+;Cc1r+K}2hF{Ee+ z89g}0&#|}Xuz~qgOsa8PBnI48Zd;+uqNK6D9@kq3^V;!vQdwKyIzfAMVhiDbN0=&K}?n4(aR>93vq3d{~^+h`=!so{(`zMNGd%xadFZdMEwU zzy9BW)iBoQxr?Ie{lHy71c3;$pZgK39)aVHA=SIaT^CjFXGG9_+%Je=MAeJoZgCGp z)w|98#@*rWa`(9Vh+q-HA%aJQ6cKue7_pN3oqH(Ocep>eCy3BTc)0;qKyQTSQ3S4_ z1#LCu2}}l0BEsNb)*ATmEU$;x8t@!X^0-e!+zb&$1N;bHpT~Q~h;T+kfLO!*e_e0j zpetDMCcHV8A>NcXLxc$;O#68Yek3CBk(0ROU@C9RyW+ADZ^zs74!oRq@2wOzh;e`jhn^;Z4Me%Z0*3~`N*=M#0FgipZ2PB{Kwp5z~E z3x+K&pTPM6+<}Sg#&!eAP&BN;egi;Aj1ED;gHC;i#T*30vD5YLe6VM z9RBxu0KSKRbr6SFL>$Io9PoMoEMhjIO|a(Y@^6Y%&g17JA`lTl{k&GBGWaEx@A3m8 zmGAM3_{IDZekuPxzl`tW`wh)_g~MMM}PFlQnV5s8Q>L`1LQmy3aAf6l*?mY5mA7MLY$=6{pzLz;-1Jl{EId{5D?G|7Ph74Qn8*W#R^~4C&db{D{LF$8R5%; zPf#nX8+4dUZK+lLQah% z;fM;sAs=@;yo5&^QYsIB37}(SS5O;`$x>D?Lns%OGsy#N-ba;V? zG(s9B(t_o;rcWA;h*~kp_`hfwC(<%r8jpxNB(63ZuIEV;rIY^c(JA=RnEBJiN7oAu z*_gM3p3zZTUTWYh&6MW;+iiLHHp~sRcw3`(QK`+#(UwR{CA!isPA`p=$R!>UA4!NL zLXs-UkmN}Um=q=hr{bnDO-v^<6TdXjgI^k$&CFxo#Mzc_@yh@Yn1{?`{3^gx<~e=| z0J0=Yvn+lYz=3tdGh0{uDu9CZX8qUzHVD595RTskn9NRRXK3&YYCU_Az02w2mHE+l z9eyP@9S25@I4GLI3EWJso9p3LaTl>qGR02A5-*;&!!BYp?~9ks$MA7{GF~oU%&Yhs zyhvWa3*(pYYwkMAsZi`p62TCKQ6QyZ*C3}W6SDG&^lxm8k zOQq+eSERS3zeykK0X;%bPtQ=#R!^blrRSsPr#D6~P%l_7R4+jAYf8%#0CG{`o{HOMz8 zG$=ACF;E&b8_YCVW3bKOtigSQ7qXEu57`)5v@BLOP8KgqkR{2IWht_JS%s`Y)+lS1 zwaSjkzL#B={VaPRdnkKsILR>2u)uJt;bz1Ah6fD4HgYiXH1am`HG19X9i#V*G>eUX zH+pVN8%vE%j2(>S#*W6$#u3Kx#uJPajVBvxj9)Q+-FUX~T;unQ7a6ZM-eSDXc!%*W z<2}avjK4BIXne@{i1ClcmyNF&Uo*aL{HyUzD(;jtm-^H*&_v{*ebp-n5ijx>=65OtDP2oMM@2In`2SInA=#vet6CWrJm- zWwT|ABZJ?jV7&unNL z)`qvyv(dMa*=USx>}=#VPBx=#M%%dC#M?}<$+5|^DX=NAQQDN-sBBtn+HGF3nQb%I zX1>kaHt*QHXS3L5oy`|EM{JJT9J4uL^PSCUo3l3OY<{r0XmiQtq0M8PCpJ%Qp4&=n zp)F}k+p@O2t)A^@+j!e5+c~x$+n%v~YG-8^VwY(*)vm-&sj(}!tFvphYq#sP)7T-q zF1uNFy>@TeEwp>rZn51`yJdFU?7p@;YIn@;gxwjt@9oapU9h`lcgOCTJ+vq7X?v;t z2zvv2LwkF?RyNu`)_$CQynTXwl6|s$ihY{>Wcv*JY4+9jwf58P8|)kHo9$ce+wD8; zHTKAUsr@$lOAZ>sVU)u}hv^RU95y%{cKFWWjKlX1=N+y(+;+I*aL?g^!$XJ14o~Ea zoR{m#4djM$W4X6HOdc(dm5-Ar$|uSv$y4Q1ujB{i7vw+6FUzmUugR~=f7Qru%5Tf>$nVJ?I2t;7J5F|N za(vHmr{fhT!b$EF;S}$b=rqx3l2evbkyDA2(y81@$-NTRYo2 zyE`kKy_|iVHLo}?aDLBuvGY>r0p}IYtDV<6?{t3TLb@<6oQs}|zKhJo$;HPd+$GW_ z+9lRyoJ+h*f=i}Lwo9%{zROgX5|=WU3YXVhmb>h7`FRvQ%4U?ysL`X`M=3_3QFBHu z7`1TJyQ3D3>L0ay)T&WyN3C}Su9IBzT#H;wT$Qesu2rtJ8rSKrU9RuCu5{h(y2W*y z>kijlu6tbfxgKym4CD)%^uetu>dc*a$>s{CTuD`oJc6~D1c68|IqS0NW`$z8| zebo)Rxwv_``MQm93v`Qgo8Xq@mh6`5mhLviEz@nPTeVxgo7%0}t;21Go8UInZNA%5 zxA)zax%InUa=Yzz-%az-?GLx-?!cXNr`@gHJ>5gyligF@C%b35=eXy)PjxSGFLPJ9 zcercZk$ac>EcaL3Uw5D5KF?k2zQBF6`#JX~9=0B#9z`CrJo-I$dF=5x>~YlNxW`G4 zA3Uyk{Ni!L~gk9!_36r_Sya0-2eOku1rRX8a|Df|_|im@6+gd$ckUXh?kQWPuH z3Z!^Tu~6}zVu@mzVnDG{u|~08u|ct0u}^V8aY%7Q@vY*x;-uoV;;iDF;)$oZXQ*es zXP4(H&;6didNE!mUL(D%yllN3y_~&9d5!i8@{00`^&0Or!7I%x*Q>y5s#l4Z(yQD{ zY{jd1n^}p}`yZ_@c9hxz(j(L5|>@o8KOadGN zoB~D#xCJNzyaM6^(gLOgWCi2~6a-8SPzRuZIRWzn-U?V4@Ls@@fMo$61Z)i06!2-l z7Xe!Wwg>DCxE$~_aAaUaU_oGG;Eceoz@ETY178nZ5CnqsgA9UXK}JDVLH0q8K`ueA zK|VntK`}w`L5V@hL7J4H{Gh2pB|&9Ds-S5>EkW%;GlEc1cTi8zdqJy$J_-6f=*ysO zK|6!?1nmzx5p*i(Y|y!&3qhBHt^{2RW`pIy5y8sf?%+ki%Y#=1uMJ)wyg7Jl@Q&c! z!TW;03O*KmA^4}@Yr($+-wwVT{2=&Y2peJ>;vNzn5)~2~GCm|BWTGY{B_us0BP2Vd zDx@}KdPqY^Q%FllTS!NUCIp3ag)9r%8*(j_5A_b69NG~2X6S~{t)aU@_k`{bJrsH* z^l0d@&>zQoj2$yJXl&@%u(9LDP8^#uHhpZy*sQU8!|cNpVcubWVF6*mVWDC1VF_VL zVUxn%3hN779kwp)!?2ISz6jH73ELjFD{N2Ly>N%{gz)t6jPUI6-0-UKrf?zrjqthQ zZ-y@je<%Eh@N41s!ykwL8U8$ih@d0b2tL9v!XiQu5fG6Pksr|+p^aD_@oB_o5uZnF zj@Tb@Fye5;(TL*_CnGLJ{1kCD;(DZCWMpJ& z71D0xib{{ljw+5Si7Jcg ziJBX=IBH4M(x_!oA4F}8+7$I!)aIxyQAeUqMV*fNKI*5a>(O+yakNRaX|#E?Q}n24 zw`fJQceHPGWORJ=l<3On>gc-YhG z8=^ms{xtfF=r5!9MW2uUJw`vqAtoqhVoYXCRZMrx+cB$Seu?=lmWtJjHIH?QRm6J7 z`o#vs2FFI@vR!;^Vr+73N~|ijJNEt9W^kT;ts16mc1G-EkY^Hpgv=I}mp??s(jHacAN##$ArP8h1VJ*SPy}PsS1B zqzRS@HVG~X{t2N8(Fv0h@)8OYiW8Ix6$#T4Y7*KLW+b45?u6ci*AiwY%uV zc+$nBOG!T^T}$>$j!aHXo}8SSoRgfNJT-g-D@OxD>qSJirv;~tO^Zm2PK!%RPD@RjoR*oE zla`m(kk*^FENx5LskEQcuBH8wb~Ej_w7cng>89zv>0{D^rnpV$z`!mRGBfvo*mC$i3G zUCg?ibv5gH*4?ZJS&y=wWIfAzk!_akmK~E_klmWyldX9*`;F|m*>7gQmAxVRi|p^R z&t#v=>B-UNEXx_lS(&pYXMN6woR4#MCg-Yh zn{rWZcW!U)Yq_&?=jATSU7EWrw?B79?&{pNxw~_J&9lvm$W!LkT3IC4Y3jNB-1&RepVbV}471d;W}kA%AxM zJNZlV`|_9Pugc$$|55&z`DgPl(S@4G!pVizg|8G26mBfs zRQOrp=EALo+Y8SYUM_qw6;7p!Cl}`zR~Au#Md|vWp$+nW6C3{Ntm0T}1EgeOBt$+R3<4imD$RAWg~uhwOu(wiIm;SEy}&huasXa4=c|q&nYh` zFDZXjK2knWK2yFZW6NyI9Ls{sqRS?hrIe+Y%`bbeY-QQHvd_yjJInTz?Jql6cB<^B zvTJ3(l-(@*t?XXe@8z(ZDrd{3<@)7@<;LZv<@V+NgQ`=iGpci{A5`}%9V@*n<0|7T6DyM|Q!6J|W>)4@=2uRwEU9d% zY_IIB)KsF%?#iCZS1MntoLxD$a(?B9l}9S?PBWesI4yq~nxdtKJCV| zThks+dr<|dh$^azsp6{4szz2>SJ_p`tDLH$s*QvROYW-@%YLja7YRhVyYWr$=wR3fNbyRh1_4w+9 z>WS5ps#y?b_N8YB$t=QM;>lPwl>1%~!PtYY)|)sXbSF zq4rYkmD+1{M4hb8w9cZ=vd*r~q0X_+xz4{Xs%~6ed|hH)N?lsrF_d(spx=nS5>yFkPulugE!eg(=Dgl zOt+sdpI$J1`Sg#be>Q#d^sSodyQc4*{?+t@(=XPW)jQU^)Q_(BsQ0S(sgJ8qt1qlC zu2vyZ?&&FLOofXsm@X7tEZ|<)MaXwx=LNEu2=V}UsJ!Ko}-?p z)~Xk%7pmV?FIF#AFH>(*pKp{j${WWuRyEFR+|c+<F@| z4K#h+bh7D(rXQPrYP#0+TQlE0qFL7L)9lwA&>Y-6wmG6XsyViKeDl=ilIF5zRdZEy zZF7Bdd-IHD)ZEoPuldd91zX+F?=sQH`b6V0cZ&o*n$HQ#M< zZ5h)N)Dqef-V)Uk(~{Xz+A_UG-O}9B*3#J`v~;!1Ytgp6-SSS$qL!sCeJukm`&urx zJZ+V?Mzv*?0-TQ9X)hPArE`1d&d%MP*JcnioM%j!Q9DCB+iN;JbQe&mD(YR^6G(H-CO|T|Z6RwHWOw#0OiZrE~a!r+{R#UH0 zYkD+`HET3mH9IuBHTyING>0_bXpU(#CpD)vziMu2e$(95JkUJSJkdPWybu6>8NptN z70U2GNZ5$qw7!pwkQWLAKi;x$A1z z^{yLTx4Z6kJ?MJW&35zMdfocnvTmbplWwzai*C#A`0keO72PMhU(E8FRWxhftR=IS z%^H}sa@Lwz>t^kkbzs(!S>I}AotSlM)=#s3opo#0omuy1J(=}v){7q4L-rW;*!B4K zg!aVtr1oU>FAl&^Ip%Yp0zz6^la?e)bnZ2!Jgwir+dEd z`Jv~>o?AT+dLH#W>3P;m_A Date: Sun, 1 Oct 2023 20:32:10 -0500 Subject: [PATCH 14/71] Init --- PowerUp.xcodeproj/project.pbxproj | 4 ---- PowerUp/StoreViewController.swift | 29 ----------------------------- 2 files changed, 33 deletions(-) delete mode 100644 PowerUp/StoreViewController.swift diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index 03aa01e..553938f 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -17,7 +17,6 @@ 858F15642ABB77F1002B64C1 /* PowerUpUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15632ABB77F1002B64C1 /* PowerUpUITests.swift */; }; 858F15662ABB77F1002B64C1 /* PowerUpUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15652ABB77F1002B64C1 /* PowerUpUITestsLaunchTests.swift */; }; 858F15752ABB99B4002B64C1 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 858F15742ABB99B4002B64C1 /* README.md */; }; - 858F165F2AC23B1F002B64C1 /* StoreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F165E2AC23B1F002B64C1 /* StoreViewController.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -52,7 +51,6 @@ 858F15632ABB77F1002B64C1 /* PowerUpUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PowerUpUITests.swift; sourceTree = ""; }; 858F15652ABB77F1002B64C1 /* PowerUpUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PowerUpUITestsLaunchTests.swift; sourceTree = ""; }; 858F15742ABB99B4002B64C1 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - 858F165E2AC23B1F002B64C1 /* StoreViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreViewController.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -108,7 +106,6 @@ 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */, 858F15462ABB77F0002B64C1 /* ViewController.swift */, 858F15482ABB77F0002B64C1 /* Main.storyboard */, - 858F165E2AC23B1F002B64C1 /* StoreViewController.swift */, 858F154B2ABB77F1002B64C1 /* Assets.xcassets */, 858F154D2ABB77F1002B64C1 /* LaunchScreen.storyboard */, 858F15502ABB77F1002B64C1 /* Info.plist */, @@ -265,7 +262,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 858F165F2AC23B1F002B64C1 /* StoreViewController.swift in Sources */, 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, diff --git a/PowerUp/StoreViewController.swift b/PowerUp/StoreViewController.swift deleted file mode 100644 index e078f53..0000000 --- a/PowerUp/StoreViewController.swift +++ /dev/null @@ -1,29 +0,0 @@ -// -// StoreViewController.swift -// PowerUp -// -// Created by Cliff Li on 9/25/23. -// - -import UIKit - -class StoreViewController: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() - - // Do any additional setup after loading the view. - } - - - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. - } - */ - -} From efdedaa6e7277f219094f7d34ce37c6168af8207 Mon Sep 17 00:00:00 2001 From: Cliff Li Date: Mon, 2 Oct 2023 17:06:40 -0500 Subject: [PATCH 15/71] Store page code finished --- PowerUp.xcodeproj/project.pbxproj | 16 ++ .../pc_image.imageset/Contents.json | 21 +++ .../pc_image.imageset/pc_image.png | Bin 0 -> 426219 bytes .../ps_image.imageset/Contents.json | 21 +++ .../ps_image.imageset/ps_image.png | Bin 0 -> 240273 bytes PowerUp/Base.lproj/Main.storyboard | 99 +--------- PowerUp/Store Screen/StoreScreen.swift | 174 ++++++++++++++++++ .../Store Screen/StoreViewController.swift | 32 ++++ 8 files changed, 267 insertions(+), 96 deletions(-) create mode 100644 PowerUp/Assets.xcassets/pc_image.imageset/Contents.json create mode 100644 PowerUp/Assets.xcassets/pc_image.imageset/pc_image.png create mode 100644 PowerUp/Assets.xcassets/ps_image.imageset/Contents.json create mode 100644 PowerUp/Assets.xcassets/ps_image.imageset/ps_image.png create mode 100644 PowerUp/Store Screen/StoreScreen.swift create mode 100644 PowerUp/Store Screen/StoreViewController.swift diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index 553938f..c5e81e0 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -17,6 +17,8 @@ 858F15642ABB77F1002B64C1 /* PowerUpUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15632ABB77F1002B64C1 /* PowerUpUITests.swift */; }; 858F15662ABB77F1002B64C1 /* PowerUpUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15652ABB77F1002B64C1 /* PowerUpUITestsLaunchTests.swift */; }; 858F15752ABB99B4002B64C1 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 858F15742ABB99B4002B64C1 /* README.md */; }; + 858F16AE2ACA7357002B64C1 /* StoreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16AD2ACA7357002B64C1 /* StoreViewController.swift */; }; + 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16AF2ACA73C5002B64C1 /* StoreScreen.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -51,6 +53,8 @@ 858F15632ABB77F1002B64C1 /* PowerUpUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PowerUpUITests.swift; sourceTree = ""; }; 858F15652ABB77F1002B64C1 /* PowerUpUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PowerUpUITestsLaunchTests.swift; sourceTree = ""; }; 858F15742ABB99B4002B64C1 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 858F16AD2ACA7357002B64C1 /* StoreViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreViewController.swift; sourceTree = ""; }; + 858F16AF2ACA73C5002B64C1 /* StoreScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreScreen.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -102,6 +106,7 @@ 858F15412ABB77F0002B64C1 /* PowerUp */ = { isa = PBXGroup; children = ( + 858F16AC2ACA7338002B64C1 /* Store Screen */, 858F15422ABB77F0002B64C1 /* AppDelegate.swift */, 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */, 858F15462ABB77F0002B64C1 /* ViewController.swift */, @@ -130,6 +135,15 @@ path = PowerUpUITests; sourceTree = ""; }; + 858F16AC2ACA7338002B64C1 /* Store Screen */ = { + isa = PBXGroup; + children = ( + 858F16AD2ACA7357002B64C1 /* StoreViewController.swift */, + 858F16AF2ACA73C5002B64C1 /* StoreScreen.swift */, + ); + path = "Store Screen"; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -262,8 +276,10 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 858F16AE2ACA7357002B64C1 /* StoreViewController.swift in Sources */, 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, + 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/PowerUp/Assets.xcassets/pc_image.imageset/Contents.json b/PowerUp/Assets.xcassets/pc_image.imageset/Contents.json new file mode 100644 index 0000000..5ce2441 --- /dev/null +++ b/PowerUp/Assets.xcassets/pc_image.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "pc_image.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/PowerUp/Assets.xcassets/pc_image.imageset/pc_image.png b/PowerUp/Assets.xcassets/pc_image.imageset/pc_image.png new file mode 100644 index 0000000000000000000000000000000000000000..9a0d38779e03e09d915e0593f734d62a8711cd48 GIT binary patch literal 426219 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 EKa$?|%>V!Z literal 0 HcmV?d00001 diff --git a/PowerUp/Assets.xcassets/ps_image.imageset/Contents.json b/PowerUp/Assets.xcassets/ps_image.imageset/Contents.json new file mode 100644 index 0000000..456f602 --- /dev/null +++ b/PowerUp/Assets.xcassets/ps_image.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "ps_image.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/PowerUp/Assets.xcassets/ps_image.imageset/ps_image.png b/PowerUp/Assets.xcassets/ps_image.imageset/ps_image.png new file mode 100644 index 0000000000000000000000000000000000000000..15be7744114a4031790ae68839b6006dff690fe6 GIT binary patch literal 240273 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

m|EVx66hr+6WaE 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 +{G4mERN(Kd?piM1FW4hSwOfJ1vKz65 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 literal 0 HcmV?d00001 diff --git a/PowerUp/Base.lproj/Main.storyboard b/PowerUp/Base.lproj/Main.storyboard index 7f15f59..e2834c7 100644 --- a/PowerUp/Base.lproj/Main.storyboard +++ b/PowerUp/Base.lproj/Main.storyboard @@ -1,18 +1,17 @@ - + - - + - + @@ -24,100 +23,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PowerUp/Store Screen/StoreScreen.swift b/PowerUp/Store Screen/StoreScreen.swift new file mode 100644 index 0000000..9394d6b --- /dev/null +++ b/PowerUp/Store Screen/StoreScreen.swift @@ -0,0 +1,174 @@ +// +// StoreScreen.swift +// PowerUp +// +// Created by Cliff Li on 10/1/23. +// + +import UIKit + +class StoreScreen: UIView { + var viewStar: UIView! + var viewPCInfo: UIView! + var viewPSInfo: UIView! + + var labelStart: UILabel! + var labelPCName: UILabel! + var labelPCAvailability: UILabel! + var labelPSName: UILabel! + var labelPSAvailability: UILabel! + + var imageViewPC: UIImageView! + var imageViewPS: UIImageView! + + + var buttonLocation: UIButton! + + let customButtonColor = UIColor(red: 0.45, green: 0.72, blue: 1, alpha: 1.0) + let customStartBgk = UIColor(red: 0.035, green: 0.51, blue: 0.89, alpha: 1.0) + override init(frame: CGRect) { + super.init(frame: frame) + self.backgroundColor = .white + + setupStartComponent() + setupPCComponent() + setupPSComponent() + + initConstraints() + } + + + + func setupStartComponent(){ + viewStar = UIView() + viewStar.backgroundColor = customStartBgk + viewStar.translatesAutoresizingMaskIntoConstraints = false + + labelStart = UILabel() + labelStart.text = "Location Summary" + labelStart.font = UIFont.boldSystemFont(ofSize: 26) + labelStart.textColor = UIColor.white + labelStart.translatesAutoresizingMaskIntoConstraints = false + + buttonLocation = UIButton() + buttonLocation.setTitle("123 Street", for: .normal) + buttonLocation.setTitleColor(UIColor.white, for: .normal) + buttonLocation.titleLabel?.font = .systemFont(ofSize: 22) + buttonLocation.backgroundColor = customButtonColor + buttonLocation.contentHorizontalAlignment = .left + buttonLocation.layer.cornerRadius = 10 + buttonLocation.translatesAutoresizingMaskIntoConstraints = false + + viewStar.addSubview(labelStart) + viewStar.addSubview(buttonLocation) + self.addSubview(viewStar) + } + + func setupPCComponent(){ + viewPCInfo = UIView() + viewPCInfo.backgroundColor = UIColor.white + viewPCInfo.layer.cornerRadius = 10 + viewPCInfo.layer.shadowColor = UIColor.black.cgColor + viewPCInfo.layer.shadowOpacity = 0.5 + viewPCInfo.layer.shadowOffset = CGSize(width: 2, height: 2) + viewPCInfo.layer.shadowRadius = 4 + viewPCInfo.layer.cornerRadius = 10 + viewPCInfo.translatesAutoresizingMaskIntoConstraints = false + + labelPCName = UILabel() + labelPCName.text = "PCs availability" + labelPCName.font = UIFont.boldSystemFont(ofSize: 18) + labelPCName.translatesAutoresizingMaskIntoConstraints = false + + labelPCAvailability = UILabel() + labelPCAvailability.text = "8/10" + labelPCAvailability.font = UIFont.systemFont(ofSize: 16) + labelPCAvailability.translatesAutoresizingMaskIntoConstraints = false + + + imageViewPC = UIImageView(image: UIImage(named: "pc_image")!) + imageViewPC.frame = CGRect(x: 180, y: 20, width: 150, height: 150) + + viewPCInfo.addSubview(labelPCName) + viewPCInfo.addSubview(labelPCAvailability) + viewPCInfo.addSubview(imageViewPC) + self.addSubview(viewPCInfo) + + + } + + func setupPSComponent(){ + viewPSInfo = UIView() + viewPSInfo.backgroundColor = UIColor.white + viewPSInfo.layer.cornerRadius = 10 + viewPSInfo.layer.shadowColor = UIColor.black.cgColor + viewPSInfo.layer.shadowOpacity = 0.5 + viewPSInfo.layer.shadowOffset = CGSize(width: 2, height: 2) + viewPSInfo.layer.shadowRadius = 4 + viewPSInfo.layer.cornerRadius = 10 + viewPSInfo.translatesAutoresizingMaskIntoConstraints = false + + labelPSName = UILabel() + labelPSName.text = "PSs availability" + labelPSName.font = UIFont.boldSystemFont(ofSize: 18) + labelPSName.translatesAutoresizingMaskIntoConstraints = false + + labelPSAvailability = UILabel() + labelPSAvailability.text = "8/10" + labelPSAvailability.font = UIFont.systemFont(ofSize: 16) + labelPSAvailability.translatesAutoresizingMaskIntoConstraints = false + + imageViewPS = UIImageView(image: UIImage(named: "ps_image")!) + imageViewPS.frame = CGRect(x: 180, y: 20, width: 150, height: 150) + + viewPSInfo.addSubview(labelPSName) + viewPSInfo.addSubview(labelPSAvailability) + viewPSInfo.addSubview(imageViewPS) + self.addSubview(viewPSInfo) + } + + func initConstraints(){ + NSLayoutConstraint.activate([ + viewStar.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor), + viewStar.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor), + viewStar.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor, constant: -100), + viewStar.heightAnchor.constraint(equalToConstant: 260), + + labelStart.topAnchor.constraint(equalTo: viewStar.topAnchor, constant: 100), + labelStart.leadingAnchor.constraint(equalTo: viewStar.leadingAnchor, constant: 16), + + buttonLocation.topAnchor.constraint(equalTo: labelStart.topAnchor, constant: 60), + buttonLocation.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 20), + buttonLocation.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -20), + + viewPCInfo.topAnchor.constraint(equalTo: viewStar.bottomAnchor, constant: -10), + viewPCInfo.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 16), + viewPCInfo.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -16), + viewPCInfo.heightAnchor.constraint(equalToConstant: 200), + + labelPCName.topAnchor.constraint(equalTo: viewPCInfo.topAnchor, constant: 20), + labelPCName.leadingAnchor.constraint(equalTo: viewPCInfo.leadingAnchor, constant: 20), + + labelPCAvailability.topAnchor.constraint(equalTo: labelPCName.bottomAnchor, constant: 30), + labelPCAvailability.leadingAnchor.constraint(equalTo: viewPCInfo.leadingAnchor, constant: 20), + + viewPSInfo.topAnchor.constraint(equalTo: viewPCInfo.bottomAnchor, constant: 20), + viewPSInfo.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 16), + viewPSInfo.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -16), + viewPSInfo.heightAnchor.constraint(equalToConstant: 200), + + labelPSName.topAnchor.constraint(equalTo: viewPSInfo.topAnchor, constant: 20), + labelPSName.leadingAnchor.constraint(equalTo: viewPSInfo.leadingAnchor, constant: 20), + + labelPSAvailability.topAnchor.constraint(equalTo: labelPSName.bottomAnchor, constant: 30), + labelPSAvailability.leadingAnchor.constraint(equalTo: viewPSInfo.leadingAnchor, constant: 20) + + + ]) + + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} diff --git a/PowerUp/Store Screen/StoreViewController.swift b/PowerUp/Store Screen/StoreViewController.swift new file mode 100644 index 0000000..0190068 --- /dev/null +++ b/PowerUp/Store Screen/StoreViewController.swift @@ -0,0 +1,32 @@ +// +// StoreViewController.swift +// PowerUp +// +// Created by Cliff Li on 10/1/23. +// + +import UIKit + +class StoreViewController: UIViewController { + let storeScreen = StoreScreen() + override func loadView() { + view = storeScreen + } + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} From 789070de750d4d2ade2c6a3b8f38f92501e356c7 Mon Sep 17 00:00:00 2001 From: Dingbang Chen Date: Mon, 2 Oct 2023 19:07:39 -0400 Subject: [PATCH 16/71] profile --- PowerUp.xcodeproj/project.pbxproj | 16 ++ .../ProfileScreenController.swift | 29 +++ PowerUp/ProfileScreen/ProfileScreenView.swift | 168 ++++++++++++++++++ PowerUp/ViewController.swift | 9 +- 4 files changed, 220 insertions(+), 2 deletions(-) create mode 100644 PowerUp/ProfileScreen/ProfileScreenController.swift create mode 100644 PowerUp/ProfileScreen/ProfileScreenView.swift diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index 773a95c..c3d7267 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */; }; + 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */; }; 11433FBE2ABCBCDD005AA716 /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 11433FBD2ABCBCDD005AA716 /* .gitignore */; }; 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15422ABB77F0002B64C1 /* AppDelegate.swift */; }; 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */; }; @@ -38,6 +40,8 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileScreenController.swift; sourceTree = ""; }; + 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileScreenView.swift; sourceTree = ""; }; 11433FBD2ABCBCDD005AA716 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; 858F153F2ABB77F0002B64C1 /* PowerUp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PowerUp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 858F15422ABB77F0002B64C1 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -80,6 +84,15 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 1129A8882ACB5DF00054E020 /* ProfileScreen */ = { + isa = PBXGroup; + children = ( + 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */, + 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */, + ); + path = ProfileScreen; + sourceTree = ""; + }; 858F15362ABB77F0002B64C1 = { isa = PBXGroup; children = ( @@ -105,6 +118,7 @@ 858F15412ABB77F0002B64C1 /* PowerUp */ = { isa = PBXGroup; children = ( + 1129A8882ACB5DF00054E020 /* ProfileScreen */, 858F15422ABB77F0002B64C1 /* AppDelegate.swift */, 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */, 858F15462ABB77F0002B64C1 /* ViewController.swift */, @@ -268,6 +282,8 @@ files = ( 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, + 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */, + 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/PowerUp/ProfileScreen/ProfileScreenController.swift b/PowerUp/ProfileScreen/ProfileScreenController.swift new file mode 100644 index 0000000..e1061f7 --- /dev/null +++ b/PowerUp/ProfileScreen/ProfileScreenController.swift @@ -0,0 +1,29 @@ +// +// ProfileScreenController.swift +// PowerUp +// +// Created by Dingbang Chen on 10/2/23. +// + +import UIKit + +class ProfileScreenController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PowerUp/ProfileScreen/ProfileScreenView.swift b/PowerUp/ProfileScreen/ProfileScreenView.swift new file mode 100644 index 0000000..6f4add1 --- /dev/null +++ b/PowerUp/ProfileScreen/ProfileScreenView.swift @@ -0,0 +1,168 @@ +// +// ProfileScreenView.swift +// PowerUp +// +// Created by Dingbang Chen on 10/2/23. +// + +import UIKit + +class ProfileScreenView: UIView { + var startView: UIView! + var midView:UIView! + var userNameLabel: UILabel! + var passWordLabel: UILabel! + var userNameTextField: UITextField! + var passWordTextField: UITextField! + var loginLabel: UILabel! + var loginButton: UIButton! + var forgetButton: UIButton! + var registerButton: UIButton! + let customStartBgk = UIColor(red: 0.035 , green: 0.51 , blue: 0.89, alpha: 1.0) + let midBgkColor = UIColor(red: 0.9882, green: 0.9882, blue: 0.9882, alpha: 1.0) + /* + // Only override draw() if you perform custom drawing. + // An empty implementation adversely affects performance during animation. + override func draw(_ rect: CGRect) { + // Drawing code + } + */ + + override init(frame: CGRect) { + super.init(frame: frame) + + self.backgroundColor = .white + + + //MARK: initializing the UI elements and constraints... + setupVariables() + setupStartComponent() + setupMidComponent() + initConstraints() + + } + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func setupStartComponent(){ + + // create box + startView = UIView() + startView.backgroundColor = customStartBgk + startView.translatesAutoresizingMaskIntoConstraints = false + startView.layer.zPosition = -100 + self.addSubview(startView) + } + + func setupMidComponent(){ + midView = UIView() + midView.backgroundColor = midBgkColor + midView.layer.shadowColor = UIColor.black.cgColor + midView.layer.shadowOpacity = 0.5 + midView.layer.shadowOffset = CGSize(width: 0, height: 2) + midView.translatesAutoresizingMaskIntoConstraints = false + midView.layer.cornerRadius = 10 + midView.layer.zPosition = -50 + self.addSubview(midView) + } + + func initConstraints(){ + NSLayoutConstraint.activate([ + startView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor), // Leading constraint to the left edge + startView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor), // Trailing constraint to the right edge + startView.topAnchor.constraint(equalTo: self.topAnchor, constant: 0), // Adjust top spacing as needed + startView.heightAnchor.constraint(equalToConstant: 200), + + midView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 30), + midView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -30), + midView.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor, constant: 110), + midView.heightAnchor.constraint(equalToConstant: 350), + loginLabel.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor, constant: 10), + loginLabel.leadingAnchor.constraint(equalTo: + self.safeAreaLayoutGuide.leadingAnchor, constant:5), + loginLabel.trailingAnchor.constraint(equalTo: + self.safeAreaLayoutGuide.trailingAnchor,constant: -16), + + userNameLabel.topAnchor.constraint(equalTo: loginLabel.bottomAnchor, constant: 100), + userNameLabel.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), + userNameTextField.topAnchor.constraint(equalTo: userNameLabel.bottomAnchor, constant: 20), + userNameTextField.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), + + passWordLabel.topAnchor.constraint(equalTo: userNameTextField.bottomAnchor, constant: 20), + passWordLabel.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), + passWordTextField.topAnchor.constraint(equalTo: passWordLabel.bottomAnchor, constant: 20), + passWordTextField.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), + loginButton.topAnchor.constraint(equalTo: passWordTextField.bottomAnchor, constant: 50), + loginButton.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), + loginButton.widthAnchor.constraint(equalToConstant: 120), + loginButton.heightAnchor.constraint(equalToConstant: 50), + forgetButton.topAnchor.constraint(equalTo: passWordTextField.bottomAnchor, constant: 50), + forgetButton.trailingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.trailingAnchor, constant:-50 ), + forgetButton.widthAnchor.constraint(equalToConstant: 120), + forgetButton.heightAnchor.constraint(equalToConstant: 50), + registerButton.topAnchor.constraint(equalTo: loginButton.bottomAnchor, constant: 70), + registerButton.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), + ]) + } + + func setupVariables(){ + //UserName Label + userNameLabel = UILabel() + userNameLabel.text = "User Name" + userNameLabel.font = UIFont.systemFont(ofSize: 18) + userNameLabel.textColor = .black + userNameLabel.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(userNameLabel) + //Password Label + passWordLabel = UILabel() + passWordLabel.text = "Password" + passWordLabel.font = UIFont.systemFont(ofSize: 18) + passWordLabel.textColor = .black + passWordLabel.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(passWordLabel) + //Login Label + loginLabel = UILabel() + loginLabel.text = "Log in" + loginLabel.font = UIFont.systemFont(ofSize: 24) + loginLabel.textColor = .white + loginLabel.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(loginLabel) + //UserName TextField + userNameTextField = UITextField() + userNameTextField.placeholder = "Enter Username" + userNameTextField.borderStyle = .roundedRect + userNameTextField.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(userNameTextField) + passWordTextField = UITextField() + passWordTextField.placeholder = "Enter Password" + passWordTextField.borderStyle = .roundedRect + passWordTextField.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(passWordTextField) + loginButton = UIButton() + loginButton.setTitle("Login", for: .normal) + loginButton.backgroundColor = .blue + loginButton.clipsToBounds = true + loginButton.layer.cornerRadius = 5 + loginButton.translatesAutoresizingMaskIntoConstraints = false + loginButton.setTitleColor(.white, for: .normal) + self.addSubview(loginButton) + forgetButton = UIButton() + forgetButton.setTitle("Forget", for: .normal) + forgetButton.backgroundColor = .blue + forgetButton.clipsToBounds = true + forgetButton.layer.cornerRadius = 5 + forgetButton.translatesAutoresizingMaskIntoConstraints = false + + forgetButton.setTitleColor(.white, for: .normal) + self.addSubview(forgetButton) + registerButton = UIButton() + registerButton.setTitle("Register", for: .normal) + registerButton.translatesAutoresizingMaskIntoConstraints = false + registerButton.titleLabel?.font = UIFont.systemFont(ofSize: 25) + registerButton.setTitleColor(.blue, for: .normal) + self.addSubview(registerButton) + + } + +} diff --git a/PowerUp/ViewController.swift b/PowerUp/ViewController.swift index 0d71011..084c1b0 100644 --- a/PowerUp/ViewController.swift +++ b/PowerUp/ViewController.swift @@ -9,12 +9,17 @@ import UIKit class ViewController: UIViewController { + let profileScreen = ProfileScreenView() + + override func loadView() { + view = profileScreen + } override func viewDidLoad() { super.viewDidLoad() - view.backgroundColor = .systemBlue // Dingbang First Commit check, second check } - + + } From 1db1cb99bf20b29151ac37b07d93deaad1aa8347 Mon Sep 17 00:00:00 2001 From: Cliff Li Date: Mon, 2 Oct 2023 19:33:43 -0500 Subject: [PATCH 17/71] Nick's change for time view --- PowerUp.xcodeproj/project.pbxproj | 16 ++ PowerUp/Base.lproj/Main.storyboard | 4 +- PowerUp/Time Screen/TimeScreen.swift | 176 +++++++++++++++++++ PowerUp/Time Screen/TimeViewController.swift | 28 +++ 4 files changed, 222 insertions(+), 2 deletions(-) create mode 100644 PowerUp/Time Screen/TimeScreen.swift create mode 100644 PowerUp/Time Screen/TimeViewController.swift diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index c5e81e0..ce4c228 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -19,6 +19,8 @@ 858F15752ABB99B4002B64C1 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 858F15742ABB99B4002B64C1 /* README.md */; }; 858F16AE2ACA7357002B64C1 /* StoreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16AD2ACA7357002B64C1 /* StoreViewController.swift */; }; 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16AF2ACA73C5002B64C1 /* StoreScreen.swift */; }; + 858F16B32ACB978C002B64C1 /* TimeScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16B22ACB978C002B64C1 /* TimeScreen.swift */; }; + 858F16B52ACB97A1002B64C1 /* TimeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16B42ACB97A1002B64C1 /* TimeViewController.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -55,6 +57,8 @@ 858F15742ABB99B4002B64C1 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 858F16AD2ACA7357002B64C1 /* StoreViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreViewController.swift; sourceTree = ""; }; 858F16AF2ACA73C5002B64C1 /* StoreScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreScreen.swift; sourceTree = ""; }; + 858F16B22ACB978C002B64C1 /* TimeScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeScreen.swift; sourceTree = ""; }; + 858F16B42ACB97A1002B64C1 /* TimeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeViewController.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -106,6 +110,7 @@ 858F15412ABB77F0002B64C1 /* PowerUp */ = { isa = PBXGroup; children = ( + 858F16B12ACB9777002B64C1 /* Time Screen */, 858F16AC2ACA7338002B64C1 /* Store Screen */, 858F15422ABB77F0002B64C1 /* AppDelegate.swift */, 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */, @@ -144,6 +149,15 @@ path = "Store Screen"; sourceTree = ""; }; + 858F16B12ACB9777002B64C1 /* Time Screen */ = { + isa = PBXGroup; + children = ( + 858F16B22ACB978C002B64C1 /* TimeScreen.swift */, + 858F16B42ACB97A1002B64C1 /* TimeViewController.swift */, + ); + path = "Time Screen"; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -278,7 +292,9 @@ files = ( 858F16AE2ACA7357002B64C1 /* StoreViewController.swift in Sources */, 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, + 858F16B32ACB978C002B64C1 /* TimeScreen.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, + 858F16B52ACB97A1002B64C1 /* TimeViewController.swift in Sources */, 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, ); diff --git a/PowerUp/Base.lproj/Main.storyboard b/PowerUp/Base.lproj/Main.storyboard index e2834c7..444fac5 100644 --- a/PowerUp/Base.lproj/Main.storyboard +++ b/PowerUp/Base.lproj/Main.storyboard @@ -8,10 +8,10 @@ - + - + diff --git a/PowerUp/Time Screen/TimeScreen.swift b/PowerUp/Time Screen/TimeScreen.swift new file mode 100644 index 0000000..7bb489a --- /dev/null +++ b/PowerUp/Time Screen/TimeScreen.swift @@ -0,0 +1,176 @@ +// +// TimeScreen.swift +// PowerUp +// +// Created by Cliff Li on 10/2/23. +// + +import UIKit + +class TimeScreen: UIView { + + var containerTop: UIView! + var myTimeLabel: UILabel! + var infoContainer: UIView! + var bestCafeLabel: UILabel! + var mainStreetLabel: UILabel! + var addButton = UIButton() + var pcLabel: UILabel! + var additionalInfoContainer: UIView! + var timeLeftLabel: UILabel! + + + + override init(frame: CGRect) { + + super.init(frame: frame) + self.backgroundColor = .white + setUpTopContainer() + setMyTime() + setUpInfoContainer() + setUpLabels() + setPCLabel() + setUpAdditionalInfoContainer() + setTimeLeftLabel() + setButton() + } + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + func setButton(){ + addButton = UIButton() + addButton.setTitle("+ Add Time", for: .normal) + addButton.backgroundColor = .blue + addButton.layer.cornerRadius = 5 + addButton.translatesAutoresizingMaskIntoConstraints = false + additionalInfoContainer.addSubview(addButton) + + } + + func setTimeLeftLabel(){ + + timeLeftLabel = UILabel() + timeLeftLabel.text = "Time Left:" + timeLeftLabel.font = UIFont.systemFont(ofSize: 18) + timeLeftLabel.textColor = .black + timeLeftLabel.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(timeLeftLabel) + } + func setUpAdditionalInfoContainer() { + additionalInfoContainer = UIView() + additionalInfoContainer.backgroundColor = .white + additionalInfoContainer.layer.borderColor = UIColor.black.cgColor + additionalInfoContainer.layer.borderWidth = 1.0 + additionalInfoContainer.layer.cornerRadius = 10 + additionalInfoContainer.translatesAutoresizingMaskIntoConstraints = false + containerTop.addSubview(additionalInfoContainer) + } + func setUpInfoContainer(){ + infoContainer = UIView() + let lightBlue = UIColor(red: 173/255, green: 216/255, blue: 230/255, alpha: 1.0) + infoContainer.backgroundColor = lightBlue // Change color if needed + infoContainer.layer.cornerRadius = 10 // Adjust the corner radius as needed + infoContainer.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(infoContainer) + } + + func setUpLabels(){ + bestCafeLabel = UILabel() + bestCafeLabel.text = "Best Cafe" + bestCafeLabel.font = UIFont.systemFont(ofSize: 20, weight: .bold) + bestCafeLabel.textColor = .black + bestCafeLabel.translatesAutoresizingMaskIntoConstraints = false + infoContainer.addSubview(bestCafeLabel) + + mainStreetLabel = UILabel() + mainStreetLabel.text = "Main Street" + mainStreetLabel.font = UIFont.systemFont(ofSize: 16) + mainStreetLabel.textColor = .black + mainStreetLabel.translatesAutoresizingMaskIntoConstraints = false + infoContainer.addSubview(mainStreetLabel) + +// pcLabel = UILabel() +// pcLabel.text = "PC 1" +// pcLabel.font = UIFont.systemFont(ofSize: 12) +// pcLabel.textColor = .black +// pcLabel.translatesAutoresizingMaskIntoConstraints = false +// additionalInfoContainer.addSubview(pcLabel) + } + + func setUpTopContainer(){ + + containerTop = UIView() + containerTop.backgroundColor = .blue + containerTop.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(containerTop) + } + + func setMyTime(){ + myTimeLabel = UILabel() + myTimeLabel.text = "My Time" + myTimeLabel.font = UIFont.systemFont(ofSize: 24, weight: .bold) // Customize font and size if needed + myTimeLabel.textColor = .white + myTimeLabel.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(myTimeLabel) + + } + + func setPCLabel(){ + + pcLabel = UILabel() + pcLabel.text = "PC 1" + pcLabel.font = UIFont.systemFont(ofSize: 18) + pcLabel.textColor = .black + pcLabel.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(pcLabel) + + } + + func initConstraints(){ + NSLayoutConstraint.activate([ + + containerTop.leadingAnchor.constraint(equalTo: self.leadingAnchor), + containerTop.trailingAnchor.constraint(equalTo: self.trailingAnchor), + containerTop.topAnchor.constraint(equalTo: self.topAnchor), + containerTop.heightAnchor.constraint(equalTo: self.heightAnchor, multiplier: 0.3), + + myTimeLabel.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 16), // Adjust the constant as needed + myTimeLabel.topAnchor.constraint(equalTo: self.topAnchor, constant:64), // Adjust the constant as needed + + //all together + infoContainer.widthAnchor.constraint(equalToConstant: 375), // Set the desired width + infoContainer.heightAnchor.constraint(equalToConstant: 75), // Set the desired height + infoContainer.centerXAnchor.constraint(equalTo: containerTop.centerXAnchor), // Center horizontally + infoContainer.centerYAnchor.constraint(equalTo: containerTop.centerYAnchor, constant: 30), // Center verticall + + bestCafeLabel.leadingAnchor.constraint(equalTo: infoContainer.leadingAnchor, constant: 8), + bestCafeLabel.topAnchor.constraint(equalTo: infoContainer.topAnchor, constant: 8), + + mainStreetLabel.leadingAnchor.constraint(equalTo: infoContainer.leadingAnchor, constant: 8), + mainStreetLabel.topAnchor.constraint(equalTo: bestCafeLabel.bottomAnchor, constant: 4), + //all together + + additionalInfoContainer.widthAnchor.constraint(equalToConstant: 375), // Set the desired width + additionalInfoContainer.heightAnchor.constraint(equalToConstant: 175), // Set the desired height + additionalInfoContainer.centerXAnchor.constraint(equalTo: containerTop.centerXAnchor), + additionalInfoContainer.centerYAnchor.constraint(equalTo: containerTop.bottomAnchor, constant: 40), + + pcLabel.leadingAnchor.constraint(equalTo: additionalInfoContainer.leadingAnchor, constant: 8), + pcLabel.topAnchor.constraint(equalTo: additionalInfoContainer.topAnchor, constant: 8), + + timeLeftLabel.leadingAnchor.constraint(equalTo: pcLabel.leadingAnchor), + timeLeftLabel.topAnchor.constraint(equalTo: pcLabel.bottomAnchor, constant: 12), + + addButton.centerXAnchor.constraint(equalTo: additionalInfoContainer.centerXAnchor), +// addButton.centerYAnchor.constraint(equalTo: additionalInfoContainer.centerYAnchor), + addButton.bottomAnchor.constraint(equalTo: additionalInfoContainer.bottomAnchor, constant: -20), // Adjust the constant to position the button higher or lower + addButton.widthAnchor.constraint(equalToConstant: 100), + addButton.heightAnchor.constraint(equalToConstant: 30) + + + ]) + + } +} diff --git a/PowerUp/Time Screen/TimeViewController.swift b/PowerUp/Time Screen/TimeViewController.swift new file mode 100644 index 0000000..df0c61b --- /dev/null +++ b/PowerUp/Time Screen/TimeViewController.swift @@ -0,0 +1,28 @@ +// +// TimeViewController.swift +// PowerUp +// +// Created by Cliff Li on 10/2/23. +// + +import UIKit + +class TimeViewController: UIViewController { + override func viewDidLoad() { + super.viewDidLoad() + let timeView = TimeScreen() + timeView.translatesAutoresizingMaskIntoConstraints = false + view.addSubview(timeView) + NSLayoutConstraint.activate([ + timeView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + timeView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + timeView.topAnchor.constraint(equalTo: view.topAnchor), + timeView.bottomAnchor.constraint(equalTo: view.bottomAnchor) + ]) + + timeView.initConstraints() + } + + + +} From 037c0f2794f8f1943305ef546d7bd4bf84737a18 Mon Sep 17 00:00:00 2001 From: Jeff <64622861+jcport1@users.noreply.github.com> Date: Mon, 2 Oct 2023 20:42:31 -0400 Subject: [PATCH 18/71] Initial Start Screen UI (#6) Start Screen designed --- PowerUp/Start Screen/StartScreen.swift | 215 ++++++++++++++++++ .../Start Screen/StartScreenController.swift | 36 +++ 2 files changed, 251 insertions(+) create mode 100644 PowerUp/Start Screen/StartScreen.swift create mode 100644 PowerUp/Start Screen/StartScreenController.swift diff --git a/PowerUp/Start Screen/StartScreen.swift b/PowerUp/Start Screen/StartScreen.swift new file mode 100644 index 0000000..e815f31 --- /dev/null +++ b/PowerUp/Start Screen/StartScreen.swift @@ -0,0 +1,215 @@ +// +// StartScreen.swift +// PowerUp +// +// Created by Jefferson Cuartas on 9/25/23. +// + +import UIKit + +class StartScreen: UIView { + + //UI Views + var startView: UIView! + var scanView: UIView! + var typeNumView: UIView! + + //UI Labels + var startLabel: UILabel! + var creditLabel: UILabel! + var creditFigureLabel: UILabel! + + var scanTitleLabel: UILabel! + var scanTextLabel: UILabel! + + var typeTitleLabel: UILabel! + var typeTextLabel: UILabel! + + + //UI Buttons + var scanButton: UIButton! + var typeNumberButton: UIButton! + + //UI Button custom color + let customButtonColor = UIColor(red: 0.45 , green: 0.72 , blue: 1, alpha: 1.0) + + //UI Start background custom color + let customStartBgk = UIColor(red: 0.035 , green: 0.51 , blue: 0.89, alpha: 1.0) + + override init(frame: CGRect) { + super.init(frame: frame) + + self.backgroundColor = .white + + setupStartComponent() + setupScanComponent() + setupTypeComponent() + + initConstraints() + + } + + func setupStartComponent(){ + + // create box + startView = UIView() + startView.backgroundColor = customStartBgk + startView.translatesAutoresizingMaskIntoConstraints = false + + startLabel = UILabel() + startLabel.text = "Start from here" + startLabel.font = UIFont.boldSystemFont(ofSize: 22) + startLabel.textColor = UIColor.white + startLabel.translatesAutoresizingMaskIntoConstraints = false + + // credit label + creditLabel = UILabel() + creditLabel.text = "Credit Available:" + creditLabel.font = UIFont.boldSystemFont(ofSize: 18) + creditLabel.textColor = UIColor.white + creditLabel.translatesAutoresizingMaskIntoConstraints = false + + // credit figure label + creditFigureLabel = UILabel() + creditFigureLabel.text = "$100.00" + creditFigureLabel.font = UIFont.boldSystemFont(ofSize: 18) + creditFigureLabel.textColor = UIColor.white + creditFigureLabel.translatesAutoresizingMaskIntoConstraints = false + + startView.addSubview(startLabel) + startView.addSubview(creditLabel) + startView.addSubview(creditFigureLabel) + self.addSubview(startView) + + } + + func setupScanComponent(){ + //box 2 + scanView = UIView() + scanView.backgroundColor = UIColor.white + scanView.layer.cornerRadius = 10 + scanView.layer.shadowColor = UIColor.black.cgColor + scanView.layer.shadowOpacity = 0.5 + scanView.layer.shadowOffset = CGSize(width: 2, height: 2) + scanView.layer.shadowRadius = 4 + scanView.translatesAutoresizingMaskIntoConstraints = false + + // scan label + scanTitleLabel = UILabel() + scanTitleLabel.text = "Scan" + scanTitleLabel.font = UIFont.boldSystemFont(ofSize: 22) + scanTitleLabel.translatesAutoresizingMaskIntoConstraints = false + + // scan text label + scanTextLabel = UILabel() + scanTextLabel.text = "Scan the SQCode near the device" + scanTextLabel.translatesAutoresizingMaskIntoConstraints = false + + // scan button + scanButton = UIButton(type: .system) + scanButton.setTitle("Scan SQCode", for: .normal) + scanButton.backgroundColor = customButtonColor + scanButton.setTitleColor(UIColor.white, for: .normal) + scanButton.layer.cornerRadius = 20 + scanButton.translatesAutoresizingMaskIntoConstraints = false + + scanView.addSubview(scanTitleLabel) + scanView.addSubview(scanTextLabel) + scanView.addSubview(scanButton) + self.addSubview(scanView) + } + + func setupTypeComponent(){ + //box 3 + typeNumView = UIView() + typeNumView.backgroundColor = UIColor.white + typeNumView.layer.cornerRadius = 10 + typeNumView.layer.shadowColor = UIColor.black.cgColor + typeNumView.layer.shadowOpacity = 0.5 + typeNumView.layer.shadowOffset = CGSize(width: 2, height: 2) + typeNumView.layer.shadowRadius = 4 + typeNumView.layer.cornerRadius = 10 + typeNumView.translatesAutoresizingMaskIntoConstraints = false + + // type label + typeTitleLabel = UILabel() + typeTitleLabel.text = "Type" + typeTitleLabel.font = UIFont.boldSystemFont(ofSize: 22) + typeTitleLabel.translatesAutoresizingMaskIntoConstraints = false + + // type text label + typeTextLabel = UILabel() + typeTextLabel.text = "Type the number near the machine" + typeTextLabel.translatesAutoresizingMaskIntoConstraints = false + + //button + typeNumberButton = UIButton(type: .system) + typeNumberButton.setTitle("Type Number", for: .normal) + typeNumberButton.backgroundColor = customButtonColor + typeNumberButton.setTitleColor(UIColor.white, for: .normal) + typeNumberButton.layer.cornerRadius = 20 + typeNumberButton.translatesAutoresizingMaskIntoConstraints = false + + typeNumView.addSubview(typeTitleLabel) + typeNumView.addSubview(typeTextLabel) + typeNumView.addSubview(typeNumberButton) + self.addSubview(typeNumView) + } + + //MARK: initializing the constraints... + func initConstraints(){ + NSLayoutConstraint.activate([ + startView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor), // Leading constraint to the left edge + startView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor), // Trailing constraint to the right edge + startView.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor, constant: 0), // Adjust top spacing as needed + startView.heightAnchor.constraint(equalToConstant: 200), + + startLabel.topAnchor.constraint(equalTo: startView.topAnchor, constant: 32), + startLabel.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 16), + + creditLabel.topAnchor.constraint(equalTo: startLabel.bottomAnchor, constant: 16), + creditLabel.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -16), + + creditFigureLabel.topAnchor.constraint(equalTo: creditLabel.bottomAnchor, constant: 16), + creditFigureLabel.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -16), + + scanView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 16), + scanView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -16), + scanView.topAnchor.constraint(equalTo: startView.bottomAnchor, constant: 16), + scanView.heightAnchor.constraint(equalToConstant: 200), + + scanTitleLabel.topAnchor.constraint(equalTo: scanView.topAnchor, constant: 32), + scanTitleLabel.leadingAnchor.constraint(equalTo: scanView.leadingAnchor, constant: 16), + + scanTextLabel.topAnchor.constraint(equalTo: scanTitleLabel.bottomAnchor, constant: 16), + scanTextLabel.leadingAnchor.constraint(equalTo: scanView.leadingAnchor, constant: 16), + + scanButton.topAnchor.constraint(equalTo: scanTextLabel.bottomAnchor, constant: 16), + scanButton.centerXAnchor.constraint(equalTo: self.safeAreaLayoutGuide.centerXAnchor), + scanButton.widthAnchor.constraint(equalToConstant: 160), + scanButton.heightAnchor.constraint(equalToConstant: 40), + + typeNumView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 16), // Leading constraint to the left edge + typeNumView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -16), // Trailing constraint to the right edge + typeNumView.topAnchor.constraint(equalTo: scanView.bottomAnchor, constant: 16), // Adjust top spacing as needed + typeNumView.heightAnchor.constraint(equalToConstant: 200), + + typeTitleLabel.topAnchor.constraint(equalTo: typeNumView.topAnchor, constant: 32), + typeTitleLabel.leadingAnchor.constraint(equalTo: typeNumView.leadingAnchor, constant: 16), + + typeTextLabel.topAnchor.constraint(equalTo: typeTitleLabel.bottomAnchor, constant: 16), + typeTextLabel.leadingAnchor.constraint(equalTo: typeNumView.leadingAnchor, constant: 16), + + typeNumberButton.topAnchor.constraint(equalTo: typeTextLabel.bottomAnchor, constant: 32), + typeNumberButton.centerXAnchor.constraint(equalTo: self.safeAreaLayoutGuide.centerXAnchor), + typeNumberButton.widthAnchor.constraint(equalToConstant: 160), + typeNumberButton.heightAnchor.constraint(equalToConstant: 40), + + ]) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} diff --git a/PowerUp/Start Screen/StartScreenController.swift b/PowerUp/Start Screen/StartScreenController.swift new file mode 100644 index 0000000..89812d3 --- /dev/null +++ b/PowerUp/Start Screen/StartScreenController.swift @@ -0,0 +1,36 @@ +// +// StartScreenControllerViewController.swift +// PowerUp +// +// Created by Jefferson Cuartas on 9/25/23. +// + +import UIKit + +class StartScreenController: UIViewController { + + //MARK: initializing the First Screen View... + let startScreen = StartScreen() + + //MARK: add the view to this controller while the view is loading... + override func loadView() { + view = startScreen + } + + override func viewDidLoad() { + super.viewDidLoad() + startScreen.scanButton.addTarget(self, action: #selector(onButtonScanSubmitTapped), for: .touchUpInside) + startScreen.typeNumberButton.addTarget(self, action: #selector(onButtonTypeSubmitTapped), for: .touchUpInside) + } + + //MARK: submit scan button tapped action... + @objc func onButtonScanSubmitTapped(){ + print("Scan Button: I was clicked!") + } + + //MARK: submit type button tapped action... + @objc func onButtonTypeSubmitTapped(){ + print("Type Button: I was clicked!") + } + +} From 76952301e44645c78e28c54fb4742d0e5539641f Mon Sep 17 00:00:00 2001 From: TuoxinLi <109610850+txli299@users.noreply.github.com> Date: Mon, 2 Oct 2023 19:51:39 -0500 Subject: [PATCH 19/71] Time view and Store view designing completed (#7) Time view and Store view added --- PowerUp.xcodeproj/project.pbxproj | 32 ++++ .../blue_bg_1.imageset/Contents.json | 21 +++ .../blue_bg_1.imageset/blue_bg_1.jpg | Bin 0 -> 9880 bytes .../pc_image.imageset/Contents.json | 21 +++ .../pc_image.imageset/pc_image.png | Bin 0 -> 426219 bytes .../ps_image.imageset/Contents.json | 21 +++ .../ps_image.imageset/ps_image.png | Bin 0 -> 240273 bytes PowerUp/Base.lproj/Main.storyboard | 28 ++- PowerUp/Store Screen/StoreScreen.swift | 174 +++++++++++++++++ .../Store Screen/StoreViewController.swift | 32 ++++ PowerUp/Time Screen/TimeScreen.swift | 176 ++++++++++++++++++ PowerUp/Time Screen/TimeViewController.swift | 28 +++ README.md | 1 - 13 files changed, 523 insertions(+), 11 deletions(-) create mode 100644 PowerUp/Assets.xcassets/blue_bg_1.imageset/Contents.json create mode 100644 PowerUp/Assets.xcassets/blue_bg_1.imageset/blue_bg_1.jpg create mode 100644 PowerUp/Assets.xcassets/pc_image.imageset/Contents.json create mode 100644 PowerUp/Assets.xcassets/pc_image.imageset/pc_image.png create mode 100644 PowerUp/Assets.xcassets/ps_image.imageset/Contents.json create mode 100644 PowerUp/Assets.xcassets/ps_image.imageset/ps_image.png create mode 100644 PowerUp/Store Screen/StoreScreen.swift create mode 100644 PowerUp/Store Screen/StoreViewController.swift create mode 100644 PowerUp/Time Screen/TimeScreen.swift create mode 100644 PowerUp/Time Screen/TimeViewController.swift diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index 553938f..ce4c228 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -17,6 +17,10 @@ 858F15642ABB77F1002B64C1 /* PowerUpUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15632ABB77F1002B64C1 /* PowerUpUITests.swift */; }; 858F15662ABB77F1002B64C1 /* PowerUpUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15652ABB77F1002B64C1 /* PowerUpUITestsLaunchTests.swift */; }; 858F15752ABB99B4002B64C1 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 858F15742ABB99B4002B64C1 /* README.md */; }; + 858F16AE2ACA7357002B64C1 /* StoreViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16AD2ACA7357002B64C1 /* StoreViewController.swift */; }; + 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16AF2ACA73C5002B64C1 /* StoreScreen.swift */; }; + 858F16B32ACB978C002B64C1 /* TimeScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16B22ACB978C002B64C1 /* TimeScreen.swift */; }; + 858F16B52ACB97A1002B64C1 /* TimeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16B42ACB97A1002B64C1 /* TimeViewController.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -51,6 +55,10 @@ 858F15632ABB77F1002B64C1 /* PowerUpUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PowerUpUITests.swift; sourceTree = ""; }; 858F15652ABB77F1002B64C1 /* PowerUpUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PowerUpUITestsLaunchTests.swift; sourceTree = ""; }; 858F15742ABB99B4002B64C1 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 858F16AD2ACA7357002B64C1 /* StoreViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreViewController.swift; sourceTree = ""; }; + 858F16AF2ACA73C5002B64C1 /* StoreScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreScreen.swift; sourceTree = ""; }; + 858F16B22ACB978C002B64C1 /* TimeScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeScreen.swift; sourceTree = ""; }; + 858F16B42ACB97A1002B64C1 /* TimeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeViewController.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -102,6 +110,8 @@ 858F15412ABB77F0002B64C1 /* PowerUp */ = { isa = PBXGroup; children = ( + 858F16B12ACB9777002B64C1 /* Time Screen */, + 858F16AC2ACA7338002B64C1 /* Store Screen */, 858F15422ABB77F0002B64C1 /* AppDelegate.swift */, 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */, 858F15462ABB77F0002B64C1 /* ViewController.swift */, @@ -130,6 +140,24 @@ path = PowerUpUITests; sourceTree = ""; }; + 858F16AC2ACA7338002B64C1 /* Store Screen */ = { + isa = PBXGroup; + children = ( + 858F16AD2ACA7357002B64C1 /* StoreViewController.swift */, + 858F16AF2ACA73C5002B64C1 /* StoreScreen.swift */, + ); + path = "Store Screen"; + sourceTree = ""; + }; + 858F16B12ACB9777002B64C1 /* Time Screen */ = { + isa = PBXGroup; + children = ( + 858F16B22ACB978C002B64C1 /* TimeScreen.swift */, + 858F16B42ACB97A1002B64C1 /* TimeViewController.swift */, + ); + path = "Time Screen"; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -262,8 +290,12 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 858F16AE2ACA7357002B64C1 /* StoreViewController.swift in Sources */, 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, + 858F16B32ACB978C002B64C1 /* TimeScreen.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, + 858F16B52ACB97A1002B64C1 /* TimeViewController.swift in Sources */, + 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/PowerUp/Assets.xcassets/blue_bg_1.imageset/Contents.json b/PowerUp/Assets.xcassets/blue_bg_1.imageset/Contents.json new file mode 100644 index 0000000..cccdb28 --- /dev/null +++ b/PowerUp/Assets.xcassets/blue_bg_1.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "blue_bg_1.jpg", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/PowerUp/Assets.xcassets/blue_bg_1.imageset/blue_bg_1.jpg b/PowerUp/Assets.xcassets/blue_bg_1.imageset/blue_bg_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b84fd4c0d0ec4b9e6b9334cfe3a2e6eef3d4d7ca GIT binary patch literal 9880 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 literal 0 HcmV?d00001 diff --git a/PowerUp/Assets.xcassets/pc_image.imageset/Contents.json b/PowerUp/Assets.xcassets/pc_image.imageset/Contents.json new file mode 100644 index 0000000..5ce2441 --- /dev/null +++ b/PowerUp/Assets.xcassets/pc_image.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "pc_image.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/PowerUp/Assets.xcassets/pc_image.imageset/pc_image.png b/PowerUp/Assets.xcassets/pc_image.imageset/pc_image.png new file mode 100644 index 0000000000000000000000000000000000000000..9a0d38779e03e09d915e0593f734d62a8711cd48 GIT binary patch literal 426219 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 EKa$?|%>V!Z literal 0 HcmV?d00001 diff --git a/PowerUp/Assets.xcassets/ps_image.imageset/Contents.json b/PowerUp/Assets.xcassets/ps_image.imageset/Contents.json new file mode 100644 index 0000000..456f602 --- /dev/null +++ b/PowerUp/Assets.xcassets/ps_image.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "ps_image.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/PowerUp/Assets.xcassets/ps_image.imageset/ps_image.png b/PowerUp/Assets.xcassets/ps_image.imageset/ps_image.png new file mode 100644 index 0000000000000000000000000000000000000000..15be7744114a4031790ae68839b6006dff690fe6 GIT binary patch literal 240273 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

m|EVx66hr+6WaE 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 +{G4mERN(Kd?piM1FW4hSwOfJ1vKz65 z#7FibPsJY2yqCr3O(K2W?^pJ%PP5tgwXkhS@a%rk(zM;?!D`zc)3^3Mzks|D#{c%K zUyP&bDoJu6@vuUBkN359N|B5$5sO)+$VJr_XPVZg`l}W>gz9%67!`tJ!fL3DFam^s z(ZSvKyb$oNzw0@*AHsjsI6tQ65Dv)Y;e@#cwd&C|lIimRaUHn=A}-f3AW8|p=H}I_7F`Xs;T^Sy9mPfua)?? z0$rCD7{7{skX(o>A9A=4meKnC-8^Vx{j1gw%;WSy<{d!25dd z9OmVBb?HyG(WED2cM9O2fi~4#Sg1a+SyPbQ9~BPEV#0!jLM7i@*c;8xL1-1 z$^?8g8;dMOT-@h>97Hx8{*mIEE2|~F=)R}2GPfl&)aYi(rHn6AAM*@dc)_GXTXi`x z%T#6BA)#<9ZPQ9+q)c@%eOP@zDdY>EWvZ1m1}qO@(rd#(jC*9K#84{fdpA~)?ZOaQ zK*t0N8=m7_b_L%}zrTh&a9|2yU;df_{m+UOi#pO4grjkd%2a;!eu%F_hre!tN^L)A zYF62G#JrpMMWPVW1pypI1u7!`v(Su0orc$%C%Ocs)rm9Vb)xi}J+EQS$4Vm9G8dzR z4SMP2-nX-U^%-{~Ln1Qual8y9TW4+snG<^j~~6S@BAJ(2lKKY!cy$Nqf%4QBX}hC zut4Tbn7#AZ@m#MsGUt4OGtP%(+U}=efh#u@hb;xAewMU+Da3>kG_`>P6jkL0wvSpU z8~xtF`f&(u_k*U2E}sre&i5A0hj^;S+e^iera7H zX^AEY0eW9EK63Ijw^a(GqjY4~lbJpQ=Xo53}Yu|aDHOEtZclw*>ISvvPr;_Z0lX= zRXn6wyreBPof;vcTglo|#G2)sf9O+5@;Nbkf}GO5MlbbUGZ~kL?{D?TNmw^R~@)56H7cr3_$V9SePL(D$sgcSi%FkJFChcKui+MHD|HQAl8w?K3(-g#h$p@ z#hSK(EzHp*b>HLt%Bib`&yf=u7V~zXw|nKfI8+ps=3W=!U6pq#KO<^3&|M#!vU zt9B^FhDBZ`*Z-beZFQlUio_?n!El~>sZz+0?q##B?RzhGYc(d!8?PuV{C42*fZ zimffU`6k}$D+(}84JnlL%TKW50QY6&(1-2jQaTijRRQGN=#St}Kxx$h zIr1BwHcHzg`q`r-`vJ90*LbjrkbHyr()kio$``xE#)6CwyK&4zOE9Ke9C3j}|cAP>r> z{$%%4pP44x@5kNz;~mk~O>lAKCh0-~1(Yg7u1df9m_eztR2)Ax;1$X0s`Z&;s{5e9 zg}3?d>}p}!)F$J;lfCfjt?t`YBgP|T@r_89EOLXIAGLO9i(6WLcs{wUMg;1`6t1eK zN<3oA^%dzUHq2wnf^Xa`2d474b54}v`RjVOx=+4l^J0IEA)A)k460m0g|E`qif@YA zJ3{~By_bL?aQ<_|zJ`%tR2_hXLNfn2ky3&%f6N+&{e3*V!BZ$jMiUeGCA63ZI^&l& z{Y_(}h#>1dbE{tKb=zY#%pXI(yPa=S6U1vdMrAz?^}E4|?HSQNBd9lh&k}zB{GAXj zh7~I&+VZ#sWrs#MLv#ahGmQ<-XjYqA>&YSK`Vtre8nXH)V@spnWd=wOkkael*gs^# zKI`8Q99F5)q_n75-#>ct4-=-v@yed*UMxVyg6CIPLzj-xW&_xnBB?C+`arjyE|c|lE|q<hIMyYwpyI1s%S4UKC;VC4AC7mTxOLzfF?QBbtObrUv|#urQ|C zGaQVx#nJlShM)yXx*CMK!rpDJSNz$~8eN%FjfwO=n5=pohEnZW!uVT}0c{LIdWDiF zvYr;hO-UNQvYJ-8$6lOrNa(xA157suD*W9{Iwk5MGBSy;L@2SZjCo{>yRLa;%};ig zk*Qj3C%n>!pN);Mj!Qq4)`!bSecR{W{5K>w-{N|#UM8wqqzH7vN@+0rW`3O3+ey_` zQ{7(0)Yz~_>6kl(jX-ZYu&Nl%nc)6BGd1CA#?))@mgAtXPvTU_2xl$OK#ERR%64=< z5}$WIaJcSfeo(od@Vh;heh(G7`7m*iQyn$;zyjX|fHB&}TC=6tGoja?8%)i<=y=@T z!!lQ{?qOv%(sow#ol9Erg%B-p7FrtSQKHfrKO)Qq?Gu%C`dw+lrv^EDEV>i*ah+6F zB}&#S$KDX`PfHOgll}IVwjGSNQavN8LgHax->f4+6y;&!H#^?vJ+(7AsP0EMWrKG& zB?FHObklp{%R4G6Dhx_54&j5R;P+Gsdg~g}2t=CS4mrJcl_l;CF6}iuR1D5U`Wj0% zIZ<@~(=E{4C5jk3>?bm-JAUl(*q2zxoLn}tYAD%of>QlLitnN7kz%!0L1-=-6s?aW zVw31;HQvBO%BJ}9JJ7?+FVB0Jw90q7&#PICW|=lm9OzJ3*emi&R&sUGx67=ER*$Vj zQkbphPj)Sc0w2ghrG18_Cd_NWc<$KwJaj`Y!$wfuUh)h0mw4lj<@xrgs`?tW2wN}-+OCxaJ z)zqZ$52LMPQ-Iml#3dB?#EmFyB|T<0EwuySZZbe@dmcBYQeoMrloB#f1jQfI>CC%Y zjoKad2MPXmaYQliT)zvaP7IH{N1+UuFCr(KaLez_qad2_rG!WYbYA15obot7vYRz_E6jH(4Exwg&ikkpR@m0I;~qii;k z;V9K~j7+vNDwW$;b)06yF0Z)!^9?pSu<1ddMe(X7n{lVAZ}#eozX@CnmJ@{%p%zOq zY^SHwfSVm1EEvYdPAAqwAh+tUej`(buKlK~S_7W`Y8;Z?0b*~$X z4Kr1Wnoa!coG@+C?^iPV`@XZL4({7$GugK|i>KY!xu|>oVVYBYG0H0N*aO?uziD*3 z>*FsSbL&-Wt$8)`bDV<)$Z4ma{;(fblfmyDj#XK!w;$QJNjMHq@-A(8?6l?{h0gwx zwxH9_j1+mx=sz6@6CMuo65bbx zC+)t0@4X;2JY4Cb`ziBKyv|CO>@N$m>v_@)RFXzwtXlh88A3W)bAS_VfT$KAn4IbA zE7p>iF;jAbSpdHF@9#%p9G_T2)`9*q zl_1w8Swpg)gDZXC+<7(Y3yM;z}l$ zy6eLZ4>)a6fr1f6G0!&Rx-RXLV6QS89-2S{s?UW*@h2}t|Geud*=MtutUu18OZ~;8 zt9P&Nr{{aM_(*L-K7Q~Of#!ym?IgB8c@|0oE&TxZm^G6VMi(E?m-bSHY@!%1q$R74#GwOP@oJ{)3@tHQ_HB^QmkM-!NDheI_ zylT0;6K-*MEyh^iH1c<)IEEKt^2k*$)t4o(`T7b28L{W9eQrtPL6)3mV%((h<5#f) zo;lt(R~=S@WuGf0FsveV!00uE8EgKG$fm*(4a$8Dv6^(!_`_vNayN`R-Nmg;a!WTu zAbdEAKhLlPafMi%;4?{TT1%I!TOlk?uh_$holsMqihtP-AAgcuR2r;h-L7%j=K;+4 zZ6=GKv7S$|4bO*=qki`Tobeb|xN{e*M4w7ywFO#Xrq?dD3JpX?XYS()JLzn3=+u>; z@|zrXn^G(?>BzEL^U*cz#01_O3vpNx-z*>~kTMFKuiQI%?v;DXAIl;$SM3VUBFDF7 zf*Uvib-wKFe_IIle{HJj44g|&Qm+3_|JTD!zlGZL=>ZGaJaqAc1siYP(t97=am~VlsRLx!;bp< zXQ`hUs`ARp#riyX7!i8uojev3J2)#uPpW+M0zS$wUTUXk-g`H|MoiDdGX-r{q2Fv1 zwJ3qw`dH@qjCCR8n~=o)bWh|~H>ciffh!t)COmm>d>=F%%UXMgyo>q-X{Au)O^C=s z&}P4HCUX_N4bnywSS;|5>0{iic?Fq zKNel4H#<~jc-=3<)-Zq3lC@rmb3M-7ZiUn#wfbzRy;=ZSKLNLz4=GPw!zU+kLbT-OiTQGmkBs-e`?5pA~H7?$E@$-Z6| zc4l?LaaSrVl_IWOEX@VH&BijB{`ueb_V+lwx+MXULiR+ogD;FNvzEHeA%ozrxc*p6T9GA(GfI*AJYHWi{7!#3{Z7V#Qqc@0 zV~$3a=*+Ci%^J_pq^R@+Y`qSv&)FIa#p$b$;1z_L)#?;sW7?*MiHme2OjL?w!evuZ z>V((Z_Q@9{^M&^JMnxgb2l5B=_+VvY_nxE`p#BmeU*jFS(E%rY6_w;~b1(EZxlDn5 zlN=n`F@b8$hD(_E{k1YPDDbKQ-&uZAU|=s^wo;8o0yZErDo9OK3Ez67iS69Y*@yG9 zK$l_LtbJ1A=ns`&H+wI(?vGow$}+ggeBg(Q_VP8Sr~1@j((3NRM)d9+^xyM?qP6N+ zEko2Y`9%_SUQ|s(elmjNiB9Wl182Ok;^-$r4BAKLHR6)z9F`1Q;#2hB|MDw`V8_mdlItpfowv#`3OQ~1okf`0sLQ4Rffz2w}=%&u0d0PlMy zX)527<@b;S`;0bayPX53i@d{#_9z0z7d35qwlYTJ&_k;mXlp_wm#Yn zBhG*OI989?@zKPB4*qgy{F-wQiB)4SS-UUeRQ30rBdKAK*9e;;a4?ampC;RAAcmFM;T$H6s{W%sP6scvNQbj?_?!a&eDwecR~~ zbi3>lHze-v`Cc*6Us@=M6_(z+zpTgsnk_w7hq0KY-(;jr!)MF z7jlvj|NLY%aE;q=v+vXnMP22^gotL^)O)>VOfp)9$EEF|uMZca$$<(2)JEMXFz9Qj zl$*E#HlV%KLZg;nG2u3gg6JPV{hTjiSJJMBjI$e49-c9hpm^`!cx%Re6i2G2jHFUs zbd#3J^>F=K_WH`0kD26|Xdq_3$gn>K+$`g*v_KEqj4If)hbhrYnEocmSgYu^$A@+6 z>!m$iY?#6Lt0^YqvBvUu&Jt`-Hn!v~yln1joUUZ|DPfJTj2m?2M~&jI>|&U-+dRbl zy&HJN?xUauC8EIrp{KFDO!P{E?m!zIz>ZgOSTy3M-D>m}P}&G7(2N}$y>Tj+X>KPF z@SK&L|GF7M8y9!MmKz5iUB6?D+IL-DdpjTLeUs|j>V05;AB4IAFHU%=U}1)H?~=sj7!1fD=l~?ip%b zeYmI>6UY*KH)WtSw_SCjJ?~qgA6l)@pSj~c4Gh))Q%pRXRc?*W4CUZu8B@|W(=R%* zovHIiZo9H|S5+?iiGIi!c+b10dvAiBERMg$>evSewVW%AM;?EGV3gY59#>mJEv}O7v#GjP zR;}26sK|Tf3S+51k|QNAK|fK_UdCf#U=`AGSkC)sG`snnd2l`D0`s!H>WDq|H1Nxe z-+P+-*VClFDsq3|fX4wi78bC#d9@7x4^{N3`(15E?W*l`;X0_fdN9*x`hfhpFp_7!F z)*0c>aWci&Ovg`2A-MQYZBC^+532xD^V4pxyrc8#$E=YWYHX5{nG=>Cf+T<$0+q3^ z4g_BY9U`YCm-4t-+fYV^5lPpEW5mvu%ux~`GS$T>rAC)ldxupy_l?}o01QT@?i=E!AuCWdTuw8{n z{=|#Ds`^;*tU$P=j<|_@kVVDfB&CJD86DnF*s7+2?@c*1A08>EQem9I<0nP)!#WU` z!_xCuw(+LJGqbG#0li!&)i(bCsu@5<(LI(^v4Kk|nih9RTv1%Q>&^#-I^8*N{W*I} z;&P=i?{xq^Bp!f-Rz*&I->;SA#=a!C2AFVFOuz#r#lIl*w-h740i7#VDn$@Ni0)ug z^C@@vHZoZ$zfEF~<}043E=%cIe`^Dnx;OBb;(|uhI(l3m){Bt3kEQ8hwge?@lq@X3 zRRm6imm%$jZ>;NQKp>R|3;++2g9HiDUVj&miVZU+X%`8h}n>qWMpCvxo;H=+JI%~M2vfSXxC2NtwjH8RRW369i?IL}Hk`vEEKPiN736cpVg z3>k@#ec3Nr7}@>s!2{GCsd2|~bL{-hX@D{m-p3e`lo;?*FfpuCO%O>@;n801q&THG zmrq?~z#iTn_MexO^@%E9NEs&#F;pekq9xQnIbszkSokEJ!WgfVfsr&Sv~z1yRQ$q{3;>55H_cNR1*B{O8z{?ScRmOXHI3!w z$oY3{25A;*+aEgmM12Hn@E|6HZ5EL^#%YAODyi+;M}}4K7AuGf%h#;49xhDxay{jl z=7Cqw+t@E1E}wx6q6VJ@d{&53p7+_eWL&#Bxz`^2TEK2tyc(5QolQ-Z{xI76%*FsQ z4*9##R(%XtKbP(KO;L&|pSxxnSa8bCIQ+mW5L#-o);vq>Y5rl!?RNxQTF^ySSDQ1>yn@15&_>cfn}p!jAFP?te} z)581{!~wP4D2RJLxo9-I1YpC=5uf{F`_g(`KWAe#vNToesbtH!qBK%{>*>;6oId7SzG1OQ{^M4u8zxv7VRg#OdyAK~Z; zal%j#a4m3Ff;NuaISb#TaEr^9f~)lAd5}-HG^h@6lapPGk3^;DEKG ziFdRa15yZ`coY@AAW9U7cK>r8qqW~AFJS&t(DDI}AX_hm@F1O(pCFk!a>f&im`?za z3k;Lj8*uYTA9x(lquNy`1(10wUOWSQxT{3G=rNgkMeh* zrg??zN96AaUafzbFFd-DHphb(j1i** zp<^^yYxZ!;0ZGL-9hKU+=3y-(6AV5~yQH?Dwt*={Sh~#si?;q>!?pjU&93L%Is{L8 zO4*q6`~@MFko;KIuoc%Vn4rT?g@Zaf5qww8V>ZYH#$}@(URoFK%JqU(u)>SyK%a%L zawfICIJ(x=oyGipNc3VWRDG}R$5+>s{+1eul(5+X=8$N&pA@h@vM&G_orD$YC{VmH z1-S&$iYqw{&lvsj)!0O&@R0ZSlTJ%SXiSlD#P?Z|$m8f<$Knz&W?FU@ho>nIaJ~fcJ zZ1}-x;g)%&{47 zlon6y-N+yYVxCLXlt2=75S3=7X?cp3*oU5dYb;iqGzSOWzboYfi1&@f+*6T_j|4f& za|-$ti<1spyxVu=B3FH)(r*F;%0`92ICU?7(N93LCgS5BWLYeobwXEw!gx+ZaTF0N zQP4J`D;wk>%vFfT^b3loI*+MO4*g|DzP$ItZ^+3>eYw}f6Jr0(-2n9%TXIb#;s(-S zNtXD{Ab+(CTc}f~Q<-@!BVM)y;2$i9N%?8w?Gogh^1nw7EdC(`UOnbI6s`)N^O3w( z`h6zhC%zC@FDf_(dBNhu~q_cRi)!qT0oU0o<76G5sX7>-E0s{a;D+x z91GD&;Mmj!W6CS~nadAVZnja&fhdC;zCVW?(#AtDpOR5PV^1JW(W+WM0J6bCB!6k^ zjdwv=O;}m^e%7}#Deouw0}42~uYhlURz1Duf;A^FGY*rChoWKzxbPX*FYhKmG>SXL z*oWNs>@pu)2*Ig{pm5YO9CxVltnHSFOm5%nZ!2a(Kr7WPmi2%DLg2Ythv4*erZH-$ zxko5%WH78O@w8FMQkpg;S;GV_ZCY zp&Ow;odh|uEnA*;RsooJ6aFWPHi`f|T|9)hd$XeKR!sJS-aDJWxm&(lHz0`;qKT2< zt2xx;c-1Sms@F{p3QsFfR)gYK-C_+ibW4aL!W_jZ5f`!UG73iqc71F~hN>o(i%X)m z|6-H@#gh*jzf!hnhR8t+|2AuK7B~7g{uq_e+Mt0w&jL;*CTMVj;SgJ>1M}_tcg%%k z5+kY-7_{6@aqdXMkRoQeS1iZt@dvfI#xa~88xdzWgN7CR*U?vR6PzakyvgC6l(kQV zML`=}j_2mM0E$ z+$%`lmllZ>iYi$Ox}aI7aO_1HYPr~T2KIHvm1W?@;y$Oi*0sIxk}^rsR}X;=I)yJ@ zGJl@&w+;{tZF73z_X2d6>WLDENdlLP04l!NX!(Q`3U(UxBqvt$kQ?4;nxdTZ&#$A@ zvl=4vGs_mTo**|j`YU3?DIufJp1rP@5*1SUU+&1yC_xND90a7;@8{%E+ZMcISqA1+ z+MF5KZEfI}2MQPcZ4yN|cQyhokqr@{jMCdTzVKdoDlK`{yLscy-UkH2ImpIAr$_M3 zTh9)tKpW1Lm|;Ea@n}(FZ#mkEkgu2{KI$Zp!3%px2qsCGiM(xT9$$xDE1CkX`Cln0 zenJsd2d*kWB8Z;*kNZ;{N(UsUuL~-_<02LDsKe$bzi?F4!YRYT0llCUEB?{>i68BE za+p_&51l5OQL}$>=UJQcRkOM7j*)`E&-Jg9L{$@Ymm9%t&k=oZgcmzlUYC}<=5*<* zqK_K721qi83Y;0!_}EjJh%h;&4-771Gqu||i5I3b{|`K)+6kYuqW2^B6Y><|`F|1e zi*m8n#y^0e+Z^zC>9&7(;YKy9Sd!)U(!@7`h`1|vfXbW*e!3q;3(iFr?n? zZNlAE(yr5r`!Q$97oL?OL_vXe>%B|Q!I+(Jhlek`9_4^JQ3JQPUtz4|3MMVwY(Ln3g2^WNC;*zz1QMcYR zvr)%?Lx%qx_q9fOE;iQSm`_{G5O6A~+mj#tH@gBjiOR5w=sfONwXL27xK7h{p;OI$@#MAf~K#p}o(urLpurqryVpImiZzl!5+rA@W?Sq>o1H$GnrZ0Vu3eL#j-Z{k>iWF> z_x9)~M!VND)h_($?O6WtC!RHLkWV7h7LkrAjIWrq1b9&tE**kNQ_>3dJy~hXbUn6r z`P8Ux&iiR(g11=zIkkXLKPh14O1ZZA-wDI^FKFmY087Bj5sN=NDFxpBw4P7VW;Yf$ z!oOMl`|K~)_C8hP>uhHHja&ZC_`mP`flfg_;|rVruV-*ie{OF879=V%WAd->^v^W? zmFG842@V{Q9kl=T?C+oP@c<2UjCbb#&$g+bC`}_!rvJY_{_W4-KW_k`84Ht>{NDln zPhX?jyMeZ4(Y~<$uV?>kqYmIO_KJ<{{%6~t@PW3&AudS&bnbr!6BP+eNJBr@-!SKI z|NrYd9AGwC-Uf~Q?`MC7!SRV$#^d_>Pd5I}#lNG5%w6|8Ft=M=<|N(f?`2e@w{#!PI|1-v93~)m|vJI%1{OTGU@W;E~w3Tm`!* zhwcrsy2}2u0-s(2z$^uJ`2c(*Wq@~|aWW9#7Czh}i51UItul2S^ElKu<#&&4EsTqr zO=~V}!ZYKWI!;sI)luEts@5iCHRVrwq}>z2Oda*6QaE}(C=GKU{%fC*o}$vg7D>)7 zknAgXccR(o7&tt3o84~84JpbtbJEY>p|8iu`}~=W&q!ymtKuYQBUesmWRc<4hzQ_T z2pY@J6^DhY)Piv%WA-B{4a zj*VV?FNnym6td^yS7TkiOh5IrF>`-yQJuY~*TSvzj?kOGui4e-UxUg5mx}*2CYDcT zS8F9>-xjeD&Yw70Om`m?X*gGfuuYt|Wl%!Ye=(7uzGRl)&kN7GLTl_|GWwA(kIAJ~ zD>dcKWPN+s4~J$v^98lv~7w(1P$~ z&&6%|?0H9T!xlyvkqsH6u-RMfD43RaJ)@Ne+B2W?O|53UxkEb>5&5WZ_@Z8->!{{U zL1fEI0m+auX&eL}7^Uq?ozv3iw2Y$UB)g0EB3ixI2|q5DC52Q6=_udL*jO}$q8C1XL#IJXg7!`GsL(oIyz_S61V-o_E~~Am1N*U^Y?ZIC-r}gwmmC$; z79wKtdiVP#(j(d~xn%SoQT&HecDurG>$t*;lDD55ObFu0?uRbG85s6K^`SnJ+2k&3eib<-Qh5mhl zljMFD#0@jCD$l<#f{dQUuZpChVKO4D$rX<&V173+n5-fAV!F!za5{abvz281V-H*8 zy9crU+nMhQ6h_@d`QPe+-QuOTCpW1=B}^{iIp0k1;6@YTLyWG>2(fk^BD73Te_;Q* z%Tt2>PVi@x^O=bSbDb=1+Is<~p|~ZN{83jMkO``Vof7O`;dNY%=ftU7=|g4nDLaem zsM$E9$J%XQhwsJ{h7HqpSYC^I^2P=!IWab?F%^y1R-W#Bxmzk~xOmY!8JlzK&}~t+ z{geF3OP}+8;;UNSk8sOr5SvtKm&af3Zr-3^1S5A;~8Vq)q>)U}D3cQ?0? z?&XI~s%&Qx_%Hm5Bu~uL+^46p4PWl5$-RP~mi*8#xbu7p;_kyj8hnO)FNOLNH!Xr3 z4BOX2L0*UuXY#;(SX9l6zl{EAO^QWBhNg-hsi)UivV5IwVrk4Hl^MM|i0wf?~Y#X&5jV2dMwk^4>5t_WIY>`D3&IasPE!&H*1hGvN?w=ha#d_8UqzEHI;zJ^ z>=61Tp-vDKzB6uf?c%V?VLydG4(+af=rH|!&`08(M_dL0QWg={J%M_F`STC;2STzg!DZ7jd&HgbTx}wi#GIYBoy`45?wL{f z=orOJeRFe2r&29Gl;lf~#Vk3#1s6Hgf`yzgKM|Lr3@fl-mVK4`TUUFkzvk6yxX)ih zdmi1cyQ$u<)=Fq8^owH=FD3ko-1nibu^N>_R1?$H72MIlRmwF>7M?dk`LMN+aw?P; zn0Zi-C&~5@1SFf6JV$q!Ta5ez^&WNXP0n6Xs4oNY>`u#0TLN!|%4;d)hYL%>=ng)a zGEr_2W_qkNuT{CEUecH!Co~2=}wQk%wY3b?U|hci;g|A)Y0WFfP#sqRg4YV#gj* zN_g#sfw^&l=fKSklyx5+Jr3Rl_aeY!cO%$JXlo^l=3DX<_2yaf^fPc*yZz)ZrNARl z)Yb|N^=h#@ya+_>GW{F5lfuIr2C^vI(IAMVz$!k3bc)yrD=U`m6i*gWDj5!>-a+ZK zjZrkJbuIG?tW@?UDj^8oF!U32lEH-UflpDhbu_SCS`>SCGc@pV2p^JMevB}th}TlR zPj;!zmF3hK*nnwTJAcObARgHmuw&rgqr3Lq(9vZOc5^ z`)`ppzJD@##nh&pF^1gr5~2-A>w57B;-2)T?rpCb)q$Exb`=RxvZn6&{P-OM0*)gA z!+k_)hZcX)+BZpk;)(>bcQHV>_<(u(U@+G#gca8MjdT4gj+G7^5;)=o$uIZY!YJT? znk4Pn?G0yV`B@@PQNiEE)cNr-gQWe>T7^PqKIEm?A7)nZW_@G+8{J}ksx41_>b$OwdsxX%QAO$EcvB4ujVo$Am5e=W zd3*5%-h0%{V%w)m3V>OA?uOT71`=IK$c%Ba%@~| z9&n90Em`GLlp9`-+whT-S8}{7tpC6!ay|dw)DHgihl)&|_qvq_#pY~e3yCq`D$ZmG zU-3yKV!t=uGZOZnuvB_^RMzWfAZ`Ex{CUVb@9HwJq#*{1zno+aaQ)WU-G$r%Z$2Cf zqoi&?k563O+*XmirYUX>Yl8#@d7h6*Y;K9Qqz>1=m_S1tG35|b3pwFlvU?J5A@QBa z^FYt}d>b6dd>xKaCkwOgdH6eq%is*r?dcB$3IU~uL(X>ZpNO2P)~26oC)6$A-+Sms z4E+@urW!2o+PK_*EVWQ;$8q_LMbPrHllR{*HByzGAqQ@Za}tHw{dLIzYV703rZ|rD zSHn;s15)IJI(nwBjaq&9rrX3VmA|?12)NlT{9N12~Y!qXuI1x-t)MA>pvuJ>{wF{Lsriw34@u<_qH&j_%qzM9Kq>r$kKp zSx@=CSst8!puwjRUs%FaT--ihSrV7e?{b|Na+0F!o;d5C(VvT4mj%`Ti_YUiJvE4xpL_I{aR9K&pjiYKnbj!5`r0 zguybATVqSSp&u^P_Qq7j1GA3N?JiH0+VZiz@ihMw)GEO@5rg6*VA7%wvsHXPjX z!9ujECyP&-^1orgQut#lQ|1jzikk;WBvqr<*ao%TVug-pHk zU-ICH6+Z2wF>1{FWlX+%jd@Rt>?!I61Rxu41OL>64xo~dx=QdxbbmqO*V>_(;CF%f zld4@BPiFRCA4Cxsno0mT?PJoujU|gN(5@qy4`W`m)%x!}GF?J~@Sa0znL;dn#X5XG z{QR8dR*U-6NUClYN~H2Xb&CGI2;cuUK#)n!tXSV|Zo%uoVZO;nO(u2m!|z+=B35?z z{TG1Zo}csUq*MDH?|fUhrk@p+W|Gu)YF)yXLQ#fxcD_1od%2GE^WU(ZDjyVY%bN(F zbqWdec7y?&-4%fYjJ_Sr)zjEW?pYpAjzMR~K_%#bdRhnOIcvU091HK4g08fB%5-lw z$=kH)*y*$uRZH0=@zhuRF}Ad&q5)2Gz5cts2B5gwKZvf51bisgNGo`d3E5wCI|9L1 zovvn8iO|%JS~RaPYP(#3_Tg;=8cFrP?7NTw%h4FS%DpcI9>Zobt<3S6w_o{$nVxV> z?`-<8cTP@SzrEd~x%dCNI`eR-_BViM%R0;mS;vf}!icP8of+HMvSb${vLtJUGPW#@ zv1Ld?T|3Esty!`pTO=mNE=vlfE)iMsJEMD_d!OI=_dL%z=X<{A-9PVp*iP|3s5?yP zcHsO-$u){^fA?EnJ3PTmARw751*E zX>l}~@Zq_8X7Ts>7Rv7=hgR+l&5|HLmTgUWa?GIDG>;M-%n>v^)#k1ThOi?O>F#m| zBd-zg)i<;{wiRiqg$y|*+~wU4Fa|EO06jo&^53e-UB0ReKPwj+`(!@0+OI^!?%@g~ zKNS-qUh^cvscMknH^ad}JDmJ+NG?{Qtro)%E#MXc>tE; z4G~z6Tj=L^GatF;JhkfKodvEAM-d`NVGPl?Pu-Zf zB;~M$3SI(q)eKcvecjQVtuVPoTSY269mwTjQmvZV?%-{5ok@70)n-oIK5beVE`j*Q z?_rkTbwhWvKG`FaQqJ8t9#<^yxsEF@7Whx!w_GghshvF7q%khBsq*8 z-c`eS~u#doe_buHsT%%y6rBW!l90Z}a5z#9O&3L>ix7oP39&|T>aIw% z6(shk>h7hZ@{Z@E*a0fiDj{RZmyKRmwQ{8{Lqeb!w53eqAYwesan5R=az)jupNb~rspa?FqcbXWpn&47{P%ds`^lA}*gO+gOpkEPXWL2NzmA$%L4 zBoHJ)y4h#C%{XVW_|S=&=M`O2EJlwvTdIKi2VRzV6Km%%I`vDAbjPu8A@IE##pk~B zMbPKJx1ISp`b%%&@P6`;sZ^6J3Hw}exD;s)Lo~u={yZ?W_OdASN3j+tIwe)tarX$Z zmS*;{LFXKwD%%_x&7OQ{Q~q$$rmCv~D0w<9!DLA;b@a|kk^L4@7 zfYr|bqSDw$)qz6-%#kb1Kl%L~z|gQ=VIfI=&M<9cso9I5LuYrH$)cEIU~ZupgPdr) zf-LFbMJ@4qV0wYJ%nY~TrAaf&&8+i+ddAizDL(Q3|Ogqx%eB%v8+H z9}yW)HwfEJUWk_%;hZd`Or01rA1j)kk-)aidFu(VEgzqm-vE+MdGp-MT|0$|mFx)s z4e6+Z$%-+im)CtTe4QFP$I9f}#|4#i?g4dnCP6oaQ&DPRfiX1XToaFr7yH#T0w*op z6|%4KB`etXM<00Z^*tE;eDvJ>@lf93iqD6Bfi)Lu@}QZT195o4ZtYeIAr74nX{DsD z#Fe#wT2~o%JaS~*V_|y3LeD@RQ9yuG+D_hc4}RMu1>kHxPQlnlHJ_hm;9x0-M4`RF z<&?JE^&&dqPAZ{qhD^ zer|GhU<0pEiib9x98EuybL4E#T~f7+CF#_r>F!@V&2%(cBk(YD`e!~40Uj@hK{V0$ z0C(zR?@?3hhiwAmUZNthh>Q`0%Isw zY&l8k)@d{wxvk~a`2C$#J?O^ON0?K$Lv>tRR6~Hbk>LX_krZYbPiUCD zP_W8LmKpc=GZBrtwn(8oH^Ejw{Kj@dW~vHMvbGrVr@ zqvcrGop<6ecI8zGT#v7LIh*x<>FjFqxtgJkx}FkmK81YY7rFv!pHpYY9u#qi1m0nb z0@O#DuG7Z*Gqy%Qb}nr-_WPdw70MXVCEB>H+%02tRB*j*4{DiO;ls?jelK0+VZ)ba z_Gh{`pAK6&6)|5+AWM3GEo!w8uEP0;2 zcY~Tb5TH7Bply}e4C5r^c;~>Wg1bN%Czt9cif7O6x4i` zn>QDuJU!js{~XUVCwu2@2Ob1sHd%^zL2!%dS_9+qjnNk+p%B4HH*Io3nx4=s!`DXOSyh!2qj}EVd4J-<9 zeD%{C=QB4jYpzl96m_V3-F~=nV!E`)B-4O~jZzu6x@kjZfRh5f#W&r#*3XMtOsVSk zu;LB-rQ#(Lr94q=k`lz5GU0lXi%p9R7hvI{EYfQA91u-n>}ye<50>AtX^q)q)mF+r zH{yQ9CVyJMTSM|&1@NzomBRZ}xl~ix!csm$%?OM8JyhRe7~tYJa-tv;i2xLxG*nB= zr9fT*DdFd`lxV-EV5d71=<{h59l&v0?0qOOK^H3dr^j2Ecp>PPR>o#2R`eH7j`I|` zhIo1v17&uZ=N2PKcDVMnEZcq;4@)ZhR*A?zb=l^S%m6a|w3S$cuNiRcdnMqlBagI(VFr2qiV0W&-@0TO5lT3UuNhgx6C+^}wZfYdzB-{MHKkr2B6+h!S zasUVOJe;pL)=(-|%0xc+wB8hv=XM4xCM&O~>L+Mxt|KKuZjazInswQxhY?ki*j% zsg$*OK04=D0dI&qvYmhPY$p>IoM4C1LlfVh{C178%Vk#2^l*)+!b*qVp9(A-V?^2}woMGW zGho?j38E>qT4MNZ#KF^;!(riwFT^tP7fnV`1twlP=5*=Lex!CL&^}<39#ZYe-Qgul z26D7_2dk053tV(tE!^qRM@5UI@GTwb$U{z)Vxy~YB3A>`ehX5W^Y*SHB00E6zVJF3fye*= literal 0 HcmV?d00001 diff --git a/PowerUp/Base.lproj/Main.storyboard b/PowerUp/Base.lproj/Main.storyboard index 25a7638..444fac5 100644 --- a/PowerUp/Base.lproj/Main.storyboard +++ b/PowerUp/Base.lproj/Main.storyboard @@ -1,24 +1,32 @@ - + + - + + - - + + - - - + + + - - + + - + + + + + + + diff --git a/PowerUp/Store Screen/StoreScreen.swift b/PowerUp/Store Screen/StoreScreen.swift new file mode 100644 index 0000000..9394d6b --- /dev/null +++ b/PowerUp/Store Screen/StoreScreen.swift @@ -0,0 +1,174 @@ +// +// StoreScreen.swift +// PowerUp +// +// Created by Cliff Li on 10/1/23. +// + +import UIKit + +class StoreScreen: UIView { + var viewStar: UIView! + var viewPCInfo: UIView! + var viewPSInfo: UIView! + + var labelStart: UILabel! + var labelPCName: UILabel! + var labelPCAvailability: UILabel! + var labelPSName: UILabel! + var labelPSAvailability: UILabel! + + var imageViewPC: UIImageView! + var imageViewPS: UIImageView! + + + var buttonLocation: UIButton! + + let customButtonColor = UIColor(red: 0.45, green: 0.72, blue: 1, alpha: 1.0) + let customStartBgk = UIColor(red: 0.035, green: 0.51, blue: 0.89, alpha: 1.0) + override init(frame: CGRect) { + super.init(frame: frame) + self.backgroundColor = .white + + setupStartComponent() + setupPCComponent() + setupPSComponent() + + initConstraints() + } + + + + func setupStartComponent(){ + viewStar = UIView() + viewStar.backgroundColor = customStartBgk + viewStar.translatesAutoresizingMaskIntoConstraints = false + + labelStart = UILabel() + labelStart.text = "Location Summary" + labelStart.font = UIFont.boldSystemFont(ofSize: 26) + labelStart.textColor = UIColor.white + labelStart.translatesAutoresizingMaskIntoConstraints = false + + buttonLocation = UIButton() + buttonLocation.setTitle("123 Street", for: .normal) + buttonLocation.setTitleColor(UIColor.white, for: .normal) + buttonLocation.titleLabel?.font = .systemFont(ofSize: 22) + buttonLocation.backgroundColor = customButtonColor + buttonLocation.contentHorizontalAlignment = .left + buttonLocation.layer.cornerRadius = 10 + buttonLocation.translatesAutoresizingMaskIntoConstraints = false + + viewStar.addSubview(labelStart) + viewStar.addSubview(buttonLocation) + self.addSubview(viewStar) + } + + func setupPCComponent(){ + viewPCInfo = UIView() + viewPCInfo.backgroundColor = UIColor.white + viewPCInfo.layer.cornerRadius = 10 + viewPCInfo.layer.shadowColor = UIColor.black.cgColor + viewPCInfo.layer.shadowOpacity = 0.5 + viewPCInfo.layer.shadowOffset = CGSize(width: 2, height: 2) + viewPCInfo.layer.shadowRadius = 4 + viewPCInfo.layer.cornerRadius = 10 + viewPCInfo.translatesAutoresizingMaskIntoConstraints = false + + labelPCName = UILabel() + labelPCName.text = "PCs availability" + labelPCName.font = UIFont.boldSystemFont(ofSize: 18) + labelPCName.translatesAutoresizingMaskIntoConstraints = false + + labelPCAvailability = UILabel() + labelPCAvailability.text = "8/10" + labelPCAvailability.font = UIFont.systemFont(ofSize: 16) + labelPCAvailability.translatesAutoresizingMaskIntoConstraints = false + + + imageViewPC = UIImageView(image: UIImage(named: "pc_image")!) + imageViewPC.frame = CGRect(x: 180, y: 20, width: 150, height: 150) + + viewPCInfo.addSubview(labelPCName) + viewPCInfo.addSubview(labelPCAvailability) + viewPCInfo.addSubview(imageViewPC) + self.addSubview(viewPCInfo) + + + } + + func setupPSComponent(){ + viewPSInfo = UIView() + viewPSInfo.backgroundColor = UIColor.white + viewPSInfo.layer.cornerRadius = 10 + viewPSInfo.layer.shadowColor = UIColor.black.cgColor + viewPSInfo.layer.shadowOpacity = 0.5 + viewPSInfo.layer.shadowOffset = CGSize(width: 2, height: 2) + viewPSInfo.layer.shadowRadius = 4 + viewPSInfo.layer.cornerRadius = 10 + viewPSInfo.translatesAutoresizingMaskIntoConstraints = false + + labelPSName = UILabel() + labelPSName.text = "PSs availability" + labelPSName.font = UIFont.boldSystemFont(ofSize: 18) + labelPSName.translatesAutoresizingMaskIntoConstraints = false + + labelPSAvailability = UILabel() + labelPSAvailability.text = "8/10" + labelPSAvailability.font = UIFont.systemFont(ofSize: 16) + labelPSAvailability.translatesAutoresizingMaskIntoConstraints = false + + imageViewPS = UIImageView(image: UIImage(named: "ps_image")!) + imageViewPS.frame = CGRect(x: 180, y: 20, width: 150, height: 150) + + viewPSInfo.addSubview(labelPSName) + viewPSInfo.addSubview(labelPSAvailability) + viewPSInfo.addSubview(imageViewPS) + self.addSubview(viewPSInfo) + } + + func initConstraints(){ + NSLayoutConstraint.activate([ + viewStar.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor), + viewStar.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor), + viewStar.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor, constant: -100), + viewStar.heightAnchor.constraint(equalToConstant: 260), + + labelStart.topAnchor.constraint(equalTo: viewStar.topAnchor, constant: 100), + labelStart.leadingAnchor.constraint(equalTo: viewStar.leadingAnchor, constant: 16), + + buttonLocation.topAnchor.constraint(equalTo: labelStart.topAnchor, constant: 60), + buttonLocation.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 20), + buttonLocation.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -20), + + viewPCInfo.topAnchor.constraint(equalTo: viewStar.bottomAnchor, constant: -10), + viewPCInfo.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 16), + viewPCInfo.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -16), + viewPCInfo.heightAnchor.constraint(equalToConstant: 200), + + labelPCName.topAnchor.constraint(equalTo: viewPCInfo.topAnchor, constant: 20), + labelPCName.leadingAnchor.constraint(equalTo: viewPCInfo.leadingAnchor, constant: 20), + + labelPCAvailability.topAnchor.constraint(equalTo: labelPCName.bottomAnchor, constant: 30), + labelPCAvailability.leadingAnchor.constraint(equalTo: viewPCInfo.leadingAnchor, constant: 20), + + viewPSInfo.topAnchor.constraint(equalTo: viewPCInfo.bottomAnchor, constant: 20), + viewPSInfo.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 16), + viewPSInfo.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -16), + viewPSInfo.heightAnchor.constraint(equalToConstant: 200), + + labelPSName.topAnchor.constraint(equalTo: viewPSInfo.topAnchor, constant: 20), + labelPSName.leadingAnchor.constraint(equalTo: viewPSInfo.leadingAnchor, constant: 20), + + labelPSAvailability.topAnchor.constraint(equalTo: labelPSName.bottomAnchor, constant: 30), + labelPSAvailability.leadingAnchor.constraint(equalTo: viewPSInfo.leadingAnchor, constant: 20) + + + ]) + + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} diff --git a/PowerUp/Store Screen/StoreViewController.swift b/PowerUp/Store Screen/StoreViewController.swift new file mode 100644 index 0000000..0190068 --- /dev/null +++ b/PowerUp/Store Screen/StoreViewController.swift @@ -0,0 +1,32 @@ +// +// StoreViewController.swift +// PowerUp +// +// Created by Cliff Li on 10/1/23. +// + +import UIKit + +class StoreViewController: UIViewController { + let storeScreen = StoreScreen() + override func loadView() { + view = storeScreen + } + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PowerUp/Time Screen/TimeScreen.swift b/PowerUp/Time Screen/TimeScreen.swift new file mode 100644 index 0000000..7bb489a --- /dev/null +++ b/PowerUp/Time Screen/TimeScreen.swift @@ -0,0 +1,176 @@ +// +// TimeScreen.swift +// PowerUp +// +// Created by Cliff Li on 10/2/23. +// + +import UIKit + +class TimeScreen: UIView { + + var containerTop: UIView! + var myTimeLabel: UILabel! + var infoContainer: UIView! + var bestCafeLabel: UILabel! + var mainStreetLabel: UILabel! + var addButton = UIButton() + var pcLabel: UILabel! + var additionalInfoContainer: UIView! + var timeLeftLabel: UILabel! + + + + override init(frame: CGRect) { + + super.init(frame: frame) + self.backgroundColor = .white + setUpTopContainer() + setMyTime() + setUpInfoContainer() + setUpLabels() + setPCLabel() + setUpAdditionalInfoContainer() + setTimeLeftLabel() + setButton() + } + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + func setButton(){ + addButton = UIButton() + addButton.setTitle("+ Add Time", for: .normal) + addButton.backgroundColor = .blue + addButton.layer.cornerRadius = 5 + addButton.translatesAutoresizingMaskIntoConstraints = false + additionalInfoContainer.addSubview(addButton) + + } + + func setTimeLeftLabel(){ + + timeLeftLabel = UILabel() + timeLeftLabel.text = "Time Left:" + timeLeftLabel.font = UIFont.systemFont(ofSize: 18) + timeLeftLabel.textColor = .black + timeLeftLabel.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(timeLeftLabel) + } + func setUpAdditionalInfoContainer() { + additionalInfoContainer = UIView() + additionalInfoContainer.backgroundColor = .white + additionalInfoContainer.layer.borderColor = UIColor.black.cgColor + additionalInfoContainer.layer.borderWidth = 1.0 + additionalInfoContainer.layer.cornerRadius = 10 + additionalInfoContainer.translatesAutoresizingMaskIntoConstraints = false + containerTop.addSubview(additionalInfoContainer) + } + func setUpInfoContainer(){ + infoContainer = UIView() + let lightBlue = UIColor(red: 173/255, green: 216/255, blue: 230/255, alpha: 1.0) + infoContainer.backgroundColor = lightBlue // Change color if needed + infoContainer.layer.cornerRadius = 10 // Adjust the corner radius as needed + infoContainer.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(infoContainer) + } + + func setUpLabels(){ + bestCafeLabel = UILabel() + bestCafeLabel.text = "Best Cafe" + bestCafeLabel.font = UIFont.systemFont(ofSize: 20, weight: .bold) + bestCafeLabel.textColor = .black + bestCafeLabel.translatesAutoresizingMaskIntoConstraints = false + infoContainer.addSubview(bestCafeLabel) + + mainStreetLabel = UILabel() + mainStreetLabel.text = "Main Street" + mainStreetLabel.font = UIFont.systemFont(ofSize: 16) + mainStreetLabel.textColor = .black + mainStreetLabel.translatesAutoresizingMaskIntoConstraints = false + infoContainer.addSubview(mainStreetLabel) + +// pcLabel = UILabel() +// pcLabel.text = "PC 1" +// pcLabel.font = UIFont.systemFont(ofSize: 12) +// pcLabel.textColor = .black +// pcLabel.translatesAutoresizingMaskIntoConstraints = false +// additionalInfoContainer.addSubview(pcLabel) + } + + func setUpTopContainer(){ + + containerTop = UIView() + containerTop.backgroundColor = .blue + containerTop.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(containerTop) + } + + func setMyTime(){ + myTimeLabel = UILabel() + myTimeLabel.text = "My Time" + myTimeLabel.font = UIFont.systemFont(ofSize: 24, weight: .bold) // Customize font and size if needed + myTimeLabel.textColor = .white + myTimeLabel.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(myTimeLabel) + + } + + func setPCLabel(){ + + pcLabel = UILabel() + pcLabel.text = "PC 1" + pcLabel.font = UIFont.systemFont(ofSize: 18) + pcLabel.textColor = .black + pcLabel.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(pcLabel) + + } + + func initConstraints(){ + NSLayoutConstraint.activate([ + + containerTop.leadingAnchor.constraint(equalTo: self.leadingAnchor), + containerTop.trailingAnchor.constraint(equalTo: self.trailingAnchor), + containerTop.topAnchor.constraint(equalTo: self.topAnchor), + containerTop.heightAnchor.constraint(equalTo: self.heightAnchor, multiplier: 0.3), + + myTimeLabel.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 16), // Adjust the constant as needed + myTimeLabel.topAnchor.constraint(equalTo: self.topAnchor, constant:64), // Adjust the constant as needed + + //all together + infoContainer.widthAnchor.constraint(equalToConstant: 375), // Set the desired width + infoContainer.heightAnchor.constraint(equalToConstant: 75), // Set the desired height + infoContainer.centerXAnchor.constraint(equalTo: containerTop.centerXAnchor), // Center horizontally + infoContainer.centerYAnchor.constraint(equalTo: containerTop.centerYAnchor, constant: 30), // Center verticall + + bestCafeLabel.leadingAnchor.constraint(equalTo: infoContainer.leadingAnchor, constant: 8), + bestCafeLabel.topAnchor.constraint(equalTo: infoContainer.topAnchor, constant: 8), + + mainStreetLabel.leadingAnchor.constraint(equalTo: infoContainer.leadingAnchor, constant: 8), + mainStreetLabel.topAnchor.constraint(equalTo: bestCafeLabel.bottomAnchor, constant: 4), + //all together + + additionalInfoContainer.widthAnchor.constraint(equalToConstant: 375), // Set the desired width + additionalInfoContainer.heightAnchor.constraint(equalToConstant: 175), // Set the desired height + additionalInfoContainer.centerXAnchor.constraint(equalTo: containerTop.centerXAnchor), + additionalInfoContainer.centerYAnchor.constraint(equalTo: containerTop.bottomAnchor, constant: 40), + + pcLabel.leadingAnchor.constraint(equalTo: additionalInfoContainer.leadingAnchor, constant: 8), + pcLabel.topAnchor.constraint(equalTo: additionalInfoContainer.topAnchor, constant: 8), + + timeLeftLabel.leadingAnchor.constraint(equalTo: pcLabel.leadingAnchor), + timeLeftLabel.topAnchor.constraint(equalTo: pcLabel.bottomAnchor, constant: 12), + + addButton.centerXAnchor.constraint(equalTo: additionalInfoContainer.centerXAnchor), +// addButton.centerYAnchor.constraint(equalTo: additionalInfoContainer.centerYAnchor), + addButton.bottomAnchor.constraint(equalTo: additionalInfoContainer.bottomAnchor, constant: -20), // Adjust the constant to position the button higher or lower + addButton.widthAnchor.constraint(equalToConstant: 100), + addButton.heightAnchor.constraint(equalToConstant: 30) + + + ]) + + } +} diff --git a/PowerUp/Time Screen/TimeViewController.swift b/PowerUp/Time Screen/TimeViewController.swift new file mode 100644 index 0000000..df0c61b --- /dev/null +++ b/PowerUp/Time Screen/TimeViewController.swift @@ -0,0 +1,28 @@ +// +// TimeViewController.swift +// PowerUp +// +// Created by Cliff Li on 10/2/23. +// + +import UIKit + +class TimeViewController: UIViewController { + override func viewDidLoad() { + super.viewDidLoad() + let timeView = TimeScreen() + timeView.translatesAutoresizingMaskIntoConstraints = false + view.addSubview(timeView) + NSLayoutConstraint.activate([ + timeView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + timeView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + timeView.topAnchor.constraint(equalTo: view.topAnchor), + timeView.bottomAnchor.constraint(equalTo: view.bottomAnchor) + ]) + + timeView.initConstraints() + } + + + +} diff --git a/README.md b/README.md index b6bef4f..3037ef3 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,3 @@ Hello from Cliff Hello from Jeff Hello from Nick Hello From Dingbang -Git Modify From 38ec627a22c9c7444595df3543280e79ba8d438d Mon Sep 17 00:00:00 2001 From: Dingbang Chen <32493983+cdb19950522@users.noreply.github.com> Date: Mon, 2 Oct 2023 20:57:23 -0400 Subject: [PATCH 20/71] Update ViewController.swift --- PowerUp/ViewController.swift | 5 ----- 1 file changed, 5 deletions(-) diff --git a/PowerUp/ViewController.swift b/PowerUp/ViewController.swift index 084c1b0..fabbdfe 100644 --- a/PowerUp/ViewController.swift +++ b/PowerUp/ViewController.swift @@ -9,11 +9,6 @@ import UIKit class ViewController: UIViewController { - let profileScreen = ProfileScreenView() - - override func loadView() { - view = profileScreen - } override func viewDidLoad() { super.viewDidLoad() // Dingbang First Commit check, second check From 183e34d88a16c502c672f29b548ac657a544fddf Mon Sep 17 00:00:00 2001 From: Yucheng Date: Mon, 2 Oct 2023 21:15:45 -0400 Subject: [PATCH 21/71] update --- .../UserInterfaceState.xcuserstate | Bin 39344 -> 41206 bytes PowerUp/Base.lproj/Main.storyboard | 21 +++++++++++++----- PowerUp/SceneDelegate.swift | 19 ++++------------ 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate index 72fcfce11a7dbe444d7fe2fe0e02e5e37ac2620c..0c4e86223351967b13c9bc16c5be481bb7bf5581 100644 GIT binary patch delta 17770 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 DOFj^r delta 16680 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 - + + - + + + - + - + - + - + + + + + + + diff --git a/PowerUp/SceneDelegate.swift b/PowerUp/SceneDelegate.swift index 8c64fb2..0dee3e9 100644 --- a/PowerUp/SceneDelegate.swift +++ b/PowerUp/SceneDelegate.swift @@ -12,23 +12,12 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { - guard let windowScene = (scene as? UIWindowScene) else { return } - - let window = UIWindow(windowScene: windowScene) - let walletVC = WalletViewController() - window.rootViewController = walletVC - self.window = window - window.makeKeyAndVisible() + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + guard let _ = (scene as? UIWindowScene) else { return } } - -// func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { -// // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. -// // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. -// // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). -// guard let _ = (scene as? UIWindowScene) else { return } -// } - func sceneDidDisconnect(_ scene: UIScene) { // Called as the scene is being released by the system. // This occurs shortly after the scene enters the background, or when its session is discarded. From 9499ceb0cb20510ddf6406324f16a5947197bb66 Mon Sep 17 00:00:00 2001 From: Dingbang Chen Date: Mon, 2 Oct 2023 21:49:52 -0400 Subject: [PATCH 22/71] fix --- PowerUp.xcodeproj/project.pbxproj | 14 -------------- .../UserInterfaceState.xcuserstate | Bin 41206 -> 0 bytes PowerUp/Base.lproj/Main.storyboard | 17 ++++++++--------- 3 files changed, 8 insertions(+), 23 deletions(-) delete mode 100644 PowerUp.xcodeproj/project.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index e3b8d4a..073a0f8 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -7,8 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 4453BF7B2ACA0AC30017F04B /* WalletView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4453BF7A2ACA0AC30017F04B /* WalletView.swift */; }; - 4453BF7D2ACA0ADE0017F04B /* WalletViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4453BF7C2ACA0ADE0017F04B /* WalletViewController.swift */; }; 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */; }; 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */; }; 11433FBE2ABCBCDD005AA716 /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 11433FBD2ABCBCDD005AA716 /* .gitignore */; }; @@ -46,8 +44,6 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 4453BF7A2ACA0AC30017F04B /* WalletView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletView.swift; sourceTree = ""; }; - 4453BF7C2ACA0ADE0017F04B /* WalletViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletViewController.swift; sourceTree = ""; }; 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileScreenController.swift; sourceTree = ""; }; 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileScreenView.swift; sourceTree = ""; }; 11433FBD2ABCBCDD005AA716 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; @@ -96,13 +92,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 4453BF792ACA0A2A0017F04B /* WalletView */ = { - isa = PBXGroup; - children = ( - 4453BF7A2ACA0AC30017F04B /* WalletView.swift */, - 4453BF7C2ACA0ADE0017F04B /* WalletViewController.swift */, - ); - path = WalletView; 1129A8882ACB5DF00054E020 /* ProfileScreen */ = { isa = PBXGroup; children = ( @@ -137,7 +126,6 @@ 858F15412ABB77F0002B64C1 /* PowerUp */ = { isa = PBXGroup; children = ( - 4453BF792ACA0A2A0017F04B /* WalletView */, 1129A8882ACB5DF00054E020 /* ProfileScreen */, 858F16B12ACB9777002B64C1 /* Time Screen */, 858F16AC2ACA7338002B64C1 /* Store Screen */, @@ -322,7 +310,6 @@ files = ( 858F16AE2ACA7357002B64C1 /* StoreViewController.swift in Sources */, 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, - 4453BF7B2ACA0AC30017F04B /* WalletView.swift in Sources */, 858F16B32ACB978C002B64C1 /* TimeScreen.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */, @@ -330,7 +317,6 @@ 858F16B52ACB97A1002B64C1 /* TimeViewController.swift in Sources */, 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, - 4453BF7D2ACA0ADE0017F04B /* WalletViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 0c4e86223351967b13c9bc16c5be481bb7bf5581..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41206 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 diff --git a/PowerUp/Base.lproj/Main.storyboard b/PowerUp/Base.lproj/Main.storyboard index 4f94be5..49af055 100644 --- a/PowerUp/Base.lproj/Main.storyboard +++ b/PowerUp/Base.lproj/Main.storyboard @@ -1,29 +1,28 @@ - + - - + - - + + - - + + - + - + From eb368eaafe333d2a02abad6fa51e6a7640193366 Mon Sep 17 00:00:00 2001 From: CliffLi Date: Wed, 4 Oct 2023 22:12:28 -0500 Subject: [PATCH 23/71] 5 screens Integrated --- .DS_Store | Bin 6148 -> 6148 bytes PowerUp.xcodeproj/project.pbxproj | 32 +++++++++++++++++++++++++++++ PowerUp/Base.lproj/Main.storyboard | 9 ++++---- 3 files changed, 36 insertions(+), 5 deletions(-) diff --git a/.DS_Store b/.DS_Store index 134f91932d571968d12bf2b5e7826f1f560547fb..e2afb4b4bcdb68e368abe5ad45da028890f90667 100644 GIT binary patch literal 6148 zcmeH~KX21O7{=dg192#zfI#YkWQjEjXM0 z6Q6{YFTe+2Vc?U%1ke3xsuLK0fJg6uaT z`bAoZ72UE1W%3#$I-q1X;(b3_7;PF10Yl(lBOu=0Dm^7mISr`v{&F8ZVp({E)ch#} zrG?Rco+f@IM}P8@C`_|f>nmGXtz5cXwW`*db?BY&+{=2|IPLUCFGOvh^TR)fd@!BXtlM|*J>2WQiiRVrGs#d*oY9HY$Q(NK+(eZ}Y=fea}#CMKt3D=OjuI6uj`*8E^m&4EEi7n*} z{?M76l8(nVhJoXXxB?a>bYpDsOtHfcz~ z+-yJQ9H^Q&C!pU4ORNDV3;{#H5GWH6>w}FX)X`cfl}iUQc?5t~&@2OG@zEeWwpK@L zp%gs`rmRq9W%`K0lpXE19_MH+lqx$hIWw-KXJ-0@!sP5|x8-nRj#85w0*1gWfmKzl zi~WD+;`9Hk$B`mu~2NHo}wrV0|Nsi1A_nqLlHwLLji*xLj^4PcE-P?}|Pgvc6Z0FkE=vj6}9 diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index 073a0f8..bbbff0b 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -24,6 +24,10 @@ 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16AF2ACA73C5002B64C1 /* StoreScreen.swift */; }; 858F16B32ACB978C002B64C1 /* TimeScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16B22ACB978C002B64C1 /* TimeScreen.swift */; }; 858F16B52ACB97A1002B64C1 /* TimeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16B42ACB97A1002B64C1 /* TimeViewController.swift */; }; + 858F16C32ACE60A6002B64C1 /* WalletViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16C12ACE60A6002B64C1 /* WalletViewController.swift */; }; + 858F16C42ACE60A6002B64C1 /* WalletView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16C22ACE60A6002B64C1 /* WalletView.swift */; }; + 858F16C82ACE60C6002B64C1 /* StartScreenController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16C62ACE60C6002B64C1 /* StartScreenController.swift */; }; + 858F16C92ACE60C6002B64C1 /* StartScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16C72ACE60C6002B64C1 /* StartScreen.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -65,6 +69,10 @@ 858F16AF2ACA73C5002B64C1 /* StoreScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreScreen.swift; sourceTree = ""; }; 858F16B22ACB978C002B64C1 /* TimeScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeScreen.swift; sourceTree = ""; }; 858F16B42ACB97A1002B64C1 /* TimeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeViewController.swift; sourceTree = ""; }; + 858F16C12ACE60A6002B64C1 /* WalletViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WalletViewController.swift; sourceTree = ""; }; + 858F16C22ACE60A6002B64C1 /* WalletView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WalletView.swift; sourceTree = ""; }; + 858F16C62ACE60C6002B64C1 /* StartScreenController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StartScreenController.swift; sourceTree = ""; }; + 858F16C72ACE60C6002B64C1 /* StartScreen.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StartScreen.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -126,6 +134,8 @@ 858F15412ABB77F0002B64C1 /* PowerUp */ = { isa = PBXGroup; children = ( + 858F16C52ACE60C6002B64C1 /* Start Screen */, + 858F16C02ACE60A6002B64C1 /* WalletView */, 1129A8882ACB5DF00054E020 /* ProfileScreen */, 858F16B12ACB9777002B64C1 /* Time Screen */, 858F16AC2ACA7338002B64C1 /* Store Screen */, @@ -175,6 +185,24 @@ path = "Time Screen"; sourceTree = ""; }; + 858F16C02ACE60A6002B64C1 /* WalletView */ = { + isa = PBXGroup; + children = ( + 858F16C12ACE60A6002B64C1 /* WalletViewController.swift */, + 858F16C22ACE60A6002B64C1 /* WalletView.swift */, + ); + path = WalletView; + sourceTree = ""; + }; + 858F16C52ACE60C6002B64C1 /* Start Screen */ = { + isa = PBXGroup; + children = ( + 858F16C62ACE60C6002B64C1 /* StartScreenController.swift */, + 858F16C72ACE60C6002B64C1 /* StartScreen.swift */, + ); + path = "Start Screen"; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -312,9 +340,13 @@ 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, 858F16B32ACB978C002B64C1 /* TimeScreen.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, + 858F16C92ACE60C6002B64C1 /* StartScreen.swift in Sources */, + 858F16C82ACE60C6002B64C1 /* StartScreenController.swift in Sources */, 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */, 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */, + 858F16C32ACE60A6002B64C1 /* WalletViewController.swift in Sources */, 858F16B52ACB97A1002B64C1 /* TimeViewController.swift in Sources */, + 858F16C42ACE60A6002B64C1 /* WalletView.swift in Sources */, 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, ); diff --git a/PowerUp/Base.lproj/Main.storyboard b/PowerUp/Base.lproj/Main.storyboard index 49af055..8b33d0f 100644 --- a/PowerUp/Base.lproj/Main.storyboard +++ b/PowerUp/Base.lproj/Main.storyboard @@ -8,21 +8,20 @@ - + - + - + - - + From c2942d0e23074a52705685aaf8bb16d0598abf0c Mon Sep 17 00:00:00 2001 From: Dingbang Chen Date: Mon, 2 Oct 2023 21:29:36 -0400 Subject: [PATCH 24/71] comment --- PowerUp/ProfileScreen/ProfileScreenView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/PowerUp/ProfileScreen/ProfileScreenView.swift b/PowerUp/ProfileScreen/ProfileScreenView.swift index 6f4add1..55451cd 100644 --- a/PowerUp/ProfileScreen/ProfileScreenView.swift +++ b/PowerUp/ProfileScreen/ProfileScreenView.swift @@ -156,6 +156,7 @@ class ProfileScreenView: UIView { forgetButton.setTitleColor(.white, for: .normal) self.addSubview(forgetButton) + // Register Button registerButton = UIButton() registerButton.setTitle("Register", for: .normal) registerButton.translatesAutoresizingMaskIntoConstraints = false From fb68a0fabdb4c622b082bf0f69195d1ec05fbefa Mon Sep 17 00:00:00 2001 From: Dingbang Chen Date: Wed, 11 Oct 2023 21:52:49 -0400 Subject: [PATCH 25/71] style changes --- PowerUp/Base.lproj/Main.storyboard | 5 +- .../ProfileScreenController.swift | 5 ++ PowerUp/ProfileScreen/ProfileScreenView.swift | 48 ++++++++++-------- PowerUp/Start Screen/StartScreen.swift | 10 ++-- PowerUp/Store Screen/StoreScreen.swift | 6 +-- PowerUp/Time Screen/TimeScreen.swift | 50 ++++++++++--------- 6 files changed, 68 insertions(+), 56 deletions(-) diff --git a/PowerUp/Base.lproj/Main.storyboard b/PowerUp/Base.lproj/Main.storyboard index 8b33d0f..d814b76 100644 --- a/PowerUp/Base.lproj/Main.storyboard +++ b/PowerUp/Base.lproj/Main.storyboard @@ -1,8 +1,9 @@ - + - + + diff --git a/PowerUp/ProfileScreen/ProfileScreenController.swift b/PowerUp/ProfileScreen/ProfileScreenController.swift index e1061f7..ae8cb92 100644 --- a/PowerUp/ProfileScreen/ProfileScreenController.swift +++ b/PowerUp/ProfileScreen/ProfileScreenController.swift @@ -8,7 +8,12 @@ import UIKit class ProfileScreenController: UIViewController { + let profileScreen = ProfileScreenView() + override func loadView() { + view = profileScreen + } + override func viewDidLoad() { super.viewDidLoad() diff --git a/PowerUp/ProfileScreen/ProfileScreenView.swift b/PowerUp/ProfileScreen/ProfileScreenView.swift index 55451cd..adc3f97 100644 --- a/PowerUp/ProfileScreen/ProfileScreenView.swift +++ b/PowerUp/ProfileScreen/ProfileScreenView.swift @@ -19,6 +19,7 @@ class ProfileScreenView: UIView { var forgetButton: UIButton! var registerButton: UIButton! let customStartBgk = UIColor(red: 0.035 , green: 0.51 , blue: 0.89, alpha: 1.0) + let customButtonColor = UIColor(red: 0.45 , green: 0.72 , blue: 1, alpha: 1.0) let midBgkColor = UIColor(red: 0.9882, green: 0.9882, blue: 0.9882, alpha: 1.0) /* // Only override draw() if you perform custom drawing. @@ -35,9 +36,10 @@ class ProfileScreenView: UIView { //MARK: initializing the UI elements and constraints... - setupVariables() + setupStartComponent() setupMidComponent() + setupVariables() initConstraints() } @@ -57,12 +59,13 @@ class ProfileScreenView: UIView { func setupMidComponent(){ midView = UIView() - midView.backgroundColor = midBgkColor + midView.backgroundColor = UIColor.white + midView.layer.cornerRadius = 10 midView.layer.shadowColor = UIColor.black.cgColor midView.layer.shadowOpacity = 0.5 - midView.layer.shadowOffset = CGSize(width: 0, height: 2) + midView.layer.shadowOffset = CGSize(width: 2, height: 2) + midView.layer.shadowRadius = 4 midView.translatesAutoresizingMaskIntoConstraints = false - midView.layer.cornerRadius = 10 midView.layer.zPosition = -50 self.addSubview(midView) } @@ -76,15 +79,15 @@ class ProfileScreenView: UIView { midView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 30), midView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -30), - midView.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor, constant: 110), + midView.topAnchor.constraint(equalTo: startView.bottomAnchor, constant: -40), midView.heightAnchor.constraint(equalToConstant: 350), - loginLabel.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor, constant: 10), + loginLabel.topAnchor.constraint(equalTo: self.topAnchor, constant: 70), loginLabel.leadingAnchor.constraint(equalTo: - self.safeAreaLayoutGuide.leadingAnchor, constant:5), + self.safeAreaLayoutGuide.leadingAnchor, constant:16), loginLabel.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor,constant: -16), - userNameLabel.topAnchor.constraint(equalTo: loginLabel.bottomAnchor, constant: 100), + userNameLabel.topAnchor.constraint(equalTo: midView.topAnchor, constant: 16), userNameLabel.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), userNameTextField.topAnchor.constraint(equalTo: userNameLabel.bottomAnchor, constant: 20), userNameTextField.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), @@ -113,49 +116,50 @@ class ProfileScreenView: UIView { userNameLabel.font = UIFont.systemFont(ofSize: 18) userNameLabel.textColor = .black userNameLabel.translatesAutoresizingMaskIntoConstraints = false - self.addSubview(userNameLabel) + midView.addSubview(userNameLabel) //Password Label passWordLabel = UILabel() passWordLabel.text = "Password" passWordLabel.font = UIFont.systemFont(ofSize: 18) passWordLabel.textColor = .black passWordLabel.translatesAutoresizingMaskIntoConstraints = false - self.addSubview(passWordLabel) + midView.addSubview(passWordLabel) //Login Label loginLabel = UILabel() loginLabel.text = "Log in" - loginLabel.font = UIFont.systemFont(ofSize: 24) + loginLabel.font = UIFont.boldSystemFont(ofSize: 26) loginLabel.textColor = .white loginLabel.translatesAutoresizingMaskIntoConstraints = false - self.addSubview(loginLabel) + startView.addSubview(loginLabel) //UserName TextField userNameTextField = UITextField() userNameTextField.placeholder = "Enter Username" userNameTextField.borderStyle = .roundedRect userNameTextField.translatesAutoresizingMaskIntoConstraints = false - self.addSubview(userNameTextField) + midView.addSubview(userNameTextField) passWordTextField = UITextField() passWordTextField.placeholder = "Enter Password" passWordTextField.borderStyle = .roundedRect passWordTextField.translatesAutoresizingMaskIntoConstraints = false - self.addSubview(passWordTextField) + midView.addSubview(passWordTextField) loginButton = UIButton() loginButton.setTitle("Login", for: .normal) - loginButton.backgroundColor = .blue - loginButton.clipsToBounds = true - loginButton.layer.cornerRadius = 5 + loginButton.backgroundColor = customButtonColor + loginButton.setTitleColor(UIColor.white, for: .normal) + loginButton.layer.cornerRadius = 20 loginButton.translatesAutoresizingMaskIntoConstraints = false - loginButton.setTitleColor(.white, for: .normal) - self.addSubview(loginButton) + + midView.addSubview(loginButton) forgetButton = UIButton() forgetButton.setTitle("Forget", for: .normal) - forgetButton.backgroundColor = .blue + forgetButton.backgroundColor = customButtonColor forgetButton.clipsToBounds = true - forgetButton.layer.cornerRadius = 5 + forgetButton.setTitleColor(UIColor.white, for: .normal) + forgetButton.layer.cornerRadius = 20 forgetButton.translatesAutoresizingMaskIntoConstraints = false forgetButton.setTitleColor(.white, for: .normal) - self.addSubview(forgetButton) + midView.addSubview(forgetButton) // Register Button registerButton = UIButton() registerButton.setTitle("Register", for: .normal) diff --git a/PowerUp/Start Screen/StartScreen.swift b/PowerUp/Start Screen/StartScreen.swift index e815f31..ea83dc5 100644 --- a/PowerUp/Start Screen/StartScreen.swift +++ b/PowerUp/Start Screen/StartScreen.swift @@ -58,21 +58,21 @@ class StartScreen: UIView { startLabel = UILabel() startLabel.text = "Start from here" - startLabel.font = UIFont.boldSystemFont(ofSize: 22) + startLabel.font = UIFont.boldSystemFont(ofSize: 26) startLabel.textColor = UIColor.white startLabel.translatesAutoresizingMaskIntoConstraints = false // credit label creditLabel = UILabel() creditLabel.text = "Credit Available:" - creditLabel.font = UIFont.boldSystemFont(ofSize: 18) + creditLabel.font = UIFont.boldSystemFont(ofSize: 22) creditLabel.textColor = UIColor.white creditLabel.translatesAutoresizingMaskIntoConstraints = false // credit figure label creditFigureLabel = UILabel() creditFigureLabel.text = "$100.00" - creditFigureLabel.font = UIFont.boldSystemFont(ofSize: 18) + creditFigureLabel.font = UIFont.boldSystemFont(ofSize: 22) creditFigureLabel.textColor = UIColor.white creditFigureLabel.translatesAutoresizingMaskIntoConstraints = false @@ -161,10 +161,10 @@ class StartScreen: UIView { NSLayoutConstraint.activate([ startView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor), // Leading constraint to the left edge startView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor), // Trailing constraint to the right edge - startView.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor, constant: 0), // Adjust top spacing as needed + startView.topAnchor.constraint(equalTo: self.topAnchor, constant: 0), // Adjust top spacing as needed startView.heightAnchor.constraint(equalToConstant: 200), - startLabel.topAnchor.constraint(equalTo: startView.topAnchor, constant: 32), + startLabel.topAnchor.constraint(equalTo: startView.topAnchor, constant: 70), startLabel.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 16), creditLabel.topAnchor.constraint(equalTo: startLabel.bottomAnchor, constant: 16), diff --git a/PowerUp/Store Screen/StoreScreen.swift b/PowerUp/Store Screen/StoreScreen.swift index 9394d6b..014177b 100644 --- a/PowerUp/Store Screen/StoreScreen.swift +++ b/PowerUp/Store Screen/StoreScreen.swift @@ -131,10 +131,10 @@ class StoreScreen: UIView { NSLayoutConstraint.activate([ viewStar.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor), viewStar.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor), - viewStar.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor, constant: -100), - viewStar.heightAnchor.constraint(equalToConstant: 260), + viewStar.topAnchor.constraint(equalTo: self.topAnchor, constant: 0), + viewStar.heightAnchor.constraint(equalToConstant: 200), - labelStart.topAnchor.constraint(equalTo: viewStar.topAnchor, constant: 100), + labelStart.topAnchor.constraint(equalTo: viewStar.topAnchor, constant: 70), labelStart.leadingAnchor.constraint(equalTo: viewStar.leadingAnchor, constant: 16), buttonLocation.topAnchor.constraint(equalTo: labelStart.topAnchor, constant: 60), diff --git a/PowerUp/Time Screen/TimeScreen.swift b/PowerUp/Time Screen/TimeScreen.swift index 7bb489a..13ec36f 100644 --- a/PowerUp/Time Screen/TimeScreen.swift +++ b/PowerUp/Time Screen/TimeScreen.swift @@ -19,7 +19,8 @@ class TimeScreen: UIView { var additionalInfoContainer: UIView! var timeLeftLabel: UILabel! - + let customButtonColor = UIColor(red: 0.45, green: 0.72, blue: 1, alpha: 1.0) + let customStartBgk = UIColor(red: 0.035, green: 0.51, blue: 0.89, alpha: 1.0) override init(frame: CGRect) { @@ -42,9 +43,10 @@ class TimeScreen: UIView { func setButton(){ addButton = UIButton() addButton.setTitle("+ Add Time", for: .normal) - addButton.backgroundColor = .blue - addButton.layer.cornerRadius = 5 + addButton.backgroundColor = customButtonColor + addButton.layer.cornerRadius = 20 addButton.translatesAutoresizingMaskIntoConstraints = false + addButton.setTitleColor(UIColor.white, for: .normal) additionalInfoContainer.addSubview(addButton) } @@ -60,20 +62,22 @@ class TimeScreen: UIView { } func setUpAdditionalInfoContainer() { additionalInfoContainer = UIView() - additionalInfoContainer.backgroundColor = .white - additionalInfoContainer.layer.borderColor = UIColor.black.cgColor - additionalInfoContainer.layer.borderWidth = 1.0 + additionalInfoContainer.backgroundColor = UIColor.white additionalInfoContainer.layer.cornerRadius = 10 + additionalInfoContainer.layer.shadowColor = UIColor.black.cgColor + additionalInfoContainer.layer.shadowOpacity = 0.5 + additionalInfoContainer.layer.shadowOffset = CGSize(width: 2, height: 2) + additionalInfoContainer.layer.shadowRadius = 4 additionalInfoContainer.translatesAutoresizingMaskIntoConstraints = false + containerTop.addSubview(additionalInfoContainer) } func setUpInfoContainer(){ infoContainer = UIView() - let lightBlue = UIColor(red: 173/255, green: 216/255, blue: 230/255, alpha: 1.0) - infoContainer.backgroundColor = lightBlue // Change color if needed + infoContainer.backgroundColor = customButtonColor // Change color if needed infoContainer.layer.cornerRadius = 10 // Adjust the corner radius as needed infoContainer.translatesAutoresizingMaskIntoConstraints = false - self.addSubview(infoContainer) + containerTop.addSubview(infoContainer) } func setUpLabels(){ @@ -102,7 +106,7 @@ class TimeScreen: UIView { func setUpTopContainer(){ containerTop = UIView() - containerTop.backgroundColor = .blue + containerTop.backgroundColor = customStartBgk containerTop.translatesAutoresizingMaskIntoConstraints = false self.addSubview(containerTop) } @@ -110,7 +114,7 @@ class TimeScreen: UIView { func setMyTime(){ myTimeLabel = UILabel() myTimeLabel.text = "My Time" - myTimeLabel.font = UIFont.systemFont(ofSize: 24, weight: .bold) // Customize font and size if needed + myTimeLabel.font = UIFont.systemFont(ofSize: 26, weight: .bold) // Customize font and size if needed myTimeLabel.textColor = .white myTimeLabel.translatesAutoresizingMaskIntoConstraints = false self.addSubview(myTimeLabel) @@ -134,28 +138,26 @@ class TimeScreen: UIView { containerTop.leadingAnchor.constraint(equalTo: self.leadingAnchor), containerTop.trailingAnchor.constraint(equalTo: self.trailingAnchor), containerTop.topAnchor.constraint(equalTo: self.topAnchor), - containerTop.heightAnchor.constraint(equalTo: self.heightAnchor, multiplier: 0.3), + containerTop.heightAnchor.constraint(equalToConstant: 200), myTimeLabel.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 16), // Adjust the constant as needed - myTimeLabel.topAnchor.constraint(equalTo: self.topAnchor, constant:64), // Adjust the constant as needed + myTimeLabel.topAnchor.constraint(equalTo: self.topAnchor, constant:70), // Adjust the constant as needed //all together - infoContainer.widthAnchor.constraint(equalToConstant: 375), // Set the desired width - infoContainer.heightAnchor.constraint(equalToConstant: 75), // Set the desired height - infoContainer.centerXAnchor.constraint(equalTo: containerTop.centerXAnchor), // Center horizontally - infoContainer.centerYAnchor.constraint(equalTo: containerTop.centerYAnchor, constant: 30), // Center verticall - + infoContainer.heightAnchor.constraint(equalToConstant: 65), // Set the desired height + infoContainer.topAnchor.constraint(equalTo: myTimeLabel.bottomAnchor, constant: 16), + infoContainer.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 20), + infoContainer.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor,constant: -20), bestCafeLabel.leadingAnchor.constraint(equalTo: infoContainer.leadingAnchor, constant: 8), bestCafeLabel.topAnchor.constraint(equalTo: infoContainer.topAnchor, constant: 8), mainStreetLabel.leadingAnchor.constraint(equalTo: infoContainer.leadingAnchor, constant: 8), mainStreetLabel.topAnchor.constraint(equalTo: bestCafeLabel.bottomAnchor, constant: 4), //all together - - additionalInfoContainer.widthAnchor.constraint(equalToConstant: 375), // Set the desired width + additionalInfoContainer.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 30), + additionalInfoContainer.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -30), additionalInfoContainer.heightAnchor.constraint(equalToConstant: 175), // Set the desired height - additionalInfoContainer.centerXAnchor.constraint(equalTo: containerTop.centerXAnchor), - additionalInfoContainer.centerYAnchor.constraint(equalTo: containerTop.bottomAnchor, constant: 40), + additionalInfoContainer.topAnchor.constraint(equalTo: containerTop.bottomAnchor, constant: -10), pcLabel.leadingAnchor.constraint(equalTo: additionalInfoContainer.leadingAnchor, constant: 8), pcLabel.topAnchor.constraint(equalTo: additionalInfoContainer.topAnchor, constant: 8), @@ -166,8 +168,8 @@ class TimeScreen: UIView { addButton.centerXAnchor.constraint(equalTo: additionalInfoContainer.centerXAnchor), // addButton.centerYAnchor.constraint(equalTo: additionalInfoContainer.centerYAnchor), addButton.bottomAnchor.constraint(equalTo: additionalInfoContainer.bottomAnchor, constant: -20), // Adjust the constant to position the button higher or lower - addButton.widthAnchor.constraint(equalToConstant: 100), - addButton.heightAnchor.constraint(equalToConstant: 30) + addButton.widthAnchor.constraint(equalToConstant: 160), + addButton.heightAnchor.constraint(equalToConstant: 40), ]) From 441e8e8dceb4b0eed59f147258bc197cef4f2204 Mon Sep 17 00:00:00 2001 From: jcport1 Date: Sun, 15 Oct 2023 17:06:32 -0400 Subject: [PATCH 26/71] Adds tab bar --- .../ProfileScreenController.swift | 19 +++--- PowerUp/ViewController.swift | 64 ++++++++++++++++++- 2 files changed, 71 insertions(+), 12 deletions(-) diff --git a/PowerUp/ProfileScreen/ProfileScreenController.swift b/PowerUp/ProfileScreen/ProfileScreenController.swift index e1061f7..6467d1c 100644 --- a/PowerUp/ProfileScreen/ProfileScreenController.swift +++ b/PowerUp/ProfileScreen/ProfileScreenController.swift @@ -9,21 +9,18 @@ import UIKit class ProfileScreenController: UIViewController { + //MARK: initializing the First Screen View... + let profileScreen = ProfileScreenView() + + //MARK: add the view to this controller while the view is loading... + override func loadView() { + view = profileScreen + } + override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } - - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. - } - */ - } diff --git a/PowerUp/ViewController.swift b/PowerUp/ViewController.swift index fabbdfe..a5f3498 100644 --- a/PowerUp/ViewController.swift +++ b/PowerUp/ViewController.swift @@ -7,7 +7,69 @@ import UIKit -class ViewController: UIViewController { +class ViewController: UITabBarController, UITabBarControllerDelegate { + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + //MARK: Setting up Store Screen + let tabStore = UINavigationController(rootViewController: StoreViewController()) + let tabStoreBarItem = UITabBarItem( + title: "Store", + image: UIImage(systemName: "cup.and.saucer")?.withRenderingMode(.alwaysOriginal), + selectedImage: UIImage(systemName: "cup.and.saucer.fill") + ) + tabStore.tabBarItem = tabStoreBarItem + tabStore.title = "Store" + + //MARK: Setting up Start Screen + let tabStart = UINavigationController(rootViewController: StartScreenController()) + let tabStartBarItem = UITabBarItem( + title: "Start", + image: UIImage(systemName: "hourglass.start")?.withRenderingMode(.alwaysTemplate), + selectedImage: UIImage(systemName: "hourglass") + ) + tabStartBarItem.badgeColor = UIColor.lightGray + tabStart.tabBarItem = tabStartBarItem + tabStart.title = "Start" + + //MARK: Setting up Wallet Screen + let tabWallet = UINavigationController(rootViewController: WalletViewController()) + let tabWalletBarItem = UITabBarItem( + title: "Wallet", + image: UIImage(systemName: "creditcard")?.withRenderingMode(.alwaysOriginal), + selectedImage: UIImage(systemName: "creditcard.fill") + ) + tabWallet.tabBarItem = tabWalletBarItem + tabWallet.title = "Wallet" + + //MARK: Setting up Time Screen + let tabTime = UINavigationController(rootViewController: TimeViewController()) + let tabTimeBarItem = UITabBarItem( + title: "Time", + image: UIImage(systemName: "clock")?.withRenderingMode(.alwaysTemplate), + selectedImage: UIImage(systemName: "clock.fill") + ) + + tabTimeBarItem.badgeColor = UIColor.lightGray + tabTime.tabBarItem = tabTimeBarItem + tabTime.title = "Time" + + //MARK: Setting up Profile Screen + let tabProfile = UINavigationController(rootViewController: ProfileScreenController()) + let tabProfileBarItem = UITabBarItem( + title: "Profile", + image: UIImage(systemName: "person")?.withRenderingMode(.alwaysOriginal), + selectedImage: UIImage(systemName: "person.fill") + ) + tabProfile.tabBarItem = tabProfileBarItem + tabProfile.title = "Profile" + + + + //MARK: setting up this view controller as the Tab Bar Controller... + self.viewControllers = [tabStore, tabStart, tabWallet, tabTime, tabProfile] + } override func viewDidLoad() { super.viewDidLoad() From ca95f48c9b8d9be5bef1b76af1b0d5c39bb98e63 Mon Sep 17 00:00:00 2001 From: CliffLi <109610850+txli299@users.noreply.github.com> Date: Fri, 20 Oct 2023 15:31:44 -0500 Subject: [PATCH 27/71] Login, sign up functionality added (#21) --- PowerUp.xcodeproj/project.pbxproj | 39 +++++ .../xcschemes/xcschememanagement.plist | 21 +++ PowerUp/AppDelegate.swift | 3 +- PowerUp/GoogleService-Info.plist | 30 ++++ .../ProfileScreenController.swift | 68 +++++++- PowerUp/ProfileScreen/RegisterView.swift | 147 ++++++++++++++++++ .../RegisterViewController.swift | 87 +++++++++++ 7 files changed, 391 insertions(+), 4 deletions(-) create mode 100644 PowerUp/GoogleService-Info.plist create mode 100644 PowerUp/ProfileScreen/RegisterView.swift create mode 100644 PowerUp/ProfileScreen/RegisterViewController.swift diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index d40a670..e079968 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -10,6 +10,10 @@ 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */; }; 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */; }; 11433FBE2ABCBCDD005AA716 /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 11433FBD2ABCBCDD005AA716 /* .gitignore */; }; + 8583334D2AE0AA9E005540D6 /* FirebaseAuth in Frameworks */ = {isa = PBXBuildFile; productRef = 8583334C2AE0AA9E005540D6 /* FirebaseAuth */; }; + 8583334F2AE0AB4A005540D6 /* RegisterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8583334E2AE0AB4A005540D6 /* RegisterViewController.swift */; }; + 858333512AE0AB5F005540D6 /* RegisterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858333502AE0AB5F005540D6 /* RegisterView.swift */; }; + 858333532AE0AE07005540D6 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 858333522AE0AE07005540D6 /* GoogleService-Info.plist */; }; 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15422ABB77F0002B64C1 /* AppDelegate.swift */; }; 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */; }; 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F15462ABB77F0002B64C1 /* ViewController.swift */; }; @@ -51,6 +55,9 @@ 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileScreenController.swift; sourceTree = ""; }; 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileScreenView.swift; sourceTree = ""; }; 11433FBD2ABCBCDD005AA716 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; + 8583334E2AE0AB4A005540D6 /* RegisterViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterViewController.swift; sourceTree = ""; }; + 858333502AE0AB5F005540D6 /* RegisterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterView.swift; sourceTree = ""; }; + 858333522AE0AE07005540D6 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 858F153F2ABB77F0002B64C1 /* PowerUp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PowerUp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 858F15422ABB77F0002B64C1 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 858F15442ABB77F0002B64C1 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; @@ -80,6 +87,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 8583334D2AE0AA9E005540D6 /* FirebaseAuth in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -105,6 +113,8 @@ children = ( 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */, 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */, + 8583334E2AE0AB4A005540D6 /* RegisterViewController.swift */, + 858333502AE0AB5F005540D6 /* RegisterView.swift */, ); path = ProfileScreen; sourceTree = ""; @@ -134,6 +144,7 @@ 858F15412ABB77F0002B64C1 /* PowerUp */ = { isa = PBXGroup; children = ( + 858333522AE0AE07005540D6 /* GoogleService-Info.plist */, 858F16C52ACE60C6002B64C1 /* Start Screen */, 858F16C02ACE60A6002B64C1 /* WalletView */, 1129A8882ACB5DF00054E020 /* ProfileScreen */, @@ -219,6 +230,9 @@ dependencies = ( ); name = PowerUp; + packageProductDependencies = ( + 8583334C2AE0AA9E005540D6 /* FirebaseAuth */, + ); productName = PowerUp; productReference = 858F153F2ABB77F0002B64C1 /* PowerUp.app */; productType = "com.apple.product-type.application"; @@ -291,6 +305,9 @@ Base, ); mainGroup = 858F15362ABB77F0002B64C1; + packageReferences = ( + 8583334B2AE0AA9D005540D6 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */, + ); productRefGroup = 858F15402ABB77F0002B64C1 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -312,6 +329,7 @@ 858F154C2ABB77F1002B64C1 /* Assets.xcassets in Resources */, 858F15752ABB99B4002B64C1 /* README.md in Resources */, 858F154A2ABB77F0002B64C1 /* Main.storyboard in Resources */, + 858333532AE0AE07005540D6 /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -344,9 +362,11 @@ 858F16C82ACE60C6002B64C1 /* StartScreenController.swift in Sources */, 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */, 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */, + 858333512AE0AB5F005540D6 /* RegisterView.swift in Sources */, 858F16C32ACE60A6002B64C1 /* WalletViewController.swift in Sources */, 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */, 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */, + 8583334F2AE0AB4A005540D6 /* RegisterViewController.swift in Sources */, 858F16B52ACB97A1002B64C1 /* TimeViewController.swift in Sources */, 858F16C42ACE60A6002B64C1 /* WalletView.swift in Sources */, 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */, @@ -692,6 +712,25 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + 8583334B2AE0AA9D005540D6 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/firebase/firebase-ios-sdk"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 10.0.0; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 8583334C2AE0AA9E005540D6 /* FirebaseAuth */ = { + isa = XCSwiftPackageProductDependency; + package = 8583334B2AE0AA9D005540D6 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; + productName = FirebaseAuth; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 858F15372ABB77F0002B64C1 /* Project object */; } diff --git a/PowerUp.xcodeproj/xcuserdata/cliffli.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcodeproj/xcuserdata/cliffli.xcuserdatad/xcschemes/xcschememanagement.plist index 2c9e80a..6029916 100644 --- a/PowerUp.xcodeproj/xcuserdata/cliffli.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/PowerUp.xcodeproj/xcuserdata/cliffli.xcuserdatad/xcschemes/xcschememanagement.plist @@ -6,6 +6,27 @@ PowerUp.xcscheme_^#shared#^_ + orderHint + 1 + + Promises (Playground) 1.xcscheme + + isShown + + orderHint + 2 + + Promises (Playground) 2.xcscheme + + isShown + + orderHint + 3 + + Promises (Playground).xcscheme + + isShown + orderHint 0 diff --git a/PowerUp/AppDelegate.swift b/PowerUp/AppDelegate.swift index 18bce73..c23786b 100644 --- a/PowerUp/AppDelegate.swift +++ b/PowerUp/AppDelegate.swift @@ -6,7 +6,7 @@ // import UIKit - +import FirebaseCore @main class AppDelegate: UIResponder, UIApplicationDelegate { @@ -14,6 +14,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. + FirebaseApp.configure() return true } diff --git a/PowerUp/GoogleService-Info.plist b/PowerUp/GoogleService-Info.plist new file mode 100644 index 0000000..b459be7 --- /dev/null +++ b/PowerUp/GoogleService-Info.plist @@ -0,0 +1,30 @@ + + + + + API_KEY + AIzaSyCSuU4LXRN4zjKjxag-C6yqfh7NKr7xdoM + GCM_SENDER_ID + 841008832045 + PLIST_VERSION + 1 + BUNDLE_ID + io.gomobile.PowerUp + PROJECT_ID + powerup-c7721 + STORAGE_BUCKET + powerup-c7721.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:841008832045:ios:0457f796716d6b2820a2a4 + + \ No newline at end of file diff --git a/PowerUp/ProfileScreen/ProfileScreenController.swift b/PowerUp/ProfileScreen/ProfileScreenController.swift index 882ba59..7fed53d 100644 --- a/PowerUp/ProfileScreen/ProfileScreenController.swift +++ b/PowerUp/ProfileScreen/ProfileScreenController.swift @@ -6,7 +6,7 @@ // import UIKit - +import FirebaseAuth class ProfileScreenController: UIViewController { let profileScreen = ProfileScreenView() @@ -14,10 +14,72 @@ class ProfileScreenController: UIViewController { view = profileScreen } + func alert(message:String){ + let alertController = UIAlertController( + title: "Warning", + message: message, + preferredStyle: .alert + ) + let okAction = UIAlertAction( + title: "OK", + style: .default, + handler: nil + ) + + alertController.addAction(okAction) + + present(alertController, animated: true, completion: nil) + } + + func successMsg(){ + let alertController = UIAlertController( + title: "Success", + message: "Sign in successfully", + preferredStyle: .alert + ) + let okAction = UIAlertAction( + title: "OK", + style: .default, + handler: nil + ) + + alertController.addAction(okAction) + + present(alertController, animated: true, completion: nil) + } + override func viewDidLoad() { super.viewDidLoad() - - // Do any additional setup after loading the view. + profileScreen.loginButton.addTarget(self, action: #selector(onButtonSigninTapped), for: .touchUpInside) + profileScreen.registerButton.addTarget(self, action: #selector(onButtonRegisterTapped), for: .touchUpInside) } + @objc func onButtonRegisterTapped(){ + let registerVC = RegisterViewController() + navigationController?.pushViewController(registerVC, animated: true) + } + + @objc func onButtonSigninTapped(){ + guard let email = profileScreen.userNameTextField.text, !email.isEmpty, + let password = profileScreen.passWordTextField.text, !password.isEmpty else{ + alert(message: "Please fill all fields") + return + } + + //Get auth instance + //attemp sign in + // fails then alert + // + FirebaseAuth.Auth.auth().signIn(withEmail: email, password: password, completion: { [weak self] result, error in + guard let strongSelf = self else{ + return + } + guard error == nil else{ + strongSelf.alert(message: "Something wrong when signing in, please try again") + return + } + strongSelf.successMsg() + + }) + } } diff --git a/PowerUp/ProfileScreen/RegisterView.swift b/PowerUp/ProfileScreen/RegisterView.swift new file mode 100644 index 0000000..888ff38 --- /dev/null +++ b/PowerUp/ProfileScreen/RegisterView.swift @@ -0,0 +1,147 @@ +// +// RegisterView.swift +// PowerUp +// +// Created by Cliff Li on 10/18/23. +// + +import UIKit + +class RegisterView: UIView { + var startView: UIView! + var midView:UIView! + var userNameLabel: UILabel! + var passWordLabel: UILabel! + var userNameTextField: UITextField! + var passWordTextField: UITextField! + var signupLabel: UILabel! + var signupButton: UIButton! + let customStartBgk = UIColor(red: 0.035 , green: 0.51 , blue: 0.89, alpha: 1.0) + let customButtonColor = UIColor(red: 0.45 , green: 0.72 , blue: 1, alpha: 1.0) + let midBgkColor = UIColor(red: 0.9882, green: 0.9882, blue: 0.9882, alpha: 1.0) + /* + // Only override draw() if you perform custom drawing. + // An empty implementation adversely affects performance during animation. + override func draw(_ rect: CGRect) { + // Drawing code + } + */ + + override init(frame: CGRect) { + super.init(frame: frame) + + self.backgroundColor = .white + + + //MARK: initializing the UI elements and constraints... + + setupStartComponent() + setupMidComponent() + setupVariables() + initConstraints() + + } + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func setupStartComponent(){ + + // create box + startView = UIView() + startView.backgroundColor = customStartBgk + startView.translatesAutoresizingMaskIntoConstraints = false + startView.layer.zPosition = -100 + self.addSubview(startView) + } + + func setupMidComponent(){ + midView = UIView() + midView.backgroundColor = UIColor.white + midView.layer.cornerRadius = 10 + midView.layer.shadowColor = UIColor.black.cgColor + midView.layer.shadowOpacity = 0.5 + midView.layer.shadowOffset = CGSize(width: 2, height: 2) + midView.layer.shadowRadius = 4 + midView.translatesAutoresizingMaskIntoConstraints = false + midView.layer.zPosition = -50 + self.addSubview(midView) + } + + func initConstraints(){ + NSLayoutConstraint.activate([ + startView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor), // Leading constraint to the left edge + startView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor), // Trailing constraint to the right edge + startView.topAnchor.constraint(equalTo: self.topAnchor, constant: 0), // Adjust top spacing as needed + startView.heightAnchor.constraint(equalToConstant: 200), + + midView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 30), + midView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -30), + midView.topAnchor.constraint(equalTo: startView.bottomAnchor, constant: -40), + midView.heightAnchor.constraint(equalToConstant: 350), + signupLabel.topAnchor.constraint(equalTo: self.topAnchor, constant: 70), + signupLabel.leadingAnchor.constraint(equalTo: + self.safeAreaLayoutGuide.leadingAnchor, constant:16), + signupLabel.trailingAnchor.constraint(equalTo: + self.safeAreaLayoutGuide.trailingAnchor,constant: -16), + + userNameLabel.topAnchor.constraint(equalTo: midView.topAnchor, constant: 16), + userNameLabel.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), + userNameTextField.topAnchor.constraint(equalTo: userNameLabel.bottomAnchor, constant: 20), + userNameTextField.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), + + passWordLabel.topAnchor.constraint(equalTo: userNameTextField.bottomAnchor, constant: 20), + passWordLabel.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), + passWordTextField.topAnchor.constraint(equalTo: passWordLabel.bottomAnchor, constant: 20), + passWordTextField.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), + signupButton.topAnchor.constraint(equalTo: passWordTextField.bottomAnchor, constant: 50), + signupButton.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), + signupButton.widthAnchor.constraint(equalToConstant: 120), + signupButton.heightAnchor.constraint(equalToConstant: 50), + ]) + } + + func setupVariables(){ + //UserName Label + userNameLabel = UILabel() + userNameLabel.text = "User Name" + userNameLabel.font = UIFont.systemFont(ofSize: 18) + userNameLabel.textColor = .black + userNameLabel.translatesAutoresizingMaskIntoConstraints = false + midView.addSubview(userNameLabel) + //Password Label + passWordLabel = UILabel() + passWordLabel.text = "Password" + passWordLabel.font = UIFont.systemFont(ofSize: 18) + passWordLabel.textColor = .black + passWordLabel.translatesAutoresizingMaskIntoConstraints = false + midView.addSubview(passWordLabel) + //Login Label + signupLabel = UILabel() + signupLabel.text = "Sign Up" + signupLabel.font = UIFont.boldSystemFont(ofSize: 26) + signupLabel.textColor = .white + signupLabel.translatesAutoresizingMaskIntoConstraints = false + startView.addSubview(signupLabel) + //UserName TextField + userNameTextField = UITextField() + userNameTextField.placeholder = "Enter Username" + userNameTextField.borderStyle = .roundedRect + userNameTextField.translatesAutoresizingMaskIntoConstraints = false + midView.addSubview(userNameTextField) + passWordTextField = UITextField() + passWordTextField.placeholder = "Enter Password" + passWordTextField.borderStyle = .roundedRect + passWordTextField.translatesAutoresizingMaskIntoConstraints = false + midView.addSubview(passWordTextField) + signupButton = UIButton() + signupButton.setTitle("Sign Up", for: .normal) + signupButton.backgroundColor = customButtonColor + signupButton.setTitleColor(UIColor.white, for: .normal) + signupButton.layer.cornerRadius = 20 + signupButton.translatesAutoresizingMaskIntoConstraints = false + + midView.addSubview(signupButton) + } + +} diff --git a/PowerUp/ProfileScreen/RegisterViewController.swift b/PowerUp/ProfileScreen/RegisterViewController.swift new file mode 100644 index 0000000..f3c90c1 --- /dev/null +++ b/PowerUp/ProfileScreen/RegisterViewController.swift @@ -0,0 +1,87 @@ +// +// RegisterViewController.swift +// PowerUp +// +// Created by Cliff Li on 10/18/23. +// + +import UIKit +import FirebaseAuth +class RegisterViewController: UIViewController { + let registerView = RegisterView() + + override func loadView() { + view = registerView + } + override func viewDidLoad() { + super.viewDidLoad() + registerView.signupButton.addTarget(self, action: #selector(onButtonSignupTapped), for: .touchUpInside) + navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target:self , action: #selector(onButtonBackTapped)) + + } + + @objc func onButtonBackTapped(){ + let ProfileVC = ProfileScreenController() + navigationController?.pushViewController(ProfileVC, animated: true) + } + + func alert(message:String){ + let alertController = UIAlertController( + title: "Warning", + message: message, + preferredStyle: .alert + ) + let okAction = UIAlertAction( + title: "OK", + style: .default, + handler: nil + ) + + alertController.addAction(okAction) + + present(alertController, animated: true, completion: nil) + } + + func successMsg(){ + let alertController = UIAlertController( + title: "Success", + message: "Congradulation, you have created your account", + preferredStyle: .alert + ) + let okAction = UIAlertAction( + title: "OK", + style: .default, + handler: nil + ) + + alertController.addAction(okAction) + + present(alertController, animated: true, completion: nil) + } + + + @objc func onButtonSignupTapped(){ + guard let email = registerView.userNameTextField.text, !email.isEmpty, + let password = registerView.passWordTextField.text, !password.isEmpty else{ + alert(message: "Please fill all fields") + return + } + + //Get auth instance + //attemp sign in + // fails then alert + // + FirebaseAuth.Auth.auth().createUser(withEmail: email, password: password, completion: { [weak self] result, error in + guard let strongSelf = self else{ + return + } + guard error == nil else{ + strongSelf.alert(message: "Something wrong when signing up, please try again") + return + } + strongSelf.successMsg() + let profileVC = ProfileScreenController() + strongSelf.navigationController?.pushViewController(profileVC, animated: true) + }) + } +} From 7f0cb9ebf7ca0a95102dcdf284ab90ca9e1e1be5 Mon Sep 17 00:00:00 2001 From: nicholasletarte Date: Fri, 20 Oct 2023 18:28:22 -0400 Subject: [PATCH 28/71] Location services enabled --- PowerUp/Base.lproj/Main.storyboard | 32 +++++++++++++---- PowerUp/ContentView.swift | 25 +++++++++++++ PowerUp/Info.plist | 4 +++ PowerUp/MapViewController.swift | 56 ++++++++++++++++++++++++++++++ PowerUp/ViewController.swift | 11 +++--- 5 files changed, 115 insertions(+), 13 deletions(-) create mode 100644 PowerUp/ContentView.swift create mode 100644 PowerUp/MapViewController.swift diff --git a/PowerUp/Base.lproj/Main.storyboard b/PowerUp/Base.lproj/Main.storyboard index d814b76..ffaacb9 100644 --- a/PowerUp/Base.lproj/Main.storyboard +++ b/PowerUp/Base.lproj/Main.storyboard @@ -1,28 +1,48 @@ - + - - + + - + - + + + + + + + + + + + + + + + + + + + + + - + diff --git a/PowerUp/ContentView.swift b/PowerUp/ContentView.swift new file mode 100644 index 0000000..98c3c29 --- /dev/null +++ b/PowerUp/ContentView.swift @@ -0,0 +1,25 @@ +// +// ContentView.swift +// PowerUp +// +// Created by Nicholas Letarte on 10/20/23. +//import SwiftUI +import SwiftUI +import MapKit + +struct ContentView: View { + + @State private var region = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: 43.6591, longitude: -70.2568 ), span: + MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1)) + + var body: some View { + Map(coordinateRegion: $region, showsUserLocation: true) + .ignoresSafeArea() + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View{ + ContentView() + } +} diff --git a/PowerUp/Info.plist b/PowerUp/Info.plist index dd3c9af..35f633c 100644 --- a/PowerUp/Info.plist +++ b/PowerUp/Info.plist @@ -2,6 +2,8 @@ + NSL + UIApplicationSceneManifest UIApplicationSupportsMultipleScenes @@ -21,5 +23,7 @@ + NSLocationWhenInUseUsageDescription + We need your location to provide you with the nearest internet cafe. diff --git a/PowerUp/MapViewController.swift b/PowerUp/MapViewController.swift new file mode 100644 index 0000000..889d2a9 --- /dev/null +++ b/PowerUp/MapViewController.swift @@ -0,0 +1,56 @@ +// +// MapViewController.swift +// PowerUp +// +// Created by Nicholas Letarte on 10/20/23. +// +// https://www.youtube.com/watch?v=f6xN2MuHv1s + +import UIKit +import MapKit + +class MapViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate { + + + + let manager = CLLocationManager() + + @IBOutlet var mapView: MKMapView! + override func viewDidLoad() { + super.viewDidLoad() + // Set initial location for Portland, ME + + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + manager.delegate = self + manager.desiredAccuracy = kCLLocationAccuracyBest + manager.requestWhenInUseAuthorization() + manager.startUpdatingLocation() + } + + func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { + if let location = locations.first{ + manager.stopUpdatingLocation() + + render(location) + } + } + func render(_ location: CLLocation) { + + let coordinate = CLLocationCoordinate2D(latitude: location.coordinate.latitude, + longitude: location.coordinate.longitude) + let span = MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1) + + let region = MKCoordinateRegion(center: coordinate, + span: span) + + mapView.setRegion(region, + animated: true) + let pin = MKPointAnnotation() + pin.coordinate = coordinate + mapView.addAnnotation(pin) + } +} + diff --git a/PowerUp/ViewController.swift b/PowerUp/ViewController.swift index a5f3498..c000ac4 100644 --- a/PowerUp/ViewController.swift +++ b/PowerUp/ViewController.swift @@ -6,9 +6,13 @@ // import UIKit +import MapKit +import CoreLocation class ViewController: UITabBarController, UITabBarControllerDelegate { + + override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) @@ -70,13 +74,6 @@ class ViewController: UITabBarController, UITabBarControllerDelegate { //MARK: setting up this view controller as the Tab Bar Controller... self.viewControllers = [tabStore, tabStart, tabWallet, tabTime, tabProfile] } - - override func viewDidLoad() { - super.viewDidLoad() - // Dingbang First Commit check, second check - } - } - From 478cba26601f03b85830b7a569a70360a7e65338 Mon Sep 17 00:00:00 2001 From: nicholasletarte Date: Tue, 7 Nov 2023 11:36:45 -0500 Subject: [PATCH 29/71] New images folder --- Images/PowerUp.pdf.jpg | Bin 0 -> 162263 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Images/PowerUp.pdf.jpg diff --git a/Images/PowerUp.pdf.jpg b/Images/PowerUp.pdf.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5b7d6b8b3d494c03320d3bc44c59bdaf2c049b88 GIT binary patch literal 162263 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 BWG-COFElR*VwW6d;cai;otk!vjf-!B zwK$w}U$!)jFdOy_)-b&6o%h*h0dLQmf*Q6Uhe|HDs@P!udj|uK-(3`Smg9iQ(Jn zZrUQA7rFQ&LRp-`DV+Qh0Aypt06HC%ZHJ+&Hy$}_`oS(cZ{Dj z1(n?oPp+LI$ev z1diVYSa_e?q4#(re7lS*=M|ulFO><=<%@9HnVE} z*#l)N3WG8N3oT@cY{Uu(3~(>R%;_M?U|+p|L#*MRe&W=p%W_j;ie{hmzPj(qUVAHbv3S@k6$%X5|W z0Ei^B0YoD0`n|KTG6u`YAqJr7kR2cg*w|Ib?tJ(ovsdDSFPhsRJ}z!5AGY3ZW1ij( z$|(%HTUj6&sk`EDY?PP+{VU#(UfTn1jdb!8O8<7`eSm{(n8t*|zJy|y2>fFk?ccHY z=7{8)wWfbKwbzT(Mod0HII~Jd-Xo5aYeBsN>I+g7(!JQS0V|CMSkL!L(>48TBnko8 zw|Nu2-k<;Ogz=BNIm~O60B}?$1O@Pm{V|oVrADv0!VAw zZ)e_|`TRrrSz;yy!)j{;psjzhM!u5oi%@Y_Zj!+7D*eMTf-Ci`yi5Kt>?~sVp8uDh zG*10Ln3-p)5rW(+HL|yxiO#Rhn!qt z(yV!pP~zKi8|9mJu;OcB@f-P7hLQelcE%`d1HL1nqgTIwHh`R;F}P&D`WmUT_Z5B1 zUarXaCf)FWv86Nc6DqcsVxvO2VHaklMs{6%r_v;I;<5O!?)B(uhEw#9JOww0FS(b# zUOl?#&VD`7F#6?r)Fb{A$|Ji%yw6|$R}4$a6~1PAd1BFBL5lTVEg``6lK+Vtnab6y z4SByGekr|8PKq_*Jj!B=i-Ht`&Xw1r7#8^Vl7f1nZzTm__x!`yW=+Ap|8-5lKNaAX z{5iJszj*&w_U8|Yl+AV^;B_PWQxpy2SKk>{GG7hlHT_BL%j6UP!k?ZaPzDGO7NT9| zcP$iFq9D3krEIN>5o_K^N-@kkgk=yiUk2oUp4Vae?vb8c0>v+Oo?*YMgW1xS!dIcA zaNV`JpQN9X36oFM;VMP1u>urt!=kX?(dc-26~Bo?*ImP9%U29yCt$QsUfo9IFmt{1 zyEeTGM z$Ui++D@%^geHQ5y%XrNY1+l8p45}r5U2YR|hMJ3acbxKRsWi^G+U@GB@kl@uncYR4 zn>*U6&>iep@;8>&hT3By!qm6dRQ`eO0OxI*YzqzXgA3cp??9WrhjSi2A5VCW48hA4 z-Z0JC&-GgMoPSs}6PdLLg6@C1x;B@=&OO2Ly0(hXtDYWtT>W+s06I%RzG(j%Ke?2v zbMWn_xsNZbO+Ujl9a0{6 z5YQJAR0iwztT8*6>Rp7&dq5A?u=#rB=I}0Qd4;Jwe2a~X5Kdl#7bxCt$>Amd;M;&U z&YtXuA`<}IVDpBU#J8jdVyk(cR(zp9UHq9i+0OHNNMPreI?|YY$#uH~4(C=fv*D6N zNlUHk^>Y`}c`7aI&X{tjhE)%R`V4X4JX0JcE|5&d=Dbmh=XyyXnP|>YaWhe^SYXPg9 zK;I2a7KPry4*HvZi{z;x?*cgA@7Xi_51g;b2F{mF>a6z)RJ4>*yl~5szU#zpN>u~Z zowmZS3eRR7)Z=Rew@Dt~DZbLs>?*m{k|F$-y{tT2(~Xho(fCe$$(e&&V)okmE#ucp z6&AAd;!2LX&V&hk+9T+V0mMgKWn!cLWE?s$MAGY8RrJJA#C78t!9Mh1@5w${E}f>& zvA68Jqxqi4iv@NGzjwMcv^ytGR2@8uB~=SF#8vRsXfmVHGx%5mawc$j8)#r|!FF8RGe z?*=+KXb`$K2O}*2#wXNXWP=S*Io@@{HremH2sPx+l8NY+&sfg+ikE)wr__g$0@By0 z?ObkdcZ+v)Rp8Iy`V#Y)gDctKJaMWVIiQboBiqXWRIKvG1%fU0!3l#Y!?-Wz{AIym z1B^{bi|Gz_*5=t`0mIok&3qljpYF__2rbRmPpf3kDUpu21qoQhtNZ+oi^NrFH0N}L zl>8KFFfTUP+|F}BKPN{b;BZO8_%@}mc_>apmvT)OzFm{*@0S^1?mt*4_GYbyWV{!> znIVRI5g90f?*I_E{j+!T7958z4Yck(BPJ0yse8V|d_bVeN*RjaHBG(qDr0|Hh?t^X zp04`EV=^kyTI^*QC2J)cKQ0wW=CM@=_{jw)vmMHBh3o)`U7;%Xdgn z8}JS-g#&2~_WYlRJnAuhBa7lSCjnZ)zjk5;i7^M}u_wr7Ak_(2z{U9)srgP3vgTn+lsf6Wz50BJ2xN?I#Mq30iaqAtHn1piMk`M=DC(fvLhLvld<4YwyQ9=JVA z$U?QG`rqCuoLSjS{im3I2lE(3>HbFr_3q<0Qj!471I)Q*J-;!T7{@6z{ws*!X=#3o z;1QD(f2(xn2X%WC7=TNJ%e)r(?uM@u@4WI*tdut*h|$D zYzH?hnE@7OqqbS4hhpCe{DYe2T_s==^&j{goGVc41s?TC ziZ-tNN7^{@FKzs9lX9V?SpJ?i{+?s`SsVYxJ8`2?uu+^AS^G_pLB_lYd{ClD_30l{ zT|U}BcLqo`MP>oJj?{*@G6`jN0nlTZrYWBxq>lb2K#2%S#sFR{iY#vk@pn$KR#0;G z5;6%Y#N;8`%`HZcCAJ$GW#&avQy8^2dB-SE!%tt`?tdOvMKLarz__rcq=2QwJqn>i zuuUaBN>S4Ecoy7)jkNG|I%@S6u^#oqq5w=`4?_BO&DIF3eocVk#S@;1)m% zekP(wx>DHi50TRUs*D`fe8(RnsJ|jWC?*HQ*cb_{JP|^h=KIObcQG0N`Q?$n=iWUx z`^4^#AyiNv`Ku$PNPS@);s#&ZkB?tLUuEN|CDQ`8X+yZr{A6CdK^D~D$K5HST6nqk zXJOq?%RdR?-;mG$+3qgjrz3+GBod>061*u@)S^)(RsJ{gQT}Rs#c7mc_0g+uDGvIcl z3_JfT1`U@`J^;T6{G5Wev3!7E)WfqZ^Mj$ec#>wp>Shjdg9!oTAR|By688Ehg!;dk z7!w`ff0b=~58nST1NU=9beoEpmwlTps<wFOaMrT4TcZ51vj!7z+J3{6%c+C>~JI{w;uABT>od4BmLheq~@IHmRl+6xS0Tr zwT&;X&)*R1>lf8G)3`%|h}A@p#s!oKJ{=puj4%o}!g0eo3U|UcE(M=P5Zd_H44l4?+s$c2klmV*5V`U;GtJ{`WzS{-f~4p9GUnfnc&UV9f;4 zivrw*4rPkBC&$K9SF~r-$Tlf7*1o_U#B%`4+E3t&2G=s3_Q9Qj4T*jes@#MnrMu$Vug04tbNnIX1HV zUQaVAOissAIGEcZrC--mRq7bS_}il(v$BOT`b>EFB_|<#@*{n{tQ%jg8DdW?iAfgj z9DKA^J;Zt=c-zPGI;puFD~U<>-%sxV3{r^{a;R5y2E`SEa-;SvCe#J<7SqOJ=y8)M z`oZ=%GnG8iq9Gp^M@g1kGh^fGm>at8lG&*gGVj`VhA}aql~Kx$txJNd+htO?UReZU z_)`R=8ySj+;x04~n|3)z2-KNW2kj1Y-Lqrd$S5H32KD));Tl=@g+Llf1=wF|rqY87 zS~4LAYyBIkRF6lcR(qR%VTfzXu6lUHWmpTj;`{b4TC+aqW>W*Z)w$1gkCr4tuiXpp z=8en~H*qGx9xD9g2bPo3X4hGN1D z^(#>ra~qbgUyFQW_qD@z0brSiN-i$GpJ@^2s7bkE zknu(--P4{srRjDh4fBNeWPyGB6pJ6qoc;OPa*fB2_nP_&*^FGa5-#~-r0L<|!6tYW z2{{ZBZrz>(;N5Lwp!eRg@vfSEGIp24 zG>{{e`4Dq4!>DG6zvJLRy3~}|{vJ({zHHa6*)n1|r_ZNW4)}YTUpyb%tEIzhA+b2; zy0^PaxKbK9C`9#Tvlilu0`G(CX1C9=XVoH2jo+}$KBux-!(D9%b|C$#^uwB z@MxIF>%r$Kw{+Jo=o}h`_)tl(d&VgWm%mi$DIbw9J?6;WcB46BQej6JS%9rx+>$-Z z>|2eaD|zI>dow=$tuZIGUB)#c;56~@Ws4&yG6k|J1DjS zpqnne0g3xzP$~k625{QJtxh~`bIUE}BXuS$HF=U$F6U+ibw(Z*(Kly_EYv5WjTw3F zY{jN^%j}u2l@F9Vhwrfb#y6+hF3e-fbuA3LfW5qbI4tj0AAb{5nJ8U-M8n8yn(98! zEE6foR_}zFLsR1hYITyi=8a2_7j&1DTUqFiR-ASg-2QR}avyCYGgw{}i)4#PhGYjy zccq_PdpxHt-0`&FPIO3iPWIAKNJ8K-n!|*Zcn#KJOr!mRQ8k+qo)aHKy{gtkTG*K`=`e3TO2Ou5w;a2VM9R6!X@n;j0{17KG{9N zD_FD~4TtbBPb9B3()77f$IW%fg@U=00v|h=%dN$C6tt(N@G8fGq_Vyj=>RA^rAnuPHqoe?hShu7yeoCa%!#j`n{`b<+H=Z#3BdT{?(0oTMAES- zkl~s+32`Qe>^!C4%IlWkK@`YfKJ<@%YAI@Xft%^mwf$T zIiBOdst063L5fM|X%?fmptP~f?I@q7Fh0h88GfQI)FN?4Ys=AGg~FUqTMjZm8@}E8 z@+GxYqsDU(CO;iZ|5BAIk0a~2Qmm*qpZop8$HV0m_YqPJ3s`@g>IhSZPzX)YZl0VsNwf7_^tq+TGPnd*B zzyjKPpm`>ut65_8{b>Or`%2xjvQj!G6-T=9J7dqno{GLjl=(`TXN}5s(z{#f+qEOz zXM8d;h7vpB;rdZEwht{r0_x>bi`s=-gyurG80aLf%$h7sOBrZJC*V<*mjYuIC7&E= zjosfbU+r|=3f*X-mLR6cP;cf6iV*4OPOrVtmh5q!T7i*_hqGj_ilpx;8&*!oqFaavhAzg+qNm`;7HYn@APN4DNsDUZ-2_IijDeb z3;YJ(8ClXxJ`3))ASSDLL!x)AgqP)$(VvXQ^N!BoSeDSN8(eeRl4 zp^}u)^z8A}_jkr_`CdP)er)@w`J7&uQEq#&k7LCCoojx`hC*{?EqlxM6E$DN18)nu zL}V&U-F`q>HOH8qDWP*P<2H-8JD+m8Eqidh6y)A)tA2Oz4Jr@E^20$YDwvO#_6PhIw*yRi-dD6V^s3Dl)dN2XE+l~|0s63;Uo$lxdB4W{BWVaL1cogmv9mQ$@2 z((P-UPg_w}rKYchboFRf`c`gR=x)3&Wbl#6O0V^8v$B+&^nY7R8I#8O&B8U=F7)A{JZclUKS$^mIz3{0ntgv2)3Hm+WTpeDARr(%sN+ z$=f5sB)QNw^Wv5{viT^hKItn@c1wX#Os_M$-fs2=?X6v=?oG94Y_HjiFvugJ+I#Na zyR+7j;!!U^ug*7ByJRwQgXcn5!)L6G@S*b+ckoCbUJQZz?T#i2|5xvOve zHP48d6c=^BM>d$C2;)uIUOlqCHn2UU{a3u<)un{(h}xo|-q;>JaSf`E_Y=1kfy1Pc z)douln+J>~Sfv4Cs$|QonQMV)bhhEIL7c}FKi3-@6&GW<) zj8O)w!6bk2sadgT(^cY%pKnh8QoHB^^2h2wZk{ZfU>s_&>WRHbK<8q=%{$wVY`8U5 zPVW7a-!PM;gX)8IF3lDVb#2TW|GpL`g4yPx<$kQi|L6Hul;i#n=4VspPn-q4uzy>P ze{B=x;C4Mu_rakZH1^RXR9P6^jYGx01xM~v$^nLv**`i2*F+(m3+$?>95AW0y*f%VEFnPT(e zEuD;V1IfyKArjiW4#_MAk5x3N%XNqS_);^ubAg|{qbmP z+RIXHhch2K-R(S|`p_ui6rlbJ>>#f(%=`cT1n}&O3ZOEXPKFGSDBx%H0;{}eb2dHl zJ`QlmC?E*K>Lsvl_G6%s*aIvd3F=jUUbFKW@X>eLj4_Nh8F@Po*JSS;i`?vHQ$yi9wuv^mwl5FhvU4E0yX}%qp6n%dJB4L zlf>#zP$%Gg7oL~1pF6d6^_0nNCB{Zp>XnsL9>u1yj}LX^;|onMo5zC!p=4Da{Lq$g z;o(5Owi2$@o57WL)eN7E7bM@NjmCLO-jL%Aye2nk7!@FQi(=jXr}MD=%#=fc|H=89 z8G|T^_lDlQVWpH?EA9aRcCXFG5Nn1??I`R-p(K$z3-r)=jxc{iLJ>y8%sII@k0X1N zD7|-1Ip%BY?W7QWV<#M$7Lzi+jUl9n34|v_&)3v6K|dZw_hs<*x_Rs}q8jvWFZrCc zF*y>UFpddU1C4e9%x9YM{3Eiz&WQbX40*~i$i4hgNhkAPx_MA z!1V>ANtxFfc}e+5HDV&&^cZeonL*bZ5}bP6ypY4mavx{JHGm!ZZ7T*S%Kz}v2GwQ_ zj)suwys6B=*HRD#?CW*NSSAWs)-!@2!e<1Zi&j>a*iVWBwj5~5VMw^T4q55~{XJT5 zT;GZ@LXqv|C>EZ03!I1zBIAV_=&AU-41ihPj09G9W&_yUW55pPEA`j0|GFlB$;rRb zvjer&4`SEL(2E-iy9da9{}&7ae|`6_>-U!o{JY4&gKnHwnaF7wu_E`R8d`5QPKEQ# z8nT}cySPGAz+S%t34C##cI5na1o^o0>4cPi++`wgmoLp`fR37H05Sv+5x{`6%4CTm zQiZNVydr72c`jdX64p5{GRbmpB?@V0Z|&n0l`#&XWXLxDVzXUM5}S7$#)KK|Y4sE4 zt#yR3hRr?kcZ2O+F$_^q+GV`U_cP&I_v1C$o6Z-p-Yaq#U}Jct9UmHqDrG*xZ`w(| zBtPV!@D+6ccblkTc-JidHgdb+C!Nhf6WQq zYRYlj@*K5r{2#AJvZf!(K2F<~B{;l1X5_N1^*$j}xBjiv-pSu`m<(A=Pl-}Oa=e<` zQ#j4u1-I8`Q%^$`#Jddr+pw?Bt+W^N{msvvL3u$$&xF>^UYEz0{#&V0@@v)g|5 zj=R-DnCV4jLmr(;4|pL-y%nYjsffx!4nRS;WOsf883OXMWleuv)<1Wfp5QK*MecVH zdk=w6RD=8bApzW+@Z$aAmGsj{VjrZko(G7n0ZfJDA~OiNFW3R!v;Y_;wc;iarma- zIBJ0DJ0NlJ#?3k65i$r3y|dO>hkRm2;=){~N;PLp?@B*=JMN~^&MASf9n%E}w+~|RWH0%(3s@lA zfmxxCr8bI3nFZpLmZiW$^ZYfK^lCCE5-n+#UO}p22tGXXi1GjSk zbFj1Faa33Lc-Q>4=&;_iQapCDZhpvu?eNxFaosU~Hp%fq&n4A7{1?KlZ7j=_83LPMfaEo@Bl8;3XXh!vt!Z z)BZ`+{uP;f_tP6^UhPh9&KpbpTxnhTm8xnQ%KWt-s%wKT7rpNuPlZjMcq*@Sg-ydh zJ%N+3i*$4z=_v$q_%>#hSDFU*X>>{NbJSijFu%#gNiw7s`GkZP2!GXL$eEvgO~2o? zER;{Af&b(AvH64S&Nn?UgZ+DOHZvWTb%IKdKP$X>>FeJlSA_;1prN_Hb*bvd`39HN zx=hCDyB}NM!7uuqJ9z-P1Muz2O}JF8c^m0R7=+le%V~!gSRH#6F&vReg%>eh(E6ml z|Jl%j)$`o9bgS}iOPsr=?u50dWI(sR(CL!T?eXE1fhiX=tQqLQT^uY2Vbqf*wgbJ= zTF6(-hdDC^p)%Jzr&_I!I*X^^DhU@1$w#tLs`J{XCp4Q~N87};?1Lu!0&?E5+W8F) zDN0vNUB%?4w;m4co9(TARDN_Iz@>Pr`nYFt|FbS+8EQ9Qv|&^qe#_Cq%-$f{SCe8l zR%j+g-E`rEJH!j#V+#HiUD`*?QoM^3++kB3Tsx1fs$2>hmsvHW9yVS^f2q+Vm*Q#$ z@?K-h9}8q4FOMcl!B(48aq3}h;b#_gE~sP{WuJ@ax)CNgUM&erh=jI!MajLhiM`&G zAAC=&_^UUuc;Rdap6l6)4)@i$wEU3Hu~g-1&>w+xu6gcmYi5nY)Z}Ccwxrq+01} zHNj78foTeHTi>ig+HSA_hCSOvE}qXGx^A&FsopFb-?n!vH5so?oVw#6fgDIWB;QX! z6CmZWKG8Mtn9suv?t}^1-Q*o9y4}{Tu*VJn*S79^mU{!`h zPLb+7$1~WIRj}R%6*8k!YwD#hA!@w`l!9)yzZV*ZxA$qwn4#t_Y=hM&s>hS-G~w8W z3M7<+Z#+fczEV6wlTj7?mYGOs<8B3;nNvryU98G?@fwQJ(^BEp$8u)qQr016#JdZp zN{YrKa|x_Y&R4duB0mND4t z!@_#;S$yLM`u-of!$FAvRC<+WHqbiSaQqp~d2a|wiEw2z-2hl!Hqs3>yG~HAa8C}x z((4H0pkwWk2}B4Wr{Cs?Asj+hal9dyJVuW1>nLNuu0y7Q#^UrdC+w^PsR9`Z_R&So z+f0_%9j~248E$4t)*7%N%MbuBMXi9O1D>~|@+B1>h5dfI#C>fQ%5Ko>j}gJa)^cr@ zbnFX!nQx|&d4dmnnT{BCIvsAL8Ap`yyR#oyXp2csns`y_@M#*8t;{-ZzrS=2djB)p z-RXqQ0acv+VBWH+`hLEPHTJ;=H3qpn*gai$OiNC+7gdnL#5sE%Bx*{GGLR1^w86kEiPz^*PwQ32tKl7YPm`pn0}2kWkQ<> zhACKjB{38ZboWP)jf-hk59)aDR0CVoCSD-VG?0VjBw#ish{f%IZU=1(Up{~cS-}SY zj5EtRgj@&&vQg1V3v9%|WJcU`D#I)up2A=ctV6ow5G);E5NZ6xXQFeYr|S@G;Pq{o zZY{Fh{or-TodnGCm6ZiG$7F&DvWmAEGcC+Seil*09l52bpX7@f4gfdc&Uwu8j;X<2 z1SIw>kP#UX(o>LAYUGH7KDOO|dUt+;cszZ>Px3HEFazbQsDTDNNb!&uO@^v}l7}15 zCWlTGdnTMmS66?Gnaua_w+Yo$TxkogesLvxG4la@uOam^{~%L||4!Uwvs&Ae&v%M$ zTOqnn_&pKxy0hw;p|4(op})8@ktnvHjX#_0#l(KEu-b=r;Xo<$a`9HH!z)t=J*PU@ zezT&(xJ#p_?g17#1xs&R3F><3tuascP+hpiinJD+;=+EKFVMu43Z!t}?lWw8@A7G^ z`o&XAynZzDlOgpW3y5O=9MSx5dJmTu-v=IO?s;pH%M5&3UcIV68$k?CHYaQ=U57*; zL%(f#TejjYCTqQpmDQL! zMTh~p>t+pq$&9Fj!~A60SHi*Atw{drqLb)MjHyD_^MSZvlYk;e|f{@&6K3o^FE}%zk}9_GabHJ9i$&%qyUJQ3;L(_ybc2OPs%K zP6rX5Fd>q}(uM7v>F0>N#{pM<+cA1J)C%tuYh=rKC1i=S#$WBW%p$rq_{htBjXsSu zBdPKC&b~?1>FlM;VQelq1C>^hBuU*wUm?8{YHKD7;*xslxeGhGPQxdXc%PEZOzOv} zm$|U!?Z|90E$-3H2UR9J(=8@O1f)P2*CkX%fhxAYiCCytD%#A2A3v56;A!f^2JAhI z|C+iaVc(RlwMT(e)JKQ*9JwdXc-fEF;0M?x;8dnN>b0fItBgLkm3)PwNsD_A5vT{uJ%mOT17-9MeJ=7F zvIlVHT9eUbKs|N;UH%f>%G?j-vjA!y$k*U===LHE)lnbFmMEV+pQsRTnsC1G0dsyY zhgum@9_by1gn~OExgmt9!3cj6W`3wF>~87=AMde!{&++BbmY({_0d?Tq=zzhL3Z7S z05+twTcFu>Ea^bY8Sx>12Pu3< zoiKK6+B}-%HlUApLpLNMxr`{ZT(9z8s)NfB$O2$DE zsFjt_8BB`lhxvLBUvj#Jxjy?Fi7P-Iq88CXh7k0x#`zi=5ewS^xR`@&E|5QAQTSsg zsE6me`N{HaIV9Hsu&)MoJXQZl{(@Y*nSz;Sf|7kg3XcBJJ-;el^fR8Bbx3D7S&p?I zdjNohCH$OEuR~1x*A5WRgC=rw>yW5A2V2A)ayMp?3-_3e>0gIPh2a)A4k`Yc z3YZ6y!plq*gxCz+<-rMU=R=BN{N)|DNw==kj4^CdW7$} z%(3lYL(+&vb{g}O_K7*DA&kjg{fi1hXaXI04x+fw-U$#iD4o|cU*mj??7U`9+9HZ` z{bg$#r-uG&Nd#kIGvF*ok)H4=(mG^W1MR;NcA=g?bvkz1JTE^1t#1F2#y-$ZRCI(c z#Pymv?YAisVWw8d4O+Ot3s**nIh8hkH0k4hMV)pk@{(hX01Uqq9a(fv=M<_0#w0%s z>3Y!gcyj84)B6+DOWyy5ZtRxtzxfaD>=Jy&WWao{37r1a>=WPJYM5-62eS9FG6QeW zvS0N{;JD}~HZ}2!3*6L$_|h$xK04dSRAE(hSk?cX5Y-xhf$V_#Ajee~Xvn+oe~&uQ zRKS-{;@s9D+cJ;~!uZQ1bR2kiFEs!Y5{+y6-KR#HPr6VX*AV7_@jeNmLv?4ryxPf^ zbuetJul?K8wEYrvj@@6)X}{nulxW^}i{IalResPXP3t4aJJyrNwGi7%)ETJbJHQu< zp17Ijx1>{nsqOG^&>+P=2^X($gnznfNhepVl#|Zj3bmxG$%#K?KfD|X6(^-T=rE=Y zX+fc1s@d7tj|(zfv|YR%Ok_}B;8bt0Jk?v)5vr=)E5D?DbySY?aflTcXHZX&@^zYV z=yWl}?W?ti^W@+_!;l5na=9&frW|xTFb667j`B*fYw#p2L)8;^WZ)5e>}B*~grqKl zV1fL6s06vPU_oK`hd2amhLaFUjQtBUOawqVG2-ZypoOf=M9e}*Bw)LpI`%#*5<;9~ zturwjo60aJ*XRo9ejy-EoBKR=A)Y-AZA4A!a!IgH5ZI;=U-}ukiu?CXTB(%KuRbYr zCd;lv!W}IZ6lBQ#xW|Kv0_smf8TUV{Bnj=3r)c%Dv64Ci^1iueymFk2i4FFjJ$6ha%igS zTJLiMN1+q&&OKJBvfC6j_kryD#-HBAtbkj};DDo?H7w={70{PVD`=cd(LtLxs_HvA zZ=T^)oZ#^F0zCSs(RE1#J#1}zQSp3z!&T|Bu;4`=+7-Xk03JEir{ka`0gFZMT0!At z#Sh`kRqyw5V)rpa!4F{o5#6sQL+Gv!8FCG-(*9v`mN1W@S!JBnn!$<>s-kcSd$Apv z>2%-_qdDqoVF(1es*b$h!P45F-%`Nl2HaQyYtU=hRDzokO+aE~~skWp6<@wL- zXP?P%2j~J*nG&ni`|%FEVqv<5%mbBKIfhl9^IW@p1eW%!jAG`iDNW2GF`mdd;yQ$A zT;vB#feQYeIH=REJj(=4aqnv0_N(4o}|^bVWufx^D$ z@04s-o0aIjkL8@my;(I{r1?*|MYNz}A-_Vau+mPPlh~Px$;B&$R`+t;W4JG7RPEZs zGu(i?LIKNN!h)UBSp~?7F#g_SOLOCQsRrH*dd~U}^N66Mn4<{Ul@Ym0LRL7#h2aBx zDZ%QlN-`DrW?8$3|NK~mU3r(*1o>b)XMo=sESd$H{9zaT03!Osbw0{wVLyx&rq2nZbW`lAx)|3sr-bkoM+=#<@;x9T41xo z9pyzr3(|>0{QG*RG>6HSBgNzAZnZv6p8SwY`@81fcI`I3sr>vvY`nbv)!!W#qWm)L;@p z{a1V8pNc-v1EW~yfLc3|CsHcfD75QoTHi-eO|61hnGk8&>koNG_;C^rdfqx$QE$QT37JjuwE&GyooP2hosv$)3Cy1`O`T_(3R<5%}2P zmio>oSK1XeYjxSE-jdeyT|Jw!1)7{oy@GCn{Ui*L`3sECjhF+cZnZ@EJknH%0Wony z>Swr}^Q{iT^KP0t3at3TX;=FyJwl|5yOdao&r(mIi90F1K!@?o*XIb@(!(P8?`wDy zpgda*td!bHhDhzpDeI7Dh)lR!fuIq$;i?hZ_|?&K@4E%4J2NrX8+W%)c;VW&yKDFT z?#gc5UFgDj&M-*HMnY;cG4^cyMyLr_i`LSrwtQzuDGr3H&t11%b zf7yENYo0=xYLDpj14mkuwGK7HZNo>#n4RSAT_KKqix)yZRV{WN>|U{iyF(mAzVGl` zl0t4L?Y#RCGKWYyohTcibUjjiw6Y{+kJ5eznfcLR7PA9=75eM}i9KWUYI=xR+G6^Q zz4Ww!c3?Z9a%xqNS{kx`cJ^(|mK`z!y9`#27sLS_!O}qF)IHac^{_i|5o;6;pJuus zLt1jtCP5hR2J=%Iz)$o15=|V_NF{n(pC+W^P^a@~@8`ABN%BAht|1m%pNLSDcRZ=xCN_Ty2*ubfb2E zgtSAsu@Yz)hE`VRW=??#SBseYgfq2P#P~(BJ6S&{FGb>0ZDucZe7f-)9jJOTxrUdf zQfUu$kG4NCB%~m!kOTWTpApGI$;A(WFjtvO!G530{dIyN zbqOWtxcRq?`7%~v^cCgRWjWGQr2EE(F1Y(ZNpygRcy+NHc6$-2{Ykf?iEKfO<&Ls; z>lc~(-;p`*xDlro`-)0QuZx7bC&L`$pE{^LIoftunZdU;rM!C2)(1)per|+PHoUXL zmj$IycA=&HjM@_{-hz^W*wAxpW=9)n#R&U4$qbbp6FEM_Bkyo6GNvMBR{Q$23?3aQ zt?2KQW=+Ja*B5b;f`U`omFR3<#&FFRBexG?uuV|-Y8}KOUdr)^DS->;6}x4sO!SHc zD47-tXc(3tTTWv3APr!KzyU){t@tP8$%-%tsUvL9Z&S^n=G3E{n#e**G!6o-S5;kU0`;c1TB zHG6)gdrGI@+d(SUM)h)TTUK}O4DW4b1G5;c8k+(;@HT-9V*acHv)|zs-lw|JsF9k% zH}U*pbc1U5V@s}aQ7Q>mI!b8E@d9D*l&)^Zpw7O2lEc0}>G(A16J^N$GGg*5_X_+= zkOsK|*AN+E`k{|0J*eOAMKqbPQv!C`sZ*3btkRVz-ahp@NZqf8^~wHZe)3bs!XRCY zTdDZ|R{qbs&EqsKeuB+bJaxg}=)!v4N$n~&Pb?jiqN`Px{rIdbAos~ddzVVPC8e%t zEpjDJIH|%v+w_v``=I{EW_JJW6mjg;fmg5KBr zp$o9Gg(-D>;mq5_2O%Zr^lobN2sDV1jfda^L76Z-Gw2Pp!Ul1$mvVFm{T;(2ffZhr zgzQfk2j1c}pp^C7;B&1{s1{}zR*3!S9&W6BLuGdFxMS8KNq$8V|4J2^-{9`V8(PdR z)-2q5YPk5c)>Figdy)FVxy8W$!`_z%LiN9GD@B_%qY#R+O{FZ6Fe$s3?2#qeO@%BW zOtLn%>}B6~#va8WTS#_;$};w~8S5BhdOuUY-}5~0`}h0T^ZoskIj1vc%yG_jU-xxi z_x(|+g>?1?ii%r_%Fuo}6o&&_RdBvJLLsF|gDla!$ z{bH6)HzP)>2g$FUdajD(JF^Ee|9FGSNizj|+tWQRw~C#W{V%U-(a;Vh9`F;5rY)v= zgGmCf-QSly;_);KGPsl+`Sh#v8fw;;&6@#_ZCS|~($5)o%Q^e7JB~&v%6~3>+GSZy zetV33mk^&Y1wUnqF#eih8OFkPp1j!^8OP?8)@PM^l*YSq-+pDuXC|CqF|dU}tglmm z>1VVKBkWh~-QP5a(J4g_+l<#1-jG%DSB#U^KVjbIdb^rzX|K}J>>RED#e@(4|CHe}Q-dEXiOTLl%Vkfm%y!-a2nms{|cIOx~I3WpS z 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 Y2UhyPN*`G111o*t|6U*9{Mq@x0D!tqLjV8( literal 0 HcmV?d00001 From 4abd3ef7cdcda56007fc3c76ca0b4bd85ef0543d Mon Sep 17 00:00:00 2001 From: Nicholas Letarte <110304219+nicholasletarte@users.noreply.github.com> Date: Tue, 7 Nov 2023 12:15:40 -0500 Subject: [PATCH 30/71] Update README.md --- README.md | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3037ef3..2581c3c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,30 @@ -Hello from Cliff -Hello from Jeff -Hello from Nick -Hello From Dingbang +# Power Up + +Want a seamless user experience at your favorite internet cafe? +With our PowerUp app, all this can be accomplished and more! + +## Table of Contents +- [About The Project](#about-the-project) +- [Application Usage](#application-usage) +- [Tools Used](#tools-used) + +## About The Project + +

+ Power Up +

+ +## Application Usage + +- Our comprehensive application provides all the tools necessary for an individual to do the following: + - **LOCATE**: Nearest internet cafe + - **CREATE**: Account that is associated with user + - **WALLET**: Tracks how many funds are available to use on different machines within cafe + - **TIME**: Tracks amount of time user has on given machine + - **VISUALIZE**: User sees how many machines are available at given cafe +- This app provides the functionality necessary to provide users with the best possible internet/gaming cafe experience. + +## Tools Used + +To create this project we used the following tools: +- Swift From 39a900a561e7d124c5ebc26bb54ccbbe297b7c95 Mon Sep 17 00:00:00 2001 From: Nicholas Letarte <110304219+nicholasletarte@users.noreply.github.com> Date: Tue, 7 Nov 2023 12:20:56 -0500 Subject: [PATCH 31/71] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2581c3c..33e70bf 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ With our PowerUp app, all this can be accomplished and more! ## About The Project

- Power Up + Power Up

## Application Usage From e202a0f3a11d2b98c34e7ea435d496aa46493390 Mon Sep 17 00:00:00 2001 From: nicholasletarte Date: Tue, 7 Nov 2023 12:26:32 -0500 Subject: [PATCH 32/71] images folder --- Images/PowerUp.pdf.jpg | Bin 0 -> 162263 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Images/PowerUp.pdf.jpg diff --git a/Images/PowerUp.pdf.jpg b/Images/PowerUp.pdf.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5b7d6b8b3d494c03320d3bc44c59bdaf2c049b88 GIT binary patch literal 162263 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 BWG-COFElR*VwW6d;cai;otk!vjf-!B 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 z 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 Y2UhyPN*`G111o*t|6U*9{Mq@x0D!tqLjV8( literal 0 HcmV?d00001 From 1baba6cd2f1a3eff84ea72272c7711137b7b14af Mon Sep 17 00:00:00 2001 From: Nicholas Letarte <110304219+nicholasletarte@users.noreply.github.com> Date: Tue, 7 Nov 2023 13:12:21 -0500 Subject: [PATCH 33/71] Update README.md --- README.md | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3037ef3..33e70bf 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,30 @@ -Hello from Cliff -Hello from Jeff -Hello from Nick -Hello From Dingbang +# Power Up + +Want a seamless user experience at your favorite internet cafe? +With our PowerUp app, all this can be accomplished and more! + +## Table of Contents +- [About The Project](#about-the-project) +- [Application Usage](#application-usage) +- [Tools Used](#tools-used) + +## About The Project + +

+ Power Up +

+ +## Application Usage + +- Our comprehensive application provides all the tools necessary for an individual to do the following: + - **LOCATE**: Nearest internet cafe + - **CREATE**: Account that is associated with user + - **WALLET**: Tracks how many funds are available to use on different machines within cafe + - **TIME**: Tracks amount of time user has on given machine + - **VISUALIZE**: User sees how many machines are available at given cafe +- This app provides the functionality necessary to provide users with the best possible internet/gaming cafe experience. + +## Tools Used + +To create this project we used the following tools: +- Swift From 8eebb9cf3392fa953c1b38931e85b0fbfdd3b69e Mon Sep 17 00:00:00 2001 From: jcport1 Date: Fri, 10 Nov 2023 15:23:35 -0500 Subject: [PATCH 34/71] Initial Stripe API setup --- PowerUp/AppDelegate.swift | 3 ++ PowerUp/WalletView/WalletView.swift | 35 ++++++++++++++++++- PowerUp/WalletView/WalletViewController.swift | 1 + 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/PowerUp/AppDelegate.swift b/PowerUp/AppDelegate.swift index c23786b..add1882 100644 --- a/PowerUp/AppDelegate.swift +++ b/PowerUp/AppDelegate.swift @@ -7,6 +7,8 @@ import UIKit import FirebaseCore +import StripePaymentsUI + @main class AppDelegate: UIResponder, UIApplicationDelegate { @@ -15,6 +17,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. FirebaseApp.configure() + StripeAPI.defaultPublishableKey = "pk_test_51OB0l7F2tt1p5w5CTV5YqNWylEtTX6e4osXu4e2lFGzAyhbs80fuDB9htGRPFjcGuOE32hMs1NwDtOsT5YiNdC5T00vE6IYaGW" return true } diff --git a/PowerUp/WalletView/WalletView.swift b/PowerUp/WalletView/WalletView.swift index 1226074..d631688 100644 --- a/PowerUp/WalletView/WalletView.swift +++ b/PowerUp/WalletView/WalletView.swift @@ -6,6 +6,8 @@ // import UIKit +import StripePaymentsUI + class WalletView: UIView { @@ -62,6 +64,24 @@ class WalletView: UIView { return button }() + // card text field + lazy var stripeCardTextField: STPPaymentCardTextField = { + let cardTextField = STPPaymentCardTextField() + return cardTextField + }() + + // credit card pay button + lazy var stripePayButton: UIButton = { + let button = UIButton(type: .custom) + button.layer.cornerRadius = 5 + button.backgroundColor = .systemBlue + button.titleLabel?.font = UIFont.systemFont(ofSize: 22) + button.setTitle("Add", for: .normal) + button.addTarget(self, action: #selector(pay), for: .touchUpInside) + return button + }() + + override init(frame: CGRect) { super.init(frame: frame) setupViews() @@ -85,6 +105,8 @@ class WalletView: UIView { addSubview(balanceCard) balanceCard.addSubview(balanceLabel) addSubview(addFundsButton) + addSubview(stripeCardTextField) + addSubview(stripePayButton) NSLayoutConstraint.activate([ headerLabel.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor, constant: 40), @@ -101,7 +123,18 @@ class WalletView: UIView { addFundsButton.topAnchor.constraint(equalTo: balanceCard.bottomAnchor, constant: 40), addFundsButton.centerXAnchor.constraint(equalTo: centerXAnchor), addFundsButton.widthAnchor.constraint(equalToConstant: 160), - addFundsButton.heightAnchor.constraint(equalToConstant: 50) + addFundsButton.heightAnchor.constraint(equalToConstant: 50), + + stripeCardTextField.topAnchor.constraint(equalTo: addFundsButton.bottomAnchor, constant: 40), + stripeCardTextField.centerXAnchor.constraint(equalTo: centerXAnchor), + stripeCardTextField.widthAnchor.constraint(equalToConstant: 160), + stripeCardTextField.heightAnchor.constraint(equalToConstant: 50), + + stripePayButton.topAnchor.constraint(equalTo: stripeCardTextField.bottomAnchor, constant: 40), + stripePayButton.centerXAnchor.constraint(equalTo: centerXAnchor), + stripePayButton.widthAnchor.constraint(equalToConstant: 160), + stripePayButton.heightAnchor.constraint(equalToConstant: 50), + ]) } } diff --git a/PowerUp/WalletView/WalletViewController.swift b/PowerUp/WalletView/WalletViewController.swift index 7564005..e375968 100644 --- a/PowerUp/WalletView/WalletViewController.swift +++ b/PowerUp/WalletView/WalletViewController.swift @@ -7,6 +7,7 @@ import UIKit +import StripePaymentsUI class WalletViewController: UIViewController { From 2c219dc2a869c43b7382a1b62cef51f94aa9a539 Mon Sep 17 00:00:00 2001 From: jcport1 Date: Mon, 13 Nov 2023 11:50:25 -0500 Subject: [PATCH 35/71] Adds Stripe API stack view and pay function --- PowerUp/WalletView/WalletViewController.swift | 55 ++++++++++++++++++- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/PowerUp/WalletView/WalletViewController.swift b/PowerUp/WalletView/WalletViewController.swift index e375968..c08516e 100644 --- a/PowerUp/WalletView/WalletViewController.swift +++ b/PowerUp/WalletView/WalletViewController.swift @@ -12,6 +12,8 @@ import StripePaymentsUI class WalletViewController: UIViewController { private let walletView = WalletView() + + var paymentIntentClientSecret: String? override func loadView() { view = walletView @@ -20,10 +22,59 @@ class WalletViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() walletView.addFundsButton.addTarget(self, action: #selector(addFundsTapped), for: .touchUpInside) + walletView.stripePayButton.addTarget(self, action: #selector(pay), for: .touchUpInside) + startCheckout() } + // shows stripe card component @objc func addFundsTapped() { - print("Add Funds Button: I was clicked!") - // Redirect to Stripe's page to add funds + walletView.stripeStackView.isHidden = false + } + + func displayAlert(title: String){ + + } + + @objc func pay() { + print("Stripe Button: I was clicked!") + + guard let paymentIntentClientSecret = paymentIntentClientSecret else { + return + } + //Collect card details + let paymentIntentParams = STPPaymentIntentParams(clientSecret: paymentIntentClientSecret) + paymentIntentParams.paymentMethodParams = walletView.stripeCardTextField.paymentMethodParams +// print(walletView.stripeCardTextField.paymentMethodParams.card) + + // Submit the payment + let paymentHandler = STPPaymentHandler.shared() + paymentHandler.confirmPayment(paymentIntentParams, with: self) { (status, paymentIntent, error) in + switch (status) { + case .failed: + self.displayAlert(title: "Payment failed") + break + case .canceled: + self.displayAlert(title: "Payment canceled") + break + case .succeeded: + self.displayAlert(title: "Payment succeeded") + break + @unknown default: + fatalError() + break + } + } + } + + func startCheckout() { + // Request a PaymentIntent from your server and store its client secret + // Click View full sample to see a complete implementation + } + +} + +extension WalletViewController: STPAuthenticationContext { + func authenticationPresentingViewController() -> UIViewController { + return self } } From ebcf1fa52047a6efdb1d94f7189bca9fbb81b671 Mon Sep 17 00:00:00 2001 From: jcport1 Date: Mon, 13 Nov 2023 11:52:21 -0500 Subject: [PATCH 36/71] Stripe API view --- PowerUp/WalletView/WalletView.swift | 63 +++++++++++++++++++---------- 1 file changed, 41 insertions(+), 22 deletions(-) diff --git a/PowerUp/WalletView/WalletView.swift b/PowerUp/WalletView/WalletView.swift index d631688..428a66a 100644 --- a/PowerUp/WalletView/WalletView.swift +++ b/PowerUp/WalletView/WalletView.swift @@ -18,6 +18,14 @@ class WalletView: UIView { return layer }() + + //top container + let topContainerHeader: UIView = { + let containerTop = UIView() + containerTop.backgroundColor = UIColor(red: 0.035, green: 0.51, blue: 0.89, alpha: 1.0) + containerTop.translatesAutoresizingMaskIntoConstraints = false + return containerTop + }() // Balance Card let balanceCard: UIView = { @@ -57,8 +65,8 @@ class WalletView: UIView { let button = UIButton(type: .system) button.setTitle("Add Funds", for: .normal) button.titleLabel?.font = UIFont.systemFont(ofSize: 20, weight: .semibold) - button.backgroundColor = UIColor.white - button.setTitleColor(UIColor.systemBlue, for: .normal) + button.backgroundColor = UIColor(red: 0.45, green: 0.72, blue: 1, alpha: 1.0) + button.setTitleColor(UIColor.white, for: .normal) button.layer.cornerRadius = 12 button.translatesAutoresizingMaskIntoConstraints = false return button @@ -74,41 +82,55 @@ class WalletView: UIView { lazy var stripePayButton: UIButton = { let button = UIButton(type: .custom) button.layer.cornerRadius = 5 - button.backgroundColor = .systemBlue + button.backgroundColor = .systemGray button.titleLabel?.font = UIFont.systemFont(ofSize: 22) button.setTitle("Add", for: .normal) - button.addTarget(self, action: #selector(pay), for: .touchUpInside) return button }() + //stack view + lazy var stripeStackView : UIStackView = { + let stackView = UIStackView(arrangedSubviews: [stripeCardTextField, stripePayButton]) + stackView.axis = .vertical + stackView.spacing = 20 + stackView.translatesAutoresizingMaskIntoConstraints = false + stackView.isHidden = true + return stackView + }() + //main init function override init(frame: CGRect) { super.init(frame: frame) + self.backgroundColor = .white setupViews() } - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - override func layoutSubviews() { super.layoutSubviews() gradientLayer.frame = self.bounds } - + //sets up views & contraints private func setupViews() { - gradientLayer.frame = self.bounds - layer.addSublayer(gradientLayer) +// gradientLayer.frame = self.bounds +// layer.addSublayer(gradientLayer) + addSubview(topContainerHeader) addSubview(headerLabel) addSubview(balanceCard) balanceCard.addSubview(balanceLabel) addSubview(addFundsButton) - addSubview(stripeCardTextField) - addSubview(stripePayButton) + + //stripe component + addSubview(stripeStackView) NSLayoutConstraint.activate([ + + topContainerHeader.leadingAnchor.constraint(equalTo: self.leadingAnchor), + topContainerHeader.trailingAnchor.constraint(equalTo: self.trailingAnchor), + topContainerHeader.topAnchor.constraint(equalTo: self.topAnchor), + topContainerHeader.heightAnchor.constraint(equalToConstant: 200), + headerLabel.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor, constant: 40), headerLabel.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 20), @@ -125,16 +147,13 @@ class WalletView: UIView { addFundsButton.widthAnchor.constraint(equalToConstant: 160), addFundsButton.heightAnchor.constraint(equalToConstant: 50), - stripeCardTextField.topAnchor.constraint(equalTo: addFundsButton.bottomAnchor, constant: 40), - stripeCardTextField.centerXAnchor.constraint(equalTo: centerXAnchor), - stripeCardTextField.widthAnchor.constraint(equalToConstant: 160), - stripeCardTextField.heightAnchor.constraint(equalToConstant: 50), - - stripePayButton.topAnchor.constraint(equalTo: stripeCardTextField.bottomAnchor, constant: 40), - stripePayButton.centerXAnchor.constraint(equalTo: centerXAnchor), - stripePayButton.widthAnchor.constraint(equalToConstant: 160), - stripePayButton.heightAnchor.constraint(equalToConstant: 50), + stripeStackView.topAnchor.constraint(equalTo: addFundsButton.bottomAnchor, constant: 40), + stripeStackView.centerXAnchor.constraint(equalTo: safeAreaLayoutGuide.centerXAnchor) ]) } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } } From 584ce46ac085787c80d91e26be92a129943b990b Mon Sep 17 00:00:00 2001 From: jcport1 Date: Mon, 13 Nov 2023 15:34:16 -0500 Subject: [PATCH 37/71] Wallet logic setup --- PowerUp/Checkout Screen/CheckOutView.swift | 77 ++++++++++++++++++ .../CheckOutViewController.swift | 63 +++++++++++++++ PowerUp/Payment Screen/PaymentView.swift | 67 +++++++++++++++ .../PaymentViewController.swift | 51 ++++++++++++ PowerUp/WalletView/WalletViewController.swift | 81 ++++++++++--------- 5 files changed, 300 insertions(+), 39 deletions(-) create mode 100644 PowerUp/Checkout Screen/CheckOutView.swift create mode 100644 PowerUp/Checkout Screen/CheckOutViewController.swift create mode 100644 PowerUp/Payment Screen/PaymentView.swift create mode 100644 PowerUp/Payment Screen/PaymentViewController.swift diff --git a/PowerUp/Checkout Screen/CheckOutView.swift b/PowerUp/Checkout Screen/CheckOutView.swift new file mode 100644 index 0000000..daaf31f --- /dev/null +++ b/PowerUp/Checkout Screen/CheckOutView.swift @@ -0,0 +1,77 @@ +// +// CheckOutView.swift +// PowerUp +// +// Created by Jefferson Cuartas on 11/13/23. +// + +import UIKit + +class CheckOutView: UIView { + + //amount label + var amountLabel: UILabel! + + //dropdown + var pickerType: UIPickerView! + + //button: add + var addButton: UIButton! + + override init(frame: CGRect) { + super.init(frame: frame) + self.backgroundColor = .white + + setupAmountLabel() + setuppickerType() + + setupAddButton() + + initContraints() + } + + func setupAmountLabel(){ + amountLabel = UILabel() + amountLabel.text = "Amount:" + amountLabel.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(amountLabel) + } + + func setuppickerType(){ + pickerType = UIPickerView() + pickerType.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(pickerType) + } + + func setupAddButton(){ + addButton = UIButton(type: .system) + addButton.setTitle("Add", for: .normal) + addButton.titleLabel?.font = UIFont.systemFont(ofSize: 20, weight: .semibold) + addButton.backgroundColor = UIColor(red: 0.45, green: 0.72, blue: 1, alpha: 1.0) + addButton.setTitleColor(UIColor.white, for: .normal) + addButton.layer.cornerRadius = 12 + addButton.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(addButton) + } + + func initContraints(){ + //MARK: constraints... + NSLayoutConstraint.activate([ + amountLabel.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor), + amountLabel.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 16), + + pickerType.topAnchor.constraint(equalTo: amountLabel.bottomAnchor, constant: 8), + pickerType.centerXAnchor.constraint(equalTo: self.safeAreaLayoutGuide.centerXAnchor), + + addButton.topAnchor.constraint(equalTo: pickerType.bottomAnchor, constant: 40), + addButton.centerXAnchor.constraint(equalTo: centerXAnchor), + addButton.widthAnchor.constraint(equalToConstant: 160), + addButton.heightAnchor.constraint(equalToConstant: 50), + ]) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} diff --git a/PowerUp/Checkout Screen/CheckOutViewController.swift b/PowerUp/Checkout Screen/CheckOutViewController.swift new file mode 100644 index 0000000..a248183 --- /dev/null +++ b/PowerUp/Checkout Screen/CheckOutViewController.swift @@ -0,0 +1,63 @@ +// +// CheckOutViewController.swift +// PowerUp +// +// Created by Jefferson Cuartas on 11/13/23. +// + +import UIKit + +class CheckOutViewController: UIViewController { + + let checkoutScreen = CheckOutView() + + let amounts = ["10", "15", "20", "25"] + +// var delegate: WalletViewController! + + var selectedAmount = "10" + + override func loadView() { + view = checkoutScreen + } + + override func viewDidLoad() { + super.viewDidLoad() + + //MARK: patching delegate and datasource of the type PickerView... + checkoutScreen.pickerType.dataSource = self + checkoutScreen.pickerType.delegate = self + +// walletView.stripePayButton.addTarget(self, action: #selector(pay), for: .touchUpInside) + checkoutScreen.addButton.addTarget(self, action: #selector(checkOut), for: .touchUpInside) + + } + + @objc func checkOut(){ + let paymentController = PaymentViewController() + paymentController.delegate = self + paymentController.updateAddAmount() + navigationController?.pushViewController(paymentController, animated: true) + + } +} + +//MARK: adopting the required protocols... +extension CheckOutViewController: UIPickerViewDelegate, UIPickerViewDataSource{ + func numberOfComponents(in pickerView: UIPickerView) -> Int { + //MARK: we are using only one section... + return 1 + } + + func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { + //MARK: we are displaying the options from Utilities.types... + return amounts.count + } + + func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { + + //MARK: updating the selected type when the user picks this row... + selectedAmount = amounts[row] + return amounts[row] + } +} diff --git a/PowerUp/Payment Screen/PaymentView.swift b/PowerUp/Payment Screen/PaymentView.swift new file mode 100644 index 0000000..d86100e --- /dev/null +++ b/PowerUp/Payment Screen/PaymentView.swift @@ -0,0 +1,67 @@ +// +// PaymentView.swift +// PowerUp +// +// Created by Jefferson Cuartas on 11/13/23. +// + +import UIKit +import StripePaymentsUI + +class PaymentView: UIView { + + var stripeCardTextField: STPPaymentCardTextField! + + var stripePayButton: UIButton! + + var stripeStackView : UIStackView! + + override init(frame: CGRect) { + super.init(frame: frame) + self.backgroundColor = .white + + setupStripeCardTextField() + setupStripePayButton() + setupStripeStack() + + initContraints() + + } + + func setupStripeCardTextField(){ + stripeCardTextField = STPPaymentCardTextField() + self.addSubview(stripeCardTextField) + } + + func setupStripePayButton(){ + stripePayButton = UIButton(type: .custom) + stripePayButton.layer.cornerRadius = 5 + stripePayButton.backgroundColor = .systemGray + stripePayButton.titleLabel?.font = UIFont.systemFont(ofSize: 22) + stripePayButton.setTitle("Add", for: .normal) + + self.addSubview(stripePayButton) + } + + func setupStripeStack(){ + stripeStackView = UIStackView(arrangedSubviews: [stripeCardTextField, stripePayButton]) + stripeStackView.axis = .vertical + stripeStackView.spacing = 20 + stripeStackView.translatesAutoresizingMaskIntoConstraints = false + + self.addSubview(stripeStackView) + } + + func initContraints(){ + //MARK: constraints... + NSLayoutConstraint.activate([ + stripeStackView.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor, constant: 40), + stripeStackView.centerXAnchor.constraint(equalTo: safeAreaLayoutGuide.centerXAnchor) + ]) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} diff --git a/PowerUp/Payment Screen/PaymentViewController.swift b/PowerUp/Payment Screen/PaymentViewController.swift new file mode 100644 index 0000000..bc4fe3c --- /dev/null +++ b/PowerUp/Payment Screen/PaymentViewController.swift @@ -0,0 +1,51 @@ +// +// PaymentViewController.swift +// PowerUp +// +// Created by Jefferson Cuartas on 11/13/23. +// + +import UIKit + +class PaymentViewController: UIViewController { + + let paymentView = PaymentView() + + let notificationCenter = NotificationCenter.default + + var delegate: CheckOutViewController! + + override func loadView() { + view = paymentView + } + + override func viewDidLoad() { + super.viewDidLoad() + + paymentView.stripePayButton.addTarget(self, action: #selector(addFunds), for: .touchUpInside) + } + + func updateAddAmount(){ + paymentView.stripePayButton.setTitle("Add $\(delegate.selectedAmount)", for: .normal) + } + + @objc func addFunds(){ + //validate payment was successful + // if successful, update backend user.credit with posted amount: endpoint to ping backend and pass in data + // otherwise throw error + //post amount notification to main + // notificationCenter.post(name: .nameSelected, object: namesForTableView[indexPath.row]) + + onButtonSendBack() + //close modal + delegate.dismiss(animated: true) + } + + func onButtonSendBack(){ + //MARK: posting text to NotificationCenter... + notificationCenter.post( + name: Notification.Name("selectedAmount"), + object: "$ \(delegate.selectedAmount).00") + } +} + diff --git a/PowerUp/WalletView/WalletViewController.swift b/PowerUp/WalletView/WalletViewController.swift index c08516e..759398d 100644 --- a/PowerUp/WalletView/WalletViewController.swift +++ b/PowerUp/WalletView/WalletViewController.swift @@ -13,7 +13,10 @@ class WalletViewController: UIViewController { private let walletView = WalletView() - var paymentIntentClientSecret: String? + let notificationCenter = NotificationCenter.default + + let checkoutController = CheckOutViewController() + var checkoutNavController: UINavigationController! override func loadView() { view = walletView @@ -21,9 +24,31 @@ class WalletViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() - walletView.addFundsButton.addTarget(self, action: #selector(addFundsTapped), for: .touchUpInside) + + walletView.addFundsButton.addTarget(self, action: #selector(onFindButtonTapped), for: .touchUpInside) walletView.stripePayButton.addTarget(self, action: #selector(pay), for: .touchUpInside) - startCheckout() + + observeAmountSelected() + } + + //MARK: Observe if the user selected a name from bottom sheet... + func observeAmountSelected(){ + notificationCenter.addObserver( + self, + selector: #selector(onAmountSelected(notification:)), + name: Notification.Name("selectedAmount"), object: nil) + } + + @objc func onAmountSelected(notification: Notification){ + if let selectedAmount = notification.object{ + walletView.balanceLabel.text = selectedAmount as! String + } + } + + //get current balance by pinging backend endpoint + func getCurrentBalance(){ + //get current balance + //then update walletView.balanceLabel } // shows stripe card component @@ -37,44 +62,22 @@ class WalletViewController: UIViewController { @objc func pay() { print("Stripe Button: I was clicked!") - - guard let paymentIntentClientSecret = paymentIntentClientSecret else { - return - } - //Collect card details - let paymentIntentParams = STPPaymentIntentParams(clientSecret: paymentIntentClientSecret) - paymentIntentParams.paymentMethodParams = walletView.stripeCardTextField.paymentMethodParams -// print(walletView.stripeCardTextField.paymentMethodParams.card) +// print(walletView.stripeCardTextField.paymentMethodParams.card) + } - // Submit the payment - let paymentHandler = STPPaymentHandler.shared() - paymentHandler.confirmPayment(paymentIntentParams, with: self) { (status, paymentIntent, error) in - switch (status) { - case .failed: - self.displayAlert(title: "Payment failed") - break - case .canceled: - self.displayAlert(title: "Payment canceled") - break - case .succeeded: - self.displayAlert(title: "Payment succeeded") - break - @unknown default: - fatalError() - break - } - } + func setupCheckoutBottomSheet(){ + checkoutNavController = UINavigationController(rootViewController: checkoutController) + checkoutNavController.modalPresentationStyle = .pageSheet + + if let bottomCheckoutSheet = checkoutNavController.sheetPresentationController{ + bottomCheckoutSheet.detents = [.medium(), .large()] + bottomCheckoutSheet.prefersGrabberVisible = true } + } - func startCheckout() { - // Request a PaymentIntent from your server and store its client secret - // Click View full sample to see a complete implementation - } + @objc func onFindButtonTapped(){ + setupCheckoutBottomSheet() + present(checkoutNavController, animated: true) + } } - -extension WalletViewController: STPAuthenticationContext { - func authenticationPresentingViewController() -> UIViewController { - return self - } -} From ac64d08458bb1aaafa12cefcbd81ab67805b12ec Mon Sep 17 00:00:00 2001 From: jcport1 Date: Mon, 13 Nov 2023 15:35:51 -0500 Subject: [PATCH 38/71] removes unused code --- PowerUp/Checkout Screen/CheckOutViewController.swift | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/PowerUp/Checkout Screen/CheckOutViewController.swift b/PowerUp/Checkout Screen/CheckOutViewController.swift index a248183..4fd4446 100644 --- a/PowerUp/Checkout Screen/CheckOutViewController.swift +++ b/PowerUp/Checkout Screen/CheckOutViewController.swift @@ -12,9 +12,7 @@ class CheckOutViewController: UIViewController { let checkoutScreen = CheckOutView() let amounts = ["10", "15", "20", "25"] - -// var delegate: WalletViewController! - + var selectedAmount = "10" override func loadView() { @@ -28,7 +26,6 @@ class CheckOutViewController: UIViewController { checkoutScreen.pickerType.dataSource = self checkoutScreen.pickerType.delegate = self -// walletView.stripePayButton.addTarget(self, action: #selector(pay), for: .touchUpInside) checkoutScreen.addButton.addTarget(self, action: #selector(checkOut), for: .touchUpInside) } From 25fd6ce44f61da220d210f0d3ce44f15b997c7a1 Mon Sep 17 00:00:00 2001 From: Yucheng Date: Mon, 13 Nov 2023 17:46:07 -0500 Subject: [PATCH 39/71] Login/Logout Logic & Json to Backend Updates --- PowerUp/Keychain/KeychainService.swift | 32 +++++++++++++++++++ ...rofileScreenView.swift => LoginView.swift} | 4 +-- ...roller.swift => LoginViewController.swift} | 14 ++++---- PowerUp/ProfileScreen/ProfileView.swift | 20 ++++++++++++ .../ProfileScreen/ProfileViewController.swift | 29 +++++++++++++++++ PowerUp/UserService/UserService.swift | 8 +++++ 6 files changed, 98 insertions(+), 9 deletions(-) create mode 100644 PowerUp/Keychain/KeychainService.swift rename PowerUp/ProfileScreen/{ProfileScreenView.swift => LoginView.swift} (99%) rename PowerUp/ProfileScreen/{ProfileScreenController.swift => LoginViewController.swift} (85%) create mode 100644 PowerUp/ProfileScreen/ProfileView.swift create mode 100644 PowerUp/ProfileScreen/ProfileViewController.swift create mode 100644 PowerUp/UserService/UserService.swift diff --git a/PowerUp/Keychain/KeychainService.swift b/PowerUp/Keychain/KeychainService.swift new file mode 100644 index 0000000..ca4df19 --- /dev/null +++ b/PowerUp/Keychain/KeychainService.swift @@ -0,0 +1,32 @@ +// +// KeychainService.swift +// PowerUp +// +// Created by Hank Gu on 11/12/23. +// + +import Foundation +import SwiftKeychainWrapper + +class KeychainService { + static let tokenKey = "authToken" + + static func saveToken(_ token: String) { + let saved = KeychainWrapper.standard.set(token, forKey: tokenKey) + if !saved { + print("Failed to save token to keychain") + } + } + + static func loadToken() -> String? { + let token = KeychainWrapper.standard.string(forKey: tokenKey) + return token + } + + static func deleteToken() { + let removed = KeychainWrapper.standard.removeObject(forKey: tokenKey) + if !removed { + print("Failed to remove token from keychain") + } + } +} diff --git a/PowerUp/ProfileScreen/ProfileScreenView.swift b/PowerUp/ProfileScreen/LoginView.swift similarity index 99% rename from PowerUp/ProfileScreen/ProfileScreenView.swift rename to PowerUp/ProfileScreen/LoginView.swift index adc3f97..56785ab 100644 --- a/PowerUp/ProfileScreen/ProfileScreenView.swift +++ b/PowerUp/ProfileScreen/LoginView.swift @@ -1,5 +1,5 @@ // -// ProfileScreenView.swift +// LoginView.swift // PowerUp // // Created by Dingbang Chen on 10/2/23. @@ -7,7 +7,7 @@ import UIKit -class ProfileScreenView: UIView { +class LoginView: UIView { var startView: UIView! var midView:UIView! var userNameLabel: UILabel! diff --git a/PowerUp/ProfileScreen/ProfileScreenController.swift b/PowerUp/ProfileScreen/LoginViewController.swift similarity index 85% rename from PowerUp/ProfileScreen/ProfileScreenController.swift rename to PowerUp/ProfileScreen/LoginViewController.swift index 7fed53d..7ff2948 100644 --- a/PowerUp/ProfileScreen/ProfileScreenController.swift +++ b/PowerUp/ProfileScreen/LoginViewController.swift @@ -8,10 +8,10 @@ import UIKit import FirebaseAuth class ProfileScreenController: UIViewController { - let profileScreen = ProfileScreenView() + let loginView = LoginView() override func loadView() { - view = profileScreen + view = loginView } func alert(message:String){ @@ -49,9 +49,9 @@ class ProfileScreenController: UIViewController { } override func viewDidLoad() { - super.viewDidLoad() - profileScreen.loginButton.addTarget(self, action: #selector(onButtonSigninTapped), for: .touchUpInside) - profileScreen.registerButton.addTarget(self, action: #selector(onButtonRegisterTapped), for: .touchUpInside) + super.viewDidLoad() + loginView.loginButton.addTarget(self, action: #selector(onButtonSigninTapped), for: .touchUpInside) + loginView.registerButton.addTarget(self, action: #selector(onButtonRegisterTapped), for: .touchUpInside) } @objc func onButtonRegisterTapped(){ @@ -60,8 +60,8 @@ class ProfileScreenController: UIViewController { } @objc func onButtonSigninTapped(){ - guard let email = profileScreen.userNameTextField.text, !email.isEmpty, - let password = profileScreen.passWordTextField.text, !password.isEmpty else{ + guard let email = loginView.userNameTextField.text, !email.isEmpty, + let password = loginView.passWordTextField.text, !password.isEmpty else{ alert(message: "Please fill all fields") return } diff --git a/PowerUp/ProfileScreen/ProfileView.swift b/PowerUp/ProfileScreen/ProfileView.swift new file mode 100644 index 0000000..0a11588 --- /dev/null +++ b/PowerUp/ProfileScreen/ProfileView.swift @@ -0,0 +1,20 @@ +// +// ProfileView.swift +// PowerUp +// +// Created by Hank Gu on 11/10/23. +// + +import UIKit + +class ProfileView: UIView { + + /* + // Only override draw() if you perform custom drawing. + // An empty implementation adversely affects performance during animation. + override func draw(_ rect: CGRect) { + // Drawing code + } + */ + +} diff --git a/PowerUp/ProfileScreen/ProfileViewController.swift b/PowerUp/ProfileScreen/ProfileViewController.swift new file mode 100644 index 0000000..8cd8db8 --- /dev/null +++ b/PowerUp/ProfileScreen/ProfileViewController.swift @@ -0,0 +1,29 @@ +// +// ProfileViewController.swift +// PowerUp +// +// Created by Hank Gu on 11/10/23. +// + +import UIKit + +class ProfileViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/PowerUp/UserService/UserService.swift b/PowerUp/UserService/UserService.swift new file mode 100644 index 0000000..c71feca --- /dev/null +++ b/PowerUp/UserService/UserService.swift @@ -0,0 +1,8 @@ +// +// UserService.swift +// PowerUp +// +// Created by Hank Gu on 11/13/23. +// + +import Foundation From f967f3b375df57edfbf0c3fd66bd1bdcd8158e07 Mon Sep 17 00:00:00 2001 From: Yucheng Date: Mon, 13 Nov 2023 18:57:37 -0500 Subject: [PATCH 40/71] Login/Logout & Json updates --- .DS_Store | Bin 6148 -> 8196 bytes Podfile | 20 + Podfile.lock | 16 + Pods/Manifest.lock | 16 + Pods/Pods.xcodeproj/project.pbxproj | 976 ++++++++++++++++++ .../Pods-PowerUp-PowerUpUITests.xcscheme | 58 ++ .../xcschemes/Pods-PowerUp.xcscheme | 58 ++ .../xcschemes/Pods-PowerUpTests.xcscheme | 58 ++ .../xcschemes/SwiftKeychainWrapper.xcscheme | 58 ++ .../xcschemes/xcschememanagement.plist | 39 + Pods/SwiftKeychainWrapper/LICENSE | 22 + Pods/SwiftKeychainWrapper/README.md | 226 ++++ .../KeychainItemAccessibility.swift | 123 +++ .../KeychainWrapper.swift | 460 +++++++++ .../KeychainWrapperSubscript.swift | 164 +++ .../SwiftKeychainWrapper.h | 37 + .../Pods-PowerUp-PowerUpUITests-Info.plist | 26 + ...p-PowerUpUITests-acknowledgements.markdown | 29 + ...erUp-PowerUpUITests-acknowledgements.plist | 61 ++ .../Pods-PowerUp-PowerUpUITests-dummy.m | 5 + ...ts-frameworks-Debug-input-files.xcfilelist | 2 + ...s-frameworks-Debug-output-files.xcfilelist | 1 + ...-frameworks-Release-input-files.xcfilelist | 2 + ...frameworks-Release-output-files.xcfilelist | 1 + .../Pods-PowerUp-PowerUpUITests-frameworks.sh | 186 ++++ .../Pods-PowerUp-PowerUpUITests-umbrella.h | 16 + ...Pods-PowerUp-PowerUpUITests.debug.xcconfig | 15 + .../Pods-PowerUp-PowerUpUITests.modulemap | 6 + ...ds-PowerUp-PowerUpUITests.release.xcconfig | 15 + .../Pods-PowerUp/Pods-PowerUp-Info.plist | 26 + .../Pods-PowerUp-acknowledgements.markdown | 29 + .../Pods-PowerUp-acknowledgements.plist | 61 ++ .../Pods-PowerUp/Pods-PowerUp-dummy.m | 5 + ...Up-frameworks-Debug-input-files.xcfilelist | 2 + ...p-frameworks-Debug-output-files.xcfilelist | 1 + ...-frameworks-Release-input-files.xcfilelist | 2 + ...frameworks-Release-output-files.xcfilelist | 1 + .../Pods-PowerUp/Pods-PowerUp-frameworks.sh | 186 ++++ .../Pods-PowerUp/Pods-PowerUp-umbrella.h | 16 + .../Pods-PowerUp/Pods-PowerUp.debug.xcconfig | 15 + .../Pods-PowerUp/Pods-PowerUp.modulemap | 6 + .../Pods-PowerUp.release.xcconfig | 15 + .../Pods-PowerUpTests-Info.plist | 26 + ...ods-PowerUpTests-acknowledgements.markdown | 3 + .../Pods-PowerUpTests-acknowledgements.plist | 29 + .../Pods-PowerUpTests-dummy.m | 5 + .../Pods-PowerUpTests-umbrella.h | 16 + .../Pods-PowerUpTests.debug.xcconfig | 11 + .../Pods-PowerUpTests.modulemap | 6 + .../Pods-PowerUpTests.release.xcconfig | 11 + .../SwiftKeychainWrapper-Info.plist | 26 + .../SwiftKeychainWrapper-dummy.m | 5 + .../SwiftKeychainWrapper-prefix.pch | 12 + .../SwiftKeychainWrapper-umbrella.h | 17 + .../SwiftKeychainWrapper.debug.xcconfig | 14 + .../SwiftKeychainWrapper.modulemap | 6 + .../SwiftKeychainWrapper.release.xcconfig | 14 + PowerUp.xcodeproj/project.pbxproj | 208 +++- .../xcshareddata/swiftpm/Package.resolved | 113 ++ .../UserInterfaceState.xcuserstate | Bin 0 -> 67609 bytes .../xcschemes/xcschememanagement.plist | 2 +- PowerUp.xcworkspace/contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/swiftpm/Package.resolved | 113 ++ .../UserInterfaceState.xcuserstate | Bin 0 -> 91210 bytes .../xcschemes/xcschememanagement.plist | 30 + .../ProfileScreen/LoginViewController.swift | 106 +- PowerUp/ProfileScreen/ProfileView.swift | 93 +- .../ProfileScreen/ProfileViewController.swift | 112 +- PowerUp/ProfileScreen/RegisterView.swift | 15 +- .../RegisterViewController.swift | 29 +- PowerUp/SceneDelegate.swift | 12 +- PowerUp/UserService/UserService.swift | 45 + PowerUp/ViewController.swift | 47 +- 74 files changed, 4102 insertions(+), 103 deletions(-) create mode 100644 Podfile create mode 100644 Podfile.lock create mode 100644 Pods/Manifest.lock create mode 100644 Pods/Pods.xcodeproj/project.pbxproj create mode 100644 Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/Pods-PowerUp-PowerUpUITests.xcscheme create mode 100644 Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/Pods-PowerUp.xcscheme create mode 100644 Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/Pods-PowerUpTests.xcscheme create mode 100644 Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/SwiftKeychainWrapper.xcscheme create mode 100644 Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Pods/SwiftKeychainWrapper/LICENSE create mode 100644 Pods/SwiftKeychainWrapper/README.md create mode 100644 Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/KeychainItemAccessibility.swift create mode 100644 Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/KeychainWrapper.swift create mode 100644 Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/KeychainWrapperSubscript.swift create mode 100644 Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/SwiftKeychainWrapper.h create mode 100644 Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-Info.plist create mode 100644 Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.markdown create mode 100644 Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.plist create mode 100644 Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-dummy.m create mode 100644 Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-input-files.xcfilelist create mode 100644 Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-output-files.xcfilelist create mode 100644 Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-input-files.xcfilelist create mode 100644 Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-output-files.xcfilelist create mode 100755 Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh create mode 100644 Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-umbrella.h create mode 100644 Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.debug.xcconfig create mode 100644 Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.modulemap create mode 100644 Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.release.xcconfig create mode 100644 Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-Info.plist create mode 100644 Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.markdown create mode 100644 Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.plist create mode 100644 Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-dummy.m create mode 100644 Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-input-files.xcfilelist create mode 100644 Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-output-files.xcfilelist create mode 100644 Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-input-files.xcfilelist create mode 100644 Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-output-files.xcfilelist create mode 100755 Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh create mode 100644 Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-umbrella.h create mode 100644 Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.debug.xcconfig create mode 100644 Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.modulemap create mode 100644 Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.release.xcconfig create mode 100644 Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-Info.plist create mode 100644 Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-acknowledgements.markdown create mode 100644 Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-acknowledgements.plist create mode 100644 Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-dummy.m create mode 100644 Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-umbrella.h create mode 100644 Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.debug.xcconfig create mode 100644 Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.modulemap create mode 100644 Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.release.xcconfig create mode 100644 Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-Info.plist create mode 100644 Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-dummy.m create mode 100644 Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-prefix.pch create mode 100644 Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-umbrella.h create mode 100644 Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.debug.xcconfig create mode 100644 Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.modulemap create mode 100644 Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.release.xcconfig create mode 100644 PowerUp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 PowerUp.xcodeproj/project.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 PowerUp.xcworkspace/contents.xcworkspacedata create mode 100644 PowerUp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 PowerUp.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 PowerUp.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 PowerUp.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/.DS_Store b/.DS_Store index e2afb4b4bcdb68e368abe5ad45da028890f90667..83e7098ff6c07f24c2a6fa73fadb20c442e2bbd3 100644 GIT binary patch delta 484 zcmZoMXmOBWU|?W$DortDU;r^WfEYvza8E20o2aKKDg=@T@);OX8H!VilXH^t^K&)} za)_~PR^aGmUd+zHF|mO~AEb4w3{`MCukEes6v_5cYYb>`-~ zxFqG|CjoVE++{FY&0c@h5v04GIE!=hQ?P0$PIo~Dva>G$?PcJB>YN9JkK0v0Ixi3SO5S3 delta 169 zcmZp1XfcprU|?W$DortDU=RQ@Ie-{Mvv5r;6q~50D9R0z2a6RkgfbL(=Hw?Q>M0|%s^9tKmcUAE6BEuh2NPc^UHXG>}FtsxC7)ghRyLjbC>}QAS3Sp diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..80e5466 --- /dev/null +++ b/Podfile @@ -0,0 +1,20 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + +target 'PowerUp' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! +pod 'SwiftKeychainWrapper' + + # Pods for PowerUp + + target 'PowerUpTests' do + inherit! :search_paths + # Pods for testing + end + + target 'PowerUpUITests' do + # Pods for testing + end + +end diff --git a/Podfile.lock b/Podfile.lock new file mode 100644 index 0000000..2159622 --- /dev/null +++ b/Podfile.lock @@ -0,0 +1,16 @@ +PODS: + - SwiftKeychainWrapper (4.0.1) + +DEPENDENCIES: + - SwiftKeychainWrapper + +SPEC REPOS: + trunk: + - SwiftKeychainWrapper + +SPEC CHECKSUMS: + SwiftKeychainWrapper: 807ba1d63c33a7d0613288512399cd1eda1e470c + +PODFILE CHECKSUM: c35529dbf1ff04b85c8f9b84db4ba78205552aec + +COCOAPODS: 1.13.0 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock new file mode 100644 index 0000000..2159622 --- /dev/null +++ b/Pods/Manifest.lock @@ -0,0 +1,16 @@ +PODS: + - SwiftKeychainWrapper (4.0.1) + +DEPENDENCIES: + - SwiftKeychainWrapper + +SPEC REPOS: + trunk: + - SwiftKeychainWrapper + +SPEC CHECKSUMS: + SwiftKeychainWrapper: 807ba1d63c33a7d0613288512399cd1eda1e470c + +PODFILE CHECKSUM: c35529dbf1ff04b85c8f9b84db4ba78205552aec + +COCOAPODS: 1.13.0 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..2506489 --- /dev/null +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,976 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 0272D6846A167EEC137A317C66834826 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 07614D85DCD9D7B87465D2B994687E4A /* Pods-PowerUp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 650702400DD5901F8FD11DF994E6059A /* Pods-PowerUp-dummy.m */; }; + 0D2C829DBA4D94629A8BF045009E4C35 /* Pods-PowerUp-PowerUpUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2172621237EFED83C5F5A9F0900D5985 /* Pods-PowerUp-PowerUpUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F2BBE5F52608DEFCD764C78EC1E8679 /* Pods-PowerUpTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 972353E978D4231D0CDCA0CC128B02EB /* Pods-PowerUpTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2C3FBDBB0815930AE6D237D3132F7AB5 /* SwiftKeychainWrapper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD3B183F2B832E75AB78E4306742985 /* SwiftKeychainWrapper-dummy.m */; }; + 2DD2A44F4FD88FC7541A5A9CDB746688 /* SwiftKeychainWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = E50C46D8B59DEC0895EBC924E7E1F9AB /* SwiftKeychainWrapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4D5CAB203E46FDEFC5FF48A820B5CA43 /* KeychainWrapperSubscript.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17BC4ECF36B8D66C3A362BC3659967B /* KeychainWrapperSubscript.swift */; }; + 547687992E274F060AFB78025F553417 /* Pods-PowerUp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5799AB139A3F217F8AAFD6540536FCAF /* Pods-PowerUp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DEF962A6FB9C877A2D287D17FAF5A82 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 70EFC12046DD9F05B22463011AF4331F /* Pods-PowerUpTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EC416C491B6447A2AA20146F11C9669 /* Pods-PowerUpTests-dummy.m */; }; + AB199F4BD1188875FF9F6C5D47B910A8 /* Pods-PowerUp-PowerUpUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AF43FB23EC51B14469480C982F04B647 /* Pods-PowerUp-PowerUpUITests-dummy.m */; }; + D005939236F0DC4DE94D3162E4A21E6B /* KeychainItemAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 401FEAAE1F19BDC26BAF62CC7FA30A96 /* KeychainItemAccessibility.swift */; }; + DBBF7B5297187AD91D0B5646B6F22B22 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + E7D976091250A09655570BD888AAEFFC /* KeychainWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5AE5E9472BF525BD3E705261568E5199 /* KeychainWrapper.swift */; }; + ECD03F70BD29FA94C00C61CE232B3F33 /* SwiftKeychainWrapper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E305D3EE71B912A8108E1C1BA65FF413 /* SwiftKeychainWrapper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2C295BC641A64853FE36228606A3294 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 7FF4A995E002779358F3588BA8B85632 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CF903DF43E111410ECA0C288D36FA21A; + remoteInfo = SwiftKeychainWrapper; + }; + E5923715BA81933D2B5D19E94983FD31 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CF903DF43E111410ECA0C288D36FA21A; + remoteInfo = SwiftKeychainWrapper; + }; + EAAB9904C3CFE6B994B2B1A92832E618 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 476C0C98426C94FADFD4DC33EB76D8C6; + remoteInfo = "Pods-PowerUp"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 1252F15C4CC5A8510EAF429278FA450C /* Pods-PowerUp-PowerUpUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUp-PowerUpUITests-acknowledgements.plist"; sourceTree = ""; }; + 1EC416C491B6447A2AA20146F11C9669 /* Pods-PowerUpTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PowerUpTests-dummy.m"; sourceTree = ""; }; + 20ED28AFC324E7BA448DDE811B42E07A /* Pods-PowerUpTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUpTests-Info.plist"; sourceTree = ""; }; + 2172621237EFED83C5F5A9F0900D5985 /* Pods-PowerUp-PowerUpUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PowerUp-PowerUpUITests-umbrella.h"; sourceTree = ""; }; + 26E7827087DAE0521FFF44871D80C93D /* Pods-PowerUp-PowerUpUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUp-PowerUpUITests.release.xcconfig"; sourceTree = ""; }; + 401FEAAE1F19BDC26BAF62CC7FA30A96 /* KeychainItemAccessibility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainItemAccessibility.swift; path = SwiftKeychainWrapper/KeychainItemAccessibility.swift; sourceTree = ""; }; + 4CC410D60E3A2F9C7804E1F95777CD87 /* Pods-PowerUp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUp.debug.xcconfig"; sourceTree = ""; }; + 4CD3B183F2B832E75AB78E4306742985 /* SwiftKeychainWrapper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftKeychainWrapper-dummy.m"; sourceTree = ""; }; + 5069D199AB328CCD047E61C632CD7C32 /* SwiftKeychainWrapper */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SwiftKeychainWrapper; path = SwiftKeychainWrapper.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5493DA2643AEE06347105DD54F8F1DEB /* Pods-PowerUp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUp-Info.plist"; sourceTree = ""; }; + 5799AB139A3F217F8AAFD6540536FCAF /* Pods-PowerUp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PowerUp-umbrella.h"; sourceTree = ""; }; + 59B06BB0F43DC8FBF64B9611F232B23A /* Pods-PowerUp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PowerUp-acknowledgements.markdown"; sourceTree = ""; }; + 5AE5E9472BF525BD3E705261568E5199 /* KeychainWrapper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainWrapper.swift; path = SwiftKeychainWrapper/KeychainWrapper.swift; sourceTree = ""; }; + 5B3A3D886C7912CFE90B065772A6E5A1 /* Pods-PowerUpTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUpTests.release.xcconfig"; sourceTree = ""; }; + 5CFB04FEB4458AA699A90B3398293537 /* SwiftKeychainWrapper.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftKeychainWrapper.debug.xcconfig; sourceTree = ""; }; + 650702400DD5901F8FD11DF994E6059A /* Pods-PowerUp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PowerUp-dummy.m"; sourceTree = ""; }; + 65BC23A8E471ADB39AD491B1C32ED7E0 /* Pods-PowerUp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PowerUp.modulemap"; sourceTree = ""; }; + 66A1EC832952C8C8FD3F4346A2B74B4A /* SwiftKeychainWrapper-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SwiftKeychainWrapper-Info.plist"; sourceTree = ""; }; + 679BBBA92C4FF3D6180AEFCA12AF3175 /* Pods-PowerUp-PowerUpUITests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-PowerUp-PowerUpUITests"; path = Pods_PowerUp_PowerUpUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 772F9BBE013EF6AC8847DE2546BFA2AE /* Pods-PowerUpTests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-PowerUpTests"; path = Pods_PowerUpTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 972353E978D4231D0CDCA0CC128B02EB /* Pods-PowerUpTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PowerUpTests-umbrella.h"; sourceTree = ""; }; + 9AAB23B833496B2179F485E868A6AEF1 /* Pods-PowerUp-PowerUpUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUp-PowerUpUITests-Info.plist"; sourceTree = ""; }; + 9D18E990689473A176C8D659C67BD1F7 /* Pods-PowerUp-PowerUpUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUp-PowerUpUITests.debug.xcconfig"; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A36803CFE10823E1BB3DF4C229313EA3 /* Pods-PowerUp-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PowerUp-frameworks.sh"; sourceTree = ""; }; + A9306E425980F66DE0C0046983B85279 /* Pods-PowerUp-PowerUpUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PowerUp-PowerUpUITests-frameworks.sh"; sourceTree = ""; }; + AF43FB23EC51B14469480C982F04B647 /* Pods-PowerUp-PowerUpUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PowerUp-PowerUpUITests-dummy.m"; sourceTree = ""; }; + AF488A977815A1B45CDC7E94AAF1DEEC /* SwiftKeychainWrapper-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftKeychainWrapper-prefix.pch"; sourceTree = ""; }; + AF8B2DB8F0273F86A3C6D79515BB355E /* Pods-PowerUpTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUpTests-acknowledgements.plist"; sourceTree = ""; }; + B11240D995CC8BD3DDA123EBFE4D84B4 /* Pods-PowerUp-PowerUpUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PowerUp-PowerUpUITests.modulemap"; sourceTree = ""; }; + C268C0BFFA51D313317A1F7AA7AFFD0B /* Pods-PowerUp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUp.release.xcconfig"; sourceTree = ""; }; + CB6998EF9CAA7E4E97DF1BDAD9830594 /* Pods-PowerUp-PowerUpUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PowerUp-PowerUpUITests-acknowledgements.markdown"; sourceTree = ""; }; + CBD2CEE5F2964AC0CE867488CC8182E4 /* Pods-PowerUpTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUpTests.debug.xcconfig"; sourceTree = ""; }; + CE916E32CFDEC602C6355B08E0C91172 /* Pods-PowerUpTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PowerUpTests.modulemap"; sourceTree = ""; }; + D17BC4ECF36B8D66C3A362BC3659967B /* KeychainWrapperSubscript.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainWrapperSubscript.swift; path = SwiftKeychainWrapper/KeychainWrapperSubscript.swift; sourceTree = ""; }; + D5A73AF4313CEA92639EE1587D70071C /* Pods-PowerUpTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PowerUpTests-acknowledgements.markdown"; sourceTree = ""; }; + E05A6FC530DC5A853665D015CB29AECE /* SwiftKeychainWrapper.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SwiftKeychainWrapper.modulemap; sourceTree = ""; }; + E27C4C7ACE0148581B517150932720A7 /* Pods-PowerUp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUp-acknowledgements.plist"; sourceTree = ""; }; + E305D3EE71B912A8108E1C1BA65FF413 /* SwiftKeychainWrapper-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftKeychainWrapper-umbrella.h"; sourceTree = ""; }; + E50C46D8B59DEC0895EBC924E7E1F9AB /* SwiftKeychainWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SwiftKeychainWrapper.h; path = SwiftKeychainWrapper/SwiftKeychainWrapper.h; sourceTree = ""; }; + EF9D370359AADCA0963C43618AAB128C /* SwiftKeychainWrapper.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftKeychainWrapper.release.xcconfig; sourceTree = ""; }; + F03057FCFD9F5F71152527521E9027EC /* Pods-PowerUp */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-PowerUp"; path = Pods_PowerUp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 00A74AC852615C495503161E0E619575 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DBBF7B5297187AD91D0B5646B6F22B22 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 22CB76324A659B721744816B6E55CF2E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F2C295BC641A64853FE36228606A3294 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 91F0D5CBEDAC43958EE0CEF085E3DE7C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6DEF962A6FB9C877A2D287D17FAF5A82 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EB3FBADEC20FB915CA5DD8E3082ED82D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0272D6846A167EEC137A317C66834826 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4D648058B24BD4A367AD82ADF04F7334 /* Products */ = { + isa = PBXGroup; + children = ( + F03057FCFD9F5F71152527521E9027EC /* Pods-PowerUp */, + 679BBBA92C4FF3D6180AEFCA12AF3175 /* Pods-PowerUp-PowerUpUITests */, + 772F9BBE013EF6AC8847DE2546BFA2AE /* Pods-PowerUpTests */, + 5069D199AB328CCD047E61C632CD7C32 /* SwiftKeychainWrapper */, + ); + name = Products; + sourceTree = ""; + }; + 4D9253D8D9382E21E72D01A5076FF530 /* Pods */ = { + isa = PBXGroup; + children = ( + FD889C92A54761B6B2F24356812B3E85 /* SwiftKeychainWrapper */, + ); + name = Pods; + sourceTree = ""; + }; + 578452D2E740E91742655AC8F1636D1F /* iOS */ = { + isa = PBXGroup; + children = ( + 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 8339E1BBEBD173FAED5C487DB4BB8B16 /* Pods-PowerUp-PowerUpUITests */ = { + isa = PBXGroup; + children = ( + B11240D995CC8BD3DDA123EBFE4D84B4 /* Pods-PowerUp-PowerUpUITests.modulemap */, + CB6998EF9CAA7E4E97DF1BDAD9830594 /* Pods-PowerUp-PowerUpUITests-acknowledgements.markdown */, + 1252F15C4CC5A8510EAF429278FA450C /* Pods-PowerUp-PowerUpUITests-acknowledgements.plist */, + AF43FB23EC51B14469480C982F04B647 /* Pods-PowerUp-PowerUpUITests-dummy.m */, + A9306E425980F66DE0C0046983B85279 /* Pods-PowerUp-PowerUpUITests-frameworks.sh */, + 9AAB23B833496B2179F485E868A6AEF1 /* Pods-PowerUp-PowerUpUITests-Info.plist */, + 2172621237EFED83C5F5A9F0900D5985 /* Pods-PowerUp-PowerUpUITests-umbrella.h */, + 9D18E990689473A176C8D659C67BD1F7 /* Pods-PowerUp-PowerUpUITests.debug.xcconfig */, + 26E7827087DAE0521FFF44871D80C93D /* Pods-PowerUp-PowerUpUITests.release.xcconfig */, + ); + name = "Pods-PowerUp-PowerUpUITests"; + path = "Target Support Files/Pods-PowerUp-PowerUpUITests"; + sourceTree = ""; + }; + A08ADDFF3C3B9C41728475272F9D3110 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + B93B662E7C5B49A2DE655D0F436030DC /* Pods-PowerUp */, + 8339E1BBEBD173FAED5C487DB4BB8B16 /* Pods-PowerUp-PowerUpUITests */, + FCBF9056CDB8BC2272F0139F69226933 /* Pods-PowerUpTests */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + B93B662E7C5B49A2DE655D0F436030DC /* Pods-PowerUp */ = { + isa = PBXGroup; + children = ( + 65BC23A8E471ADB39AD491B1C32ED7E0 /* Pods-PowerUp.modulemap */, + 59B06BB0F43DC8FBF64B9611F232B23A /* Pods-PowerUp-acknowledgements.markdown */, + E27C4C7ACE0148581B517150932720A7 /* Pods-PowerUp-acknowledgements.plist */, + 650702400DD5901F8FD11DF994E6059A /* Pods-PowerUp-dummy.m */, + A36803CFE10823E1BB3DF4C229313EA3 /* Pods-PowerUp-frameworks.sh */, + 5493DA2643AEE06347105DD54F8F1DEB /* Pods-PowerUp-Info.plist */, + 5799AB139A3F217F8AAFD6540536FCAF /* Pods-PowerUp-umbrella.h */, + 4CC410D60E3A2F9C7804E1F95777CD87 /* Pods-PowerUp.debug.xcconfig */, + C268C0BFFA51D313317A1F7AA7AFFD0B /* Pods-PowerUp.release.xcconfig */, + ); + name = "Pods-PowerUp"; + path = "Target Support Files/Pods-PowerUp"; + sourceTree = ""; + }; + CF1408CF629C7361332E53B88F7BD30C = { + isa = PBXGroup; + children = ( + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, + 4D9253D8D9382E21E72D01A5076FF530 /* Pods */, + 4D648058B24BD4A367AD82ADF04F7334 /* Products */, + A08ADDFF3C3B9C41728475272F9D3110 /* Targets Support Files */, + ); + sourceTree = ""; + }; + D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 578452D2E740E91742655AC8F1636D1F /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + DBF7F7D339302EBCE551E5A9B4185871 /* Support Files */ = { + isa = PBXGroup; + children = ( + E05A6FC530DC5A853665D015CB29AECE /* SwiftKeychainWrapper.modulemap */, + 4CD3B183F2B832E75AB78E4306742985 /* SwiftKeychainWrapper-dummy.m */, + 66A1EC832952C8C8FD3F4346A2B74B4A /* SwiftKeychainWrapper-Info.plist */, + AF488A977815A1B45CDC7E94AAF1DEEC /* SwiftKeychainWrapper-prefix.pch */, + E305D3EE71B912A8108E1C1BA65FF413 /* SwiftKeychainWrapper-umbrella.h */, + 5CFB04FEB4458AA699A90B3398293537 /* SwiftKeychainWrapper.debug.xcconfig */, + EF9D370359AADCA0963C43618AAB128C /* SwiftKeychainWrapper.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/SwiftKeychainWrapper"; + sourceTree = ""; + }; + FCBF9056CDB8BC2272F0139F69226933 /* Pods-PowerUpTests */ = { + isa = PBXGroup; + children = ( + CE916E32CFDEC602C6355B08E0C91172 /* Pods-PowerUpTests.modulemap */, + D5A73AF4313CEA92639EE1587D70071C /* Pods-PowerUpTests-acknowledgements.markdown */, + AF8B2DB8F0273F86A3C6D79515BB355E /* Pods-PowerUpTests-acknowledgements.plist */, + 1EC416C491B6447A2AA20146F11C9669 /* Pods-PowerUpTests-dummy.m */, + 20ED28AFC324E7BA448DDE811B42E07A /* Pods-PowerUpTests-Info.plist */, + 972353E978D4231D0CDCA0CC128B02EB /* Pods-PowerUpTests-umbrella.h */, + CBD2CEE5F2964AC0CE867488CC8182E4 /* Pods-PowerUpTests.debug.xcconfig */, + 5B3A3D886C7912CFE90B065772A6E5A1 /* Pods-PowerUpTests.release.xcconfig */, + ); + name = "Pods-PowerUpTests"; + path = "Target Support Files/Pods-PowerUpTests"; + sourceTree = ""; + }; + FD889C92A54761B6B2F24356812B3E85 /* SwiftKeychainWrapper */ = { + isa = PBXGroup; + children = ( + 401FEAAE1F19BDC26BAF62CC7FA30A96 /* KeychainItemAccessibility.swift */, + 5AE5E9472BF525BD3E705261568E5199 /* KeychainWrapper.swift */, + D17BC4ECF36B8D66C3A362BC3659967B /* KeychainWrapperSubscript.swift */, + E50C46D8B59DEC0895EBC924E7E1F9AB /* SwiftKeychainWrapper.h */, + DBF7F7D339302EBCE551E5A9B4185871 /* Support Files */, + ); + name = SwiftKeychainWrapper; + path = SwiftKeychainWrapper; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 47DF431299F5533BADE3F84774744A23 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 1F2BBE5F52608DEFCD764C78EC1E8679 /* Pods-PowerUpTests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6E603BD614FD31DA57FA8027F716A86C /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 0D2C829DBA4D94629A8BF045009E4C35 /* Pods-PowerUp-PowerUpUITests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D6D165C86D36000927731AD958BE21C1 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 2DD2A44F4FD88FC7541A5A9CDB746688 /* SwiftKeychainWrapper.h in Headers */, + ECD03F70BD29FA94C00C61CE232B3F33 /* SwiftKeychainWrapper-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FBB395F5595FFB1574D37811B63D637D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 547687992E274F060AFB78025F553417 /* Pods-PowerUp-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 0F2CB9A420AD8C96C4D1FBF4C5EF1765 /* Pods-PowerUpTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 02224ADC04379E8BD887A9F4F0BABC29 /* Build configuration list for PBXNativeTarget "Pods-PowerUpTests" */; + buildPhases = ( + 47DF431299F5533BADE3F84774744A23 /* Headers */, + 1A27E16D6412FD77D012C3AD48769194 /* Sources */, + 22CB76324A659B721744816B6E55CF2E /* Frameworks */, + 7DFDEDB8F7C9C14EA8E9B989CC3A8A32 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 64EBA2121ECDBF413D142965A39DD8CF /* PBXTargetDependency */, + ); + name = "Pods-PowerUpTests"; + productName = Pods_PowerUpTests; + productReference = 772F9BBE013EF6AC8847DE2546BFA2AE /* Pods-PowerUpTests */; + productType = "com.apple.product-type.framework"; + }; + 476C0C98426C94FADFD4DC33EB76D8C6 /* Pods-PowerUp */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6B1F7265710333447E2CEB4F5FF884D2 /* Build configuration list for PBXNativeTarget "Pods-PowerUp" */; + buildPhases = ( + FBB395F5595FFB1574D37811B63D637D /* Headers */, + 826FF3B5ACCEF1A2DBCE332BD1DCF97D /* Sources */, + 91F0D5CBEDAC43958EE0CEF085E3DE7C /* Frameworks */, + 122644D5D9C6AF8BD5E74FF32EAED0E6 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 56AEDD89908895815DDEDE897F6D7F5E /* PBXTargetDependency */, + ); + name = "Pods-PowerUp"; + productName = Pods_PowerUp; + productReference = F03057FCFD9F5F71152527521E9027EC /* Pods-PowerUp */; + productType = "com.apple.product-type.framework"; + }; + BD9088F68E61A657A20A13CB25D1959F /* Pods-PowerUp-PowerUpUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4C6E917C739BB17DE52DAA78FF093A08 /* Build configuration list for PBXNativeTarget "Pods-PowerUp-PowerUpUITests" */; + buildPhases = ( + 6E603BD614FD31DA57FA8027F716A86C /* Headers */, + 1E1F7C72E7A6E78869F0E54FC70A578A /* Sources */, + 00A74AC852615C495503161E0E619575 /* Frameworks */, + C03BBF88A505EAC85F7E171B82C7BF08 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 7D2A98A800DF929849B3C4216BEF1DDC /* PBXTargetDependency */, + ); + name = "Pods-PowerUp-PowerUpUITests"; + productName = Pods_PowerUp_PowerUpUITests; + productReference = 679BBBA92C4FF3D6180AEFCA12AF3175 /* Pods-PowerUp-PowerUpUITests */; + productType = "com.apple.product-type.framework"; + }; + CF903DF43E111410ECA0C288D36FA21A /* SwiftKeychainWrapper */ = { + isa = PBXNativeTarget; + buildConfigurationList = 98BCB2F8FCBF8621114310D5DB4657DB /* Build configuration list for PBXNativeTarget "SwiftKeychainWrapper" */; + buildPhases = ( + D6D165C86D36000927731AD958BE21C1 /* Headers */, + 796B4A55654BBB6FE852AAB7A60EE625 /* Sources */, + EB3FBADEC20FB915CA5DD8E3082ED82D /* Frameworks */, + C43BC878A5CB5CE6C59FF13F0DF23FA9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SwiftKeychainWrapper; + productName = SwiftKeychainWrapper; + productReference = 5069D199AB328CCD047E61C632CD7C32 /* SwiftKeychainWrapper */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1500; + LastUpgradeCheck = 1500; + }; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = 4D648058B24BD4A367AD82ADF04F7334 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 476C0C98426C94FADFD4DC33EB76D8C6 /* Pods-PowerUp */, + BD9088F68E61A657A20A13CB25D1959F /* Pods-PowerUp-PowerUpUITests */, + 0F2CB9A420AD8C96C4D1FBF4C5EF1765 /* Pods-PowerUpTests */, + CF903DF43E111410ECA0C288D36FA21A /* SwiftKeychainWrapper */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 122644D5D9C6AF8BD5E74FF32EAED0E6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7DFDEDB8F7C9C14EA8E9B989CC3A8A32 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C03BBF88A505EAC85F7E171B82C7BF08 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C43BC878A5CB5CE6C59FF13F0DF23FA9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1A27E16D6412FD77D012C3AD48769194 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 70EFC12046DD9F05B22463011AF4331F /* Pods-PowerUpTests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1E1F7C72E7A6E78869F0E54FC70A578A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AB199F4BD1188875FF9F6C5D47B910A8 /* Pods-PowerUp-PowerUpUITests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 796B4A55654BBB6FE852AAB7A60EE625 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D005939236F0DC4DE94D3162E4A21E6B /* KeychainItemAccessibility.swift in Sources */, + E7D976091250A09655570BD888AAEFFC /* KeychainWrapper.swift in Sources */, + 4D5CAB203E46FDEFC5FF48A820B5CA43 /* KeychainWrapperSubscript.swift in Sources */, + 2C3FBDBB0815930AE6D237D3132F7AB5 /* SwiftKeychainWrapper-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 826FF3B5ACCEF1A2DBCE332BD1DCF97D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 07614D85DCD9D7B87465D2B994687E4A /* Pods-PowerUp-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 56AEDD89908895815DDEDE897F6D7F5E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SwiftKeychainWrapper; + target = CF903DF43E111410ECA0C288D36FA21A /* SwiftKeychainWrapper */; + targetProxy = E5923715BA81933D2B5D19E94983FD31 /* PBXContainerItemProxy */; + }; + 64EBA2121ECDBF413D142965A39DD8CF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-PowerUp"; + target = 476C0C98426C94FADFD4DC33EB76D8C6 /* Pods-PowerUp */; + targetProxy = EAAB9904C3CFE6B994B2B1A92832E618 /* PBXContainerItemProxy */; + }; + 7D2A98A800DF929849B3C4216BEF1DDC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SwiftKeychainWrapper; + target = CF903DF43E111410ECA0C288D36FA21A /* SwiftKeychainWrapper */; + targetProxy = 7FF4A995E002779358F3588BA8B85632 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 364058F34052B510799909B8A39752FC /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C268C0BFFA51D313317A1F7AA7AFFD0B /* Pods-PowerUp.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 7C3FBC45C4966EFE20583918767EFBE2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 804DD9C25D0996EF250B91D21E9610B3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9D18E990689473A176C8D659C67BD1F7 /* Pods-PowerUp-PowerUpUITests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 8CD241342938F54A20E875C2AE5904F6 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5CFB04FEB4458AA699A90B3398293537 /* SwiftKeychainWrapper.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.modulemap"; + PRODUCT_MODULE_NAME = SwiftKeychainWrapper; + PRODUCT_NAME = SwiftKeychainWrapper; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9322A5CCEF7FCE5A9C959A95D8DAF382 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CBD2CEE5F2964AC0CE867488CC8182E4 /* Pods-PowerUpTests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 986CA13C16CB2180B15C7439E2C71672 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EF9D370359AADCA0963C43618AAB128C /* SwiftKeychainWrapper.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.modulemap"; + PRODUCT_MODULE_NAME = SwiftKeychainWrapper; + PRODUCT_NAME = SwiftKeychainWrapper; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 9CC7F73A2050297B5C7B565DBB54531A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5B3A3D886C7912CFE90B065772A6E5A1 /* Pods-PowerUpTests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + A32D88EC2118B4C374A03C8CAF4C151C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4CC410D60E3A2F9C7804E1F95777CD87 /* Pods-PowerUp.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + DD45638C9002ABF1C42831C7DC0878AD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 26E7827087DAE0521FFF44871D80C93D /* Pods-PowerUp-PowerUpUITests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + FF0A36149038A192FFD678E1D4A40D3B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 02224ADC04379E8BD887A9F4F0BABC29 /* Build configuration list for PBXNativeTarget "Pods-PowerUpTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9322A5CCEF7FCE5A9C959A95D8DAF382 /* Debug */, + 9CC7F73A2050297B5C7B565DBB54531A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7C3FBC45C4966EFE20583918767EFBE2 /* Debug */, + FF0A36149038A192FFD678E1D4A40D3B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4C6E917C739BB17DE52DAA78FF093A08 /* Build configuration list for PBXNativeTarget "Pods-PowerUp-PowerUpUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 804DD9C25D0996EF250B91D21E9610B3 /* Debug */, + DD45638C9002ABF1C42831C7DC0878AD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6B1F7265710333447E2CEB4F5FF884D2 /* Build configuration list for PBXNativeTarget "Pods-PowerUp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A32D88EC2118B4C374A03C8CAF4C151C /* Debug */, + 364058F34052B510799909B8A39752FC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 98BCB2F8FCBF8621114310D5DB4657DB /* Build configuration list for PBXNativeTarget "SwiftKeychainWrapper" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8CD241342938F54A20E875C2AE5904F6 /* Debug */, + 986CA13C16CB2180B15C7439E2C71672 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; +} diff --git a/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/Pods-PowerUp-PowerUpUITests.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/Pods-PowerUp-PowerUpUITests.xcscheme new file mode 100644 index 0000000..993539a --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/Pods-PowerUp-PowerUpUITests.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/Pods-PowerUp.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/Pods-PowerUp.xcscheme new file mode 100644 index 0000000..a7548b3 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/Pods-PowerUp.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/Pods-PowerUpTests.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/Pods-PowerUpTests.xcscheme new file mode 100644 index 0000000..af243a5 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/Pods-PowerUpTests.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/SwiftKeychainWrapper.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/SwiftKeychainWrapper.xcscheme new file mode 100644 index 0000000..a67fe8e --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/SwiftKeychainWrapper.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..0dfca25 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,39 @@ + + + + + SchemeUserState + + Pods-PowerUp-PowerUpUITests.xcscheme + + isShown + + orderHint + 1 + + Pods-PowerUp.xcscheme + + isShown + + orderHint + 0 + + Pods-PowerUpTests.xcscheme + + isShown + + orderHint + 2 + + SwiftKeychainWrapper.xcscheme + + isShown + + orderHint + 3 + + + SuppressBuildableAutocreation + + + diff --git a/Pods/SwiftKeychainWrapper/LICENSE b/Pods/SwiftKeychainWrapper/LICENSE new file mode 100644 index 0000000..82d694d --- /dev/null +++ b/Pods/SwiftKeychainWrapper/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2014 Jason Rendel + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/Pods/SwiftKeychainWrapper/README.md b/Pods/SwiftKeychainWrapper/README.md new file mode 100644 index 0000000..9846c04 --- /dev/null +++ b/Pods/SwiftKeychainWrapper/README.md @@ -0,0 +1,226 @@ +# SwiftKeychainWrapper + +A simple wrapper for the iOS / tvOS Keychain to allow you to use it in a similar fashion to User Defaults. Written in Swift. + +Provides singleton instance that is setup to work for most needs. Use `KeychainWrapper.standard` to access the singleton instance. + +If you need to customize the keychain access to use a custom identifier or access group, you can create your own instance instead of using the singleton instance. + +By default, the Keychain Wrapper saves data as a Generic Password type in the iOS Keychain. It saves items such that they can only be accessed when the app is unlocked and open. If you are not familiar with the iOS Keychain usage, this provides a safe default for using the keychain. + +Users that want to deviate from this default implementation, now can do so in version 2.0 and up. Each request to save/read a key value now allows you to specify the keychain accessibility for that key. + +## General Usage + +Add a string value to keychain: +``` swift +let saveSuccessful: Bool = KeychainWrapper.standard.set("Some String", forKey: "myKey") +``` + +Retrieve a string value from keychain: +``` swift +let retrievedString: String? = KeychainWrapper.standard.string(forKey: "myKey") +``` + +Remove a string value from keychain: +``` swift +let removeSuccessful: Bool = KeychainWrapper.standard.removeObject(forKey: "myKey") +``` + +## Custom Instance + +When the Keychain Wrapper is used, all keys are linked to a common identifier for your app, called the service name. By default this uses your main bundle identifier. However, you may also change it, or store multiple items to the keychain under different identifiers. + +To share keychain items between your applications, you may specify an access group and use that same access group in each application. + +To set a custom service name identifier or access group, you may now create your own instance of the keychain wrapper as follows: + +``` swift +let uniqueServiceName = "customServiceName" +let uniqueAccessGroup = "sharedAccessGroupName" +let customKeychainWrapperInstance = KeychainWrapper(serviceName: uniqueServiceName, accessGroup: uniqueAccessGroup) +``` +The custom instance can then be used in place of the shared instance or static accessors: + +``` swift +let saveSuccessful: Bool = customKeychainWrapperInstance.set("Some String", forKey: "myKey") + +let retrievedString: String? = customKeychainWrapperInstance.string(forKey: "myKey") + +let removeSuccessful: Bool = customKeychainWrapperInstance.removeObject(forKey: "myKey") +``` + +## Subscript usage + +Keychain can also be accessed with subscript as it is in dictionary. Keys can be predefined and listed in one place for convenience. + +Firstly, let's define the key to use later. + +``` swift +extension KeychainWrapper.Key { + static let myKey: KeychainWrapper.Key = "myKey" +} +``` + +And now we can use this key as follows: + +``` swift +KeychainWrapper.standard[.myKey] = "some string" + +let myValue: String? = KeychainWrapper.standard[.myKey] + +KeychainWrapper.standard.remove(forKey: .myKey) + +``` + + +## Accessibility Options + +By default, all items saved to keychain can only be accessed when the device is unlocked. To change this accessibility, an optional `withAccessibility` param can be set on all requests. The enum `KeychainItemAccessibilty` provides an easy way to select the accessibility level desired: + +``` swift +KeychainWrapper.standard.set("Some String", forKey: "myKey", withAccessibility: .AfterFirstUnlock) +``` + +## Synchronizable Option + +By default, all items saved to keychain are not synchronizable, so they are not synced with the iCloud. To change this, an `isSynchronizable` bool param can be set on all requests. You need the item to be synchronized with the iCloud if you want to have it on all of your devices: + +``` swift +KeychainWrapper.standard.set("Some String", forKey: "myKey", isSynchronizable: true) +``` + +**Important:** You can't modify value for key if it was previously set with different accessibility option. Remove the value for key and set it with new accessibility option. (Otherwise the value will not change). +For example: +``` swift +KeychainWrapper.standard.set("String one", forKey: "myKey", withAccessibility: .AfterFirstUnlock) +KeychainWrapper.standard.removeObject(forKey: "myKey") +KeychainWrapper.standard.set("String two", forKey: "myKey", withAccessibility: .Always) +``` + +## Installation + +#### CocoaPods +You can use [CocoaPods](http://cocoapods.org/) to install SwiftKeychainWrapper by adding it to your `Podfile`: + +``` ruby +use_frameworks! +platform :ios, '8.0' + +target 'target_name' do + pod 'SwiftKeychainWrapper' +end +``` + +To use the keychain wrapper in your app, import SwiftKeychainWrapper into the file(s) where you want to use it. + +``` swift +import SwiftKeychainWrapper +``` + +#### Carthage +You can use [Carthage](https://github.com/Carthage/Carthage) to install SwiftKeychainWrapper by adding it to your `Cartfile`. + +Swift 3.0: +``` +github "jrendel/SwiftKeychainWrapper" ~> 3.0 +``` + +Swift 2.3: +``` +github "jrendel/SwiftKeychainWrapper" == 2.1.1 +``` + +#### Swift Package Manager +You can use [Swift Package Manager](https://swift.org/package-manager/) to install SwiftKeychainWrapper using Xcode: + +1. Open your project in Xcode + +2. Click "File" -> "Swift Packages" -> "Add Package Dependency..." + +3. Paste the following URL: https://github.com/jrendel/SwiftKeychainWrapper + +4. Click "Next" -> "Next" -> "Finish" + + +#### Manually +Download and drop ```KeychainWrapper.swift``` and ```KeychainItemAcessibility.swift``` into your project. + + +## Release History + +* 4.1 +Added conditional logic for CGFloat accessories for when package is used where CGFloat is not available + +* 4.0 +Updated with SPM support and other community PRs. Minimum iOS version is now 9.0. + +* 3.4 +* Changed how Swift version is defined for CocoaPods + +* 3.3 +* Updates for Swift 5.0 and Xcode 10.2 + +* 3.2 +* Updates for Swift 4.2 and Xcode 10 + +* 3.1 + * Updates for Swift 3.1 + +* 3.0.1 + * Added a host app for the unit tests to get around the issue with keychain access not working the same on iOS 10 simulators + * Minor update to readme instructions + +* 3.0 + * Swift 3.0 update. Contains breaking API changes. 2.2.0 and 2.2.1 are now rolled into 3.0 + +* 2.2.1 (Removed from Cocoapods) + * Syntax updates to be more Swift 3 like + +* 2.2 (Removed from Cocoapods) + * Updated to support Swift 3.0 + * Remove deprecated functions (static access) + +* 2.1 + * Updated to support Swift 2.3 + +* 2.0 + * Further changes to more closely align the API with how `NSUserDefaults` works. Access to the default implementation is now done through a singleton instance. Static accessors have been included that wrap this shared instance to maintain backwards compatibility. These will be removed in the next update + * Ability to change keychain service name identifier and access group on the shared instance has been deprecated. Users now have the ability to create their own instance of the keychain if they want to customize these. + * Addtional options have been provided to alter the keychain accessibility for each key value saved. + +* 1.0.11 + * Update for Swift 2.0 + +* 1.0.10 + * Update License info. Merged Pull Request with Carthage support. + +* 1.0.8 + * Update for Swift 1.2 + +* 1.0.7 + * Determined that once provisioned correctly for access groups, using KeychainWrapper on the simulator with access groups works. So I removed the simulator related check and unit tests previously added. + +* 1.0.6 + * Support for Access Groups + * SwiftKeychainWrapperExample has been updated to show usage with an Access Group: https://github.com/jrendel/SwiftKeychainWrapperExample + + * Access Groups do not work on the simulator. Apps that are built for the simulator aren't signed, so there's no keychain access group for the simulator to check. This means that all apps can see all keychain items when run on the simulator. Attempting to set an access group will result in a failure when attempting to Add or Update keychain items. Because of this, the Keychain Wrapper detects if it is being using on a simulator and will not set an access group property if one is set. This allows the Keychain Wrapper to still be used on the simulator for development of your app. To properly test Keychain Access Groups, you will need to test on a device. + +* 1.0.5 + * This version converts the project to a proper Swift Framework and adds a podspec file to be compatible with the latest CocoaPods pre-release, which now supports Swift. + + * To see an example of usage with CocoaPods, I've created the repo SwiftKeychainWrapperExample: https://github.com/jrendel/SwiftKeychainWrapperExample + +* 1.0.2 + * Updated for Xcode 6.1 + +--- + +I've been using an Objective-C based wrapper in my own projects for the past couple years. The original library I wrote for myself was based on the following tutorial: + +http://www.raywenderlich.com/6475/basic-security-in-ios-5-tutorial-part-1 + +This is a rewrite of that code in Swift. + +[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) diff --git a/Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/KeychainItemAccessibility.swift b/Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/KeychainItemAccessibility.swift new file mode 100644 index 0000000..c0f51a6 --- /dev/null +++ b/Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/KeychainItemAccessibility.swift @@ -0,0 +1,123 @@ +// +// KeychainOptions.swift +// SwiftKeychainWrapper +// +// Created by James Blair on 4/24/16. +// Copyright © 2016 Jason Rendel. All rights reserved. +// +// The MIT License (MIT) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +import Foundation + +protocol KeychainAttrRepresentable { + var keychainAttrValue: CFString { get } +} + +// MARK: - KeychainItemAccessibility +public enum KeychainItemAccessibility { + /** + The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user. + + After the first unlock, the data remains accessible until the next restart. This is recommended for items that need to be accessed by background applications. Items with this attribute migrate to a new device when using encrypted backups. + */ + @available(iOS 4, *) + case afterFirstUnlock + + /** + The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user. + + After the first unlock, the data remains accessible until the next restart. This is recommended for items that need to be accessed by background applications. Items with this attribute do not migrate to a new device. Thus, after restoring from a backup of a different device, these items will not be present. + */ + @available(iOS 4, *) + case afterFirstUnlockThisDeviceOnly + + /** + The data in the keychain item can always be accessed regardless of whether the device is locked. + + This is not recommended for application use. Items with this attribute migrate to a new device when using encrypted backups. + */ + @available(iOS 4, *) + case always + + /** + The data in the keychain can only be accessed when the device is unlocked. Only available if a passcode is set on the device. + + This is recommended for items that only need to be accessible while the application is in the foreground. Items with this attribute never migrate to a new device. After a backup is restored to a new device, these items are missing. No items can be stored in this class on devices without a passcode. Disabling the device passcode causes all items in this class to be deleted. + */ + @available(iOS 8, *) + case whenPasscodeSetThisDeviceOnly + + /** + The data in the keychain item can always be accessed regardless of whether the device is locked. + + This is not recommended for application use. Items with this attribute do not migrate to a new device. Thus, after restoring from a backup of a different device, these items will not be present. + */ + @available(iOS 4, *) + case alwaysThisDeviceOnly + + /** + The data in the keychain item can be accessed only while the device is unlocked by the user. + + This is recommended for items that need to be accessible only while the application is in the foreground. Items with this attribute migrate to a new device when using encrypted backups. + + This is the default value for keychain items added without explicitly setting an accessibility constant. + */ + @available(iOS 4, *) + case whenUnlocked + + /** + The data in the keychain item can be accessed only while the device is unlocked by the user. + + This is recommended for items that need to be accessible only while the application is in the foreground. Items with this attribute do not migrate to a new device. Thus, after restoring from a backup of a different device, these items will not be present. + */ + @available(iOS 4, *) + case whenUnlockedThisDeviceOnly + + static func accessibilityForAttributeValue(_ keychainAttrValue: CFString) -> KeychainItemAccessibility? { + for (key, value) in keychainItemAccessibilityLookup { + if value == keychainAttrValue { + return key + } + } + + return nil + } +} + +private let keychainItemAccessibilityLookup: [KeychainItemAccessibility:CFString] = { + var lookup: [KeychainItemAccessibility:CFString] = [ + .afterFirstUnlock: kSecAttrAccessibleAfterFirstUnlock, + .afterFirstUnlockThisDeviceOnly: kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly, + .always: kSecAttrAccessibleAlways, + .whenPasscodeSetThisDeviceOnly: kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, + .alwaysThisDeviceOnly : kSecAttrAccessibleAlwaysThisDeviceOnly, + .whenUnlocked: kSecAttrAccessibleWhenUnlocked, + .whenUnlockedThisDeviceOnly: kSecAttrAccessibleWhenUnlockedThisDeviceOnly + ] + + return lookup +}() + +extension KeychainItemAccessibility : KeychainAttrRepresentable { + internal var keychainAttrValue: CFString { + return keychainItemAccessibilityLookup[self]! + } +} diff --git a/Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/KeychainWrapper.swift b/Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/KeychainWrapper.swift new file mode 100644 index 0000000..7254086 --- /dev/null +++ b/Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/KeychainWrapper.swift @@ -0,0 +1,460 @@ +// +// KeychainWrapper.swift +// KeychainWrapper +// +// Created by Jason Rendel on 9/23/14. +// Copyright (c) 2014 Jason Rendel. All rights reserved. +// +// The MIT License (MIT) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +import Foundation + + +private let SecMatchLimit: String! = kSecMatchLimit as String +private let SecReturnData: String! = kSecReturnData as String +private let SecReturnPersistentRef: String! = kSecReturnPersistentRef as String +private let SecValueData: String! = kSecValueData as String +private let SecAttrAccessible: String! = kSecAttrAccessible as String +private let SecClass: String! = kSecClass as String +private let SecAttrService: String! = kSecAttrService as String +private let SecAttrGeneric: String! = kSecAttrGeneric as String +private let SecAttrAccount: String! = kSecAttrAccount as String +private let SecAttrAccessGroup: String! = kSecAttrAccessGroup as String +private let SecReturnAttributes: String = kSecReturnAttributes as String +private let SecAttrSynchronizable: String = kSecAttrSynchronizable as String + +/// KeychainWrapper is a class to help make Keychain access in Swift more straightforward. It is designed to make accessing the Keychain services more like using NSUserDefaults, which is much more familiar to people. +open class KeychainWrapper { + + @available(*, deprecated, message: "KeychainWrapper.defaultKeychainWrapper is deprecated since version 2.2.1, use KeychainWrapper.standard instead") + public static let defaultKeychainWrapper = KeychainWrapper.standard + + /// Default keychain wrapper access + public static let standard = KeychainWrapper() + + /// ServiceName is used for the kSecAttrService property to uniquely identify this keychain accessor. If no service name is specified, KeychainWrapper will default to using the bundleIdentifier. + private (set) public var serviceName: String + + /// AccessGroup is used for the kSecAttrAccessGroup property to identify which Keychain Access Group this entry belongs to. This allows you to use the KeychainWrapper with shared keychain access between different applications. + private (set) public var accessGroup: String? + + private static let defaultServiceName: String = { + return Bundle.main.bundleIdentifier ?? "SwiftKeychainWrapper" + }() + + private convenience init() { + self.init(serviceName: KeychainWrapper.defaultServiceName) + } + + /// Create a custom instance of KeychainWrapper with a custom Service Name and optional custom access group. + /// + /// - parameter serviceName: The ServiceName for this instance. Used to uniquely identify all keys stored using this keychain wrapper instance. + /// - parameter accessGroup: Optional unique AccessGroup for this instance. Use a matching AccessGroup between applications to allow shared keychain access. + public init(serviceName: String, accessGroup: String? = nil) { + self.serviceName = serviceName + self.accessGroup = accessGroup + } + + // MARK:- Public Methods + + /// Checks if keychain data exists for a specified key. + /// + /// - parameter forKey: The key to check for. + /// - parameter withAccessibility: Optional accessibility to use when retrieving the keychain item. + /// - parameter isSynchronizable: A bool that describes if the item should be synchronizable, to be synched with the iCloud. If none is provided, will default to false + /// - returns: True if a value exists for the key. False otherwise. + open func hasValue(forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Bool { + if let _ = data(forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) { + return true + } else { + return false + } + } + + open func accessibilityOfKey(_ key: String) -> KeychainItemAccessibility? { + var keychainQueryDictionary = setupKeychainQueryDictionary(forKey: key) + + // Remove accessibility attribute + keychainQueryDictionary.removeValue(forKey: SecAttrAccessible) + + // Limit search results to one + keychainQueryDictionary[SecMatchLimit] = kSecMatchLimitOne + + // Specify we want SecAttrAccessible returned + keychainQueryDictionary[SecReturnAttributes] = kCFBooleanTrue + + // Search + var result: AnyObject? + let status = SecItemCopyMatching(keychainQueryDictionary as CFDictionary, &result) + + guard status == noErr, let resultsDictionary = result as? [String:AnyObject], let accessibilityAttrValue = resultsDictionary[SecAttrAccessible] as? String else { + return nil + } + + return KeychainItemAccessibility.accessibilityForAttributeValue(accessibilityAttrValue as CFString) + } + + /// Get the keys of all keychain entries matching the current ServiceName and AccessGroup if one is set. + open func allKeys() -> Set { + var keychainQueryDictionary: [String:Any] = [ + SecClass: kSecClassGenericPassword, + SecAttrService: serviceName, + SecReturnAttributes: kCFBooleanTrue!, + SecMatchLimit: kSecMatchLimitAll, + ] + + if let accessGroup = self.accessGroup { + keychainQueryDictionary[SecAttrAccessGroup] = accessGroup + } + + var result: AnyObject? + let status = SecItemCopyMatching(keychainQueryDictionary as CFDictionary, &result) + + guard status == errSecSuccess else { return [] } + + var keys = Set() + if let results = result as? [[AnyHashable: Any]] { + for attributes in results { + if let accountData = attributes[SecAttrAccount] as? Data, + let key = String(data: accountData, encoding: String.Encoding.utf8) { + keys.insert(key) + } else if let accountData = attributes[kSecAttrAccount] as? Data, + let key = String(data: accountData, encoding: String.Encoding.utf8) { + keys.insert(key) + } + } + } + return keys + } + + // MARK: Public Getters + + open func integer(forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Int? { + guard let numberValue = object(forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) as? NSNumber else { + return nil + } + + return numberValue.intValue + } + + open func float(forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Float? { + guard let numberValue = object(forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) as? NSNumber else { + return nil + } + + return numberValue.floatValue + } + + open func double(forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Double? { + guard let numberValue = object(forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) as? NSNumber else { + return nil + } + + return numberValue.doubleValue + } + + open func bool(forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Bool? { + guard let numberValue = object(forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) as? NSNumber else { + return nil + } + + return numberValue.boolValue + } + + /// Returns a string value for a specified key. + /// + /// - parameter forKey: The key to lookup data for. + /// - parameter withAccessibility: Optional accessibility to use when retrieving the keychain item. + /// - parameter isSynchronizable: A bool that describes if the item should be synchronizable, to be synched with the iCloud. If none is provided, will default to false + /// - returns: The String associated with the key if it exists. If no data exists, or the data found cannot be encoded as a string, returns nil. + open func string(forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> String? { + guard let keychainData = data(forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) else { + return nil + } + + return String(data: keychainData, encoding: String.Encoding.utf8) as String? + } + + /// Returns an object that conforms to NSCoding for a specified key. + /// + /// - parameter forKey: The key to lookup data for. + /// - parameter withAccessibility: Optional accessibility to use when retrieving the keychain item. + /// - parameter isSynchronizable: A bool that describes if the item should be synchronizable, to be synched with the iCloud. If none is provided, will default to false + /// - returns: The decoded object associated with the key if it exists. If no data exists, or the data found cannot be decoded, returns nil. + open func object(forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> NSCoding? { + guard let keychainData = data(forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) else { + return nil + } + + return NSKeyedUnarchiver.unarchiveObject(with: keychainData) as? NSCoding + } + + + /// Returns a Data object for a specified key. + /// + /// - parameter forKey: The key to lookup data for. + /// - parameter withAccessibility: Optional accessibility to use when retrieving the keychain item. + /// - parameter isSynchronizable: A bool that describes if the item should be synchronizable, to be synched with the iCloud. If none is provided, will default to false + /// - returns: The Data object associated with the key if it exists. If no data exists, returns nil. + open func data(forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Data? { + var keychainQueryDictionary = setupKeychainQueryDictionary(forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) + + // Limit search results to one + keychainQueryDictionary[SecMatchLimit] = kSecMatchLimitOne + + // Specify we want Data/CFData returned + keychainQueryDictionary[SecReturnData] = kCFBooleanTrue + + // Search + var result: AnyObject? + let status = SecItemCopyMatching(keychainQueryDictionary as CFDictionary, &result) + + return status == noErr ? result as? Data : nil + } + + + /// Returns a persistent data reference object for a specified key. + /// + /// - parameter forKey: The key to lookup data for. + /// - parameter withAccessibility: Optional accessibility to use when retrieving the keychain item. + /// - parameter isSynchronizable: A bool that describes if the item should be synchronizable, to be synched with the iCloud. If none is provided, will default to false + /// - returns: The persistent data reference object associated with the key if it exists. If no data exists, returns nil. + open func dataRef(forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Data? { + var keychainQueryDictionary = setupKeychainQueryDictionary(forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) + + // Limit search results to one + keychainQueryDictionary[SecMatchLimit] = kSecMatchLimitOne + + // Specify we want persistent Data/CFData reference returned + keychainQueryDictionary[SecReturnPersistentRef] = kCFBooleanTrue + + // Search + var result: AnyObject? + let status = SecItemCopyMatching(keychainQueryDictionary as CFDictionary, &result) + + return status == noErr ? result as? Data : nil + } + + // MARK: Public Setters + + @discardableResult open func set(_ value: Int, forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Bool { + return set(NSNumber(value: value), forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) + } + + @discardableResult open func set(_ value: Float, forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Bool { + return set(NSNumber(value: value), forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) + } + + @discardableResult open func set(_ value: Double, forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Bool { + return set(NSNumber(value: value), forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) + } + + @discardableResult open func set(_ value: Bool, forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Bool { + return set(NSNumber(value: value), forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) + } + + /// Save a String value to the keychain associated with a specified key. If a String value already exists for the given key, the string will be overwritten with the new value. + /// + /// - parameter value: The String value to save. + /// - parameter forKey: The key to save the String under. + /// - parameter withAccessibility: Optional accessibility to use when setting the keychain item. + /// - parameter isSynchronizable: A bool that describes if the item should be synchronizable, to be synched with the iCloud. If none is provided, will default to false + /// - returns: True if the save was successful, false otherwise. + @discardableResult open func set(_ value: String, forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Bool { + if let data = value.data(using: .utf8) { + return set(data, forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) + } else { + return false + } + } + + /// Save an NSCoding compliant object to the keychain associated with a specified key. If an object already exists for the given key, the object will be overwritten with the new value. + /// + /// - parameter value: The NSCoding compliant object to save. + /// - parameter forKey: The key to save the object under. + /// - parameter withAccessibility: Optional accessibility to use when setting the keychain item. + /// - parameter isSynchronizable: A bool that describes if the item should be synchronizable, to be synched with the iCloud. If none is provided, will default to false + /// - returns: True if the save was successful, false otherwise. + @discardableResult open func set(_ value: NSCoding, forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Bool { + let data = NSKeyedArchiver.archivedData(withRootObject: value) + + return set(data, forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) + } + + /// Save a Data object to the keychain associated with a specified key. If data already exists for the given key, the data will be overwritten with the new value. + /// + /// - parameter value: The Data object to save. + /// - parameter forKey: The key to save the object under. + /// - parameter withAccessibility: Optional accessibility to use when setting the keychain item. + /// - parameter isSynchronizable: A bool that describes if the item should be synchronizable, to be synched with the iCloud. If none is provided, will default to false + /// - returns: True if the save was successful, false otherwise. + @discardableResult open func set(_ value: Data, forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Bool { + var keychainQueryDictionary: [String:Any] = setupKeychainQueryDictionary(forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) + + keychainQueryDictionary[SecValueData] = value + + if let accessibility = accessibility { + keychainQueryDictionary[SecAttrAccessible] = accessibility.keychainAttrValue + } else { + // Assign default protection - Protect the keychain entry so it's only valid when the device is unlocked + keychainQueryDictionary[SecAttrAccessible] = KeychainItemAccessibility.whenUnlocked.keychainAttrValue + } + + let status: OSStatus = SecItemAdd(keychainQueryDictionary as CFDictionary, nil) + + if status == errSecSuccess { + return true + } else if status == errSecDuplicateItem { + return update(value, forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) + } else { + return false + } + } + + @available(*, deprecated, message: "remove is deprecated since version 2.2.1, use removeObject instead") + @discardableResult open func remove(key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Bool { + return removeObject(forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) + } + + /// Remove an object associated with a specified key. If re-using a key but with a different accessibility, first remove the previous key value using removeObjectForKey(:withAccessibility) using the same accessibilty it was saved with. + /// + /// - parameter forKey: The key value to remove data for. + /// - parameter withAccessibility: Optional accessibility level to use when looking up the keychain item. + /// - parameter isSynchronizable: A bool that describes if the item should be synchronizable, to be synched with the iCloud. If none is provided, will default to false + /// - returns: True if successful, false otherwise. + @discardableResult open func removeObject(forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Bool { + let keychainQueryDictionary: [String:Any] = setupKeychainQueryDictionary(forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) + + // Delete + let status: OSStatus = SecItemDelete(keychainQueryDictionary as CFDictionary) + + if status == errSecSuccess { + return true + } else { + return false + } + } + + /// Remove all keychain data added through KeychainWrapper. This will only delete items matching the currnt ServiceName and AccessGroup if one is set. + @discardableResult open func removeAllKeys() -> Bool { + // Setup dictionary to access keychain and specify we are using a generic password (rather than a certificate, internet password, etc) + var keychainQueryDictionary: [String:Any] = [SecClass:kSecClassGenericPassword] + + // Uniquely identify this keychain accessor + keychainQueryDictionary[SecAttrService] = serviceName + + // Set the keychain access group if defined + if let accessGroup = self.accessGroup { + keychainQueryDictionary[SecAttrAccessGroup] = accessGroup + } + + let status: OSStatus = SecItemDelete(keychainQueryDictionary as CFDictionary) + + if status == errSecSuccess { + return true + } else { + return false + } + } + + /// Remove all keychain data, including data not added through keychain wrapper. + /// + /// - Warning: This may remove custom keychain entries you did not add via SwiftKeychainWrapper. + /// + open class func wipeKeychain() { + deleteKeychainSecClass(kSecClassGenericPassword) // Generic password items + deleteKeychainSecClass(kSecClassInternetPassword) // Internet password items + deleteKeychainSecClass(kSecClassCertificate) // Certificate items + deleteKeychainSecClass(kSecClassKey) // Cryptographic key items + deleteKeychainSecClass(kSecClassIdentity) // Identity items + } + + // MARK:- Private Methods + + /// Remove all items for a given Keychain Item Class + /// + /// + @discardableResult private class func deleteKeychainSecClass(_ secClass: AnyObject) -> Bool { + let query = [SecClass: secClass] + let status: OSStatus = SecItemDelete(query as CFDictionary) + + if status == errSecSuccess { + return true + } else { + return false + } + } + + /// Update existing data associated with a specified key name. The existing data will be overwritten by the new data. + private func update(_ value: Data, forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> Bool { + var keychainQueryDictionary: [String:Any] = setupKeychainQueryDictionary(forKey: key, withAccessibility: accessibility, isSynchronizable: isSynchronizable) + let updateDictionary = [SecValueData:value] + + // on update, only set accessibility if passed in + if let accessibility = accessibility { + keychainQueryDictionary[SecAttrAccessible] = accessibility.keychainAttrValue + } + + // Update + let status: OSStatus = SecItemUpdate(keychainQueryDictionary as CFDictionary, updateDictionary as CFDictionary) + + if status == errSecSuccess { + return true + } else { + return false + } + } + + /// Setup the keychain query dictionary used to access the keychain on iOS for a specified key name. Takes into account the Service Name and Access Group if one is set. + /// + /// - parameter forKey: The key this query is for + /// - parameter withAccessibility: Optional accessibility to use when setting the keychain item. If none is provided, will default to .WhenUnlocked + /// - parameter isSynchronizable: A bool that describes if the item should be synchronizable, to be synched with the iCloud. If none is provided, will default to false + /// - returns: A dictionary with all the needed properties setup to access the keychain on iOS + private func setupKeychainQueryDictionary(forKey key: String, withAccessibility accessibility: KeychainItemAccessibility? = nil, isSynchronizable: Bool = false) -> [String:Any] { + // Setup default access as generic password (rather than a certificate, internet password, etc) + var keychainQueryDictionary: [String:Any] = [SecClass:kSecClassGenericPassword] + + // Uniquely identify this keychain accessor + keychainQueryDictionary[SecAttrService] = serviceName + + // Only set accessibiilty if its passed in, we don't want to default it here in case the user didn't want it set + if let accessibility = accessibility { + keychainQueryDictionary[SecAttrAccessible] = accessibility.keychainAttrValue + } + + // Set the keychain access group if defined + if let accessGroup = self.accessGroup { + keychainQueryDictionary[SecAttrAccessGroup] = accessGroup + } + + // Uniquely identify the account who will be accessing the keychain + let encodedIdentifier: Data? = key.data(using: String.Encoding.utf8) + + keychainQueryDictionary[SecAttrGeneric] = encodedIdentifier + + keychainQueryDictionary[SecAttrAccount] = encodedIdentifier + + keychainQueryDictionary[SecAttrSynchronizable] = isSynchronizable ? kCFBooleanTrue : kCFBooleanFalse + + return keychainQueryDictionary + } +} diff --git a/Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/KeychainWrapperSubscript.swift b/Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/KeychainWrapperSubscript.swift new file mode 100644 index 0000000..4465718 --- /dev/null +++ b/Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/KeychainWrapperSubscript.swift @@ -0,0 +1,164 @@ +// +// KeychainWrapperSubscript.swift +// SwiftKeychainWrapper +// +// Created by Vato Kostava on 5/10/20. +// Copyright © 2020 Jason Rendel. All rights reserved. +// + +import Foundation + +#if canImport(CoreGraphics) +import CoreGraphics +#endif + +public extension KeychainWrapper { + + func remove(forKey key: Key) { + removeObject(forKey: key.rawValue) + } + +} + +public extension KeychainWrapper { + + subscript(key: Key) -> String? { + get { return string(forKey: key) } + set { + guard let value = newValue else { return } + set(value, forKey: key.rawValue) + } + } + + subscript(key: Key) -> Bool? { + get { return bool(forKey: key) } + set { + guard let value = newValue else { return } + set(value, forKey: key.rawValue) + } + } + + subscript(key: Key) -> Int? { + get { return integer(forKey: key) } + set { + guard let value = newValue else { return } + set(value, forKey: key.rawValue) + } + } + + subscript(key: Key) -> Double? { + get { return double(forKey: key) } + set { + guard let value = newValue else { return } + set(value, forKey: key.rawValue) + } + } + + subscript(key: Key) -> Float? { + get { return float(forKey: key) } + set { + guard let value = newValue else { return } + set(value, forKey: key.rawValue) + } + } + + #if canImport(CoreGraphics) + subscript(key: Key) -> CGFloat? { + get { return cgFloat(forKey: key) } + set { + guard let cgValue = newValue else { return } + let value = Float(cgValue) + set(value, forKey: key.rawValue) + } + } + #endif + + subscript(key: Key) -> Data? { + get { return data(forKey: key) } + set { + guard let value = newValue else { return } + set(value, forKey: key.rawValue) + } + } + +} + + +public extension KeychainWrapper { + + func data(forKey key: Key) -> Data? { + if let value = data(forKey: key.rawValue) { + return value + } + return nil + } + + func bool(forKey key: Key) -> Bool? { + if let value = bool(forKey: key.rawValue) { + return value + } + + return nil + } + + func integer(forKey key: Key) -> Int? { + if let value = integer(forKey: key.rawValue) { + return value + } + + return nil + } + + func float(forKey key: Key) -> Float? { + if let value = float(forKey: key.rawValue) { + return value + } + + return nil + } + + #if canImport(CoreGraphics) + func cgFloat(forKey key: Key) -> CGFloat? { + if let value = float(forKey: key) { + return CGFloat(value) + } + + return nil + } + #endif + + func double(forKey key: Key) -> Double? { + if let value = double(forKey: key.rawValue) { + return value + } + + return nil + } + + func string(forKey key: Key) -> String? { + if let value = string(forKey: key.rawValue) { + return value + } + + return nil + } + +} + + +public extension KeychainWrapper { + + struct Key: Hashable, RawRepresentable, ExpressibleByStringLiteral { + + public var rawValue: String + + public init(rawValue: String) { + self.rawValue = rawValue + } + + public init(stringLiteral value: String) { + self.rawValue = value + } + } + +} diff --git a/Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/SwiftKeychainWrapper.h b/Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/SwiftKeychainWrapper.h new file mode 100644 index 0000000..128c4d9 --- /dev/null +++ b/Pods/SwiftKeychainWrapper/SwiftKeychainWrapper/SwiftKeychainWrapper.h @@ -0,0 +1,37 @@ +// +// SwiftKeychainWrapper.h +// SwiftKeychainWrapper +// +// Created by Jason Rendel on 1/13/15. +// Copyright (c) 2014 Jason Rendel. All rights reserved. +// +// The MIT License (MIT) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +#import + +//! Project version number for SwiftKeychainWrapper. +FOUNDATION_EXPORT double SwiftKeychainWrapperVersionNumber; + +//! Project version string for SwiftKeychainWrapper. +FOUNDATION_EXPORT const unsigned char SwiftKeychainWrapperVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-Info.plist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-Info.plist new file mode 100644 index 0000000..19cf209 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.markdown b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.markdown new file mode 100644 index 0000000..bbf4a83 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.markdown @@ -0,0 +1,29 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## SwiftKeychainWrapper + +The MIT License (MIT) + +Copyright (c) 2014 Jason Rendel + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.plist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.plist new file mode 100644 index 0000000..59dde5e --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.plist @@ -0,0 +1,61 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2014 Jason Rendel + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + License + MIT + Title + SwiftKeychainWrapper + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-dummy.m b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-dummy.m new file mode 100644 index 0000000..2000493 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_PowerUp_PowerUpUITests : NSObject +@end +@implementation PodsDummy_Pods_PowerUp_PowerUpUITests +@end diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-input-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-input-files.xcfilelist new file mode 100644 index 0000000..08ccc11 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-input-files.xcfilelist @@ -0,0 +1,2 @@ +${PODS_ROOT}/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh +${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-output-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-output-files.xcfilelist new file mode 100644 index 0000000..6edc35e --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-output-files.xcfilelist @@ -0,0 +1 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-input-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-input-files.xcfilelist new file mode 100644 index 0000000..08ccc11 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-input-files.xcfilelist @@ -0,0 +1,2 @@ +${PODS_ROOT}/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh +${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-output-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-output-files.xcfilelist new file mode 100644 index 0000000..6edc35e --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-output-files.xcfilelist @@ -0,0 +1 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh new file mode 100755 index 0000000..ee40200 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh @@ -0,0 +1,186 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" +SWIFT_STDLIB_PATH="${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +BCSYMBOLMAP_DIR="BCSymbolMaps" + + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink -f "${source}")" + fi + + if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then + # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied + find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do + echo "Installing $f" + install_bcsymbolmap "$f" "$destination" + rm "$f" + done + rmdir "${source}/${BCSYMBOLMAP_DIR}" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + elif [ -L "${binary}" ]; then + echo "Destination binary is symlinked..." + dirname="$(dirname "${binary}")" + binary="${dirname}/$(readlink "${binary}")" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + warn_missing_arch=${2:-true} + if [ -r "$source" ]; then + # Copy the dSYM into the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .dSYM "$source")" + binary_name="$(ls "$source/Contents/Resources/DWARF")" + binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" + + # Strip invalid architectures from the dSYM. + if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then + strip_invalid_archs "$binary" "$warn_missing_arch" + fi + if [[ $STRIP_BINARY_RETVAL == 0 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + mkdir -p "${DWARF_DSYM_FOLDER_PATH}" + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" + fi + fi +} + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + warn_missing_arch=${2:-true} + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + if [[ "$warn_missing_arch" == "true" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + fi + STRIP_BINARY_RETVAL=1 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=0 +} + +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identity + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework" +fi +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-umbrella.h b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-umbrella.h new file mode 100644 index 0000000..33f0d34 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_PowerUp_PowerUpUITestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_PowerUp_PowerUpUITestsVersionString[]; + diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.debug.xcconfig b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.debug.xcconfig new file mode 100644 index 0000000..6f69f0d --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks' +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.modulemap b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.modulemap new file mode 100644 index 0000000..d4cf8d3 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_PowerUp_PowerUpUITests { + umbrella header "Pods-PowerUp-PowerUpUITests-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.release.xcconfig b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.release.xcconfig new file mode 100644 index 0000000..6f69f0d --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks' +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-Info.plist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-Info.plist new file mode 100644 index 0000000..19cf209 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.markdown b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.markdown new file mode 100644 index 0000000..bbf4a83 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.markdown @@ -0,0 +1,29 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## SwiftKeychainWrapper + +The MIT License (MIT) + +Copyright (c) 2014 Jason Rendel + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.plist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.plist new file mode 100644 index 0000000..59dde5e --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.plist @@ -0,0 +1,61 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2014 Jason Rendel + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + License + MIT + Title + SwiftKeychainWrapper + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-dummy.m b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-dummy.m new file mode 100644 index 0000000..942554b --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_PowerUp : NSObject +@end +@implementation PodsDummy_Pods_PowerUp +@end diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-input-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-input-files.xcfilelist new file mode 100644 index 0000000..b4233fc --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-input-files.xcfilelist @@ -0,0 +1,2 @@ +${PODS_ROOT}/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh +${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-output-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-output-files.xcfilelist new file mode 100644 index 0000000..6edc35e --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-output-files.xcfilelist @@ -0,0 +1 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-input-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-input-files.xcfilelist new file mode 100644 index 0000000..b4233fc --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-input-files.xcfilelist @@ -0,0 +1,2 @@ +${PODS_ROOT}/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh +${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-output-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-output-files.xcfilelist new file mode 100644 index 0000000..6edc35e --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-output-files.xcfilelist @@ -0,0 +1 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh new file mode 100755 index 0000000..ee40200 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh @@ -0,0 +1,186 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" +SWIFT_STDLIB_PATH="${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +BCSYMBOLMAP_DIR="BCSymbolMaps" + + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink -f "${source}")" + fi + + if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then + # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied + find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do + echo "Installing $f" + install_bcsymbolmap "$f" "$destination" + rm "$f" + done + rmdir "${source}/${BCSYMBOLMAP_DIR}" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + elif [ -L "${binary}" ]; then + echo "Destination binary is symlinked..." + dirname="$(dirname "${binary}")" + binary="${dirname}/$(readlink "${binary}")" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + warn_missing_arch=${2:-true} + if [ -r "$source" ]; then + # Copy the dSYM into the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .dSYM "$source")" + binary_name="$(ls "$source/Contents/Resources/DWARF")" + binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" + + # Strip invalid architectures from the dSYM. + if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then + strip_invalid_archs "$binary" "$warn_missing_arch" + fi + if [[ $STRIP_BINARY_RETVAL == 0 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + mkdir -p "${DWARF_DSYM_FOLDER_PATH}" + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" + fi + fi +} + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + warn_missing_arch=${2:-true} + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + if [[ "$warn_missing_arch" == "true" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + fi + STRIP_BINARY_RETVAL=1 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=0 +} + +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identity + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework" +fi +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-umbrella.h b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-umbrella.h new file mode 100644 index 0000000..3f1f625 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_PowerUpVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_PowerUpVersionString[]; + diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.debug.xcconfig b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.debug.xcconfig new file mode 100644 index 0000000..b97ddf1 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.modulemap b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.modulemap new file mode 100644 index 0000000..adadb2b --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.modulemap @@ -0,0 +1,6 @@ +framework module Pods_PowerUp { + umbrella header "Pods-PowerUp-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.release.xcconfig b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.release.xcconfig new file mode 100644 index 0000000..b97ddf1 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-Info.plist b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-Info.plist new file mode 100644 index 0000000..19cf209 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-acknowledgements.markdown b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-acknowledgements.markdown new file mode 100644 index 0000000..102af75 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-acknowledgements.plist b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-acknowledgements.plist new file mode 100644 index 0000000..7acbad1 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-dummy.m b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-dummy.m new file mode 100644 index 0000000..2a0fd26 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_PowerUpTests : NSObject +@end +@implementation PodsDummy_Pods_PowerUpTests +@end diff --git a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-umbrella.h b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-umbrella.h new file mode 100644 index 0000000..6355b4b --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_PowerUpTestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_PowerUpTestsVersionString[]; + diff --git a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.debug.xcconfig b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.debug.xcconfig new file mode 100644 index 0000000..52b8e1f --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.debug.xcconfig @@ -0,0 +1,11 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.modulemap b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.modulemap new file mode 100644 index 0000000..cf98233 --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_PowerUpTests { + umbrella header "Pods-PowerUpTests-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.release.xcconfig b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.release.xcconfig new file mode 100644 index 0000000..52b8e1f --- /dev/null +++ b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.release.xcconfig @@ -0,0 +1,11 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-Info.plist b/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-Info.plist new file mode 100644 index 0000000..5ce460e --- /dev/null +++ b/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 4.0.1 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-dummy.m b/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-dummy.m new file mode 100644 index 0000000..995098c --- /dev/null +++ b/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_SwiftKeychainWrapper : NSObject +@end +@implementation PodsDummy_SwiftKeychainWrapper +@end diff --git a/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-prefix.pch b/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-umbrella.h b/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-umbrella.h new file mode 100644 index 0000000..7d05eda --- /dev/null +++ b/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "SwiftKeychainWrapper.h" + +FOUNDATION_EXPORT double SwiftKeychainWrapperVersionNumber; +FOUNDATION_EXPORT const unsigned char SwiftKeychainWrapperVersionString[]; + diff --git a/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.debug.xcconfig b/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.debug.xcconfig new file mode 100644 index 0000000..63e686f --- /dev/null +++ b/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.debug.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwiftKeychainWrapper +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.modulemap b/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.modulemap new file mode 100644 index 0000000..313839b --- /dev/null +++ b/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.modulemap @@ -0,0 +1,6 @@ +framework module SwiftKeychainWrapper { + umbrella header "SwiftKeychainWrapper-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.release.xcconfig b/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.release.xcconfig new file mode 100644 index 0000000..63e686f --- /dev/null +++ b/Pods/Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.release.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwiftKeychainWrapper +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index e079968..cc7b54d 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -7,9 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */; }; - 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */; }; + 02AE3AF613E6654D0D8234D0 /* Pods_PowerUpTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 856E39C20D66BD303EDD7E52 /* Pods_PowerUpTests.framework */; }; + 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A8892ACB5E990054E020 /* LoginViewController.swift */; }; + 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A88B2ACB5ED30054E020 /* LoginView.swift */; }; 11433FBE2ABCBCDD005AA716 /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 11433FBD2ABCBCDD005AA716 /* .gitignore */; }; + 445294082AFDFB0300B1A3D5 /* ProfileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 445294072AFDFB0300B1A3D5 /* ProfileView.swift */; }; + 4452940A2AFDFB8900B1A3D5 /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 445294092AFDFB8900B1A3D5 /* ProfileViewController.swift */; }; + 4452940C2B00A27A00B1A3D5 /* KeychainService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4452940B2B00A27A00B1A3D5 /* KeychainService.swift */; }; + 44B8ACCE2B02CA2E00D1BAA4 /* UserService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44B8ACCD2B02CA2D00D1BAA4 /* UserService.swift */; }; + 7454DD130D9425939073494A /* Pods_PowerUp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2E2C196D951641A7DAA32038 /* Pods_PowerUp.framework */; }; 8583334D2AE0AA9E005540D6 /* FirebaseAuth in Frameworks */ = {isa = PBXBuildFile; productRef = 8583334C2AE0AA9E005540D6 /* FirebaseAuth */; }; 8583334F2AE0AB4A005540D6 /* RegisterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8583334E2AE0AB4A005540D6 /* RegisterViewController.swift */; }; 858333512AE0AB5F005540D6 /* RegisterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858333502AE0AB5F005540D6 /* RegisterView.swift */; }; @@ -32,6 +38,7 @@ 858F16C42ACE60A6002B64C1 /* WalletView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16C22ACE60A6002B64C1 /* WalletView.swift */; }; 858F16C82ACE60C6002B64C1 /* StartScreenController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16C62ACE60C6002B64C1 /* StartScreenController.swift */; }; 858F16C92ACE60C6002B64C1 /* StartScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16C72ACE60C6002B64C1 /* StartScreen.swift */; }; + FFF38C35A51F0D6C31E2C3BF /* Pods_PowerUp_PowerUpUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C94F392DEF1A1D274A790123 /* Pods_PowerUp_PowerUpUITests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -52,9 +59,18 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileScreenController.swift; sourceTree = ""; }; - 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileScreenView.swift; sourceTree = ""; }; + 1129A8892ACB5E990054E020 /* LoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = ""; }; + 1129A88B2ACB5ED30054E020 /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = ""; }; 11433FBD2ABCBCDD005AA716 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; + 2E2C196D951641A7DAA32038 /* Pods_PowerUp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PowerUp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3BF5735E8EB5E7E4240F0C71 /* Pods-PowerUp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PowerUp.debug.xcconfig"; path = "Target Support Files/Pods-PowerUp/Pods-PowerUp.debug.xcconfig"; sourceTree = ""; }; + 4199B8D07DD0FF42E3618594 /* Pods-PowerUpTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PowerUpTests.release.xcconfig"; path = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.release.xcconfig"; sourceTree = ""; }; + 445294072AFDFB0300B1A3D5 /* ProfileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileView.swift; sourceTree = ""; }; + 445294092AFDFB8900B1A3D5 /* ProfileViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileViewController.swift; sourceTree = ""; }; + 4452940B2B00A27A00B1A3D5 /* KeychainService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainService.swift; sourceTree = ""; }; + 44B8ACCD2B02CA2D00D1BAA4 /* UserService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserService.swift; sourceTree = ""; }; + 7551CF5ED700DE1005997F51 /* Pods-PowerUp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PowerUp.release.xcconfig"; path = "Target Support Files/Pods-PowerUp/Pods-PowerUp.release.xcconfig"; sourceTree = ""; }; + 856E39C20D66BD303EDD7E52 /* Pods_PowerUpTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PowerUpTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 8583334E2AE0AB4A005540D6 /* RegisterViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterViewController.swift; sourceTree = ""; }; 858333502AE0AB5F005540D6 /* RegisterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterView.swift; sourceTree = ""; }; 858333522AE0AE07005540D6 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; @@ -65,7 +81,7 @@ 858F15492ABB77F0002B64C1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 858F154B2ABB77F1002B64C1 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 858F154E2ABB77F1002B64C1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 858F15502ABB77F1002B64C1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 858F15502ABB77F1002B64C1 /* Info.plist */ = {isa = PBXFileReference; explicitFileType = text.xml; path = Info.plist; sourceTree = ""; }; 858F15552ABB77F1002B64C1 /* PowerUpTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PowerUpTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 858F15592ABB77F1002B64C1 /* PowerUpTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PowerUpTests.swift; sourceTree = ""; }; 858F155F2ABB77F1002B64C1 /* PowerUpUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PowerUpUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -80,6 +96,10 @@ 858F16C22ACE60A6002B64C1 /* WalletView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WalletView.swift; sourceTree = ""; }; 858F16C62ACE60C6002B64C1 /* StartScreenController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StartScreenController.swift; sourceTree = ""; }; 858F16C72ACE60C6002B64C1 /* StartScreen.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StartScreen.swift; sourceTree = ""; }; + 997B66A43E020F39A767E048 /* Pods-PowerUp-PowerUpUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PowerUp-PowerUpUITests.release.xcconfig"; path = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.release.xcconfig"; sourceTree = ""; }; + C94F392DEF1A1D274A790123 /* Pods_PowerUp_PowerUpUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PowerUp_PowerUpUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CD92E050B85858DB48E1D08F /* Pods-PowerUpTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PowerUpTests.debug.xcconfig"; path = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.debug.xcconfig"; sourceTree = ""; }; + FD1A0FB970BA81F6F3BACD8C /* Pods-PowerUp-PowerUpUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PowerUp-PowerUpUITests.debug.xcconfig"; path = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -88,6 +108,7 @@ buildActionMask = 2147483647; files = ( 8583334D2AE0AA9E005540D6 /* FirebaseAuth in Frameworks */, + 7454DD130D9425939073494A /* Pods_PowerUp.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,6 +116,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 02AE3AF613E6654D0D8234D0 /* Pods_PowerUpTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -102,6 +124,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + FFF38C35A51F0D6C31E2C3BF /* Pods_PowerUp_PowerUpUITests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -111,14 +134,45 @@ 1129A8882ACB5DF00054E020 /* ProfileScreen */ = { isa = PBXGroup; children = ( - 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */, - 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */, + 1129A8892ACB5E990054E020 /* LoginViewController.swift */, + 1129A88B2ACB5ED30054E020 /* LoginView.swift */, 8583334E2AE0AB4A005540D6 /* RegisterViewController.swift */, 858333502AE0AB5F005540D6 /* RegisterView.swift */, + 445294072AFDFB0300B1A3D5 /* ProfileView.swift */, + 445294092AFDFB8900B1A3D5 /* ProfileViewController.swift */, ); path = ProfileScreen; sourceTree = ""; }; + 16FD2581EABE2ABB23ADCDE9 /* Pods */ = { + isa = PBXGroup; + children = ( + 3BF5735E8EB5E7E4240F0C71 /* Pods-PowerUp.debug.xcconfig */, + 7551CF5ED700DE1005997F51 /* Pods-PowerUp.release.xcconfig */, + FD1A0FB970BA81F6F3BACD8C /* Pods-PowerUp-PowerUpUITests.debug.xcconfig */, + 997B66A43E020F39A767E048 /* Pods-PowerUp-PowerUpUITests.release.xcconfig */, + CD92E050B85858DB48E1D08F /* Pods-PowerUpTests.debug.xcconfig */, + 4199B8D07DD0FF42E3618594 /* Pods-PowerUpTests.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + 44B8ACCB2B02C0BF00D1BAA4 /* Keychain */ = { + isa = PBXGroup; + children = ( + 4452940B2B00A27A00B1A3D5 /* KeychainService.swift */, + ); + path = Keychain; + sourceTree = ""; + }; + 44B8ACCC2B02CA0B00D1BAA4 /* UserService */ = { + isa = PBXGroup; + children = ( + 44B8ACCD2B02CA2D00D1BAA4 /* UserService.swift */, + ); + path = UserService; + sourceTree = ""; + }; 858F15362ABB77F0002B64C1 = { isa = PBXGroup; children = ( @@ -128,6 +182,8 @@ 858F15582ABB77F1002B64C1 /* PowerUpTests */, 858F15622ABB77F1002B64C1 /* PowerUpUITests */, 858F15402ABB77F0002B64C1 /* Products */, + 16FD2581EABE2ABB23ADCDE9 /* Pods */, + 9AED7EA542B464A85158CE98 /* Frameworks */, ); sourceTree = ""; }; @@ -144,6 +200,8 @@ 858F15412ABB77F0002B64C1 /* PowerUp */ = { isa = PBXGroup; children = ( + 44B8ACCC2B02CA0B00D1BAA4 /* UserService */, + 44B8ACCB2B02C0BF00D1BAA4 /* Keychain */, 858333522AE0AE07005540D6 /* GoogleService-Info.plist */, 858F16C52ACE60C6002B64C1 /* Start Screen */, 858F16C02ACE60A6002B64C1 /* WalletView */, @@ -214,6 +272,16 @@ path = "Start Screen"; sourceTree = ""; }; + 9AED7EA542B464A85158CE98 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2E2C196D951641A7DAA32038 /* Pods_PowerUp.framework */, + C94F392DEF1A1D274A790123 /* Pods_PowerUp_PowerUpUITests.framework */, + 856E39C20D66BD303EDD7E52 /* Pods_PowerUpTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -221,9 +289,11 @@ isa = PBXNativeTarget; buildConfigurationList = 858F15692ABB77F1002B64C1 /* Build configuration list for PBXNativeTarget "PowerUp" */; buildPhases = ( + 38AEFE8CE0C7303604F34329 /* [CP] Check Pods Manifest.lock */, 858F153B2ABB77F0002B64C1 /* Sources */, 858F153C2ABB77F0002B64C1 /* Frameworks */, 858F153D2ABB77F0002B64C1 /* Resources */, + EF913FC02074BEAAD66A1447 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -241,6 +311,7 @@ isa = PBXNativeTarget; buildConfigurationList = 858F156C2ABB77F1002B64C1 /* Build configuration list for PBXNativeTarget "PowerUpTests" */; buildPhases = ( + F149613DD142BDFDBEAC96D1 /* [CP] Check Pods Manifest.lock */, 858F15512ABB77F1002B64C1 /* Sources */, 858F15522ABB77F1002B64C1 /* Frameworks */, 858F15532ABB77F1002B64C1 /* Resources */, @@ -259,9 +330,11 @@ isa = PBXNativeTarget; buildConfigurationList = 858F156F2ABB77F1002B64C1 /* Build configuration list for PBXNativeTarget "PowerUpUITests" */; buildPhases = ( + A954360013E10E99A426BB92 /* [CP] Check Pods Manifest.lock */, 858F155B2ABB77F1002B64C1 /* Sources */, 858F155C2ABB77F1002B64C1 /* Frameworks */, 858F155D2ABB77F1002B64C1 /* Resources */, + EAE88D3B5A9333CF37C4CE0C /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -349,6 +422,109 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 38AEFE8CE0C7303604F34329 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-PowerUp-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + A954360013E10E99A426BB92 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-PowerUp-PowerUpUITests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + EAE88D3B5A9333CF37C4CE0C /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + EF913FC02074BEAAD66A1447 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + F149613DD142BDFDBEAC96D1 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-PowerUpTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 858F153B2ABB77F0002B64C1 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -360,12 +536,16 @@ 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, 858F16C92ACE60C6002B64C1 /* StartScreen.swift in Sources */, 858F16C82ACE60C6002B64C1 /* StartScreenController.swift in Sources */, - 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */, - 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */, + 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */, + 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */, 858333512AE0AB5F005540D6 /* RegisterView.swift in Sources */, + 4452940A2AFDFB8900B1A3D5 /* ProfileViewController.swift in Sources */, 858F16C32ACE60A6002B64C1 /* WalletViewController.swift in Sources */, - 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */, - 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */, + 445294082AFDFB0300B1A3D5 /* ProfileView.swift in Sources */, + 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */, + 4452940C2B00A27A00B1A3D5 /* KeychainService.swift in Sources */, + 44B8ACCE2B02CA2E00D1BAA4 /* UserService.swift in Sources */, + 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */, 8583334F2AE0AB4A005540D6 /* RegisterViewController.swift in Sources */, 858F16B52ACB97A1002B64C1 /* TimeViewController.swift in Sources */, 858F16C42ACE60A6002B64C1 /* WalletView.swift in Sources */, @@ -542,6 +722,7 @@ }; 858F156A2ABB77F1002B64C1 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 3BF5735E8EB5E7E4240F0C71 /* Pods-PowerUp.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -570,6 +751,7 @@ }; 858F156B2ABB77F1002B64C1 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 7551CF5ED700DE1005997F51 /* Pods-PowerUp.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -598,6 +780,7 @@ }; 858F156D2ABB77F1002B64C1 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = CD92E050B85858DB48E1D08F /* Pods-PowerUpTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -618,6 +801,7 @@ }; 858F156E2ABB77F1002B64C1 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 4199B8D07DD0FF42E3618594 /* Pods-PowerUpTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -638,6 +822,7 @@ }; 858F15702ABB77F1002B64C1 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = FD1A0FB970BA81F6F3BACD8C /* Pods-PowerUp-PowerUpUITests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; @@ -656,6 +841,7 @@ }; 858F15712ABB77F1002B64C1 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 997B66A43E020F39A767E048 /* Pods-PowerUp-PowerUpUITests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/PowerUp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..eb8e973 --- /dev/null +++ b/PowerUp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,113 @@ +{ + "pins" : [ + { + "identity" : "abseil-cpp-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/abseil-cpp-binary.git", + "state" : { + "revision" : "bfc0b6f81adc06ce5121eb23f628473638d67c5c", + "version" : "1.2022062300.0" + } + }, + { + "identity" : "firebase-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/firebase-ios-sdk", + "state" : { + "revision" : "837d4af6ead57cec1fc38007892500d3139c7556", + "version" : "10.16.0" + } + }, + { + "identity" : "googleappmeasurement", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleAppMeasurement.git", + "state" : { + "revision" : "56f681586ff006a7982b53dc94082eea31971acf", + "version" : "10.16.0" + } + }, + { + "identity" : "googledatatransport", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleDataTransport.git", + "state" : { + "revision" : "aae45a320fd0d11811820335b1eabc8753902a40", + "version" : "9.2.5" + } + }, + { + "identity" : "googleutilities", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleUtilities.git", + "state" : { + "revision" : "c38ce365d77b04a9a300c31061c5227589e5597b", + "version" : "7.11.5" + } + }, + { + "identity" : "grpc-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/grpc-binary.git", + "state" : { + "revision" : "a673bc2937fbe886dd1f99c401b01b6d977a9c98", + "version" : "1.49.1" + } + }, + { + "identity" : "gtm-session-fetcher", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/gtm-session-fetcher.git", + "state" : { + "revision" : "d415594121c9e8a4f9d79cecee0965cf35e74dbd", + "version" : "3.1.1" + } + }, + { + "identity" : "interop-ios-for-google-sdks", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/interop-ios-for-google-sdks.git", + "state" : { + "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648", + "version" : "100.0.0" + } + }, + { + "identity" : "leveldb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/leveldb.git", + "state" : { + "revision" : "0706abcc6b0bd9cedfbb015ba840e4a780b5159b", + "version" : "1.22.2" + } + }, + { + "identity" : "nanopb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/nanopb.git", + "state" : { + "revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692", + "version" : "2.30909.0" + } + }, + { + "identity" : "promises", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/promises.git", + "state" : { + "revision" : "e70e889c0196c76d22759eb50d6a0270ca9f1d9e", + "version" : "2.3.1" + } + }, + { + "identity" : "swift-protobuf", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-protobuf.git", + "state" : { + "revision" : "3c54ab05249f59f2c6641dd2920b8358ea9ed127", + "version" : "1.24.0" + } + } + ], + "version" : 2 +} diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..778d3d69b3954c537997109be76faaebe93867cb GIT binary patch literal 67609 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%0AkDkbR7OEJZI+^ddzsQS>rJuTbW}TQ5dyX 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

( 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�t6;OUe14RlJD45kCv}$EZUHV61BxW5XjKr+Ruz|oL2;BHCS;N3FP&uF9l!_P(6AlAS zzFdQpioo?SzVA16i&}8l&q_xOH-_&|$MZwS3xdE+#__ipMWPszMaD&LQH#|6!rR&%+kBGfDyxhffXcmKFIBc}x< z0y}!_*ZoER)BbxQQ4jRqFCWfG?DxkH*Mlm39E22TzwXY+kMqaf8PEOKUH{|PHukpj zT*~+U>;6k+LRT`={d`lP2?s`=PKILb*CYPpcV7{s|GfK3quh;wGJh?VbHNZX+E7kW z9E&qX2bw6=H~ud4B{{e{F_JqWe)``MGa&G6sUN}Y!H_I}dNUWJ2PrUr`UjMyViS`f zlNgk;T9HW=s{d#TCBY=KX|U-+skjcXxj-qWeAxV;BvYYKrlxSVNVZHUhr<|@mf!)~ zBeo}O&)8nDy<&UA_KxiX+b6a!kj|WQ!=?>98~7kC_*O^*F1kSs(q~FTnr`h44jVim ziE0icF}%&r0%@V-*bUjq><;Ws?9S|m**)03*nQaj*aO(lu}`png0F?M!P((RI2z6Y z=Y?;BOTgvfJK+Sl9^4de4Yz|IhSn^`!js@x@C)#AcqP0BUI%Z0x4{SCLx{Bq6k;m^ zhuDEoM`$3l5ITrG2t7nBA{lWWk%cHiTtqY?1`tDtVZlhFs!&S)RV-3dSkp=Z%|(I3#C&|ff27#0i+vl_Dovkt?C;ll`EwqS%X+aXYK z5TueADU1w86SEiNi#drY!n9*(n7fz{9IH4G94HQ`{3!<)$7T*54lDgE; z2azL(qlBZ1qn@Laqno35Bi}}`jS?I28)G)6ZOqtscH>Jda#l^LmYYW$2E(f0AxZ=4IxlVJX zaHVl&aGm8k&y~eh#Z|*q$JM~q$koi%%5|BmovV|pn`@YBj%$Hyk?T6wO|IKqce(C! zz2SPt^(&Ab>|J>jp0q?J;PhbTgF?%JIp)BdxQ5D?;YNIyia+b^S<#Q~>^=W#B>?`bB><8>;J|@0Ze5?7^^0D#3`A~cu ze4Kn+`L^*1^NI5L^F{JS^TqO=;=96khwmQW1HMQ6BK&gv3jB)v%KX{<7x~NiEBUJh zHVAAM;1R$I@CyV9#0Z=eh!aQE#($=P}EkayELPFbxM1*ic z5kjYhQiRfkGKB64y%u^a^j_%Www>FwwrOwE-A3A0wT-&1ZCl5-uI;?rMYoG>m)MTq z9<@DXd)oGl?Ps@t6ka2|PMA%YUHG7|yRfIQx3I79tngjo`@#=}AB&iX*oydw_=yCF z1c`)*gozv%2^WbJi57_!$rhoA%-A-Be*f#G>(p&#m(bx;GW~Yh@r(e#5lz^ ziE)eZit&jFh;0!Q65B4OEVfHbO^hI>A*Lm!Ev73*64MvkD`q6-CKfMNEjB6kP8=&v z5VsW%6VDVc6fY6KAYLY3FMe6PUA$AgTfA4iUwlxUCO#{^AigMmL;RNb9f?&E2nh}e zPKiwtSP6a!L5ZyrkgQH(w}iHYt^`TKP{LSZpM;r&qlBkKv_!1LDT#QAM2XW9DH3TC z84_nD&P!BD)JW7xG)Oc`G)uHfT$X5;=#=P|=#{u7xk_@oq>kiK$z;g}$!W>gcod!+ zkHz!j1@Soi4!j&*0k4Qx#_z)K!RzDq;*Ih9@Md@~Jcy6PN8@Ah3HT&@GCmcbk1xX4 z;v4bJ_*Q%ez6;-j@59gFZ{gqLKjJ^*ze+Jnt&#$ySf$oVt(V#$B`CF3YMYd>l&F-L zl!O#s3ex6D$xH2&GL`a{IwRFAwI~fpi%4rrJ4uI2$4MtjpO#LM&Xg{cE|xBpz9?NT zT`65HT`S!#-6h>4-7h^PJuLlD`knM=873JP8CIEfGHf#JGQ2YUGU75&u@p#3s4TNf zMqOsNjFHR%87~=MnE;t!nJ}3XGLbSdGN)t`WKPQz$&|`mlqr{~l&O)alWCA?lxdNn z%CyNW$b8ztzk{&DamT40l{-duJds^5i;?A&-7L!^D$lf z?v*u`HI=oHwUqUfjgXC%JtdnUn>43*?!qU*pl<$`BmG76ImcJrDFTW^%L;jWm zvjV#UT4AFCmjbT>zk;B`Rs|UaIfdN{+6uY~dJ0AgCJJT>77B+HycJ><;uI1Uk`>Yv z&M2H$$X3WzC{QR?XjN!a=uqfV=uzlb7*wDsj3|sNOe#z(yxfV}DYw&nXVA{vojp5m zE5Z~76h#%q74eGFib{$aibO?SMLos6ibjeiil&P8ijIoTiboXP6x|i$70)T=DCQ~_ zD3&T-RIE^}QfyP~R2)^DQk+qoRa{iOu6RrFj^b-279~!l%}TsV{7PGtwke4yi781c zNh`@J=_=_d87LVl87rA8Stwa5Su5En*(n`V0+n)ZPzrYp}X&nw?oex&?V`GxXp<+myr6#=k5r$k zzEXXo`d;;;+B!8(H8C|wHEA_jH3c;#wOwlJY8q-pHC?p>YIbS|)g09hsU223s^+HV zuI8oYqvofUs#dE;SNoujRo75Iq#mVSsNShQq&}iPu0E;0pngaFzWPJ;C+g4CU#Nd2 zun+*k8p3+Q27)L-o}f(FMNlVb5wr<=2zmr7!U4h&f;+*J;6n%`1QWst#|cSoX>2^yz0QZ+I(&T2Gh zbZPW!3~3B&OlVAN&^2Z??rXf!_^9z&lSvcMWYt`!$)?GzDXgiYsiwJGQ%h4vlcZ^& zX{5PN(_GV1^O&ZmrnjcAroU#8W{75(=5fsk%_z+n%|gv?&HGyGwIsFnY58kqXf%7zXsJljYgDzYb zrOTUtZS=#P}fP?8yUMZ%B- zNLxwUNunfik|c>lvLKO3HY9t}A(9K}D9Mc!LIO$gq-0VmDT9gK-fUkV5fnWfu#Z2z}DcPfs=uY!BK-_ z2A&2!2L1-|21y3V2B`+=24@Y<8)O;e7~~lg7!(sbc-d@kW>3i$(xeHV!lnH;yunH9lpW zYMfz`G|)86^n_`IX{>3SX@Y5zX^v^0X{BkMX@hB#>1ES) z(=O8<(<##%rf*F@n0_{6GFxS~+H9>En;F~;WyWD9Y9?+bX(nYRVKb zN%I-=S@U`G_ZF)y)?2V!AS^g6xGXkX@L1q16f9IMR4oV=L<=1Yl7+s7wS|jCsKs%M z2#aWolNRw7Nfs#<=@w@#GA*ht>MR;88ZDYFs1|J&9Tr^{y%zlzgBJJpv+l?3*W2&D zKYf4m{@MNSEjL>7SqfSTS#Gz)Tkf<}wp6twSZZ1lEp;qSEiEjqEDu=PSst_mE#obd zEmJKsEHf>$EpsjNEo&_6EjumyEC(!UmgAO_mNS-DEbm#qwpwSk!3tr8w%Ta5$%@B{ z&q~lr$V%8s#Y)YJV5MQDWu;@a$4bx2z{<$V#LCpl)9SQUy%pW+leM6=mbHU*xHZMP z)Vj>N(z@EZ*}BWR*LuL3W<6>>Zaryz-TIdGUF!$dkFB4Q*~pv7STa9(3t5;fN){(e zl6R5S$@*kt@;Cg`7_=BA1fO$d%+8avyn+Oe2qw z$HKWOI{!^lCP7$9N;~me!%`f)Pb@CV+Wquz-`2AWNj2|lx$RNv}_D)jBHG7 z%xo-dENu?i9JX<_akufZ@v%v^$+0Q0DY7ZGsj#WCskN!M>9*;!nX;L+nYUTAxn*<5 z=Dy8Cn-8|Ewmi0cwt}`ow!*eJTM1h!+a0#@wu-g}wnnxlwx+h`wwAVJTN_(DTL)Vw zTW8xy+XCBu+lO{=J6SsmJ3qU0yIQ+eyEeN{yKcK-yBWJ#yLr1syX$s0?QYw>uzPLy z&hDe#7kegqUVBk{NqcGg9riozmF;)gtJxdao7+3syVxJGceD4h_p$f4544Z9Pq)8l zUtwQuUuS>GzS*8?-)`S!-)lc$zi5BM{+9h6`+N2e?H}7ewSR8^%KnZ0yMr7DcN{c7 z7;rG_VAsKW4y+E_9Cka991I+c984Unp^V~(99*D)s4J8WH`pP};ehszFK4m}S24ucM}4hs$s9G*HncX;LS-r=Le7e^*XxFe4vpQE6okfX4psH42& zPDdrjU5=@axsFASrH*Be)sA(JmmHfMN1a%mFixCKo1J)__?-lu1hcz1bsWp_c(izQd-Qn>deA&(Jr+E!dEE54<8ja9g~wMTv}cNEy5||sbDo)=Ii9(m z`JU~bx4l@sa9)O9-d-tQHD04$3tl(8Zh77HdgS%Q>$%rUZx(Nu_g-%cZ!7Nu-nQN@ z-tOLB-oD-e-a+2?d^CIveN24JeD?cT`yB8&;^XRb%*WH`l25nKu+Ny!q|c1ctj|rK zJ3jY)9{D`=dG0IVyVp0=x7fGCcgFXc?@ix3zW03J`>pcZ;J3+-$B)lX&`-$E#n00( z%rC+(+V7-aqF=IKs$aTamS2HilV7LbO}_{J>-_os#r-AxCHwY0c-)= z0;B^p18f3Z1Hgdf07^hcF*uY=P{7 z{DC5YP%4^0xj>~ri$KRfr@%vjE`h#*0fE7RVSy(CBLb5H&jl6-wg$EZb_VtY_6H6H zjs%VeP6g5f=K`Mvz6g9B_%`r;;HSW^K`cQ)(3+t2K^ua&f+T~qgKUGmf=&kI1eFF| z4w?zNAM`O;IhYV^9(*9!CD=DOEcirlWN=LIso>P$jNo&@S;3Uxyx^ALncx>8LLs;i z>5v^EDj^yn#1P#Oy%2*Cs}TDT#}Ma`BO#t4J|X@gK_MX_MIlq6%%ST-*+Msk@`r8- z-4-emiVu|ul?&Y&suZdbx+l~m)au0H6RszGPehzJbt3sh&WW-Ul_zRW)SqZP(Q@MQ ziJ=oCC&o`qouHqXJ8|{IwQwL@G~6USBs?lSCj4~xx$w;Jj_|?o;qcM$@$kj)8{xOY z?}k4Je-!>Y{9X8m@J|sy#OjDO5y*&b5yBCo5n>UN5mFH{5wa2T5j!K4B2*%DBS;bY z5rz>LBN`(HB4`n#5fc&95mzGSBNiiWM7)f69q}&WL&T?uuaPW~u*lVsYa;n0B_j_+ zMn{%LK8#|G5{%M|+8=c^>R6O#luwj@R8UlC)bXf@sOYG3QJGOWQF&2?Q6*6qqbj1R zqH3e+qxz%fqn<^tisp>o8m$P z#d5~tVl`q9#0JDh#m2_Q#U{ok$ELjaww`vlhn_XMv5--LjK;DpeGyo9;LRf)ohdlFp|(-T`02NEX| zrxULv&L=J=-b;L#_$2Xp;;Y0rNgI*`k`$BnCD|p}Cml?3OahbQlai8BlG2mTCY?`e zNNP)3NV=AE^YrUvmSlJ`Dw!jhE15ePn=Ftlkt~(GBUvt4Az3L|C0R9jf3jC{d~!+h zrDS^YZ1UaY7s;=a-z9%c{*uC+!j=M0L8hQnHl}P!;ZBiBu}n!wsZ5zpSxmW=awp|} z%EOd*sm!UcRMynBse-ApsT!$Pscxw!Q{z$-Q%|R+re>s`OC3q2r(RFJm3lYzLF(hw zr>URPSkpG7A=1!k8`H39{AnU-+G%=eN7DS$g3?0Lz_i%3^t3Z+=hCv$E~J&GRi@RX zjit?|-ArdsN2l*f*G@l>ek9#H-7h^bJtQ4Wk4=wDPfSlvPfO28uSoAqpHF|Afy&^^ z5X=zD5YE75h-YYL7-qO;xMz4}wq_1wj%1E!PG!z!E@WQIypj1Oi!EzYmSC1pmT(p> zOCn1?OEF6&OD$`6mSz??D>y4AD=RA}>rz&0)^HX*>t@!Itmj!Tv)*LA&t9FqJ{yzG znY}rCOSVw)0Oj)0;3=)7z!t4GlhqOr6^N$DEbsbiV4MnVo9;49H978&QJ;| zt&}!OC#8qdPZ^?&P{t`!6gp*&a+UI$@{aO>@;R3&cUA7{+_g~I3V1Fmmm`-m7nf_E z>yqo8n~_V+oz8uf2hWqvQ_s`SGt4u|Gt1kbXO(v>&p$6D56lbCi_A;TJDZo8my?&5 zSDIIrSCLnpSDV+7H{d{q9Xe4c!4zCiw#eA)b6`8xS~@@?|{ z^Mmq3^N;68^B41P;li=P$-?QvhlO8? z5Jj7cb`;4MDHf>|sTJ)m(kjv^A{7}F85Qj-GB2_$vMvfKI$K078ZCNK%u>u=ELJR8 zEL|*HtWc~}ysKEPcz3Z?@quEyVu#{G#fOWJ7W)*379TH;D2^^ZSsYhAl(<4N}rT|Ed6qU>4L=t#|zFE4qxcJFnVF)!qi2Hi%J)F zT~xbx=3?Q+l8YD0U}eZMOxeb=qh$eQ!DXRkGiBGx9+y2Sds_Cqd|f%ZT&-NEoK$X5 zZdh(r?p+>Io?3pkysCV>e5#yYK39IV{CfGV@;l}CD_AOkiZvDME7&WL73d0{iY*n} zDnu&8DkLhDDt1+Oxg{Rb^FURYz4P}sRky3|R>P{1 z)f=lfRdZMKR|{5et=?8GTTQ4YR_j!gstv1+tM^r#RXbLvRX0>ORkv2RRd-hRRQFd8 zRu5O-t$tAbxcXW3%j!4P?`oK9*41pNLDZmYHr8;}2-OJJ;A$jl)N1r<_SP8JnARMu zaj)^L@u~5ziL8mKIaw25lU9>gQ&3Y}Q(DtdGgLEDGhQ=QL$8^uxmt6*=2p$!ng=ys zYguYxwX18_)UL1HPz$d`)?#Wm)^gR#)|%A%)t;@T*50aHQ@6cNtIodeNS#}qN1az) za9w0wOx>xvgu2spDRq>({JNsL(z>#`in^h?D|J`vuGQVFyI1$1?s47Ix-a$X>k;*+ zdXDyzqJ>eK7b)}OC0s4uUt zs;{kYsBfxosqe2JsvoHzuYX?urGdEt*1+0;Y1r7Xsez|Kq(Q7fqCu)*XMW12ehK9z5<_3Dh z+e_S+R4&dqi&;K0OwAn4T+Q6g*k*y|tv+gAHl$JRrwzOCV{1+B%c7h20(t6FPY8(JG%TUw`D>8*3ES6i>Q-fF$m`n2_3 z>&MnFRAwrSx|)inZlrQixvBD04JwhUOVy+9r&>`DQ0=I0R1c~b)t4GdJw=VDCQ*~A zIn+ApC2BL3N^PfhQG2NaR2p@ZIzhcheMo&weM)^!eMNmkeMkL3{Y?FOnfWsIvdU%K z%O@@uU8Y@r-iBzCY$LVpYcp@NY_o22Y;$XKZ}V*PZu4#PZ;Nb;X*<=H&~~~lrLC%s z+Sb|D)7IBUYa4AFZ<}np+4ijMb=%vv4{cxDncHFQtJ^u+x3_Dz?`hX>-`j57ZrX0q zZrM(5_iYbo4{i@@KhYl99^IbQp4NV*{d{{?`-S%M_R98}_O|xU_U`t+_R;o*_Qm!a z?YG+Bb!_V3>EP=S>=5b@?!a}3ci=m8I!GM`9Y!7dI?Oxvci49v>2T}t=j>zG z>WJ+))sfIq*3s0_+R@h0*)iHN-Z9ld@3`G@uj4_-ShojP4Qk94|r9_#e%^zQWSOzEuYoaubu#oM*J z%c(1}tDvi+Yp`p$YpiRcYrgAt*S)TXT~E56cfIUp>R#2ox_fOmTQ_?*u3Mp7rCYU| z&`s>t=_YmScUyP6bh~xCcYAgFcL#Qdbcb~(bZ2%`yW6|Fx_i3^x@p~`-Q(R;-A}ro zcfaa>+x?;YbNAPtH9g24Ob=(z<{sW2z8vi_$2 z*8a==9sP^_kNThXzvzEGz%;O706u^k;201b5E|G%AUYsDpgN#FpfR8|U_5YW;P8O! zfct>gfbT%SK=44=z=?s#fpY^{133e^1Nj3*10@3&2FeC12dW2Z2gU}T4Ppl62KNt! z4dxGa4&E62I<#hJ{Sf;QVrbKl;E>Re@DOfDVhBH^GNd-Ndq`_YXK2sRp&{>~fT5tF z(4p|5$f1~_lS5~RiiR!@l@C=7)el`7Y94AG8XCGugV9)N>u4Kj2pXEUk;X;irtP4~ z(-dhcG&S08nkG%3wvT2`v!sz}HngL(V>C~i5A77~4DB2(i$xQ?70Nf}8WIXiNGq+q0cq;jNsq;{l!fDljTBDl;lOsxYcDsyeDZx_i`U)N|Bl)PFQ+G<5X% zXvApLXzXa-XyItd=*7{B(dyCK(bmzf(caO4QQGLp==|v7==ITCqaVlCjIA5nFoqc8 z9pfJp91|K7A5$Dt9#b7tAJZSRA9EaY9y>DTHs&$rJ?1wSI2JMnj-`#A89O(YIhH+^ zJC;9II95D%VXSPdVr*#a;W&I;YJA^#;CS{pb$ns`!^EnI)e~zc)=yw2cqjNK1Shsm zY@ZOBkek>!p**2FL732(u$^$7@SO0O@S6yp2%9)Q5k8STkuy;+Q8ZCHQ87_9Q9DsT z(LFIc@p0nIB=aO}l67+3GIesQVrp#a^)&ai z>NI&ec>3&g-gMz~$@GQk+UeHmw&~94p6UMS!D;&R-1ODy>(jTU@64>4LCkQ>aL#O= z;hPbd**ddrMs|iUL!8l>A*l+6s!jLl5W z%*@QrEX-V+xiNEl<_n#f4x_Wu*U_OAV{|S$FP)#hg)T&wrpwah>56nBU6)Rx8_><@ z2kDM-bwGK_tN|6L-b+#D1DqhMW3Nx zp})Dpab@Qf%PXN*3a<2Dxi`x?yLDE47C$R9D?7VumN=_BOPV#9HJmk`wVAb_b)0pc zJu>S$dvZ2oHgh(6Hg~pYwq*9=Z24^K?7-~E?AYw&?3LNM*{ieHW}nW!n?uZT%!$vb z&XMN!&6&?x&XMPA=UnEF&K;Zcob#FUn*-<0%;nFO&o$3=&GpU=%+cmX=dR4n%`MC= z&Rw6oInO+gomZdVKkqc}GJkab*u3Yw_k7I!>G|~ev-6qr+4C3YYv$|c8|Pc*JLh}m z`{oDdY4g+bi}R1>U(Uaoe?R|eVb#Lwg*6N77d9+#F7PjiFYH=SU(i?}F6b`kE$m$| zUNBv7T5w)Cyl`~EZNYuPbHRJTcfo(5Xkq3m?5fOF^40jOZC9UO{dD#7)h~-oiyIaN e7I!SlFRCq)77dqkJ+rVZ|HkMq|6X}rwEjO2a5^sl literal 0 HcmV?d00001 diff --git a/PowerUp.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist index 2c9e80a..6f11b23 100644 --- a/PowerUp.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/PowerUp.xcodeproj/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ PowerUp.xcscheme_^#shared#^_ orderHint - 0 + 4 diff --git a/PowerUp.xcworkspace/contents.xcworkspacedata b/PowerUp.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..461d532 --- /dev/null +++ b/PowerUp.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/PowerUp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/PowerUp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/PowerUp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/PowerUp.xcworkspace/xcshareddata/swiftpm/Package.resolved b/PowerUp.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..4b7113b --- /dev/null +++ b/PowerUp.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,113 @@ +{ + "pins" : [ + { + "identity" : "abseil-cpp-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/abseil-cpp-binary.git", + "state" : { + "revision" : "bfc0b6f81adc06ce5121eb23f628473638d67c5c", + "version" : "1.2022062300.0" + } + }, + { + "identity" : "firebase-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/firebase-ios-sdk", + "state" : { + "revision" : "8872dbd7d947acf757abab933da10e83c1842280", + "version" : "10.17.0" + } + }, + { + "identity" : "googleappmeasurement", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleAppMeasurement.git", + "state" : { + "revision" : "6b332152355c372ace9966d8ee76ed191f97025e", + "version" : "10.17.0" + } + }, + { + "identity" : "googledatatransport", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleDataTransport.git", + "state" : { + "revision" : "aae45a320fd0d11811820335b1eabc8753902a40", + "version" : "9.2.5" + } + }, + { + "identity" : "googleutilities", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleUtilities.git", + "state" : { + "revision" : "f6532c8d65f8308cfdf2288cbe1971a509822680", + "version" : "7.12.0" + } + }, + { + "identity" : "grpc-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/grpc-binary.git", + "state" : { + "revision" : "a673bc2937fbe886dd1f99c401b01b6d977a9c98", + "version" : "1.49.1" + } + }, + { + "identity" : "gtm-session-fetcher", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/gtm-session-fetcher.git", + "state" : { + "revision" : "d415594121c9e8a4f9d79cecee0965cf35e74dbd", + "version" : "3.1.1" + } + }, + { + "identity" : "interop-ios-for-google-sdks", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/interop-ios-for-google-sdks.git", + "state" : { + "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648", + "version" : "100.0.0" + } + }, + { + "identity" : "leveldb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/leveldb.git", + "state" : { + "revision" : "9d108e9112aa1d65ce508facf804674546116d9c", + "version" : "1.22.3" + } + }, + { + "identity" : "nanopb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/nanopb.git", + "state" : { + "revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692", + "version" : "2.30909.0" + } + }, + { + "identity" : "promises", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/promises.git", + "state" : { + "revision" : "e70e889c0196c76d22759eb50d6a0270ca9f1d9e", + "version" : "2.3.1" + } + }, + { + "identity" : "swift-protobuf", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-protobuf.git", + "state" : { + "revision" : "07f7f26ded8df9645c072f220378879c4642e063", + "version" : "1.25.1" + } + } + ], + "version" : 2 +} diff --git a/PowerUp.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..3e8c59622c2bd3d9c664b3b8b3e28fd7900fdd1e GIT binary patch literal 91210 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

dnE9I)XVes@rpzj_a3|`(OZ|2Ow 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 literal 0 HcmV?d00001 diff --git a/PowerUp.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..bd4e863 --- /dev/null +++ b/PowerUp.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,30 @@ + + + + + SchemeUserState + + Promises (Playground) 1.xcscheme + + isShown + + orderHint + 6 + + Promises (Playground) 2.xcscheme + + isShown + + orderHint + 7 + + Promises (Playground).xcscheme + + isShown + + orderHint + 5 + + + + diff --git a/PowerUp/ProfileScreen/LoginViewController.swift b/PowerUp/ProfileScreen/LoginViewController.swift index 7ff2948..01e3e62 100644 --- a/PowerUp/ProfileScreen/LoginViewController.swift +++ b/PowerUp/ProfileScreen/LoginViewController.swift @@ -1,5 +1,5 @@ // -// ProfileScreenController.swift +// LoginViewController.swift // PowerUp // // Created by Dingbang Chen on 10/2/23. @@ -7,79 +7,97 @@ import UIKit import FirebaseAuth -class ProfileScreenController: UIViewController { +import SwiftKeychainWrapper + +class LoginViewController: UIViewController { let loginView = LoginView() override func loadView() { view = loginView } - func alert(message:String){ + // Helper function to display alerts to the user + func alert(message: String) { let alertController = UIAlertController( - title: "Warning", - message: message, - preferredStyle: .alert - ) + title: "Warning", + message: message, + preferredStyle: .alert + ) let okAction = UIAlertAction( - title: "OK", - style: .default, - handler: nil - ) - + title: "OK", + style: .default, + handler: nil + ) alertController.addAction(okAction) - present(alertController, animated: true, completion: nil) } - func successMsg(){ - let alertController = UIAlertController( - title: "Success", - message: "Sign in successfully", - preferredStyle: .alert - ) - let okAction = UIAlertAction( - title: "OK", - style: .default, - handler: nil - ) - - alertController.addAction(okAction) - - present(alertController, animated: true, completion: nil) + // Helper function to display success message and navigate to profile + func navigateToProfile() { + // Dismiss the login view controller to reveal the UITabBarController. + self.dismiss(animated: true) { + // The UITabBarController needs to handle what happens after this dismissal. + } } + override func viewDidLoad() { - super.viewDidLoad() - loginView.loginButton.addTarget(self, action: #selector(onButtonSigninTapped), for: .touchUpInside) - loginView.registerButton.addTarget(self, action: #selector(onButtonRegisterTapped), for: .touchUpInside) + super.viewDidLoad() + loginView.loginButton.addTarget(self, action: #selector(onButtonSigninTapped), for: .touchUpInside) + loginView.registerButton.addTarget(self, action: #selector(onButtonRegisterTapped), for: .touchUpInside) } - @objc func onButtonRegisterTapped(){ + @objc func onButtonRegisterTapped() { let registerVC = RegisterViewController() - navigationController?.pushViewController(registerVC, animated: true) + registerVC.modalPresentationStyle = .fullScreen // To ensure full screen presentation + self.present(registerVC, animated: true, completion: nil) } - @objc func onButtonSigninTapped(){ + @objc func onButtonSigninTapped() { guard let email = loginView.userNameTextField.text, !email.isEmpty, - let password = loginView.passWordTextField.text, !password.isEmpty else{ + let password = loginView.passWordTextField.text, !password.isEmpty else { alert(message: "Please fill all fields") return } - //Get auth instance - //attemp sign in - // fails then alert - // FirebaseAuth.Auth.auth().signIn(withEmail: email, password: password, completion: { [weak self] result, error in - guard let strongSelf = self else{ + guard let strongSelf = self else { return } + + if let error = error { + strongSelf.alert(message: "Login Error: \(error.localizedDescription)") return } - guard error == nil else{ - strongSelf.alert(message: "Something wrong when signing in, please try again") - return + + // Assuming success, store the user ID in Keychain for persistent login +// if let userID = result?.user.uid { +// let saveSuccessful: Bool = KeychainWrapper.standard.set(userID, forKey: "userID") +// print("Was the save successful: \(saveSuccessful)") +// // Navigate to profile view controller +// strongSelf.navigateToProfile() +// } + if let userID = result?.user.uid { + KeychainService.saveToken(userID) + // Navigate to profile view controller + strongSelf.navigateToProfile() } - strongSelf.successMsg() + + // to json - UserService + if let userID = result?.user.uid, let email = result?.user.email { + let userDetailsJSON = UserService.createUserJSON(uid: userID, email: email) + UserService.postUserDetails(userDetails: userDetailsJSON) { success, error in + DispatchQueue.main.async { + if success { + print("User details successfully posted to the server.") + // Navigate to the profile view controller or handle success + } else { + print("Failed to post user details with error: \(error?.localizedDescription ?? "Unknown error")") + // Handle failure + } + } + } + } }) + } } diff --git a/PowerUp/ProfileScreen/ProfileView.swift b/PowerUp/ProfileScreen/ProfileView.swift index 0a11588..d8db0a7 100644 --- a/PowerUp/ProfileScreen/ProfileView.swift +++ b/PowerUp/ProfileScreen/ProfileView.swift @@ -8,13 +8,90 @@ import UIKit class ProfileView: UIView { - - /* - // Only override draw() if you perform custom drawing. - // An empty implementation adversely affects performance during animation. - override func draw(_ rect: CGRect) { - // Drawing code + + let profileImageView = UIImageView() + let nameLabel = UILabel() + let emailLabel = UILabel() + let versionLabel = UILabel() + let signOutButton = UIButton() + let deleteAccountButton = UIButton() + + override init(frame: CGRect) { + super.init(frame: frame) + setupView() + setupConstraints() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + private func setupView() { + backgroundColor = .white + + profileImageView.contentMode = .scaleAspectFill + profileImageView.layer.cornerRadius = 30 + profileImageView.layer.masksToBounds = true + profileImageView.translatesAutoresizingMaskIntoConstraints = false + addSubview(profileImageView) + + nameLabel.font = UIFont.boldSystemFont(ofSize: 24) + nameLabel.translatesAutoresizingMaskIntoConstraints = false + addSubview(nameLabel) + + emailLabel.font = UIFont.systemFont(ofSize: 18) + emailLabel.textColor = .gray + emailLabel.translatesAutoresizingMaskIntoConstraints = false + addSubview(emailLabel) + + versionLabel.font = UIFont.systemFont(ofSize: 18) + versionLabel.textColor = .gray + versionLabel.translatesAutoresizingMaskIntoConstraints = false + addSubview(versionLabel) + + signOutButton.setTitle("Sign Out", for: .normal) + signOutButton.setTitleColor(.red, for: .normal) + signOutButton.translatesAutoresizingMaskIntoConstraints = false + addSubview(signOutButton) + + deleteAccountButton.setTitle("Delete Account", for: .normal) + deleteAccountButton.setTitleColor(.red, for: .normal) + deleteAccountButton.translatesAutoresizingMaskIntoConstraints = false + addSubview(deleteAccountButton) + } + + private func setupConstraints() { + NSLayoutConstraint.activate([ + // Profile Image Constraints + profileImageView.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor, constant: 20), + profileImageView.centerXAnchor.constraint(equalTo: centerXAnchor), + profileImageView.widthAnchor.constraint(equalToConstant: 60), // Adjust size as needed + profileImageView.heightAnchor.constraint(equalToConstant: 60), // Adjust size as needed + + // Name Label Constraints + nameLabel.topAnchor.constraint(equalTo: profileImageView.bottomAnchor, constant: 8), + nameLabel.centerXAnchor.constraint(equalTo: centerXAnchor), + + // Email Label Constraints + emailLabel.topAnchor.constraint(equalTo: nameLabel.bottomAnchor, constant: 4), + emailLabel.centerXAnchor.constraint(equalTo: centerXAnchor), + + // Version Label Constraints (Assuming it's at the top of the general section) + versionLabel.topAnchor.constraint(equalTo: emailLabel.bottomAnchor, constant: 20), // Adjust distance from email label as needed + versionLabel.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 16), + versionLabel.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -16), + + // Sign Out Button Constraints + signOutButton.topAnchor.constraint(equalTo: versionLabel.bottomAnchor, constant: 24), // Adjust for space between sections + signOutButton.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 16), + signOutButton.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -16), + signOutButton.heightAnchor.constraint(equalToConstant: 44), // Standard touchable height + + // Delete Account Button Constraints + deleteAccountButton.topAnchor.constraint(equalTo: signOutButton.bottomAnchor, constant: 12), + deleteAccountButton.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 16), + deleteAccountButton.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -16), + deleteAccountButton.heightAnchor.constraint(equalToConstant: 44) // Standard touchable height + ]) } - */ - } diff --git a/PowerUp/ProfileScreen/ProfileViewController.swift b/PowerUp/ProfileScreen/ProfileViewController.swift index 8cd8db8..b8b3bfe 100644 --- a/PowerUp/ProfileScreen/ProfileViewController.swift +++ b/PowerUp/ProfileScreen/ProfileViewController.swift @@ -6,24 +6,118 @@ // import UIKit +import FirebaseAuth +import SwiftKeychainWrapper -class ProfileViewController: UIViewController { +class ProfileViewController: UIViewController { + + var profileView: ProfileView! + var userEmail: String? + + override func loadView() { + profileView = ProfileView() + view = profileView + } + override func viewDidLoad() { super.viewDidLoad() + profileView.signOutButton.addTarget(self, action: #selector(signOut), for: .touchUpInside) + profileView.deleteAccountButton.addTarget(self, action: #selector(deleteAccount), for: .touchUpInside) + + // Load user data + loadUserData() + } + + private func loadUserData() { + if let user = FirebaseAuth.Auth.auth().currentUser { + // Update the UI on the main thread + DispatchQueue.main.async { + self.profileView.emailLabel.text = user.email // User's email + self.profileView.nameLabel.text = "UID: \(user.uid)" // User's UID + } + } + } - // Do any additional setup after loading the view. + + @objc func signOut() { + do { + try FirebaseAuth.Auth.auth().signOut() + KeychainService.deleteToken() +// KeychainWrapper.standard.removeObject(forKey: "userID") + // Assuming self.tabBarController is your instance of ViewController + (self.tabBarController as? ViewController)?.userDidLogout() + } catch let signOutError { + print("Error signing out: \(signOutError)") + } } + + private func navigateToLogin() { + // If using a navigation controller + if let loginViewController = self.navigationController?.viewControllers.first(where: { $0 is LoginViewController }) { + self.navigationController?.popToViewController(loginViewController, animated: true) + } else { + // Create a new instance and set it as the root or pop to it + let loginViewController = LoginViewController() + self.navigationController?.setViewControllers([loginViewController], animated: true) + } + } - /* - // MARK: - Navigation + @objc func deleteAccount() { + // Confirmation alert + let confirmAlert = UIAlertController(title: "Delete Account", message: "Are you sure you want to delete your account? This action cannot be undone.", preferredStyle: .alert) + + // Delete action + let deleteAction = UIAlertAction(title: "Delete", style: .destructive) { [weak self] _ in + guard let self = self else { return } + guard let user = FirebaseAuth.Auth.auth().currentUser else { + self.alert(message: "No user found.") + return + } + + user.delete { error in + if let error = error { + // Handle errors here + self.alert(message: "Error deleting account: \(error.localizedDescription)") + } else { + // Account deleted successfully +// KeychainWrapper.standard.removeObject(forKey: "userID") + KeychainService.deleteToken() + // Inform the UITabBarController to handle the UI update + DispatchQueue.main.async { + (self.tabBarController as? ViewController)?.userDidLogout() + } + } + } + } + + // Cancel action + let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) + + // Add actions to alert + confirmAlert.addAction(deleteAction) + confirmAlert.addAction(cancelAction) + + // Present alert + present(confirmAlert, animated: true) + } - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. + + // Helper function to display alerts + func alert(message: String) { + let alertController = UIAlertController( + title: "Warning", + message: message, + preferredStyle: .alert + ) + let okAction = UIAlertAction( + title: "OK", + style: .default, + handler: nil + ) + alertController.addAction(okAction) + present(alertController, animated: true, completion: nil) } - */ } diff --git a/PowerUp/ProfileScreen/RegisterView.swift b/PowerUp/ProfileScreen/RegisterView.swift index 888ff38..5880f08 100644 --- a/PowerUp/ProfileScreen/RegisterView.swift +++ b/PowerUp/ProfileScreen/RegisterView.swift @@ -16,9 +16,13 @@ class RegisterView: UIView { var passWordTextField: UITextField! var signupLabel: UILabel! var signupButton: UIButton! + + var backButton: UIButton! + let customStartBgk = UIColor(red: 0.035 , green: 0.51 , blue: 0.89, alpha: 1.0) let customButtonColor = UIColor(red: 0.45 , green: 0.72 , blue: 1, alpha: 1.0) let midBgkColor = UIColor(red: 0.9882, green: 0.9882, blue: 0.9882, alpha: 1.0) + /* // Only override draw() if you perform custom drawing. // An empty implementation adversely affects performance during animation. @@ -32,7 +36,6 @@ class RegisterView: UIView { self.backgroundColor = .white - //MARK: initializing the UI elements and constraints... setupStartComponent() @@ -98,7 +101,11 @@ class RegisterView: UIView { signupButton.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), signupButton.widthAnchor.constraint(equalToConstant: 120), signupButton.heightAnchor.constraint(equalToConstant: 50), + ]) + backButton.leadingAnchor.constraint(equalTo: midView.leadingAnchor).isActive = true + backButton.topAnchor.constraint(equalTo: midView.bottomAnchor, constant: 10).isActive = true + } func setupVariables(){ @@ -142,6 +149,10 @@ class RegisterView: UIView { signupButton.translatesAutoresizingMaskIntoConstraints = false midView.addSubview(signupButton) + + backButton = UIButton(type: .system) + backButton.setTitle("Back", for: .normal) + backButton.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(backButton) } - } diff --git a/PowerUp/ProfileScreen/RegisterViewController.swift b/PowerUp/ProfileScreen/RegisterViewController.swift index f3c90c1..0f9b063 100644 --- a/PowerUp/ProfileScreen/RegisterViewController.swift +++ b/PowerUp/ProfileScreen/RegisterViewController.swift @@ -17,12 +17,12 @@ class RegisterViewController: UIViewController { super.viewDidLoad() registerView.signupButton.addTarget(self, action: #selector(onButtonSignupTapped), for: .touchUpInside) navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target:self , action: #selector(onButtonBackTapped)) - + registerView.backButton.addTarget(self, action: #selector(onButtonBackTapped), for: .touchUpInside) + } - @objc func onButtonBackTapped(){ - let ProfileVC = ProfileScreenController() - navigationController?.pushViewController(ProfileVC, animated: true) + @objc func onButtonBackTapped() { + self.dismiss(animated: true, completion: nil) } func alert(message:String){ @@ -80,8 +80,27 @@ class RegisterViewController: UIViewController { return } strongSelf.successMsg() - let profileVC = ProfileScreenController() + + let profileVC = LoginViewController() strongSelf.navigationController?.pushViewController(profileVC, animated: true) + + // to json - UserService - After successful registration or login + if let userID = result?.user.uid, let email = result?.user.email { + let userDetailsJSON = UserService.createUserJSON(uid: userID, email: email) + UserService.postUserDetails(userDetails: userDetailsJSON) { success, error in + DispatchQueue.main.async { + if success { + print("User details successfully posted to the server.") + // Handle success - perhaps by transitioning to the profile view or showing a success message + } else { + print("Failed to post user details with error: \(error?.localizedDescription ?? "Unknown error")") + // Handle failure - show an alert to the user or log the error + } + } + } + } + }) + self.dismiss(animated: true, completion: nil) } } diff --git a/PowerUp/SceneDelegate.swift b/PowerUp/SceneDelegate.swift index 0dee3e9..62bdacd 100644 --- a/PowerUp/SceneDelegate.swift +++ b/PowerUp/SceneDelegate.swift @@ -6,17 +6,19 @@ // import UIKit +import FirebaseAuth +import SwiftKeychainWrapper class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { - // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. - // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. - // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). - guard let _ = (scene as? UIWindowScene) else { return } - } + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + guard let _ = (scene as? UIWindowScene) else { return } + } func sceneDidDisconnect(_ scene: UIScene) { // Called as the scene is being released by the system. diff --git a/PowerUp/UserService/UserService.swift b/PowerUp/UserService/UserService.swift index c71feca..9424be4 100644 --- a/PowerUp/UserService/UserService.swift +++ b/PowerUp/UserService/UserService.swift @@ -6,3 +6,48 @@ // import Foundation + +class UserService { + + static let baseURL = "http://localhost:8080" // Replace with the actual base URL of your backend + + static func createUserJSON(uid: String, email: String, credit: Int = 0) -> [String: Any] { + return [ + "uid": uid, + "email": email, + "credit": credit + ] + } + + static func postUserDetails(userDetails: [String: Any], completion: @escaping (Bool, Error?) -> Void) { + guard let url = URL(string: "\(baseURL)/user/addUser") else { // Updated endpoint + completion(false, NSError(domain: "URLCreationError", code: 0, userInfo: nil)) + return + } + + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.addValue("application/json", forHTTPHeaderField: "Content-Type") + + do { + let jsonData = try JSONSerialization.data(withJSONObject: userDetails, options: []) + request.httpBody = jsonData + } catch { + completion(false, error) + return + } + + let task = URLSession.shared.dataTask(with: request) { data, response, error in + if let error = error { + completion(false, error) + } else if let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200 { + completion(true, nil) + } else { + completion(false, NSError(domain: "HTTPResponseError", code: (response as? HTTPURLResponse)?.statusCode ?? 0, userInfo: nil)) + } + } + + task.resume() + } + +} diff --git a/PowerUp/ViewController.swift b/PowerUp/ViewController.swift index a5f3498..e488d16 100644 --- a/PowerUp/ViewController.swift +++ b/PowerUp/ViewController.swift @@ -6,8 +6,21 @@ // import UIKit +import FirebaseAuth + class ViewController: UITabBarController, UITabBarControllerDelegate { + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + + if FirebaseAuth.Auth.auth().currentUser == nil { + let loginVC = LoginViewController() + loginVC.modalPresentationStyle = .fullScreen + self.present(loginVC, animated: false, completion: nil) + } + } + override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) @@ -55,28 +68,26 @@ class ViewController: UITabBarController, UITabBarControllerDelegate { tabTime.tabBarItem = tabTimeBarItem tabTime.title = "Time" - //MARK: Setting up Profile Screen - let tabProfile = UINavigationController(rootViewController: ProfileScreenController()) - let tabProfileBarItem = UITabBarItem( - title: "Profile", - image: UIImage(systemName: "person")?.withRenderingMode(.alwaysOriginal), - selectedImage: UIImage(systemName: "person.fill") - ) - tabProfile.tabBarItem = tabProfileBarItem - tabProfile.title = "Profile" - - - - //MARK: setting up this view controller as the Tab Bar Controller... - self.viewControllers = [tabStore, tabStart, tabWallet, tabTime, tabProfile] + let profileRootVC = FirebaseAuth.Auth.auth().currentUser != nil ? ProfileViewController() : LoginViewController() + let tabProfile = UINavigationController(rootViewController: profileRootVC) + let tabProfileBarItem = UITabBarItem( + title: "Profile", + image: UIImage(systemName: "person")?.withRenderingMode(.alwaysOriginal), + selectedImage: UIImage(systemName: "person.fill") + ) + tabProfile.tabBarItem = tabProfileBarItem + tabProfile.title = "Profile" + + self.viewControllers = [tabStore, tabStart, tabWallet, tabTime, tabProfile] } override func viewDidLoad() { super.viewDidLoad() // Dingbang First Commit check, second check } - - - + func userDidLogout() { + let loginVC = LoginViewController() + loginVC.modalPresentationStyle = .fullScreen + self.present(loginVC, animated: true, completion: nil) + } } - From 889f4c00754944d4c41568d2c3b37372e5ff82ef Mon Sep 17 00:00:00 2001 From: nicholasletarte Date: Sat, 18 Nov 2023 18:36:03 -0500 Subject: [PATCH 41/71] Store Location Functionality Enabled --- PowerUp.xcodeproj/project.pbxproj | 28 +++ .../xcshareddata/swiftpm/Package.resolved | 122 ++++++++++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 69506 bytes PowerUp/Base.lproj/Main.storyboard | 4 +- PowerUp/Info.plist | 2 +- PowerUp/MapViewController.swift | 111 +++++++++-- PowerUp/Store Screen/Data Models/Cafe.swift | 16 ++ .../Data Models/CafeWithDistance.swift | 14 ++ .../Store Screen/Data Models/Coordinate.swift | 12 ++ .../Store Screen/Data Models/Machine.swift | 14 ++ PowerUp/Store Screen/StoreScreen.swift | 4 +- .../Store Screen/StoreViewController.swift | 175 +++++++++++++++++- 12 files changed, 471 insertions(+), 31 deletions(-) create mode 100644 PowerUp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 PowerUp.xcodeproj/project.xcworkspace/xcuserdata/nickl.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 PowerUp/Store Screen/Data Models/Cafe.swift create mode 100644 PowerUp/Store Screen/Data Models/CafeWithDistance.swift create mode 100644 PowerUp/Store Screen/Data Models/Coordinate.swift create mode 100644 PowerUp/Store Screen/Data Models/Machine.swift diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index d40a670..a2866f2 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -28,6 +28,11 @@ 858F16C42ACE60A6002B64C1 /* WalletView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16C22ACE60A6002B64C1 /* WalletView.swift */; }; 858F16C82ACE60C6002B64C1 /* StartScreenController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16C62ACE60C6002B64C1 /* StartScreenController.swift */; }; 858F16C92ACE60C6002B64C1 /* StartScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16C72ACE60C6002B64C1 /* StartScreen.swift */; }; + B1E80CDC2B095A5D009CBD93 /* MapViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1E80CDB2B095A5D009CBD93 /* MapViewController.swift */; }; + B1E80CDF2B095B41009CBD93 /* Coordinate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1E80CDE2B095B41009CBD93 /* Coordinate.swift */; }; + B1E80CE12B095B5A009CBD93 /* Machine.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1E80CE02B095B5A009CBD93 /* Machine.swift */; }; + B1E80CE32B095B69009CBD93 /* Cafe.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1E80CE22B095B69009CBD93 /* Cafe.swift */; }; + B1E80CE52B0976D6009CBD93 /* CafeWithDistance.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1E80CE42B0976D6009CBD93 /* CafeWithDistance.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -73,6 +78,11 @@ 858F16C22ACE60A6002B64C1 /* WalletView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WalletView.swift; sourceTree = ""; }; 858F16C62ACE60C6002B64C1 /* StartScreenController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StartScreenController.swift; sourceTree = ""; }; 858F16C72ACE60C6002B64C1 /* StartScreen.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StartScreen.swift; sourceTree = ""; }; + B1E80CDB2B095A5D009CBD93 /* MapViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MapViewController.swift; sourceTree = ""; }; + B1E80CDE2B095B41009CBD93 /* Coordinate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Coordinate.swift; sourceTree = ""; }; + B1E80CE02B095B5A009CBD93 /* Machine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Machine.swift; sourceTree = ""; }; + B1E80CE22B095B69009CBD93 /* Cafe.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Cafe.swift; sourceTree = ""; }; + B1E80CE42B0976D6009CBD93 /* CafeWithDistance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CafeWithDistance.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -134,6 +144,7 @@ 858F15412ABB77F0002B64C1 /* PowerUp */ = { isa = PBXGroup; children = ( + B1E80CDB2B095A5D009CBD93 /* MapViewController.swift */, 858F16C52ACE60C6002B64C1 /* Start Screen */, 858F16C02ACE60A6002B64C1 /* WalletView */, 1129A8882ACB5DF00054E020 /* ProfileScreen */, @@ -170,6 +181,7 @@ 858F16AC2ACA7338002B64C1 /* Store Screen */ = { isa = PBXGroup; children = ( + B1E80CDD2B095AC7009CBD93 /* Data Models */, 858F16AD2ACA7357002B64C1 /* StoreViewController.swift */, 858F16AF2ACA73C5002B64C1 /* StoreScreen.swift */, ); @@ -203,6 +215,17 @@ path = "Start Screen"; sourceTree = ""; }; + B1E80CDD2B095AC7009CBD93 /* Data Models */ = { + isa = PBXGroup; + children = ( + B1E80CDE2B095B41009CBD93 /* Coordinate.swift */, + B1E80CE02B095B5A009CBD93 /* Machine.swift */, + B1E80CE22B095B69009CBD93 /* Cafe.swift */, + B1E80CE42B0976D6009CBD93 /* CafeWithDistance.swift */, + ); + path = "Data Models"; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -336,8 +359,10 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + B1E80CE32B095B69009CBD93 /* Cafe.swift in Sources */, 858F16AE2ACA7357002B64C1 /* StoreViewController.swift in Sources */, 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, + B1E80CE52B0976D6009CBD93 /* CafeWithDistance.swift in Sources */, 858F16B32ACB978C002B64C1 /* TimeScreen.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, 858F16C92ACE60C6002B64C1 /* StartScreen.swift in Sources */, @@ -351,6 +376,9 @@ 858F16C42ACE60A6002B64C1 /* WalletView.swift in Sources */, 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, + B1E80CDF2B095B41009CBD93 /* Coordinate.swift in Sources */, + B1E80CDC2B095A5D009CBD93 /* MapViewController.swift in Sources */, + B1E80CE12B095B5A009CBD93 /* Machine.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/PowerUp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..80a8628 --- /dev/null +++ b/PowerUp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,122 @@ +{ + "pins" : [ + { + "identity" : "abseil-cpp-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/abseil-cpp-binary.git", + "state" : { + "revision" : "bfc0b6f81adc06ce5121eb23f628473638d67c5c", + "version" : "1.2022062300.0" + } + }, + { + "identity" : "app-check", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/app-check.git", + "state" : { + "revision" : "5746b2d35c91c50581590ed97abe4c06b5037274", + "version" : "10.18.0" + } + }, + { + "identity" : "firebase-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/firebase-ios-sdk", + "state" : { + "revision" : "5de0369ee79ad096c164eb3afeb7921d92a43b58", + "version" : "10.18.0" + } + }, + { + "identity" : "googleappmeasurement", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleAppMeasurement.git", + "state" : { + "revision" : "6b332152355c372ace9966d8ee76ed191f97025e", + "version" : "10.17.0" + } + }, + { + "identity" : "googledatatransport", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleDataTransport.git", + "state" : { + "revision" : "aae45a320fd0d11811820335b1eabc8753902a40", + "version" : "9.2.5" + } + }, + { + "identity" : "googleutilities", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleUtilities.git", + "state" : { + "revision" : "bc27fad73504f3d4af235de451f02ee22586ebd3", + "version" : "7.12.1" + } + }, + { + "identity" : "grpc-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/grpc-binary.git", + "state" : { + "revision" : "a673bc2937fbe886dd1f99c401b01b6d977a9c98", + "version" : "1.49.1" + } + }, + { + "identity" : "gtm-session-fetcher", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/gtm-session-fetcher.git", + "state" : { + "revision" : "d415594121c9e8a4f9d79cecee0965cf35e74dbd", + "version" : "3.1.1" + } + }, + { + "identity" : "interop-ios-for-google-sdks", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/interop-ios-for-google-sdks.git", + "state" : { + "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648", + "version" : "100.0.0" + } + }, + { + "identity" : "leveldb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/leveldb.git", + "state" : { + "revision" : "9d108e9112aa1d65ce508facf804674546116d9c", + "version" : "1.22.3" + } + }, + { + "identity" : "nanopb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/nanopb.git", + "state" : { + "revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692", + "version" : "2.30909.0" + } + }, + { + "identity" : "promises", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/promises.git", + "state" : { + "revision" : "e70e889c0196c76d22759eb50d6a0270ca9f1d9e", + "version" : "2.3.1" + } + }, + { + "identity" : "swift-protobuf", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-protobuf.git", + "state" : { + "revision" : "07f7f26ded8df9645c072f220378879c4642e063", + "version" : "1.25.1" + } + } + ], + "version" : 2 +} diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/nickl.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/nickl.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..d12339dbc0e843c7d5acd6b8507a0c9eb7eb7d51 GIT binary patch literal 69506 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%0DxDbMAQG(m*vFv85z;XfdXNz6`}{>jKr_#kX!7 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 - + - + diff --git a/PowerUp/Info.plist b/PowerUp/Info.plist index 35f633c..bf3f70a 100644 --- a/PowerUp/Info.plist +++ b/PowerUp/Info.plist @@ -24,6 +24,6 @@ NSLocationWhenInUseUsageDescription - We need your location to provide you with the nearest internet cafe. + We need your location to provide you with the nearest internet cafe. diff --git a/PowerUp/MapViewController.swift b/PowerUp/MapViewController.swift index 889d2a9..c0c10a1 100644 --- a/PowerUp/MapViewController.swift +++ b/PowerUp/MapViewController.swift @@ -10,7 +10,7 @@ import UIKit import MapKit class MapViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate { - + let manager = CLLocationManager() @@ -19,7 +19,7 @@ class MapViewController: UIViewController, MKMapViewDelegate, CLLocationManagerD override func viewDidLoad() { super.viewDidLoad() // Set initial location for Portland, ME - + } override func viewDidAppear(_ animated: Bool) { @@ -30,27 +30,104 @@ class MapViewController: UIViewController, MKMapViewDelegate, CLLocationManagerD manager.startUpdatingLocation() } +// func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { +// if let location = locations.first{ +// manager.stopUpdatingLocation() +// +// render(location) +// } +// } + // func render(_ location: CLLocation) { + // + // let coordinate = CLLocationCoordinate2D(latitude: location.coordinate.latitude, + // longitude: location.coordinate.longitude) + // let span = MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1) + // + // let region = MKCoordinateRegion(center: coordinate, + // span: span) + // + // mapView.setRegion(region, + // animated: true) + // let pin = MKPointAnnotation() + // pin.coordinate = coordinate + // mapView.addAnnotation(pin) + // } + func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { - if let location = locations.first{ + if let location = locations.first { manager.stopUpdatingLocation() - - render(location) + + // Fetch the nearest cafes using the location + fetchNearestCafes(from: location) { [weak self] cafes in + // Ensure we have cafes to render + guard let cafes = cafes else { return } + + // Call the render function with the user's location and the nearest cafes + DispatchQueue.main.async { + self?.render(location, withNearestCafes: cafes) + } + } + } + } + func fetchAllCafes(completion: @escaping ([Cafe]?) -> Void) { + let url = URL(string: "http://localhost:8080/cafe/allCafes")! + + let task = URLSession.shared.dataTask(with: url) { data, response, error in + guard let data = data, + let response = response as? HTTPURLResponse, + response.statusCode == 200, + error == nil else { + completion(nil) + return + } + + do { + let decoder = JSONDecoder() + let cafes = try decoder.decode([Cafe].self, from: data) + completion(cafes) + } catch { + completion(nil) + } } + task.resume() } - func render(_ location: CLLocation) { - - let coordinate = CLLocationCoordinate2D(latitude: location.coordinate.latitude, - longitude: location.coordinate.longitude) - let span = MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1) + // This function will handle the communication with your backend to get the nearest cafes + func fetchNearestCafes(from location: CLLocation, completion: @escaping ([Cafe]?) -> Void) { + // Here you would create the URLRequest, configure it for a POST request, + // send the user's current location coordinates, and parse the response + // to create an array of Cafe objects which you would pass to the completion handler. + + // This is a placeholder for the actual network request and JSON parsing. + // You would replace this with your actual networking code. + completion(nil) // Call the completion handler with nil for now + } + func render(_ location: CLLocation, withNearestCafes cafes: [Cafe]) { + let userCoordinate = CLLocationCoordinate2D(latitude: location.coordinate.latitude, + longitude: location.coordinate.longitude) + + var region = MKCoordinateRegion(center: userCoordinate, + span: MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1)) - let region = MKCoordinateRegion(center: coordinate, - span: span) + // Add a pin for the user's location + let userPin = MKPointAnnotation() + userPin.coordinate = userCoordinate + userPin.title = "Your Location" + mapView.addAnnotation(userPin) - mapView.setRegion(region, - animated: true) - let pin = MKPointAnnotation() - pin.coordinate = coordinate - mapView.addAnnotation(pin) + // Add pins for each cafe + for cafe in cafes { + let cafePin = MKPointAnnotation() + cafePin.coordinate = CLLocationCoordinate2D(latitude: cafe.coordinate.latitude, + longitude: cafe.coordinate.longitude) + cafePin.title = cafe.name + mapView.addAnnotation(cafePin) + } + + // Adjust the region to include all pins + mapView.showAnnotations(mapView.annotations, animated: true) } + + } + diff --git a/PowerUp/Store Screen/Data Models/Cafe.swift b/PowerUp/Store Screen/Data Models/Cafe.swift new file mode 100644 index 0000000..7bd9002 --- /dev/null +++ b/PowerUp/Store Screen/Data Models/Cafe.swift @@ -0,0 +1,16 @@ +// +// Cafe.swift +// PowerUp +// +// Created by Nicholas Letarte on 11/18/23. +// + +import Foundation + +struct Cafe: Codable { + var id: String + var name: String + var coordinate: Coordinate + var machines: [Machine] + var distance: Double +} diff --git a/PowerUp/Store Screen/Data Models/CafeWithDistance.swift b/PowerUp/Store Screen/Data Models/CafeWithDistance.swift new file mode 100644 index 0000000..ea6e7a8 --- /dev/null +++ b/PowerUp/Store Screen/Data Models/CafeWithDistance.swift @@ -0,0 +1,14 @@ +// +// CafeWithDistance.swift +// PowerUp +// +// Created by Nicholas Letarte on 11/18/23. +// +import UIKit +import CoreLocation +import Foundation +// Define a new struct that includes a mutable distance property +struct CafeWithDistance { + var cafe: Cafe + var distance: CLLocationDistance +} diff --git a/PowerUp/Store Screen/Data Models/Coordinate.swift b/PowerUp/Store Screen/Data Models/Coordinate.swift new file mode 100644 index 0000000..0412b77 --- /dev/null +++ b/PowerUp/Store Screen/Data Models/Coordinate.swift @@ -0,0 +1,12 @@ +// +// Coordinate.swift +// PowerUp +// +// Created by Nicholas Letarte on 11/18/23. +// + +import Foundation +struct Coordinate: Codable { + var latitude: Double + var longitude: Double +} diff --git a/PowerUp/Store Screen/Data Models/Machine.swift b/PowerUp/Store Screen/Data Models/Machine.swift new file mode 100644 index 0000000..8d0eddb --- /dev/null +++ b/PowerUp/Store Screen/Data Models/Machine.swift @@ -0,0 +1,14 @@ +// +// Machine.swift +// PowerUp +// +// Created by Nicholas Letarte on 11/18/23. +// + +import Foundation +struct Machine: Codable { + var id: String + var name: String + var type: String + var activated: Bool +} diff --git a/PowerUp/Store Screen/StoreScreen.swift b/PowerUp/Store Screen/StoreScreen.swift index 014177b..b1b79f6 100644 --- a/PowerUp/Store Screen/StoreScreen.swift +++ b/PowerUp/Store Screen/StoreScreen.swift @@ -81,7 +81,7 @@ class StoreScreen: UIView { labelPCName.translatesAutoresizingMaskIntoConstraints = false labelPCAvailability = UILabel() - labelPCAvailability.text = "8/10" + labelPCAvailability.text = "0/0" labelPCAvailability.font = UIFont.systemFont(ofSize: 16) labelPCAvailability.translatesAutoresizingMaskIntoConstraints = false @@ -114,7 +114,7 @@ class StoreScreen: UIView { labelPSName.translatesAutoresizingMaskIntoConstraints = false labelPSAvailability = UILabel() - labelPSAvailability.text = "8/10" + labelPSAvailability.text = "0/0" labelPSAvailability.font = UIFont.systemFont(ofSize: 16) labelPSAvailability.translatesAutoresizingMaskIntoConstraints = false diff --git a/PowerUp/Store Screen/StoreViewController.swift b/PowerUp/Store Screen/StoreViewController.swift index 0190068..36193dc 100644 --- a/PowerUp/Store Screen/StoreViewController.swift +++ b/PowerUp/Store Screen/StoreViewController.swift @@ -6,27 +6,184 @@ // import UIKit +import CoreLocation -class StoreViewController: UIViewController { +class StoreViewController: UIViewController, CLLocationManagerDelegate { let storeScreen = StoreScreen() + let locationManager = CLLocationManager() + var currentAddress: String? + var currentLocation: CLLocation? // To store the current user location + var cafes: [CafeWithDistance] = [] // Use CafeWithDistance instead of Cafe + + override func loadView() { view = storeScreen } + override func viewDidLoad() { super.viewDidLoad() + setupLocationManager() + storeScreen.buttonLocation.addTarget(self, action: #selector(buttonLocationPressed), for: .touchUpInside) + } + + func setupLocationManager() { + locationManager.delegate = self + locationManager.desiredAccuracy = kCLLocationAccuracyBest + locationManager.requestWhenInUseAuthorization() + locationManager.startUpdatingLocation() // Start location updates here + } - // Do any additional setup after loading the view. + + @objc func buttonLocationPressed() { + // Fetch and display cafes when the button is pressed + fetchCafes { [weak self] fetchedCafes in + guard let self = self, let fetchedCafes = fetchedCafes else { + // Handle error: could not fetch cafes + return + } + + // Update the cafes array with the fetched cafes + self.cafes = fetchedCafes + + DispatchQueue.main.async { + self.displayCafes() // Display an alert with the cafes + } + } } + func displayCafes() { + let alertController = UIAlertController(title: "Choose a Cafe", message: "Select a cafe to populate its name in the location bar.", preferredStyle: .alert) + + // Get the two closest cafes, but check if there are any cafes at all + let closestCafes = cafes.prefix(2) + guard let closestCafe = closestCafes.first else { return } // Ensure there's at least one cafe + + for cafeWithDistance in cafes.prefix(2) { + + let cafeAction = UIAlertAction(title: cafeWithDistance.cafe.name, style: .default) { [weak self] _ in + DispatchQueue.main.async { + // Update the location button with the cafe name + self?.storeScreen.buttonLocation.setTitle(cafeWithDistance.cafe.name, for: .normal) + + // Update the availability labels with the count of machines + let pcCount = cafeWithDistance.cafe.machines.filter { $0.type == "PC" && !$0.activated }.count + let psCount = cafeWithDistance.cafe.machines.filter { $0.type == "PS" && !$0.activated }.count + let totalPCs = cafeWithDistance.cafe.machines.filter { $0.type == "PC" }.count + let totalPSs = cafeWithDistance.cafe.machines.filter { $0.type == "PS" }.count + + // Assuming all machines start activated, the available count is the total minus the activated count + self?.storeScreen.labelPCAvailability.text = "\(totalPCs - pcCount)/\(totalPCs)" + self?.storeScreen.labelPSAvailability.text = "\(totalPSs - psCount)/\(totalPSs)" + } + } + alertController.addAction(cafeAction) + } - /* - // MARK: - Navigation - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. + let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil) + alertController.addAction(cancelAction) + + // Present the alert + present(alertController, animated: true, completion: nil) } - */ + // Location Manager Delegate Methods + func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { + if let location = locations.first { + currentLocation = location // Store the current location + locationManager.stopUpdatingLocation() + + let geocoder = CLGeocoder() + geocoder.reverseGeocodeLocation(location) { [weak self] (placemarks, error) in + if let placemark = placemarks?.first, let address = placemark.compactAddress { + DispatchQueue.main.async { + self?.storeScreen.buttonLocation.setTitle(address, for: .normal) + } + } + } + + // Fetch cafes and sort them by distance right after getting the user location + fetchCafes { [weak self] fetchedCafes in + guard let self = self, let fetchedCafes = fetchedCafes, let currentLocation = self.currentLocation else { + return // Handle the error appropriately + } + + self.cafes = fetchedCafes.sorted(by: { + let location1 = CLLocation(latitude: $0.cafe.coordinate.latitude, longitude: $0.cafe.coordinate.longitude) + let location2 = CLLocation(latitude: $1.cafe.coordinate.latitude, longitude: $1.cafe.coordinate.longitude) + return location1.distance(from: currentLocation) < location2.distance(from: currentLocation) + }).prefix(2).map { $0 } // This will give you an array of CafeWithDistance + } + } + } + // CLLocationManagerDelegate method to handle errors + func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) { + // Handle the error, for example, show an alert to the user + } + func fetchCafes(completion: @escaping ([CafeWithDistance]?) -> Void) { + guard let currentLocation = self.currentLocation else { + completion(nil) // Current location is not available + return + } + + let url = URL(string: "http://localhost:8080/cafe/allCafes")! + let task = URLSession.shared.dataTask(with: url) { (data, response, error) in + guard let data = data, error == nil else { + completion(nil) + return + } + + do { + let cafes = try JSONDecoder().decode([Cafe].self, from: data) + // Calculate the distance for each cafe and create CafeWithDistance structs + let cafesWithDistance = cafes.map { cafe -> CafeWithDistance in + let cafeLocation = CLLocation(latitude: cafe.coordinate.latitude, longitude: cafe.coordinate.longitude) + let distance = currentLocation.distance(from: cafeLocation) + return CafeWithDistance(cafe: cafe, distance: distance) + } + // Sort cafesWithDistance by the distance + let sortedCafes = cafesWithDistance.sorted { $0.distance < $1.distance } + // Complete with sorted cafes + completion(sortedCafes) + } catch { + completion(nil) + } + } + task.resume() + } } +extension CLPlacemark { + var compactAddress: String? { + // Initialize an empty array to hold the address parts + var parts: [String] = [] + + // If the 'name' component exists and it is not already included in the 'parts' array, + // add it to the 'parts' array. + if let name = name, !parts.contains(where: { name.contains($0) }) { + parts.append(name) + } + + // If the 'thoroughfare' (street name) component exists and it is not a substring of any element + // already in the 'parts' array, add it to the 'parts' array. + if let street = thoroughfare, !parts.contains(where: { street.contains($0) }) { + parts.append(street) + } + + // If the 'locality' (city name) component exists and it is not a substring of any element + // already in the 'parts' array, add it to the 'parts' array. + if let city = locality, !parts.contains(where: { city.contains($0) }) { + parts.append(city) + } + + // If the 'country' component exists and it is not a substring of any element + // already in the 'parts' array, add it to the 'parts' array. + if let country = country, !parts.contains(where: { country.contains($0) }) { + parts.append(country) + } + + // Join the address parts array into a single string, separated by commas, + // and return it as the compact address representation. + return parts.joined(separator: ", ") + } +} + From d68c81245958be534ef8cf85ddb70669de5ceb8f Mon Sep 17 00:00:00 2001 From: nicholasletarte Date: Sat, 18 Nov 2023 18:39:27 -0500 Subject: [PATCH 42/71] Store Location Functionality Enabled --- .../UserInterfaceState.xcuserstate | Bin 69506 -> 69551 bytes .../Store Screen/StoreViewController.swift | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/nickl.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/nickl.xcuserdatad/UserInterfaceState.xcuserstate index d12339dbc0e843c7d5acd6b8507a0c9eb7eb7d51..16136cd67a9941fc7df730d97a0c5836947cea20 100644 GIT binary patch delta 23177 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

    Kau?0g9tEicl8SOx>mK zQ?1k^s)LTCW9cFEFnR=?NROgFqQ}zX=}B}Nok1_5m(eTeRdhDJj^04$(s}e|`p@(h zx{&@GT|;a1EB8QmhTE0rKIFdY7TvAx=k8bTc6SF8&h%hrXMqa8P3ErNz8{# zGBcL>gjvO`V>U3kOg>Y<6f#B3Ze|}-!JK6N&YWh>G1bgfriQu3)G;dajE!Jp*a7Sy zHkKXAe!wQMNo*=RlU>cOWpmg~Y#y7>7O;gbb{o5$b+IMvckFTYBwNW=v1i!x>;?7` zTh0E+*0R@G%>LUG;~D2!<|*-<@-Ut|pfiXB-9b+f4F-TAU>Fzy62T}i8YF{1fGOZ( zFcZuH^T20d8z=@lz)r9ilz{`_5U2!~K`p2Q^`HT;00JJk5DLm4*00BnVi;S=~2K8LShJM4gOykXw1-f(Z6H^aN$<=x}GGv5o}8{ussQs^c`2|a~q zVX*L?@V+oyh!+xtnZjaWnXppG7IK75LY}Z$C>C}I<-)hZ5#g9{QaB@=7cL6b!d2mh z;1)cBSKx(!UFJP;lVkI`>YUlfampkZhPNNM8c-t&AOjH;M7L23a?m|=AGM;#=!rkd zpXi_OFYs6R8~jcF*Wx?kBypVP zGVurTy7&+ArbvrG17vg`!U!*QlxD+9ElcJ>GOYcf?(oku*G)9^r zrAq12RB5_2OPV8XlnN!6R3ep1d!+r+VW~noDxHujT~d{FMXHtRqujS5iSNSbDQtmGIlz%73$nkQLJW3udC(9}F1UXeslQZNg@-%skTq2*9y>hD( zt&CL`DqEC8%2DNnQmIra7nNG2PN`QK6iRU`tRgFoNJ` z9*kr0DEtu~gER2QcqX2M7vP0B6KCO#xDfBh<@gXjj4SX_d;(YE@9|mu1HOrA%wP|O zn8yfCDV^(8vRk1YE_H#r zQq5M^sTHBa5AR;b6-Q)-oZPQ9RBR(lh<`eJ>po~!>!|6Jdqf2kMiJM^9UF8zRhL_emV)GPJNdX0Wf|4DDqDV@ok!qwFbB(1&zENNl8rzKRhRY~1 zN{v0nexuy@-Z*QVH!c{Lj4MWsam}bR>W!a`n+7r3ng%tcH?3{j*Hqnvnp#N&i6(tW zU(%n%kpwc5j3#493K>r(l2npLW|Mhj0a-{gNf!AFaqT2~Nf|jn4wDLUlpH4)Nj0e> zHwYj;;wLiEh(SzZk%y#>beNsYE@rs-wi#m%GULs3bFw+joMFy3=a~!4g=VI?)LdZ} zm|M*v^9ysk=`u^qQge^F-z+x|n#ar<(`VY|%V1P6E|?h12xbL8a|Mfow}PG^3El}l z47OQatZ*yB>Spz@`dS05K~}6a#2RX)Sy|Rr>%3KMUAKO+Xv=H)EWagN*t%`qvmRIv zt$$fBtv0J8)F~7eiVrObm4?bg2SX=9r$gsL7ebdqwV}FDeW)RHD+EGfi`CNH@~EY~ z<+bhVY) ziE;Wl1D!$6FlU65;3PRI&Nyd+Gug>>mO3k()y`Tc$JylMIr&b3Q|J^qrOs|=uT%Ex Uk|r$dSNHaJ`d=3Me>hM73nm)lcK`qY delta 23037 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 Date: Sun, 19 Nov 2023 00:26:22 -0500 Subject: [PATCH 43/71] Choose cafe on time page --- .../UserInterfaceState.xcuserstate | Bin 69551 -> 70572 bytes PowerUp/Time Screen/TimeScreen.swift | 16 --- PowerUp/Time Screen/TimeViewController.swift | 127 +++++++++++++++++- 3 files changed, 123 insertions(+), 20 deletions(-) diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/nickl.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/nickl.xcuserdatad/UserInterfaceState.xcuserstate index 16136cd67a9941fc7df730d97a0c5836947cea20..36849d0a49928d358087fae6de7de6ae90d79b64 100644 GIT binary patch delta 35667 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 E0V6J=4gdfE delta 34707 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
    @t*MR&2KO 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 DYYcZN diff --git a/PowerUp/Time Screen/TimeScreen.swift b/PowerUp/Time Screen/TimeScreen.swift index 13ec36f..f75c2f8 100644 --- a/PowerUp/Time Screen/TimeScreen.swift +++ b/PowerUp/Time Screen/TimeScreen.swift @@ -13,7 +13,6 @@ class TimeScreen: UIView { var myTimeLabel: UILabel! var infoContainer: UIView! var bestCafeLabel: UILabel! - var mainStreetLabel: UILabel! var addButton = UIButton() var pcLabel: UILabel! var additionalInfoContainer: UIView! @@ -88,19 +87,6 @@ class TimeScreen: UIView { bestCafeLabel.translatesAutoresizingMaskIntoConstraints = false infoContainer.addSubview(bestCafeLabel) - mainStreetLabel = UILabel() - mainStreetLabel.text = "Main Street" - mainStreetLabel.font = UIFont.systemFont(ofSize: 16) - mainStreetLabel.textColor = .black - mainStreetLabel.translatesAutoresizingMaskIntoConstraints = false - infoContainer.addSubview(mainStreetLabel) - -// pcLabel = UILabel() -// pcLabel.text = "PC 1" -// pcLabel.font = UIFont.systemFont(ofSize: 12) -// pcLabel.textColor = .black -// pcLabel.translatesAutoresizingMaskIntoConstraints = false -// additionalInfoContainer.addSubview(pcLabel) } func setUpTopContainer(){ @@ -151,8 +137,6 @@ class TimeScreen: UIView { bestCafeLabel.leadingAnchor.constraint(equalTo: infoContainer.leadingAnchor, constant: 8), bestCafeLabel.topAnchor.constraint(equalTo: infoContainer.topAnchor, constant: 8), - mainStreetLabel.leadingAnchor.constraint(equalTo: infoContainer.leadingAnchor, constant: 8), - mainStreetLabel.topAnchor.constraint(equalTo: bestCafeLabel.bottomAnchor, constant: 4), //all together additionalInfoContainer.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 30), additionalInfoContainer.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -30), diff --git a/PowerUp/Time Screen/TimeViewController.swift b/PowerUp/Time Screen/TimeViewController.swift index df0c61b..932f95e 100644 --- a/PowerUp/Time Screen/TimeViewController.swift +++ b/PowerUp/Time Screen/TimeViewController.swift @@ -6,23 +6,142 @@ // import UIKit +import CoreLocation + +class TimeViewController: UIViewController, CLLocationManagerDelegate { + let timeView = TimeScreen() + let locationManager = CLLocationManager() + var currentLocation: CLLocation? + var cafes: [CafeWithDistance] = [] -class TimeViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() - let timeView = TimeScreen() - timeView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(timeView) + setupLocationManager() + setupConstraints() + + // Add a tap gesture recognizer to the bestCafeLabel + let tapGesture = UITapGestureRecognizer(target: self, action: #selector(bestCafeLabelTapped)) + timeView.bestCafeLabel.isUserInteractionEnabled = true + timeView.bestCafeLabel.addGestureRecognizer(tapGesture) + } + @objc func bestCafeLabelTapped() { + displayCafes() // This function will present all cafes to the user + } + func setupLocationManager() { + locationManager.delegate = self + locationManager.desiredAccuracy = kCLLocationAccuracyBest + locationManager.requestWhenInUseAuthorization() + locationManager.startUpdatingLocation() + } + + func setupConstraints() { + timeView.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ timeView.leadingAnchor.constraint(equalTo: view.leadingAnchor), timeView.trailingAnchor.constraint(equalTo: view.trailingAnchor), timeView.topAnchor.constraint(equalTo: view.topAnchor), timeView.bottomAnchor.constraint(equalTo: view.bottomAnchor) ]) - timeView.initConstraints() } + + func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { + if let location = locations.first { + currentLocation = location // Store the current location + locationManager.stopUpdatingLocation() + + // Fetch cafes and sort them by distance + fetchCafes { [weak self] fetchedCafes in + guard let self = self, let fetchedCafes = fetchedCafes else { + return // Handle the error appropriately + } + + DispatchQueue.main.async { + // Store all fetched cafes, sorted by distance + self.cafes = fetchedCafes.sorted(by: { + let location1 = CLLocation(latitude: $0.cafe.coordinate.latitude, longitude: $0.cafe.coordinate.longitude) + let location2 = CLLocation(latitude: $1.cafe.coordinate.latitude, longitude: $1.cafe.coordinate.longitude) + return location1.distance(from: location) < location2.distance(from: location) + }) + + // Update the bestCafeLabel with the name of the closest cafe + let closestCafeName = self.cafes.first?.cafe.name ?? "Cafe" + self.timeView.bestCafeLabel.text = closestCafeName + } + } + } + } + + @objc func addTimeButtonPressed() { + // ... logic to add time ... + displayCafes() + } + func updateTimeScreenWithClosestCafe() { + DispatchQueue.main.async { + if let closestCafe = self.cafes.first { + self.timeView.bestCafeLabel.text = closestCafe.cafe.name + // Update additional labels if needed + } + } + } + func displayCafes() { + let alertController = UIAlertController(title: "Choose a Cafe", message: "Select a cafe from the list.", preferredStyle: .alert) + // Display all fetched cafes as options + for cafeWithDistance in cafes { + let cafeAction = UIAlertAction(title: cafeWithDistance.cafe.name, style: .default) { [weak self] _ in + DispatchQueue.main.async { + // Here you can update the bestCafeLabel or any other UI elements with the selected cafe + self?.timeView.bestCafeLabel.text = cafeWithDistance.cafe.name + } + } + alertController.addAction(cafeAction) + } + let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil) + alertController.addAction(cancelAction) + + // Present the alert + present(alertController, animated: true, completion: nil) + } + + // CLLocationManagerDelegate method to handle errors + func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) { + // Handle the error, for example, show an alert to the user + } + func fetchCafes(completion: @escaping ([CafeWithDistance]?) -> Void) { + guard let currentLocation = self.currentLocation else { + completion(nil) // Current location is not available + return + } + + let url = URL(string: "http://localhost:8080/cafe/allCafes")! + let task = URLSession.shared.dataTask(with: url) { (data, response, error) in + guard let data = data, error == nil else { + completion(nil) + return + } + + do { + let cafes = try JSONDecoder().decode([Cafe].self, from: data) + // Calculate the distance for each cafe and create CafeWithDistance structs + let cafesWithDistance = cafes.map { cafe -> CafeWithDistance in + let cafeLocation = CLLocation(latitude: cafe.coordinate.latitude, longitude: cafe.coordinate.longitude) + let distance = currentLocation.distance(from: cafeLocation) + return CafeWithDistance(cafe: cafe, distance: distance) + } + // Sort cafesWithDistance by the distance + let sortedCafes = cafesWithDistance.sorted { $0.distance < $1.distance } + // Complete with sorted cafes + completion(sortedCafes) + } catch { + completion(nil) + } + } + task.resume() + } } + + From 1d536a59e81fbe1fe6f4a6b266ebb68795b2ee85 Mon Sep 17 00:00:00 2001 From: Yucheng Date: Sun, 19 Nov 2023 16:04:29 -0500 Subject: [PATCH 44/71] UI Update --- .../UserInterfaceState.xcuserstate | Bin 91210 -> 60147 bytes PowerUp/ProfileScreen/LoginView.swift | 65 ++++++--- PowerUp/ProfileScreen/ProfileView.swift | 27 +++- PowerUp/ProfileScreen/RegisterView.swift | 124 +++++++++++++----- .../RegisterViewController.swift | 10 +- 5 files changed, 171 insertions(+), 55 deletions(-) diff --git a/PowerUp.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate index 3e8c59622c2bd3d9c664b3b8b3e28fd7900fdd1e..924eba3f0f304f50715d122f6dfe52506c92b6d1 100644 GIT binary patch literal 60147 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 CsKU1Z literal 91210 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

    dnE9I)XVes@rpzj_a3|`(OZ|2Ow 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 diff --git a/PowerUp/ProfileScreen/LoginView.swift b/PowerUp/ProfileScreen/LoginView.swift index 56785ab..3c22adb 100644 --- a/PowerUp/ProfileScreen/LoginView.swift +++ b/PowerUp/ProfileScreen/LoginView.swift @@ -19,7 +19,7 @@ class LoginView: UIView { var forgetButton: UIButton! var registerButton: UIButton! let customStartBgk = UIColor(red: 0.035 , green: 0.51 , blue: 0.89, alpha: 1.0) - let customButtonColor = UIColor(red: 0.45 , green: 0.72 , blue: 1, alpha: 1.0) + let customButtonColor = UIColor(red: 0.035, green: 0.51, blue: 0.89, alpha: 1.0) let midBgkColor = UIColor(red: 0.9882, green: 0.9882, blue: 0.9882, alpha: 1.0) /* // Only override draw() if you perform custom drawing. @@ -81,29 +81,38 @@ class LoginView: UIView { midView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -30), midView.topAnchor.constraint(equalTo: startView.bottomAnchor, constant: -40), midView.heightAnchor.constraint(equalToConstant: 350), + loginLabel.topAnchor.constraint(equalTo: self.topAnchor, constant: 70), loginLabel.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant:16), loginLabel.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor,constant: -16), - userNameLabel.topAnchor.constraint(equalTo: midView.topAnchor, constant: 16), - userNameLabel.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), - userNameTextField.topAnchor.constraint(equalTo: userNameLabel.bottomAnchor, constant: 20), - userNameTextField.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), + userNameLabel.topAnchor.constraint(equalTo: midView.topAnchor, constant: 30), + userNameLabel.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 50), + + userNameTextField.topAnchor.constraint(equalTo: userNameLabel.bottomAnchor, constant: 10), + userNameTextField.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 50), + userNameTextField.trailingAnchor.constraint(equalTo: midView.trailingAnchor, constant: -35), + + passWordLabel.topAnchor.constraint(equalTo: userNameTextField.bottomAnchor, constant: 30), + passWordLabel.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 50), + + passWordTextField.topAnchor.constraint(equalTo: passWordLabel.bottomAnchor, constant: 10), + passWordTextField.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 50), + passWordTextField.trailingAnchor.constraint(equalTo: midView.trailingAnchor, constant: -35), - passWordLabel.topAnchor.constraint(equalTo: userNameTextField.bottomAnchor, constant: 20), - passWordLabel.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), - passWordTextField.topAnchor.constraint(equalTo: passWordLabel.bottomAnchor, constant: 20), - passWordTextField.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), loginButton.topAnchor.constraint(equalTo: passWordTextField.bottomAnchor, constant: 50), loginButton.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), - loginButton.widthAnchor.constraint(equalToConstant: 120), - loginButton.heightAnchor.constraint(equalToConstant: 50), + loginButton.widthAnchor.constraint(equalToConstant: 130), + loginButton.heightAnchor.constraint(equalToConstant: 45), + forgetButton.topAnchor.constraint(equalTo: passWordTextField.bottomAnchor, constant: 50), - forgetButton.trailingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.trailingAnchor, constant:-50 ), - forgetButton.widthAnchor.constraint(equalToConstant: 120), - forgetButton.heightAnchor.constraint(equalToConstant: 50), + forgetButton.trailingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.trailingAnchor, constant:-65 ), + forgetButton.widthAnchor.constraint(equalToConstant: 130), + forgetButton.heightAnchor.constraint(equalToConstant: 45), + + registerButton.topAnchor.constraint(equalTo: loginButton.bottomAnchor, constant: 70), registerButton.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), ]) @@ -133,30 +142,37 @@ class LoginView: UIView { startView.addSubview(loginLabel) //UserName TextField userNameTextField = UITextField() - userNameTextField.placeholder = "Enter Username" + userNameTextField.placeholder = "Type In" userNameTextField.borderStyle = .roundedRect userNameTextField.translatesAutoresizingMaskIntoConstraints = false midView.addSubview(userNameTextField) passWordTextField = UITextField() - passWordTextField.placeholder = "Enter Password" + passWordTextField.placeholder = "Type In" passWordTextField.borderStyle = .roundedRect passWordTextField.translatesAutoresizingMaskIntoConstraints = false + passWordTextField.isSecureTextEntry = true // This makes the text field secure + passWordTextField.autocorrectionType = .no // Disables autocorrection + passWordTextField.autocapitalizationType = .none // Disables auto-capitalization midView.addSubview(passWordTextField) + loginButton = UIButton() loginButton.setTitle("Login", for: .normal) loginButton.backgroundColor = customButtonColor loginButton.setTitleColor(UIColor.white, for: .normal) - loginButton.layer.cornerRadius = 20 + loginButton.layer.cornerRadius = 12 + loginButton.addTarget(self, action: #selector(buttonTapped(_:)), for: .touchUpInside) loginButton.translatesAutoresizingMaskIntoConstraints = false - midView.addSubview(loginButton) + forgetButton = UIButton() forgetButton.setTitle("Forget", for: .normal) forgetButton.backgroundColor = customButtonColor forgetButton.clipsToBounds = true forgetButton.setTitleColor(UIColor.white, for: .normal) - forgetButton.layer.cornerRadius = 20 + forgetButton.layer.cornerRadius = 12 + forgetButton.addTarget(self, action: #selector(buttonTapped(_:)), for: .touchUpInside) forgetButton.translatesAutoresizingMaskIntoConstraints = false + midView.addSubview(forgetButton) forgetButton.setTitleColor(.white, for: .normal) midView.addSubview(forgetButton) @@ -165,9 +181,16 @@ class LoginView: UIView { registerButton.setTitle("Register", for: .normal) registerButton.translatesAutoresizingMaskIntoConstraints = false registerButton.titleLabel?.font = UIFont.systemFont(ofSize: 25) - registerButton.setTitleColor(.blue, for: .normal) + registerButton.setTitleColor(UIColor(red: 0.035, green: 0.51, blue: 0.89, alpha: 1.0), for: .normal) self.addSubview(registerButton) } - + + @objc func buttonTapped(_ sender: UIButton) { + sender.backgroundColor = UIColor.lightGray // Change color on tap + DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) { + sender.backgroundColor = UIColor(red: 0.035, green: 0.51, blue: 0.89, alpha: 1.0) // Change back after delay + } + } } + diff --git a/PowerUp/ProfileScreen/ProfileView.swift b/PowerUp/ProfileScreen/ProfileView.swift index d8db0a7..98ca742 100644 --- a/PowerUp/ProfileScreen/ProfileView.swift +++ b/PowerUp/ProfileScreen/ProfileView.swift @@ -9,24 +9,32 @@ import UIKit class ProfileView: UIView { + var startView: UIView! let profileImageView = UIImageView() let nameLabel = UILabel() let emailLabel = UILabel() let versionLabel = UILabel() let signOutButton = UIButton() let deleteAccountButton = UIButton() + var headLabel: UILabel! override init(frame: CGRect) { super.init(frame: frame) setupView() setupConstraints() } - + required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } private func setupView() { + // Create and style the startView similar to LoginView + startView = UIView() + startView.backgroundColor = UIColor(red: 0.035, green: 0.51, blue: 0.89, alpha: 1.0) // Use the same color as in LoginView + startView.translatesAutoresizingMaskIntoConstraints = false + addSubview(startView) + backgroundColor = .white profileImageView.contentMode = .scaleAspectFill @@ -60,8 +68,25 @@ class ProfileView: UIView { addSubview(deleteAccountButton) } + func setupVariables(){ + //Sign Up Label + headLabel = UILabel() + headLabel.text = "Welcom" + headLabel.font = UIFont.boldSystemFont(ofSize: 26) + headLabel.textColor = .white + headLabel.translatesAutoresizingMaskIntoConstraints = false + startView.addSubview(headLabel) + } + private func setupConstraints() { NSLayoutConstraint.activate([ + + // Constraints for startView + startView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor), + startView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor), + startView.topAnchor.constraint(equalTo: self.topAnchor), + startView.heightAnchor.constraint(equalToConstant: 200), // Set the height as in LoginView + // Profile Image Constraints profileImageView.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor, constant: 20), profileImageView.centerXAnchor.constraint(equalTo: centerXAnchor), diff --git a/PowerUp/ProfileScreen/RegisterView.swift b/PowerUp/ProfileScreen/RegisterView.swift index 5880f08..8039d3e 100644 --- a/PowerUp/ProfileScreen/RegisterView.swift +++ b/PowerUp/ProfileScreen/RegisterView.swift @@ -14,13 +14,16 @@ class RegisterView: UIView { var passWordLabel: UILabel! var userNameTextField: UITextField! var passWordTextField: UITextField! + var confirmPasswordLabel: UILabel! + var confirmPasswordTextField: UITextField! var signupLabel: UILabel! var signupButton: UIButton! + var backButton: UIButton! let customStartBgk = UIColor(red: 0.035 , green: 0.51 , blue: 0.89, alpha: 1.0) - let customButtonColor = UIColor(red: 0.45 , green: 0.72 , blue: 1, alpha: 1.0) + let customButtonColor = UIColor(red: 0.035, green: 0.51, blue: 0.89, alpha: 1.0) let midBgkColor = UIColor(red: 0.9882, green: 0.9882, blue: 0.9882, alpha: 1.0) /* @@ -73,39 +76,63 @@ class RegisterView: UIView { func initConstraints(){ NSLayoutConstraint.activate([ - startView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor), // Leading constraint to the left edge - startView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor), // Trailing constraint to the right edge - startView.topAnchor.constraint(equalTo: self.topAnchor, constant: 0), // Adjust top spacing as needed - startView.heightAnchor.constraint(equalToConstant: 200), + startView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor), + startView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor), + startView.topAnchor.constraint(equalTo: self.topAnchor), + startView.heightAnchor.constraint(equalToConstant: 200), - midView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 30), - midView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -30), - midView.topAnchor.constraint(equalTo: startView.bottomAnchor, constant: -40), - midView.heightAnchor.constraint(equalToConstant: 350), signupLabel.topAnchor.constraint(equalTo: self.topAnchor, constant: 70), signupLabel.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant:16), signupLabel.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor,constant: -16), - userNameLabel.topAnchor.constraint(equalTo: midView.topAnchor, constant: 16), - userNameLabel.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), - userNameTextField.topAnchor.constraint(equalTo: userNameLabel.bottomAnchor, constant: 20), - userNameTextField.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), + // Constraints for midView + midView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 30), + midView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -30), + midView.topAnchor.constraint(equalTo: startView.bottomAnchor, constant: -40), + midView.bottomAnchor.constraint(equalTo: self.safeAreaLayoutGuide.bottomAnchor, constant: -20), + + // Username Label + userNameLabel.topAnchor.constraint(equalTo: midView.topAnchor, constant: 30), + userNameLabel.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 50), + + // Username TextField + userNameTextField.topAnchor.constraint(equalTo: userNameLabel.bottomAnchor, constant: 10), + userNameTextField.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 50), + userNameTextField.trailingAnchor.constraint(equalTo: midView.trailingAnchor, constant: -35), + + // Password Label passWordLabel.topAnchor.constraint(equalTo: userNameTextField.bottomAnchor, constant: 20), - passWordLabel.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), - passWordTextField.topAnchor.constraint(equalTo: passWordLabel.bottomAnchor, constant: 20), - passWordTextField.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), - signupButton.topAnchor.constraint(equalTo: passWordTextField.bottomAnchor, constant: 50), - signupButton.leadingAnchor.constraint(equalTo:self.safeAreaLayoutGuide.leadingAnchor, constant:50 ), + passWordLabel.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 50), + + // Password TextField + passWordTextField.topAnchor.constraint(equalTo: passWordLabel.bottomAnchor, constant: 10), + passWordTextField.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 50), + passWordTextField.trailingAnchor.constraint(equalTo: midView.trailingAnchor, constant: -35), + + // Confirm Password Label + confirmPasswordLabel.topAnchor.constraint(equalTo: passWordTextField.bottomAnchor, constant: 20), + confirmPasswordLabel.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 50), + + // Confirm Password TextField + confirmPasswordTextField.topAnchor.constraint(equalTo: confirmPasswordLabel.bottomAnchor, constant: 10), + confirmPasswordTextField.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 50), + confirmPasswordTextField.trailingAnchor.constraint(equalTo: midView.trailingAnchor, constant: -35), + + // Register Button + signupButton.topAnchor.constraint(equalTo: confirmPasswordTextField.bottomAnchor, constant: 30), + signupButton.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 50), signupButton.widthAnchor.constraint(equalToConstant: 120), signupButton.heightAnchor.constraint(equalToConstant: 50), - - ]) - backButton.leadingAnchor.constraint(equalTo: midView.leadingAnchor).isActive = true - backButton.topAnchor.constraint(equalTo: midView.bottomAnchor, constant: 10).isActive = true + // Cancel Button + backButton.topAnchor.constraint(equalTo: confirmPasswordTextField.bottomAnchor, constant: 30), + backButton.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -65), + backButton.widthAnchor.constraint(equalToConstant: 130), + backButton.heightAnchor.constraint(equalToConstant: 45) + ]) } func setupVariables(){ @@ -123,7 +150,7 @@ class RegisterView: UIView { passWordLabel.textColor = .black passWordLabel.translatesAutoresizingMaskIntoConstraints = false midView.addSubview(passWordLabel) - //Login Label + //Sign Up Label signupLabel = UILabel() signupLabel.text = "Sign Up" signupLabel.font = UIFont.boldSystemFont(ofSize: 26) @@ -132,27 +159,62 @@ class RegisterView: UIView { startView.addSubview(signupLabel) //UserName TextField userNameTextField = UITextField() - userNameTextField.placeholder = "Enter Username" + userNameTextField.placeholder = "Type In" userNameTextField.borderStyle = .roundedRect userNameTextField.translatesAutoresizingMaskIntoConstraints = false midView.addSubview(userNameTextField) passWordTextField = UITextField() - passWordTextField.placeholder = "Enter Password" + passWordTextField.placeholder = "Type In" passWordTextField.borderStyle = .roundedRect passWordTextField.translatesAutoresizingMaskIntoConstraints = false + passWordTextField.isSecureTextEntry = true // This makes the text field secure + passWordTextField.autocorrectionType = .no // Disables autocorrection + passWordTextField.autocapitalizationType = .none // Disables auto-capitalization midView.addSubview(passWordTextField) + + // Confirm Password Label + confirmPasswordLabel = UILabel() + confirmPasswordLabel.text = "Confirm Password" + confirmPasswordLabel.font = UIFont.systemFont(ofSize: 18) + confirmPasswordLabel.textColor = .black + confirmPasswordLabel.translatesAutoresizingMaskIntoConstraints = false + midView.addSubview(confirmPasswordLabel) + + // Confirm Password TextField + confirmPasswordTextField = UITextField() + confirmPasswordTextField.placeholder = "Re-type Password" + confirmPasswordTextField.borderStyle = .roundedRect + confirmPasswordTextField.isSecureTextEntry = true + confirmPasswordTextField.autocorrectionType = .no + confirmPasswordTextField.autocapitalizationType = .none + confirmPasswordTextField.translatesAutoresizingMaskIntoConstraints = false + midView.addSubview(confirmPasswordTextField) + signupButton = UIButton() - signupButton.setTitle("Sign Up", for: .normal) + signupButton.setTitle("Register", for: .normal) signupButton.backgroundColor = customButtonColor signupButton.setTitleColor(UIColor.white, for: .normal) - signupButton.layer.cornerRadius = 20 + signupButton.layer.cornerRadius = 12 + signupButton.addTarget(self, action: #selector(buttonTapped(_:)), for: .touchUpInside) signupButton.translatesAutoresizingMaskIntoConstraints = false - midView.addSubview(signupButton) - backButton = UIButton(type: .system) - backButton.setTitle("Back", for: .normal) + backButton = UIButton() + backButton.setTitle("Cancle", for: .normal) + backButton.backgroundColor = customButtonColor + backButton.clipsToBounds = true + backButton.setTitleColor(UIColor.white, for: .normal) + backButton.layer.cornerRadius = 12 + backButton.addTarget(self, action: #selector(buttonTapped(_:)), for: .touchUpInside) backButton.translatesAutoresizingMaskIntoConstraints = false - self.addSubview(backButton) + midView.addSubview(backButton) + } + + // Button tap action + @objc func buttonTapped(_ sender: UIButton) { + sender.backgroundColor = UIColor.lightGray // Change color on tap + DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) { + sender.backgroundColor = UIColor(red: 0.035, green: 0.51, blue: 0.89, alpha: 1.0)// Change back after delay + } } } diff --git a/PowerUp/ProfileScreen/RegisterViewController.swift b/PowerUp/ProfileScreen/RegisterViewController.swift index 0f9b063..4d7a37e 100644 --- a/PowerUp/ProfileScreen/RegisterViewController.swift +++ b/PowerUp/ProfileScreen/RegisterViewController.swift @@ -60,12 +60,18 @@ class RegisterViewController: UIViewController { } - @objc func onButtonSignupTapped(){ + @objc func onButtonSignupTapped() { guard let email = registerView.userNameTextField.text, !email.isEmpty, - let password = registerView.passWordTextField.text, !password.isEmpty else{ + let password = registerView.passWordTextField.text, !password.isEmpty, + let confirmPassword = registerView.confirmPasswordTextField.text, !confirmPassword.isEmpty else { alert(message: "Please fill all fields") return } + + if password != confirmPassword { + alert(message: "Passwords do not match") + return + } //Get auth instance //attemp sign in From 794d7dd470d84dff7d8a3bc23c1e571f6013e639 Mon Sep 17 00:00:00 2001 From: jcport1 Date: Mon, 20 Nov 2023 08:39:32 +0100 Subject: [PATCH 45/71] Updates --- PowerUp.xcodeproj/project.pbxproj | 63 ++++++++- .../xcshareddata/swiftpm/Package.resolved | 122 ++++++++++++++++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 60461 bytes 3 files changed, 182 insertions(+), 3 deletions(-) create mode 100644 PowerUp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 PowerUp.xcodeproj/project.xcworkspace/xcuserdata/jeffersoncuartas.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index e079968..d457613 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -10,6 +10,11 @@ 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */; }; 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */; }; 11433FBE2ABCBCDD005AA716 /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 11433FBD2ABCBCDD005AA716 /* .gitignore */; }; + 33D0094D2AFECF36004BB2AE /* StripePaymentsUI in Frameworks */ = {isa = PBXBuildFile; productRef = 33D0094C2AFECF36004BB2AE /* StripePaymentsUI */; }; + 33E1BD922B02A52700E70B4A /* CheckOutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33E1BD912B02A52700E70B4A /* CheckOutViewController.swift */; }; + 33E1BD942B02A54500E70B4A /* CheckOutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33E1BD932B02A54500E70B4A /* CheckOutView.swift */; }; + 33E1BD972B02B00500E70B4A /* PaymentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33E1BD962B02B00500E70B4A /* PaymentViewController.swift */; }; + 33E1BD992B02B01D00E70B4A /* PaymentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33E1BD982B02B01D00E70B4A /* PaymentView.swift */; }; 8583334D2AE0AA9E005540D6 /* FirebaseAuth in Frameworks */ = {isa = PBXBuildFile; productRef = 8583334C2AE0AA9E005540D6 /* FirebaseAuth */; }; 8583334F2AE0AB4A005540D6 /* RegisterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8583334E2AE0AB4A005540D6 /* RegisterViewController.swift */; }; 858333512AE0AB5F005540D6 /* RegisterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858333502AE0AB5F005540D6 /* RegisterView.swift */; }; @@ -55,6 +60,10 @@ 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileScreenController.swift; sourceTree = ""; }; 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileScreenView.swift; sourceTree = ""; }; 11433FBD2ABCBCDD005AA716 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; + 33E1BD912B02A52700E70B4A /* CheckOutViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckOutViewController.swift; sourceTree = ""; }; + 33E1BD932B02A54500E70B4A /* CheckOutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckOutView.swift; sourceTree = ""; }; + 33E1BD962B02B00500E70B4A /* PaymentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentViewController.swift; sourceTree = ""; }; + 33E1BD982B02B01D00E70B4A /* PaymentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentView.swift; sourceTree = ""; }; 8583334E2AE0AB4A005540D6 /* RegisterViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterViewController.swift; sourceTree = ""; }; 858333502AE0AB5F005540D6 /* RegisterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterView.swift; sourceTree = ""; }; 858333522AE0AE07005540D6 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; @@ -87,6 +96,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 33D0094D2AFECF36004BB2AE /* StripePaymentsUI in Frameworks */, 8583334D2AE0AA9E005540D6 /* FirebaseAuth in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -119,6 +129,31 @@ path = ProfileScreen; sourceTree = ""; }; + 33E1BD952B02A54E00E70B4A /* Checkout Screen */ = { + isa = PBXGroup; + children = ( + 33E1BD912B02A52700E70B4A /* CheckOutViewController.swift */, + 33E1BD932B02A54500E70B4A /* CheckOutView.swift */, + ); + path = "Checkout Screen"; + sourceTree = ""; + }; + 33E1BD9A2B02BEC500E70B4A /* Payment Screen */ = { + isa = PBXGroup; + children = ( + 33E1BD962B02B00500E70B4A /* PaymentViewController.swift */, + 33E1BD982B02B01D00E70B4A /* PaymentView.swift */, + ); + path = "Payment Screen"; + sourceTree = ""; + }; + 33E211E42AFECA4300DECF22 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; 858F15362ABB77F0002B64C1 = { isa = PBXGroup; children = ( @@ -128,6 +163,7 @@ 858F15582ABB77F1002B64C1 /* PowerUpTests */, 858F15622ABB77F1002B64C1 /* PowerUpUITests */, 858F15402ABB77F0002B64C1 /* Products */, + 33E211E42AFECA4300DECF22 /* Frameworks */, ); sourceTree = ""; }; @@ -157,6 +193,8 @@ 858F154B2ABB77F1002B64C1 /* Assets.xcassets */, 858F154D2ABB77F1002B64C1 /* LaunchScreen.storyboard */, 858F15502ABB77F1002B64C1 /* Info.plist */, + 33E1BD952B02A54E00E70B4A /* Checkout Screen */, + 33E1BD9A2B02BEC500E70B4A /* Payment Screen */, ); path = PowerUp; sourceTree = ""; @@ -232,6 +270,7 @@ name = PowerUp; packageProductDependencies = ( 8583334C2AE0AA9E005540D6 /* FirebaseAuth */, + 33D0094C2AFECF36004BB2AE /* StripePaymentsUI */, ); productName = PowerUp; productReference = 858F153F2ABB77F0002B64C1 /* PowerUp.app */; @@ -281,7 +320,7 @@ attributes = { BuildIndependentTargetsInParallel = 1; LastSwiftUpdateCheck = 1430; - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1500; TargetAttributes = { 858F153E2ABB77F0002B64C1 = { CreatedOnToolsVersion = 14.3.1; @@ -307,6 +346,7 @@ mainGroup = 858F15362ABB77F0002B64C1; packageReferences = ( 8583334B2AE0AA9D005540D6 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */, + 33E211E32AFEC18900DECF22 /* XCRemoteSwiftPackageReference "stripe-ios-spm" */, ); productRefGroup = 858F15402ABB77F0002B64C1 /* Products */; projectDirPath = ""; @@ -361,13 +401,15 @@ 858F16C92ACE60C6002B64C1 /* StartScreen.swift in Sources */, 858F16C82ACE60C6002B64C1 /* StartScreenController.swift in Sources */, 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */, + 33E1BD972B02B00500E70B4A /* PaymentViewController.swift in Sources */, 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */, 858333512AE0AB5F005540D6 /* RegisterView.swift in Sources */, 858F16C32ACE60A6002B64C1 /* WalletViewController.swift in Sources */, - 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */, - 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */, + 33E1BD992B02B01D00E70B4A /* PaymentView.swift in Sources */, 8583334F2AE0AB4A005540D6 /* RegisterViewController.swift in Sources */, + 33E1BD942B02A54500E70B4A /* CheckOutView.swift in Sources */, 858F16B52ACB97A1002B64C1 /* TimeViewController.swift in Sources */, + 33E1BD922B02A52700E70B4A /* CheckOutViewController.swift in Sources */, 858F16C42ACE60A6002B64C1 /* WalletView.swift in Sources */, 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, @@ -462,6 +504,7 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -522,6 +565,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -714,6 +758,14 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ + 33E211E32AFEC18900DECF22 /* XCRemoteSwiftPackageReference "stripe-ios-spm" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/stripe/stripe-ios-spm"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 23.18.2; + }; + }; 8583334B2AE0AA9D005540D6 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk"; @@ -725,6 +777,11 @@ /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ + 33D0094C2AFECF36004BB2AE /* StripePaymentsUI */ = { + isa = XCSwiftPackageProductDependency; + package = 33E211E32AFEC18900DECF22 /* XCRemoteSwiftPackageReference "stripe-ios-spm" */; + productName = StripePaymentsUI; + }; 8583334C2AE0AA9E005540D6 /* FirebaseAuth */ = { isa = XCSwiftPackageProductDependency; package = 8583334B2AE0AA9D005540D6 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */; diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/PowerUp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..f029d7e --- /dev/null +++ b/PowerUp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,122 @@ +{ + "pins" : [ + { + "identity" : "abseil-cpp-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/abseil-cpp-binary.git", + "state" : { + "revision" : "bfc0b6f81adc06ce5121eb23f628473638d67c5c", + "version" : "1.2022062300.0" + } + }, + { + "identity" : "firebase-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/firebase-ios-sdk", + "state" : { + "revision" : "837d4af6ead57cec1fc38007892500d3139c7556", + "version" : "10.16.0" + } + }, + { + "identity" : "googleappmeasurement", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleAppMeasurement.git", + "state" : { + "revision" : "56f681586ff006a7982b53dc94082eea31971acf", + "version" : "10.16.0" + } + }, + { + "identity" : "googledatatransport", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleDataTransport.git", + "state" : { + "revision" : "aae45a320fd0d11811820335b1eabc8753902a40", + "version" : "9.2.5" + } + }, + { + "identity" : "googleutilities", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleUtilities.git", + "state" : { + "revision" : "c38ce365d77b04a9a300c31061c5227589e5597b", + "version" : "7.11.5" + } + }, + { + "identity" : "grpc-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/grpc-binary.git", + "state" : { + "revision" : "a673bc2937fbe886dd1f99c401b01b6d977a9c98", + "version" : "1.49.1" + } + }, + { + "identity" : "gtm-session-fetcher", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/gtm-session-fetcher.git", + "state" : { + "revision" : "d415594121c9e8a4f9d79cecee0965cf35e74dbd", + "version" : "3.1.1" + } + }, + { + "identity" : "interop-ios-for-google-sdks", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/interop-ios-for-google-sdks.git", + "state" : { + "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648", + "version" : "100.0.0" + } + }, + { + "identity" : "leveldb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/leveldb.git", + "state" : { + "revision" : "0706abcc6b0bd9cedfbb015ba840e4a780b5159b", + "version" : "1.22.2" + } + }, + { + "identity" : "nanopb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/nanopb.git", + "state" : { + "revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692", + "version" : "2.30909.0" + } + }, + { + "identity" : "promises", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/promises.git", + "state" : { + "revision" : "e70e889c0196c76d22759eb50d6a0270ca9f1d9e", + "version" : "2.3.1" + } + }, + { + "identity" : "stripe-ios-spm", + "kind" : "remoteSourceControl", + "location" : "https://github.com/stripe/stripe-ios-spm", + "state" : { + "revision" : "d1e98b0acad316d1bf7d30bfdf34ec8ca9ca1e15", + "version" : "23.18.2" + } + }, + { + "identity" : "swift-protobuf", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-protobuf.git", + "state" : { + "revision" : "3c54ab05249f59f2c6641dd2920b8358ea9ed127", + "version" : "1.24.0" + } + } + ], + "version" : 2 +} diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/jeffersoncuartas.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/jeffersoncuartas.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..0faa1ed55445d16a5039fc89e770c3fa5c0785b4 GIT binary patch literal 60461 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

    e>j0y*`>VV@JQIu z20U^)gVk#cRx?_`Dn`mOy)M1CmG>MtzH7sA)QSw2?wF*tsre5!n=e6D<0&x6|!O`b3$1=(X zD8HP+am5ih9)38gGQd&wP`)GzM^ytjs=B2697_$T_gTF z6|}LX?E|FRUF~H9QtfF2k}XiH@eGj5S_4wOD`9j})DJn-B|K0aVk1)>Y$LPcAO*Nt zQqg9pNxa zbu_<69mDlg^BFQ%yNvQUn^7Lmkh%T{GXDi+vK?D$5#?)LWX@*FD8IIym@HGv0aB`;$;frK#D0xQ>=|uHY_qousw(wZ2Zz-*4y}LYkm@S+1ct-a zYOQ*lx<*~Au2YX!*Q=IFDSraxPoz938z)m9l#NpS;rB=@@Kg?1Ru~A^(yshc-2wn zGR2HHhr1xTR=tiPavSB(uTvW+e?dDDd6RmJ!zFLFx#We6$=$}d;OAnIW&GLx)9K+_L>SO9o^>OtH^-1+9^=b7P6;uvr`4yDElJXlV ze--7graTA)Xm>s3H#exyN3prf@&Bl=GHh;fvAMO;|I=^;n*Rbc_cCaHMEPr6XnqRN zY&$yA9qMn?eGHVKmR(z?en*CnhS`P-qy8v};(U8BV(Z+t@2oMiH5VauyL=AQj-yH>_2A-e;%W5rC%LWi? zS(LxGPRpS@L^Za@pwUKX5Gn*9)Q+}6xC0QSeuZM7Cg=a@MI3s(TiT}OcUF8~qlj;Yf?m4DU+V$DH;xK=x! z0dXDWpRd!v+yDkvlZ)Auc9l_zhfWx~P4)3A-doB)l01jCM1$(s-MWH>a?PN#< zp7KGR20Z1%b|Ud<4SYk4B|d8-aW7!%AL1dj-P)^;TzI&t5tkX5h|I|JZ>ZTqC zh|**D36zHenB;oB1GAxjX~Tw&>3Uw2x9Q#Vo;D8k9ySht103od7!&=a6%%!{BPkcd%3g~%=r3A;7+$TqHE=&;_xq>lp}>fA}M`l2t_ z;c}b?eT813SL#)IP_NdH)kAt%k5FP#5<^KWC2^E=prj)uoha!{3EX$nwLxDQ#o=*E zPkk-dPd}dFu$zm+-mpMT30!PWN&h22Jp2q%Ka&CREK0h&Ks**XdVK5?`lpq@+(fAz7zyVUPp~O-WxHlGiXuCbR{~ zPM4YeTzWU?+Z|BeWP_5eZ|m1EP$nD@ly~S4F;L#A-=*KJ-=p8F->2`;@7EvDAEX3O zHJFkilpICLP)ZUhNunf~k`zi(8}x^xpxmiH&f*;Prx+;HTu^3E0*j<9&XMFE0p-5{ z%GVeuU#BG91?8TDa>oz!y$p&UQj%Gxe?&=EJE8cQ{w0Ir=M0M342p6AKoPdfwBA&h zFnVZ<5J&xc{U-;GKiY5{25>ykW*Zm5e|RMZ$3OMI^uN8F7kROl_Y$w*6)9ZUMn+P& zu#JqOWHco(A;wTLmcrd^WL$$+cHrpM9Mi>XGB}QR;Rsf|6XHlFA3@{cN29kFpwZi# zk_k~Xdiw$z+rB0@I@I35-lG7KUSKZ;bzWdE$FvWT-V|>-pvs%d5IKnKgbQ+8 zBhn?6>xFnBxC+-h+y>$l03rl0fU6sHg#9jBbhC`{P5~f#$9nU<1>R%4 zlf08DnMO$=C7@``pac|+nUu_;WHu#pD4E;fo$44b-WiV4=$*}gI1fPNipEcyOzn@C9QB3qqut?ywrP=gT@nWG?pABms`OzycaPvZt$Mz zJU`cXy+w09{b<&-R=BtXe>N>)%(K}ltU_u?oTFORats~8%q zTr|Q;WRxw|96{s1z!q;{XuOeT>rOp7y$f@naq9Ga{K$Rge5q%mH(T2k8m($x2(J^A*C^f@0m_vv!GGc8k zZU8JAAk|sE14wD3tI-dzXmm5W8$FDkMlYkc5pVP{`Wgw8oJGmml$=A!xfHHECFfIe z0VTjMFQVk)2BW`&MPsnMjKxP7i42RExLAb!*jt_W2y)dCFdlv|8p8pM1}OBGM!{%| zvKb=_`UWsUWC{dS!CNC+G{zef8599fm)98ulw8qHC{8g785E~7C|+qpaXN$I#x|k& zt_#IE2J;C46zADcyqZCAI)mcI1440$v4TO-XOtMFMw#I^mKx>8G9zGsG_Iqho|4U! zY@y^DO14sREhXD1xsH;C2BRVh#cD@H8xaP@>s=_`*eIfJJ%Yr40f{FtB%Vmg4K5N- z0VJXWMT{9|8Rsw@0%y6Y&H&D`y`4C`(6FPmCm0Z|4dVG`hN#OJqHbx0sF=iwE)K6U z>Kq(yvT=CZL2|iSt~G9DINWAjXEYes8#fp?8aEl+jhl^ID7k}@J1JZ@OhCK1hZ4{( zpaMH6xu22;8jRbbIK0ad&&GWWhYz|qe7I3OKYj#<{{jx5VmN%7l80Oz!tF8#!QsmW ztjEidHK&<{=5(tI zC7%IMVb*+3$rqG-Ny%4~d`-zW)}Z-;@VJUVd7z{M?$GT3$KAtCg3eV_g>bR_(qIT~ zr0>-H=YlYtRSDOHMIilt59Yv0ofUp|x1s6eD9WES+ZPJ>*wt1o%69JugiGz5lzE}j zWpMLVX{09PpVyeV@v&2*@xIDHMJ>DPw^=o(z!{7c>>x(C*DFxHELi0a2P$iz?(8zJ z*1sHGwlY#?U!|3}U+Q*UdOyn-s?5rOYx4HXoCDIeGtG0`sIz&VdA*sDP~Ggi+r*>k6e@e1FWv?=mmt z4D&Mca=6eesSM7zofbpXf8i4B?Pgb1i|f#%=inhJ!-kJY7@1da%%sUvissB+SnS-3 zz1z7L8*ZGAwy$3)yIyqR)S|pdBorvAiTJ~CmvtA5pI1~{4mU;hCE2f=Sef#du@Yw7q3UpXU^ z?+=%T0@X0tpp=Qe@SH$dWErGmtSw>m0H@PpPBSe@wnPiA2k4Xprys*f?X}^Ezj9Uq zqcJ8}QMTKA)KIwH8g9UI=r)zx2;pw~KWWy$PO%n(@@3Yt)XeUi)6z36kEK}Z=B(@- zO9R2((Spkv;+!H_BN{Wq1&~vV#?E9F8SnQo{^Q<_+AK*IH_5DmSz)*gweiuePTr$O z*Nw8gRtH9V%((9LWAiP;GV8}ruwtxOMzuSX?v`8uEH2pWWqlC7DA4hv-ZDeeCF&KFxGjYkPqgR;k1=?y4@7W zF>gL_?EQPUe!+}3eudPF7DusBzi0-0UE%{S-3)DI4i4)}AbT6XAK;epAXme!e1;5KqsbJuYgX99oMgIuV_L&PL~=^U;OqQgk`G5?zHhp*ztV=m+#G`W^j={>CEqU={1w#Id*o z?u0Y&R9uK>;5oPiufVJE8hjEy9bbyC#9Q#4_&)qRehKfzpW$!u_xKlH=S>IK7&(8r z(&*plAHF{ouzlyDd8N5=(bS?TH4z^O*nD6Vo8hOcxDC*S?3>GmHksGLedoYB>&?w3 zHLo$jKL3rvwdR5VJd_F|6{M}^Hk@iUnAhV}oJs}RdXfqrDk#>I@DFBA--9zthOU21 z1a*Q$0}oyjOH>r8Wy0tmQnKqO?34+kWv6d;kvd?UcaY5qc{@+uv~gPJ$0=G4IGY(P z^VP=tBJnxH(lX-nra0o}9#90i7+_znYudcue2^Pz|5j%{LT!>wJI0 zzGKz-{4|O*@a6b9^EvZ*^9A!o^Cfeax!Z)zrM;~0s9;hdmI@uH(1{9NsL+iHJ*WV2 z6wOY*H{Y;N7Z>2VnM1zbG z!XPF7udY}yzjCV3^h=Fa&9m@U6 zlgbOq%gU?D>&n~8yUGX3UR725s>$kTb&Q&?j#nqD$EcIlscNC>Q%hC9x=dZJR;X2K zwHi_*>Y3_u>RYh2Clj_)gtfD^b0DI9yLO9qn|6nGmv)bKpLW0Yp!Tr#vi7R>y7s2_ z7K9wX2jRwhwU4z=wcmBG-dE4m3-s9#dbeIbOFvt`Lcc-3NxxaYRlgl#pYDdZrycrp z`V0C?`fmLd{Wbj!eUJXO{;pT^9_^jsE%Tn?z0Uir_iOL(27%QL*-#A4=xB6?1&Hpj z?$F!FGL8Ya@A1Y4<4oovG%htZgX`@c;{oFd;{$MldW4tR>y{7*Tt@nrLiZ*o*a8>?CG(aVzS10n;17KZc5y=xH)lUae=rMag}kQxJcZ}xYcpB zaVNxG7PmF-y147(Zi>4(?$)>m|6faI`j!L&X#KLBwrO=qMO)Nd2yp>X!6nVgQV};? zK+WA$1PMe5B@{t~P(leM5k-_xQV}H-)JjRKshP_5WttYp)^Tdum-oKUy`Rp%aL#jn z=Q$RW7H2KaTl{Wu-D1w-w#8kG`xXlpuPokJELyy?_|MYJ(%f=|i2AEoqijmPakCEt!@q%Q{Q7Xbk zrr3sM(_u4UbIInm%@dnvHuE+MHZN^n+kCS5V)M=BhwTzuGu!31_O{`+<+d%h6Sgz9 zS8e~Wy>2^ad&~Bz?KeAfyG?esc3bV->~`9D*m>GT*kSAn?W*mX?FQ|J?1t@hc6z%p zJEPsA-508&CjX1DXILfEdsUkOLF| z4L}PR0h|F$11uJ?Z@n=>`nGF z_809h+t1nGvcF@0&;Eh^Bl`~ys~wyif*n#E@*EC16giYQ5FCgO#~efsLk`0ZI>$d8 zA3DxEE;zn)eC_zw@sr~h$8U~5oR&D5IoUdSIPG=HbfP(NoOn)rCxMgDso813N$+&i z>9*5d=UQjJv&32IEOVASE1Y|rFFD_Ee&YPhdER-!`K9w~=eN#_&hK^rcVzDn?f8Ai z2N$SIhD(79*`?ft>Qd=KcVW1+yY#sXx(vAtyNtRRT*h4{U2eO4ab4lM#dVvjqpP#) z|AZD-pex7~?CRy};|g_+bd7e6agBA2cTIFna!qwjbIowga?N$kcdc|)xf)zAxV~^R zb8~YGbc=K=aTB;n-Fn49Y76G3mgHS0geI;AZd%a0^%hZUeW2JHXe$_rcG=^WX*WOYm#( zTktpV56>l@W}aI;L7rewFHaxOAkPDyQJzRolxLb}hG(W{wkN@p=E?G`^Q`yedA|4j z?q%U+;|2Ee^9u6{_uA{l^=k5xc`3XGy~e#vUe~;Cc-{26?e*Ae-s{!>SY{vZ5bp$U zw0E+1syEg<-TR<-mUoVKp7$Z|DsP5&jd!g#+q>TTn0JG>z`My?=uv15v=+*Sa-dvj6SNH~gUX@Z&{NP}=o#o3)Ciq`K7_u6 zzJV@6-}x@}UFN&NcayKBueGm}uZypnFVNS=H^ev0H{5rx?~w1L?>XNo-wVDUVM}1k zV86gt!ZyM{Fi)5dEFOl2CBrbVbXX=V2bK>jgw?=UFb<3hI|gfj31F=-IjkFY3f2ef zhYiBUVP|3IVbic{usPUm*j?B>YytKX_8RsD_8s=qZ>irZKWjf*KY*WuAJ8wvFU)U` zUxZ(zAJQ+@FTpR#FV!#2kLXACqxe<$9r3I3WB4)sSbiKouHP{~mEWx2Yyb8B5dRea zO8=AoWB#}OANxP`pZ8zz|JVPk|9AhN0ZRjx1(*kH3a|>W2>=9a3D_186mTFQCLk^# zF(5Sn8;}u@89)d)96$@G3g8Ab1_%R00g`~W09in1z+k{=z_ox|0dL_;;dXEb_%^sB z+!^iycY}Mw;qV~%F8FTvUU&pN5uOZBg=67|;Kgt}ycAvqKMJpgGvNYw6I=ur!)0(a zd;qS2YvE_%Q}7G$i}2szSK&|Kui%UD_wbMK&xl_TYZ2=a8xa-=JA?ybE5Z@si~uA2 z5aEbOL^L7>5sOGhU=V4DgNQ5y2~mltM@SKa2ra^hm_=Mc+(o<%Tpws32nmD*1_TBM zh6IKM?g@+tj0{8u#s($?76q0BmIjgnDS;J%v_N`bbs#g49ata83zP*K11|}bz5@ZaT3_2fV3i>VR_n_-RH-l~meGc{xP7TfvE(|UX#s?FFNx_xD zwZZ&gL2zquM{sxWQ1D3bnc%VD@!-ke+2HHJH$yB!>_fmIz9GROks-*C*pP&fq>z*l zQAm4;GNd=;OvrS|Ovt5>DV0y~+IbnHWhr`HW zlrZY|QT_T7DR_mkcK?0&cV!|un6+kr=^_7>jtff9wAJ`$>_8$l1utkyj(HMb1UuihLURJo4|zmr;IE;ZgBX=%|z^ zY*a>6R#a|OK@=s58dVu}G^!?w6~&3-Me(D?qh3V=q9dcrq7~6sqW_NmFZx6D$LP<< zbw~ix9_fJGiUc7&kYJ=2G5{Hf3_*q>7NyVxTbzF@-UdnDUs4m?JTDG29q_j3A~dMie8DQN;AbsA4{%mZR37 z)}c0{EKvZI18N(}3AF>Y7j+0#kLpDAqE4d*Q9~#L%7~gkT}J(Zx`Dcdx{rE<`U~|G zwTOC$`VaLfHZ8U=wm7yVwlwxi?7i4Gv5T?qV?V}ziTxh8ByL&UFLA5l?Blk^ImYdX zbBo&<2afZOgT}$){NoP9CC1U>8sqxnOmWxZUd8>4Um0%|ZxauQ-x9w)-Z|bi-aQ@` z9~vJO9}^!J-y5%uH^iTfzY_mP{EY-qLO?=bLP&x*L6M+L=uKRfxFOLZ(K->INK2$A zRwv#|e44nJ_;2F7#Q)Ii(3{bAXb1FGG!P9zXP^tvMd%VV0eu8rhnAqF=nixjx(BU7 ztI-4KA@m4(7JV6g6@3johrW%zhkl5DjDCWChW?mjmgJrkl$4TmIEkLrlGK+poOCW} zI%y{9Qqq;AKay@F-AsCt^gL-HIV?FQIW9Rd`E>GF@_6#u6uT7H6kv)+3M)mJB1&mV z`8VZfs#&UeDmFDYm6&=sm6TeR+K?(vm842jWvRWX+SET&7gArPzD-?B{ecO^gk$z$ z4q&1&C`>#CjY+{^F&UUFOfIGXQ-mqOlwwF23WkcQ#2m%cU|1LqhKFgu9LF?c#25)i zis`^S#mr+~U|wVX!MwwKz5Cv1_pFup6(8OFV-K6zy@POvEkUg*m!IrHVK=GoyK0n-oW0(-br&v1Ezt}z-iuTk~C$SDy=WA zKYeYwUAlexmh|oE%ydDzFugfloc<}pJYz-1s*GPVNEwWbnvB|vx{Sq)9|xBlG&^X1 z@aVx~2OACw4mM>j$y}ScK67KHWhNt&pV^psJhM4-A@f7#r_3*z-?I|3GPAO?abwBH2*5mB3?3nD>?D%YS_Hg#O?5S*1_H2%KPH@hyoUoidIg%V@jw+`wr$2XD z?uOh=xt6(`bE&!PTuv@Gm!G?s`y+2jo>`uGUUnWKkC;cwqvSo$dzbfL-p9Nz`C0k+ z{L=ix`DOV}^B42q<^PxesUW+6P(Umo6;KK;72GbkTX4VN(IM2Kv_lz(G7sexniZ}u z+*oK)XkA!TSYAjiq!rQ&9~8bQ{8?mHWL~tgXid?&qK!qCMVpK4iX4i3ihPUwiUNud zMZra(MZ1gk6h#yrD2ggNR8&{gS9GQ5-(s8Mz+y}>wfID_tXN*$U92n~EFLX37EczR zFE$m=6kja9Tzseae(|H?zlxs~&*PTkHsY*twm5s-cAOK=1?PtI!@+U;a8bAzTpTV5 zmx9CM(s4K(71w|}j%&t=aT1&q*MaN8_25)EHSQd48g~IVi@Suog8Kt^9XE%&jk}Ax zkNaF=QxaH`UQ%76EV*3r62BVniub}p@G!hTJ`{fdAB9KaQTRA~0zMO;gU`no;&FI9 zo`-M2OYt4}F8nEcAO19c06&30hrf!yfxm^ni+_ZFjDL!Mj{lEfM%YZSBRCMY5u6Av z1a|_6;7RZy_!15fq6smCSVBAjO-LbN3F(APLN+0nP)+C{OcUly*OYpfCYF*)g{1?f z`cgybMCsYmi>22~=Spvt-YLCT`k?eh>Fd&eO5c@!DE&mVB03UXi9n(U(TC_u^e4iJ z`-ySHcw!{NS{bwNk7QT z$mZmg{!EPGP+tn5wM$FeVF-ziHd%P8iQ6_iyJYln5>9_lG-FI7z)pbk-osXFQ?)j%Dm-lKjwvgOFGBRNOvkDNa8+mTna zRkTesE1C_>j^;!I(L8D1G$;*5^QY~hMbIK?NLnl{o<^Wm(yD2-v^v@`S|jZ^t%)Y5 zb<>7uXJ})zaoTy>G;M}jnoc5LWqjG8G^2!yJt1H)5Zm6`Vw63(R1Xp@jLMnYL z{VL&=L6y5I!z%Yw?yKBinO9j`d8+bK<=ZN&s(`BGDoRyTRa=#;N?xU?I$fo!8m%%^ zO;nw&I$!mB)%B{IRd=fHS3RuyN?%D|OW#1Zpxe;x=nnL)bTHkU4yW&{Vx4J z{r@l41COR3tv;$edim%}#%hKu!;1l7z!?6FP{sj9Gy}zmXP_C$j8sNGqmY4P5EzFU zWX5quJEM!y!%#8$85)L`F~XQ;%rNE{cNq^De=?pi<{2*-uNYseS5`YzZ>x5ycByu+ z2331j`&9c@`&T2XQPuI)iPcHfDb?8OjOxtl?CQMgg6hI*c6E34#p+iz8){%RsWlZf z;+o-_@tU(WQ#GcVt2MW4?$tc3d0g|f=6TKEH7{yD)_ke?&RoJ=#x!R-GCi44rXLf| z3}J>b!>>=a~!4SIoD}Mdmx^2j(Z{m)gy>u-epGTCJ?sRQrOpisi=I!$PuRSqUsOD}zi&le*`13w1B+-q(HSEa5EU{K8qqS;JY&vEw*! zwsD*|E*v+`9!?x5iId7n<79DiIr*GJoN~?)P95hMr;#J%h&ipCHcmU|G-r(SJLfv* zCg%?4KIakVFU~X0-<+46H}%Wvf2m(tzqaFTG*W10)ywLq z>R)izaXq+E+(TRcUU^Xz$Bd5%0+o;wf31M`A-2Y4C0EM6|JfLFvT;g#}8JPMD> ztK=Q$HS@I*Ygehv;6aX6Mu$(i~p4Wng5Odv%##vykTX-nuc`^8yhSeHaCD8JR7_lAPv3^ z{tbwR;D%idyBqd2>}$wrsA=eFm~D97Xwm4`h;Ae|9&eO1N*g;G<&Axf!;QK|edAc8 zv2mjDa^uy;YmIY_w;S&^eiSShtP=bxSTC>?Y!=uG00N)@BnS`$3ql3qg8hO>0aAbx zWC)4{3;|QX7Ss!l2^s}Lfk@CII4NisXazcfUN9yw3MK{T1t!6a;F91s!BxSl<7e;uo5!2aHcvI1ny)tBZob$2u=#QG)8^;R@0vd}e{TNP{8O}4v_-U24hc0#UcxI_eTd%j?Y`xw3xb;QrtJXKI|Fr(w`d+eBvRtx4 zvRblMvR(p`1W1Aj0 zNm?c?mr|vb(xcL9DO1Xpa->|TQhGu9vVCp4cY9L%k@nVhef!P!N9}*LKWm?F|EK+P z``7mG?LTEpWy@q6WEL`OnXSxTwnc`JMaZIMC|SHLS%#6N$ueXmvQk-8$N!cXB$po#IYOr?j)9 zv#Yba^L*#;opYVHJMVS=+4-dNS?7G`htALPU*v1#>*O2d)^Zy;K<*$1$php_d8|A^ zo+M9|r^ye>v*mg6L-JxdL(Y`5$`s`as)D27DfkMBLZ*-_x)r?&wPHY_QJhs=Q9MyRS1c%ADc&mnRs5&;r1+}% z(Y>_Wy4$uJ(CyH@wcD|KN4Hxyu-l{Cv)j8H*^TQKbPsjk>i*udy=PZXMh~s0wx_O# z+jFc()YIP6(If9s^z`(c>KWMQFL_MPl&@9XUA>QncP^y&KyeG`4>`lk9!eb@VL_TA~b-}k8Rao-R18ubRX zh1yyTP&=r%sU6kcYN$F?y;r?o9i@&{$E(rmWOcrpq~@r3>IU_3b+cNmmZ+ub4t1Bh zM{Q6~sL!g;tEbg7>Pzb1)K}Hl)Hl>O)$dMkIt@FWe42K;^R(&ov;O7%+xvn29{pbZ zKK+RP@cw=M2l}J?QT=iK8U0!Px%~zGMg6$``u-FBC;Qv`JNtY3PxbfppYAvIPxk-T zf31J6|91a_{zv_P^*`-@H?U;DYQSayFtBA{`+)O+>i}@TW58LWH9#Mb4xAf!I=FHWJQz1vI@ma<9vm6e4;lu?2QLi%K6rg_Zt(Wt z-NE~V4+mckz8PE`d_VYc@UzBR zC+jKt3O!5D(ev~T`s4a0{h)qae_n6W&+4z}|IlC8&*`7)=k@RPpY`ALKS!63{xZ61 zbj_&UsOxCpXvk>T=$_Gt(a2HcXzXahXwqovD1MYUN*XO2EgwBHS~Yrfw0g95ls(EB z?H-*TT^L(4<~f!)Rxu_X(~aF2docFr*psnmV{gVjj(r*XZdhViW-vEwGFTaG3;@Fx z!!|>Z;ea8=5NAj3`3@YV5l@y8)^-8hGT{X!*N5CL2ei@3>iiYdV|3*Zn$i? zVR&r#VEAnKX836|GnyM$8rK-t88;d&jqb*sMzGP#=wtLX`Wq3(U}LB;+_={mYb-D_ zjIBnsamskd_{8{We8afoICPvmeq>xQE*_VU4~*-_4dWBz=f4oW+)32w$ zOn;yLX)-gJn^u@Mm@G_Irp=~prtKyt6UY>53ODUF?Kef4VoY(SL{qW}V@fw2G~rBm zQ>lq$nla6pZkg_w?q7($ka_`oA^k$;1=EG=7v?V9x^Q=9{|tI2c_wuxZDwp{X6E9| t<(aFqezW1TduJnNBWF*|j?A8!9i27)FI{G4_P@H}$N!Od|0fqW{y)L9Yo`DJ literal 0 HcmV?d00001 From 9d1fbcf8ad2ad1bd660e2eb6184a7085fd576608 Mon Sep 17 00:00:00 2001 From: jcport1 Date: Mon, 20 Nov 2023 14:50:33 +0100 Subject: [PATCH 46/71] load balance and add balance backend functionality added to UI --- PowerUp.xcodeproj/project.pbxproj | 8 ++ .../PaymentViewController.swift | 2 +- PowerUp/User.swift | 26 ++++ PowerUp/UserCreditService.swift | 122 ++++++++++++++++++ PowerUp/WalletView/WalletViewController.swift | 60 ++++++++- 5 files changed, 212 insertions(+), 6 deletions(-) create mode 100644 PowerUp/User.swift create mode 100644 PowerUp/UserCreditService.swift diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index d457613..6da4c27 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -10,6 +10,8 @@ 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */; }; 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */; }; 11433FBE2ABCBCDD005AA716 /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 11433FBD2ABCBCDD005AA716 /* .gitignore */; }; + 334B46292B0B739B009918ED /* UserCreditService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334B46282B0B739B009918ED /* UserCreditService.swift */; }; + 334B462B2B0B78F9009918ED /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334B462A2B0B78F9009918ED /* User.swift */; }; 33D0094D2AFECF36004BB2AE /* StripePaymentsUI in Frameworks */ = {isa = PBXBuildFile; productRef = 33D0094C2AFECF36004BB2AE /* StripePaymentsUI */; }; 33E1BD922B02A52700E70B4A /* CheckOutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33E1BD912B02A52700E70B4A /* CheckOutViewController.swift */; }; 33E1BD942B02A54500E70B4A /* CheckOutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33E1BD932B02A54500E70B4A /* CheckOutView.swift */; }; @@ -60,6 +62,8 @@ 1129A8892ACB5E990054E020 /* ProfileScreenController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileScreenController.swift; sourceTree = ""; }; 1129A88B2ACB5ED30054E020 /* ProfileScreenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileScreenView.swift; sourceTree = ""; }; 11433FBD2ABCBCDD005AA716 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; + 334B46282B0B739B009918ED /* UserCreditService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserCreditService.swift; sourceTree = ""; }; + 334B462A2B0B78F9009918ED /* User.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; 33E1BD912B02A52700E70B4A /* CheckOutViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckOutViewController.swift; sourceTree = ""; }; 33E1BD932B02A54500E70B4A /* CheckOutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckOutView.swift; sourceTree = ""; }; 33E1BD962B02B00500E70B4A /* PaymentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentViewController.swift; sourceTree = ""; }; @@ -195,6 +199,8 @@ 858F15502ABB77F1002B64C1 /* Info.plist */, 33E1BD952B02A54E00E70B4A /* Checkout Screen */, 33E1BD9A2B02BEC500E70B4A /* Payment Screen */, + 334B46282B0B739B009918ED /* UserCreditService.swift */, + 334B462A2B0B78F9009918ED /* User.swift */, ); path = PowerUp; sourceTree = ""; @@ -395,6 +401,7 @@ buildActionMask = 2147483647; files = ( 858F16AE2ACA7357002B64C1 /* StoreViewController.swift in Sources */, + 334B46292B0B739B009918ED /* UserCreditService.swift in Sources */, 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, 858F16B32ACB978C002B64C1 /* TimeScreen.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, @@ -413,6 +420,7 @@ 858F16C42ACE60A6002B64C1 /* WalletView.swift in Sources */, 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, + 334B462B2B0B78F9009918ED /* User.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/PowerUp/Payment Screen/PaymentViewController.swift b/PowerUp/Payment Screen/PaymentViewController.swift index bc4fe3c..0871683 100644 --- a/PowerUp/Payment Screen/PaymentViewController.swift +++ b/PowerUp/Payment Screen/PaymentViewController.swift @@ -45,7 +45,7 @@ class PaymentViewController: UIViewController { //MARK: posting text to NotificationCenter... notificationCenter.post( name: Notification.Name("selectedAmount"), - object: "$ \(delegate.selectedAmount).00") + object: "\(delegate.selectedAmount).00") } } diff --git a/PowerUp/User.swift b/PowerUp/User.swift new file mode 100644 index 0000000..41c9d64 --- /dev/null +++ b/PowerUp/User.swift @@ -0,0 +1,26 @@ +// +// User.swift +// PowerUp +// +// Created by Jefferson Cuartas on 11/20/23. +// + +import Foundation + +struct User: Codable{ + + var id: String + var uid: String + var email: String + var credit: Double + var orders: [String]? + + + init(id: String, uid: String,email: String,credit: Double, orders: [String] ) { + self.id = id + self.uid = id + self.email = email + self.credit = credit + self.orders = orders + } +} diff --git a/PowerUp/UserCreditService.swift b/PowerUp/UserCreditService.swift new file mode 100644 index 0000000..1e8ce3d --- /dev/null +++ b/PowerUp/UserCreditService.swift @@ -0,0 +1,122 @@ +// +// UserCreditService.swift +// PowerUp +// +// Created by Jefferson Cuartas on 11/20/23. +// + +import Foundation + +class UserCreditService { + + static let baseURL = "http://localhost:8080" // Replace with the actual base URL of your backend + + static func createUserJSON(uid: String, email: String, credit: Int = 0) -> [String: Any] { + return [ + "uid": uid, + "email": email, + "credit": credit + ] + } + + static func getUserDetails(uid: String, completion: @escaping (User?, Error?) -> Void){ + guard let url = URL(string: "\(baseURL)/user/\(uid)") else { + completion(nil, NSError(domain: "HTTPResponseError", code: 0, userInfo: nil)) + return + } + + var request = URLRequest(url: url) + request.httpMethod = "GET" + + let task = URLSession.shared.dataTask(with: request) { data, response, error in + //closure completion error is at the outermost if/else + if let error = error { + print("HTTP Request Failed \(error)") + completion(nil, error) + } else if let data = data { + do { + let user = try JSONDecoder().decode(User.self, from: data) + print(user) + completion(user, nil) + } catch { + print("JSON Decoding Failed \(error)") + completion(nil, error) + } + } else { + print("Invalid response") + completion(nil, NSError(domain: "InvalidResponseError", code: 0, userInfo: nil)) + } + } + + task.resume() + + } + + static func updateUserDetails(uid: String, userDetails: [String: Any], completion: @escaping (Bool, Error?) -> Void){ + + //set up url + guard let url = URL(string: "\(baseURL)/user/\(uid)") else { + completion(false, NSError(domain: "URLCreationError", code: 0, userInfo: nil)) + return + } + //set up request + var request = URLRequest(url: url) + request.httpMethod = "PATCH" + request.addValue("application/json", forHTTPHeaderField: "Content-Type") + + //set up json body + do { + let jsonData = try JSONSerialization.data(withJSONObject: userDetails, options: []) + request.httpBody = jsonData + + } catch { + completion(false, error) + return + } + + //send request + let task = URLSession.shared.dataTask(with: request) { data, response, error in + if let error = error { + completion(false, error) + } else if let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200 { + completion(true, nil) + } else { + completion(false, NSError(domain: "HTTPResponseError", code: (response as? HTTPURLResponse)?.statusCode ?? 0, userInfo: nil)) + } + } + + task.resume() + } + + static func postUserDetails(userDetails: [String: Any], completion: @escaping (Bool, Error?) -> Void) { + guard let url = URL(string: "\(baseURL)/user/addUser") else { // Updated endpoint + completion(false, NSError(domain: "URLCreationError", code: 0, userInfo: nil)) + return + } + + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.addValue("application/json", forHTTPHeaderField: "Content-Type") + + do { + let jsonData = try JSONSerialization.data(withJSONObject: userDetails, options: []) + request.httpBody = jsonData + } catch { + completion(false, error) + return + } + + let task = URLSession.shared.dataTask(with: request) { data, response, error in + if let error = error { + completion(false, error) + } else if let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200 { + completion(true, nil) + } else { + completion(false, NSError(domain: "HTTPResponseError", code: (response as? HTTPURLResponse)?.statusCode ?? 0, userInfo: nil)) + } + } + + task.resume() + } + +} diff --git a/PowerUp/WalletView/WalletViewController.swift b/PowerUp/WalletView/WalletViewController.swift index 759398d..4667d4d 100644 --- a/PowerUp/WalletView/WalletViewController.swift +++ b/PowerUp/WalletView/WalletViewController.swift @@ -24,7 +24,9 @@ class WalletViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() - + + loadCurrentBalance() + walletView.addFundsButton.addTarget(self, action: #selector(onFindButtonTapped), for: .touchUpInside) walletView.stripePayButton.addTarget(self, action: #selector(pay), for: .touchUpInside) @@ -40,15 +42,63 @@ class WalletViewController: UIViewController { } @objc func onAmountSelected(notification: Notification){ - if let selectedAmount = notification.object{ - walletView.balanceLabel.text = selectedAmount as! String + if let selectedAmount = notification.object{ + + let uwAmount = (selectedAmount as? String)! + + if let doubleValue = Double(uwAmount) { + print("Converted value to Double: \(doubleValue)") + + //harcoded but will be updated + let uid = "6552a2075c0eaa381c2c8c92" + let userDetailsDictionary: [String: Any] = ["credit": doubleValue] + addBalance(uid: uid, userDetails: userDetailsDictionary) + } else { + print("Failed to convert to Double") + } + + } + + } + + //keep track of uid? keychain? + func addBalance(uid: String, userDetails: [String : Any]){ + + UserCreditService.updateUserDetails(uid: uid, userDetails: userDetails){ success, error in + DispatchQueue.main.async { + if success { + print("User details successfully updated in server") + self.loadCurrentBalance() + } else { + print("Failed to update user details with error: \(error)") + } } + } + } - //get current balance by pinging backend endpoint - func getCurrentBalance(){ + //load current balance by pinging backend endpoint + func loadCurrentBalance(){ //get current balance //then update walletView.balanceLabel + + //hardcoded userid: change to current user id + let uid = "6552a2075c0eaa381c2c8c92" + + UserCreditService.getUserDetails(uid: uid ){userData, error in + + if let error = error{ + print(error) + } else if let userData = userData{ + let balance = userData.credit + print("This is user credit \(userData.credit)") + + //refresh UI + DispatchQueue.main.async { + self.walletView.balanceLabel.text = "$\(balance)" + } + } + } } // shows stripe card component From 11ed971a0d1baef399380b7736502b8d8eadd050 Mon Sep 17 00:00:00 2001 From: jcport1 Date: Mon, 20 Nov 2023 14:52:26 +0100 Subject: [PATCH 47/71] Removes unnecessary print statements --- .../UserInterfaceState.xcuserstate | Bin 60461 -> 68556 bytes PowerUp/WalletView/WalletViewController.swift | 5 +---- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/jeffersoncuartas.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcodeproj/project.xcworkspace/xcuserdata/jeffersoncuartas.xcuserdatad/UserInterfaceState.xcuserstate index 0faa1ed55445d16a5039fc89e770c3fa5c0785b4..da283ad3b9fd4953b5e414db41a61fc386b77b71 100644 GIT binary patch literal 68556 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

    f zK6cvlN?{|)*U_uXiXEvtxw4|Ts3gRthGVSal^o$?i*S{2wQzQ;@6R(v)%t&&%GjeiMlN;`{D=G)OU&-Qe1=!d{g+(aRoMLPe z(8?AyDQ9A31R z{Hq9d^YVl68*ly}g`b3tDc!@@Q))eb_YpRvAmH0`37{qT)v!+`! z@csX2fFm79M`wUL$e`oqy({UC9FuO=%xV&C&HA^2io^<+lHUI|P|e1H>a?ZPe#dlzQW>k$gm}_*LP`bFNgbxl4 zDnLSbRZ(Gu!Rp$!Yv1ZvpWXHVj&tjtd*szu2iJ7!Qq#F}!#LNqTg<^o9!Nf!*Cjn>N<8c{eI!-_faCTXO3m=s@HMvaKi~@bT@Hh&#XN7l!ud#RU!vzcp z(K1OV5{aF8h$l{i}EIF&s$ zRET9S$>&qyIAc8XExK2)=wy4|KxUIUIDL)G8gfDvTkw~; z!r9X&<=_`5j`<|Fnk=x2trK4(d1MjE$9M}!h!m2=_$nex$ujIqu3A2!G~b?tE@+sd z;B)}BwYK&8z|_*x3O-eEe#ek}5No&{d)YWX!JJ&^#@TSq608z@t+AF{Ct&5)OZ+A^ zlrVaAD8G_VVn>&(EGjQ8;pPG-6{kccB)pZBk}|S_lv|}%*jj0=vZ`Jtm1HHBZ53Hf zs^&DLIo-~URc5WQP=U7^>J$2$Yr#UtU^?Tt}wOeM?ZIDlBp;V_-i+b?W;h za&oTG1>3J-a_LNy>_n#I6_wYJwS0$cCa1f)D4Iy$B+nry{ z=2zVSXWKum=0D{cosTKtdU15vp(h&WV$l&ohB&!BpIm@8o#Ex>c~v#!eBtbiEJj-mSur;ighXYu*3BnA?gW_C|6uA7XE^ zPOm1nSZDm}5PJs>v3LF35PRliQ<>Lvh`r>}tN;5Ddy~;u)`RUjb&ZbgJ0LMNbKu}% zBgY&!Y3htQ^YaQ8FD+S7x$1Z?(yOH0paoyKifBhNt=FH81p9K53KsdwF=V=`Ki6%0AV#E?U0;eeCB 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 ZK9GN~dwou$py2uudSU(e>+?a{{{aSRqLBaq delta 27881 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 diff --git a/PowerUp/WalletView/WalletViewController.swift b/PowerUp/WalletView/WalletViewController.swift index 4667d4d..ba2b349 100644 --- a/PowerUp/WalletView/WalletViewController.swift +++ b/PowerUp/WalletView/WalletViewController.swift @@ -61,7 +61,7 @@ class WalletViewController: UIViewController { } - //keep track of uid? keychain? + //use keychain to extract uid func addBalance(uid: String, userDetails: [String : Any]){ UserCreditService.updateUserDetails(uid: uid, userDetails: userDetails){ success, error in @@ -77,10 +77,7 @@ class WalletViewController: UIViewController { } - //load current balance by pinging backend endpoint func loadCurrentBalance(){ - //get current balance - //then update walletView.balanceLabel //hardcoded userid: change to current user id let uid = "6552a2075c0eaa381c2c8c92" From 71851d2d4f2163e743fe3ceb3c62d4b663c85887 Mon Sep 17 00:00:00 2001 From: Dingbang Chen Date: Mon, 20 Nov 2023 17:24:29 -0500 Subject: [PATCH 48/71] fix --- .../xcschemes/xcschememanagement.plist | 29 +++++++++ PowerUp.xcodeproj/project.pbxproj | 59 ++++++++++-------- .../xcschemes/xcschememanagement.plist | 2 +- .../UserInterfaceState.xcuserstate | Bin 0 -> 25081 bytes .../xcschemes/xcschememanagement.plist | 30 +++++++++ .../Data Models => DataModels}/Cafe.swift | 0 .../CafeWithDistance.swift | 0 .../Coordinate.swift | 0 .../Data Models => DataModels}/Machine.swift | 0 9 files changed, 92 insertions(+), 28 deletions(-) create mode 100644 Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist rename PowerUp/{Store Screen/Data Models => DataModels}/Cafe.swift (100%) rename PowerUp/{Store Screen/Data Models => DataModels}/CafeWithDistance.swift (100%) rename PowerUp/{Store Screen/Data Models => DataModels}/Coordinate.swift (100%) rename PowerUp/{Store Screen/Data Models => DataModels}/Machine.swift (100%) diff --git a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..25266b4 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,29 @@ + + + + + SchemeUserState + + Pods-PowerUp-PowerUpUITests.xcscheme_^#shared#^_ + + orderHint + 2 + + Pods-PowerUp.xcscheme_^#shared#^_ + + orderHint + 3 + + Pods-PowerUpTests.xcscheme_^#shared#^_ + + orderHint + 4 + + SwiftKeychainWrapper.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index 08b9020..243bdb8 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -8,6 +8,12 @@ /* Begin PBXBuildFile section */ 02AE3AF613E6654D0D8234D0 /* Pods_PowerUpTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 856E39C20D66BD303EDD7E52 /* Pods_PowerUpTests.framework */; }; + 1118349A2B0C131600EB24C4 /* MapViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 111834992B0C131600EB24C4 /* MapViewController.swift */; }; + 1118349C2B0C131D00EB24C4 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1118349B2B0C131D00EB24C4 /* ContentView.swift */; }; + 111834A12B0C137D00EB24C4 /* Machine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1118349D2B0C137D00EB24C4 /* Machine.swift */; }; + 111834A22B0C137D00EB24C4 /* CafeWithDistance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1118349E2B0C137D00EB24C4 /* CafeWithDistance.swift */; }; + 111834A32B0C137D00EB24C4 /* Coordinate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1118349F2B0C137D00EB24C4 /* Coordinate.swift */; }; + 111834A42B0C137D00EB24C4 /* Cafe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 111834A02B0C137D00EB24C4 /* Cafe.swift */; }; 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A8892ACB5E990054E020 /* LoginViewController.swift */; }; 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A88B2ACB5ED30054E020 /* LoginView.swift */; }; 11433FBE2ABCBCDD005AA716 /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 11433FBD2ABCBCDD005AA716 /* .gitignore */; }; @@ -38,13 +44,7 @@ 858F16C42ACE60A6002B64C1 /* WalletView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16C22ACE60A6002B64C1 /* WalletView.swift */; }; 858F16C82ACE60C6002B64C1 /* StartScreenController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16C62ACE60C6002B64C1 /* StartScreenController.swift */; }; 858F16C92ACE60C6002B64C1 /* StartScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858F16C72ACE60C6002B64C1 /* StartScreen.swift */; }; - B1E80CDC2B095A5D009CBD93 /* MapViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1E80CDB2B095A5D009CBD93 /* MapViewController.swift */; }; - B1E80CDF2B095B41009CBD93 /* Coordinate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1E80CDE2B095B41009CBD93 /* Coordinate.swift */; }; - B1E80CE12B095B5A009CBD93 /* Machine.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1E80CE02B095B5A009CBD93 /* Machine.swift */; }; - B1E80CE32B095B69009CBD93 /* Cafe.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1E80CE22B095B69009CBD93 /* Cafe.swift */; }; - B1E80CE52B0976D6009CBD93 /* CafeWithDistance.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1E80CE42B0976D6009CBD93 /* CafeWithDistance.swift */; }; FFF38C35A51F0D6C31E2C3BF /* Pods_PowerUp_PowerUpUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C94F392DEF1A1D274A790123 /* Pods_PowerUp_PowerUpUITests.framework */; }; - /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -65,6 +65,12 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 111834992B0C131600EB24C4 /* MapViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MapViewController.swift; sourceTree = ""; }; + 1118349B2B0C131D00EB24C4 /* ContentView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 1118349D2B0C137D00EB24C4 /* Machine.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Machine.swift; sourceTree = ""; }; + 1118349E2B0C137D00EB24C4 /* CafeWithDistance.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CafeWithDistance.swift; sourceTree = ""; }; + 1118349F2B0C137D00EB24C4 /* Coordinate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Coordinate.swift; sourceTree = ""; }; + 111834A02B0C137D00EB24C4 /* Cafe.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Cafe.swift; sourceTree = ""; }; 1129A8892ACB5E990054E020 /* LoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = ""; }; 1129A88B2ACB5ED30054E020 /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = ""; }; 11433FBD2ABCBCDD005AA716 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; @@ -102,11 +108,6 @@ 858F16C22ACE60A6002B64C1 /* WalletView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WalletView.swift; sourceTree = ""; }; 858F16C62ACE60C6002B64C1 /* StartScreenController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StartScreenController.swift; sourceTree = ""; }; 858F16C72ACE60C6002B64C1 /* StartScreen.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StartScreen.swift; sourceTree = ""; }; - B1E80CDB2B095A5D009CBD93 /* MapViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MapViewController.swift; sourceTree = ""; }; - B1E80CDE2B095B41009CBD93 /* Coordinate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Coordinate.swift; sourceTree = ""; }; - B1E80CE02B095B5A009CBD93 /* Machine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Machine.swift; sourceTree = ""; }; - B1E80CE22B095B69009CBD93 /* Cafe.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Cafe.swift; sourceTree = ""; }; - B1E80CE42B0976D6009CBD93 /* CafeWithDistance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CafeWithDistance.swift; sourceTree = ""; }; 997B66A43E020F39A767E048 /* Pods-PowerUp-PowerUpUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PowerUp-PowerUpUITests.release.xcconfig"; path = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.release.xcconfig"; sourceTree = ""; }; C94F392DEF1A1D274A790123 /* Pods_PowerUp_PowerUpUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PowerUp_PowerUpUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CD92E050B85858DB48E1D08F /* Pods-PowerUpTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PowerUpTests.debug.xcconfig"; path = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.debug.xcconfig"; sourceTree = ""; }; @@ -142,6 +143,17 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 111834A52B0C138F00EB24C4 /* DataModels */ = { + isa = PBXGroup; + children = ( + 111834A02B0C137D00EB24C4 /* Cafe.swift */, + 1118349E2B0C137D00EB24C4 /* CafeWithDistance.swift */, + 1118349F2B0C137D00EB24C4 /* Coordinate.swift */, + 1118349D2B0C137D00EB24C4 /* Machine.swift */, + ); + path = DataModels; + sourceTree = ""; + }; 1129A8882ACB5DF00054E020 /* ProfileScreen */ = { isa = PBXGroup; children = ( @@ -211,7 +223,9 @@ 858F15412ABB77F0002B64C1 /* PowerUp */ = { isa = PBXGroup; children = ( - B1E80CDB2B095A5D009CBD93 /* MapViewController.swift */, + 111834A52B0C138F00EB24C4 /* DataModels */, + 1118349B2B0C131D00EB24C4 /* ContentView.swift */, + 111834992B0C131600EB24C4 /* MapViewController.swift */, 44B8ACCC2B02CA0B00D1BAA4 /* UserService */, 44B8ACCB2B02C0BF00D1BAA4 /* Keychain */, 858333522AE0AE07005540D6 /* GoogleService-Info.plist */, @@ -251,7 +265,6 @@ 858F16AC2ACA7338002B64C1 /* Store Screen */ = { isa = PBXGroup; children = ( - B1E80CDD2B095AC7009CBD93 /* Data Models */, 858F16AD2ACA7357002B64C1 /* StoreViewController.swift */, 858F16AF2ACA73C5002B64C1 /* StoreScreen.swift */, ); @@ -285,15 +298,6 @@ path = "Start Screen"; sourceTree = ""; }; - B1E80CDD2B095AC7009CBD93 /* Data Models */ = { - isa = PBXGroup; - children = ( - B1E80CDE2B095B41009CBD93 /* Coordinate.swift */, - B1E80CE02B095B5A009CBD93 /* Machine.swift */, - B1E80CE22B095B69009CBD93 /* Cafe.swift */, - B1E80CE42B0976D6009CBD93 /* CafeWithDistance.swift */, - ); - path = "Data Models"; 9AED7EA542B464A85158CE98 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -552,32 +556,33 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B1E80CE32B095B69009CBD93 /* Cafe.swift in Sources */, 858F16AE2ACA7357002B64C1 /* StoreViewController.swift in Sources */, 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, - B1E80CE52B0976D6009CBD93 /* CafeWithDistance.swift in Sources */, 858F16B32ACB978C002B64C1 /* TimeScreen.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, 858F16C92ACE60C6002B64C1 /* StartScreen.swift in Sources */, + 111834A12B0C137D00EB24C4 /* Machine.swift in Sources */, 858F16C82ACE60C6002B64C1 /* StartScreenController.swift in Sources */, 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */, + 111834A42B0C137D00EB24C4 /* Cafe.swift in Sources */, 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */, + 111834A32B0C137D00EB24C4 /* Coordinate.swift in Sources */, 858333512AE0AB5F005540D6 /* RegisterView.swift in Sources */, 4452940A2AFDFB8900B1A3D5 /* ProfileViewController.swift in Sources */, 858F16C32ACE60A6002B64C1 /* WalletViewController.swift in Sources */, + 1118349A2B0C131600EB24C4 /* MapViewController.swift in Sources */, 445294082AFDFB0300B1A3D5 /* ProfileView.swift in Sources */, 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */, 4452940C2B00A27A00B1A3D5 /* KeychainService.swift in Sources */, 44B8ACCE2B02CA2E00D1BAA4 /* UserService.swift in Sources */, 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */, + 1118349C2B0C131D00EB24C4 /* ContentView.swift in Sources */, 8583334F2AE0AB4A005540D6 /* RegisterViewController.swift in Sources */, 858F16B52ACB97A1002B64C1 /* TimeViewController.swift in Sources */, 858F16C42ACE60A6002B64C1 /* WalletView.swift in Sources */, 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */, + 111834A22B0C137D00EB24C4 /* CafeWithDistance.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, - B1E80CDF2B095B41009CBD93 /* Coordinate.swift in Sources */, - B1E80CDC2B095A5D009CBD93 /* MapViewController.swift in Sources */, - B1E80CE12B095B5A009CBD93 /* Machine.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist index 2c9e80a..b8fe048 100644 --- a/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ PowerUp.xcscheme_^#shared#^_ orderHint - 0 + 1 diff --git a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..901872caa7b4157ecb3e289ecacfc9b38c964fa2 GIT binary patch literal 25081 zcmeHPd0bT0+dt=S11dPcIP5Sm0}L<>!ww_cz%Vc@3XHfbv5Yv13^IdDS)Hq;nWpV& ziwSONwwh~ZrEQvRYGq}%TBeqjZEDN=+f&0JKINVoQ+fLO>UPz!t+U?_u~8TGW;N3iMwz&UW?b^_4o<=Bz^{O z!`tz5_(l9G-iKeu`|+3f82$=>jgRAR@CkeppTghb@9>ZKEdGl^lo#bq4WI^6zSLk! zP6biHR0tJ8#Zh`HgUX?dR6bQe6;fuZjIvTy)G(@+nnF#bTB&JN8|9?hsp(V)<)Ylw zEb2yzP&~DOx`n!(x`Votx{JD-dXRdET0yO&9;Y@_+o>JYv()p{3)G9$%hX=(J(@}H`t*0~S zT)L1p(`9reT}9W>4tfebm2Rb{(QUMoZl|Zy9kh#{N#8)HFwq^n>(6 z^lJK1`U!dyy_J5J-buee@2B6O-=yE7-=>eyAJa$aPv}qSujsGoQ}i$Nuk>#W#n24H z1Tn!(2ouVLG2u)E6UnHUC?{ppg!z>DjQO1Tg87m;#(c$`V18hJWqxB3i&=&p#QLx?Y%CkcYT0-;flXv}Y!a(y zli4)Z$QH6D*2KFtf~{kxv2CoAZD*&m9juFWvz_b=b|!lrJD0tMUC7?S-pSs@ zKEOW6KErNix3F8;ZR~b-2m36$lYNfe#qMVJvTw0(vxnIa*w5I{*>mi9_ILIV_D}XN z4sn>HIGSTPFK#d==lr-pE{IccQCvKiz!h=DoS7@(ELS-LDkmMP1T8D;r0v#d;3QKxC^Y;8S=e2_01jN~W) zDMt;n>8ILfyT-z24?B(2G_^LkT;0eI`4fuJ-AI9k5QfM3B&J@jF`HAei!*Yvk}`8r zGLq8G>8VNCsl_=-#o5I<=_RHNlPN8yUaqj3OGY_6rn=f2n(St0Q|B~$o7+=!2vQ^6 zBPbMwp>Py|B9RJ3p=iPqj>w1?@g@VvKr-kNq(Lz#7JjQxyzohUh%XrozXuSx_^GRx z4-x8dv^6_tT3r_CoUN(DZf~2|`_$6WFwI^sPl5+!4X!FjO9!xP^T>wQPP@y};hZ+i zR%>^;ogEF0t#*-l%?<8`dUxTy2{%#7dfaH>DD778j5mJ9?C}rs1TV@5%DAbB!DQ$5TYc3B!~pBhdC%g z7F3GLkQJ4~w@R3W5K=^nNhv8KnZp`pI9eKDaHU7RUril$7-Bz2 zRp)lJI@}JsYm}qeJy}X-ZF9B5Ch6?xOV*oHOg4U`!#>k&Z|rPo5ym&5%0A86F}t** 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

    En^zcIHbP0B{=vL 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 orderHint - 6 + 5 Promises (Playground) 2.xcscheme isShown orderHint - 7 + 6 + + Promises (Playground) 3.xcscheme + + isShown + + orderHint + 9 + + Promises (Playground) 4.xcscheme + + isShown + + orderHint + 10 + + Promises (Playground) 5.xcscheme + + isShown + + orderHint + 11 Promises (Playground).xcscheme isShown orderHint - 5 + 4 diff --git a/PowerUp/DataModels/OrderDto.swift b/PowerUp/DataModels/OrderDto.swift new file mode 100644 index 0000000..ec4223a --- /dev/null +++ b/PowerUp/DataModels/OrderDto.swift @@ -0,0 +1,15 @@ +// +// OrderDto.swift +// PowerUp +// +// Created by Dingbang Chen on 11/22/23. +// + +import Foundation +struct OrderDto: Codable{ + let orderId: String + let machineName: String + let moneyForNow: Double + let timeForNow: Double +} + diff --git a/PowerUp/Time Screen/TimeScreen.swift b/PowerUp/Time Screen/TimeScreen.swift index f75c2f8..1c86f71 100644 --- a/PowerUp/Time Screen/TimeScreen.swift +++ b/PowerUp/Time Screen/TimeScreen.swift @@ -13,10 +13,7 @@ class TimeScreen: UIView { var myTimeLabel: UILabel! var infoContainer: UIView! var bestCafeLabel: UILabel! - var addButton = UIButton() - var pcLabel: UILabel! - var additionalInfoContainer: UIView! - var timeLeftLabel: UILabel! + var tableViewTime: UITableView! let customButtonColor = UIColor(red: 0.45, green: 0.72, blue: 1, alpha: 1.0) let customStartBgk = UIColor(red: 0.035, green: 0.51, blue: 0.89, alpha: 1.0) @@ -28,49 +25,31 @@ class TimeScreen: UIView { setUpTopContainer() setMyTime() setUpInfoContainer() + setupTableViewTime() setUpLabels() - setPCLabel() - setUpAdditionalInfoContainer() - setTimeLeftLabel() - setButton() - } - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - - func setButton(){ - addButton = UIButton() - addButton.setTitle("+ Add Time", for: .normal) - addButton.backgroundColor = customButtonColor - addButton.layer.cornerRadius = 20 - addButton.translatesAutoresizingMaskIntoConstraints = false - addButton.setTitleColor(UIColor.white, for: .normal) - additionalInfoContainer.addSubview(addButton) + initConstraints() } - func setTimeLeftLabel(){ - - timeLeftLabel = UILabel() - timeLeftLabel.text = "Time Left:" - timeLeftLabel.font = UIFont.systemFont(ofSize: 18) - timeLeftLabel.textColor = .black - timeLeftLabel.translatesAutoresizingMaskIntoConstraints = false - self.addSubview(timeLeftLabel) - } - func setUpAdditionalInfoContainer() { - additionalInfoContainer = UIView() - additionalInfoContainer.backgroundColor = UIColor.white - additionalInfoContainer.layer.cornerRadius = 10 - additionalInfoContainer.layer.shadowColor = UIColor.black.cgColor - additionalInfoContainer.layer.shadowOpacity = 0.5 - additionalInfoContainer.layer.shadowOffset = CGSize(width: 2, height: 2) - additionalInfoContainer.layer.shadowRadius = 4 - additionalInfoContainer.translatesAutoresizingMaskIntoConstraints = false - - containerTop.addSubview(additionalInfoContainer) + + func setupTableViewTime(){ + tableViewTime = UITableView() + tableViewTime.register(TimeTableViewCell.self, forCellReuseIdentifier: "times") + tableViewTime.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(tableViewTime) } +// func setUpAdditionalInfoContainer() { +// additionalInfoContainer = UIView() +// additionalInfoContainer.backgroundColor = UIColor.white +// additionalInfoContainer.layer.cornerRadius = 10 +// additionalInfoContainer.layer.shadowColor = UIColor.black.cgColor +// additionalInfoContainer.layer.shadowOpacity = 0.5 +// additionalInfoContainer.layer.shadowOffset = CGSize(width: 2, height: 2) +// additionalInfoContainer.layer.shadowRadius = 4 +// additionalInfoContainer.translatesAutoresizingMaskIntoConstraints = false +// +// containerTop.addSubview(additionalInfoContainer) +// } func setUpInfoContainer(){ infoContainer = UIView() infoContainer.backgroundColor = customButtonColor // Change color if needed @@ -107,17 +86,6 @@ class TimeScreen: UIView { } - func setPCLabel(){ - - pcLabel = UILabel() - pcLabel.text = "PC 1" - pcLabel.font = UIFont.systemFont(ofSize: 18) - pcLabel.textColor = .black - pcLabel.translatesAutoresizingMaskIntoConstraints = false - self.addSubview(pcLabel) - - } - func initConstraints(){ NSLayoutConstraint.activate([ @@ -137,26 +105,16 @@ class TimeScreen: UIView { bestCafeLabel.leadingAnchor.constraint(equalTo: infoContainer.leadingAnchor, constant: 8), bestCafeLabel.topAnchor.constraint(equalTo: infoContainer.topAnchor, constant: 8), - //all together - additionalInfoContainer.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 30), - additionalInfoContainer.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -30), - additionalInfoContainer.heightAnchor.constraint(equalToConstant: 175), // Set the desired height - additionalInfoContainer.topAnchor.constraint(equalTo: containerTop.bottomAnchor, constant: -10), - - pcLabel.leadingAnchor.constraint(equalTo: additionalInfoContainer.leadingAnchor, constant: 8), - pcLabel.topAnchor.constraint(equalTo: additionalInfoContainer.topAnchor, constant: 8), - - timeLeftLabel.leadingAnchor.constraint(equalTo: pcLabel.leadingAnchor), - timeLeftLabel.topAnchor.constraint(equalTo: pcLabel.bottomAnchor, constant: 12), - - addButton.centerXAnchor.constraint(equalTo: additionalInfoContainer.centerXAnchor), -// addButton.centerYAnchor.constraint(equalTo: additionalInfoContainer.centerYAnchor), - addButton.bottomAnchor.constraint(equalTo: additionalInfoContainer.bottomAnchor, constant: -20), // Adjust the constant to position the button higher or lower - addButton.widthAnchor.constraint(equalToConstant: 160), - addButton.heightAnchor.constraint(equalToConstant: 40), + tableViewTime.topAnchor.constraint(equalTo: containerTop.bottomAnchor, constant: 20), + tableViewTime.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 8), + tableViewTime.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -8), + tableViewTime.bottomAnchor.constraint(equalTo: self.safeAreaLayoutGuide.bottomAnchor, constant: -8), ]) } + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } } diff --git a/PowerUp/Time Screen/TimeTableViewCell.swift b/PowerUp/Time Screen/TimeTableViewCell.swift new file mode 100644 index 0000000..5b5c283 --- /dev/null +++ b/PowerUp/Time Screen/TimeTableViewCell.swift @@ -0,0 +1,117 @@ +// +// TimeTableViewCell.swift +// PowerUp +// +// Created by Dingbang Chen on 11/22/23. +// + +import UIKit + +class TimeTableViewCell: UITableViewCell { + var wrapperCellView: UIView! + var labelMachine: UILabel! + var labelAmount: UILabel! + var labelTime: UILabel! + var ButtonDeactivate: UIButton! + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + setupWrapperCellView() + setupLabelMachine() + setupLabelAmount() + setupLabeTime() + setupDeactivateButton() + + initConstraints() + } + + //MARK: defining the UI elements... + func setupWrapperCellView(){ + wrapperCellView = UITableViewCell() + + wrapperCellView.backgroundColor = UIColor.white + wrapperCellView.layer.cornerRadius = 10 + wrapperCellView.layer.shadowColor = UIColor.black.cgColor + wrapperCellView.layer.shadowOpacity = 0.5 + wrapperCellView.layer.shadowOffset = CGSize(width: 2, height: 2) + wrapperCellView.layer.shadowRadius = 4 + wrapperCellView.translatesAutoresizingMaskIntoConstraints = false + + self.addSubview(wrapperCellView) + } + func setupDeactivateButton(){ + ButtonDeactivate = UIButton(type: .system) + ButtonDeactivate.setTitle("Deactivate", for: .normal) + ButtonDeactivate.backgroundColor = .red + ButtonDeactivate.setTitleColor(UIColor.white, for: .normal) + ButtonDeactivate.layer.cornerRadius = 20 + ButtonDeactivate.translatesAutoresizingMaskIntoConstraints = false + wrapperCellView.addSubview(ButtonDeactivate) + } + + func setupLabelMachine(){ + labelMachine = UILabel() + labelMachine.translatesAutoresizingMaskIntoConstraints = false + wrapperCellView.addSubview(labelMachine) + } + func setupLabelAmount(){ + labelAmount = UILabel() + labelAmount.translatesAutoresizingMaskIntoConstraints = false + wrapperCellView.addSubview(labelAmount) + } + func setupLabeTime(){ + labelTime = UILabel() + labelTime.translatesAutoresizingMaskIntoConstraints = false + wrapperCellView.addSubview(labelTime) + } + + + //MARK: initializing the constraints... + func initConstraints(){ + NSLayoutConstraint.activate([ + wrapperCellView.topAnchor.constraint(equalTo: self.topAnchor,constant: 10), + wrapperCellView.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 10), + wrapperCellView.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: -10), + wrapperCellView.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: -10), + + labelMachine.topAnchor.constraint(equalTo: wrapperCellView.topAnchor, constant: 2), + labelMachine.leadingAnchor.constraint(equalTo: wrapperCellView.leadingAnchor, constant: 8), + labelMachine.heightAnchor.constraint(equalToConstant: 32), + labelMachine.widthAnchor.constraint(lessThanOrEqualTo: wrapperCellView.widthAnchor), + + labelTime.topAnchor.constraint(equalTo: labelMachine.bottomAnchor, constant: 2), + labelTime.leadingAnchor.constraint(equalTo: labelMachine.leadingAnchor), + labelTime.heightAnchor.constraint(equalToConstant: 32), + labelTime.widthAnchor.constraint(lessThanOrEqualTo: labelMachine.widthAnchor), + + labelAmount.topAnchor.constraint(equalTo: labelTime.bottomAnchor, constant: 2), + labelAmount.leadingAnchor.constraint(equalTo: labelMachine.leadingAnchor), + labelAmount.heightAnchor.constraint(equalToConstant: 32), + labelAmount.widthAnchor.constraint(lessThanOrEqualTo: labelAmount.widthAnchor), + + ButtonDeactivate.topAnchor.constraint(equalTo: labelAmount.bottomAnchor, constant: 16), + ButtonDeactivate.centerXAnchor.constraint(equalTo: self.safeAreaLayoutGuide.centerXAnchor), + ButtonDeactivate.widthAnchor.constraint(equalToConstant: 160), + ButtonDeactivate.heightAnchor.constraint(equalToConstant: 40), + wrapperCellView.heightAnchor.constraint(equalToConstant: 175) + ]) + } + + //MARK: unused methods... + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func awakeFromNib() { + super.awakeFromNib() + + + } + + override func setSelected(_ selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + + // Configure the view for the selected state + } + +} diff --git a/PowerUp/Time Screen/TimeViewController.swift b/PowerUp/Time Screen/TimeViewController.swift index 932f95e..56daa8e 100644 --- a/PowerUp/Time Screen/TimeViewController.swift +++ b/PowerUp/Time Screen/TimeViewController.swift @@ -7,11 +7,14 @@ import UIKit import CoreLocation +import FirebaseAuth +import Alamofire class TimeViewController: UIViewController, CLLocationManagerDelegate { let timeView = TimeScreen() let locationManager = CLLocationManager() var currentLocation: CLLocation? + var activeOrders = [OrderDto]() var cafes: [CafeWithDistance] = [] override func viewDidLoad() { @@ -19,15 +22,81 @@ class TimeViewController: UIViewController, CLLocationManagerDelegate { view.addSubview(timeView) setupLocationManager() setupConstraints() - - // Add a tap gesture recognizer to the bestCafeLabel - let tapGesture = UITapGestureRecognizer(target: self, action: #selector(bestCafeLabelTapped)) - timeView.bestCafeLabel.isUserInteractionEnabled = true - timeView.bestCafeLabel.addGestureRecognizer(tapGesture) + retrieveUserActiveOrder() + timeView.tableViewTime.separatorStyle = .none + //MARK: patching the table view delegate and datasource to controller... + timeView.tableViewTime.delegate = self + timeView.tableViewTime.dataSource = self +// let tapGesture = UITapGestureRecognizer(target: self, action: #selector(bestCafeLabelTapped)) +// timeView.bestCafeLabel.isUserInteractionEnabled = true +// timeView.bestCafeLabel.addGestureRecognizer(tapGesture) } + @objc func bestCafeLabelTapped() { displayCafes() // This function will present all cafes to the user } + + func retrieveUserActiveOrder(){ + if let user = FirebaseAuth.Auth.auth().currentUser { + if let url = URL(string: "http://localhost:8080/user/currentOrders/"+user.uid){ + AF.request(url, method: .get) + .responseData(completionHandler: { response in + //MARK: retrieving the status code... + let status = response.response?.statusCode + + switch response.result{ + case .success(let data): + print(data) + //MARK: there was no network error... + + //MARK: status code is Optional, so unwrapping it... + if let uwStatusCode = status{ + switch uwStatusCode{ + case 200...299: + //MARK: the request was valid 200-level... + let decoder = JSONDecoder() + do{ + let orders = try decoder.decode([OrderDto].self, from: data) + self.activeOrders = orders + + DispatchQueue.main.async { + self.timeView.tableViewTime.reloadData() + if (self.activeOrders.count>0){ + self.timeView.bestCafeLabel.text = "Tap the order to deactivate." + }else{ + self.timeView.bestCafeLabel.text = "You do not have activate orders now." + } + } + + + }catch{ + + } + break + + case 400...499: + //MARK: the request was not valid 400-level... + print(data) + break + + default: + //MARK: probably a 500-level error... + print(data) + break + + } + } + break + + case .failure(let error): + //MARK: there was a network error... + print(error) + break + } + }) + } + } + } func setupLocationManager() { locationManager.delegate = self locationManager.desiredAccuracy = kCLLocationAccuracyBest @@ -86,6 +155,77 @@ class TimeViewController: UIViewController, CLLocationManagerDelegate { } } } + func popUpWindowToDeactivate(indexPath: IndexPath){ + let alertController = UIAlertController(title: "Are you sure you want to deactivate this machine and pay?", message: "Please make your choice", preferredStyle: .alert) + + // Define the action to be taken when the user taps the 'OK' button + let confirmAction = UIAlertAction(title: "OK", style: .default) { _ in + // Retrieve the input from the text field + + self.buttonTappedAt(indexPath: indexPath) + } + let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { _ in + // Handle cancel action + print("Cancel action selected") + } + + // Add the confirm action to the alert controller + alertController.addAction(confirmAction) + alertController.addAction(cancelAction) + // Present the alert controller + present(alertController, animated: true) + } + + func buttonTappedAt(indexPath: IndexPath) { + if let user = FirebaseAuth.Auth.auth().currentUser { + if let url = URL(string: "http://localhost:8080/machine/deactivate"){ + + AF.request(url, method:.post, parameters: + [ + "userId": user.uid, + "orderId": activeOrders[indexPath.row].orderId + ]) + .responseString(completionHandler: { response in + //MARK: retrieving the status code... + let status = response.response?.statusCode + + switch response.result{ + case .success(let data): + //MARK: there was no network error... + + //MARK: status code is Optional, so unwrapping it... + if let uwStatusCode = status{ + switch uwStatusCode{ + case 200...299: + //MARK: the request was valid 200-level... + self.retrieveUserActiveOrder() + break + + case 400...499: + //MARK: the request was not valid 400-level... + print(data) + break + + default: + //MARK: probably a 500-level error... + print(data) + break + + } + } + break + + case .failure(let error): + //MARK: there was a network error... + print(error) + break + } + }) + }else{ + //alert that the URL is invalid... + } + } + } func displayCafes() { let alertController = UIAlertController(title: "Choose a Cafe", message: "Select a cafe from the list.", preferredStyle: .alert) @@ -145,3 +285,29 @@ class TimeViewController: UIViewController, CLLocationManagerDelegate { } +extension TimeViewController: UITableViewDelegate, UITableViewDataSource{ + //MARK: returns the number of rows in the current section... + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return activeOrders.count + } + + //MARK: populate a cell for the currecnt row... + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "times", for: indexPath) as! TimeTableViewCell + cell.labelMachine.text = "Machine: \(activeOrders[indexPath.row].machineName)" + let uwTime = activeOrders[indexPath.row].timeForNow + cell.labelTime.text = "Duration: \(uwTime) hours" + let uwMoney = activeOrders[indexPath.row].moneyForNow + cell.labelAmount.text = "Cost: $\(uwMoney)" + //MARK: setting the image of the receipt... + return cell + } + + //MARK: deal with user interaction with a cell... + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + self.popUpWindowToDeactivate(indexPath: indexPath) + } + + +} + From 67140abdd49ada7564d6f7b0c48aca487bedfadf Mon Sep 17 00:00:00 2001 From: CliffLi Date: Thu, 23 Nov 2023 19:31:26 -0600 Subject: [PATCH 51/71] Start page finished --- Podfile | 1 + Podfile.lock | 8 +- Pods/Manifest.lock | 8 +- Pods/Pods.xcodeproj/project.pbxproj | 683 +++++++++++++----- ...p-PowerUpUITests-acknowledgements.markdown | 23 + ...erUp-PowerUpUITests-acknowledgements.plist | 29 + ...ts-frameworks-Debug-input-files.xcfilelist | 1 + ...s-frameworks-Debug-output-files.xcfilelist | 1 + ...-frameworks-Release-input-files.xcfilelist | 1 + ...frameworks-Release-output-files.xcfilelist | 1 + .../Pods-PowerUp-PowerUpUITests-frameworks.sh | 2 + ...Pods-PowerUp-PowerUpUITests.debug.xcconfig | 6 +- ...ds-PowerUp-PowerUpUITests.release.xcconfig | 6 +- .../Pods-PowerUp-acknowledgements.markdown | 23 + .../Pods-PowerUp-acknowledgements.plist | 29 + ...Up-frameworks-Debug-input-files.xcfilelist | 1 + ...p-frameworks-Debug-output-files.xcfilelist | 1 + ...-frameworks-Release-input-files.xcfilelist | 1 + ...frameworks-Release-output-files.xcfilelist | 1 + .../Pods-PowerUp/Pods-PowerUp-frameworks.sh | 2 + .../Pods-PowerUp/Pods-PowerUp.debug.xcconfig | 6 +- .../Pods-PowerUp.release.xcconfig | 6 +- .../Pods-PowerUpTests.debug.xcconfig | 6 +- .../Pods-PowerUpTests.release.xcconfig | 6 +- PowerUp.xcodeproj/project.pbxproj | 20 + .../xcschemes/xcschememanagement.plist | 2 +- .../xcshareddata/swiftpm/Package.resolved | 17 +- PowerUp/APIConfigs.swift | 11 + .../ActivateScreen/ActivateMachineView.swift | 77 ++ .../ActivateMachineViewController.swift | 173 +++++ PowerUp/Start Screen/StartScreen.swift | 3 +- .../Start Screen/StartScreenController.swift | 66 +- 32 files changed, 1023 insertions(+), 198 deletions(-) create mode 100644 PowerUp/APIConfigs.swift create mode 100644 PowerUp/ActivateScreen/ActivateMachineView.swift create mode 100644 PowerUp/ActivateScreen/ActivateMachineViewController.swift diff --git a/Podfile b/Podfile index 80e5466..775ba2e 100644 --- a/Podfile +++ b/Podfile @@ -5,6 +5,7 @@ target 'PowerUp' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! pod 'SwiftKeychainWrapper' +pod 'Alamofire' # Pods for PowerUp diff --git a/Podfile.lock b/Podfile.lock index 2159622..3a95ba9 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,16 +1,20 @@ PODS: + - Alamofire (5.8.1) - SwiftKeychainWrapper (4.0.1) DEPENDENCIES: + - Alamofire - SwiftKeychainWrapper SPEC REPOS: trunk: + - Alamofire - SwiftKeychainWrapper SPEC CHECKSUMS: + Alamofire: 3ca42e259043ee0dc5c0cdd76c4bc568b8e42af7 SwiftKeychainWrapper: 807ba1d63c33a7d0613288512399cd1eda1e470c -PODFILE CHECKSUM: c35529dbf1ff04b85c8f9b84db4ba78205552aec +PODFILE CHECKSUM: e13b91b3f68b840a9773d2bf5a5a8e18a6eb876c -COCOAPODS: 1.13.0 +COCOAPODS: 1.14.2 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 2159622..3a95ba9 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -1,16 +1,20 @@ PODS: + - Alamofire (5.8.1) - SwiftKeychainWrapper (4.0.1) DEPENDENCIES: + - Alamofire - SwiftKeychainWrapper SPEC REPOS: trunk: + - Alamofire - SwiftKeychainWrapper SPEC CHECKSUMS: + Alamofire: 3ca42e259043ee0dc5c0cdd76c4bc568b8e42af7 SwiftKeychainWrapper: 807ba1d63c33a7d0613288512399cd1eda1e470c -PODFILE CHECKSUM: c35529dbf1ff04b85c8f9b84db4ba78205552aec +PODFILE CHECKSUM: e13b91b3f68b840a9773d2bf5a5a8e18a6eb876c -COCOAPODS: 1.13.0 +COCOAPODS: 1.14.2 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 2506489..98b2885 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,116 +7,226 @@ objects = { /* Begin PBXBuildFile section */ - 0272D6846A167EEC137A317C66834826 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - 07614D85DCD9D7B87465D2B994687E4A /* Pods-PowerUp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 650702400DD5901F8FD11DF994E6059A /* Pods-PowerUp-dummy.m */; }; - 0D2C829DBA4D94629A8BF045009E4C35 /* Pods-PowerUp-PowerUpUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2172621237EFED83C5F5A9F0900D5985 /* Pods-PowerUp-PowerUpUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0272D6846A167EEC137A317C66834826 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD0CE05D5D076B1B5190EE5DF97FD54E /* Foundation.framework */; }; + 04A8430BFC619C34E5F4D3878D094380 /* CachedResponseHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 492890E964DEF8C3B1433A657A32761D /* CachedResponseHandler.swift */; }; + 079F0820555C5B86C9FBD5EC6344137F /* Protected.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36C3C5FB0C945042CB843B98D76EE212 /* Protected.swift */; }; + 11CCD832BD537718892C6A216A38490A /* URLRequest+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEF759D25265FAB82EF30C93FF20062A /* URLRequest+Alamofire.swift */; }; + 197457852FC83E905248660B0F930452 /* AuthenticationInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66A171A1378589CA57A656E338F69017 /* AuthenticationInterceptor.swift */; }; + 1AFD57838680DF58184FF94D14C7F3FF /* RequestInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 155320B123A5E710C35C19470431474D /* RequestInterceptor.swift */; }; 1F2BBE5F52608DEFCD764C78EC1E8679 /* Pods-PowerUpTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 972353E978D4231D0CDCA0CC128B02EB /* Pods-PowerUpTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2C3FBDBB0815930AE6D237D3132F7AB5 /* SwiftKeychainWrapper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD3B183F2B832E75AB78E4306742985 /* SwiftKeychainWrapper-dummy.m */; }; - 2DD2A44F4FD88FC7541A5A9CDB746688 /* SwiftKeychainWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = E50C46D8B59DEC0895EBC924E7E1F9AB /* SwiftKeychainWrapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4D5CAB203E46FDEFC5FF48A820B5CA43 /* KeychainWrapperSubscript.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17BC4ECF36B8D66C3A362BC3659967B /* KeychainWrapperSubscript.swift */; }; - 547687992E274F060AFB78025F553417 /* Pods-PowerUp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5799AB139A3F217F8AAFD6540536FCAF /* Pods-PowerUp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6DEF962A6FB9C877A2D287D17FAF5A82 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 282FCD4EA8B05830E9108690B8CD336B /* Session.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2749025194FA83B53CFDAF73B64658C8 /* Session.swift */; }; + 2C3FBDBB0815930AE6D237D3132F7AB5 /* SwiftKeychainWrapper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4746090BAAD95A5421C5A8857451DD7D /* SwiftKeychainWrapper-dummy.m */; }; + 2DD2A44F4FD88FC7541A5A9CDB746688 /* SwiftKeychainWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AD0D804C4E4B56EFE39BAD4FE55174E /* SwiftKeychainWrapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 320C0D7A88AA812EFB20016BA1F5D7AE /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82C9FEE24C14A1D15BBE89CD8B6FCFC3 /* AFError.swift */; }; + 385BC4B250B6A6DB8AAAEA77D5B7A46F /* Combine.swift in Sources */ = {isa = PBXBuildFile; fileRef = A076B6FEB8E786F87FEEA861BE42849A /* Combine.swift */; }; + 3A59D8FBAF9A54906E3644AC80465AFB /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83E10341BE6F58757C3FA8C48AABB811 /* Notifications.swift */; }; + 3D8F0292757E2B1CB72E4DA65674C3FB /* Pods-PowerUp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 650702400DD5901F8FD11DF994E6059A /* Pods-PowerUp-dummy.m */; }; + 3ED869CD16B3A1D4414D4B44758AB76B /* Pods-PowerUp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5799AB139A3F217F8AAFD6540536FCAF /* Pods-PowerUp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3FA127A261BB563409868A0DC21807B2 /* ResponseSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFD6AF65CD3528B4CE893860CA7B36B1 /* ResponseSerialization.swift */; }; + 482B74C0548970BB9C095E2D8530E421 /* ParameterEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F54957D940521AFFA54D30D8CDDE36D /* ParameterEncoding.swift */; }; + 4D5CAB203E46FDEFC5FF48A820B5CA43 /* KeychainWrapperSubscript.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF0FB492575FA885F7FF387709B4087 /* KeychainWrapperSubscript.swift */; }; + 529173B31EFCD3D199E79866AFBEC86C /* HTTPHeaders.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFDAFD121E98B22E084CEC96B8FC7DBF /* HTTPHeaders.swift */; }; + 553329A1CF473AB06A869C1CBACFDCB3 /* Pods-PowerUp-PowerUpUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AF43FB23EC51B14469480C982F04B647 /* Pods-PowerUp-PowerUpUITests-dummy.m */; }; + 5B92A66A66BD639411C3D839A0F87B0C /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A5E3D9F543235E2A875E0960DCC4CBF /* Request.swift */; }; + 643A7AFFB7AEB70B2B9B7E0926055023 /* RetryPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5021D9176FC33D47120CC84DA81F66F /* RetryPolicy.swift */; }; + 67B10FEAA3B7E5387D20E76B1085E94D /* URLSessionConfiguration+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF14B5482A1D9C14C0AB5C866F0EADA6 /* URLSessionConfiguration+Alamofire.swift */; }; 70EFC12046DD9F05B22463011AF4331F /* Pods-PowerUpTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EC416C491B6447A2AA20146F11C9669 /* Pods-PowerUpTests-dummy.m */; }; - AB199F4BD1188875FF9F6C5D47B910A8 /* Pods-PowerUp-PowerUpUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AF43FB23EC51B14469480C982F04B647 /* Pods-PowerUp-PowerUpUITests-dummy.m */; }; - D005939236F0DC4DE94D3162E4A21E6B /* KeychainItemAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 401FEAAE1F19BDC26BAF62CC7FA30A96 /* KeychainItemAccessibility.swift */; }; - DBBF7B5297187AD91D0B5646B6F22B22 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - E7D976091250A09655570BD888AAEFFC /* KeychainWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5AE5E9472BF525BD3E705261568E5199 /* KeychainWrapper.swift */; }; - ECD03F70BD29FA94C00C61CE232B3F33 /* SwiftKeychainWrapper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E305D3EE71B912A8108E1C1BA65FF413 /* SwiftKeychainWrapper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F2C295BC641A64853FE36228606A3294 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 732C29255F73EF3D83D49BD4F8FEAA8F /* MultipartUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809984AA7DC4C4DE06F94C93F3F31F68 /* MultipartUpload.swift */; }; + 737747B9A98257DB58112C3A23686669 /* MultipartFormData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84ECC50F91C6ED215795ACEEE0287100 /* MultipartFormData.swift */; }; + 77AB6AF4BFC6DE016DA7C057B5799C84 /* ServerTrustEvaluation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 520A1CC575874DE1155E941312B8F162 /* ServerTrustEvaluation.swift */; }; + 78B1DD1219182494A6AFAD26AAB20AA6 /* Concurrency.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79525E84FDDF1E347CCD7877AC264C0D /* Concurrency.swift */; }; + 78EF7E99BBDB349EB2FB3C0E5D73A21A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD0CE05D5D076B1B5190EE5DF97FD54E /* Foundation.framework */; }; + 7BC6E318493F76F5D3A07D516D38236F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD0CE05D5D076B1B5190EE5DF97FD54E /* Foundation.framework */; }; + 7D64BC3E6CAA4AB54EAC0AAADE93F578 /* OperationQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6344A752BA47A0DBBA274E2D06B5FBA /* OperationQueue+Alamofire.swift */; }; + 81E6A0FF7F286008345ECFA3A2103FA8 /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 403513E0A6F0474762A8971124260F75 /* Alamofire.swift */; }; + 82FD97FBBEFE51E2D3B434AF4954FC93 /* EventMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67BC0604A17B2F8C6342EEC7E1AD2C91 /* EventMonitor.swift */; }; + 8E698F134A953250D5834C8B83CDAD34 /* DispatchQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BDF726C4B6F23821730DF59F27F1A8 /* DispatchQueue+Alamofire.swift */; }; + 8E85763AE29BEF0A46EE875B8F069E8E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD0CE05D5D076B1B5190EE5DF97FD54E /* Foundation.framework */; }; + A523488C60BF961290D0B1ABB9ADACEC /* RequestCompression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93119AC21A0AFDB18491C0FBEA76F4E8 /* RequestCompression.swift */; }; + AA721ECC2B36AFB7D9FE70C83E6D63F9 /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48143438C90609D239F36AAFC5F6A846 /* Response.swift */; }; + B17D933C8F8BC6A4F91AA620D7D7A870 /* ParameterEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = C353F30FD1BCD3980906A5F0330D44A1 /* ParameterEncoder.swift */; }; + BAB17A1C6CAD14B3788973EAF8466C93 /* NetworkReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD750CBD48B53AD6A1622B9A571211F9 /* NetworkReachabilityManager.swift */; }; + C04739CBCEE445B66192BFA708655EDF /* StringEncoding+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B3AAC6B8CCF6783E1734A8148F6F057 /* StringEncoding+Alamofire.swift */; }; + C8269B42DED12AB1F275648D0BD32E45 /* URLEncodedFormEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18912D63AB7BE6672195C92E646962D4 /* URLEncodedFormEncoder.swift */; }; + D005939236F0DC4DE94D3162E4A21E6B /* KeychainItemAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC72696DB5B86F77322B409F5C3B3097 /* KeychainItemAccessibility.swift */; }; + D0560E8E2E5EB407B5D8E0381BF453FA /* URLConvertible+URLRequestConvertible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 980AD000837D128A8F4A4D128BF66299 /* URLConvertible+URLRequestConvertible.swift */; }; + D09FBBADAF7C5C757AA5AB5DFE54BD25 /* Alamofire-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FD7D16E748EBF929A1B5F0C71A2421 /* Alamofire-dummy.m */; }; + D368E6F70C5E6998548A72E65F92432D /* Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F2A370F3AA6185699E5C9291637FD69 /* Validation.swift */; }; + D7BCBE1EB4A638403C265CE2199EFF1B /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8D3D57353834825F7B52B816066B7789 /* CFNetwork.framework */; }; + E6251F02EE12804D1B66AE32E716E664 /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E28059F69337F068381297699C57D83F /* SessionDelegate.swift */; }; + E7D976091250A09655570BD888AAEFFC /* KeychainWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = B17EE43DA1E40E10E9D17E4DB968F205 /* KeychainWrapper.swift */; }; + ECD03F70BD29FA94C00C61CE232B3F33 /* SwiftKeychainWrapper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3426D65806EC04F28F48F00127D19314 /* SwiftKeychainWrapper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ECE6F23823454A8FDB3F97CE1A7CD182 /* RedirectHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 300099B2CF25A7D6DA7048267AF51457 /* RedirectHandler.swift */; }; + ECF2F956B37A4C28B228BC291A57AD6E /* RequestTaskMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = C90DCFB1BC5BDBA17EF0DE05B8E484CD /* RequestTaskMap.swift */; }; + F038D81F7ABAA15CF03246AD4BF334F7 /* Alamofire-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 157E265F2B0AFAB5A5CC9BF4636601F5 /* Alamofire-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2415AE8678DE2698B7AD7D88B1A5C0F /* AlamofireExtended.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0646E99BB8700FBA55B17F7F448B7EA1 /* AlamofireExtended.swift */; }; + F2C295BC641A64853FE36228606A3294 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD0CE05D5D076B1B5190EE5DF97FD54E /* Foundation.framework */; }; + F369C18DF935B4E097AEC0EA32B24F56 /* Pods-PowerUp-PowerUpUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2172621237EFED83C5F5A9F0900D5985 /* Pods-PowerUp-PowerUpUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F66CC47AD425C8D57BD149AFD09C2AFE /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18BB81275FF31B9D0F730E6B16EAF6A /* HTTPMethod.swift */; }; + F6E94E8EE1CE35F49B9091BE8748587B /* Result+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BAB4652888328569EE3AC8C8D70880A /* Result+Alamofire.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 7FF4A995E002779358F3588BA8B85632 /* PBXContainerItemProxy */ = { + 2323037D50FF5B6EE7EE1CC673A1B067 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = CF903DF43E111410ECA0C288D36FA21A; - remoteInfo = SwiftKeychainWrapper; + remoteGlobalIDString = 476C0C98426C94FADFD4DC33EB76D8C6; + remoteInfo = "Pods-PowerUp"; }; - E5923715BA81933D2B5D19E94983FD31 /* PBXContainerItemProxy */ = { + 3A29176E06F23AF206D79D6E2EB67744 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = CF903DF43E111410ECA0C288D36FA21A; remoteInfo = SwiftKeychainWrapper; }; - EAAB9904C3CFE6B994B2B1A92832E618 /* PBXContainerItemProxy */ = { + 4746F6F24D4552ADACB25E1C9065C03D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 476C0C98426C94FADFD4DC33EB76D8C6; - remoteInfo = "Pods-PowerUp"; + remoteGlobalIDString = EAAA1AD3A8A1B59AB91319EE40752C6D; + remoteInfo = Alamofire; + }; + 50C3736D3F8A312FF970F72A6113E637 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EAAA1AD3A8A1B59AB91319EE40752C6D; + remoteInfo = Alamofire; + }; + 6465B3E6CF50F45333917D2017D744B3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CF903DF43E111410ECA0C288D36FA21A; + remoteInfo = SwiftKeychainWrapper; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 0646E99BB8700FBA55B17F7F448B7EA1 /* AlamofireExtended.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AlamofireExtended.swift; path = Source/AlamofireExtended.swift; sourceTree = ""; }; + 065A424EF4762ACB7AA3073BD1534DC5 /* SwiftKeychainWrapper-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftKeychainWrapper-prefix.pch"; sourceTree = ""; }; + 08FD7D16E748EBF929A1B5F0C71A2421 /* Alamofire-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Alamofire-dummy.m"; sourceTree = ""; }; 1252F15C4CC5A8510EAF429278FA450C /* Pods-PowerUp-PowerUpUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUp-PowerUpUITests-acknowledgements.plist"; sourceTree = ""; }; + 155320B123A5E710C35C19470431474D /* RequestInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestInterceptor.swift; path = Source/RequestInterceptor.swift; sourceTree = ""; }; + 157E265F2B0AFAB5A5CC9BF4636601F5 /* Alamofire-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-umbrella.h"; sourceTree = ""; }; + 18912D63AB7BE6672195C92E646962D4 /* URLEncodedFormEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLEncodedFormEncoder.swift; path = Source/URLEncodedFormEncoder.swift; sourceTree = ""; }; + 1AD0D804C4E4B56EFE39BAD4FE55174E /* SwiftKeychainWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SwiftKeychainWrapper.h; path = SwiftKeychainWrapper/SwiftKeychainWrapper.h; sourceTree = ""; }; 1EC416C491B6447A2AA20146F11C9669 /* Pods-PowerUpTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PowerUpTests-dummy.m"; sourceTree = ""; }; 20ED28AFC324E7BA448DDE811B42E07A /* Pods-PowerUpTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUpTests-Info.plist"; sourceTree = ""; }; 2172621237EFED83C5F5A9F0900D5985 /* Pods-PowerUp-PowerUpUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PowerUp-PowerUpUITests-umbrella.h"; sourceTree = ""; }; 26E7827087DAE0521FFF44871D80C93D /* Pods-PowerUp-PowerUpUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUp-PowerUpUITests.release.xcconfig"; sourceTree = ""; }; - 401FEAAE1F19BDC26BAF62CC7FA30A96 /* KeychainItemAccessibility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainItemAccessibility.swift; path = SwiftKeychainWrapper/KeychainItemAccessibility.swift; sourceTree = ""; }; + 2749025194FA83B53CFDAF73B64658C8 /* Session.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Session.swift; path = Source/Session.swift; sourceTree = ""; }; + 300099B2CF25A7D6DA7048267AF51457 /* RedirectHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RedirectHandler.swift; path = Source/RedirectHandler.swift; sourceTree = ""; }; + 3426D65806EC04F28F48F00127D19314 /* SwiftKeychainWrapper-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftKeychainWrapper-umbrella.h"; sourceTree = ""; }; + 36C3C5FB0C945042CB843B98D76EE212 /* Protected.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Protected.swift; path = Source/Protected.swift; sourceTree = ""; }; + 403513E0A6F0474762A8971124260F75 /* Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Alamofire.swift; path = Source/Alamofire.swift; sourceTree = ""; }; + 4746090BAAD95A5421C5A8857451DD7D /* SwiftKeychainWrapper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftKeychainWrapper-dummy.m"; sourceTree = ""; }; + 48143438C90609D239F36AAFC5F6A846 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = Source/Response.swift; sourceTree = ""; }; + 492890E964DEF8C3B1433A657A32761D /* CachedResponseHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CachedResponseHandler.swift; path = Source/CachedResponseHandler.swift; sourceTree = ""; }; 4CC410D60E3A2F9C7804E1F95777CD87 /* Pods-PowerUp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUp.debug.xcconfig"; sourceTree = ""; }; - 4CD3B183F2B832E75AB78E4306742985 /* SwiftKeychainWrapper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftKeychainWrapper-dummy.m"; sourceTree = ""; }; + 4F54957D940521AFFA54D30D8CDDE36D /* ParameterEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoding.swift; path = Source/ParameterEncoding.swift; sourceTree = ""; }; 5069D199AB328CCD047E61C632CD7C32 /* SwiftKeychainWrapper */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SwiftKeychainWrapper; path = SwiftKeychainWrapper.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 51BDF726C4B6F23821730DF59F27F1A8 /* DispatchQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Alamofire.swift"; path = "Source/DispatchQueue+Alamofire.swift"; sourceTree = ""; }; + 520A1CC575874DE1155E941312B8F162 /* ServerTrustEvaluation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServerTrustEvaluation.swift; path = Source/ServerTrustEvaluation.swift; sourceTree = ""; }; 5493DA2643AEE06347105DD54F8F1DEB /* Pods-PowerUp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUp-Info.plist"; sourceTree = ""; }; 5799AB139A3F217F8AAFD6540536FCAF /* Pods-PowerUp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PowerUp-umbrella.h"; sourceTree = ""; }; 59B06BB0F43DC8FBF64B9611F232B23A /* Pods-PowerUp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PowerUp-acknowledgements.markdown"; sourceTree = ""; }; - 5AE5E9472BF525BD3E705261568E5199 /* KeychainWrapper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainWrapper.swift; path = SwiftKeychainWrapper/KeychainWrapper.swift; sourceTree = ""; }; 5B3A3D886C7912CFE90B065772A6E5A1 /* Pods-PowerUpTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUpTests.release.xcconfig"; sourceTree = ""; }; - 5CFB04FEB4458AA699A90B3398293537 /* SwiftKeychainWrapper.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftKeychainWrapper.debug.xcconfig; sourceTree = ""; }; + 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Alamofire; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5F2A370F3AA6185699E5C9291637FD69 /* Validation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Validation.swift; path = Source/Validation.swift; sourceTree = ""; }; + 64AFC79D07D07246266B7EE6519C983C /* Alamofire.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.release.xcconfig; sourceTree = ""; }; 650702400DD5901F8FD11DF994E6059A /* Pods-PowerUp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PowerUp-dummy.m"; sourceTree = ""; }; 65BC23A8E471ADB39AD491B1C32ED7E0 /* Pods-PowerUp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PowerUp.modulemap"; sourceTree = ""; }; - 66A1EC832952C8C8FD3F4346A2B74B4A /* SwiftKeychainWrapper-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SwiftKeychainWrapper-Info.plist"; sourceTree = ""; }; + 66A171A1378589CA57A656E338F69017 /* AuthenticationInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AuthenticationInterceptor.swift; path = Source/AuthenticationInterceptor.swift; sourceTree = ""; }; 679BBBA92C4FF3D6180AEFCA12AF3175 /* Pods-PowerUp-PowerUpUITests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-PowerUp-PowerUpUITests"; path = Pods_PowerUp_PowerUpUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 67BC0604A17B2F8C6342EEC7E1AD2C91 /* EventMonitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EventMonitor.swift; path = Source/EventMonitor.swift; sourceTree = ""; }; + 6AEB2C59BF74EA5663135847216D57F7 /* Alamofire.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.debug.xcconfig; sourceTree = ""; }; + 6DB057F92377D73C5B8E3D19E7607A3D /* SwiftKeychainWrapper.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SwiftKeychainWrapper.modulemap; sourceTree = ""; }; + 6E0EDE8DAA8EE459ABB011FDA633DE02 /* SwiftKeychainWrapper.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftKeychainWrapper.release.xcconfig; sourceTree = ""; }; 772F9BBE013EF6AC8847DE2546BFA2AE /* Pods-PowerUpTests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-PowerUpTests"; path = Pods_PowerUpTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 79525E84FDDF1E347CCD7877AC264C0D /* Concurrency.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Concurrency.swift; path = Source/Concurrency.swift; sourceTree = ""; }; + 7A5E3D9F543235E2A875E0960DCC4CBF /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = Source/Request.swift; sourceTree = ""; }; + 7B3AAC6B8CCF6783E1734A8148F6F057 /* StringEncoding+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "StringEncoding+Alamofire.swift"; path = "Source/StringEncoding+Alamofire.swift"; sourceTree = ""; }; + 7BAB4652888328569EE3AC8C8D70880A /* Result+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Result+Alamofire.swift"; path = "Source/Result+Alamofire.swift"; sourceTree = ""; }; + 809984AA7DC4C4DE06F94C93F3F31F68 /* MultipartUpload.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartUpload.swift; path = Source/MultipartUpload.swift; sourceTree = ""; }; + 82C9FEE24C14A1D15BBE89CD8B6FCFC3 /* AFError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AFError.swift; path = Source/AFError.swift; sourceTree = ""; }; + 83E10341BE6F58757C3FA8C48AABB811 /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Source/Notifications.swift; sourceTree = ""; }; + 84ECC50F91C6ED215795ACEEE0287100 /* MultipartFormData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartFormData.swift; path = Source/MultipartFormData.swift; sourceTree = ""; }; + 8D3D57353834825F7B52B816066B7789 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; }; + 93119AC21A0AFDB18491C0FBEA76F4E8 /* RequestCompression.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestCompression.swift; path = Source/RequestCompression.swift; sourceTree = ""; }; 972353E978D4231D0CDCA0CC128B02EB /* Pods-PowerUpTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PowerUpTests-umbrella.h"; sourceTree = ""; }; + 980AD000837D128A8F4A4D128BF66299 /* URLConvertible+URLRequestConvertible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLConvertible+URLRequestConvertible.swift"; path = "Source/URLConvertible+URLRequestConvertible.swift"; sourceTree = ""; }; 9AAB23B833496B2179F485E868A6AEF1 /* Pods-PowerUp-PowerUpUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUp-PowerUpUITests-Info.plist"; sourceTree = ""; }; + 9D16945F2DAA2B44D388DC00EDCCC786 /* Alamofire.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Alamofire.modulemap; sourceTree = ""; }; 9D18E990689473A176C8D659C67BD1F7 /* Pods-PowerUp-PowerUpUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUp-PowerUpUITests.debug.xcconfig"; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A076B6FEB8E786F87FEEA861BE42849A /* Combine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Combine.swift; path = Source/Combine.swift; sourceTree = ""; }; A36803CFE10823E1BB3DF4C229313EA3 /* Pods-PowerUp-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PowerUp-frameworks.sh"; sourceTree = ""; }; A9306E425980F66DE0C0046983B85279 /* Pods-PowerUp-PowerUpUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PowerUp-PowerUpUITests-frameworks.sh"; sourceTree = ""; }; + AD750CBD48B53AD6A1622B9A571211F9 /* NetworkReachabilityManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkReachabilityManager.swift; path = Source/NetworkReachabilityManager.swift; sourceTree = ""; }; AF43FB23EC51B14469480C982F04B647 /* Pods-PowerUp-PowerUpUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PowerUp-PowerUpUITests-dummy.m"; sourceTree = ""; }; - AF488A977815A1B45CDC7E94AAF1DEEC /* SwiftKeychainWrapper-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftKeychainWrapper-prefix.pch"; sourceTree = ""; }; AF8B2DB8F0273F86A3C6D79515BB355E /* Pods-PowerUpTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUpTests-acknowledgements.plist"; sourceTree = ""; }; B11240D995CC8BD3DDA123EBFE4D84B4 /* Pods-PowerUp-PowerUpUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PowerUp-PowerUpUITests.modulemap"; sourceTree = ""; }; + B17EE43DA1E40E10E9D17E4DB968F205 /* KeychainWrapper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainWrapper.swift; path = SwiftKeychainWrapper/KeychainWrapper.swift; sourceTree = ""; }; + B6344A752BA47A0DBBA274E2D06B5FBA /* OperationQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "OperationQueue+Alamofire.swift"; path = "Source/OperationQueue+Alamofire.swift"; sourceTree = ""; }; + BC72696DB5B86F77322B409F5C3B3097 /* KeychainItemAccessibility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainItemAccessibility.swift; path = SwiftKeychainWrapper/KeychainItemAccessibility.swift; sourceTree = ""; }; + BEF759D25265FAB82EF30C93FF20062A /* URLRequest+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLRequest+Alamofire.swift"; path = "Source/URLRequest+Alamofire.swift"; sourceTree = ""; }; + BFD6AF65CD3528B4CE893860CA7B36B1 /* ResponseSerialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseSerialization.swift; path = Source/ResponseSerialization.swift; sourceTree = ""; }; + C25F3B66061C1B2503CA695288EDC4AF /* SwiftKeychainWrapper-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SwiftKeychainWrapper-Info.plist"; sourceTree = ""; }; C268C0BFFA51D313317A1F7AA7AFFD0B /* Pods-PowerUp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUp.release.xcconfig"; sourceTree = ""; }; + C353F30FD1BCD3980906A5F0330D44A1 /* ParameterEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoder.swift; path = Source/ParameterEncoder.swift; sourceTree = ""; }; + C42ADCCD11AE48052F7DE73D9DB83016 /* Alamofire-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Alamofire-Info.plist"; sourceTree = ""; }; + C453043E66AE205765AD45D57C444A1F /* Alamofire-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-prefix.pch"; sourceTree = ""; }; + C90DCFB1BC5BDBA17EF0DE05B8E484CD /* RequestTaskMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestTaskMap.swift; path = Source/RequestTaskMap.swift; sourceTree = ""; }; CB6998EF9CAA7E4E97DF1BDAD9830594 /* Pods-PowerUp-PowerUpUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PowerUp-PowerUpUITests-acknowledgements.markdown"; sourceTree = ""; }; CBD2CEE5F2964AC0CE867488CC8182E4 /* Pods-PowerUpTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUpTests.debug.xcconfig"; sourceTree = ""; }; CE916E32CFDEC602C6355B08E0C91172 /* Pods-PowerUpTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PowerUpTests.modulemap"; sourceTree = ""; }; - D17BC4ECF36B8D66C3A362BC3659967B /* KeychainWrapperSubscript.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainWrapperSubscript.swift; path = SwiftKeychainWrapper/KeychainWrapperSubscript.swift; sourceTree = ""; }; + D18BB81275FF31B9D0F730E6B16EAF6A /* HTTPMethod.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HTTPMethod.swift; path = Source/HTTPMethod.swift; sourceTree = ""; }; D5A73AF4313CEA92639EE1587D70071C /* Pods-PowerUpTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PowerUpTests-acknowledgements.markdown"; sourceTree = ""; }; - E05A6FC530DC5A853665D015CB29AECE /* SwiftKeychainWrapper.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SwiftKeychainWrapper.modulemap; sourceTree = ""; }; + DFDAFD121E98B22E084CEC96B8FC7DBF /* HTTPHeaders.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HTTPHeaders.swift; path = Source/HTTPHeaders.swift; sourceTree = ""; }; E27C4C7ACE0148581B517150932720A7 /* Pods-PowerUp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUp-acknowledgements.plist"; sourceTree = ""; }; - E305D3EE71B912A8108E1C1BA65FF413 /* SwiftKeychainWrapper-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftKeychainWrapper-umbrella.h"; sourceTree = ""; }; - E50C46D8B59DEC0895EBC924E7E1F9AB /* SwiftKeychainWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SwiftKeychainWrapper.h; path = SwiftKeychainWrapper/SwiftKeychainWrapper.h; sourceTree = ""; }; - EF9D370359AADCA0963C43618AAB128C /* SwiftKeychainWrapper.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftKeychainWrapper.release.xcconfig; sourceTree = ""; }; + E28059F69337F068381297699C57D83F /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Source/SessionDelegate.swift; sourceTree = ""; }; + E5021D9176FC33D47120CC84DA81F66F /* RetryPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RetryPolicy.swift; path = Source/RetryPolicy.swift; sourceTree = ""; }; + EAF0FB492575FA885F7FF387709B4087 /* KeychainWrapperSubscript.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainWrapperSubscript.swift; path = SwiftKeychainWrapper/KeychainWrapperSubscript.swift; sourceTree = ""; }; F03057FCFD9F5F71152527521E9027EC /* Pods-PowerUp */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-PowerUp"; path = Pods_PowerUp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FA1E0F5C05D198621068FCA8A55FFB90 /* SwiftKeychainWrapper.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftKeychainWrapper.debug.xcconfig; sourceTree = ""; }; + FD0CE05D5D076B1B5190EE5DF97FD54E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + FF14B5482A1D9C14C0AB5C866F0EADA6 /* URLSessionConfiguration+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLSessionConfiguration+Alamofire.swift"; path = "Source/URLSessionConfiguration+Alamofire.swift"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 00A74AC852615C495503161E0E619575 /* Frameworks */ = { + 22CB76324A659B721744816B6E55CF2E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DBBF7B5297187AD91D0B5646B6F22B22 /* Foundation.framework in Frameworks */, + F2C295BC641A64853FE36228606A3294 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 22CB76324A659B721744816B6E55CF2E /* Frameworks */ = { + 5BF6E64D3157435E5797A5278584A4DC /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F2C295BC641A64853FE36228606A3294 /* Foundation.framework in Frameworks */, + D7BCBE1EB4A638403C265CE2199EFF1B /* CFNetwork.framework in Frameworks */, + 8E85763AE29BEF0A46EE875B8F069E8E /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 77D9ED936E1724DEDEB2386BFB69FC1C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 78EF7E99BBDB349EB2FB3C0E5D73A21A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 91F0D5CBEDAC43958EE0CEF085E3DE7C /* Frameworks */ = { + 993B5EA204806D620C2F163C1D431D89 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6DEF962A6FB9C877A2D287D17FAF5A82 /* Foundation.framework in Frameworks */, + 7BC6E318493F76F5D3A07D516D38236F /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -131,29 +241,71 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 4D648058B24BD4A367AD82ADF04F7334 /* Products */ = { + 01CDB0CEAD280119591F18544ADAB7CE /* SwiftKeychainWrapper */ = { isa = PBXGroup; children = ( - F03057FCFD9F5F71152527521E9027EC /* Pods-PowerUp */, - 679BBBA92C4FF3D6180AEFCA12AF3175 /* Pods-PowerUp-PowerUpUITests */, - 772F9BBE013EF6AC8847DE2546BFA2AE /* Pods-PowerUpTests */, - 5069D199AB328CCD047E61C632CD7C32 /* SwiftKeychainWrapper */, + BC72696DB5B86F77322B409F5C3B3097 /* KeychainItemAccessibility.swift */, + B17EE43DA1E40E10E9D17E4DB968F205 /* KeychainWrapper.swift */, + EAF0FB492575FA885F7FF387709B4087 /* KeychainWrapperSubscript.swift */, + 1AD0D804C4E4B56EFE39BAD4FE55174E /* SwiftKeychainWrapper.h */, + 56DE51366F66B70C4D202BE28B6EBA3F /* Support Files */, ); - name = Products; + name = SwiftKeychainWrapper; + path = SwiftKeychainWrapper; + sourceTree = ""; + }; + 100C866A2F595A0880F6DC23DF51C305 /* Support Files */ = { + isa = PBXGroup; + children = ( + 9D16945F2DAA2B44D388DC00EDCCC786 /* Alamofire.modulemap */, + 08FD7D16E748EBF929A1B5F0C71A2421 /* Alamofire-dummy.m */, + C42ADCCD11AE48052F7DE73D9DB83016 /* Alamofire-Info.plist */, + C453043E66AE205765AD45D57C444A1F /* Alamofire-prefix.pch */, + 157E265F2B0AFAB5A5CC9BF4636601F5 /* Alamofire-umbrella.h */, + 6AEB2C59BF74EA5663135847216D57F7 /* Alamofire.debug.xcconfig */, + 64AFC79D07D07246266B7EE6519C983C /* Alamofire.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/Alamofire"; + sourceTree = ""; + }; + 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 61C8CC330A5CA84DA2F5F1D32AB07069 /* iOS */, + ); + name = Frameworks; sourceTree = ""; }; - 4D9253D8D9382E21E72D01A5076FF530 /* Pods */ = { + 32A2BE47F3BB0916A6639E714E50F531 /* Pods */ = { isa = PBXGroup; children = ( - FD889C92A54761B6B2F24356812B3E85 /* SwiftKeychainWrapper */, + D8766CD6E595801B92EF284BB8B9CE4B /* Alamofire */, + 01CDB0CEAD280119591F18544ADAB7CE /* SwiftKeychainWrapper */, ); name = Pods; sourceTree = ""; }; - 578452D2E740E91742655AC8F1636D1F /* iOS */ = { + 56DE51366F66B70C4D202BE28B6EBA3F /* Support Files */ = { + isa = PBXGroup; + children = ( + 6DB057F92377D73C5B8E3D19E7607A3D /* SwiftKeychainWrapper.modulemap */, + 4746090BAAD95A5421C5A8857451DD7D /* SwiftKeychainWrapper-dummy.m */, + C25F3B66061C1B2503CA695288EDC4AF /* SwiftKeychainWrapper-Info.plist */, + 065A424EF4762ACB7AA3073BD1534DC5 /* SwiftKeychainWrapper-prefix.pch */, + 3426D65806EC04F28F48F00127D19314 /* SwiftKeychainWrapper-umbrella.h */, + FA1E0F5C05D198621068FCA8A55FFB90 /* SwiftKeychainWrapper.debug.xcconfig */, + 6E0EDE8DAA8EE459ABB011FDA633DE02 /* SwiftKeychainWrapper.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/SwiftKeychainWrapper"; + sourceTree = ""; + }; + 61C8CC330A5CA84DA2F5F1D32AB07069 /* iOS */ = { isa = PBXGroup; children = ( - 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */, + 8D3D57353834825F7B52B816066B7789 /* CFNetwork.framework */, + FD0CE05D5D076B1B5190EE5DF97FD54E /* Foundation.framework */, ); name = iOS; sourceTree = ""; @@ -206,34 +358,69 @@ isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, - 4D9253D8D9382E21E72D01A5076FF530 /* Pods */, - 4D648058B24BD4A367AD82ADF04F7334 /* Products */, + 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */, + 32A2BE47F3BB0916A6639E714E50F531 /* Pods */, + F882987345D82102AF7E0987BDF85029 /* Products */, A08ADDFF3C3B9C41728475272F9D3110 /* Targets Support Files */, ); sourceTree = ""; }; - D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { + D8766CD6E595801B92EF284BB8B9CE4B /* Alamofire */ = { isa = PBXGroup; children = ( - 578452D2E740E91742655AC8F1636D1F /* iOS */, + 82C9FEE24C14A1D15BBE89CD8B6FCFC3 /* AFError.swift */, + 403513E0A6F0474762A8971124260F75 /* Alamofire.swift */, + 0646E99BB8700FBA55B17F7F448B7EA1 /* AlamofireExtended.swift */, + 66A171A1378589CA57A656E338F69017 /* AuthenticationInterceptor.swift */, + 492890E964DEF8C3B1433A657A32761D /* CachedResponseHandler.swift */, + A076B6FEB8E786F87FEEA861BE42849A /* Combine.swift */, + 79525E84FDDF1E347CCD7877AC264C0D /* Concurrency.swift */, + 51BDF726C4B6F23821730DF59F27F1A8 /* DispatchQueue+Alamofire.swift */, + 67BC0604A17B2F8C6342EEC7E1AD2C91 /* EventMonitor.swift */, + DFDAFD121E98B22E084CEC96B8FC7DBF /* HTTPHeaders.swift */, + D18BB81275FF31B9D0F730E6B16EAF6A /* HTTPMethod.swift */, + 84ECC50F91C6ED215795ACEEE0287100 /* MultipartFormData.swift */, + 809984AA7DC4C4DE06F94C93F3F31F68 /* MultipartUpload.swift */, + AD750CBD48B53AD6A1622B9A571211F9 /* NetworkReachabilityManager.swift */, + 83E10341BE6F58757C3FA8C48AABB811 /* Notifications.swift */, + B6344A752BA47A0DBBA274E2D06B5FBA /* OperationQueue+Alamofire.swift */, + C353F30FD1BCD3980906A5F0330D44A1 /* ParameterEncoder.swift */, + 4F54957D940521AFFA54D30D8CDDE36D /* ParameterEncoding.swift */, + 36C3C5FB0C945042CB843B98D76EE212 /* Protected.swift */, + 300099B2CF25A7D6DA7048267AF51457 /* RedirectHandler.swift */, + 7A5E3D9F543235E2A875E0960DCC4CBF /* Request.swift */, + 93119AC21A0AFDB18491C0FBEA76F4E8 /* RequestCompression.swift */, + 155320B123A5E710C35C19470431474D /* RequestInterceptor.swift */, + C90DCFB1BC5BDBA17EF0DE05B8E484CD /* RequestTaskMap.swift */, + 48143438C90609D239F36AAFC5F6A846 /* Response.swift */, + BFD6AF65CD3528B4CE893860CA7B36B1 /* ResponseSerialization.swift */, + 7BAB4652888328569EE3AC8C8D70880A /* Result+Alamofire.swift */, + E5021D9176FC33D47120CC84DA81F66F /* RetryPolicy.swift */, + 520A1CC575874DE1155E941312B8F162 /* ServerTrustEvaluation.swift */, + 2749025194FA83B53CFDAF73B64658C8 /* Session.swift */, + E28059F69337F068381297699C57D83F /* SessionDelegate.swift */, + 7B3AAC6B8CCF6783E1734A8148F6F057 /* StringEncoding+Alamofire.swift */, + 980AD000837D128A8F4A4D128BF66299 /* URLConvertible+URLRequestConvertible.swift */, + 18912D63AB7BE6672195C92E646962D4 /* URLEncodedFormEncoder.swift */, + BEF759D25265FAB82EF30C93FF20062A /* URLRequest+Alamofire.swift */, + FF14B5482A1D9C14C0AB5C866F0EADA6 /* URLSessionConfiguration+Alamofire.swift */, + 5F2A370F3AA6185699E5C9291637FD69 /* Validation.swift */, + 100C866A2F595A0880F6DC23DF51C305 /* Support Files */, ); - name = Frameworks; + name = Alamofire; + path = Alamofire; sourceTree = ""; }; - DBF7F7D339302EBCE551E5A9B4185871 /* Support Files */ = { + F882987345D82102AF7E0987BDF85029 /* Products */ = { isa = PBXGroup; children = ( - E05A6FC530DC5A853665D015CB29AECE /* SwiftKeychainWrapper.modulemap */, - 4CD3B183F2B832E75AB78E4306742985 /* SwiftKeychainWrapper-dummy.m */, - 66A1EC832952C8C8FD3F4346A2B74B4A /* SwiftKeychainWrapper-Info.plist */, - AF488A977815A1B45CDC7E94AAF1DEEC /* SwiftKeychainWrapper-prefix.pch */, - E305D3EE71B912A8108E1C1BA65FF413 /* SwiftKeychainWrapper-umbrella.h */, - 5CFB04FEB4458AA699A90B3398293537 /* SwiftKeychainWrapper.debug.xcconfig */, - EF9D370359AADCA0963C43618AAB128C /* SwiftKeychainWrapper.release.xcconfig */, + 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire */, + F03057FCFD9F5F71152527521E9027EC /* Pods-PowerUp */, + 679BBBA92C4FF3D6180AEFCA12AF3175 /* Pods-PowerUp-PowerUpUITests */, + 772F9BBE013EF6AC8847DE2546BFA2AE /* Pods-PowerUpTests */, + 5069D199AB328CCD047E61C632CD7C32 /* SwiftKeychainWrapper */, ); - name = "Support Files"; - path = "../Target Support Files/SwiftKeychainWrapper"; + name = Products; sourceTree = ""; }; FCBF9056CDB8BC2272F0139F69226933 /* Pods-PowerUpTests */ = { @@ -252,35 +439,30 @@ path = "Target Support Files/Pods-PowerUpTests"; sourceTree = ""; }; - FD889C92A54761B6B2F24356812B3E85 /* SwiftKeychainWrapper */ = { - isa = PBXGroup; - children = ( - 401FEAAE1F19BDC26BAF62CC7FA30A96 /* KeychainItemAccessibility.swift */, - 5AE5E9472BF525BD3E705261568E5199 /* KeychainWrapper.swift */, - D17BC4ECF36B8D66C3A362BC3659967B /* KeychainWrapperSubscript.swift */, - E50C46D8B59DEC0895EBC924E7E1F9AB /* SwiftKeychainWrapper.h */, - DBF7F7D339302EBCE551E5A9B4185871 /* Support Files */, - ); - name = SwiftKeychainWrapper; - path = SwiftKeychainWrapper; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 47DF431299F5533BADE3F84774744A23 /* Headers */ = { + 18CD2DF39E67F84DDF541D3814845F9D /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 1F2BBE5F52608DEFCD764C78EC1E8679 /* Pods-PowerUpTests-umbrella.h in Headers */, + 3ED869CD16B3A1D4414D4B44758AB76B /* Pods-PowerUp-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 44A09C60B56DE58BA36A6F23E7C5A341 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + F369C18DF935B4E097AEC0EA32B24F56 /* Pods-PowerUp-PowerUpUITests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 6E603BD614FD31DA57FA8027F716A86C /* Headers */ = { + 47DF431299F5533BADE3F84774744A23 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 0D2C829DBA4D94629A8BF045009E4C35 /* Pods-PowerUp-PowerUpUITests-umbrella.h in Headers */, + 1F2BBE5F52608DEFCD764C78EC1E8679 /* Pods-PowerUpTests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -293,11 +475,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - FBB395F5595FFB1574D37811B63D637D /* Headers */ = { + ED12AA7015568FEE3FAA009FC97DAAD5 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 547687992E274F060AFB78025F553417 /* Pods-PowerUp-umbrella.h in Headers */, + F038D81F7ABAA15CF03246AD4BF334F7 /* Alamofire-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -316,7 +498,7 @@ buildRules = ( ); dependencies = ( - 64EBA2121ECDBF413D142965A39DD8CF /* PBXTargetDependency */, + 1A709A70FD09B643D7040F6B1F6F2766 /* PBXTargetDependency */, ); name = "Pods-PowerUpTests"; productName = Pods_PowerUpTests; @@ -325,17 +507,18 @@ }; 476C0C98426C94FADFD4DC33EB76D8C6 /* Pods-PowerUp */ = { isa = PBXNativeTarget; - buildConfigurationList = 6B1F7265710333447E2CEB4F5FF884D2 /* Build configuration list for PBXNativeTarget "Pods-PowerUp" */; + buildConfigurationList = 3D97D1158982A2029D65D815FA6011F1 /* Build configuration list for PBXNativeTarget "Pods-PowerUp" */; buildPhases = ( - FBB395F5595FFB1574D37811B63D637D /* Headers */, - 826FF3B5ACCEF1A2DBCE332BD1DCF97D /* Sources */, - 91F0D5CBEDAC43958EE0CEF085E3DE7C /* Frameworks */, - 122644D5D9C6AF8BD5E74FF32EAED0E6 /* Resources */, + 18CD2DF39E67F84DDF541D3814845F9D /* Headers */, + D868726002FB00676F07D2912BB21D43 /* Sources */, + 993B5EA204806D620C2F163C1D431D89 /* Frameworks */, + E89CF0A1DBE14291AD163138D3B2EAA1 /* Resources */, ); buildRules = ( ); dependencies = ( - 56AEDD89908895815DDEDE897F6D7F5E /* PBXTargetDependency */, + FE7773B7A3CB170081FE5DAD9968361C /* PBXTargetDependency */, + D5EE52DF806D89346F8B9BACC94C9B17 /* PBXTargetDependency */, ); name = "Pods-PowerUp"; productName = Pods_PowerUp; @@ -344,17 +527,18 @@ }; BD9088F68E61A657A20A13CB25D1959F /* Pods-PowerUp-PowerUpUITests */ = { isa = PBXNativeTarget; - buildConfigurationList = 4C6E917C739BB17DE52DAA78FF093A08 /* Build configuration list for PBXNativeTarget "Pods-PowerUp-PowerUpUITests" */; + buildConfigurationList = CD3914A9D5B2874B1E83BD513F2360EE /* Build configuration list for PBXNativeTarget "Pods-PowerUp-PowerUpUITests" */; buildPhases = ( - 6E603BD614FD31DA57FA8027F716A86C /* Headers */, - 1E1F7C72E7A6E78869F0E54FC70A578A /* Sources */, - 00A74AC852615C495503161E0E619575 /* Frameworks */, - C03BBF88A505EAC85F7E171B82C7BF08 /* Resources */, + 44A09C60B56DE58BA36A6F23E7C5A341 /* Headers */, + 631256EF22FCD6D538C21862D1CE3F92 /* Sources */, + 77D9ED936E1724DEDEB2386BFB69FC1C /* Frameworks */, + E9B9DEDA9C902263F59AB10D4599F3DB /* Resources */, ); buildRules = ( ); dependencies = ( - 7D2A98A800DF929849B3C4216BEF1DDC /* PBXTargetDependency */, + 354267AC5FB52C064FF4D5D2E3BE80CE /* PBXTargetDependency */, + 800710F4CED535D47E8D9ABA45ACEFA9 /* PBXTargetDependency */, ); name = "Pods-PowerUp-PowerUpUITests"; productName = Pods_PowerUp_PowerUpUITests; @@ -379,6 +563,24 @@ productReference = 5069D199AB328CCD047E61C632CD7C32 /* SwiftKeychainWrapper */; productType = "com.apple.product-type.framework"; }; + EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */ = { + isa = PBXNativeTarget; + buildConfigurationList = D7761A54AFA2998F27E0BC2FACC2EB53 /* Build configuration list for PBXNativeTarget "Alamofire" */; + buildPhases = ( + ED12AA7015568FEE3FAA009FC97DAAD5 /* Headers */, + 277C3B3F937C6D40D2B777A164FAB89D /* Sources */, + 5BF6E64D3157435E5797A5278584A4DC /* Frameworks */, + 565FD2058706F22D2347B30C65280F30 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Alamofire; + productName = Alamofire; + productReference = 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire */; + productType = "com.apple.product-type.framework"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -397,10 +599,11 @@ en, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = 4D648058B24BD4A367AD82ADF04F7334 /* Products */; + productRefGroup = F882987345D82102AF7E0987BDF85029 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( + EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */, 476C0C98426C94FADFD4DC33EB76D8C6 /* Pods-PowerUp */, BD9088F68E61A657A20A13CB25D1959F /* Pods-PowerUp-PowerUpUITests */, 0F2CB9A420AD8C96C4D1FBF4C5EF1765 /* Pods-PowerUpTests */, @@ -410,7 +613,7 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 122644D5D9C6AF8BD5E74FF32EAED0E6 /* Resources */ = { + 565FD2058706F22D2347B30C65280F30 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -424,14 +627,21 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C03BBF88A505EAC85F7E171B82C7BF08 /* Resources */ = { + C43BC878A5CB5CE6C59FF13F0DF23FA9 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - C43BC878A5CB5CE6C59FF13F0DF23FA9 /* Resources */ = { + E89CF0A1DBE14291AD163138D3B2EAA1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E9B9DEDA9C902263F59AB10D4599F3DB /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -449,11 +659,56 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 1E1F7C72E7A6E78869F0E54FC70A578A /* Sources */ = { + 277C3B3F937C6D40D2B777A164FAB89D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - AB199F4BD1188875FF9F6C5D47B910A8 /* Pods-PowerUp-PowerUpUITests-dummy.m in Sources */, + 320C0D7A88AA812EFB20016BA1F5D7AE /* AFError.swift in Sources */, + 81E6A0FF7F286008345ECFA3A2103FA8 /* Alamofire.swift in Sources */, + D09FBBADAF7C5C757AA5AB5DFE54BD25 /* Alamofire-dummy.m in Sources */, + F2415AE8678DE2698B7AD7D88B1A5C0F /* AlamofireExtended.swift in Sources */, + 197457852FC83E905248660B0F930452 /* AuthenticationInterceptor.swift in Sources */, + 04A8430BFC619C34E5F4D3878D094380 /* CachedResponseHandler.swift in Sources */, + 385BC4B250B6A6DB8AAAEA77D5B7A46F /* Combine.swift in Sources */, + 78B1DD1219182494A6AFAD26AAB20AA6 /* Concurrency.swift in Sources */, + 8E698F134A953250D5834C8B83CDAD34 /* DispatchQueue+Alamofire.swift in Sources */, + 82FD97FBBEFE51E2D3B434AF4954FC93 /* EventMonitor.swift in Sources */, + 529173B31EFCD3D199E79866AFBEC86C /* HTTPHeaders.swift in Sources */, + F66CC47AD425C8D57BD149AFD09C2AFE /* HTTPMethod.swift in Sources */, + 737747B9A98257DB58112C3A23686669 /* MultipartFormData.swift in Sources */, + 732C29255F73EF3D83D49BD4F8FEAA8F /* MultipartUpload.swift in Sources */, + BAB17A1C6CAD14B3788973EAF8466C93 /* NetworkReachabilityManager.swift in Sources */, + 3A59D8FBAF9A54906E3644AC80465AFB /* Notifications.swift in Sources */, + 7D64BC3E6CAA4AB54EAC0AAADE93F578 /* OperationQueue+Alamofire.swift in Sources */, + B17D933C8F8BC6A4F91AA620D7D7A870 /* ParameterEncoder.swift in Sources */, + 482B74C0548970BB9C095E2D8530E421 /* ParameterEncoding.swift in Sources */, + 079F0820555C5B86C9FBD5EC6344137F /* Protected.swift in Sources */, + ECE6F23823454A8FDB3F97CE1A7CD182 /* RedirectHandler.swift in Sources */, + 5B92A66A66BD639411C3D839A0F87B0C /* Request.swift in Sources */, + A523488C60BF961290D0B1ABB9ADACEC /* RequestCompression.swift in Sources */, + 1AFD57838680DF58184FF94D14C7F3FF /* RequestInterceptor.swift in Sources */, + ECF2F956B37A4C28B228BC291A57AD6E /* RequestTaskMap.swift in Sources */, + AA721ECC2B36AFB7D9FE70C83E6D63F9 /* Response.swift in Sources */, + 3FA127A261BB563409868A0DC21807B2 /* ResponseSerialization.swift in Sources */, + F6E94E8EE1CE35F49B9091BE8748587B /* Result+Alamofire.swift in Sources */, + 643A7AFFB7AEB70B2B9B7E0926055023 /* RetryPolicy.swift in Sources */, + 77AB6AF4BFC6DE016DA7C057B5799C84 /* ServerTrustEvaluation.swift in Sources */, + 282FCD4EA8B05830E9108690B8CD336B /* Session.swift in Sources */, + E6251F02EE12804D1B66AE32E716E664 /* SessionDelegate.swift in Sources */, + C04739CBCEE445B66192BFA708655EDF /* StringEncoding+Alamofire.swift in Sources */, + D0560E8E2E5EB407B5D8E0381BF453FA /* URLConvertible+URLRequestConvertible.swift in Sources */, + C8269B42DED12AB1F275648D0BD32E45 /* URLEncodedFormEncoder.swift in Sources */, + 11CCD832BD537718892C6A216A38490A /* URLRequest+Alamofire.swift in Sources */, + 67B10FEAA3B7E5387D20E76B1085E94D /* URLSessionConfiguration+Alamofire.swift in Sources */, + D368E6F70C5E6998548A72E65F92432D /* Validation.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 631256EF22FCD6D538C21862D1CE3F92 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 553329A1CF473AB06A869C1CBACFDCB3 /* Pods-PowerUp-PowerUpUITests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -468,41 +723,53 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 826FF3B5ACCEF1A2DBCE332BD1DCF97D /* Sources */ = { + D868726002FB00676F07D2912BB21D43 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 07614D85DCD9D7B87465D2B994687E4A /* Pods-PowerUp-dummy.m in Sources */, + 3D8F0292757E2B1CB72E4DA65674C3FB /* Pods-PowerUp-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 56AEDD89908895815DDEDE897F6D7F5E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SwiftKeychainWrapper; - target = CF903DF43E111410ECA0C288D36FA21A /* SwiftKeychainWrapper */; - targetProxy = E5923715BA81933D2B5D19E94983FD31 /* PBXContainerItemProxy */; - }; - 64EBA2121ECDBF413D142965A39DD8CF /* PBXTargetDependency */ = { + 1A709A70FD09B643D7040F6B1F6F2766 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Pods-PowerUp"; target = 476C0C98426C94FADFD4DC33EB76D8C6 /* Pods-PowerUp */; - targetProxy = EAAB9904C3CFE6B994B2B1A92832E618 /* PBXContainerItemProxy */; + targetProxy = 2323037D50FF5B6EE7EE1CC673A1B067 /* PBXContainerItemProxy */; }; - 7D2A98A800DF929849B3C4216BEF1DDC /* PBXTargetDependency */ = { + 354267AC5FB52C064FF4D5D2E3BE80CE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Alamofire; + target = EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */; + targetProxy = 50C3736D3F8A312FF970F72A6113E637 /* PBXContainerItemProxy */; + }; + 800710F4CED535D47E8D9ABA45ACEFA9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SwiftKeychainWrapper; + target = CF903DF43E111410ECA0C288D36FA21A /* SwiftKeychainWrapper */; + targetProxy = 6465B3E6CF50F45333917D2017D744B3 /* PBXContainerItemProxy */; + }; + D5EE52DF806D89346F8B9BACC94C9B17 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = SwiftKeychainWrapper; target = CF903DF43E111410ECA0C288D36FA21A /* SwiftKeychainWrapper */; - targetProxy = 7FF4A995E002779358F3588BA8B85632 /* PBXContainerItemProxy */; + targetProxy = 3A29176E06F23AF206D79D6E2EB67744 /* PBXContainerItemProxy */; + }; + FE7773B7A3CB170081FE5DAD9968361C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Alamofire; + target = EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */; + targetProxy = 4746F6F24D4552ADACB25E1C9065C03D /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 364058F34052B510799909B8A39752FC /* Release */ = { + 6A132E01B04C4EF8559B23B95BDCD322 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C268C0BFFA51D313317A1F7AA7AFFD0B /* Pods-PowerUp.release.xcconfig */; + baseConfigurationReference = 26E7827087DAE0521FFF44871D80C93D /* Pods-PowerUp-PowerUpUITests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -514,7 +781,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.4; LD_RUNPATH_SEARCH_PATHS = ( @@ -523,7 +790,7 @@ "@loader_path/Frameworks", ); MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -604,9 +871,43 @@ }; name = Debug; }; - 804DD9C25D0996EF250B91D21E9610B3 /* Debug */ = { + 8CD241342938F54A20E875C2AE5904F6 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9D18E990689473A176C8D659C67BD1F7 /* Pods-PowerUp-PowerUpUITests.debug.xcconfig */; + baseConfigurationReference = FA1E0F5C05D198621068FCA8A55FFB90 /* SwiftKeychainWrapper.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.modulemap"; + PRODUCT_MODULE_NAME = SwiftKeychainWrapper; + PRODUCT_NAME = SwiftKeychainWrapper; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9322A5CCEF7FCE5A9C959A95D8DAF382 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CBD2CEE5F2964AC0CE867488CC8182E4 /* Pods-PowerUpTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -618,7 +919,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.4; LD_RUNPATH_SEARCH_PATHS = ( @@ -627,7 +928,7 @@ "@loader_path/Frameworks", ); MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -641,9 +942,9 @@ }; name = Debug; }; - 8CD241342938F54A20E875C2AE5904F6 /* Debug */ = { + 986CA13C16CB2180B15C7439E2C71672 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5CFB04FEB4458AA699A90B3398293537 /* SwiftKeychainWrapper.debug.xcconfig */; + baseConfigurationReference = 6E0EDE8DAA8EE459ABB011FDA633DE02 /* SwiftKeychainWrapper.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -670,14 +971,15 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 9322A5CCEF7FCE5A9C959A95D8DAF382 /* Debug */ = { + 9CC7F73A2050297B5C7B565DBB54531A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CBD2CEE5F2964AC0CE867488CC8182E4 /* Pods-PowerUpTests.debug.xcconfig */; + baseConfigurationReference = 5B3A3D886C7912CFE90B065772A6E5A1 /* Pods-PowerUpTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -707,15 +1009,54 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + A4218490DD6AB80697C9548AB2B0734F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4CC410D60E3A2F9C7804E1F95777CD87 /* Pods-PowerUp.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 986CA13C16CB2180B15C7439E2C71672 /* Release */ = { + B7D9E7CD650F798EC835C67DACFEBC4F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EF9D370359AADCA0963C43618AAB128C /* SwiftKeychainWrapper.release.xcconfig */; + baseConfigurationReference = 6AEB2C59BF74EA5663135847216D57F7 /* Alamofire.debug.xcconfig */; buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -724,32 +1065,31 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Alamofire/Alamofire-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_FILE = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.modulemap"; - PRODUCT_MODULE_NAME = SwiftKeychainWrapper; - PRODUCT_NAME = SwiftKeychainWrapper; + MODULEMAP_FILE = "Target Support Files/Alamofire/Alamofire.modulemap"; + PRODUCT_MODULE_NAME = Alamofire; + PRODUCT_NAME = Alamofire; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; + SWIFT_VERSION = 5; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 9CC7F73A2050297B5C7B565DBB54531A /* Release */ = { + B8B3662FA545949E2A0582BD36CB27B5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5B3A3D886C7912CFE90B065772A6E5A1 /* Pods-PowerUpTests.release.xcconfig */; + baseConfigurationReference = C268C0BFFA51D313317A1F7AA7AFFD0B /* Pods-PowerUp.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -761,7 +1101,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.4; LD_RUNPATH_SEARCH_PATHS = ( @@ -770,7 +1110,7 @@ "@loader_path/Frameworks", ); MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -785,9 +1125,9 @@ }; name = Release; }; - A32D88EC2118B4C374A03C8CAF4C151C /* Debug */ = { + CF15EE7F089B2C3D719D6798AACE2CAF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4CC410D60E3A2F9C7804E1F95777CD87 /* Pods-PowerUp.debug.xcconfig */; + baseConfigurationReference = 9D18E990689473A176C8D659C67BD1F7 /* Pods-PowerUp-PowerUpUITests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -799,7 +1139,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.4; LD_RUNPATH_SEARCH_PATHS = ( @@ -808,7 +1148,7 @@ "@loader_path/Frameworks", ); MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -822,11 +1162,10 @@ }; name = Debug; }; - DD45638C9002ABF1C42831C7DC0878AD /* Release */ = { + F5F3306F2C09AB4B623C805497E28D51 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 26E7827087DAE0521FFF44871D80C93D /* Pods-PowerUp-PowerUpUITests.release.xcconfig */; + baseConfigurationReference = 64AFC79D07D07246266B7EE6519C983C /* Alamofire.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -836,23 +1175,22 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Alamofire/Alamofire-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 16.4; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/Alamofire/Alamofire.modulemap"; + PRODUCT_MODULE_NAME = Alamofire; + PRODUCT_NAME = Alamofire; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -934,6 +1272,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 3D97D1158982A2029D65D815FA6011F1 /* Build configuration list for PBXNativeTarget "Pods-PowerUp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A4218490DD6AB80697C9548AB2B0734F /* Debug */, + B8B3662FA545949E2A0582BD36CB27B5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -943,29 +1290,29 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4C6E917C739BB17DE52DAA78FF093A08 /* Build configuration list for PBXNativeTarget "Pods-PowerUp-PowerUpUITests" */ = { + 98BCB2F8FCBF8621114310D5DB4657DB /* Build configuration list for PBXNativeTarget "SwiftKeychainWrapper" */ = { isa = XCConfigurationList; buildConfigurations = ( - 804DD9C25D0996EF250B91D21E9610B3 /* Debug */, - DD45638C9002ABF1C42831C7DC0878AD /* Release */, + 8CD241342938F54A20E875C2AE5904F6 /* Debug */, + 986CA13C16CB2180B15C7439E2C71672 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 6B1F7265710333447E2CEB4F5FF884D2 /* Build configuration list for PBXNativeTarget "Pods-PowerUp" */ = { + CD3914A9D5B2874B1E83BD513F2360EE /* Build configuration list for PBXNativeTarget "Pods-PowerUp-PowerUpUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( - A32D88EC2118B4C374A03C8CAF4C151C /* Debug */, - 364058F34052B510799909B8A39752FC /* Release */, + CF15EE7F089B2C3D719D6798AACE2CAF /* Debug */, + 6A132E01B04C4EF8559B23B95BDCD322 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 98BCB2F8FCBF8621114310D5DB4657DB /* Build configuration list for PBXNativeTarget "SwiftKeychainWrapper" */ = { + D7761A54AFA2998F27E0BC2FACC2EB53 /* Build configuration list for PBXNativeTarget "Alamofire" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8CD241342938F54A20E875C2AE5904F6 /* Debug */, - 986CA13C16CB2180B15C7439E2C71672 /* Release */, + B7D9E7CD650F798EC835C67DACFEBC4F /* Debug */, + F5F3306F2C09AB4B623C805497E28D51 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.markdown b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.markdown index bbf4a83..ad56cf3 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.markdown @@ -1,6 +1,29 @@ # Acknowledgements This application makes use of the following third party libraries: +## Alamofire + +Copyright (c) 2014-2022 Alamofire Software Foundation (http://alamofire.org/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + ## SwiftKeychainWrapper The MIT License (MIT) diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.plist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.plist index 59dde5e..0e1635c 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.plist +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.plist @@ -12,6 +12,35 @@ Type PSGroupSpecifier + + FooterText + Copyright (c) 2014-2022 Alamofire Software Foundation (http://alamofire.org/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + License + MIT + Title + Alamofire + Type + PSGroupSpecifier + FooterText The MIT License (MIT) diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-input-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-input-files.xcfilelist index 08ccc11..6707c67 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-input-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-input-files.xcfilelist @@ -1,2 +1,3 @@ ${PODS_ROOT}/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh +${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework ${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-output-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-output-files.xcfilelist index 6edc35e..8aca91f 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-output-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-output-files.xcfilelist @@ -1 +1,2 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-input-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-input-files.xcfilelist index 08ccc11..6707c67 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-input-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-input-files.xcfilelist @@ -1,2 +1,3 @@ ${PODS_ROOT}/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh +${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework ${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-output-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-output-files.xcfilelist index 6edc35e..8aca91f 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-output-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-output-files.xcfilelist @@ -1 +1,2 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh index ee40200..641623a 100755 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh @@ -176,9 +176,11 @@ code_sign_if_enabled() { } if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework" install_framework "${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework" install_framework "${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.debug.xcconfig b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.debug.xcconfig index 6f69f0d..e82cd9f 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.debug.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "CFNetwork" -framework "SwiftKeychainWrapper" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.release.xcconfig b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.release.xcconfig index 6f69f0d..e82cd9f 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.release.xcconfig +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.release.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "CFNetwork" -framework "SwiftKeychainWrapper" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.markdown b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.markdown index bbf4a83..ad56cf3 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.markdown @@ -1,6 +1,29 @@ # Acknowledgements This application makes use of the following third party libraries: +## Alamofire + +Copyright (c) 2014-2022 Alamofire Software Foundation (http://alamofire.org/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + ## SwiftKeychainWrapper The MIT License (MIT) diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.plist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.plist index 59dde5e..0e1635c 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.plist +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.plist @@ -12,6 +12,35 @@ Type PSGroupSpecifier + + FooterText + Copyright (c) 2014-2022 Alamofire Software Foundation (http://alamofire.org/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + License + MIT + Title + Alamofire + Type + PSGroupSpecifier + FooterText The MIT License (MIT) diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-input-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-input-files.xcfilelist index b4233fc..0a96cdf 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-input-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-input-files.xcfilelist @@ -1,2 +1,3 @@ ${PODS_ROOT}/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh +${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework ${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-output-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-output-files.xcfilelist index 6edc35e..8aca91f 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-output-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-output-files.xcfilelist @@ -1 +1,2 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-input-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-input-files.xcfilelist index b4233fc..0a96cdf 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-input-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-input-files.xcfilelist @@ -1,2 +1,3 @@ ${PODS_ROOT}/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh +${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework ${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-output-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-output-files.xcfilelist index 6edc35e..8aca91f 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-output-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-output-files.xcfilelist @@ -1 +1,2 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh index ee40200..641623a 100755 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh @@ -176,9 +176,11 @@ code_sign_if_enabled() { } if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework" install_framework "${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework" install_framework "${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.debug.xcconfig b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.debug.xcconfig index b97ddf1..4b4d3ee 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.debug.xcconfig +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.debug.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "CFNetwork" -framework "SwiftKeychainWrapper" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.release.xcconfig b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.release.xcconfig index b97ddf1..4b4d3ee 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.release.xcconfig +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.release.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "CFNetwork" -framework "SwiftKeychainWrapper" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.debug.xcconfig b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.debug.xcconfig index 52b8e1f..5e90837 100644 --- a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.debug.xcconfig @@ -1,8 +1,8 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "CFNetwork" -framework "SwiftKeychainWrapper" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.release.xcconfig b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.release.xcconfig index 52b8e1f..5e90837 100644 --- a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.release.xcconfig +++ b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.release.xcconfig @@ -1,8 +1,8 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "CFNetwork" -framework "SwiftKeychainWrapper" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index 243bdb8..99c49fc 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -22,6 +22,9 @@ 4452940C2B00A27A00B1A3D5 /* KeychainService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4452940B2B00A27A00B1A3D5 /* KeychainService.swift */; }; 44B8ACCE2B02CA2E00D1BAA4 /* UserService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44B8ACCD2B02CA2D00D1BAA4 /* UserService.swift */; }; 7454DD130D9425939073494A /* Pods_PowerUp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2E2C196D951641A7DAA32038 /* Pods_PowerUp.framework */; }; + 850037642B102BC6009C5E8B /* ActivateMachineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 850037632B102BC6009C5E8B /* ActivateMachineViewController.swift */; }; + 850037662B102BEF009C5E8B /* ActivateMachineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 850037652B102BEF009C5E8B /* ActivateMachineView.swift */; }; + 850037682B102D09009C5E8B /* APIConfigs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 850037672B102D09009C5E8B /* APIConfigs.swift */; }; 8583334D2AE0AA9E005540D6 /* FirebaseAuth in Frameworks */ = {isa = PBXBuildFile; productRef = 8583334C2AE0AA9E005540D6 /* FirebaseAuth */; }; 8583334F2AE0AB4A005540D6 /* RegisterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8583334E2AE0AB4A005540D6 /* RegisterViewController.swift */; }; 858333512AE0AB5F005540D6 /* RegisterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 858333502AE0AB5F005540D6 /* RegisterView.swift */; }; @@ -82,6 +85,9 @@ 4452940B2B00A27A00B1A3D5 /* KeychainService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainService.swift; sourceTree = ""; }; 44B8ACCD2B02CA2D00D1BAA4 /* UserService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserService.swift; sourceTree = ""; }; 7551CF5ED700DE1005997F51 /* Pods-PowerUp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PowerUp.release.xcconfig"; path = "Target Support Files/Pods-PowerUp/Pods-PowerUp.release.xcconfig"; sourceTree = ""; }; + 850037632B102BC6009C5E8B /* ActivateMachineViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivateMachineViewController.swift; sourceTree = ""; }; + 850037652B102BEF009C5E8B /* ActivateMachineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivateMachineView.swift; sourceTree = ""; }; + 850037672B102D09009C5E8B /* APIConfigs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIConfigs.swift; sourceTree = ""; }; 856E39C20D66BD303EDD7E52 /* Pods_PowerUpTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PowerUpTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 8583334E2AE0AB4A005540D6 /* RegisterViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterViewController.swift; sourceTree = ""; }; 858333502AE0AB5F005540D6 /* RegisterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterView.swift; sourceTree = ""; }; @@ -196,6 +202,15 @@ path = UserService; sourceTree = ""; }; + 850037622B102BAE009C5E8B /* ActivateScreen */ = { + isa = PBXGroup; + children = ( + 850037632B102BC6009C5E8B /* ActivateMachineViewController.swift */, + 850037652B102BEF009C5E8B /* ActivateMachineView.swift */, + ); + path = ActivateScreen; + sourceTree = ""; + }; 858F15362ABB77F0002B64C1 = { isa = PBXGroup; children = ( @@ -223,6 +238,7 @@ 858F15412ABB77F0002B64C1 /* PowerUp */ = { isa = PBXGroup; children = ( + 850037622B102BAE009C5E8B /* ActivateScreen */, 111834A52B0C138F00EB24C4 /* DataModels */, 1118349B2B0C131D00EB24C4 /* ContentView.swift */, 111834992B0C131600EB24C4 /* MapViewController.swift */, @@ -241,6 +257,7 @@ 858F154B2ABB77F1002B64C1 /* Assets.xcassets */, 858F154D2ABB77F1002B64C1 /* LaunchScreen.storyboard */, 858F15502ABB77F1002B64C1 /* Info.plist */, + 850037672B102D09009C5E8B /* APIConfigs.swift */, ); path = PowerUp; sourceTree = ""; @@ -563,6 +580,7 @@ 858F16C92ACE60C6002B64C1 /* StartScreen.swift in Sources */, 111834A12B0C137D00EB24C4 /* Machine.swift in Sources */, 858F16C82ACE60C6002B64C1 /* StartScreenController.swift in Sources */, + 850037642B102BC6009C5E8B /* ActivateMachineViewController.swift in Sources */, 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */, 111834A42B0C137D00EB24C4 /* Cafe.swift in Sources */, 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */, @@ -572,6 +590,7 @@ 858F16C32ACE60A6002B64C1 /* WalletViewController.swift in Sources */, 1118349A2B0C131600EB24C4 /* MapViewController.swift in Sources */, 445294082AFDFB0300B1A3D5 /* ProfileView.swift in Sources */, + 850037662B102BEF009C5E8B /* ActivateMachineView.swift in Sources */, 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */, 4452940C2B00A27A00B1A3D5 /* KeychainService.swift in Sources */, 44B8ACCE2B02CA2E00D1BAA4 /* UserService.swift in Sources */, @@ -582,6 +601,7 @@ 858F16C42ACE60A6002B64C1 /* WalletView.swift in Sources */, 858F16B02ACA73C5002B64C1 /* StoreScreen.swift in Sources */, 111834A22B0C137D00EB24C4 /* CafeWithDistance.swift in Sources */, + 850037682B102D09009C5E8B /* APIConfigs.swift in Sources */, 858F15452ABB77F0002B64C1 /* SceneDelegate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/PowerUp.xcodeproj/xcuserdata/cliffli.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcodeproj/xcuserdata/cliffli.xcuserdatad/xcschemes/xcschememanagement.plist index 6029916..914ee1f 100644 --- a/PowerUp.xcodeproj/xcuserdata/cliffli.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/PowerUp.xcodeproj/xcuserdata/cliffli.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ PowerUp.xcscheme_^#shared#^_ orderHint - 1 + 5 Promises (Playground) 1.xcscheme diff --git a/PowerUp.xcworkspace/xcshareddata/swiftpm/Package.resolved b/PowerUp.xcworkspace/xcshareddata/swiftpm/Package.resolved index 4b7113b..80a8628 100644 --- a/PowerUp.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/PowerUp.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -9,13 +9,22 @@ "version" : "1.2022062300.0" } }, + { + "identity" : "app-check", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/app-check.git", + "state" : { + "revision" : "5746b2d35c91c50581590ed97abe4c06b5037274", + "version" : "10.18.0" + } + }, { "identity" : "firebase-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/firebase-ios-sdk", "state" : { - "revision" : "8872dbd7d947acf757abab933da10e83c1842280", - "version" : "10.17.0" + "revision" : "5de0369ee79ad096c164eb3afeb7921d92a43b58", + "version" : "10.18.0" } }, { @@ -41,8 +50,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleUtilities.git", "state" : { - "revision" : "f6532c8d65f8308cfdf2288cbe1971a509822680", - "version" : "7.12.0" + "revision" : "bc27fad73504f3d4af235de451f02ee22586ebd3", + "version" : "7.12.1" } }, { diff --git a/PowerUp/APIConfigs.swift b/PowerUp/APIConfigs.swift new file mode 100644 index 0000000..a21ed55 --- /dev/null +++ b/PowerUp/APIConfigs.swift @@ -0,0 +1,11 @@ +// +// APIConfigs.swift +// PowerUp +// +// Created by Cliff Li on 11/23/23. +// + +import Foundation +class APIConfigs{ + static let baseAPI = "http://localhost:8080/" +} diff --git a/PowerUp/ActivateScreen/ActivateMachineView.swift b/PowerUp/ActivateScreen/ActivateMachineView.swift new file mode 100644 index 0000000..5d70ca6 --- /dev/null +++ b/PowerUp/ActivateScreen/ActivateMachineView.swift @@ -0,0 +1,77 @@ +// +// ActivateMachineView.swift +// PowerUp +// +// Created by Cliff Li on 11/23/23. +// + +import UIKit + +class ActivateMachineView: UIView { + var midTextField: UITextField! + + //button: add + var activateButton: UIButton! + var typeLabel: UILabel! + var rateLabel: UILabel! + + override init(frame: CGRect) { + super.init(frame: frame) + self.backgroundColor = .white + + setupmidTextField() + setupActivateButton() + setupLabels() + initContraints() + } + + func setupmidTextField(){ + midTextField = UITextField() + midTextField.placeholder = "machine id" + midTextField.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(midTextField) + } + + func setupLabels(){ + typeLabel = UILabel() + rateLabel = UILabel() + typeLabel.translatesAutoresizingMaskIntoConstraints = false + rateLabel.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(typeLabel) + self.addSubview(rateLabel) + } + + func setupActivateButton(){ + activateButton = UIButton(type: .system) + activateButton.setTitle("Activate", for: .normal) + activateButton.titleLabel?.font = UIFont.systemFont(ofSize: 20, weight: .semibold) + activateButton.backgroundColor = UIColor(red: 0.45, green: 0.72, blue: 1, alpha: 1.0) + activateButton.setTitleColor(UIColor.white, for: .normal) + activateButton.layer.cornerRadius = 12 + activateButton.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(activateButton) + } + + func initContraints(){ + //MARK: constraints... + NSLayoutConstraint.activate([ + midTextField.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor), + midTextField.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 24), + + typeLabel.topAnchor.constraint(equalTo: midTextField.bottomAnchor, constant: 10), + typeLabel.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 24), + + rateLabel.topAnchor.constraint(equalTo: typeLabel.bottomAnchor, constant: 10), + rateLabel.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 24), + + activateButton.topAnchor.constraint(equalTo: rateLabel.bottomAnchor, constant: 20), + activateButton.centerXAnchor.constraint(equalTo: centerXAnchor), + activateButton.widthAnchor.constraint(equalToConstant: 160), + activateButton.heightAnchor.constraint(equalToConstant: 50) + ]) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} diff --git a/PowerUp/ActivateScreen/ActivateMachineViewController.swift b/PowerUp/ActivateScreen/ActivateMachineViewController.swift new file mode 100644 index 0000000..0b572cc --- /dev/null +++ b/PowerUp/ActivateScreen/ActivateMachineViewController.swift @@ -0,0 +1,173 @@ +// +// ActivateMachineViewController.swift +// PowerUp +// +// Created by Cliff Li on 11/23/23. +// + +import UIKit + +import UIKit +import Alamofire + +class ActiavteMachineViewController: UIViewController { + let activateMachineView = ActivateMachineView() + let uid = KeychainService.loadToken() + override func loadView() { + view = activateMachineView + } + + override func viewDidLoad() { + super.viewDidLoad() + activateMachineView.activateButton.addTarget(self, action: #selector(activate), for: .touchUpInside) + + } + + func reload(){ + activateMachineView.midTextField.text = "" + activateMachineView.typeLabel.text = "" + activateMachineView.rateLabel.text = "" + } + + @objc func activate(){ + let mid = activateMachineView.midTextField.text ?? "" + let url = APIConfigs.baseAPI + "user/\(self.uid!)/credit" + AF.request(url) + .validate() + .responseDecodable(of: Double.self) { response in + switch response.result { + case .success(let credit): + if credit<5{ + let alertController = UIAlertController( + title: "Insufficient balance", + message: "Your balance is insufficient", + preferredStyle: .alert + ) + + let okAction = UIAlertAction(title: "OK", style: .default, handler: nil) + alertController.addAction(okAction) + + self.present(alertController, animated: true, completion: nil) + }else{ + print("check machine") + self.checkMachine(mid: mid) + } + + case .failure(let error): + print("Failed to load credit: \(error.localizedDescription)") + } + } + + + + } + + func activeteMachine(mid: String){ + let url = APIConfigs.baseAPI + "machine/activate" + AF.request(url, method:.post, parameters: + [ + "userId": uid!, + "mid": mid + ]) + .responseString(completionHandler: { response in + switch response.result { + case .success(_): + if let statusCode = response.response?.statusCode, statusCode == 200 { + // Show a success alert + let alertController = UIAlertController( + title: "Success", + message: "Machine is successfully activated", + preferredStyle: .alert + ) + + let okAction = UIAlertAction(title: "OK", style: .default, handler: nil) + alertController.addAction(okAction) + + self.present(alertController, animated: true, completion: nil) + } else { + // Show an alert for non-200 status codes + self.showFailureAlert() + } + + case .failure(let error): + print("Error: \(error)") + + // Show an error alert if the request fails + self.showFailureAlert() + } + }) + } + + + func showFailureAlert() { + print("Userid is \(KeychainService.loadToken())") + let alertController = UIAlertController( + title: "Failure", + message: "Failed to retrieve data from the API or non-200 status code.", + preferredStyle: .alert + ) + + let okAction = UIAlertAction(title: "OK", style: .default, handler: nil) + alertController.addAction(okAction) + + present(alertController, animated: true, completion: nil) + } + + func checkMachine(mid: String) { + let url = APIConfigs.baseAPI + "machine/\(mid)" + AF.request(url).responseJSON { response in + switch response.result { + case .success(let value): + // Assuming the response is a dictionary + if let json = value as? [String: Any] { + if let activation = json["activated"] as? Bool{ + + if activation == true{ + let alertController = UIAlertController( + title: "Machine in Use", + message: "The machine is in use", + preferredStyle: .alert + ) + let okAction = UIAlertAction(title: "OK", style: .default) + alertController.addAction(okAction) + self.present(alertController, animated: true, completion: nil) + }else{ + if let type = json["type"] as? String { + + // Update the text of your typeLabel + self.activateMachineView.typeLabel.text = "Type: " + type + let rate = 3 + let alertController = UIAlertController( + title: "Rate Information", + message: "The rate is \(rate) per hour.", + preferredStyle: .alert + ) + + let okAction = UIAlertAction(title: "OK", style: .default) { _ in + self.activeteMachine(mid: mid) + } + + let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil) + + alertController.addAction(okAction) + alertController.addAction(cancelAction) + + self.present(alertController, animated: true, completion: nil) + } + } + } + } + case .failure(_): + let alertController = UIAlertController( + title: "No machine found", + message: "Chech the id again.", + preferredStyle: .alert + ) + + let okAction = UIAlertAction(title: "OK", style: .default) + alertController.addAction(okAction) + self.present(alertController, animated: true, completion: nil) + } + } + } +} diff --git a/PowerUp/Start Screen/StartScreen.swift b/PowerUp/Start Screen/StartScreen.swift index ea83dc5..90562f3 100644 --- a/PowerUp/Start Screen/StartScreen.swift +++ b/PowerUp/Start Screen/StartScreen.swift @@ -65,13 +65,12 @@ class StartScreen: UIView { // credit label creditLabel = UILabel() creditLabel.text = "Credit Available:" - creditLabel.font = UIFont.boldSystemFont(ofSize: 22) + creditLabel.font = UIFont.boldSystemFont(ofSize: 26) creditLabel.textColor = UIColor.white creditLabel.translatesAutoresizingMaskIntoConstraints = false // credit figure label creditFigureLabel = UILabel() - creditFigureLabel.text = "$100.00" creditFigureLabel.font = UIFont.boldSystemFont(ofSize: 22) creditFigureLabel.textColor = UIColor.white creditFigureLabel.translatesAutoresizingMaskIntoConstraints = false diff --git a/PowerUp/Start Screen/StartScreenController.swift b/PowerUp/Start Screen/StartScreenController.swift index 89812d3..d228f44 100644 --- a/PowerUp/Start Screen/StartScreenController.swift +++ b/PowerUp/Start Screen/StartScreenController.swift @@ -6,11 +6,15 @@ // import UIKit +import Alamofire -class StartScreenController: UIViewController { +class StartScreenController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { //MARK: initializing the First Screen View... let startScreen = StartScreen() + let uid = KeychainService.loadToken() + let ActivateMachineController = ActiavteMachineViewController() + var ActivateMachineNavController: UINavigationController! //MARK: add the view to this controller while the view is loading... override func loadView() { @@ -19,17 +23,77 @@ class StartScreenController: UIViewController { override func viewDidLoad() { super.viewDidLoad() + getUserCredit() startScreen.scanButton.addTarget(self, action: #selector(onButtonScanSubmitTapped), for: .touchUpInside) startScreen.typeNumberButton.addTarget(self, action: #selector(onButtonTypeSubmitTapped), for: .touchUpInside) } + func getUserCredit() { + let url = APIConfigs.baseAPI + "user/\(self.uid!)/credit" + AF.request(url) + .validate() + .responseDecodable(of: Double.self) { response in + switch response.result { + case .success(let credit): + self.startScreen.creditLabel.text = "Credit: $ "+String(credit) + + case .failure(let error): + print("Failed to load credit: \(error.localizedDescription)") + } + } + } + + // MARK: - Image Picker Methods + func presentImagePicker(sourceType: UIImagePickerController.SourceType) { + guard UIImagePickerController.isSourceTypeAvailable(sourceType) else { + print("Camera not available") + return + } + + let imagePicker = UIImagePickerController() + imagePicker.sourceType = sourceType + imagePicker.delegate = self + present(imagePicker, animated: true, completion: nil) + } + + // MARK: - UIImagePickerControllerDelegate + + func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { + if let pickedImage = info[.originalImage] as? UIImage { + } + + dismiss(animated: true, completion: nil) + } + + // MARK: Activate machine function + func showActivateView(){ + ActivateMachineController.reload() + ActivateMachineNavController = UINavigationController(rootViewController: ActivateMachineController) + ActivateMachineNavController.modalPresentationStyle = .pageSheet + + if let bottomCheckoutSheet = ActivateMachineNavController.sheetPresentationController{ + bottomCheckoutSheet.detents = [.medium(), .large()] + bottomCheckoutSheet.prefersGrabberVisible = true + } + } + + + + func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { + dismiss(animated: true, completion: nil) + } + + //MARK: submit scan button tapped action... @objc func onButtonScanSubmitTapped(){ + presentImagePicker(sourceType: .camera) print("Scan Button: I was clicked!") } //MARK: submit type button tapped action... @objc func onButtonTypeSubmitTapped(){ + showActivateView() + present(ActivateMachineNavController, animated: true) print("Type Button: I was clicked!") } From 74d125337e5693a96c04750db2aa7c9de63e6c5d Mon Sep 17 00:00:00 2001 From: CliffLi Date: Thu, 23 Nov 2023 19:47:01 -0600 Subject: [PATCH 52/71] Check if order existed --- .../Start Screen/StartScreenController.swift | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/PowerUp/Start Screen/StartScreenController.swift b/PowerUp/Start Screen/StartScreenController.swift index d228f44..8f3ed4e 100644 --- a/PowerUp/Start Screen/StartScreenController.swift +++ b/PowerUp/Start Screen/StartScreenController.swift @@ -92,9 +92,49 @@ class StartScreenController: UIViewController, UIImagePickerControllerDelegate, //MARK: submit type button tapped action... @objc func onButtonTypeSubmitTapped(){ - showActivateView() - present(ActivateMachineNavController, animated: true) + let url = APIConfigs.baseAPI + "user/currentOrders/\(self.uid!)" + AF.request(url, method: .get, encoding: JSONEncoding.default) + .validate() + .responseJSON { response in + switch response.result { + case .success: + if let data = response.data { + do { + let orders = try JSONDecoder().decode([Order].self, from: data) + + // Check if the array has any orders + if orders.isEmpty { + self.showActivateView() + self.present(self.ActivateMachineNavController, animated: true) + } else { + self.showAlert(message: "You already have an order!") + } + } catch { + print("Error decoding JSON: \(error)") + // Handle decoding error, show an alert, etc. + } + } + case .failure(let error): + print("Error: \(error)") + // Handle error, show an alert, etc. + } + } + print("Type Button: I was clicked!") } + func showAlert(message: String) { + let alertController = UIAlertController(title: "Order Alert", message: message, preferredStyle: .alert) + alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) + + // Replace "yourViewController" with the actual view controller where you want to show the alert + self.present(alertController, animated: true, completion: nil) + } +} + +struct Order: Codable { + let orderId: String + let machineName: String + let moneyForNow: Double + let timeForNow: Double } From cb025ba2fe6abf69cb370c7d3f5e84a1d738691a Mon Sep 17 00:00:00 2001 From: jcport1 Date: Tue, 28 Nov 2023 18:37:48 -0500 Subject: [PATCH 53/71] Updates to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index f668c8d..a201147 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.xcodeproj/xcuserdata/ .DS_Store .xcodeproj +*.xcuserstate From 7dc7c5b96fea61a0416cae476390270a160de78a Mon Sep 17 00:00:00 2001 From: jcport1 Date: Wed, 29 Nov 2023 08:12:04 -0500 Subject: [PATCH 54/71] xcode project files updated --- PowerUp.xcodeproj/project.pbxproj | 58 ++++++------------- .../xcshareddata/swiftpm/Package.resolved | 9 +++ 2 files changed, 27 insertions(+), 40 deletions(-) diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index 4babcf3..e0812b4 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -84,15 +84,13 @@ 1129A8892ACB5E990054E020 /* LoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = ""; }; 1129A88B2ACB5ED30054E020 /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = ""; }; 11433FBD2ABCBCDD005AA716 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; -<<<<<<< HEAD + 2E2C196D951641A7DAA32038 /* Pods_PowerUp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PowerUp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 334B46282B0B739B009918ED /* UserCreditService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserCreditService.swift; sourceTree = ""; }; 334B462A2B0B78F9009918ED /* User.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; 33E1BD912B02A52700E70B4A /* CheckOutViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckOutViewController.swift; sourceTree = ""; }; 33E1BD932B02A54500E70B4A /* CheckOutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckOutView.swift; sourceTree = ""; }; 33E1BD962B02B00500E70B4A /* PaymentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentViewController.swift; sourceTree = ""; }; 33E1BD982B02B01D00E70B4A /* PaymentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentView.swift; sourceTree = ""; }; -======= - 2E2C196D951641A7DAA32038 /* Pods_PowerUp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PowerUp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3BF5735E8EB5E7E4240F0C71 /* Pods-PowerUp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PowerUp.debug.xcconfig"; path = "Target Support Files/Pods-PowerUp/Pods-PowerUp.debug.xcconfig"; sourceTree = ""; }; 4199B8D07DD0FF42E3618594 /* Pods-PowerUpTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PowerUpTests.release.xcconfig"; path = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.release.xcconfig"; sourceTree = ""; }; 445294072AFDFB0300B1A3D5 /* ProfileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileView.swift; sourceTree = ""; }; @@ -104,7 +102,6 @@ 850037652B102BEF009C5E8B /* ActivateMachineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivateMachineView.swift; sourceTree = ""; }; 850037672B102D09009C5E8B /* APIConfigs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIConfigs.swift; sourceTree = ""; }; 856E39C20D66BD303EDD7E52 /* Pods_PowerUpTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PowerUpTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; ->>>>>>> main 8583334E2AE0AB4A005540D6 /* RegisterViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterViewController.swift; sourceTree = ""; }; 858333502AE0AB5F005540D6 /* RegisterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterView.swift; sourceTree = ""; }; 858333522AE0AE07005540D6 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; @@ -190,7 +187,19 @@ path = ProfileScreen; sourceTree = ""; }; -<<<<<<< HEAD + 16FD2581EABE2ABB23ADCDE9 /* Pods */ = { + isa = PBXGroup; + children = ( + 3BF5735E8EB5E7E4240F0C71 /* Pods-PowerUp.debug.xcconfig */, + 7551CF5ED700DE1005997F51 /* Pods-PowerUp.release.xcconfig */, + FD1A0FB970BA81F6F3BACD8C /* Pods-PowerUp-PowerUpUITests.debug.xcconfig */, + 997B66A43E020F39A767E048 /* Pods-PowerUp-PowerUpUITests.release.xcconfig */, + CD92E050B85858DB48E1D08F /* Pods-PowerUpTests.debug.xcconfig */, + 4199B8D07DD0FF42E3618594 /* Pods-PowerUpTests.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; 33E1BD952B02A54E00E70B4A /* Checkout Screen */ = { isa = PBXGroup; children = ( @@ -209,25 +218,6 @@ path = "Payment Screen"; sourceTree = ""; }; - 33E211E42AFECA4300DECF22 /* Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = Frameworks; -======= - 16FD2581EABE2ABB23ADCDE9 /* Pods */ = { - isa = PBXGroup; - children = ( - 3BF5735E8EB5E7E4240F0C71 /* Pods-PowerUp.debug.xcconfig */, - 7551CF5ED700DE1005997F51 /* Pods-PowerUp.release.xcconfig */, - FD1A0FB970BA81F6F3BACD8C /* Pods-PowerUp-PowerUpUITests.debug.xcconfig */, - 997B66A43E020F39A767E048 /* Pods-PowerUp-PowerUpUITests.release.xcconfig */, - CD92E050B85858DB48E1D08F /* Pods-PowerUpTests.debug.xcconfig */, - 4199B8D07DD0FF42E3618594 /* Pods-PowerUpTests.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 44B8ACCB2B02C0BF00D1BAA4 /* Keychain */ = { isa = PBXGroup; children = ( @@ -251,7 +241,6 @@ 850037652B102BEF009C5E8B /* ActivateMachineView.swift */, ); path = ActivateScreen; ->>>>>>> main sourceTree = ""; }; 858F15362ABB77F0002B64C1 = { @@ -263,12 +252,8 @@ 858F15582ABB77F1002B64C1 /* PowerUpTests */, 858F15622ABB77F1002B64C1 /* PowerUpUITests */, 858F15402ABB77F0002B64C1 /* Products */, -<<<<<<< HEAD - 33E211E42AFECA4300DECF22 /* Frameworks */, -======= 16FD2581EABE2ABB23ADCDE9 /* Pods */, 9AED7EA542B464A85158CE98 /* Frameworks */, ->>>>>>> main ); sourceTree = ""; }; @@ -304,14 +289,11 @@ 858F154B2ABB77F1002B64C1 /* Assets.xcassets */, 858F154D2ABB77F1002B64C1 /* LaunchScreen.storyboard */, 858F15502ABB77F1002B64C1 /* Info.plist */, -<<<<<<< HEAD 33E1BD952B02A54E00E70B4A /* Checkout Screen */, 33E1BD9A2B02BEC500E70B4A /* Payment Screen */, 334B46282B0B739B009918ED /* UserCreditService.swift */, 334B462A2B0B78F9009918ED /* User.swift */, -======= 850037672B102D09009C5E8B /* APIConfigs.swift */, ->>>>>>> main ); path = PowerUp; sourceTree = ""; @@ -637,23 +619,18 @@ 858F16C92ACE60C6002B64C1 /* StartScreen.swift in Sources */, 111834A12B0C137D00EB24C4 /* Machine.swift in Sources */, 858F16C82ACE60C6002B64C1 /* StartScreenController.swift in Sources */, -<<<<<<< HEAD - 1129A88A2ACB5E990054E020 /* ProfileScreenController.swift in Sources */, + 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */, 33E1BD972B02B00500E70B4A /* PaymentViewController.swift in Sources */, - 1129A88C2ACB5ED30054E020 /* ProfileScreenView.swift in Sources */, -======= + 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */, 850037642B102BC6009C5E8B /* ActivateMachineViewController.swift in Sources */, 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */, 111834A42B0C137D00EB24C4 /* Cafe.swift in Sources */, 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */, 111834A32B0C137D00EB24C4 /* Coordinate.swift in Sources */, ->>>>>>> main 858333512AE0AB5F005540D6 /* RegisterView.swift in Sources */, 4452940A2AFDFB8900B1A3D5 /* ProfileViewController.swift in Sources */, 858F16C32ACE60A6002B64C1 /* WalletViewController.swift in Sources */, -<<<<<<< HEAD 33E1BD992B02B01D00E70B4A /* PaymentView.swift in Sources */, -======= 1118349A2B0C131600EB24C4 /* MapViewController.swift in Sources */, 445294082AFDFB0300B1A3D5 /* ProfileView.swift in Sources */, 850037662B102BEF009C5E8B /* ActivateMachineView.swift in Sources */, @@ -662,7 +639,6 @@ 44B8ACCE2B02CA2E00D1BAA4 /* UserService.swift in Sources */, 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */, 1118349C2B0C131D00EB24C4 /* ContentView.swift in Sources */, ->>>>>>> main 8583334F2AE0AB4A005540D6 /* RegisterViewController.swift in Sources */, 33E1BD942B02A54500E70B4A /* CheckOutView.swift in Sources */, 858F16B52ACB97A1002B64C1 /* TimeViewController.swift in Sources */, @@ -853,6 +829,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = 3VYD5Y58Z2; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = PowerUp/Info.plist; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; @@ -882,6 +859,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = 3VYD5Y58Z2; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = PowerUp/Info.plist; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; diff --git a/PowerUp.xcworkspace/xcshareddata/swiftpm/Package.resolved b/PowerUp.xcworkspace/xcshareddata/swiftpm/Package.resolved index 80a8628..9087faa 100644 --- a/PowerUp.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/PowerUp.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -108,6 +108,15 @@ "version" : "2.3.1" } }, + { + "identity" : "stripe-ios-spm", + "kind" : "remoteSourceControl", + "location" : "https://github.com/stripe/stripe-ios-spm", + "state" : { + "revision" : "03725b6431c936bf9088e76dbe601a21ee0f5405", + "version" : "23.18.3" + } + }, { "identity" : "swift-protobuf", "kind" : "remoteSourceControl", From 989ffed59f910488395a7a5bf022cf7d7d50012c Mon Sep 17 00:00:00 2001 From: jcport1 Date: Wed, 29 Nov 2023 10:09:53 -0500 Subject: [PATCH 55/71] Adds validations, uid to endpoint, and cleans up code --- PowerUp/Checkout Screen/CheckOutView.swift | 2 +- .../PaymentViewController.swift | 51 +++++++++++++++---- PowerUp/WalletView/WalletViewController.swift | 37 ++++---------- 3 files changed, 52 insertions(+), 38 deletions(-) diff --git a/PowerUp/Checkout Screen/CheckOutView.swift b/PowerUp/Checkout Screen/CheckOutView.swift index daaf31f..885ad32 100644 --- a/PowerUp/Checkout Screen/CheckOutView.swift +++ b/PowerUp/Checkout Screen/CheckOutView.swift @@ -32,7 +32,7 @@ class CheckOutView: UIView { func setupAmountLabel(){ amountLabel = UILabel() - amountLabel.text = "Amount:" + amountLabel.text = "Amount in USD:" amountLabel.translatesAutoresizingMaskIntoConstraints = false self.addSubview(amountLabel) } diff --git a/PowerUp/Payment Screen/PaymentViewController.swift b/PowerUp/Payment Screen/PaymentViewController.swift index 0871683..6e4bee8 100644 --- a/PowerUp/Payment Screen/PaymentViewController.swift +++ b/PowerUp/Payment Screen/PaymentViewController.swift @@ -29,16 +29,49 @@ class PaymentViewController: UIViewController { paymentView.stripePayButton.setTitle("Add $\(delegate.selectedAmount)", for: .normal) } - @objc func addFunds(){ - //validate payment was successful - // if successful, update backend user.credit with posted amount: endpoint to ping backend and pass in data - // otherwise throw error - //post amount notification to main - // notificationCenter.post(name: .nameSelected, object: namesForTableView[indexPath.row]) + func displayAlert(message: String){ + let alert = UIAlertController( + title: "Error!", + message: message, + preferredStyle: .alert + ) + + alert.addAction(UIAlertAction(title: "OK", style: .default)) + self.present(alert, animated: true) + } + + func isValidZip(_ zip: String) -> Bool { + //if zip is not exactly 5 digit long return false + let length = zip.count + + if length != 5 { + return false + } - onButtonSendBack() - //close modal - delegate.dismiss(animated: true) + if let num = Int(zip) { + // if zip digits not in range 00001 - 99950 return false + if num < 0 || num > 99950 { + return false + } + } else { + return false + } + + return true + } + + @objc func addFunds(){ + + if paymentView.stripeCardTextField.isValid && isValidZip(paymentView.stripeCardTextField.postalCode!) { + print("credit card is valid") + onButtonSendBack() + //close modal + delegate.dismiss(animated: true) + } else { + let msg = "All fields are required and must be valid" + displayAlert(message: msg ) + } + } func onButtonSendBack(){ diff --git a/PowerUp/WalletView/WalletViewController.swift b/PowerUp/WalletView/WalletViewController.swift index ba2b349..b71ab5d 100644 --- a/PowerUp/WalletView/WalletViewController.swift +++ b/PowerUp/WalletView/WalletViewController.swift @@ -13,6 +13,8 @@ class WalletViewController: UIViewController { private let walletView = WalletView() + let uid = KeychainService.loadToken() + let notificationCenter = NotificationCenter.default let checkoutController = CheckOutViewController() @@ -27,8 +29,7 @@ class WalletViewController: UIViewController { loadCurrentBalance() - walletView.addFundsButton.addTarget(self, action: #selector(onFindButtonTapped), for: .touchUpInside) - walletView.stripePayButton.addTarget(self, action: #selector(pay), for: .touchUpInside) + walletView.addFundsButton.addTarget(self, action: #selector(onCheckOutButtonTapped), for: .touchUpInside) observeAmountSelected() } @@ -49,10 +50,8 @@ class WalletViewController: UIViewController { if let doubleValue = Double(uwAmount) { print("Converted value to Double: \(doubleValue)") - //harcoded but will be updated - let uid = "6552a2075c0eaa381c2c8c92" let userDetailsDictionary: [String: Any] = ["credit": doubleValue] - addBalance(uid: uid, userDetails: userDetailsDictionary) + addBalance(userDetails: userDetailsDictionary) } else { print("Failed to convert to Double") } @@ -61,10 +60,9 @@ class WalletViewController: UIViewController { } - //use keychain to extract uid - func addBalance(uid: String, userDetails: [String : Any]){ + func addBalance(userDetails: [String : Any]){ - UserCreditService.updateUserDetails(uid: uid, userDetails: userDetails){ success, error in + UserCreditService.updateUserDetails(uid: uid!, userDetails: userDetails){ success, error in DispatchQueue.main.async { if success { print("User details successfully updated in server") @@ -79,15 +77,12 @@ class WalletViewController: UIViewController { func loadCurrentBalance(){ - //hardcoded userid: change to current user id - let uid = "6552a2075c0eaa381c2c8c92" - - UserCreditService.getUserDetails(uid: uid ){userData, error in + UserCreditService.getUserDetails(uid: uid! ){userData, error in if let error = error{ print(error) } else if let userData = userData{ - let balance = userData.credit + let balance = "\(userData.credit)0" print("This is user credit \(userData.credit)") //refresh UI @@ -98,20 +93,6 @@ class WalletViewController: UIViewController { } } - // shows stripe card component - @objc func addFundsTapped() { - walletView.stripeStackView.isHidden = false - } - - func displayAlert(title: String){ - - } - - @objc func pay() { - print("Stripe Button: I was clicked!") -// print(walletView.stripeCardTextField.paymentMethodParams.card) - } - func setupCheckoutBottomSheet(){ checkoutNavController = UINavigationController(rootViewController: checkoutController) checkoutNavController.modalPresentationStyle = .pageSheet @@ -122,7 +103,7 @@ class WalletViewController: UIViewController { } } - @objc func onFindButtonTapped(){ + @objc func onCheckOutButtonTapped(){ setupCheckoutBottomSheet() present(checkoutNavController, animated: true) } From 49f6c492a94303f1d7ee3f4375fb8a431561e8db Mon Sep 17 00:00:00 2001 From: jcport1 Date: Wed, 29 Nov 2023 10:18:28 -0500 Subject: [PATCH 56/71] Updates to User Service --- PowerUp/UserCreditService.swift | 122 -------------------------- PowerUp/UserService/UserService.swift | 69 +++++++++++++++ 2 files changed, 69 insertions(+), 122 deletions(-) delete mode 100644 PowerUp/UserCreditService.swift diff --git a/PowerUp/UserCreditService.swift b/PowerUp/UserCreditService.swift deleted file mode 100644 index 1e8ce3d..0000000 --- a/PowerUp/UserCreditService.swift +++ /dev/null @@ -1,122 +0,0 @@ -// -// UserCreditService.swift -// PowerUp -// -// Created by Jefferson Cuartas on 11/20/23. -// - -import Foundation - -class UserCreditService { - - static let baseURL = "http://localhost:8080" // Replace with the actual base URL of your backend - - static func createUserJSON(uid: String, email: String, credit: Int = 0) -> [String: Any] { - return [ - "uid": uid, - "email": email, - "credit": credit - ] - } - - static func getUserDetails(uid: String, completion: @escaping (User?, Error?) -> Void){ - guard let url = URL(string: "\(baseURL)/user/\(uid)") else { - completion(nil, NSError(domain: "HTTPResponseError", code: 0, userInfo: nil)) - return - } - - var request = URLRequest(url: url) - request.httpMethod = "GET" - - let task = URLSession.shared.dataTask(with: request) { data, response, error in - //closure completion error is at the outermost if/else - if let error = error { - print("HTTP Request Failed \(error)") - completion(nil, error) - } else if let data = data { - do { - let user = try JSONDecoder().decode(User.self, from: data) - print(user) - completion(user, nil) - } catch { - print("JSON Decoding Failed \(error)") - completion(nil, error) - } - } else { - print("Invalid response") - completion(nil, NSError(domain: "InvalidResponseError", code: 0, userInfo: nil)) - } - } - - task.resume() - - } - - static func updateUserDetails(uid: String, userDetails: [String: Any], completion: @escaping (Bool, Error?) -> Void){ - - //set up url - guard let url = URL(string: "\(baseURL)/user/\(uid)") else { - completion(false, NSError(domain: "URLCreationError", code: 0, userInfo: nil)) - return - } - //set up request - var request = URLRequest(url: url) - request.httpMethod = "PATCH" - request.addValue("application/json", forHTTPHeaderField: "Content-Type") - - //set up json body - do { - let jsonData = try JSONSerialization.data(withJSONObject: userDetails, options: []) - request.httpBody = jsonData - - } catch { - completion(false, error) - return - } - - //send request - let task = URLSession.shared.dataTask(with: request) { data, response, error in - if let error = error { - completion(false, error) - } else if let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200 { - completion(true, nil) - } else { - completion(false, NSError(domain: "HTTPResponseError", code: (response as? HTTPURLResponse)?.statusCode ?? 0, userInfo: nil)) - } - } - - task.resume() - } - - static func postUserDetails(userDetails: [String: Any], completion: @escaping (Bool, Error?) -> Void) { - guard let url = URL(string: "\(baseURL)/user/addUser") else { // Updated endpoint - completion(false, NSError(domain: "URLCreationError", code: 0, userInfo: nil)) - return - } - - var request = URLRequest(url: url) - request.httpMethod = "POST" - request.addValue("application/json", forHTTPHeaderField: "Content-Type") - - do { - let jsonData = try JSONSerialization.data(withJSONObject: userDetails, options: []) - request.httpBody = jsonData - } catch { - completion(false, error) - return - } - - let task = URLSession.shared.dataTask(with: request) { data, response, error in - if let error = error { - completion(false, error) - } else if let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200 { - completion(true, nil) - } else { - completion(false, NSError(domain: "HTTPResponseError", code: (response as? HTTPURLResponse)?.statusCode ?? 0, userInfo: nil)) - } - } - - task.resume() - } - -} diff --git a/PowerUp/UserService/UserService.swift b/PowerUp/UserService/UserService.swift index 9424be4..2680a33 100644 --- a/PowerUp/UserService/UserService.swift +++ b/PowerUp/UserService/UserService.swift @@ -19,6 +19,75 @@ class UserService { ] } + static func getUserDetails(uid: String, completion: @escaping (User?, Error?) -> Void){ + guard let url = URL(string: "\(baseURL)/user/\(uid)") else { + completion(nil, NSError(domain: "HTTPResponseError", code: 0, userInfo: nil)) + return + } + + var request = URLRequest(url: url) + request.httpMethod = "GET" + + let task = URLSession.shared.dataTask(with: request) { data, response, error in + //closure completion error is at the outermost if/else + if let error = error { + print("HTTP Request Failed \(error)") + completion(nil, error) + } else if let data = data { + do { + let user = try JSONDecoder().decode(User.self, from: data) + print(user) + completion(user, nil) + } catch { + print("JSON Decoding Failed \(error)") + completion(nil, error) + } + } else { + print("Invalid response") + completion(nil, NSError(domain: "InvalidResponseError", code: 0, userInfo: nil)) + } + } + + task.resume() + + } + + static func updateUserDetails(uid: String, userDetails: [String: Any], completion: @escaping (Bool, Error?) -> Void){ + + //set up url + guard let url = URL(string: "\(baseURL)/user/\(uid)") else { + completion(false, NSError(domain: "URLCreationError", code: 0, userInfo: nil)) + return + } + //set up request + var request = URLRequest(url: url) + request.httpMethod = "PATCH" + request.addValue("application/json", forHTTPHeaderField: "Content-Type") + + //set up json body + do { + let jsonData = try JSONSerialization.data(withJSONObject: userDetails, options: []) + request.httpBody = jsonData + + } catch { + completion(false, error) + return + } + + //send request + let task = URLSession.shared.dataTask(with: request) { data, response, error in + if let error = error { + completion(false, error) + } else if let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200 { + completion(true, nil) + } else { + completion(false, NSError(domain: "HTTPResponseError", code: (response as? HTTPURLResponse)?.statusCode ?? 0, userInfo: nil)) + } + } + + task.resume() + } + static func postUserDetails(userDetails: [String: Any], completion: @escaping (Bool, Error?) -> Void) { guard let url = URL(string: "\(baseURL)/user/addUser") else { // Updated endpoint completion(false, NSError(domain: "URLCreationError", code: 0, userInfo: nil)) From b32829fa760ca0cdfaf56c38e89b9dc7f8fc01d2 Mon Sep 17 00:00:00 2001 From: jcport1 Date: Wed, 29 Nov 2023 10:21:12 -0500 Subject: [PATCH 57/71] Updates to WalletView --- PowerUp/WalletView/WalletViewController.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PowerUp/WalletView/WalletViewController.swift b/PowerUp/WalletView/WalletViewController.swift index b71ab5d..7491212 100644 --- a/PowerUp/WalletView/WalletViewController.swift +++ b/PowerUp/WalletView/WalletViewController.swift @@ -62,7 +62,7 @@ class WalletViewController: UIViewController { func addBalance(userDetails: [String : Any]){ - UserCreditService.updateUserDetails(uid: uid!, userDetails: userDetails){ success, error in + UserService.updateUserDetails(uid: uid!, userDetails: userDetails){ success, error in DispatchQueue.main.async { if success { print("User details successfully updated in server") @@ -77,7 +77,7 @@ class WalletViewController: UIViewController { func loadCurrentBalance(){ - UserCreditService.getUserDetails(uid: uid! ){userData, error in + UserService.getUserDetails(uid: uid! ){userData, error in if let error = error{ print(error) From 2f12ae5a6d7ce9e6e4cc7a76780f34804f0fbc2e Mon Sep 17 00:00:00 2001 From: jcport1 Date: Wed, 29 Nov 2023 16:49:55 -0500 Subject: [PATCH 58/71] adds pod files --- Podfile.lock | 2 +- Pods/Manifest.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Podfile.lock b/Podfile.lock index 3a95ba9..d550d25 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -17,4 +17,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: e13b91b3f68b840a9773d2bf5a5a8e18a6eb876c -COCOAPODS: 1.14.2 +COCOAPODS: 1.13.0 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 3a95ba9..d550d25 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -17,4 +17,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: e13b91b3f68b840a9773d2bf5a5a8e18a6eb876c -COCOAPODS: 1.14.2 +COCOAPODS: 1.13.0 From fb063328dad6bd207e6978a23897ec0b6839df11 Mon Sep 17 00:00:00 2001 From: Dingbang Chen Date: Thu, 30 Nov 2023 10:29:43 -0500 Subject: [PATCH 59/71] ff --- Pods/Alamofire/README.md | 84 ++++++ .../Source/AuthenticationInterceptor.swift | 25 ++ Pods/Alamofire/Source/Combine.swift | 54 ++++ Pods/Alamofire/Source/MultipartUpload.swift | 22 ++ .../Source/NetworkReachabilityManager.swift | 23 ++ Pods/Alamofire/Source/Protected.swift | 71 +++++ Pods/Alamofire/Source/Request.swift | 283 ++++++++++++++++++ .../Source/ResponseSerialization.swift | 16 + .../Source/URLEncodedFormEncoder.swift | 71 +++++ .../xcschemes/xcschememanagement.plist | 22 +- .../Alamofire/Alamofire-Info.plist | 4 + PowerUp.xcodeproj/project.pbxproj | 4 - .../xcschemes/xcschememanagement.plist | 2 +- .../UserInterfaceState.xcuserstate | Bin 57889 -> 26795 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 131 ++++++++ .../xcschemes/xcschememanagement.plist | 37 ++- 16 files changed, 813 insertions(+), 36 deletions(-) create mode 100644 PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist diff --git a/Pods/Alamofire/README.md b/Pods/Alamofire/README.md index b0ba4d5..864a848 100644 --- a/Pods/Alamofire/README.md +++ b/Pods/Alamofire/README.md @@ -1,11 +1,19 @@ ![Alamofire: Elegant Networking in Swift](https://raw.githubusercontent.com/Alamofire/Alamofire/master/Resources/AlamofireLogo.png) +<<<<<<< HEAD [![Swift](https://img.shields.io/badge/Swift-5.5_5.6_5.7_5.8-orange?style=flat-square)](https://img.shields.io/badge/Swift-5.5_5.6_5.7_5.8-Orange?style=flat-square) [![Platforms](https://img.shields.io/badge/Platforms-macOS_iOS_tvOS_watchOS_Linux_Windows-yellowgreen?style=flat-square)](https://img.shields.io/badge/Platforms-macOS_iOS_tvOS_watchOS_Linux_Windows-Green?style=flat-square) [![CocoaPods Compatible](https://img.shields.io/cocoapods/v/Alamofire.svg?style=flat-square)](https://img.shields.io/cocoapods/v/Alamofire.svg) [![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat-square)](https://github.com/Carthage/Carthage) [![Swift Package Manager](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange?style=flat-square)](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange?style=flat-square) [![Twitter](https://img.shields.io/badge/twitter-@AlamofireSF-blue.svg?style=flat-square)](https://twitter.com/AlamofireSF) +======= +[![Swift](https://img.shields.io/badge/Swift-5.6_5.7_5.8_5.9-orange?style=flat-square)](https://img.shields.io/badge/Swift-5.6_5.7_5.8_5.9-Orange?style=flat-square) +[![Platforms](https://img.shields.io/badge/Platforms-macOS_iOS_tvOS_watchOS_visionOS_Linux_Windows_Android-yellowgreen?style=flat-square)](https://img.shields.io/badge/Platforms-macOS_iOS_tvOS_watchOS_vision_OS_Linux_Windows_Android-Green?style=flat-square) +[![CocoaPods Compatible](https://img.shields.io/cocoapods/v/Alamofire.svg?style=flat-square)](https://img.shields.io/cocoapods/v/Alamofire.svg) +[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat-square)](https://github.com/Carthage/Carthage) +[![Swift Package Manager](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange?style=flat-square)](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange?style=flat-square) +>>>>>>> aefbec1 (config) [![Swift Forums](https://img.shields.io/badge/Swift_Forums-Alamofire-orange?style=flat-square)](https://forums.swift.org/c/related-projects/alamofire/37) Alamofire is an HTTP networking library written in Swift. @@ -52,6 +60,36 @@ Alamofire is an HTTP networking library written in Swift. - [x] Comprehensive Unit and Integration Test Coverage - [x] [Complete Documentation](https://alamofire.github.io/Alamofire) +<<<<<<< HEAD +======= +## Write Requests Fast! + +Alamofire's compact syntax and extensive feature set allow requests with powerful features like automatic retry to be written in just a few lines of code. + +```swift +// Automatic String to URL conversion, Swift concurrency support, and automatic retry. +let response = await AF.request("https://httpbin.org/get", interceptor: .retryPolicy) + // Automatic HTTP Basic Auth. + .authenticate(username: "user", password: "pass") + // Caching customization. + .cacheResponse(using: .cache) + // Redirect customization. + .redirect(using: .follow) + // Validate response code and Content-Type. + .validate() + // Produce a cURL command for the request. + .cURLDescription { description in + print(description) + } + // Automatic Decodable support with background parsing. + .serializingDecodable(DecodableType.self) + // Await the full response with metrics and a parsed body. + .response +// Detailed response description for easy debugging. +debugPrint(response) +``` + +>>>>>>> aefbec1 (config) ## Component Libraries In order to keep Alamofire focused specifically on core networking implementations, additional component libraries have been created by the [Alamofire Software Foundation](https://github.com/Alamofire/Foundation) to bring additional functionality to the Alamofire ecosystem. @@ -61,6 +99,7 @@ In order to keep Alamofire focused specifically on core networking implementatio ## Requirements +<<<<<<< HEAD | Platform | Minimum Swift Version | Installation | Status | | --- | --- | --- | --- | | iOS 10.0+ / macOS 10.12+ / tvOS 10.0+ / watchOS 3.0+ | 5.5 | [CocoaPods](#cocoapods), [Carthage](#carthage), [Swift Package Manager](#swift-package-manager), [Manual](#manually) | Fully Tested | @@ -70,12 +109,29 @@ In order to keep Alamofire focused specifically on core networking implementatio #### Known Issues on Linux and Windows Alamofire builds on Linux and Windows but there are missing features and many issues in the underlying `swift-corelibs-foundation` that prevent full functionality and may cause crashes. These include: +======= +| Platform | Minimum Swift Version | Installation | Status | +| ---------------------------------------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------- | ------------------------ | +| iOS 10.0+ / macOS 10.12+ / tvOS 10.0+ / watchOS 3.0+ | 5.6 | [CocoaPods](#cocoapods), [Carthage](#carthage), [Swift Package Manager](#swift-package-manager), [Manual](#manually) | Fully Tested | +| Linux | Latest Only | [Swift Package Manager](#swift-package-manager) | Building But Unsupported | +| Windows | Latest Only | [Swift Package Manager](#swift-package-manager) | Building But Unsupported | +| Android | Latest Only | [Swift Package Manager](#swift-package-manager) | Building But Unsupported | + +#### Known Issues on Linux and Windows + +Alamofire builds on Linux, Windows, and Android but there are missing features and many issues in the underlying `swift-corelibs-foundation` that prevent full functionality and may cause crashes. These include: + +>>>>>>> aefbec1 (config) - `ServerTrustManager` and associated certificate functionality is unavailable, so there is no certificate pinning and no client certificate support. - Various methods of HTTP authentication may crash, including HTTP Basic and HTTP Digest. Crashes may occur if responses contain server challenges. - Cache control through `CachedResponseHandler` and associated APIs is unavailable, as the underlying delegate methods aren't called. - `URLSessionTaskMetrics` are never gathered. +<<<<<<< HEAD Due to these issues, Alamofire is unsupported on Linux and Windows. Please report any crashes to the [Swift bug reporter](https://bugs.swift.org). +======= +Due to these issues, Alamofire is unsupported on Linux, Windows, and Android. Please report any crashes to the [Swift bug reporter](https://bugs.swift.org). +>>>>>>> aefbec1 (config) ## Migration Guides @@ -85,11 +141,19 @@ Due to these issues, Alamofire is unsupported on Linux and Windows. Please repor - [Alamofire 2.0 Migration Guide](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Alamofire%202.0%20Migration%20Guide.md) ## Communication +<<<<<<< HEAD +======= + +>>>>>>> aefbec1 (config) - If you **need help with making network requests** using Alamofire, use [Stack Overflow](https://stackoverflow.com/questions/tagged/alamofire) and tag `alamofire`. - If you need to **find or understand an API**, check [our documentation](http://alamofire.github.io/Alamofire/) or [Apple's documentation for `URLSession`](https://developer.apple.com/documentation/foundation/url_loading_system), on top of which Alamofire is built. - If you need **help with an Alamofire feature**, use [our forum on swift.org](https://forums.swift.org/c/related-projects/alamofire). - If you'd like to **discuss Alamofire best practices**, use [our forum on swift.org](https://forums.swift.org/c/related-projects/alamofire). +<<<<<<< HEAD - If you'd like to **discuss a feature request**, use [our forum on swift.org](https://forums.swift.org/c/related-projects/alamofire). +======= +- If you'd like to **discuss a feature request**, use [our forum on swift.org](https://forums.swift.org/c/related-projects/alamofire). +>>>>>>> aefbec1 (config) - If you **found a bug**, open an issue here on GitHub and follow the guide. The more detail the better! ## Installation @@ -112,13 +176,21 @@ github "Alamofire/Alamofire" ### Swift Package Manager +<<<<<<< HEAD The [Swift Package Manager](https://swift.org/package-manager/) is a tool for automating the distribution of Swift code and is integrated into the `swift` compiler. +======= +The [Swift Package Manager](https://swift.org/package-manager/) is a tool for automating the distribution of Swift code and is integrated into the `swift` compiler. +>>>>>>> aefbec1 (config) Once you have your Swift package set up, adding Alamofire as a dependency is as easy as adding it to the `dependencies` value of your `Package.swift`. ```swift dependencies: [ +<<<<<<< HEAD .package(url: "https://github.com/Alamofire/Alamofire.git", .upToNextMajor(from: "5.6.4")) +======= + .package(url: "https://github.com/Alamofire/Alamofire.git", .upToNextMajor(from: "5.8.1")) +>>>>>>> aefbec1 (config) ] ``` @@ -142,7 +214,11 @@ If you prefer not to use any of the aforementioned dependency managers, you can - Open the new `Alamofire` folder, and drag the `Alamofire.xcodeproj` into the Project Navigator of your application's Xcode project. +<<<<<<< HEAD > It should appear nested underneath your application's blue project icon. Whether it is above or below all the other Xcode groups does not matter. +======= + > It should appear nested underneath your application's blue project icon. Whether it is above or below all the other Xcode groups does not matter. +>>>>>>> aefbec1 (config) - Select the `Alamofire.xcodeproj` in the Project Navigator and verify the deployment target matches that of your application target. - Next, select your application project in the Project Navigator (blue project icon) to navigate to the target configuration window and select the application target under the "Targets" heading in the sidebar. @@ -150,11 +226,19 @@ If you prefer not to use any of the aforementioned dependency managers, you can - Click on the `+` button under the "Embedded Binaries" section. - You will see two different `Alamofire.xcodeproj` folders each with two different versions of the `Alamofire.framework` nested inside a `Products` folder. +<<<<<<< HEAD > It does not matter which `Products` folder you choose from, but it does matter whether you choose the top or bottom `Alamofire.framework`. - Select the top `Alamofire.framework` for iOS and the bottom one for macOS. > You can verify which one you selected by inspecting the build log for your project. The build target for `Alamofire` will be listed as `Alamofire iOS`, `Alamofire macOS`, `Alamofire tvOS`, or `Alamofire watchOS`. +======= + > It does not matter which `Products` folder you choose from, but it does matter whether you choose the top or bottom `Alamofire.framework`. + +- Select the top `Alamofire.framework` for iOS and the bottom one for macOS. + + > You can verify which one you selected by inspecting the build log for your project. The build target for `Alamofire` will be listed as `Alamofire iOS`, `Alamofire macOS`, `Alamofire tvOS`, or `Alamofire watchOS`. +>>>>>>> aefbec1 (config) - And that's it! diff --git a/Pods/Alamofire/Source/AuthenticationInterceptor.swift b/Pods/Alamofire/Source/AuthenticationInterceptor.swift index c3a3f31..b3b001d 100644 --- a/Pods/Alamofire/Source/AuthenticationInterceptor.swift +++ b/Pods/Alamofire/Source/AuthenticationInterceptor.swift @@ -217,15 +217,24 @@ public class AuthenticationInterceptor: RequestInterceptor wh /// The `Credential` used to authenticate requests. public var credential: Credential? { +<<<<<<< HEAD get { $mutableState.credential } set { $mutableState.credential = newValue } +======= + get { mutableState.credential } + set { mutableState.credential = newValue } +>>>>>>> aefbec1 (config) } let authenticator: AuthenticatorType let queue = DispatchQueue(label: "org.alamofire.authentication.inspector") +<<<<<<< HEAD @Protected private var mutableState: MutableState +======= + private let mutableState: Protected +>>>>>>> aefbec1 (config) // MARK: Initialization @@ -242,13 +251,21 @@ public class AuthenticationInterceptor: RequestInterceptor wh credential: Credential? = nil, refreshWindow: RefreshWindow? = RefreshWindow()) { self.authenticator = authenticator +<<<<<<< HEAD mutableState = MutableState(credential: credential, refreshWindow: refreshWindow) +======= + mutableState = Protected(MutableState(credential: credential, refreshWindow: refreshWindow)) +>>>>>>> aefbec1 (config) } // MARK: Adapt public func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (Result) -> Void) { +<<<<<<< HEAD let adaptResult: AdaptResult = $mutableState.write { mutableState in +======= + let adaptResult: AdaptResult = mutableState.write { mutableState in +>>>>>>> aefbec1 (config) // Queue the adapt operation if a refresh is already in place. guard !mutableState.isRefreshing else { let operation = AdaptOperation(urlRequest: urlRequest, session: session, completion: completion) @@ -316,7 +333,11 @@ public class AuthenticationInterceptor: RequestInterceptor wh return } +<<<<<<< HEAD $mutableState.write { mutableState in +======= + mutableState.write { mutableState in +>>>>>>> aefbec1 (config) mutableState.requestsToRetry.append(completion) guard !mutableState.isRefreshing else { return } @@ -340,7 +361,11 @@ public class AuthenticationInterceptor: RequestInterceptor wh // Dispatch to queue to hop out of the lock in case authenticator.refresh is implemented synchronously. queue.async { self.authenticator.refresh(credential, for: session) { result in +<<<<<<< HEAD self.$mutableState.write { mutableState in +======= + self.mutableState.write { mutableState in +>>>>>>> aefbec1 (config) switch result { case let .success(credential): self.handleRefreshSuccess(credential, insideLock: &mutableState) diff --git a/Pods/Alamofire/Source/Combine.swift b/Pods/Alamofire/Source/Combine.swift index 416610e..0dc91cb 100644 --- a/Pods/Alamofire/Source/Combine.swift +++ b/Pods/Alamofire/Source/Combine.swift @@ -91,23 +91,37 @@ public struct DataResponsePublisher: Publisher { where Downstream.Input == Output { typealias Failure = Downstream.Failure +<<<<<<< HEAD @Protected private var downstream: Downstream? +======= + private let downstream: Protected +>>>>>>> aefbec1 (config) private let request: DataRequest private let responseHandler: Handler init(request: DataRequest, responseHandler: @escaping Handler, downstream: Downstream) { self.request = request self.responseHandler = responseHandler +<<<<<<< HEAD self.downstream = downstream +======= + self.downstream = Protected(downstream) +>>>>>>> aefbec1 (config) } func request(_ demand: Subscribers.Demand) { assert(demand > 0) +<<<<<<< HEAD guard let downstream = downstream else { return } self.downstream = nil +======= + guard let downstream = downstream.read({ $0 }) else { return } + + self.downstream.write(nil) +>>>>>>> aefbec1 (config) responseHandler { response in _ = downstream.receive(response) downstream.receive(completion: .finished) @@ -116,7 +130,11 @@ public struct DataResponsePublisher: Publisher { func cancel() { request.cancel() +<<<<<<< HEAD downstream = nil +======= + downstream.write(nil) +>>>>>>> aefbec1 (config) } } } @@ -312,23 +330,37 @@ public struct DataStreamPublisher: Publisher { where Downstream.Input == Output { typealias Failure = Downstream.Failure +<<<<<<< HEAD @Protected private var downstream: Downstream? +======= + private let downstream: Protected +>>>>>>> aefbec1 (config) private let request: DataStreamRequest private let streamHandler: Handler init(request: DataStreamRequest, streamHandler: @escaping Handler, downstream: Downstream) { self.request = request self.streamHandler = streamHandler +<<<<<<< HEAD self.downstream = downstream +======= + self.downstream = Protected(downstream) +>>>>>>> aefbec1 (config) } func request(_ demand: Subscribers.Demand) { assert(demand > 0) +<<<<<<< HEAD guard let downstream = downstream else { return } self.downstream = nil +======= + guard let downstream = downstream.read({ $0 }) else { return } + + self.downstream.write(nil) +>>>>>>> aefbec1 (config) streamHandler { stream in _ = downstream.receive(stream) if case .complete = stream.event { @@ -339,7 +371,11 @@ public struct DataStreamPublisher: Publisher { func cancel() { request.cancel() +<<<<<<< HEAD downstream = nil +======= + downstream.write(nil) +>>>>>>> aefbec1 (config) } } } @@ -462,23 +498,37 @@ public struct DownloadResponsePublisher: Publisher { where Downstream.Input == Output { typealias Failure = Downstream.Failure +<<<<<<< HEAD @Protected private var downstream: Downstream? +======= + private let downstream: Protected +>>>>>>> aefbec1 (config) private let request: DownloadRequest private let responseHandler: Handler init(request: DownloadRequest, responseHandler: @escaping Handler, downstream: Downstream) { self.request = request self.responseHandler = responseHandler +<<<<<<< HEAD self.downstream = downstream +======= + self.downstream = Protected(downstream) +>>>>>>> aefbec1 (config) } func request(_ demand: Subscribers.Demand) { assert(demand > 0) +<<<<<<< HEAD guard let downstream = downstream else { return } self.downstream = nil +======= + guard let downstream = downstream.read({ $0 }) else { return } + + self.downstream.write(nil) +>>>>>>> aefbec1 (config) responseHandler { response in _ = downstream.receive(response) downstream.receive(completion: .finished) @@ -487,7 +537,11 @@ public struct DownloadResponsePublisher: Publisher { func cancel() { request.cancel() +<<<<<<< HEAD downstream = nil +======= + downstream.write(nil) +>>>>>>> aefbec1 (config) } } } diff --git a/Pods/Alamofire/Source/MultipartUpload.swift b/Pods/Alamofire/Source/MultipartUpload.swift index ceda21f..a68bf4d 100644 --- a/Pods/Alamofire/Source/MultipartUpload.swift +++ b/Pods/Alamofire/Source/MultipartUpload.swift @@ -28,8 +28,13 @@ import Foundation final class MultipartUpload { lazy var result = Result { try build() } +<<<<<<< HEAD @Protected private(set) var multipartFormData: MultipartFormData +======= + private let multipartFormData: Protected + +>>>>>>> aefbec1 (config) let encodingMemoryThreshold: UInt64 let request: URLRequestConvertible let fileManager: FileManager @@ -40,13 +45,22 @@ final class MultipartUpload { self.encodingMemoryThreshold = encodingMemoryThreshold self.request = request fileManager = multipartFormData.fileManager +<<<<<<< HEAD self.multipartFormData = multipartFormData +======= + self.multipartFormData = Protected(multipartFormData) +>>>>>>> aefbec1 (config) } func build() throws -> UploadRequest.Uploadable { let uploadable: UploadRequest.Uploadable +<<<<<<< HEAD if $multipartFormData.contentLength < encodingMemoryThreshold { let data = try $multipartFormData.read { try $0.encode() } +======= + if multipartFormData.contentLength < encodingMemoryThreshold { + let data = try multipartFormData.read { try $0.encode() } +>>>>>>> aefbec1 (config) uploadable = .data(data) } else { @@ -58,7 +72,11 @@ final class MultipartUpload { try fileManager.createDirectory(at: directoryURL, withIntermediateDirectories: true, attributes: nil) do { +<<<<<<< HEAD try $multipartFormData.read { try $0.writeEncodedData(to: fileURL) } +======= + try multipartFormData.read { try $0.writeEncodedData(to: fileURL) } +>>>>>>> aefbec1 (config) } catch { // Cleanup after attempted write if it fails. try? fileManager.removeItem(at: fileURL) @@ -76,7 +94,11 @@ extension MultipartUpload: UploadConvertible { func asURLRequest() throws -> URLRequest { var urlRequest = try request.asURLRequest() +<<<<<<< HEAD $multipartFormData.read { multipartFormData in +======= + multipartFormData.read { multipartFormData in +>>>>>>> aefbec1 (config) urlRequest.headers.add(.contentType(multipartFormData.contentType)) } diff --git a/Pods/Alamofire/Source/NetworkReachabilityManager.swift b/Pods/Alamofire/Source/NetworkReachabilityManager.swift index 8ba715b..5ceb7fa 100644 --- a/Pods/Alamofire/Source/NetworkReachabilityManager.swift +++ b/Pods/Alamofire/Source/NetworkReachabilityManager.swift @@ -113,8 +113,12 @@ open class NetworkReachabilityManager { private let reachability: SCNetworkReachability /// Protected storage for mutable state. +<<<<<<< HEAD @Protected private var mutableState = MutableState() +======= + private let mutableState = Protected(MutableState()) +>>>>>>> aefbec1 (config) // MARK: - Initialization @@ -168,7 +172,11 @@ open class NetworkReachabilityManager { onUpdatePerforming listener: @escaping Listener) -> Bool { stopListening() +<<<<<<< HEAD $mutableState.write { state in +======= + mutableState.write { state in +>>>>>>> aefbec1 (config) state.listenerQueue = queue state.listener = listener } @@ -220,7 +228,11 @@ open class NetworkReachabilityManager { open func stopListening() { SCNetworkReachabilitySetCallback(reachability, nil, nil) SCNetworkReachabilitySetDispatchQueue(reachability, nil) +<<<<<<< HEAD $mutableState.write { state in +======= + mutableState.write { state in +>>>>>>> aefbec1 (config) state.listener = nil state.listenerQueue = nil state.previousStatus = nil @@ -237,7 +249,11 @@ open class NetworkReachabilityManager { func notifyListener(_ flags: SCNetworkReachabilityFlags) { let newStatus = NetworkReachabilityStatus(flags) +<<<<<<< HEAD $mutableState.write { state in +======= + mutableState.write { state in +>>>>>>> aefbec1 (config) guard state.previousStatus != newStatus else { return } state.previousStatus = newStatus @@ -267,12 +283,17 @@ extension SCNetworkReachabilityFlags { var canConnectWithoutUserInteraction: Bool { canConnectAutomatically && !contains(.interventionRequired) } var isActuallyReachable: Bool { isReachable && (!isConnectionRequired || canConnectWithoutUserInteraction) } var isCellular: Bool { +<<<<<<< HEAD #if swift(>=5.9) #if os(iOS) || os(tvOS) || os(visionOS) +======= + #if os(iOS) || os(tvOS) || (swift(>=5.9) && os(visionOS)) +>>>>>>> aefbec1 (config) return contains(.isWWAN) #else return false #endif +<<<<<<< HEAD #else #if os(iOS) || os(tvOS) return contains(.isWWAN) @@ -280,6 +301,8 @@ extension SCNetworkReachabilityFlags { return false #endif #endif +======= +>>>>>>> aefbec1 (config) } /// Human readable `String` for all states, to help with debugging. diff --git a/Pods/Alamofire/Source/Protected.swift b/Pods/Alamofire/Source/Protected.swift index 9449412..a2547cd 100644 --- a/Pods/Alamofire/Source/Protected.swift +++ b/Pods/Alamofire/Source/Protected.swift @@ -49,12 +49,15 @@ extension Lock { } } +<<<<<<< HEAD #if os(Linux) || os(Windows) || os(Android) extension NSLock: Lock {} #endif +======= +>>>>>>> aefbec1 (config) #if canImport(Darwin) /// An `os_unfair_lock` wrapper. final class UnfairLock: Lock { @@ -78,6 +81,7 @@ final class UnfairLock: Lock { os_unfair_lock_unlock(unfairLock) } } +<<<<<<< HEAD #endif /// A thread-safe wrapper around a value. @@ -107,12 +111,41 @@ final class Protected { value = wrappedValue } +======= + +#elseif canImport(Foundation) +extension NSLock: Lock {} +#else +#error("This platform needs a Lock-conforming type without Foundation.") +#endif + +/// A thread-safe wrapper around a value. +@dynamicMemberLookup +final class Protected { + #if canImport(Darwin) + private let lock = UnfairLock() + #elseif canImport(Foundation) + private let lock = NSLock() + #else + #error("This platform needs a Lock-conforming type without Foundation.") + #endif + private var value: Value + + init(_ value: Value) { + self.value = value + } + +>>>>>>> aefbec1 (config) /// Synchronously read or transform the contained value. /// /// - Parameter closure: The closure to execute. /// /// - Returns: The return value of the closure passed. +<<<<<<< HEAD func read(_ closure: (T) throws -> U) rethrows -> U { +======= + func read(_ closure: (Value) throws -> U) rethrows -> U { +>>>>>>> aefbec1 (config) try lock.around { try closure(self.value) } } @@ -122,21 +155,44 @@ final class Protected { /// /// - Returns: The modified value. @discardableResult +<<<<<<< HEAD func write(_ closure: (inout T) throws -> U) rethrows -> U { try lock.around { try closure(&self.value) } } subscript(dynamicMember keyPath: WritableKeyPath) -> Property { +======= + func write(_ closure: (inout Value) throws -> U) rethrows -> U { + try lock.around { try closure(&self.value) } + } + + /// Synchronously update the protected value. + /// + /// - Parameter value: The `Value`. + func write(_ value: Value) { + write { $0 = value } + } + + subscript(dynamicMember keyPath: WritableKeyPath) -> Property { +>>>>>>> aefbec1 (config) get { lock.around { value[keyPath: keyPath] } } set { lock.around { value[keyPath: keyPath] = newValue } } } +<<<<<<< HEAD subscript(dynamicMember keyPath: KeyPath) -> Property { +======= + subscript(dynamicMember keyPath: KeyPath) -> Property { +>>>>>>> aefbec1 (config) lock.around { value[keyPath: keyPath] } } } +<<<<<<< HEAD extension Protected where T == Request.MutableState { +======= +extension Protected where Value == Request.MutableState { +>>>>>>> aefbec1 (config) /// Attempts to transition to the passed `State`. /// /// - Parameter state: The `State` to attempt transition to. @@ -159,3 +215,18 @@ extension Protected where T == Request.MutableState { lock.around { perform(value.state) } } } +<<<<<<< HEAD +======= + +extension Protected: Equatable where Value: Equatable { + static func ==(lhs: Protected, rhs: Protected) -> Bool { + lhs.read { left in rhs.read { right in left == right }} + } +} + +extension Protected: Hashable where Value: Hashable { + func hash(into hasher: inout Hasher) { + read { hasher.combine($0) } + } +} +>>>>>>> aefbec1 (config) diff --git a/Pods/Alamofire/Source/Request.swift b/Pods/Alamofire/Source/Request.swift index fbae9db..5a2bd74 100644 --- a/Pods/Alamofire/Source/Request.swift +++ b/Pods/Alamofire/Source/Request.swift @@ -125,11 +125,18 @@ public class Request { } /// Protected `MutableState` value that provides thread-safe access to state values. +<<<<<<< HEAD @Protected fileprivate var mutableState = MutableState() /// `State` of the `Request`. public var state: State { $mutableState.state } +======= + fileprivate let mutableState = Protected(MutableState()) + + /// `State` of the `Request`. + public var state: State { mutableState.state } +>>>>>>> aefbec1 (config) /// Returns whether `state` is `.initialized`. public var isInitialized: Bool { state == .initialized } /// Returns whether `state is `.resumed`. @@ -152,50 +159,83 @@ public class Request { public let downloadProgress = Progress(totalUnitCount: 0) /// `ProgressHandler` called when `uploadProgress` is updated, on the provided `DispatchQueue`. private var uploadProgressHandler: (handler: ProgressHandler, queue: DispatchQueue)? { +<<<<<<< HEAD get { $mutableState.uploadProgressHandler } set { $mutableState.uploadProgressHandler = newValue } +======= + get { mutableState.uploadProgressHandler } + set { mutableState.uploadProgressHandler = newValue } +>>>>>>> aefbec1 (config) } /// `ProgressHandler` called when `downloadProgress` is updated, on the provided `DispatchQueue`. fileprivate var downloadProgressHandler: (handler: ProgressHandler, queue: DispatchQueue)? { +<<<<<<< HEAD get { $mutableState.downloadProgressHandler } set { $mutableState.downloadProgressHandler = newValue } +======= + get { mutableState.downloadProgressHandler } + set { mutableState.downloadProgressHandler = newValue } +>>>>>>> aefbec1 (config) } // MARK: Redirect Handling /// `RedirectHandler` set on the instance. public private(set) var redirectHandler: RedirectHandler? { +<<<<<<< HEAD get { $mutableState.redirectHandler } set { $mutableState.redirectHandler = newValue } +======= + get { mutableState.redirectHandler } + set { mutableState.redirectHandler = newValue } +>>>>>>> aefbec1 (config) } // MARK: Cached Response Handling /// `CachedResponseHandler` set on the instance. public private(set) var cachedResponseHandler: CachedResponseHandler? { +<<<<<<< HEAD get { $mutableState.cachedResponseHandler } set { $mutableState.cachedResponseHandler = newValue } +======= + get { mutableState.cachedResponseHandler } + set { mutableState.cachedResponseHandler = newValue } +>>>>>>> aefbec1 (config) } // MARK: URLCredential /// `URLCredential` used for authentication challenges. Created by calling one of the `authenticate` methods. public private(set) var credential: URLCredential? { +<<<<<<< HEAD get { $mutableState.credential } set { $mutableState.credential = newValue } +======= + get { mutableState.credential } + set { mutableState.credential = newValue } +>>>>>>> aefbec1 (config) } // MARK: Validators /// `Validator` callback closures that store the validation calls enqueued. +<<<<<<< HEAD @Protected fileprivate var validators: [() -> Void] = [] +======= + fileprivate let validators = Protected<[() -> Void]>([]) +>>>>>>> aefbec1 (config) // MARK: URLRequests /// All `URLRequests` created on behalf of the `Request`, including original and adapted requests. +<<<<<<< HEAD public var requests: [URLRequest] { $mutableState.requests } +======= + public var requests: [URLRequest] { mutableState.requests } +>>>>>>> aefbec1 (config) /// First `URLRequest` created on behalf of the `Request`. May not be the first one actually executed. public var firstRequest: URLRequest? { requests.first } /// Last `URLRequest` created on behalf of the `Request`. @@ -205,7 +245,11 @@ public class Request { /// `URLRequest`s from all of the `URLSessionTask`s executed on behalf of the `Request`. May be different from /// `requests` due to `URLSession` manipulation. +<<<<<<< HEAD public var performedRequests: [URLRequest] { $mutableState.read { $0.tasks.compactMap(\.currentRequest) } } +======= + public var performedRequests: [URLRequest] { mutableState.read { $0.tasks.compactMap(\.currentRequest) } } +>>>>>>> aefbec1 (config) // MARK: HTTPURLResponse @@ -216,7 +260,11 @@ public class Request { // MARK: Tasks /// All `URLSessionTask`s created on behalf of the `Request`. +<<<<<<< HEAD public var tasks: [URLSessionTask] { $mutableState.tasks } +======= + public var tasks: [URLSessionTask] { mutableState.tasks } +>>>>>>> aefbec1 (config) /// First `URLSessionTask` created on behalf of the `Request`. public var firstTask: URLSessionTask? { tasks.first } /// Last `URLSessionTask` created on behalf of the `Request`. @@ -227,7 +275,11 @@ public class Request { // MARK: Metrics /// All `URLSessionTaskMetrics` gathered on behalf of the `Request`. Should correspond to the `tasks` created. +<<<<<<< HEAD public var allMetrics: [URLSessionTaskMetrics] { $mutableState.metrics } +======= + public var allMetrics: [URLSessionTaskMetrics] { mutableState.metrics } +>>>>>>> aefbec1 (config) /// First `URLSessionTaskMetrics` gathered on behalf of the `Request`. public var firstMetrics: URLSessionTaskMetrics? { allMetrics.first } /// Last `URLSessionTaskMetrics` gathered on behalf of the `Request`. @@ -238,14 +290,23 @@ public class Request { // MARK: Retry Count /// Number of times the `Request` has been retried. +<<<<<<< HEAD public var retryCount: Int { $mutableState.retryCount } +======= + public var retryCount: Int { mutableState.retryCount } +>>>>>>> aefbec1 (config) // MARK: Error /// `Error` returned from Alamofire internally, from the network request directly, or any validators executed. public fileprivate(set) var error: AFError? { +<<<<<<< HEAD get { $mutableState.error } set { $mutableState.error = newValue } +======= + get { mutableState.error } + set { mutableState.error = newValue } +>>>>>>> aefbec1 (config) } /// Default initializer for the `Request` superclass. @@ -283,7 +344,11 @@ public class Request { func didCreateInitialURLRequest(_ request: URLRequest) { dispatchPrecondition(condition: .onQueue(underlyingQueue)) +<<<<<<< HEAD $mutableState.write { $0.requests.append(request) } +======= + mutableState.write { $0.requests.append(request) } +>>>>>>> aefbec1 (config) eventMonitor?.request(self, didCreateInitialURLRequest: request) } @@ -313,7 +378,11 @@ public class Request { func didAdaptInitialRequest(_ initialRequest: URLRequest, to adaptedRequest: URLRequest) { dispatchPrecondition(condition: .onQueue(underlyingQueue)) +<<<<<<< HEAD $mutableState.write { $0.requests.append(adaptedRequest) } +======= + mutableState.write { $0.requests.append(adaptedRequest) } +>>>>>>> aefbec1 (config) eventMonitor?.request(self, didAdaptInitialRequest: initialRequest, to: adaptedRequest) } @@ -343,7 +412,11 @@ public class Request { func didCreateURLRequest(_ request: URLRequest) { dispatchPrecondition(condition: .onQueue(underlyingQueue)) +<<<<<<< HEAD $mutableState.read { state in +======= + mutableState.read { state in +>>>>>>> aefbec1 (config) state.urlRequestHandler?.queue.async { state.urlRequestHandler?.handler(request) } } @@ -354,7 +427,11 @@ public class Request { /// Asynchronously calls any stored `cURLHandler` and then removes it from `mutableState`. private func callCURLHandlerIfNecessary() { +<<<<<<< HEAD $mutableState.write { mutableState in +======= + mutableState.write { mutableState in +>>>>>>> aefbec1 (config) guard let cURLHandler = mutableState.cURLHandler else { return } cURLHandler.queue.async { cURLHandler.handler(self.cURLDescription()) } @@ -369,7 +446,11 @@ public class Request { func didCreateTask(_ task: URLSessionTask) { dispatchPrecondition(condition: .onQueue(underlyingQueue)) +<<<<<<< HEAD $mutableState.write { state in +======= + mutableState.write { state in +>>>>>>> aefbec1 (config) state.tasks.append(task) guard let urlSessionTaskHandler = state.urlSessionTaskHandler else { return } @@ -416,7 +497,11 @@ public class Request { func didCancel() { dispatchPrecondition(condition: .onQueue(underlyingQueue)) +<<<<<<< HEAD $mutableState.write { mutableState in +======= + mutableState.write { mutableState in +>>>>>>> aefbec1 (config) mutableState.error = mutableState.error ?? AFError.explicitlyCancelled } @@ -438,7 +523,11 @@ public class Request { func didGatherMetrics(_ metrics: URLSessionTaskMetrics) { dispatchPrecondition(condition: .onQueue(underlyingQueue)) +<<<<<<< HEAD $mutableState.write { $0.metrics.append(metrics) } +======= + mutableState.write { $0.metrics.append(metrics) } +>>>>>>> aefbec1 (config) eventMonitor?.request(self, didGatherMetrics: metrics) } @@ -470,6 +559,10 @@ public class Request { self.error = self.error ?? error +<<<<<<< HEAD +======= + let validators = validators.read { $0 } +>>>>>>> aefbec1 (config) validators.forEach { $0() } eventMonitor?.request(self, didCompleteTask: task, with: error) @@ -481,7 +574,11 @@ public class Request { func prepareForRetry() { dispatchPrecondition(condition: .onQueue(underlyingQueue)) +<<<<<<< HEAD $mutableState.write { $0.retryCount += 1 } +======= + mutableState.write { $0.retryCount += 1 } +>>>>>>> aefbec1 (config) reset() @@ -515,9 +612,15 @@ public class Request { func finish(error: AFError? = nil) { dispatchPrecondition(condition: .onQueue(underlyingQueue)) +<<<<<<< HEAD guard !$mutableState.isFinishing else { return } $mutableState.isFinishing = true +======= + guard !mutableState.isFinishing else { return } + + mutableState.isFinishing = true +>>>>>>> aefbec1 (config) if let error = error { self.error = error } @@ -533,7 +636,11 @@ public class Request { /// /// - Parameter closure: The closure containing the response serialization call. func appendResponseSerializer(_ closure: @escaping () -> Void) { +<<<<<<< HEAD $mutableState.write { mutableState in +======= + mutableState.write { mutableState in +>>>>>>> aefbec1 (config) mutableState.responseSerializers.append(closure) if mutableState.state == .finished { @@ -556,7 +663,11 @@ public class Request { func nextResponseSerializer() -> (() -> Void)? { var responseSerializer: (() -> Void)? +<<<<<<< HEAD $mutableState.write { mutableState in +======= + mutableState.write { mutableState in +>>>>>>> aefbec1 (config) let responseSerializerIndex = mutableState.responseSerializerCompletions.count if responseSerializerIndex < mutableState.responseSerializers.count { @@ -573,7 +684,11 @@ public class Request { // Execute all response serializer completions and clear them var completions: [() -> Void] = [] +<<<<<<< HEAD $mutableState.write { mutableState in +======= + mutableState.write { mutableState in +>>>>>>> aefbec1 (config) completions = mutableState.responseSerializerCompletions // Clear out all response serializers and response serializer completions in mutable state since the @@ -607,7 +722,11 @@ public class Request { /// - Parameter completion: The completion handler provided with the response serializer, called when all serializers /// are complete. func responseSerializerDidComplete(completion: @escaping () -> Void) { +<<<<<<< HEAD $mutableState.write { $0.responseSerializerCompletions.append(completion) } +======= + mutableState.write { $0.responseSerializerCompletions.append(completion) } +>>>>>>> aefbec1 (config) processNextResponseSerializer() } @@ -620,7 +739,11 @@ public class Request { downloadProgress.totalUnitCount = 0 downloadProgress.completedUnitCount = 0 +<<<<<<< HEAD $mutableState.write { state in +======= + mutableState.write { state in +>>>>>>> aefbec1 (config) state.isFinishing = false state.responseSerializerCompletions = [] } @@ -642,7 +765,11 @@ public class Request { /// /// - Parameter perform: The closure to perform. func withState(perform: (State) -> Void) { +<<<<<<< HEAD $mutableState.withState(perform: perform) +======= + mutableState.withState(perform: perform) +>>>>>>> aefbec1 (config) } // MARK: Task Creation @@ -669,7 +796,11 @@ public class Request { /// - Returns: The instance. @discardableResult public func cancel() -> Self { +<<<<<<< HEAD $mutableState.write { mutableState in +======= + mutableState.write { mutableState in +>>>>>>> aefbec1 (config) guard mutableState.state.canTransitionTo(.cancelled) else { return } mutableState.state = .cancelled @@ -695,7 +826,11 @@ public class Request { /// - Returns: The instance. @discardableResult public func suspend() -> Self { +<<<<<<< HEAD $mutableState.write { mutableState in +======= + mutableState.write { mutableState in +>>>>>>> aefbec1 (config) guard mutableState.state.canTransitionTo(.suspended) else { return } mutableState.state = .suspended @@ -716,7 +851,11 @@ public class Request { /// - Returns: The instance. @discardableResult public func resume() -> Self { +<<<<<<< HEAD $mutableState.write { mutableState in +======= + mutableState.write { mutableState in +>>>>>>> aefbec1 (config) guard mutableState.state.canTransitionTo(.resumed) else { return } mutableState.state = .resumed @@ -756,7 +895,11 @@ public class Request { /// - Returns: The instance. @discardableResult public func authenticate(with credential: URLCredential) -> Self { +<<<<<<< HEAD $mutableState.credential = credential +======= + mutableState.credential = credential +>>>>>>> aefbec1 (config) return self } @@ -772,7 +915,11 @@ public class Request { /// - Returns: The instance. @discardableResult public func downloadProgress(queue: DispatchQueue = .main, closure: @escaping ProgressHandler) -> Self { +<<<<<<< HEAD $mutableState.downloadProgressHandler = (handler: closure, queue: queue) +======= + mutableState.downloadProgressHandler = (handler: closure, queue: queue) +>>>>>>> aefbec1 (config) return self } @@ -788,7 +935,11 @@ public class Request { /// - Returns: The instance. @discardableResult public func uploadProgress(queue: DispatchQueue = .main, closure: @escaping ProgressHandler) -> Self { +<<<<<<< HEAD $mutableState.uploadProgressHandler = (handler: closure, queue: queue) +======= + mutableState.uploadProgressHandler = (handler: closure, queue: queue) +>>>>>>> aefbec1 (config) return self } @@ -804,7 +955,11 @@ public class Request { /// - Returns: The instance. @discardableResult public func redirect(using handler: RedirectHandler) -> Self { +<<<<<<< HEAD $mutableState.write { mutableState in +======= + mutableState.write { mutableState in +>>>>>>> aefbec1 (config) precondition(mutableState.redirectHandler == nil, "Redirect handler has already been set.") mutableState.redirectHandler = handler } @@ -823,7 +978,11 @@ public class Request { /// - Returns: The instance. @discardableResult public func cacheResponse(using handler: CachedResponseHandler) -> Self { +<<<<<<< HEAD $mutableState.write { mutableState in +======= + mutableState.write { mutableState in +>>>>>>> aefbec1 (config) precondition(mutableState.cachedResponseHandler == nil, "Cached response handler has already been set.") mutableState.cachedResponseHandler = handler } @@ -844,7 +1003,11 @@ public class Request { /// - Returns: The instance. @discardableResult public func cURLDescription(on queue: DispatchQueue, calling handler: @escaping (String) -> Void) -> Self { +<<<<<<< HEAD $mutableState.write { mutableState in +======= + mutableState.write { mutableState in +>>>>>>> aefbec1 (config) if mutableState.requests.last != nil { queue.async { handler(self.cURLDescription()) } } else { @@ -881,7 +1044,11 @@ public class Request { /// - Returns: The instance. @discardableResult public func onURLRequestCreation(on queue: DispatchQueue = .main, perform handler: @escaping (URLRequest) -> Void) -> Self { +<<<<<<< HEAD $mutableState.write { state in +======= + mutableState.write { state in +>>>>>>> aefbec1 (config) if let request = state.requests.last { queue.async { handler(request) } } @@ -905,7 +1072,11 @@ public class Request { /// - Returns: The instance. @discardableResult public func onURLSessionTaskCreation(on queue: DispatchQueue = .main, perform handler: @escaping (URLSessionTask) -> Void) -> Self { +<<<<<<< HEAD $mutableState.write { state in +======= + mutableState.write { state in +>>>>>>> aefbec1 (config) if let task = state.tasks.last { queue.async { handler(task) } } @@ -924,16 +1095,26 @@ public class Request { func onFinish(perform finishHandler: @escaping () -> Void) { guard !isFinished else { finishHandler(); return } +<<<<<<< HEAD $mutableState.write { state in +======= + mutableState.write { state in +>>>>>>> aefbec1 (config) state.finishHandlers.append(finishHandler) } } /// Final cleanup step executed when the instance finishes response serialization. func cleanup() { +<<<<<<< HEAD let handlers = $mutableState.finishHandlers handlers.forEach { $0() } $mutableState.write { state in +======= + let handlers = mutableState.finishHandlers + handlers.forEach { $0() } + mutableState.write { state in +>>>>>>> aefbec1 (config) state.finishHandlers.removeAll() } @@ -1099,7 +1280,11 @@ public class DataRequest: Request { /// `URLRequestConvertible` value used to create `URLRequest`s for this instance. public let convertible: URLRequestConvertible /// `Data` read from the server so far. +<<<<<<< HEAD public var data: Data? { $dataMutableState.data } +======= + public var data: Data? { dataMutableState.data } +>>>>>>> aefbec1 (config) private struct DataMutableState { var data: Data? @@ -1108,8 +1293,12 @@ public class DataRequest: Request { _ completionHandler: @escaping (ResponseDisposition) -> Void) -> Void)? } +<<<<<<< HEAD @Protected private var dataMutableState = DataMutableState() +======= + private let dataMutableState = Protected(DataMutableState()) +>>>>>>> aefbec1 (config) /// Creates a `DataRequest` using the provided parameters. /// @@ -1142,7 +1331,11 @@ public class DataRequest: Request { override func reset() { super.reset() +<<<<<<< HEAD $dataMutableState.write { mutableState in +======= + dataMutableState.write { mutableState in +>>>>>>> aefbec1 (config) mutableState.data = nil } } @@ -1153,7 +1346,11 @@ public class DataRequest: Request { /// /// - Parameter data: The `Data` received. func didReceive(data: Data) { +<<<<<<< HEAD $dataMutableState.write { mutableState in +======= + dataMutableState.write { mutableState in +>>>>>>> aefbec1 (config) if mutableState.data == nil { mutableState.data = data } else { @@ -1165,7 +1362,11 @@ public class DataRequest: Request { } func didReceiveResponse(_ response: HTTPURLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) { +<<<<<<< HEAD $dataMutableState.read { dataMutableState in +======= + dataMutableState.read { dataMutableState in +>>>>>>> aefbec1 (config) guard let httpResponseHandler = dataMutableState.httpResponseHandler else { underlyingQueue.async { completionHandler(.allow) } return @@ -1174,7 +1375,11 @@ public class DataRequest: Request { httpResponseHandler.queue.async { httpResponseHandler.handler(response) { disposition in if disposition == .cancel { +<<<<<<< HEAD self.$mutableState.write { mutableState in +======= + self.mutableState.write { mutableState in +>>>>>>> aefbec1 (config) mutableState.state = .cancelled mutableState.error = mutableState.error ?? AFError.explicitlyCancelled } @@ -1227,7 +1432,11 @@ public class DataRequest: Request { withResult: result) } +<<<<<<< HEAD $validators.write { $0.append(validator) } +======= + validators.write { $0.append(validator) } +>>>>>>> aefbec1 (config) return self } @@ -1248,7 +1457,11 @@ public class DataRequest: Request { perform handler: @escaping (_ response: HTTPURLResponse, _ completionHandler: @escaping (ResponseDisposition) -> Void) -> Void ) -> Self { +<<<<<<< HEAD $dataMutableState.write { mutableState in +======= + dataMutableState.write { mutableState in +>>>>>>> aefbec1 (config) mutableState.httpResponseHandler = (queue, handler) } @@ -1354,8 +1567,12 @@ public final class DataStreamRequest: Request { _ completionHandler: @escaping (ResponseDisposition) -> Void) -> Void)? } +<<<<<<< HEAD @Protected var streamMutableState = StreamMutableState() +======= + let streamMutableState = Protected(StreamMutableState()) +>>>>>>> aefbec1 (config) /// Creates a `DataStreamRequest` using the provided parameters. /// @@ -1399,7 +1616,11 @@ public final class DataStreamRequest: Request { } override func finish(error: AFError? = nil) { +<<<<<<< HEAD $streamMutableState.write { state in +======= + streamMutableState.write { state in +>>>>>>> aefbec1 (config) state.outputStream?.close() } @@ -1407,7 +1628,11 @@ public final class DataStreamRequest: Request { } func didReceive(data: Data) { +<<<<<<< HEAD $streamMutableState.write { state in +======= + streamMutableState.write { state in +>>>>>>> aefbec1 (config) #if !canImport(FoundationNetworking) // If we not using swift-corelibs-foundation. if let stream = state.outputStream { underlyingQueue.async { @@ -1423,7 +1648,11 @@ public final class DataStreamRequest: Request { } func didReceiveResponse(_ response: HTTPURLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) { +<<<<<<< HEAD $streamMutableState.read { dataMutableState in +======= + streamMutableState.read { dataMutableState in +>>>>>>> aefbec1 (config) guard let httpResponseHandler = dataMutableState.httpResponseHandler else { underlyingQueue.async { completionHandler(.allow) } return @@ -1432,7 +1661,11 @@ public final class DataStreamRequest: Request { httpResponseHandler.queue.async { httpResponseHandler.handler(response) { disposition in if disposition == .cancel { +<<<<<<< HEAD self.$mutableState.write { mutableState in +======= + self.mutableState.write { mutableState in +>>>>>>> aefbec1 (config) mutableState.state = .cancelled mutableState.error = mutableState.error ?? AFError.explicitlyCancelled } @@ -1468,7 +1701,11 @@ public final class DataStreamRequest: Request { withResult: result) } +<<<<<<< HEAD $validators.write { $0.append(validator) } +======= + validators.write { $0.append(validator) } +>>>>>>> aefbec1 (config) return self } @@ -1487,7 +1724,11 @@ public final class DataStreamRequest: Request { defer { resume() } var inputStream: InputStream? +<<<<<<< HEAD $streamMutableState.write { state in +======= + streamMutableState.write { state in +>>>>>>> aefbec1 (config) Foundation.Stream.getBoundStreams(withBufferSize: bufferSize, inputStream: &inputStream, outputStream: &state.outputStream) @@ -1514,7 +1755,11 @@ public final class DataStreamRequest: Request { perform handler: @escaping (_ response: HTTPURLResponse, _ completionHandler: @escaping (ResponseDisposition) -> Void) -> Void ) -> Self { +<<<<<<< HEAD $streamMutableState.write { mutableState in +======= + streamMutableState.write { mutableState in +>>>>>>> aefbec1 (config) mutableState.httpResponseHandler = (queue, handler) } @@ -1553,7 +1798,11 @@ public final class DataStreamRequest: Request { appendResponseSerializer { self.underlyingQueue.async { self.responseSerializerDidComplete { +<<<<<<< HEAD self.$streamMutableState.write { state in +======= + self.streamMutableState.write { state in +>>>>>>> aefbec1 (config) guard state.numberOfExecutingStreams == 0 else { state.enqueuedCompletionEvents.append { self.enqueueCompletion(on: queue, stream: stream) @@ -1704,8 +1953,12 @@ public class DownloadRequest: Request { } /// Protected mutable state specific to `DownloadRequest`. +<<<<<<< HEAD @Protected private var mutableDownloadState = DownloadRequestMutableState() +======= + private let mutableDownloadState = Protected(DownloadRequestMutableState()) +>>>>>>> aefbec1 (config) /// If the download is resumable and is eventually cancelled or fails, this value may be used to resume the download /// using the `download(resumingWith data:)` API. @@ -1713,14 +1966,24 @@ public class DownloadRequest: Request { /// - Note: For more information about `resumeData`, see [Apple's documentation](https://developer.apple.com/documentation/foundation/urlsessiondownloadtask/1411634-cancel). public var resumeData: Data? { #if !canImport(FoundationNetworking) // If we not using swift-corelibs-foundation. +<<<<<<< HEAD return $mutableDownloadState.resumeData ?? error?.downloadResumeData #else return $mutableDownloadState.resumeData +======= + return mutableDownloadState.resumeData ?? error?.downloadResumeData + #else + return mutableDownloadState.resumeData +>>>>>>> aefbec1 (config) #endif } /// If the download is successful, the `URL` where the file was downloaded. +<<<<<<< HEAD public var fileURL: URL? { $mutableDownloadState.fileURL } +======= + public var fileURL: URL? { mutableDownloadState.fileURL } +>>>>>>> aefbec1 (config) // MARK: Initial State @@ -1763,7 +2026,11 @@ public class DownloadRequest: Request { override func reset() { super.reset() +<<<<<<< HEAD $mutableDownloadState.write { +======= + mutableDownloadState.write { +>>>>>>> aefbec1 (config) $0.resumeData = nil $0.fileURL = nil } @@ -1778,7 +2045,11 @@ public class DownloadRequest: Request { eventMonitor?.request(self, didFinishDownloadingUsing: task, with: result) switch result { +<<<<<<< HEAD case let .success(url): $mutableDownloadState.fileURL = url +======= + case let .success(url): mutableDownloadState.fileURL = url +>>>>>>> aefbec1 (config) case let .failure(error): self.error = error } } @@ -1856,7 +2127,11 @@ public class DownloadRequest: Request { /// /// - Returns: The instance. private func cancel(optionallyProducingResumeData completionHandler: ((_ resumeData: Data?) -> Void)?) -> Self { +<<<<<<< HEAD $mutableState.write { mutableState in +======= + mutableState.write { mutableState in +>>>>>>> aefbec1 (config) guard mutableState.state.canTransitionTo(.cancelled) else { return } mutableState.state = .cancelled @@ -1872,7 +2147,11 @@ public class DownloadRequest: Request { // Resume to ensure metrics are gathered. task.resume() task.cancel { resumeData in +<<<<<<< HEAD self.$mutableDownloadState.resumeData = resumeData +======= + self.mutableDownloadState.resumeData = resumeData +>>>>>>> aefbec1 (config) self.underlyingQueue.async { self.didCancelTask(task) } completionHandler(resumeData) } @@ -1912,7 +2191,11 @@ public class DownloadRequest: Request { withResult: result) } +<<<<<<< HEAD $validators.write { $0.append(validator) } +======= + validators.write { $0.append(validator) } +>>>>>>> aefbec1 (config) return self } diff --git a/Pods/Alamofire/Source/ResponseSerialization.swift b/Pods/Alamofire/Source/ResponseSerialization.swift index 0e718bd..f31c69c 100644 --- a/Pods/Alamofire/Source/ResponseSerialization.swift +++ b/Pods/Alamofire/Source/ResponseSerialization.swift @@ -1153,7 +1153,11 @@ extension DataStreamRequest { } } +<<<<<<< HEAD $streamMutableState.write { $0.streams.append(parser) } +======= + streamMutableState.write { $0.streams.append(parser) } +>>>>>>> aefbec1 (config) appendStreamCompletion(on: queue, stream: stream) return self @@ -1195,7 +1199,11 @@ extension DataStreamRequest { } } +<<<<<<< HEAD $streamMutableState.write { $0.streams.append(parser) } +======= + streamMutableState.write { $0.streams.append(parser) } +>>>>>>> aefbec1 (config) appendStreamCompletion(on: queue, stream: stream) return self @@ -1230,14 +1238,22 @@ extension DataStreamRequest { } } +<<<<<<< HEAD $streamMutableState.write { $0.streams.append(parser) } +======= + streamMutableState.write { $0.streams.append(parser) } +>>>>>>> aefbec1 (config) appendStreamCompletion(on: queue, stream: stream) return self } private func updateAndCompleteIfPossible() { +<<<<<<< HEAD $streamMutableState.write { state in +======= + streamMutableState.write { state in +>>>>>>> aefbec1 (config) state.numberOfExecutingStreams -= 1 guard state.numberOfExecutingStreams == 0, !state.enqueuedCompletionEvents.isEmpty else { return } diff --git a/Pods/Alamofire/Source/URLEncodedFormEncoder.swift b/Pods/Alamofire/Source/URLEncodedFormEncoder.swift index dcb5991..c2c806f 100644 --- a/Pods/Alamofire/Source/URLEncodedFormEncoder.swift +++ b/Pods/Alamofire/Source/URLEncodedFormEncoder.swift @@ -695,6 +695,77 @@ extension _URLEncodedFormEncoder.KeyedContainer: KeyedEncodingContainerProtocol try encode(nilValue, forKey: key) } +<<<<<<< HEAD +======= + func encodeIfPresent(_ value: Bool?, forKey key: Key) throws { + try _encodeIfPresent(value, forKey: key) + } + + func encodeIfPresent(_ value: String?, forKey key: Key) throws { + try _encodeIfPresent(value, forKey: key) + } + + func encodeIfPresent(_ value: Double?, forKey key: Key) throws { + try _encodeIfPresent(value, forKey: key) + } + + func encodeIfPresent(_ value: Float?, forKey key: Key) throws { + try _encodeIfPresent(value, forKey: key) + } + + func encodeIfPresent(_ value: Int?, forKey key: Key) throws { + try _encodeIfPresent(value, forKey: key) + } + + func encodeIfPresent(_ value: Int8?, forKey key: Key) throws { + try _encodeIfPresent(value, forKey: key) + } + + func encodeIfPresent(_ value: Int16?, forKey key: Key) throws { + try _encodeIfPresent(value, forKey: key) + } + + func encodeIfPresent(_ value: Int32?, forKey key: Key) throws { + try _encodeIfPresent(value, forKey: key) + } + + func encodeIfPresent(_ value: Int64?, forKey key: Key) throws { + try _encodeIfPresent(value, forKey: key) + } + + func encodeIfPresent(_ value: UInt?, forKey key: Key) throws { + try _encodeIfPresent(value, forKey: key) + } + + func encodeIfPresent(_ value: UInt8?, forKey key: Key) throws { + try _encodeIfPresent(value, forKey: key) + } + + func encodeIfPresent(_ value: UInt16?, forKey key: Key) throws { + try _encodeIfPresent(value, forKey: key) + } + + func encodeIfPresent(_ value: UInt32?, forKey key: Key) throws { + try _encodeIfPresent(value, forKey: key) + } + + func encodeIfPresent(_ value: UInt64?, forKey key: Key) throws { + try _encodeIfPresent(value, forKey: key) + } + + func encodeIfPresent(_ value: Value?, forKey key: Key) throws where Value: Encodable { + try _encodeIfPresent(value, forKey: key) + } + + func _encodeIfPresent(_ value: Value?, forKey key: Key) throws where Value: Encodable { + if let value = value { + try encode(value, forKey: key) + } else { + try encodeNil(forKey: key) + } + } + +>>>>>>> aefbec1 (config) func encode(_ value: T, forKey key: Key) throws where T: Encodable { var container = nestedSingleValueEncoder(for: key) try container.encode(value) diff --git a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist index 94c7ff0..18d1264 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -6,41 +6,29 @@ Alamofire.xcscheme - isShown - orderHint - 0 + 3 Pods-PowerUp-PowerUpUITests.xcscheme - isShown - orderHint - 2 + 5 Pods-PowerUp.xcscheme - isShown - orderHint - 1 + 4 Pods-PowerUpTests.xcscheme - isShown - orderHint - 3 + 6 SwiftKeychainWrapper.xcscheme - isShown - orderHint - 4 + 7 - SuppressBuildableAutocreation - diff --git a/Pods/Target Support Files/Alamofire/Alamofire-Info.plist b/Pods/Target Support Files/Alamofire/Alamofire-Info.plist index b22a6a3..54f0bcc 100644 --- a/Pods/Target Support Files/Alamofire/Alamofire-Info.plist +++ b/Pods/Target Support Files/Alamofire/Alamofire-Info.plist @@ -15,7 +15,11 @@ CFBundlePackageType FMWK CFBundleShortVersionString +<<<<<<< HEAD 5.8.0 +======= + 5.8.1 +>>>>>>> aefbec1 (config) CFBundleSignature ???? CFBundleVersion diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index b6328ba..e4c77ff 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -19,7 +19,6 @@ 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A8892ACB5E990054E020 /* LoginViewController.swift */; }; 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A88B2ACB5ED30054E020 /* LoginView.swift */; }; 11433FBE2ABCBCDD005AA716 /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 11433FBD2ABCBCDD005AA716 /* .gitignore */; }; - 334B46292B0B739B009918ED /* UserCreditService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334B46282B0B739B009918ED /* UserCreditService.swift */; }; 334B462B2B0B78F9009918ED /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334B462A2B0B78F9009918ED /* User.swift */; }; 33D0094D2AFECF36004BB2AE /* StripePaymentsUI in Frameworks */ = {isa = PBXBuildFile; productRef = 33D0094C2AFECF36004BB2AE /* StripePaymentsUI */; }; 33E1BD922B02A52700E70B4A /* CheckOutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33E1BD912B02A52700E70B4A /* CheckOutViewController.swift */; }; @@ -89,7 +88,6 @@ 1129A88B2ACB5ED30054E020 /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = ""; }; 11433FBD2ABCBCDD005AA716 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; 2E2C196D951641A7DAA32038 /* Pods_PowerUp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PowerUp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 334B46282B0B739B009918ED /* UserCreditService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserCreditService.swift; sourceTree = ""; }; 334B462A2B0B78F9009918ED /* User.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; 33E1BD912B02A52700E70B4A /* CheckOutViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckOutViewController.swift; sourceTree = ""; }; 33E1BD932B02A54500E70B4A /* CheckOutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckOutView.swift; sourceTree = ""; }; @@ -296,7 +294,6 @@ 858F15502ABB77F1002B64C1 /* Info.plist */, 33E1BD952B02A54E00E70B4A /* Checkout Screen */, 33E1BD9A2B02BEC500E70B4A /* Payment Screen */, - 334B46282B0B739B009918ED /* UserCreditService.swift */, 334B462A2B0B78F9009918ED /* User.swift */, 850037672B102D09009C5E8B /* APIConfigs.swift */, ); @@ -619,7 +616,6 @@ files = ( 111834A72B0ED55A00EB24C4 /* OrderDto.swift in Sources */, 858F16AE2ACA7357002B64C1 /* StoreViewController.swift in Sources */, - 334B46292B0B739B009918ED /* UserCreditService.swift in Sources */, 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, 858F16B32ACB978C002B64C1 /* TimeScreen.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, diff --git a/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist index f6419a4..97832aa 100644 --- a/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ PowerUp.xcscheme_^#shared#^_ orderHint - 5 + 11 diff --git a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate index 1e51038ea6e79c54e8f31847466c9a9469716139..f1d4f8b3a01bab6fcd78d73e44449a78f8e591f5 100644 GIT binary patch delta 12474 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 literal 57889 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 Lp|Jli2jcz@0VC(9 diff --git a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..1cc9545 --- /dev/null +++ b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist index 773784d..fdcb82e 100644 --- a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -6,45 +6,54 @@ Promises (Playground) 1.xcscheme - isShown - orderHint - 5 + 1 Promises (Playground) 2.xcscheme - isShown - orderHint - 6 + 2 Promises (Playground) 3.xcscheme - isShown - orderHint - 9 + 8 Promises (Playground) 4.xcscheme + + orderHint + 9 + + Promises (Playground) 5.xcscheme + + orderHint + 10 + + Promises (Playground) 6.xcscheme isShown orderHint - 10 + 12 - Promises (Playground) 5.xcscheme + Promises (Playground) 7.xcscheme isShown orderHint - 11 + 13 - Promises (Playground).xcscheme + Promises (Playground) 8.xcscheme isShown orderHint - 4 + 14 + + Promises (Playground).xcscheme + + orderHint + 0 From 70165c978bfdad82550ddcbc3ace793d79b4310b Mon Sep 17 00:00:00 2001 From: Dingbang Chen Date: Thu, 30 Nov 2023 10:47:38 -0500 Subject: [PATCH 60/71] fix --- Pods/Alamofire/README.md | 84 ------ .../Source/AuthenticationInterceptor.swift | 25 -- Pods/Alamofire/Source/Combine.swift | 54 ---- Pods/Alamofire/Source/MultipartUpload.swift | 22 -- .../Source/NetworkReachabilityManager.swift | 23 -- Pods/Alamofire/Source/Protected.swift | 71 ----- Pods/Alamofire/Source/Request.swift | 283 ------------------ .../Source/ResponseSerialization.swift | 16 - .../Source/URLEncodedFormEncoder.swift | 71 ----- .../xcschemes/xcschememanagement.plist | 22 +- .../Alamofire/Alamofire-Info.plist | 4 - PowerUp.xcodeproj/project.pbxproj | 4 + .../xcschemes/xcschememanagement.plist | 2 +- .../UserInterfaceState.xcuserstate | Bin 26795 -> 57889 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 131 -------- .../xcschemes/xcschememanagement.plist | 37 +-- 16 files changed, 36 insertions(+), 813 deletions(-) delete mode 100644 PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist diff --git a/Pods/Alamofire/README.md b/Pods/Alamofire/README.md index 864a848..b0ba4d5 100644 --- a/Pods/Alamofire/README.md +++ b/Pods/Alamofire/README.md @@ -1,19 +1,11 @@ ![Alamofire: Elegant Networking in Swift](https://raw.githubusercontent.com/Alamofire/Alamofire/master/Resources/AlamofireLogo.png) -<<<<<<< HEAD [![Swift](https://img.shields.io/badge/Swift-5.5_5.6_5.7_5.8-orange?style=flat-square)](https://img.shields.io/badge/Swift-5.5_5.6_5.7_5.8-Orange?style=flat-square) [![Platforms](https://img.shields.io/badge/Platforms-macOS_iOS_tvOS_watchOS_Linux_Windows-yellowgreen?style=flat-square)](https://img.shields.io/badge/Platforms-macOS_iOS_tvOS_watchOS_Linux_Windows-Green?style=flat-square) [![CocoaPods Compatible](https://img.shields.io/cocoapods/v/Alamofire.svg?style=flat-square)](https://img.shields.io/cocoapods/v/Alamofire.svg) [![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat-square)](https://github.com/Carthage/Carthage) [![Swift Package Manager](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange?style=flat-square)](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange?style=flat-square) [![Twitter](https://img.shields.io/badge/twitter-@AlamofireSF-blue.svg?style=flat-square)](https://twitter.com/AlamofireSF) -======= -[![Swift](https://img.shields.io/badge/Swift-5.6_5.7_5.8_5.9-orange?style=flat-square)](https://img.shields.io/badge/Swift-5.6_5.7_5.8_5.9-Orange?style=flat-square) -[![Platforms](https://img.shields.io/badge/Platforms-macOS_iOS_tvOS_watchOS_visionOS_Linux_Windows_Android-yellowgreen?style=flat-square)](https://img.shields.io/badge/Platforms-macOS_iOS_tvOS_watchOS_vision_OS_Linux_Windows_Android-Green?style=flat-square) -[![CocoaPods Compatible](https://img.shields.io/cocoapods/v/Alamofire.svg?style=flat-square)](https://img.shields.io/cocoapods/v/Alamofire.svg) -[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat-square)](https://github.com/Carthage/Carthage) -[![Swift Package Manager](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange?style=flat-square)](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange?style=flat-square) ->>>>>>> aefbec1 (config) [![Swift Forums](https://img.shields.io/badge/Swift_Forums-Alamofire-orange?style=flat-square)](https://forums.swift.org/c/related-projects/alamofire/37) Alamofire is an HTTP networking library written in Swift. @@ -60,36 +52,6 @@ Alamofire is an HTTP networking library written in Swift. - [x] Comprehensive Unit and Integration Test Coverage - [x] [Complete Documentation](https://alamofire.github.io/Alamofire) -<<<<<<< HEAD -======= -## Write Requests Fast! - -Alamofire's compact syntax and extensive feature set allow requests with powerful features like automatic retry to be written in just a few lines of code. - -```swift -// Automatic String to URL conversion, Swift concurrency support, and automatic retry. -let response = await AF.request("https://httpbin.org/get", interceptor: .retryPolicy) - // Automatic HTTP Basic Auth. - .authenticate(username: "user", password: "pass") - // Caching customization. - .cacheResponse(using: .cache) - // Redirect customization. - .redirect(using: .follow) - // Validate response code and Content-Type. - .validate() - // Produce a cURL command for the request. - .cURLDescription { description in - print(description) - } - // Automatic Decodable support with background parsing. - .serializingDecodable(DecodableType.self) - // Await the full response with metrics and a parsed body. - .response -// Detailed response description for easy debugging. -debugPrint(response) -``` - ->>>>>>> aefbec1 (config) ## Component Libraries In order to keep Alamofire focused specifically on core networking implementations, additional component libraries have been created by the [Alamofire Software Foundation](https://github.com/Alamofire/Foundation) to bring additional functionality to the Alamofire ecosystem. @@ -99,7 +61,6 @@ In order to keep Alamofire focused specifically on core networking implementatio ## Requirements -<<<<<<< HEAD | Platform | Minimum Swift Version | Installation | Status | | --- | --- | --- | --- | | iOS 10.0+ / macOS 10.12+ / tvOS 10.0+ / watchOS 3.0+ | 5.5 | [CocoaPods](#cocoapods), [Carthage](#carthage), [Swift Package Manager](#swift-package-manager), [Manual](#manually) | Fully Tested | @@ -109,29 +70,12 @@ In order to keep Alamofire focused specifically on core networking implementatio #### Known Issues on Linux and Windows Alamofire builds on Linux and Windows but there are missing features and many issues in the underlying `swift-corelibs-foundation` that prevent full functionality and may cause crashes. These include: -======= -| Platform | Minimum Swift Version | Installation | Status | -| ---------------------------------------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------- | ------------------------ | -| iOS 10.0+ / macOS 10.12+ / tvOS 10.0+ / watchOS 3.0+ | 5.6 | [CocoaPods](#cocoapods), [Carthage](#carthage), [Swift Package Manager](#swift-package-manager), [Manual](#manually) | Fully Tested | -| Linux | Latest Only | [Swift Package Manager](#swift-package-manager) | Building But Unsupported | -| Windows | Latest Only | [Swift Package Manager](#swift-package-manager) | Building But Unsupported | -| Android | Latest Only | [Swift Package Manager](#swift-package-manager) | Building But Unsupported | - -#### Known Issues on Linux and Windows - -Alamofire builds on Linux, Windows, and Android but there are missing features and many issues in the underlying `swift-corelibs-foundation` that prevent full functionality and may cause crashes. These include: - ->>>>>>> aefbec1 (config) - `ServerTrustManager` and associated certificate functionality is unavailable, so there is no certificate pinning and no client certificate support. - Various methods of HTTP authentication may crash, including HTTP Basic and HTTP Digest. Crashes may occur if responses contain server challenges. - Cache control through `CachedResponseHandler` and associated APIs is unavailable, as the underlying delegate methods aren't called. - `URLSessionTaskMetrics` are never gathered. -<<<<<<< HEAD Due to these issues, Alamofire is unsupported on Linux and Windows. Please report any crashes to the [Swift bug reporter](https://bugs.swift.org). -======= -Due to these issues, Alamofire is unsupported on Linux, Windows, and Android. Please report any crashes to the [Swift bug reporter](https://bugs.swift.org). ->>>>>>> aefbec1 (config) ## Migration Guides @@ -141,19 +85,11 @@ Due to these issues, Alamofire is unsupported on Linux, Windows, and Android. Pl - [Alamofire 2.0 Migration Guide](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Alamofire%202.0%20Migration%20Guide.md) ## Communication -<<<<<<< HEAD -======= - ->>>>>>> aefbec1 (config) - If you **need help with making network requests** using Alamofire, use [Stack Overflow](https://stackoverflow.com/questions/tagged/alamofire) and tag `alamofire`. - If you need to **find or understand an API**, check [our documentation](http://alamofire.github.io/Alamofire/) or [Apple's documentation for `URLSession`](https://developer.apple.com/documentation/foundation/url_loading_system), on top of which Alamofire is built. - If you need **help with an Alamofire feature**, use [our forum on swift.org](https://forums.swift.org/c/related-projects/alamofire). - If you'd like to **discuss Alamofire best practices**, use [our forum on swift.org](https://forums.swift.org/c/related-projects/alamofire). -<<<<<<< HEAD - If you'd like to **discuss a feature request**, use [our forum on swift.org](https://forums.swift.org/c/related-projects/alamofire). -======= -- If you'd like to **discuss a feature request**, use [our forum on swift.org](https://forums.swift.org/c/related-projects/alamofire). ->>>>>>> aefbec1 (config) - If you **found a bug**, open an issue here on GitHub and follow the guide. The more detail the better! ## Installation @@ -176,21 +112,13 @@ github "Alamofire/Alamofire" ### Swift Package Manager -<<<<<<< HEAD The [Swift Package Manager](https://swift.org/package-manager/) is a tool for automating the distribution of Swift code and is integrated into the `swift` compiler. -======= -The [Swift Package Manager](https://swift.org/package-manager/) is a tool for automating the distribution of Swift code and is integrated into the `swift` compiler. ->>>>>>> aefbec1 (config) Once you have your Swift package set up, adding Alamofire as a dependency is as easy as adding it to the `dependencies` value of your `Package.swift`. ```swift dependencies: [ -<<<<<<< HEAD .package(url: "https://github.com/Alamofire/Alamofire.git", .upToNextMajor(from: "5.6.4")) -======= - .package(url: "https://github.com/Alamofire/Alamofire.git", .upToNextMajor(from: "5.8.1")) ->>>>>>> aefbec1 (config) ] ``` @@ -214,11 +142,7 @@ If you prefer not to use any of the aforementioned dependency managers, you can - Open the new `Alamofire` folder, and drag the `Alamofire.xcodeproj` into the Project Navigator of your application's Xcode project. -<<<<<<< HEAD > It should appear nested underneath your application's blue project icon. Whether it is above or below all the other Xcode groups does not matter. -======= - > It should appear nested underneath your application's blue project icon. Whether it is above or below all the other Xcode groups does not matter. ->>>>>>> aefbec1 (config) - Select the `Alamofire.xcodeproj` in the Project Navigator and verify the deployment target matches that of your application target. - Next, select your application project in the Project Navigator (blue project icon) to navigate to the target configuration window and select the application target under the "Targets" heading in the sidebar. @@ -226,19 +150,11 @@ If you prefer not to use any of the aforementioned dependency managers, you can - Click on the `+` button under the "Embedded Binaries" section. - You will see two different `Alamofire.xcodeproj` folders each with two different versions of the `Alamofire.framework` nested inside a `Products` folder. -<<<<<<< HEAD > It does not matter which `Products` folder you choose from, but it does matter whether you choose the top or bottom `Alamofire.framework`. - Select the top `Alamofire.framework` for iOS and the bottom one for macOS. > You can verify which one you selected by inspecting the build log for your project. The build target for `Alamofire` will be listed as `Alamofire iOS`, `Alamofire macOS`, `Alamofire tvOS`, or `Alamofire watchOS`. -======= - > It does not matter which `Products` folder you choose from, but it does matter whether you choose the top or bottom `Alamofire.framework`. - -- Select the top `Alamofire.framework` for iOS and the bottom one for macOS. - - > You can verify which one you selected by inspecting the build log for your project. The build target for `Alamofire` will be listed as `Alamofire iOS`, `Alamofire macOS`, `Alamofire tvOS`, or `Alamofire watchOS`. ->>>>>>> aefbec1 (config) - And that's it! diff --git a/Pods/Alamofire/Source/AuthenticationInterceptor.swift b/Pods/Alamofire/Source/AuthenticationInterceptor.swift index b3b001d..c3a3f31 100644 --- a/Pods/Alamofire/Source/AuthenticationInterceptor.swift +++ b/Pods/Alamofire/Source/AuthenticationInterceptor.swift @@ -217,24 +217,15 @@ public class AuthenticationInterceptor: RequestInterceptor wh /// The `Credential` used to authenticate requests. public var credential: Credential? { -<<<<<<< HEAD get { $mutableState.credential } set { $mutableState.credential = newValue } -======= - get { mutableState.credential } - set { mutableState.credential = newValue } ->>>>>>> aefbec1 (config) } let authenticator: AuthenticatorType let queue = DispatchQueue(label: "org.alamofire.authentication.inspector") -<<<<<<< HEAD @Protected private var mutableState: MutableState -======= - private let mutableState: Protected ->>>>>>> aefbec1 (config) // MARK: Initialization @@ -251,21 +242,13 @@ public class AuthenticationInterceptor: RequestInterceptor wh credential: Credential? = nil, refreshWindow: RefreshWindow? = RefreshWindow()) { self.authenticator = authenticator -<<<<<<< HEAD mutableState = MutableState(credential: credential, refreshWindow: refreshWindow) -======= - mutableState = Protected(MutableState(credential: credential, refreshWindow: refreshWindow)) ->>>>>>> aefbec1 (config) } // MARK: Adapt public func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (Result) -> Void) { -<<<<<<< HEAD let adaptResult: AdaptResult = $mutableState.write { mutableState in -======= - let adaptResult: AdaptResult = mutableState.write { mutableState in ->>>>>>> aefbec1 (config) // Queue the adapt operation if a refresh is already in place. guard !mutableState.isRefreshing else { let operation = AdaptOperation(urlRequest: urlRequest, session: session, completion: completion) @@ -333,11 +316,7 @@ public class AuthenticationInterceptor: RequestInterceptor wh return } -<<<<<<< HEAD $mutableState.write { mutableState in -======= - mutableState.write { mutableState in ->>>>>>> aefbec1 (config) mutableState.requestsToRetry.append(completion) guard !mutableState.isRefreshing else { return } @@ -361,11 +340,7 @@ public class AuthenticationInterceptor: RequestInterceptor wh // Dispatch to queue to hop out of the lock in case authenticator.refresh is implemented synchronously. queue.async { self.authenticator.refresh(credential, for: session) { result in -<<<<<<< HEAD self.$mutableState.write { mutableState in -======= - self.mutableState.write { mutableState in ->>>>>>> aefbec1 (config) switch result { case let .success(credential): self.handleRefreshSuccess(credential, insideLock: &mutableState) diff --git a/Pods/Alamofire/Source/Combine.swift b/Pods/Alamofire/Source/Combine.swift index 0dc91cb..416610e 100644 --- a/Pods/Alamofire/Source/Combine.swift +++ b/Pods/Alamofire/Source/Combine.swift @@ -91,37 +91,23 @@ public struct DataResponsePublisher: Publisher { where Downstream.Input == Output { typealias Failure = Downstream.Failure -<<<<<<< HEAD @Protected private var downstream: Downstream? -======= - private let downstream: Protected ->>>>>>> aefbec1 (config) private let request: DataRequest private let responseHandler: Handler init(request: DataRequest, responseHandler: @escaping Handler, downstream: Downstream) { self.request = request self.responseHandler = responseHandler -<<<<<<< HEAD self.downstream = downstream -======= - self.downstream = Protected(downstream) ->>>>>>> aefbec1 (config) } func request(_ demand: Subscribers.Demand) { assert(demand > 0) -<<<<<<< HEAD guard let downstream = downstream else { return } self.downstream = nil -======= - guard let downstream = downstream.read({ $0 }) else { return } - - self.downstream.write(nil) ->>>>>>> aefbec1 (config) responseHandler { response in _ = downstream.receive(response) downstream.receive(completion: .finished) @@ -130,11 +116,7 @@ public struct DataResponsePublisher: Publisher { func cancel() { request.cancel() -<<<<<<< HEAD downstream = nil -======= - downstream.write(nil) ->>>>>>> aefbec1 (config) } } } @@ -330,37 +312,23 @@ public struct DataStreamPublisher: Publisher { where Downstream.Input == Output { typealias Failure = Downstream.Failure -<<<<<<< HEAD @Protected private var downstream: Downstream? -======= - private let downstream: Protected ->>>>>>> aefbec1 (config) private let request: DataStreamRequest private let streamHandler: Handler init(request: DataStreamRequest, streamHandler: @escaping Handler, downstream: Downstream) { self.request = request self.streamHandler = streamHandler -<<<<<<< HEAD self.downstream = downstream -======= - self.downstream = Protected(downstream) ->>>>>>> aefbec1 (config) } func request(_ demand: Subscribers.Demand) { assert(demand > 0) -<<<<<<< HEAD guard let downstream = downstream else { return } self.downstream = nil -======= - guard let downstream = downstream.read({ $0 }) else { return } - - self.downstream.write(nil) ->>>>>>> aefbec1 (config) streamHandler { stream in _ = downstream.receive(stream) if case .complete = stream.event { @@ -371,11 +339,7 @@ public struct DataStreamPublisher: Publisher { func cancel() { request.cancel() -<<<<<<< HEAD downstream = nil -======= - downstream.write(nil) ->>>>>>> aefbec1 (config) } } } @@ -498,37 +462,23 @@ public struct DownloadResponsePublisher: Publisher { where Downstream.Input == Output { typealias Failure = Downstream.Failure -<<<<<<< HEAD @Protected private var downstream: Downstream? -======= - private let downstream: Protected ->>>>>>> aefbec1 (config) private let request: DownloadRequest private let responseHandler: Handler init(request: DownloadRequest, responseHandler: @escaping Handler, downstream: Downstream) { self.request = request self.responseHandler = responseHandler -<<<<<<< HEAD self.downstream = downstream -======= - self.downstream = Protected(downstream) ->>>>>>> aefbec1 (config) } func request(_ demand: Subscribers.Demand) { assert(demand > 0) -<<<<<<< HEAD guard let downstream = downstream else { return } self.downstream = nil -======= - guard let downstream = downstream.read({ $0 }) else { return } - - self.downstream.write(nil) ->>>>>>> aefbec1 (config) responseHandler { response in _ = downstream.receive(response) downstream.receive(completion: .finished) @@ -537,11 +487,7 @@ public struct DownloadResponsePublisher: Publisher { func cancel() { request.cancel() -<<<<<<< HEAD downstream = nil -======= - downstream.write(nil) ->>>>>>> aefbec1 (config) } } } diff --git a/Pods/Alamofire/Source/MultipartUpload.swift b/Pods/Alamofire/Source/MultipartUpload.swift index a68bf4d..ceda21f 100644 --- a/Pods/Alamofire/Source/MultipartUpload.swift +++ b/Pods/Alamofire/Source/MultipartUpload.swift @@ -28,13 +28,8 @@ import Foundation final class MultipartUpload { lazy var result = Result { try build() } -<<<<<<< HEAD @Protected private(set) var multipartFormData: MultipartFormData -======= - private let multipartFormData: Protected - ->>>>>>> aefbec1 (config) let encodingMemoryThreshold: UInt64 let request: URLRequestConvertible let fileManager: FileManager @@ -45,22 +40,13 @@ final class MultipartUpload { self.encodingMemoryThreshold = encodingMemoryThreshold self.request = request fileManager = multipartFormData.fileManager -<<<<<<< HEAD self.multipartFormData = multipartFormData -======= - self.multipartFormData = Protected(multipartFormData) ->>>>>>> aefbec1 (config) } func build() throws -> UploadRequest.Uploadable { let uploadable: UploadRequest.Uploadable -<<<<<<< HEAD if $multipartFormData.contentLength < encodingMemoryThreshold { let data = try $multipartFormData.read { try $0.encode() } -======= - if multipartFormData.contentLength < encodingMemoryThreshold { - let data = try multipartFormData.read { try $0.encode() } ->>>>>>> aefbec1 (config) uploadable = .data(data) } else { @@ -72,11 +58,7 @@ final class MultipartUpload { try fileManager.createDirectory(at: directoryURL, withIntermediateDirectories: true, attributes: nil) do { -<<<<<<< HEAD try $multipartFormData.read { try $0.writeEncodedData(to: fileURL) } -======= - try multipartFormData.read { try $0.writeEncodedData(to: fileURL) } ->>>>>>> aefbec1 (config) } catch { // Cleanup after attempted write if it fails. try? fileManager.removeItem(at: fileURL) @@ -94,11 +76,7 @@ extension MultipartUpload: UploadConvertible { func asURLRequest() throws -> URLRequest { var urlRequest = try request.asURLRequest() -<<<<<<< HEAD $multipartFormData.read { multipartFormData in -======= - multipartFormData.read { multipartFormData in ->>>>>>> aefbec1 (config) urlRequest.headers.add(.contentType(multipartFormData.contentType)) } diff --git a/Pods/Alamofire/Source/NetworkReachabilityManager.swift b/Pods/Alamofire/Source/NetworkReachabilityManager.swift index 5ceb7fa..8ba715b 100644 --- a/Pods/Alamofire/Source/NetworkReachabilityManager.swift +++ b/Pods/Alamofire/Source/NetworkReachabilityManager.swift @@ -113,12 +113,8 @@ open class NetworkReachabilityManager { private let reachability: SCNetworkReachability /// Protected storage for mutable state. -<<<<<<< HEAD @Protected private var mutableState = MutableState() -======= - private let mutableState = Protected(MutableState()) ->>>>>>> aefbec1 (config) // MARK: - Initialization @@ -172,11 +168,7 @@ open class NetworkReachabilityManager { onUpdatePerforming listener: @escaping Listener) -> Bool { stopListening() -<<<<<<< HEAD $mutableState.write { state in -======= - mutableState.write { state in ->>>>>>> aefbec1 (config) state.listenerQueue = queue state.listener = listener } @@ -228,11 +220,7 @@ open class NetworkReachabilityManager { open func stopListening() { SCNetworkReachabilitySetCallback(reachability, nil, nil) SCNetworkReachabilitySetDispatchQueue(reachability, nil) -<<<<<<< HEAD $mutableState.write { state in -======= - mutableState.write { state in ->>>>>>> aefbec1 (config) state.listener = nil state.listenerQueue = nil state.previousStatus = nil @@ -249,11 +237,7 @@ open class NetworkReachabilityManager { func notifyListener(_ flags: SCNetworkReachabilityFlags) { let newStatus = NetworkReachabilityStatus(flags) -<<<<<<< HEAD $mutableState.write { state in -======= - mutableState.write { state in ->>>>>>> aefbec1 (config) guard state.previousStatus != newStatus else { return } state.previousStatus = newStatus @@ -283,17 +267,12 @@ extension SCNetworkReachabilityFlags { var canConnectWithoutUserInteraction: Bool { canConnectAutomatically && !contains(.interventionRequired) } var isActuallyReachable: Bool { isReachable && (!isConnectionRequired || canConnectWithoutUserInteraction) } var isCellular: Bool { -<<<<<<< HEAD #if swift(>=5.9) #if os(iOS) || os(tvOS) || os(visionOS) -======= - #if os(iOS) || os(tvOS) || (swift(>=5.9) && os(visionOS)) ->>>>>>> aefbec1 (config) return contains(.isWWAN) #else return false #endif -<<<<<<< HEAD #else #if os(iOS) || os(tvOS) return contains(.isWWAN) @@ -301,8 +280,6 @@ extension SCNetworkReachabilityFlags { return false #endif #endif -======= ->>>>>>> aefbec1 (config) } /// Human readable `String` for all states, to help with debugging. diff --git a/Pods/Alamofire/Source/Protected.swift b/Pods/Alamofire/Source/Protected.swift index a2547cd..9449412 100644 --- a/Pods/Alamofire/Source/Protected.swift +++ b/Pods/Alamofire/Source/Protected.swift @@ -49,15 +49,12 @@ extension Lock { } } -<<<<<<< HEAD #if os(Linux) || os(Windows) || os(Android) extension NSLock: Lock {} #endif -======= ->>>>>>> aefbec1 (config) #if canImport(Darwin) /// An `os_unfair_lock` wrapper. final class UnfairLock: Lock { @@ -81,7 +78,6 @@ final class UnfairLock: Lock { os_unfair_lock_unlock(unfairLock) } } -<<<<<<< HEAD #endif /// A thread-safe wrapper around a value. @@ -111,41 +107,12 @@ final class Protected { value = wrappedValue } -======= - -#elseif canImport(Foundation) -extension NSLock: Lock {} -#else -#error("This platform needs a Lock-conforming type without Foundation.") -#endif - -/// A thread-safe wrapper around a value. -@dynamicMemberLookup -final class Protected { - #if canImport(Darwin) - private let lock = UnfairLock() - #elseif canImport(Foundation) - private let lock = NSLock() - #else - #error("This platform needs a Lock-conforming type without Foundation.") - #endif - private var value: Value - - init(_ value: Value) { - self.value = value - } - ->>>>>>> aefbec1 (config) /// Synchronously read or transform the contained value. /// /// - Parameter closure: The closure to execute. /// /// - Returns: The return value of the closure passed. -<<<<<<< HEAD func read(_ closure: (T) throws -> U) rethrows -> U { -======= - func read(_ closure: (Value) throws -> U) rethrows -> U { ->>>>>>> aefbec1 (config) try lock.around { try closure(self.value) } } @@ -155,44 +122,21 @@ final class Protected { /// /// - Returns: The modified value. @discardableResult -<<<<<<< HEAD func write(_ closure: (inout T) throws -> U) rethrows -> U { try lock.around { try closure(&self.value) } } subscript(dynamicMember keyPath: WritableKeyPath) -> Property { -======= - func write(_ closure: (inout Value) throws -> U) rethrows -> U { - try lock.around { try closure(&self.value) } - } - - /// Synchronously update the protected value. - /// - /// - Parameter value: The `Value`. - func write(_ value: Value) { - write { $0 = value } - } - - subscript(dynamicMember keyPath: WritableKeyPath) -> Property { ->>>>>>> aefbec1 (config) get { lock.around { value[keyPath: keyPath] } } set { lock.around { value[keyPath: keyPath] = newValue } } } -<<<<<<< HEAD subscript(dynamicMember keyPath: KeyPath) -> Property { -======= - subscript(dynamicMember keyPath: KeyPath) -> Property { ->>>>>>> aefbec1 (config) lock.around { value[keyPath: keyPath] } } } -<<<<<<< HEAD extension Protected where T == Request.MutableState { -======= -extension Protected where Value == Request.MutableState { ->>>>>>> aefbec1 (config) /// Attempts to transition to the passed `State`. /// /// - Parameter state: The `State` to attempt transition to. @@ -215,18 +159,3 @@ extension Protected where Value == Request.MutableState { lock.around { perform(value.state) } } } -<<<<<<< HEAD -======= - -extension Protected: Equatable where Value: Equatable { - static func ==(lhs: Protected, rhs: Protected) -> Bool { - lhs.read { left in rhs.read { right in left == right }} - } -} - -extension Protected: Hashable where Value: Hashable { - func hash(into hasher: inout Hasher) { - read { hasher.combine($0) } - } -} ->>>>>>> aefbec1 (config) diff --git a/Pods/Alamofire/Source/Request.swift b/Pods/Alamofire/Source/Request.swift index 5a2bd74..fbae9db 100644 --- a/Pods/Alamofire/Source/Request.swift +++ b/Pods/Alamofire/Source/Request.swift @@ -125,18 +125,11 @@ public class Request { } /// Protected `MutableState` value that provides thread-safe access to state values. -<<<<<<< HEAD @Protected fileprivate var mutableState = MutableState() /// `State` of the `Request`. public var state: State { $mutableState.state } -======= - fileprivate let mutableState = Protected(MutableState()) - - /// `State` of the `Request`. - public var state: State { mutableState.state } ->>>>>>> aefbec1 (config) /// Returns whether `state` is `.initialized`. public var isInitialized: Bool { state == .initialized } /// Returns whether `state is `.resumed`. @@ -159,83 +152,50 @@ public class Request { public let downloadProgress = Progress(totalUnitCount: 0) /// `ProgressHandler` called when `uploadProgress` is updated, on the provided `DispatchQueue`. private var uploadProgressHandler: (handler: ProgressHandler, queue: DispatchQueue)? { -<<<<<<< HEAD get { $mutableState.uploadProgressHandler } set { $mutableState.uploadProgressHandler = newValue } -======= - get { mutableState.uploadProgressHandler } - set { mutableState.uploadProgressHandler = newValue } ->>>>>>> aefbec1 (config) } /// `ProgressHandler` called when `downloadProgress` is updated, on the provided `DispatchQueue`. fileprivate var downloadProgressHandler: (handler: ProgressHandler, queue: DispatchQueue)? { -<<<<<<< HEAD get { $mutableState.downloadProgressHandler } set { $mutableState.downloadProgressHandler = newValue } -======= - get { mutableState.downloadProgressHandler } - set { mutableState.downloadProgressHandler = newValue } ->>>>>>> aefbec1 (config) } // MARK: Redirect Handling /// `RedirectHandler` set on the instance. public private(set) var redirectHandler: RedirectHandler? { -<<<<<<< HEAD get { $mutableState.redirectHandler } set { $mutableState.redirectHandler = newValue } -======= - get { mutableState.redirectHandler } - set { mutableState.redirectHandler = newValue } ->>>>>>> aefbec1 (config) } // MARK: Cached Response Handling /// `CachedResponseHandler` set on the instance. public private(set) var cachedResponseHandler: CachedResponseHandler? { -<<<<<<< HEAD get { $mutableState.cachedResponseHandler } set { $mutableState.cachedResponseHandler = newValue } -======= - get { mutableState.cachedResponseHandler } - set { mutableState.cachedResponseHandler = newValue } ->>>>>>> aefbec1 (config) } // MARK: URLCredential /// `URLCredential` used for authentication challenges. Created by calling one of the `authenticate` methods. public private(set) var credential: URLCredential? { -<<<<<<< HEAD get { $mutableState.credential } set { $mutableState.credential = newValue } -======= - get { mutableState.credential } - set { mutableState.credential = newValue } ->>>>>>> aefbec1 (config) } // MARK: Validators /// `Validator` callback closures that store the validation calls enqueued. -<<<<<<< HEAD @Protected fileprivate var validators: [() -> Void] = [] -======= - fileprivate let validators = Protected<[() -> Void]>([]) ->>>>>>> aefbec1 (config) // MARK: URLRequests /// All `URLRequests` created on behalf of the `Request`, including original and adapted requests. -<<<<<<< HEAD public var requests: [URLRequest] { $mutableState.requests } -======= - public var requests: [URLRequest] { mutableState.requests } ->>>>>>> aefbec1 (config) /// First `URLRequest` created on behalf of the `Request`. May not be the first one actually executed. public var firstRequest: URLRequest? { requests.first } /// Last `URLRequest` created on behalf of the `Request`. @@ -245,11 +205,7 @@ public class Request { /// `URLRequest`s from all of the `URLSessionTask`s executed on behalf of the `Request`. May be different from /// `requests` due to `URLSession` manipulation. -<<<<<<< HEAD public var performedRequests: [URLRequest] { $mutableState.read { $0.tasks.compactMap(\.currentRequest) } } -======= - public var performedRequests: [URLRequest] { mutableState.read { $0.tasks.compactMap(\.currentRequest) } } ->>>>>>> aefbec1 (config) // MARK: HTTPURLResponse @@ -260,11 +216,7 @@ public class Request { // MARK: Tasks /// All `URLSessionTask`s created on behalf of the `Request`. -<<<<<<< HEAD public var tasks: [URLSessionTask] { $mutableState.tasks } -======= - public var tasks: [URLSessionTask] { mutableState.tasks } ->>>>>>> aefbec1 (config) /// First `URLSessionTask` created on behalf of the `Request`. public var firstTask: URLSessionTask? { tasks.first } /// Last `URLSessionTask` created on behalf of the `Request`. @@ -275,11 +227,7 @@ public class Request { // MARK: Metrics /// All `URLSessionTaskMetrics` gathered on behalf of the `Request`. Should correspond to the `tasks` created. -<<<<<<< HEAD public var allMetrics: [URLSessionTaskMetrics] { $mutableState.metrics } -======= - public var allMetrics: [URLSessionTaskMetrics] { mutableState.metrics } ->>>>>>> aefbec1 (config) /// First `URLSessionTaskMetrics` gathered on behalf of the `Request`. public var firstMetrics: URLSessionTaskMetrics? { allMetrics.first } /// Last `URLSessionTaskMetrics` gathered on behalf of the `Request`. @@ -290,23 +238,14 @@ public class Request { // MARK: Retry Count /// Number of times the `Request` has been retried. -<<<<<<< HEAD public var retryCount: Int { $mutableState.retryCount } -======= - public var retryCount: Int { mutableState.retryCount } ->>>>>>> aefbec1 (config) // MARK: Error /// `Error` returned from Alamofire internally, from the network request directly, or any validators executed. public fileprivate(set) var error: AFError? { -<<<<<<< HEAD get { $mutableState.error } set { $mutableState.error = newValue } -======= - get { mutableState.error } - set { mutableState.error = newValue } ->>>>>>> aefbec1 (config) } /// Default initializer for the `Request` superclass. @@ -344,11 +283,7 @@ public class Request { func didCreateInitialURLRequest(_ request: URLRequest) { dispatchPrecondition(condition: .onQueue(underlyingQueue)) -<<<<<<< HEAD $mutableState.write { $0.requests.append(request) } -======= - mutableState.write { $0.requests.append(request) } ->>>>>>> aefbec1 (config) eventMonitor?.request(self, didCreateInitialURLRequest: request) } @@ -378,11 +313,7 @@ public class Request { func didAdaptInitialRequest(_ initialRequest: URLRequest, to adaptedRequest: URLRequest) { dispatchPrecondition(condition: .onQueue(underlyingQueue)) -<<<<<<< HEAD $mutableState.write { $0.requests.append(adaptedRequest) } -======= - mutableState.write { $0.requests.append(adaptedRequest) } ->>>>>>> aefbec1 (config) eventMonitor?.request(self, didAdaptInitialRequest: initialRequest, to: adaptedRequest) } @@ -412,11 +343,7 @@ public class Request { func didCreateURLRequest(_ request: URLRequest) { dispatchPrecondition(condition: .onQueue(underlyingQueue)) -<<<<<<< HEAD $mutableState.read { state in -======= - mutableState.read { state in ->>>>>>> aefbec1 (config) state.urlRequestHandler?.queue.async { state.urlRequestHandler?.handler(request) } } @@ -427,11 +354,7 @@ public class Request { /// Asynchronously calls any stored `cURLHandler` and then removes it from `mutableState`. private func callCURLHandlerIfNecessary() { -<<<<<<< HEAD $mutableState.write { mutableState in -======= - mutableState.write { mutableState in ->>>>>>> aefbec1 (config) guard let cURLHandler = mutableState.cURLHandler else { return } cURLHandler.queue.async { cURLHandler.handler(self.cURLDescription()) } @@ -446,11 +369,7 @@ public class Request { func didCreateTask(_ task: URLSessionTask) { dispatchPrecondition(condition: .onQueue(underlyingQueue)) -<<<<<<< HEAD $mutableState.write { state in -======= - mutableState.write { state in ->>>>>>> aefbec1 (config) state.tasks.append(task) guard let urlSessionTaskHandler = state.urlSessionTaskHandler else { return } @@ -497,11 +416,7 @@ public class Request { func didCancel() { dispatchPrecondition(condition: .onQueue(underlyingQueue)) -<<<<<<< HEAD $mutableState.write { mutableState in -======= - mutableState.write { mutableState in ->>>>>>> aefbec1 (config) mutableState.error = mutableState.error ?? AFError.explicitlyCancelled } @@ -523,11 +438,7 @@ public class Request { func didGatherMetrics(_ metrics: URLSessionTaskMetrics) { dispatchPrecondition(condition: .onQueue(underlyingQueue)) -<<<<<<< HEAD $mutableState.write { $0.metrics.append(metrics) } -======= - mutableState.write { $0.metrics.append(metrics) } ->>>>>>> aefbec1 (config) eventMonitor?.request(self, didGatherMetrics: metrics) } @@ -559,10 +470,6 @@ public class Request { self.error = self.error ?? error -<<<<<<< HEAD -======= - let validators = validators.read { $0 } ->>>>>>> aefbec1 (config) validators.forEach { $0() } eventMonitor?.request(self, didCompleteTask: task, with: error) @@ -574,11 +481,7 @@ public class Request { func prepareForRetry() { dispatchPrecondition(condition: .onQueue(underlyingQueue)) -<<<<<<< HEAD $mutableState.write { $0.retryCount += 1 } -======= - mutableState.write { $0.retryCount += 1 } ->>>>>>> aefbec1 (config) reset() @@ -612,15 +515,9 @@ public class Request { func finish(error: AFError? = nil) { dispatchPrecondition(condition: .onQueue(underlyingQueue)) -<<<<<<< HEAD guard !$mutableState.isFinishing else { return } $mutableState.isFinishing = true -======= - guard !mutableState.isFinishing else { return } - - mutableState.isFinishing = true ->>>>>>> aefbec1 (config) if let error = error { self.error = error } @@ -636,11 +533,7 @@ public class Request { /// /// - Parameter closure: The closure containing the response serialization call. func appendResponseSerializer(_ closure: @escaping () -> Void) { -<<<<<<< HEAD $mutableState.write { mutableState in -======= - mutableState.write { mutableState in ->>>>>>> aefbec1 (config) mutableState.responseSerializers.append(closure) if mutableState.state == .finished { @@ -663,11 +556,7 @@ public class Request { func nextResponseSerializer() -> (() -> Void)? { var responseSerializer: (() -> Void)? -<<<<<<< HEAD $mutableState.write { mutableState in -======= - mutableState.write { mutableState in ->>>>>>> aefbec1 (config) let responseSerializerIndex = mutableState.responseSerializerCompletions.count if responseSerializerIndex < mutableState.responseSerializers.count { @@ -684,11 +573,7 @@ public class Request { // Execute all response serializer completions and clear them var completions: [() -> Void] = [] -<<<<<<< HEAD $mutableState.write { mutableState in -======= - mutableState.write { mutableState in ->>>>>>> aefbec1 (config) completions = mutableState.responseSerializerCompletions // Clear out all response serializers and response serializer completions in mutable state since the @@ -722,11 +607,7 @@ public class Request { /// - Parameter completion: The completion handler provided with the response serializer, called when all serializers /// are complete. func responseSerializerDidComplete(completion: @escaping () -> Void) { -<<<<<<< HEAD $mutableState.write { $0.responseSerializerCompletions.append(completion) } -======= - mutableState.write { $0.responseSerializerCompletions.append(completion) } ->>>>>>> aefbec1 (config) processNextResponseSerializer() } @@ -739,11 +620,7 @@ public class Request { downloadProgress.totalUnitCount = 0 downloadProgress.completedUnitCount = 0 -<<<<<<< HEAD $mutableState.write { state in -======= - mutableState.write { state in ->>>>>>> aefbec1 (config) state.isFinishing = false state.responseSerializerCompletions = [] } @@ -765,11 +642,7 @@ public class Request { /// /// - Parameter perform: The closure to perform. func withState(perform: (State) -> Void) { -<<<<<<< HEAD $mutableState.withState(perform: perform) -======= - mutableState.withState(perform: perform) ->>>>>>> aefbec1 (config) } // MARK: Task Creation @@ -796,11 +669,7 @@ public class Request { /// - Returns: The instance. @discardableResult public func cancel() -> Self { -<<<<<<< HEAD $mutableState.write { mutableState in -======= - mutableState.write { mutableState in ->>>>>>> aefbec1 (config) guard mutableState.state.canTransitionTo(.cancelled) else { return } mutableState.state = .cancelled @@ -826,11 +695,7 @@ public class Request { /// - Returns: The instance. @discardableResult public func suspend() -> Self { -<<<<<<< HEAD $mutableState.write { mutableState in -======= - mutableState.write { mutableState in ->>>>>>> aefbec1 (config) guard mutableState.state.canTransitionTo(.suspended) else { return } mutableState.state = .suspended @@ -851,11 +716,7 @@ public class Request { /// - Returns: The instance. @discardableResult public func resume() -> Self { -<<<<<<< HEAD $mutableState.write { mutableState in -======= - mutableState.write { mutableState in ->>>>>>> aefbec1 (config) guard mutableState.state.canTransitionTo(.resumed) else { return } mutableState.state = .resumed @@ -895,11 +756,7 @@ public class Request { /// - Returns: The instance. @discardableResult public func authenticate(with credential: URLCredential) -> Self { -<<<<<<< HEAD $mutableState.credential = credential -======= - mutableState.credential = credential ->>>>>>> aefbec1 (config) return self } @@ -915,11 +772,7 @@ public class Request { /// - Returns: The instance. @discardableResult public func downloadProgress(queue: DispatchQueue = .main, closure: @escaping ProgressHandler) -> Self { -<<<<<<< HEAD $mutableState.downloadProgressHandler = (handler: closure, queue: queue) -======= - mutableState.downloadProgressHandler = (handler: closure, queue: queue) ->>>>>>> aefbec1 (config) return self } @@ -935,11 +788,7 @@ public class Request { /// - Returns: The instance. @discardableResult public func uploadProgress(queue: DispatchQueue = .main, closure: @escaping ProgressHandler) -> Self { -<<<<<<< HEAD $mutableState.uploadProgressHandler = (handler: closure, queue: queue) -======= - mutableState.uploadProgressHandler = (handler: closure, queue: queue) ->>>>>>> aefbec1 (config) return self } @@ -955,11 +804,7 @@ public class Request { /// - Returns: The instance. @discardableResult public func redirect(using handler: RedirectHandler) -> Self { -<<<<<<< HEAD $mutableState.write { mutableState in -======= - mutableState.write { mutableState in ->>>>>>> aefbec1 (config) precondition(mutableState.redirectHandler == nil, "Redirect handler has already been set.") mutableState.redirectHandler = handler } @@ -978,11 +823,7 @@ public class Request { /// - Returns: The instance. @discardableResult public func cacheResponse(using handler: CachedResponseHandler) -> Self { -<<<<<<< HEAD $mutableState.write { mutableState in -======= - mutableState.write { mutableState in ->>>>>>> aefbec1 (config) precondition(mutableState.cachedResponseHandler == nil, "Cached response handler has already been set.") mutableState.cachedResponseHandler = handler } @@ -1003,11 +844,7 @@ public class Request { /// - Returns: The instance. @discardableResult public func cURLDescription(on queue: DispatchQueue, calling handler: @escaping (String) -> Void) -> Self { -<<<<<<< HEAD $mutableState.write { mutableState in -======= - mutableState.write { mutableState in ->>>>>>> aefbec1 (config) if mutableState.requests.last != nil { queue.async { handler(self.cURLDescription()) } } else { @@ -1044,11 +881,7 @@ public class Request { /// - Returns: The instance. @discardableResult public func onURLRequestCreation(on queue: DispatchQueue = .main, perform handler: @escaping (URLRequest) -> Void) -> Self { -<<<<<<< HEAD $mutableState.write { state in -======= - mutableState.write { state in ->>>>>>> aefbec1 (config) if let request = state.requests.last { queue.async { handler(request) } } @@ -1072,11 +905,7 @@ public class Request { /// - Returns: The instance. @discardableResult public func onURLSessionTaskCreation(on queue: DispatchQueue = .main, perform handler: @escaping (URLSessionTask) -> Void) -> Self { -<<<<<<< HEAD $mutableState.write { state in -======= - mutableState.write { state in ->>>>>>> aefbec1 (config) if let task = state.tasks.last { queue.async { handler(task) } } @@ -1095,26 +924,16 @@ public class Request { func onFinish(perform finishHandler: @escaping () -> Void) { guard !isFinished else { finishHandler(); return } -<<<<<<< HEAD $mutableState.write { state in -======= - mutableState.write { state in ->>>>>>> aefbec1 (config) state.finishHandlers.append(finishHandler) } } /// Final cleanup step executed when the instance finishes response serialization. func cleanup() { -<<<<<<< HEAD let handlers = $mutableState.finishHandlers handlers.forEach { $0() } $mutableState.write { state in -======= - let handlers = mutableState.finishHandlers - handlers.forEach { $0() } - mutableState.write { state in ->>>>>>> aefbec1 (config) state.finishHandlers.removeAll() } @@ -1280,11 +1099,7 @@ public class DataRequest: Request { /// `URLRequestConvertible` value used to create `URLRequest`s for this instance. public let convertible: URLRequestConvertible /// `Data` read from the server so far. -<<<<<<< HEAD public var data: Data? { $dataMutableState.data } -======= - public var data: Data? { dataMutableState.data } ->>>>>>> aefbec1 (config) private struct DataMutableState { var data: Data? @@ -1293,12 +1108,8 @@ public class DataRequest: Request { _ completionHandler: @escaping (ResponseDisposition) -> Void) -> Void)? } -<<<<<<< HEAD @Protected private var dataMutableState = DataMutableState() -======= - private let dataMutableState = Protected(DataMutableState()) ->>>>>>> aefbec1 (config) /// Creates a `DataRequest` using the provided parameters. /// @@ -1331,11 +1142,7 @@ public class DataRequest: Request { override func reset() { super.reset() -<<<<<<< HEAD $dataMutableState.write { mutableState in -======= - dataMutableState.write { mutableState in ->>>>>>> aefbec1 (config) mutableState.data = nil } } @@ -1346,11 +1153,7 @@ public class DataRequest: Request { /// /// - Parameter data: The `Data` received. func didReceive(data: Data) { -<<<<<<< HEAD $dataMutableState.write { mutableState in -======= - dataMutableState.write { mutableState in ->>>>>>> aefbec1 (config) if mutableState.data == nil { mutableState.data = data } else { @@ -1362,11 +1165,7 @@ public class DataRequest: Request { } func didReceiveResponse(_ response: HTTPURLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) { -<<<<<<< HEAD $dataMutableState.read { dataMutableState in -======= - dataMutableState.read { dataMutableState in ->>>>>>> aefbec1 (config) guard let httpResponseHandler = dataMutableState.httpResponseHandler else { underlyingQueue.async { completionHandler(.allow) } return @@ -1375,11 +1174,7 @@ public class DataRequest: Request { httpResponseHandler.queue.async { httpResponseHandler.handler(response) { disposition in if disposition == .cancel { -<<<<<<< HEAD self.$mutableState.write { mutableState in -======= - self.mutableState.write { mutableState in ->>>>>>> aefbec1 (config) mutableState.state = .cancelled mutableState.error = mutableState.error ?? AFError.explicitlyCancelled } @@ -1432,11 +1227,7 @@ public class DataRequest: Request { withResult: result) } -<<<<<<< HEAD $validators.write { $0.append(validator) } -======= - validators.write { $0.append(validator) } ->>>>>>> aefbec1 (config) return self } @@ -1457,11 +1248,7 @@ public class DataRequest: Request { perform handler: @escaping (_ response: HTTPURLResponse, _ completionHandler: @escaping (ResponseDisposition) -> Void) -> Void ) -> Self { -<<<<<<< HEAD $dataMutableState.write { mutableState in -======= - dataMutableState.write { mutableState in ->>>>>>> aefbec1 (config) mutableState.httpResponseHandler = (queue, handler) } @@ -1567,12 +1354,8 @@ public final class DataStreamRequest: Request { _ completionHandler: @escaping (ResponseDisposition) -> Void) -> Void)? } -<<<<<<< HEAD @Protected var streamMutableState = StreamMutableState() -======= - let streamMutableState = Protected(StreamMutableState()) ->>>>>>> aefbec1 (config) /// Creates a `DataStreamRequest` using the provided parameters. /// @@ -1616,11 +1399,7 @@ public final class DataStreamRequest: Request { } override func finish(error: AFError? = nil) { -<<<<<<< HEAD $streamMutableState.write { state in -======= - streamMutableState.write { state in ->>>>>>> aefbec1 (config) state.outputStream?.close() } @@ -1628,11 +1407,7 @@ public final class DataStreamRequest: Request { } func didReceive(data: Data) { -<<<<<<< HEAD $streamMutableState.write { state in -======= - streamMutableState.write { state in ->>>>>>> aefbec1 (config) #if !canImport(FoundationNetworking) // If we not using swift-corelibs-foundation. if let stream = state.outputStream { underlyingQueue.async { @@ -1648,11 +1423,7 @@ public final class DataStreamRequest: Request { } func didReceiveResponse(_ response: HTTPURLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) { -<<<<<<< HEAD $streamMutableState.read { dataMutableState in -======= - streamMutableState.read { dataMutableState in ->>>>>>> aefbec1 (config) guard let httpResponseHandler = dataMutableState.httpResponseHandler else { underlyingQueue.async { completionHandler(.allow) } return @@ -1661,11 +1432,7 @@ public final class DataStreamRequest: Request { httpResponseHandler.queue.async { httpResponseHandler.handler(response) { disposition in if disposition == .cancel { -<<<<<<< HEAD self.$mutableState.write { mutableState in -======= - self.mutableState.write { mutableState in ->>>>>>> aefbec1 (config) mutableState.state = .cancelled mutableState.error = mutableState.error ?? AFError.explicitlyCancelled } @@ -1701,11 +1468,7 @@ public final class DataStreamRequest: Request { withResult: result) } -<<<<<<< HEAD $validators.write { $0.append(validator) } -======= - validators.write { $0.append(validator) } ->>>>>>> aefbec1 (config) return self } @@ -1724,11 +1487,7 @@ public final class DataStreamRequest: Request { defer { resume() } var inputStream: InputStream? -<<<<<<< HEAD $streamMutableState.write { state in -======= - streamMutableState.write { state in ->>>>>>> aefbec1 (config) Foundation.Stream.getBoundStreams(withBufferSize: bufferSize, inputStream: &inputStream, outputStream: &state.outputStream) @@ -1755,11 +1514,7 @@ public final class DataStreamRequest: Request { perform handler: @escaping (_ response: HTTPURLResponse, _ completionHandler: @escaping (ResponseDisposition) -> Void) -> Void ) -> Self { -<<<<<<< HEAD $streamMutableState.write { mutableState in -======= - streamMutableState.write { mutableState in ->>>>>>> aefbec1 (config) mutableState.httpResponseHandler = (queue, handler) } @@ -1798,11 +1553,7 @@ public final class DataStreamRequest: Request { appendResponseSerializer { self.underlyingQueue.async { self.responseSerializerDidComplete { -<<<<<<< HEAD self.$streamMutableState.write { state in -======= - self.streamMutableState.write { state in ->>>>>>> aefbec1 (config) guard state.numberOfExecutingStreams == 0 else { state.enqueuedCompletionEvents.append { self.enqueueCompletion(on: queue, stream: stream) @@ -1953,12 +1704,8 @@ public class DownloadRequest: Request { } /// Protected mutable state specific to `DownloadRequest`. -<<<<<<< HEAD @Protected private var mutableDownloadState = DownloadRequestMutableState() -======= - private let mutableDownloadState = Protected(DownloadRequestMutableState()) ->>>>>>> aefbec1 (config) /// If the download is resumable and is eventually cancelled or fails, this value may be used to resume the download /// using the `download(resumingWith data:)` API. @@ -1966,24 +1713,14 @@ public class DownloadRequest: Request { /// - Note: For more information about `resumeData`, see [Apple's documentation](https://developer.apple.com/documentation/foundation/urlsessiondownloadtask/1411634-cancel). public var resumeData: Data? { #if !canImport(FoundationNetworking) // If we not using swift-corelibs-foundation. -<<<<<<< HEAD return $mutableDownloadState.resumeData ?? error?.downloadResumeData #else return $mutableDownloadState.resumeData -======= - return mutableDownloadState.resumeData ?? error?.downloadResumeData - #else - return mutableDownloadState.resumeData ->>>>>>> aefbec1 (config) #endif } /// If the download is successful, the `URL` where the file was downloaded. -<<<<<<< HEAD public var fileURL: URL? { $mutableDownloadState.fileURL } -======= - public var fileURL: URL? { mutableDownloadState.fileURL } ->>>>>>> aefbec1 (config) // MARK: Initial State @@ -2026,11 +1763,7 @@ public class DownloadRequest: Request { override func reset() { super.reset() -<<<<<<< HEAD $mutableDownloadState.write { -======= - mutableDownloadState.write { ->>>>>>> aefbec1 (config) $0.resumeData = nil $0.fileURL = nil } @@ -2045,11 +1778,7 @@ public class DownloadRequest: Request { eventMonitor?.request(self, didFinishDownloadingUsing: task, with: result) switch result { -<<<<<<< HEAD case let .success(url): $mutableDownloadState.fileURL = url -======= - case let .success(url): mutableDownloadState.fileURL = url ->>>>>>> aefbec1 (config) case let .failure(error): self.error = error } } @@ -2127,11 +1856,7 @@ public class DownloadRequest: Request { /// /// - Returns: The instance. private func cancel(optionallyProducingResumeData completionHandler: ((_ resumeData: Data?) -> Void)?) -> Self { -<<<<<<< HEAD $mutableState.write { mutableState in -======= - mutableState.write { mutableState in ->>>>>>> aefbec1 (config) guard mutableState.state.canTransitionTo(.cancelled) else { return } mutableState.state = .cancelled @@ -2147,11 +1872,7 @@ public class DownloadRequest: Request { // Resume to ensure metrics are gathered. task.resume() task.cancel { resumeData in -<<<<<<< HEAD self.$mutableDownloadState.resumeData = resumeData -======= - self.mutableDownloadState.resumeData = resumeData ->>>>>>> aefbec1 (config) self.underlyingQueue.async { self.didCancelTask(task) } completionHandler(resumeData) } @@ -2191,11 +1912,7 @@ public class DownloadRequest: Request { withResult: result) } -<<<<<<< HEAD $validators.write { $0.append(validator) } -======= - validators.write { $0.append(validator) } ->>>>>>> aefbec1 (config) return self } diff --git a/Pods/Alamofire/Source/ResponseSerialization.swift b/Pods/Alamofire/Source/ResponseSerialization.swift index f31c69c..0e718bd 100644 --- a/Pods/Alamofire/Source/ResponseSerialization.swift +++ b/Pods/Alamofire/Source/ResponseSerialization.swift @@ -1153,11 +1153,7 @@ extension DataStreamRequest { } } -<<<<<<< HEAD $streamMutableState.write { $0.streams.append(parser) } -======= - streamMutableState.write { $0.streams.append(parser) } ->>>>>>> aefbec1 (config) appendStreamCompletion(on: queue, stream: stream) return self @@ -1199,11 +1195,7 @@ extension DataStreamRequest { } } -<<<<<<< HEAD $streamMutableState.write { $0.streams.append(parser) } -======= - streamMutableState.write { $0.streams.append(parser) } ->>>>>>> aefbec1 (config) appendStreamCompletion(on: queue, stream: stream) return self @@ -1238,22 +1230,14 @@ extension DataStreamRequest { } } -<<<<<<< HEAD $streamMutableState.write { $0.streams.append(parser) } -======= - streamMutableState.write { $0.streams.append(parser) } ->>>>>>> aefbec1 (config) appendStreamCompletion(on: queue, stream: stream) return self } private func updateAndCompleteIfPossible() { -<<<<<<< HEAD $streamMutableState.write { state in -======= - streamMutableState.write { state in ->>>>>>> aefbec1 (config) state.numberOfExecutingStreams -= 1 guard state.numberOfExecutingStreams == 0, !state.enqueuedCompletionEvents.isEmpty else { return } diff --git a/Pods/Alamofire/Source/URLEncodedFormEncoder.swift b/Pods/Alamofire/Source/URLEncodedFormEncoder.swift index c2c806f..dcb5991 100644 --- a/Pods/Alamofire/Source/URLEncodedFormEncoder.swift +++ b/Pods/Alamofire/Source/URLEncodedFormEncoder.swift @@ -695,77 +695,6 @@ extension _URLEncodedFormEncoder.KeyedContainer: KeyedEncodingContainerProtocol try encode(nilValue, forKey: key) } -<<<<<<< HEAD -======= - func encodeIfPresent(_ value: Bool?, forKey key: Key) throws { - try _encodeIfPresent(value, forKey: key) - } - - func encodeIfPresent(_ value: String?, forKey key: Key) throws { - try _encodeIfPresent(value, forKey: key) - } - - func encodeIfPresent(_ value: Double?, forKey key: Key) throws { - try _encodeIfPresent(value, forKey: key) - } - - func encodeIfPresent(_ value: Float?, forKey key: Key) throws { - try _encodeIfPresent(value, forKey: key) - } - - func encodeIfPresent(_ value: Int?, forKey key: Key) throws { - try _encodeIfPresent(value, forKey: key) - } - - func encodeIfPresent(_ value: Int8?, forKey key: Key) throws { - try _encodeIfPresent(value, forKey: key) - } - - func encodeIfPresent(_ value: Int16?, forKey key: Key) throws { - try _encodeIfPresent(value, forKey: key) - } - - func encodeIfPresent(_ value: Int32?, forKey key: Key) throws { - try _encodeIfPresent(value, forKey: key) - } - - func encodeIfPresent(_ value: Int64?, forKey key: Key) throws { - try _encodeIfPresent(value, forKey: key) - } - - func encodeIfPresent(_ value: UInt?, forKey key: Key) throws { - try _encodeIfPresent(value, forKey: key) - } - - func encodeIfPresent(_ value: UInt8?, forKey key: Key) throws { - try _encodeIfPresent(value, forKey: key) - } - - func encodeIfPresent(_ value: UInt16?, forKey key: Key) throws { - try _encodeIfPresent(value, forKey: key) - } - - func encodeIfPresent(_ value: UInt32?, forKey key: Key) throws { - try _encodeIfPresent(value, forKey: key) - } - - func encodeIfPresent(_ value: UInt64?, forKey key: Key) throws { - try _encodeIfPresent(value, forKey: key) - } - - func encodeIfPresent(_ value: Value?, forKey key: Key) throws where Value: Encodable { - try _encodeIfPresent(value, forKey: key) - } - - func _encodeIfPresent(_ value: Value?, forKey key: Key) throws where Value: Encodable { - if let value = value { - try encode(value, forKey: key) - } else { - try encodeNil(forKey: key) - } - } - ->>>>>>> aefbec1 (config) func encode(_ value: T, forKey key: Key) throws where T: Encodable { var container = nestedSingleValueEncoder(for: key) try container.encode(value) diff --git a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist index 18d1264..94c7ff0 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -6,29 +6,41 @@ Alamofire.xcscheme + isShown + orderHint - 3 + 0 Pods-PowerUp-PowerUpUITests.xcscheme + isShown + orderHint - 5 + 2 Pods-PowerUp.xcscheme + isShown + orderHint - 4 + 1 Pods-PowerUpTests.xcscheme + isShown + orderHint - 6 + 3 SwiftKeychainWrapper.xcscheme + isShown + orderHint - 7 + 4 + SuppressBuildableAutocreation + diff --git a/Pods/Target Support Files/Alamofire/Alamofire-Info.plist b/Pods/Target Support Files/Alamofire/Alamofire-Info.plist index 54f0bcc..b22a6a3 100644 --- a/Pods/Target Support Files/Alamofire/Alamofire-Info.plist +++ b/Pods/Target Support Files/Alamofire/Alamofire-Info.plist @@ -15,11 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString -<<<<<<< HEAD 5.8.0 -======= - 5.8.1 ->>>>>>> aefbec1 (config) CFBundleSignature ???? CFBundleVersion diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index e4c77ff..b6328ba 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -19,6 +19,7 @@ 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A8892ACB5E990054E020 /* LoginViewController.swift */; }; 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A88B2ACB5ED30054E020 /* LoginView.swift */; }; 11433FBE2ABCBCDD005AA716 /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 11433FBD2ABCBCDD005AA716 /* .gitignore */; }; + 334B46292B0B739B009918ED /* UserCreditService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334B46282B0B739B009918ED /* UserCreditService.swift */; }; 334B462B2B0B78F9009918ED /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334B462A2B0B78F9009918ED /* User.swift */; }; 33D0094D2AFECF36004BB2AE /* StripePaymentsUI in Frameworks */ = {isa = PBXBuildFile; productRef = 33D0094C2AFECF36004BB2AE /* StripePaymentsUI */; }; 33E1BD922B02A52700E70B4A /* CheckOutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33E1BD912B02A52700E70B4A /* CheckOutViewController.swift */; }; @@ -88,6 +89,7 @@ 1129A88B2ACB5ED30054E020 /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = ""; }; 11433FBD2ABCBCDD005AA716 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; 2E2C196D951641A7DAA32038 /* Pods_PowerUp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PowerUp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 334B46282B0B739B009918ED /* UserCreditService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserCreditService.swift; sourceTree = ""; }; 334B462A2B0B78F9009918ED /* User.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; 33E1BD912B02A52700E70B4A /* CheckOutViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckOutViewController.swift; sourceTree = ""; }; 33E1BD932B02A54500E70B4A /* CheckOutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckOutView.swift; sourceTree = ""; }; @@ -294,6 +296,7 @@ 858F15502ABB77F1002B64C1 /* Info.plist */, 33E1BD952B02A54E00E70B4A /* Checkout Screen */, 33E1BD9A2B02BEC500E70B4A /* Payment Screen */, + 334B46282B0B739B009918ED /* UserCreditService.swift */, 334B462A2B0B78F9009918ED /* User.swift */, 850037672B102D09009C5E8B /* APIConfigs.swift */, ); @@ -616,6 +619,7 @@ files = ( 111834A72B0ED55A00EB24C4 /* OrderDto.swift in Sources */, 858F16AE2ACA7357002B64C1 /* StoreViewController.swift in Sources */, + 334B46292B0B739B009918ED /* UserCreditService.swift in Sources */, 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, 858F16B32ACB978C002B64C1 /* TimeScreen.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, diff --git a/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist index 97832aa..f6419a4 100644 --- a/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ PowerUp.xcscheme_^#shared#^_ orderHint - 11 + 5 diff --git a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate index f1d4f8b3a01bab6fcd78d73e44449a78f8e591f5..1e51038ea6e79c54e8f31847466c9a9469716139 100644 GIT binary patch literal 57889 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 Lp|Jli2jcz@0VC(9 delta 12474 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 diff --git a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index 1cc9545..0000000 --- a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist index fdcb82e..773784d 100644 --- a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -6,54 +6,45 @@ Promises (Playground) 1.xcscheme + isShown + orderHint - 1 + 5 Promises (Playground) 2.xcscheme + isShown + orderHint - 2 + 6 Promises (Playground) 3.xcscheme - - orderHint - 8 - - Promises (Playground) 4.xcscheme - - orderHint - 9 - - Promises (Playground) 5.xcscheme - - orderHint - 10 - - Promises (Playground) 6.xcscheme isShown orderHint - 12 + 9 - Promises (Playground) 7.xcscheme + Promises (Playground) 4.xcscheme isShown orderHint - 13 + 10 - Promises (Playground) 8.xcscheme + Promises (Playground) 5.xcscheme isShown orderHint - 14 + 11 Promises (Playground).xcscheme + isShown + orderHint - 0 + 4 From d7fb40fc798cda1b3dbc6463bdb2862042d9c9f8 Mon Sep 17 00:00:00 2001 From: Dingbang Chen Date: Thu, 30 Nov 2023 12:38:17 -0500 Subject: [PATCH 61/71] refresh time --- Podfile.lock | 2 ++ Pods/Manifest.lock | 2 +- .../xcschemes/xcschememanagement.plist | 10 +++++----- .../Alamofire/Alamofire-Info.plist | 2 +- PowerUp.xcodeproj/project.pbxproj | 4 ---- .../xcschemes/xcschememanagement.plist | 2 +- .../UserInterfaceState.xcuserstate | Bin 57889 -> 62673 bytes .../xcschemes/xcschememanagement.plist | 6 +++--- PowerUp/Time Screen/TimeViewController.swift | 11 +++++++---- 9 files changed, 20 insertions(+), 19 deletions(-) diff --git a/Podfile.lock b/Podfile.lock index b7d6d9e..f2da3ff 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -15,4 +15,6 @@ SPEC CHECKSUMS: Alamofire: 3ca42e259043ee0dc5c0cdd76c4bc568b8e42af7 SwiftKeychainWrapper: 807ba1d63c33a7d0613288512399cd1eda1e470c +PODFILE CHECKSUM: bf2ff8da615b1d74f26a9300de94dbd2d59b6a33 + COCOAPODS: 1.13.0 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index d550d25..f2da3ff 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -15,6 +15,6 @@ SPEC CHECKSUMS: Alamofire: 3ca42e259043ee0dc5c0cdd76c4bc568b8e42af7 SwiftKeychainWrapper: 807ba1d63c33a7d0613288512399cd1eda1e470c -PODFILE CHECKSUM: e13b91b3f68b840a9773d2bf5a5a8e18a6eb876c +PODFILE CHECKSUM: bf2ff8da615b1d74f26a9300de94dbd2d59b6a33 COCOAPODS: 1.13.0 diff --git a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist index 94c7ff0..0eeaa93 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -9,35 +9,35 @@ isShown orderHint - 0 + 3 Pods-PowerUp-PowerUpUITests.xcscheme isShown orderHint - 2 + 5 Pods-PowerUp.xcscheme isShown orderHint - 1 + 4 Pods-PowerUpTests.xcscheme isShown orderHint - 3 + 6 SwiftKeychainWrapper.xcscheme isShown orderHint - 4 + 7 SuppressBuildableAutocreation diff --git a/Pods/Target Support Files/Alamofire/Alamofire-Info.plist b/Pods/Target Support Files/Alamofire/Alamofire-Info.plist index b22a6a3..d1ca5f0 100644 --- a/Pods/Target Support Files/Alamofire/Alamofire-Info.plist +++ b/Pods/Target Support Files/Alamofire/Alamofire-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 5.8.0 + 5.8.1 CFBundleSignature ???? CFBundleVersion diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index b6328ba..e4c77ff 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -19,7 +19,6 @@ 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A8892ACB5E990054E020 /* LoginViewController.swift */; }; 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A88B2ACB5ED30054E020 /* LoginView.swift */; }; 11433FBE2ABCBCDD005AA716 /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 11433FBD2ABCBCDD005AA716 /* .gitignore */; }; - 334B46292B0B739B009918ED /* UserCreditService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334B46282B0B739B009918ED /* UserCreditService.swift */; }; 334B462B2B0B78F9009918ED /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334B462A2B0B78F9009918ED /* User.swift */; }; 33D0094D2AFECF36004BB2AE /* StripePaymentsUI in Frameworks */ = {isa = PBXBuildFile; productRef = 33D0094C2AFECF36004BB2AE /* StripePaymentsUI */; }; 33E1BD922B02A52700E70B4A /* CheckOutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33E1BD912B02A52700E70B4A /* CheckOutViewController.swift */; }; @@ -89,7 +88,6 @@ 1129A88B2ACB5ED30054E020 /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = ""; }; 11433FBD2ABCBCDD005AA716 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; 2E2C196D951641A7DAA32038 /* Pods_PowerUp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PowerUp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 334B46282B0B739B009918ED /* UserCreditService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserCreditService.swift; sourceTree = ""; }; 334B462A2B0B78F9009918ED /* User.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; 33E1BD912B02A52700E70B4A /* CheckOutViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckOutViewController.swift; sourceTree = ""; }; 33E1BD932B02A54500E70B4A /* CheckOutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckOutView.swift; sourceTree = ""; }; @@ -296,7 +294,6 @@ 858F15502ABB77F1002B64C1 /* Info.plist */, 33E1BD952B02A54E00E70B4A /* Checkout Screen */, 33E1BD9A2B02BEC500E70B4A /* Payment Screen */, - 334B46282B0B739B009918ED /* UserCreditService.swift */, 334B462A2B0B78F9009918ED /* User.swift */, 850037672B102D09009C5E8B /* APIConfigs.swift */, ); @@ -619,7 +616,6 @@ files = ( 111834A72B0ED55A00EB24C4 /* OrderDto.swift in Sources */, 858F16AE2ACA7357002B64C1 /* StoreViewController.swift in Sources */, - 334B46292B0B739B009918ED /* UserCreditService.swift in Sources */, 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, 858F16B32ACB978C002B64C1 /* TimeScreen.swift in Sources */, 858F15432ABB77F0002B64C1 /* AppDelegate.swift in Sources */, diff --git a/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist index f6419a4..cc7bf6a 100644 --- a/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ PowerUp.xcscheme_^#shared#^_ orderHint - 5 + 8 diff --git a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate index 1e51038ea6e79c54e8f31847466c9a9469716139..66f72cc729949cb2a1c077c8c89fc10f6f2c8b07 100644 GIT binary patch literal 62673 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 zć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 literal 57889 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 Lp|Jli2jcz@0VC(9 diff --git a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist index 773784d..af55793 100644 --- a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -9,14 +9,14 @@ isShown orderHint - 5 + 1 Promises (Playground) 2.xcscheme isShown orderHint - 6 + 2 Promises (Playground) 3.xcscheme @@ -44,7 +44,7 @@ isShown orderHint - 4 + 0 diff --git a/PowerUp/Time Screen/TimeViewController.swift b/PowerUp/Time Screen/TimeViewController.swift index 56daa8e..bf946c9 100644 --- a/PowerUp/Time Screen/TimeViewController.swift +++ b/PowerUp/Time Screen/TimeViewController.swift @@ -27,13 +27,16 @@ class TimeViewController: UIViewController, CLLocationManagerDelegate { //MARK: patching the table view delegate and datasource to controller... timeView.tableViewTime.delegate = self timeView.tableViewTime.dataSource = self -// let tapGesture = UITapGestureRecognizer(target: self, action: #selector(bestCafeLabelTapped)) -// timeView.bestCafeLabel.isUserInteractionEnabled = true -// timeView.bestCafeLabel.addGestureRecognizer(tapGesture) + let tapGesture = UITapGestureRecognizer(target: self, action: #selector(bestCafeLabelTapped)) + timeView.bestCafeLabel.isUserInteractionEnabled = true + timeView.bestCafeLabel.addGestureRecognizer(tapGesture) } @objc func bestCafeLabelTapped() { - displayCafes() // This function will present all cafes to the user + retrieveUserActiveOrder() // This function will present all cafes to the user + } + @objc func refreshTapped() { + retrieveUserActiveOrder() } func retrieveUserActiveOrder(){ From 59efa2b4422477ffbe8b157ee84dfa5527949bd8 Mon Sep 17 00:00:00 2001 From: Yucheng Date: Thu, 30 Nov 2023 13:11:30 -0500 Subject: [PATCH 62/71] UI Update --- .DS_Store | Bin 8196 -> 8196 bytes .../UserInterfaceState.xcuserstate | Bin 60147 -> 94904 bytes PowerUp/ProfileScreen/ProfileView.swift | 225 +++++++++++------- .../ProfileScreen/ProfileViewController.swift | 12 +- 4 files changed, 141 insertions(+), 96 deletions(-) diff --git a/.DS_Store b/.DS_Store index b721910abe768282f73d78645aaf80a725b03379..6da18b3202332ce705f4c980375cb497be3132e1 100644 GIT binary patch delta 213 zcmZp1XmOa}FDk^qz`)4BAi%(o%21qAoSc)CpP#d_a2or>2Hwr=94s7+LX#~7WF~JC z6rFrua4(0EsilsBv5C>-B|@*5Sp;1tPZT!d2yfKWZR$Dd2;^u8rMM*J2Hwr=94s8VAQfy3o(#DR zi45t;s(|7^ZA|GvTJJv?FfdH!5s;~8X9!@(XGmd4W5{I4VMv9U3Q^DC2&Cu1)C1W( zsHz$CfO_&7k{Pnm^sPtJ#{$&{cQwR(Mp+453MW?yG;o+0Tk0qnn_5n0613NXn~_qS zoRgHFp99p&02eF^F3QWv&jWdoak7=b0S*&OQym2(a|@u}SImsZ(k8zbG-6Ag7@jU$ zKRHoIW3s;x51R_>`6GYpfLv2%CIyDcg2Gyp9|{X|!hH-95y(k53{K9^EdW^u42?ZN zL7mC}g}B)6G8nC9ub<2>Y=L0vOs*8>Wn`G#F1%u6@dw7u>=NHuCeIU6oop@4gG1F@ FMgWP(i2eWo diff --git a/PowerUp.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate index 924eba3f0f304f50715d122f6dfe52506c92b6d1..bc35cd9a7e0cba75b30f1eaeda7f5583e00cde1e 100644 GIT binary patch literal 94904 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 literal 60147 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 CsKU1Z diff --git a/PowerUp/ProfileScreen/ProfileView.swift b/PowerUp/ProfileScreen/ProfileView.swift index 98ca742..5ec91c3 100644 --- a/PowerUp/ProfileScreen/ProfileView.swift +++ b/PowerUp/ProfileScreen/ProfileView.swift @@ -4,119 +4,164 @@ // // Created by Hank Gu on 11/10/23. // +// ProfileView.swift + +// ProfileView.swift import UIKit class ProfileView: UIView { - var startView: UIView! - let profileImageView = UIImageView() - let nameLabel = UILabel() - let emailLabel = UILabel() - let versionLabel = UILabel() - let signOutButton = UIButton() - let deleteAccountButton = UIButton() - var headLabel: UILabel! - + var midView: UIView! + var profileImageView = UIImageView() + var nameLabel = UILabel() + var uidLabel = UILabel() + var versionLabel = UILabel() + var signOutButton = UIButton() + var deleteAccountButton = UIButton() + var welcomeLabel = UILabel() + var usernameValueLabel: UILabel! + var uidValueLabel: UILabel! + + let customStartBgk = UIColor(red: 0.035 , green: 0.51 , blue: 0.89, alpha: 1.0) + let customButtonColor = UIColor(red: 0.035, green: 0.51, blue: 0.89, alpha: 1.0) + let midBgkColor = UIColor(red: 0.9882, green: 0.9882, blue: 0.9882, alpha: 1.0) + override init(frame: CGRect) { super.init(frame: frame) - setupView() - setupConstraints() + + self.backgroundColor = .white + + setupStartComponent() + setupMidComponent() + setupVariables() + initConstraints() } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } - - private func setupView() { - // Create and style the startView similar to LoginView + + func setupStartComponent() { startView = UIView() - startView.backgroundColor = UIColor(red: 0.035, green: 0.51, blue: 0.89, alpha: 1.0) // Use the same color as in LoginView + startView.backgroundColor = customStartBgk startView.translatesAutoresizingMaskIntoConstraints = false - addSubview(startView) - - backgroundColor = .white - - profileImageView.contentMode = .scaleAspectFill - profileImageView.layer.cornerRadius = 30 - profileImageView.layer.masksToBounds = true - profileImageView.translatesAutoresizingMaskIntoConstraints = false - addSubview(profileImageView) - - nameLabel.font = UIFont.boldSystemFont(ofSize: 24) - nameLabel.translatesAutoresizingMaskIntoConstraints = false - addSubview(nameLabel) - - emailLabel.font = UIFont.systemFont(ofSize: 18) - emailLabel.textColor = .gray - emailLabel.translatesAutoresizingMaskIntoConstraints = false - addSubview(emailLabel) - - versionLabel.font = UIFont.systemFont(ofSize: 18) - versionLabel.textColor = .gray - versionLabel.translatesAutoresizingMaskIntoConstraints = false - addSubview(versionLabel) - - signOutButton.setTitle("Sign Out", for: .normal) - signOutButton.setTitleColor(.red, for: .normal) - signOutButton.translatesAutoresizingMaskIntoConstraints = false - addSubview(signOutButton) - - deleteAccountButton.setTitle("Delete Account", for: .normal) - deleteAccountButton.setTitleColor(.red, for: .normal) - deleteAccountButton.translatesAutoresizingMaskIntoConstraints = false - addSubview(deleteAccountButton) + self.addSubview(startView) } - - func setupVariables(){ - //Sign Up Label - headLabel = UILabel() - headLabel.text = "Welcom" - headLabel.font = UIFont.boldSystemFont(ofSize: 26) - headLabel.textColor = .white - headLabel.translatesAutoresizingMaskIntoConstraints = false - startView.addSubview(headLabel) + + func setupMidComponent() { + midView = UIView() + midView.backgroundColor = midBgkColor + midView.layer.cornerRadius = 10 + midView.layer.shadowColor = UIColor.black.cgColor + midView.layer.shadowOpacity = 0.5 + midView.layer.shadowOffset = CGSize(width: 2, height: 2) + midView.layer.shadowRadius = 4 + midView.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(midView) } - - private func setupConstraints() { - NSLayoutConstraint.activate([ - // Constraints for startView + func initConstraints() { + NSLayoutConstraint.activate([ startView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor), startView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor), - startView.topAnchor.constraint(equalTo: self.topAnchor), - startView.heightAnchor.constraint(equalToConstant: 200), // Set the height as in LoginView - - // Profile Image Constraints - profileImageView.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor, constant: 20), - profileImageView.centerXAnchor.constraint(equalTo: centerXAnchor), - profileImageView.widthAnchor.constraint(equalToConstant: 60), // Adjust size as needed - profileImageView.heightAnchor.constraint(equalToConstant: 60), // Adjust size as needed - - // Name Label Constraints - nameLabel.topAnchor.constraint(equalTo: profileImageView.bottomAnchor, constant: 8), - nameLabel.centerXAnchor.constraint(equalTo: centerXAnchor), + startView.topAnchor.constraint(equalTo: self.topAnchor, constant: 0), + startView.heightAnchor.constraint(equalToConstant: 200), + + midView.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 30), + midView.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -30), + midView.topAnchor.constraint(equalTo: startView.bottomAnchor, constant: -40), + midView.heightAnchor.constraint(equalToConstant: 350), + +welcomeLabel.topAnchor.constraint(equalTo: self.topAnchor, constant: 70), + welcomeLabel.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 16), + welcomeLabel.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -16), - // Email Label Constraints - emailLabel.topAnchor.constraint(equalTo: nameLabel.bottomAnchor, constant: 4), - emailLabel.centerXAnchor.constraint(equalTo: centerXAnchor), + nameLabel.topAnchor.constraint(equalTo: midView.topAnchor, constant: 30), + nameLabel.leadingAnchor.constraint(equalTo: midView.leadingAnchor, constant: 16), + nameLabel.trailingAnchor.constraint(equalTo: midView.trailingAnchor, constant: -16), - // Version Label Constraints (Assuming it's at the top of the general section) - versionLabel.topAnchor.constraint(equalTo: emailLabel.bottomAnchor, constant: 20), // Adjust distance from email label as needed - versionLabel.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 16), - versionLabel.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -16), + // Constraints for usernameValueLabel + usernameValueLabel.topAnchor.constraint(equalTo: nameLabel.bottomAnchor, constant: 5), + usernameValueLabel.leadingAnchor.constraint(equalTo: nameLabel.leadingAnchor), + usernameValueLabel.trailingAnchor.constraint(equalTo: nameLabel.trailingAnchor), - // Sign Out Button Constraints - signOutButton.topAnchor.constraint(equalTo: versionLabel.bottomAnchor, constant: 24), // Adjust for space between sections - signOutButton.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 16), - signOutButton.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -16), - signOutButton.heightAnchor.constraint(equalToConstant: 44), // Standard touchable height + // Constraints for uidLabel + uidLabel.topAnchor.constraint(equalTo: usernameValueLabel.bottomAnchor, constant: 20), + uidLabel.leadingAnchor.constraint(equalTo: nameLabel.leadingAnchor), + uidLabel.trailingAnchor.constraint(equalTo: nameLabel.trailingAnchor), - // Delete Account Button Constraints - deleteAccountButton.topAnchor.constraint(equalTo: signOutButton.bottomAnchor, constant: 12), - deleteAccountButton.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 16), - deleteAccountButton.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -16), - deleteAccountButton.heightAnchor.constraint(equalToConstant: 44) // Standard touchable height + // Constraints for uidValueLabel + uidValueLabel.topAnchor.constraint(equalTo: uidLabel.bottomAnchor, constant: 5), + uidValueLabel.leadingAnchor.constraint(equalTo: nameLabel.leadingAnchor), + uidValueLabel.trailingAnchor.constraint(equalTo: nameLabel.trailingAnchor), + + signOutButton.topAnchor.constraint(equalTo: uidLabel.bottomAnchor, constant: 50), + signOutButton.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 50), + signOutButton.widthAnchor.constraint(equalToConstant: 130), + signOutButton.heightAnchor.constraint(equalToConstant: 45), + + deleteAccountButton.topAnchor.constraint(equalTo: uidLabel.bottomAnchor, constant: 50), + deleteAccountButton.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: -65), + deleteAccountButton.widthAnchor.constraint(equalToConstant: 130), + deleteAccountButton.heightAnchor.constraint(equalToConstant: 45), ]) } + + func setupVariables() { + // Welcome Label + welcomeLabel = UILabel() + welcomeLabel.text = "WELCOME" + welcomeLabel.font = UIFont.boldSystemFont(ofSize: 26) + welcomeLabel.textColor = .white + welcomeLabel.translatesAutoresizingMaskIntoConstraints = false + startView.addSubview(welcomeLabel) + + // Configure Username Label + nameLabel.text = "Username" + nameLabel.textColor = customStartBgk + nameLabel.translatesAutoresizingMaskIntoConstraints = false + midView.addSubview(nameLabel) + + // Configure Username Value Label + usernameValueLabel = UILabel() + usernameValueLabel.font = UIFont.systemFont(ofSize: 18) + usernameValueLabel.textColor = .black + usernameValueLabel.translatesAutoresizingMaskIntoConstraints = false + midView.addSubview(usernameValueLabel) + + /// Configure UID Label + uidLabel.text = "UID" + uidLabel.textColor = customStartBgk + uidLabel.translatesAutoresizingMaskIntoConstraints = false + midView.addSubview(uidLabel) + + // Configure UID Value Label + uidValueLabel = UILabel() + uidValueLabel.font = UIFont.systemFont(ofSize: 18) + uidValueLabel.textColor = .black + uidValueLabel.translatesAutoresizingMaskIntoConstraints = false + midView.addSubview(uidValueLabel) + + + // Sign Out Button + signOutButton = UIButton() + signOutButton.setTitle("Sign Out", for: .normal) + signOutButton.titleLabel?.font = UIFont.systemFont(ofSize: 16) + signOutButton.backgroundColor = customButtonColor + signOutButton.setTitleColor(UIColor.white, for: .normal) + signOutButton.layer.cornerRadius = 12 + signOutButton.translatesAutoresizingMaskIntoConstraints = false + midView.addSubview(signOutButton) + + // Delete Account Button + deleteAccountButton = UIButton() + deleteAccountButton.setTitle("Delete Account", for: .normal) + deleteAccountButton.titleLabel?.font = UIFont.systemFont(ofSize: 16) + deleteAccountButton.backgroundColor = customButtonColor + deleteAccountButton.setTitleColor(UIColor.white, for: .normal) + deleteAccountButton.layer.cornerRadius = 12 + deleteAccountButton.translatesAutoresizingMaskIntoConstraints = false + midView.addSubview(deleteAccountButton) + } } diff --git a/PowerUp/ProfileScreen/ProfileViewController.swift b/PowerUp/ProfileScreen/ProfileViewController.swift index b8b3bfe..8120bb4 100644 --- a/PowerUp/ProfileScreen/ProfileViewController.swift +++ b/PowerUp/ProfileScreen/ProfileViewController.swift @@ -30,14 +30,14 @@ class ProfileViewController: UIViewController { } private func loadUserData() { - if let user = FirebaseAuth.Auth.auth().currentUser { - // Update the UI on the main thread - DispatchQueue.main.async { - self.profileView.emailLabel.text = user.email // User's email - self.profileView.nameLabel.text = "UID: \(user.uid)" // User's UID + if let user = FirebaseAuth.Auth.auth().currentUser { + DispatchQueue.main.async { + // Directly set the text of the labels + self.profileView.usernameValueLabel.text = user.email ?? "Unavailable" + self.profileView.uidValueLabel.text = user.uid + } } } - } @objc func signOut() { From 379aec7ffc1ad35cf73fae22ad1c13dfd8e161b7 Mon Sep 17 00:00:00 2001 From: CliffLi Date: Fri, 1 Dec 2023 20:00:41 +0800 Subject: [PATCH 63/71] Reload time and start page when navigating --- PowerUp/Start Screen/StartScreenController.swift | 9 ++++++++- PowerUp/Time Screen/TimeViewController.swift | 5 +++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/PowerUp/Start Screen/StartScreenController.swift b/PowerUp/Start Screen/StartScreenController.swift index 8f3ed4e..0f1da79 100644 --- a/PowerUp/Start Screen/StartScreenController.swift +++ b/PowerUp/Start Screen/StartScreenController.swift @@ -20,7 +20,13 @@ class StartScreenController: UIViewController, UIImagePickerControllerDelegate, override func loadView() { view = startScreen } - + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + getUserCredit() + } + override func viewDidLoad() { super.viewDidLoad() getUserCredit() @@ -65,6 +71,7 @@ class StartScreenController: UIViewController, UIImagePickerControllerDelegate, dismiss(animated: true, completion: nil) } + // MARK: Activate machine function func showActivateView(){ ActivateMachineController.reload() diff --git a/PowerUp/Time Screen/TimeViewController.swift b/PowerUp/Time Screen/TimeViewController.swift index bf946c9..73c8c4c 100644 --- a/PowerUp/Time Screen/TimeViewController.swift +++ b/PowerUp/Time Screen/TimeViewController.swift @@ -17,6 +17,11 @@ class TimeViewController: UIViewController, CLLocationManagerDelegate { var activeOrders = [OrderDto]() var cafes: [CafeWithDistance] = [] + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + retrieveUserActiveOrder() + } override func viewDidLoad() { super.viewDidLoad() view.addSubview(timeView) From 8d9707afef911d4277466ad5788292087f23b471 Mon Sep 17 00:00:00 2001 From: Nicholas Letarte <110304219+nicholasletarte@users.noreply.github.com> Date: Fri, 1 Dec 2023 12:01:12 -0500 Subject: [PATCH 64/71] Update README.md Updated README.md --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 33e70bf..320629d 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ With our PowerUp app, all this can be accomplished and more! ## Table of Contents - [About The Project](#about-the-project) - [Application Usage](#application-usage) +- [Starting the Application](#starting-the-application) - [Tools Used](#tools-used) ## About The Project @@ -14,6 +15,13 @@ With our PowerUp app, all this can be accomplished and more! Power Up

    +## Starting the Application + +- **First Step**: Download integrated services through the following link and open it with your Java IDE of choice https://github.com/txli299/integratedService +- **Second Step**: Run the YAML file found in integrated services, this will allow the backend database to run +- **Third Step**: Run the 'IntegratedServiceApplication' file on your Java IDE +- **Fourth Step**: Go to 'localhost:8081' on your web browser which will allow you to see the user, machines, and cafe locations + ## Application Usage - Our comprehensive application provides all the tools necessary for an individual to do the following: From 2a5e2ac06afcffc76e7103ee3cec8726859f246f Mon Sep 17 00:00:00 2001 From: jcport1 Date: Fri, 1 Dec 2023 12:52:26 -0500 Subject: [PATCH 65/71] Fixes wallet/order bug --- PowerUp/User.swift | 14 +++++++++++--- PowerUp/WalletView/WalletViewController.swift | 7 ++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/PowerUp/User.swift b/PowerUp/User.swift index 41c9d64..6c40a1c 100644 --- a/PowerUp/User.swift +++ b/PowerUp/User.swift @@ -7,18 +7,26 @@ import Foundation +struct OrderDetails: Codable { + var id: String + var mid: String + var startTime: String + var endTime: String? + var expired: Bool +} + struct User: Codable{ var id: String var uid: String var email: String var credit: Double - var orders: [String]? + var orders: [OrderDetails]? - init(id: String, uid: String,email: String,credit: Double, orders: [String] ) { + init(id: String, uid: String,email: String,credit: Double, orders: [OrderDetails]? = nil ) { self.id = id - self.uid = id + self.uid = uid self.email = email self.credit = credit self.orders = orders diff --git a/PowerUp/WalletView/WalletViewController.swift b/PowerUp/WalletView/WalletViewController.swift index 7491212..b4463cc 100644 --- a/PowerUp/WalletView/WalletViewController.swift +++ b/PowerUp/WalletView/WalletViewController.swift @@ -23,6 +23,11 @@ class WalletViewController: UIViewController { override func loadView() { view = walletView } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + loadCurrentBalance() + } override func viewDidLoad() { super.viewDidLoad() @@ -75,7 +80,7 @@ class WalletViewController: UIViewController { } - func loadCurrentBalance(){ + @objc func loadCurrentBalance(){ UserService.getUserDetails(uid: uid! ){userData, error in From c785fa3229ef26b7ea743d541eb95c22628e92a7 Mon Sep 17 00:00:00 2001 From: Nicholas Letarte <110304219+nicholasletarte@users.noreply.github.com> Date: Sat, 2 Dec 2023 11:33:29 -0500 Subject: [PATCH 66/71] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 320629d..1530793 100644 --- a/README.md +++ b/README.md @@ -18,9 +18,10 @@ With our PowerUp app, all this can be accomplished and more! ## Starting the Application - **First Step**: Download integrated services through the following link and open it with your Java IDE of choice https://github.com/txli299/integratedService -- **Second Step**: Run the YAML file found in integrated services, this will allow the backend database to run -- **Third Step**: Run the 'IntegratedServiceApplication' file on your Java IDE -- **Fourth Step**: Go to 'localhost:8081' on your web browser which will allow you to see the user, machines, and cafe locations +- **Second Step**: Download Docker for your Desktop. This will allow the mongoDB to run on your local machine. +- **Third Step**: Run the YAML file found in integrated services, this will allow the backend database to run. +- **Fourth Step**: Run the 'IntegratedServiceApplication' file on your Java IDE +- **Fifth Step**: Login and begin your cafe adventures! ## Application Usage From 499aedf2b3d772c0aaff3d83dba9489bd5f1b58b Mon Sep 17 00:00:00 2001 From: nicholasletarte Date: Sat, 2 Dec 2023 11:53:43 -0500 Subject: [PATCH 67/71] Updated image --- Images/POWER_UP.jpg | Bin 0 -> 336977 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Images/POWER_UP.jpg diff --git a/Images/POWER_UP.jpg b/Images/POWER_UP.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d57912f8024fb1c6bcdf573979d74f3b5d464cfc GIT binary patch literal 336977 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 z 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


    Qz>?O_p8|Rayqme({F7Lo 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 Le`5^bs=9vxkOM?d literal 0 HcmV?d00001 From c008eaf9e9d89c40d3853c47fbe561e838a4a97e Mon Sep 17 00:00:00 2001 From: Nicholas Letarte <110304219+nicholasletarte@users.noreply.github.com> Date: Sat, 2 Dec 2023 11:55:24 -0500 Subject: [PATCH 68/71] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1530793..9119444 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ With our PowerUp app, all this can be accomplished and more! ## About The Project

    - Power Up + Power Up

    ## Starting the Application From f8400d7a4a614769fdfc12c5bf4df75b0f121776 Mon Sep 17 00:00:00 2001 From: Nicholas Letarte <110304219+nicholasletarte@users.noreply.github.com> Date: Sun, 3 Dec 2023 20:33:59 -0500 Subject: [PATCH 69/71] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9119444..495f051 100644 --- a/README.md +++ b/README.md @@ -37,3 +37,4 @@ With our PowerUp app, all this can be accomplished and more! To create this project we used the following tools: - Swift +- MongoDB From 1f37ac75c74aee8209cdac271e142226bb211fdc Mon Sep 17 00:00:00 2001 From: Yucheng Date: Mon, 4 Dec 2023 21:46:55 -0500 Subject: [PATCH 70/71] Scanning Function Update --- .DS_Store | Bin 8196 -> 8196 bytes .../UserInterfaceState.xcuserstate | Bin 94904 -> 105244 bytes .../Start Screen/StartScreenController.swift | 74 ++++++++++++++++-- 3 files changed, 68 insertions(+), 6 deletions(-) diff --git a/.DS_Store b/.DS_Store index 6da18b3202332ce705f4c980375cb497be3132e1..48bf486ece12236094dadd9ef33f48bd45718654 100644 GIT binary patch delta 60 zcmZp1XmQvOAvoDmKzMVuU>YM+f5K!zVV%kUg}B(}ihjsB);F17*aE@SnOrH%$M|4# Ihj0xK0DA}(D*ylh delta 58 zcmZp1XmQvOA;`$MIa08Kk*R*hWIc@hi& diff --git a/PowerUp.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcworkspace/xcuserdata/cookie-hankie.xcuserdatad/UserInterfaceState.xcuserstate index bc35cd9a7e0cba75b30f1eaeda7f5583e00cde1e..485d05a0b52c524a08bdc62a1fcbe1a85c6e1617 100644 GIT binary patch literal 105244 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 q?j8yX+ITvW+i;|NSRA>i_2A literal 94904 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 diff --git a/PowerUp/Start Screen/StartScreenController.swift b/PowerUp/Start Screen/StartScreenController.swift index 0f1da79..1b8bfdb 100644 --- a/PowerUp/Start Screen/StartScreenController.swift +++ b/PowerUp/Start Screen/StartScreenController.swift @@ -27,6 +27,48 @@ class StartScreenController: UIViewController, UIImagePickerControllerDelegate, getUserCredit() } + // Integrated activeteMachine method + func activeteMachine(mid: String) { + let url = APIConfigs.baseAPI + "machine/activate" + AF.request(url, method:.post, parameters: ["userId": uid!, "mid": mid]) + .responseString(completionHandler: { response in + switch response.result { + case .success(_): + if let statusCode = response.response?.statusCode, statusCode == 200 { + // Show a success alert + let alertController = UIAlertController( + title: "Success", + message: "Machine is successfully activated", + preferredStyle: .alert + ) + + let okAction = UIAlertAction(title: "OK", style: .default, handler: nil) + alertController.addAction(okAction) + + self.present(alertController, animated: true, completion: nil) + } else { + // Show an alert for non-200 status codes + self.showFailureAlert() + } + case .failure(let error): + print("Error: \(error)") + // Show an error alert if the request fails + self.showFailureAlert() + } + }) + } + + // Add a showFailureAlert method to handle failures + func showFailureAlert() { + let alertController = UIAlertController( + title: "Notification", + message: "Features to be developed.", + preferredStyle: .alert + ) + alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) + self.present(alertController, animated: true, completion: nil) + } + override func viewDidLoad() { super.viewDidLoad() getUserCredit() @@ -65,8 +107,9 @@ class StartScreenController: UIViewController, UIImagePickerControllerDelegate, // MARK: - UIImagePickerControllerDelegate func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { - if let pickedImage = info[.originalImage] as? UIImage { - } + // Handle the selected image. For the sake of the demo, we'll just use a fixed machine ID. + let pc2 = "655cfa95a27fe84c6fc0c054" + activeteMachine(mid: pc2) dismiss(animated: true, completion: nil) } @@ -92,10 +135,29 @@ class StartScreenController: UIViewController, UIImagePickerControllerDelegate, //MARK: submit scan button tapped action... - @objc func onButtonScanSubmitTapped(){ - presentImagePicker(sourceType: .camera) - print("Scan Button: I was clicked!") - } + // Updated onButtonScanSubmitTapped method + @objc func onButtonScanSubmitTapped() { + let actionSheet = UIAlertController(title: "Scan SQCode", message: "Choose a method", preferredStyle: .actionSheet) + + // Camera option + let cameraAction = UIAlertAction(title: "Use Camera", style: .default) { [unowned self] _ in + self.presentImagePicker(sourceType: .camera) + } + actionSheet.addAction(cameraAction) + + // Photo Library option + let photoLibraryAction = UIAlertAction(title: "Choose from Photo Library", style: .default) { [unowned self] _ in + self.presentImagePicker(sourceType: .photoLibrary) + } + actionSheet.addAction(photoLibraryAction) + + // Cancel option + let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil) + actionSheet.addAction(cancelAction) + + self.present(actionSheet, animated: true, completion: nil) + } + //MARK: submit type button tapped action... @objc func onButtonTypeSubmitTapped(){ From cbe603e472ce06a2db9439506e0adf9f17247969 Mon Sep 17 00:00:00 2001 From: CliffLi Date: Thu, 7 Dec 2023 00:28:49 +0800 Subject: [PATCH 71/71] Add appIcon --- .../AppIcon.appiconset/1024.png | Bin 0 -> 862428 bytes .../AppIcon.appiconset/Contents.json | 1 + 2 files changed, 1 insertion(+) create mode 100644 PowerUp/Assets.xcassets/AppIcon.appiconset/1024.png diff --git a/PowerUp/Assets.xcassets/AppIcon.appiconset/1024.png b/PowerUp/Assets.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 0000000000000000000000000000000000000000..1f318ae66986edcc3facabbc84241ab6dabe23d1 GIT binary patch literal 862428 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

    cC@n>_!0tX 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ξo0bIe6u{_RL@76r22Bv2U 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

    SI~;9J`Wk~}wV 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

    &Ag|iKUf%Fuo+I0~ogv2_w>p(x#rL0| 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

    HZ(@X9NDP&~QC$$I?V8*nes*8m^YlZcMR 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

    RB@+w@1DmAnVuIDI*Ik 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�Awob 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 iL;Y@W6f(@Oum1-H$}j1Ey}`5q0000

    in1zY?kv#XLMz- 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∾̳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%0D#s5fK^s36Ya0!AnROnLLuC$G>Z69sH}la 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�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

    l{~Im#f)agFk^W>PN{P)(Z`i>xdg(XfCay~ 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 literal 0 HcmV?d00001 diff --git a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..bd4e863 --- /dev/null +++ b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,30 @@ + + + + + SchemeUserState + + Promises (Playground) 1.xcscheme + + isShown + + orderHint + 6 + + Promises (Playground) 2.xcscheme + + isShown + + orderHint + 7 + + Promises (Playground).xcscheme + + isShown + + orderHint + 5 + + + + diff --git a/PowerUp/Store Screen/Data Models/Cafe.swift b/PowerUp/DataModels/Cafe.swift similarity index 100% rename from PowerUp/Store Screen/Data Models/Cafe.swift rename to PowerUp/DataModels/Cafe.swift diff --git a/PowerUp/Store Screen/Data Models/CafeWithDistance.swift b/PowerUp/DataModels/CafeWithDistance.swift similarity index 100% rename from PowerUp/Store Screen/Data Models/CafeWithDistance.swift rename to PowerUp/DataModels/CafeWithDistance.swift diff --git a/PowerUp/Store Screen/Data Models/Coordinate.swift b/PowerUp/DataModels/Coordinate.swift similarity index 100% rename from PowerUp/Store Screen/Data Models/Coordinate.swift rename to PowerUp/DataModels/Coordinate.swift diff --git a/PowerUp/Store Screen/Data Models/Machine.swift b/PowerUp/DataModels/Machine.swift similarity index 100% rename from PowerUp/Store Screen/Data Models/Machine.swift rename to PowerUp/DataModels/Machine.swift From ab58c54464f06878e8caa89af4d71cb1e482104d Mon Sep 17 00:00:00 2001 From: Dingbang Chen Date: Mon, 20 Nov 2023 17:45:54 -0500 Subject: [PATCH 49/71] pod --- .DS_Store | Bin 8196 -> 8196 bytes .../xcschemes/xcschememanagement.plist | 8 ++++---- .../xcschemes/xcschememanagement.plist | 2 +- .../UserInterfaceState.xcuserstate | Bin 25081 -> 30866 bytes 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.DS_Store b/.DS_Store index 83e7098ff6c07f24c2a6fa73fadb20c442e2bbd3..b721910abe768282f73d78645aaf80a725b03379 100644 GIT binary patch delta 365 zcmZp1XmOa}FDl8vz`)4BAi%(o%24c?lb@WFlb^J)a2or>2Hwr=94s8VAQfy3o(#DR zi45t;s(|7^ZA|GvTJJv?FfdH!5s;~8X9!@(XGmd4W5{I4VMv9U3Q^DC2&Cu1)C1W( zsHz$CfO_&7k{Pnm^sPtJ#{$&{cQwR(Mp+453MW?yG;o+0Tk0qnn_5n0613NXn~_qS zoRgHFp99p&02eF^F3QWv&jWdoak7=b0S*&OQym2(bBoPPf(IEVKNJ?`gnMMNps?2F f!$LWX8;d_MZf2MG&N6wPkm_V>;V&DD-!cLKFcxT5 delta 87 zcmV-d0I2_jK!iY$PZbgX0003101yBGWdL(zb7O2`Z*Od|ah3;>fDN+;2m}ZL5|cO( t9FwvU6_ei)y$CWjIV>PEG%~ZK62Sqps}yVjvo8$T1G5Jh_XM$d1_KiV8HxY^ diff --git a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist index 25266b4..1c6c56f 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,22 +7,22 @@ Pods-PowerUp-PowerUpUITests.xcscheme_^#shared#^_ orderHint - 2 + 4 Pods-PowerUp.xcscheme_^#shared#^_ orderHint - 3 + 2 Pods-PowerUpTests.xcscheme_^#shared#^_ orderHint - 4 + 3 SwiftKeychainWrapper.xcscheme_^#shared#^_ orderHint - 0 + 1 diff --git a/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist index b8fe048..2c9e80a 100644 --- a/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ PowerUp.xcscheme_^#shared#^_ orderHint - 1 + 0 diff --git a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate index 901872caa7b4157ecb3e289ecacfc9b38c964fa2..ff7c7b328d87172b85bc5eba43a4c36e4a57a107 100644 GIT binary patch delta 15266 zcmbul2V7Iv`v-i_xf2`&Wd*_tkN^R~2oR8|Y{G^x!Vn=U)`5rvSI)6&U3Eq49^l4W ztG2aOTea3&t+f?LwQj4mu3A@zw)Q=j5Ig_B_x*fc_=FqoS@-*Vzvp?LbME=|5LoyS z%&!H@7YwLMUP7&*)>5rh8}$~ooqC(vLG7g8r#_(ePIBt6ouW=t z-%uB*%hYx1Tk1A-hk8Ukrk*SWQj;fe2R^_T_<;Zr4B|loNCZhB8T1AHKnl=-9FPn2 zU?6A$qd*HV0R%9Z24;d;U^bWs7JwySDOd^Cf>y8rYysQB+h7-X2fPcu04Kng;45$v zbbwRfG&lp!g0H~^a2}pM7z`8w47GZO4^?eqC@F0I+Bi}W9dS=h%Tl}Xgys@m(k^P z1#O@!>HhQ}dKf*N9z&0%$I*z!^elP-y_8-_ucBM&HhLYs$wY6Z-=yEBchK+BU(hG$ zFX^x7lXM4tiat%Bq0iD^(--LL^!M~_`XT*@eoQ~1f1`hA0K+mp8AnFOcrm_=KNG|R zGhs|7lf`5+Iwpt7W%8JOrhqAAikMQSnyF!o%s^&1GlCh*jAL4uNz7zs8Z(EP&zKf5 zOPQ6-DyEg$#B64^F}s=fnGcvf%wA?6^C@$L`HVTuoMFx~Uo+>J8_Z4SJLVSiJ@Xs$ zJM)71gQZx&LY8J3)|TzYN?2Fcjg_$qR>}Ia0c<}ug-vDC*mO37&1AFKY*xqSu(@m* zTh3On2G+<9G_ix&SJ>g~NVb`s$WCH0JB^*e&SmGZ3)!XYTkKAD7rUE%pWVlP$R1=r zW+<0yRH<6pfVQvOD zmz&2e;g)i1xmNB2ZV$JY+sA##eZ=kO4sZv#kGVtK5$*(cnmfZ?;x2PnxLe%!JjDYZ z@-)xzEYI;gFYq?JE#H%OBD4|&xEsPPy3gd(p zVVW>qcuklg%oJt`vxParLSdz_N?0wd5!MQ=!dBr;;cej^;S=Go@TqV__)Pd*I4*o8 zoE5$iE(y0d;jVB`_|d$RNd(h(Jz{nO7#(Wf$PMVx52c_Cl!>yD9m+L3@<;7zsQy$f z@LK?F zP^lxLV-k{6(zA05^=4b!3ZL%Uuv-TtR0l8gc3fv`>tHBu7-sY;s%tVDhf8caoL!{$ z=4-ti%=2t}`E*b4y;MtTy1A2@va0;15d#~B8oTNW9iCp^FY9`APq^;XlhpO;PU`wr zl-3R%YHZdw7{_)fl>RTP*>_J&xYM@OqisiNS^3MV4&CFIdig~pAD-TQ#J}xCw57d*Bb)lSCyM^n!j+3)5jfEQF>~ z5_|^3VGzN2a1mSz+em=f1CPQE5>37#apW3&Leq42+MaeK@xqr5pyTLl5+SNcOsJ!W z(xXW{5Tn5y5)a<6;D*3*r3Q9gyDs#*9R%4VY92MeMxsa^*En=UlX-FX3q<}Z=cUvN zDyWTGMlDBb6xv4BP^-xF2s6*?QDD{zLCSU1W-4eswVv8QZKO7#2&6%gC~7^mg=!~8 zdJ{#XSkwn4nnQaw*zKa;rJP!+caXM~dJn~zC-!pRb-3qZXt$60NG$je#kErVQ9LQ| zW)D%bsl(=Z_Ff>t{I-1&+g+<%)64AEyUO_#)r0Cu*-@Vn>yuVTQBo`QIZEzq^(AR_ zva?lRYpb^}lUBp+&QM=dL9NtTl-f$2Luuxvy@N6?QkT}EbPM_`)Yaum2(PF#x2W^qm-?}ee}no??C~bbGIw_f?s=E`LA2C8>ORt;9CNxuj`1k~ zRM1xHC+cVF7wT8)8TFj{jryH>LHz+Jl!x+B0V+gAs2G(XJt{?IsC+AcL`Mu@0S9;> z02}hH8|aQIP$jBD)u;yb$DjlQ@*RT)k|>E@%F)l<%`wYNJ9(Q2IVO4Arx*u}9yEx| zY2vdw{X%t4?YM?v4dadVMa{L%M)L;8m>#EqD{!OifQ+PP9_GqWrAY!L6f$&L19$;% zLvB&#@OtC8{MzQhZ9qb9iy>fKd{X{B;rn6hKJ@tzCJOVTV+MFOA(rr9yM3WFgBT%JzmsA_o3`*94(O?W1i$p#97kUMS$koZMgLJWqII1-jjfD52 z=B9?>gOCYLu93u&;?P4hu|Zy z9~?lhp&4i8Rbh*~VVya-Cx6B~B^5-VDMTdW%W7ThFW1>8W3TETZ{vDsdwZ~=F~ zeafi~+y(d08)!)z_yIgXOVKj3x2InicnV6^q86XTA1(e=BC~e&4E!#(dJcX=tI+B; z@BsXPmZ7EQv7YYk3}kC04w)&bsr3yco@J28Goq;_v)MST4RYoko^Gap$QBBq2HL`I zU;yj^djca`PbB*mY9*5W6utQm$wGVB%PLvaj@qnp?KA*%AqId_=nCDS46Q>O&}Ovd zrDn-EqQ2HMqQJ~~ULK{LnuNa4kKEpfHlgOfM_}Sf{-xSKZ@tuNmpWm%s7|yMO*9|( znqdD@BQOS0=vB1Me8Ov7rNy7XIG9c}0pno;OoT}=8TN(!U6H&k#w5LlHaDZr& zI#@4$&|b8!^V1@+ll1Ol6TSk65n;fg=%ZFR9PRHE25f?(MT+miX0!wyAQZ!~gyMtd znLbL>WQaTIhltRB_+=ULtG3QfopJb}=D{U(wF8Z#{^h6O3_|!UIGYguI-CpVq0b57 zU!%_m;rG!QboOsP3NC;PUlM)_9VLWEcRDBw<4Z+!%iwaj0-DR$Dk<4>yp46X;9S{P*1TPkvuIs;*n`txoxLi0ZNWE-UrBI;lTR zsK4sl@)zoNby9!Y{D~}D4?l#TiKKr7_rnA5Ap95}f}g;{@KbmMokQo*H|PSoh%TYa z=nA@uuC>FXU8H{jPXL;bev*)Wy^Hjl=ni>~9_Vf-=}GX4NcvUut(Ej|MYH(9o8pHE z`$p%dMdDzk{4ONZz7^g>-?hRY&@GX26MO`pS}1=)DF0rh^=Cr)?SIi~@4VAzf0s|N zcKAC@StRiXk;J|KyKRlcu5NTw6LH_V5p}iA4I_qIODbEiCX?rNkaeMYN3NW`~KxW)IwVv#WPF5BGGfG zF;=Zso6mctnEukc`Y+$DkMq*0(BYlRde&urx(}U3v_&%IcshYjq?71mx-Z?2PN7rL z@8|{k0|N>JlB+`uXbcz(SPZy!I^7~MI@=;K+9i)tV8B~MhJlSmWf=7Alvy%eMPx>k z{7mT58C^^4OMw1&#Gwb%Lx{>~lI_^G(yw69jp$5i8bLP^snCt!9wzzUk~Vr2cz{6< zBDH_|4|{Hx6<`ZJu~T341hfhRJ0dW86j~-W`)4Dop8k~66e6do^fV%;DfA3znumb{ znu>u32KHzT`3D2{e~M~0J;y344BRm2^>A^j1(pFV(rCk9>^ zcw->Pzy||g4E!)4%28tA-%fXBF!ZPN5z%qcB!j^qz$z*g2BD(w!XOOU?J9CF1j)3R z$k6982(;?ze`YfDx3rka&^Is$YNfx!AXwB@=^eT=mAOaXLrX9S5he0Kl!*FY60w&g z`dC+rR=7{;Un~OqSrl0KpRLVU)!Rg}e)3!-5Q{;d|5l^bsr^lS|F_tf03xLb&t58X?BD#Y}cbrxe{(4PcW zVxa#!fzw3-Ut?x4GnrW!lwweZK{*B$|9=R~M%M7fEVH-^!~a(T+nDua`OmDwpt_aW zfI*Ep%gHUC*+N}vW7?Um7?73vz?W-Z<}GF?<+P63&b-a+z<`*100wpIm|c{Dc^89v zWQWO8bcIuviTRK@_+K@NzhFMWV31gIF!CcQ0$Dv+m-@*~MzX9Oa}(TF&Kr8V=xf~mFbKFn+J#+iRFb2g9dkQ z9aQLQTSkm-7B}^3B#vanmzxTmLyO~Dhda+)7Ki(WxxidxE@3bNgGLNSV$ignEYN81 zfMjMph;^5lLxZQNncK`GDrhrvhq=q#W9~CQFb|j?nTHrOV=x+nF&K=+U>pW57>vhY z!miekWkA|B6w9(au|3OSFsYRlFqqtFd$v2VJ==rriGc}&DKBl$+Ov-TVNuqJQm`Z* zATtG3>RUzc$YRz0TgT=TSNe{ z`D_78oTeFrMHnnz#}>0CtR9OYkWAq=^VIO!erzS%p9)&XR)Ohk4F*dPpV=N6GI zVPhLRltLYyEk>|I#G1Bq%W5WyH9K!MS#Ao?)FJPYn^vohX2+2YA9f6wj=^d)rj2c3 zi4utSZzY>v(Gea_WUqpq%$itKP99=Z=T-#Um80Pp89CMQ&t`iqx8JOhj3U{P!K{wz<@&FLnmu5t^_KZz)SzB}Ha={* z{We*>xBR8gW0u=HYb3Ru8%`fY%j(!K*mETCu_xFs*{|4>YzKRaJ~t!RHtp$ACEO6BvAn!B-fZZ0CpzqR569r?6~zae*TE4lDT6 zmMt#~&RNzVoR*;HVlX(>g`SHe=!p~l?==Y5k4q)!xfBe}v~p<}oE6baxhyWHGZWx+ zVkYo43H4oDSOkoeE8_GPtR*7W^M5O?=PJ2DBGf9bnycaZbG6(6u8yncjNCvBE?{sG zgG(4(#^4GDS24JT!F3G2#o$IeH@FMxP)p{+HHuJgTA|*0nfX|j_5HZXB39z@zq4YU zA~O9SnU9sEncQp-$34SLgfZe-H0DE?s z0QT-QK@#7Mn1Jt&VUI2o@OJ;p1iTaPLQKFrV`$gPOEEM{R7zLgo%iar0PjgG0PP7F zUQR3kdznKMU0r!4AJ~bN4-m0B{H0i&%X}!`hhXKy_;5ag*YJ^i6d%oN`4~PHLnjQ$ zSS}cnv0O29!%&8yJBA(@dbaa%7OZ@d1uLH-V)e3Om0PhYEOhgQBGw`dy{%aF{}XE! zUn63z#?Ysg?~kExrzhj<`9T)214XcYe@ElW591pxU`L2xm47d;KH}MF=01N{$RACr|VK9av7^*Q0#V`!R@OFMm7ue~RU0HsX2sXkBHqx>$ zi(yO`Sh7{w$`cMWRQ*>PXF8)0W)^|m$u>@<^wrwY``}iXw)DQWO`2G9={viJ`e~ABtKg@rM zVH}3>7$#tth+z_j$r$#I;ojlziE!^?nAOUYJRsY`?L+>Fh1x8$YDOCb|P zuKY9J@*;vKFCs9^{d;kpKnpzyV1W@>ffIN^5Nrfnp_|ZM=z(EAh6NZFVo3B?jA03e zdJIc3EW@z8U9htN7J6F%3(g|o3M=4BE8zYXZUsLASRgeFU4Vsv|0QH0R0t8`Sl&y> z6tcx`voNe{6?7QZn>S>7HV6emCFRsE6beN`u}~uDg;JqRC>JUO1BL@J9E9Ou3>z>U zg5fI|4#jX7hQl!&(M~CZYS9ittuR2S6Y2${Fi=d$8$~-{I1&6^8lCass6%BONV-+TyP5Xn*Y2$D?#%UdPkq;QJl>EgXs;WUW^U9YQ!ugS($ zXH9Y-faG<;1SW->Lz*y*=3(AT!%e{8=zj?fO<|6c=!f-6T_wCr7?Nw+nEqc z#8;leozB!3F8QD7wD7=EYZ=MKr-(;Rq?DWrqQaIn^i(BP&A!2|B#VF@@0;V;Yzu3a^|dxBwn>7=`wPI zI1@Q%_7QiBoD<992lAMo!ncy+UE7Io`-K0L|BOGzn~w7*_^(zrPx+tuU-{=kPr;iU;K~px$&oD+IfS)V*e1M3SluJ+6Fwpbua1&~S6>KU5(7W6 z5o}y-l5BEp^fqNS6*iSN)i#4{8f;#%8D=xWW~9vwo0T^2+I(em$>y@n6`N}|cWj>8 zyfE2zvz6FNZ8f&Zwkfu0wwboswmG(gZAaS9wViLf&@S38$*#e!(QcXD3kffAm-tH3 zCB>3*i9u2&86c^b43rF(%$K|?xghyo@=)?v@>KG(d@bz!C|_?42M~ciHprEnOD%tu=I%ZnDn^RbV7Pwdf%0HwRd%Qjdx9S)wve97P*$V zR=8HWR=f6h9ql^9b%E#y!bB%U$Q5 z>z?nv%YC1Fhx^y=_uYT;03Ngl>yhG-<5BKW?J>k-l*ek1bsi@?E_i(F@xbGu$77GD zo@Ji3o`XDxdQS1&>ABzYwC7pRbDrOLUi36w_PpwO-SdX$cb?yS{_gpQ7x1FJSTEko z#;coG4=+0}d#~PJpAl9g)q9=y0q-xoJG@VOpY^`reaZWZ_ciYyy?^umLoUc|BawoZu z+}|V*ln2SfA1&$iyU=%&?-t*!zT14a`|j}F<@>JhZr=}l z_xgV2+u?iK_pI+Z-*0>``d;?E>U-VyhVOTNw4dBB&2O;Z9KW4@XZ@Zk928-SSVg=d zQIV|3QWPml6s3xCg+WoJs8Q4^hAT!YMk&T9#wo@tmMGRMwkWnLwkdWh-ch`#cwceE zq&TKHr8uLwuDGSRt+=cBQSnIeMDdf7Rd!PbDMOT@%5bGd8Ku-JW0i5r5@o5fTxn2N zDQlFq$|1^8%F)WP$`<7W6aoDL1_VqG*c@;?;8CDcU}Ru%;K;!7fs+DF zfjDqhpgC}H;F7>)fhz)61+EEvGjMz0j=*;U-wS*{@J!(Kz*~X01Mdd@82BjgN#IW= z6{`|d_9_pRkIGM_R0XL*RH3SHRkEr`)vOw$8mAhsny8wrLaHgMsj5|~HL6zCI@Jc% zCe;?zPSsx3hpPRmgQ`QS!>SI|Y1LWPIn_PYud3&&-&KDEbqned5g&@VyHgI)xKU?!Lkwhi_S zmIwO=D}w!lRl&i*>fo?oO>k7OHn=3XIe2OCp5V(NOo)F-ddR?#S3~B6%nMlcF2bz2SN^od>V2zhCa)i&yGYFD+pNgYVu z?}n*0>KJt&b%Hucou_V8k5Z3Tk5f-jPf{cGtLka$)#_IDdi6&2W_7#zP4&C#kJJa% zpQw+hkExHV&#N!0FRQPr{|N0KY8Too)FD(J>Khss8W9>98XcMvnjV@NnjKmc+CQ`| z)EGJ_^lIq+&WI1sqbXu=#IT4F z5ls=z5wAwfiI^9$Fk(@}s)+X^_C|aZaV6q<#Epns5qBc)MLdXj6!ApULnG1j);MaM zHByb6##a-p3DrbsqBJp@KAH?owkAiDr>WG`Xa;ENH6t~nG@~_RHB&XOX=Z9>Ys{Lp znsu5DnoXK_G)FbZHD78vG^R6}bD9g9%bIJN8=701-!y+jf=D`&jT9ogMfQlai|iHY z5a|>d5m^{HCUR-yzR2rQT$Eo_N>pvskf>o%jZsZe6QZU@O^=!xH9Kl<)cmN0QEQ^w zqBcZrj@lZvE$Ud**HIUvE=OI9`Y!7GsJl`3qkfCFiS8LKiS8Zk673r8Zi@Dd4vCJ7 zPK~aL9uPe~dQS9)=*`hvqqjwGkKPfzD|%n_;poqzKaV~UeKPt~^wsEZqi;svihdIP zbM&+5-?TQ`ZrUDNJFQIXsrAzMN~7h*2OT#5NT)-^UhRv%jz+Z;PKc6{ulSQPte?DW`~v2$Wq#jc5MHN~!r-4MGe zc1!Hm*ln@fV=wjT(I>V~L!U)`KI!vQoL^jcTx6U!u1{P-TvA+dTvgnFIAh%4xFK<4 z<0i-9xT$fk#m$Xd5ND2iBW`J2Yg~KW?zoTQ4#s^FcO>pa+{w68acASs#a)lP8&Ade zi1&?G#s|g+$A`v8#7D))#K*-a#+&-ar^Z*t*TfHqH^vW+9}+(-zA=7O{OI^`@e|@F z#V?3|D}HZ$NBr#sSwcuccEYd(Q^N9uO$l!$>_~VgVRynu2?rBCNjQ>lG~rI7JTW`5 zEU_kWKw^F3pv2*cBNLkw$0oKUE=hbVad+bW#Lp5xPduG?A@OSB?ZiikPZM7x@kzF( zBB<~{N#nni<6foFHhc-yeD~I^8VzHlMg3Xr;@)*zMXt8 z`9bodg&+gx$pSCrq}w;>^r;f+Qi4y9iG~l+LYRyIySW>bwcW-RFpa;b!uvB>Vec7X|R+m!Yw?Md2CX}_dBOZzR|CcS&QU3#x{$8_g(O?q;AT6$)Bc6xq#VR}h=Y5KtQ z5$TQTP3flesp-?xXQt0hUyyE2U!1-^eMkDI=||I#r+=B=k$xuqT>6Fd%jwtBZ>0a4 z{#*Ks3@QU=uo--YO-8qjo*9yiUK#3)+>EA-MH%mBm@a3+Oz+I3%&N?RnGKmkGlyr6 z%|w|~GN)!v&zzAtD|1Qa^2}A4YctnnZpi#N^UKWBnP)T4XI{>{nt46*M&{!zDvQnH zvuv~Mvh1^ZXE|p1W`$*?Wo2gRvhuPDvr4kcvJ6?(S+!a9SuI%;vnFSutSMR3vSwt> z%9@ikFKdA*%bfLg)|Xk2vmLWzvTL$m&2Gy+n0-0>R`#9j``Hh&f6)OQt>bipuA8oh z&Q<5G^V0d~6gq!hs;*F1sw>x3>S}fMxCWoT>n`f9=&tK->b}?A&7pGW95#o~G1=sF&*_;X$?28jnB$xy&56n>$!W=1 zk+VPNX0A=He{OnieeST_#@tc4qjM+czLq;PcXsaUx$|-t#6a*9m6{ris3UUh!1^o*K6c`JJ z6bvmGQ82Oq6-+6ZSFotyje=zbs|(f^tSi`1@J_+O0@K-o^92_Rt`uA^xLNRh!QFx% z3LX|bDYPlcu4WE;>O}p#bb(R7tbx8 zU%aq*QSp-EWyLFsR~4@YpkY241*GKB3^~L&H{Xl(#{uOEF{I(x1~`&|lVH)8EkF(%;eF*Z-)0tpBOBTWQZyNolWAhf?QKX{lSOd#P8c zywtZexwL=j)Y6Tm$4Y-Jb0~`_D=ZsPHm+^TvZ-i9#@`O zUR_>WUSB?_d`S7Q^2YK}jl&*Oa%GuPfhJzPY@;{7CtC z6}A;Y75NooDwbD#P;su}X~hczFfazrU}tbKxEf>z4}+J%BsZuH;f6?q*3icgZ>TT~ zG7L40FpM;eF|-&a8YUZFH!L@-F|-=i8@3qUG;BBQFdQ&^Vfe~$%5c_j-f+Qi+wjov zqOy0TQ>C<0R_R$Ouk@?*uT)irREAZiRc2IXSLRgaRTfs3RF+j5Dyu7NE9)wUS5B*3 zUAepRSmiZSqm19+KRbo{^)xxT!Rc}?jTXmr7i>k9#=c_JOU8%ZWb+_t=s)toi zs(!BewYpbzaCJuYglb$pvwC**qUsgZtE*e9*H>?>-c`M)`oro2)rYE&Rew?aRrRUr zGu1C@f@;cYYHR9h8f(VZjIWtggKA!@nOQTZW?s#Lnx!?ZHKr|f@7L|E`=qX;?tIVB`M>gjr}-lo2Ly|mt~-o4(d-lyKLURfVdpIbkwepUUE`mgHG*I%sv!zdWL z8G9J*j54FA(c9>2R2l<};l@Z~v@yom*VxaPYRolO8T%Ut80(FLj19)2#^J_B<0PZW ih>cT?&j#{}fi?rX4eZ%@nt+1Paupt0uGYT;=l?%}fClCO delta 12158 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 E4 Date: Thu, 23 Nov 2023 01:37:49 -0500 Subject: [PATCH 50/71] time screen --- Podfile | 1 + Podfile.lock | 6 +- Pods/Alamofire/LICENSE | 19 + Pods/Alamofire/README.md | 227 ++ Pods/Alamofire/Source/AFError.swift | 874 +++++++ Pods/Alamofire/Source/Alamofire.swift | 40 + Pods/Alamofire/Source/AlamofireExtended.swift | 61 + .../Source/AuthenticationInterceptor.swift | 403 ++++ .../Source/CachedResponseHandler.swift | 107 + Pods/Alamofire/Source/Combine.swift | 655 ++++++ Pods/Alamofire/Source/Concurrency.swift | 832 +++++++ .../Source/DispatchQueue+Alamofire.swift | 37 + Pods/Alamofire/Source/EventMonitor.swift | 907 ++++++++ Pods/Alamofire/Source/HTTPHeaders.swift | 452 ++++ Pods/Alamofire/Source/HTTPMethod.swift | 56 + Pods/Alamofire/Source/MultipartFormData.swift | 601 +++++ Pods/Alamofire/Source/MultipartUpload.swift | 89 + .../Source/NetworkReachabilityManager.swift | 301 +++ Pods/Alamofire/Source/Notifications.swift | 115 + .../Source/OperationQueue+Alamofire.swift | 49 + Pods/Alamofire/Source/ParameterEncoder.swift | 213 ++ Pods/Alamofire/Source/ParameterEncoding.swift | 346 +++ Pods/Alamofire/Source/Protected.swift | 161 ++ Pods/Alamofire/Source/RedirectHandler.swift | 111 + Pods/Alamofire/Source/Request.swift | 2070 +++++++++++++++++ .../Alamofire/Source/RequestCompression.swift | 153 ++ .../Alamofire/Source/RequestInterceptor.swift | 351 +++ Pods/Alamofire/Source/RequestTaskMap.swift | 149 ++ Pods/Alamofire/Source/Response.swift | 453 ++++ .../Source/ResponseSerialization.swift | 1270 ++++++++++ Pods/Alamofire/Source/Result+Alamofire.swift | 120 + Pods/Alamofire/Source/RetryPolicy.swift | 430 ++++ .../Source/ServerTrustEvaluation.swift | 772 ++++++ Pods/Alamofire/Source/Session.swift | 1264 ++++++++++ Pods/Alamofire/Source/SessionDelegate.swift | 355 +++ .../Source/StringEncoding+Alamofire.swift | 55 + ...URLConvertible+URLRequestConvertible.swift | 105 + .../Source/URLEncodedFormEncoder.swift | 1083 +++++++++ .../Source/URLRequest+Alamofire.swift | 39 + .../URLSessionConfiguration+Alamofire.swift | 46 + Pods/Alamofire/Source/Validation.swift | 302 +++ Pods/Manifest.lock | 6 +- Pods/Pods.xcodeproj/project.pbxproj | 683 ++++-- .../xcschemes/Alamofire.xcscheme | 58 + .../Pods-PowerUp-PowerUpUITests.xcscheme | 58 + .../xcschemes/Pods-PowerUp.xcscheme | 58 + .../xcschemes/Pods-PowerUpTests.xcscheme | 58 + .../xcschemes/SwiftKeychainWrapper.xcscheme | 58 + .../xcschemes/xcschememanagement.plist | 29 +- .../Alamofire/Alamofire-Info.plist | 26 + .../Alamofire/Alamofire-dummy.m | 5 + .../Alamofire/Alamofire-prefix.pch | 12 + .../Alamofire/Alamofire-umbrella.h | 16 + .../Alamofire/Alamofire.debug.xcconfig | 15 + .../Alamofire/Alamofire.modulemap | 6 + .../Alamofire/Alamofire.release.xcconfig | 15 + ...p-PowerUpUITests-acknowledgements.markdown | 23 + ...erUp-PowerUpUITests-acknowledgements.plist | 29 + ...ts-frameworks-Debug-input-files.xcfilelist | 1 + ...s-frameworks-Debug-output-files.xcfilelist | 1 + ...-frameworks-Release-input-files.xcfilelist | 1 + ...frameworks-Release-output-files.xcfilelist | 1 + .../Pods-PowerUp-PowerUpUITests-frameworks.sh | 2 + ...Pods-PowerUp-PowerUpUITests.debug.xcconfig | 6 +- ...ds-PowerUp-PowerUpUITests.release.xcconfig | 6 +- .../Pods-PowerUp-acknowledgements.markdown | 23 + .../Pods-PowerUp-acknowledgements.plist | 29 + ...Up-frameworks-Debug-input-files.xcfilelist | 1 + ...p-frameworks-Debug-output-files.xcfilelist | 1 + ...-frameworks-Release-input-files.xcfilelist | 1 + ...frameworks-Release-output-files.xcfilelist | 1 + .../Pods-PowerUp/Pods-PowerUp-frameworks.sh | 2 + .../Pods-PowerUp/Pods-PowerUp.debug.xcconfig | 6 +- .../Pods-PowerUp.release.xcconfig | 6 +- .../Pods-PowerUpTests.debug.xcconfig | 6 +- .../Pods-PowerUpTests.release.xcconfig | 6 +- PowerUp.xcodeproj/project.pbxproj | 8 + .../xcschemes/xcschememanagement.plist | 2 +- .../UserInterfaceState.xcuserstate | Bin 30866 -> 57889 bytes .../xcschemes/xcschememanagement.plist | 27 +- PowerUp/DataModels/OrderDto.swift | 15 + PowerUp/Time Screen/TimeScreen.swift | 98 +- PowerUp/Time Screen/TimeTableViewCell.swift | 117 + PowerUp/Time Screen/TimeViewController.swift | 176 +- 84 files changed, 17105 insertions(+), 273 deletions(-) create mode 100644 Pods/Alamofire/LICENSE create mode 100644 Pods/Alamofire/README.md create mode 100644 Pods/Alamofire/Source/AFError.swift create mode 100644 Pods/Alamofire/Source/Alamofire.swift create mode 100644 Pods/Alamofire/Source/AlamofireExtended.swift create mode 100644 Pods/Alamofire/Source/AuthenticationInterceptor.swift create mode 100644 Pods/Alamofire/Source/CachedResponseHandler.swift create mode 100644 Pods/Alamofire/Source/Combine.swift create mode 100644 Pods/Alamofire/Source/Concurrency.swift create mode 100644 Pods/Alamofire/Source/DispatchQueue+Alamofire.swift create mode 100644 Pods/Alamofire/Source/EventMonitor.swift create mode 100644 Pods/Alamofire/Source/HTTPHeaders.swift create mode 100644 Pods/Alamofire/Source/HTTPMethod.swift create mode 100644 Pods/Alamofire/Source/MultipartFormData.swift create mode 100644 Pods/Alamofire/Source/MultipartUpload.swift create mode 100644 Pods/Alamofire/Source/NetworkReachabilityManager.swift create mode 100644 Pods/Alamofire/Source/Notifications.swift create mode 100644 Pods/Alamofire/Source/OperationQueue+Alamofire.swift create mode 100644 Pods/Alamofire/Source/ParameterEncoder.swift create mode 100644 Pods/Alamofire/Source/ParameterEncoding.swift create mode 100644 Pods/Alamofire/Source/Protected.swift create mode 100644 Pods/Alamofire/Source/RedirectHandler.swift create mode 100644 Pods/Alamofire/Source/Request.swift create mode 100644 Pods/Alamofire/Source/RequestCompression.swift create mode 100644 Pods/Alamofire/Source/RequestInterceptor.swift create mode 100644 Pods/Alamofire/Source/RequestTaskMap.swift create mode 100644 Pods/Alamofire/Source/Response.swift create mode 100644 Pods/Alamofire/Source/ResponseSerialization.swift create mode 100644 Pods/Alamofire/Source/Result+Alamofire.swift create mode 100644 Pods/Alamofire/Source/RetryPolicy.swift create mode 100644 Pods/Alamofire/Source/ServerTrustEvaluation.swift create mode 100644 Pods/Alamofire/Source/Session.swift create mode 100644 Pods/Alamofire/Source/SessionDelegate.swift create mode 100644 Pods/Alamofire/Source/StringEncoding+Alamofire.swift create mode 100644 Pods/Alamofire/Source/URLConvertible+URLRequestConvertible.swift create mode 100644 Pods/Alamofire/Source/URLEncodedFormEncoder.swift create mode 100644 Pods/Alamofire/Source/URLRequest+Alamofire.swift create mode 100644 Pods/Alamofire/Source/URLSessionConfiguration+Alamofire.swift create mode 100644 Pods/Alamofire/Source/Validation.swift create mode 100644 Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Alamofire.xcscheme create mode 100644 Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Pods-PowerUp-PowerUpUITests.xcscheme create mode 100644 Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Pods-PowerUp.xcscheme create mode 100644 Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Pods-PowerUpTests.xcscheme create mode 100644 Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/SwiftKeychainWrapper.xcscheme create mode 100644 Pods/Target Support Files/Alamofire/Alamofire-Info.plist create mode 100644 Pods/Target Support Files/Alamofire/Alamofire-dummy.m create mode 100644 Pods/Target Support Files/Alamofire/Alamofire-prefix.pch create mode 100644 Pods/Target Support Files/Alamofire/Alamofire-umbrella.h create mode 100644 Pods/Target Support Files/Alamofire/Alamofire.debug.xcconfig create mode 100644 Pods/Target Support Files/Alamofire/Alamofire.modulemap create mode 100644 Pods/Target Support Files/Alamofire/Alamofire.release.xcconfig create mode 100644 PowerUp/DataModels/OrderDto.swift create mode 100644 PowerUp/Time Screen/TimeTableViewCell.swift diff --git a/Podfile b/Podfile index 80e5466..62c79e6 100644 --- a/Podfile +++ b/Podfile @@ -7,6 +7,7 @@ target 'PowerUp' do pod 'SwiftKeychainWrapper' # Pods for PowerUp + pod 'Alamofire' target 'PowerUpTests' do inherit! :search_paths diff --git a/Podfile.lock b/Podfile.lock index 2159622..5c66f5f 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,16 +1,20 @@ PODS: + - Alamofire (5.8.0) - SwiftKeychainWrapper (4.0.1) DEPENDENCIES: + - Alamofire - SwiftKeychainWrapper SPEC REPOS: trunk: + - Alamofire - SwiftKeychainWrapper SPEC CHECKSUMS: + Alamofire: 0e92e751b3e9e66d7982db43919d01f313b8eb91 SwiftKeychainWrapper: 807ba1d63c33a7d0613288512399cd1eda1e470c -PODFILE CHECKSUM: c35529dbf1ff04b85c8f9b84db4ba78205552aec +PODFILE CHECKSUM: 433259fab42c529bb3041164bfcbb29e3ee6f972 COCOAPODS: 1.13.0 diff --git a/Pods/Alamofire/LICENSE b/Pods/Alamofire/LICENSE new file mode 100644 index 0000000..cae030a --- /dev/null +++ b/Pods/Alamofire/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2014-2022 Alamofire Software Foundation (http://alamofire.org/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Pods/Alamofire/README.md b/Pods/Alamofire/README.md new file mode 100644 index 0000000..b0ba4d5 --- /dev/null +++ b/Pods/Alamofire/README.md @@ -0,0 +1,227 @@ +![Alamofire: Elegant Networking in Swift](https://raw.githubusercontent.com/Alamofire/Alamofire/master/Resources/AlamofireLogo.png) + +[![Swift](https://img.shields.io/badge/Swift-5.5_5.6_5.7_5.8-orange?style=flat-square)](https://img.shields.io/badge/Swift-5.5_5.6_5.7_5.8-Orange?style=flat-square) +[![Platforms](https://img.shields.io/badge/Platforms-macOS_iOS_tvOS_watchOS_Linux_Windows-yellowgreen?style=flat-square)](https://img.shields.io/badge/Platforms-macOS_iOS_tvOS_watchOS_Linux_Windows-Green?style=flat-square) +[![CocoaPods Compatible](https://img.shields.io/cocoapods/v/Alamofire.svg?style=flat-square)](https://img.shields.io/cocoapods/v/Alamofire.svg) +[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat-square)](https://github.com/Carthage/Carthage) +[![Swift Package Manager](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange?style=flat-square)](https://img.shields.io/badge/Swift_Package_Manager-compatible-orange?style=flat-square) +[![Twitter](https://img.shields.io/badge/twitter-@AlamofireSF-blue.svg?style=flat-square)](https://twitter.com/AlamofireSF) +[![Swift Forums](https://img.shields.io/badge/Swift_Forums-Alamofire-orange?style=flat-square)](https://forums.swift.org/c/related-projects/alamofire/37) + +Alamofire is an HTTP networking library written in Swift. + +- [Features](#features) +- [Component Libraries](#component-libraries) +- [Requirements](#requirements) +- [Migration Guides](#migration-guides) +- [Communication](#communication) +- [Installation](#installation) +- [Contributing](#contributing) +- [Usage](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#using-alamofire) + - [**Introduction -**](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#introduction) [Making Requests](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#making-requests), [Response Handling](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#response-handling), [Response Validation](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#response-validation), [Response Caching](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#response-caching) + - **HTTP -** [HTTP Methods](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#http-methods), [Parameters and Parameter Encoder](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md##request-parameters-and-parameter-encoders), [HTTP Headers](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#http-headers), [Authentication](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#authentication) + - **Large Data -** [Downloading Data to a File](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#downloading-data-to-a-file), [Uploading Data to a Server](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#uploading-data-to-a-server) + - **Tools -** [Statistical Metrics](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#statistical-metrics), [cURL Command Output](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#curl-command-output) +- [Advanced Usage](https://github.com/Alamofire/Alamofire/blob/master/Documentation/AdvancedUsage.md) + - **URL Session -** [Session Manager](https://github.com/Alamofire/Alamofire/blob/master/Documentation/AdvancedUsage.md#session), [Session Delegate](https://github.com/Alamofire/Alamofire/blob/master/Documentation/AdvancedUsage.md#sessiondelegate), [Request](https://github.com/Alamofire/Alamofire/blob/master/Documentation/AdvancedUsage.md#request) + - **Routing -** [Routing Requests](https://github.com/Alamofire/Alamofire/blob/master/Documentation/AdvancedUsage.md#routing-requests), [Adapting and Retrying Requests](https://github.com/Alamofire/Alamofire/blob/master/Documentation/AdvancedUsage.md#adapting-and-retrying-requests-with-requestinterceptor) + - **Model Objects -** [Custom Response Handlers](https://github.com/Alamofire/Alamofire/blob/master/Documentation/AdvancedUsage.md#customizing-response-handlers) + - **Advanced Concurrency -** [Swift Concurrency](https://github.com/Alamofire/Alamofire/blob/master/Documentation/AdvancedUsage.md#using-alamofire-with-swift-concurrency) and [Combine](https://github.com/Alamofire/Alamofire/blob/master/Documentation/AdvancedUsage.md#using-alamofire-with-combine) + - **Connection -** [Security](https://github.com/Alamofire/Alamofire/blob/master/Documentation/AdvancedUsage.md#security), [Network Reachability](https://github.com/Alamofire/Alamofire/blob/master/Documentation/AdvancedUsage.md#network-reachability) +- [Open Radars](#open-radars) +- [FAQ](#faq) +- [Credits](#credits) +- [Donations](#donations) +- [License](#license) + +## Features + +- [x] Chainable Request / Response Methods +- [x] Swift Concurrency Support Back to iOS 13, macOS 10.15, tvOS 13, and watchOS 6. +- [x] Combine Support +- [x] URL / JSON Parameter Encoding +- [x] Upload File / Data / Stream / MultipartFormData +- [x] Download File using Request or Resume Data +- [x] Authentication with `URLCredential` +- [x] HTTP Response Validation +- [x] Upload and Download Progress Closures with Progress +- [x] cURL Command Output +- [x] Dynamically Adapt and Retry Requests +- [x] TLS Certificate and Public Key Pinning +- [x] Network Reachability +- [x] Comprehensive Unit and Integration Test Coverage +- [x] [Complete Documentation](https://alamofire.github.io/Alamofire) + +## Component Libraries + +In order to keep Alamofire focused specifically on core networking implementations, additional component libraries have been created by the [Alamofire Software Foundation](https://github.com/Alamofire/Foundation) to bring additional functionality to the Alamofire ecosystem. + +- [AlamofireImage](https://github.com/Alamofire/AlamofireImage) - An image library including image response serializers, `UIImage` and `UIImageView` extensions, custom image filters, an auto-purging in-memory cache, and a priority-based image downloading system. +- [AlamofireNetworkActivityIndicator](https://github.com/Alamofire/AlamofireNetworkActivityIndicator) - Controls the visibility of the network activity indicator on iOS using Alamofire. It contains configurable delay timers to help mitigate flicker and can support `URLSession` instances not managed by Alamofire. + +## Requirements + +| Platform | Minimum Swift Version | Installation | Status | +| --- | --- | --- | --- | +| iOS 10.0+ / macOS 10.12+ / tvOS 10.0+ / watchOS 3.0+ | 5.5 | [CocoaPods](#cocoapods), [Carthage](#carthage), [Swift Package Manager](#swift-package-manager), [Manual](#manually) | Fully Tested | +| Linux | Latest Only | [Swift Package Manager](#swift-package-manager) | Building But Unsupported | +| Windows | Latest Only | [Swift Package Manager](#swift-package-manager) | Building But Unsupported | + +#### Known Issues on Linux and Windows + +Alamofire builds on Linux and Windows but there are missing features and many issues in the underlying `swift-corelibs-foundation` that prevent full functionality and may cause crashes. These include: +- `ServerTrustManager` and associated certificate functionality is unavailable, so there is no certificate pinning and no client certificate support. +- Various methods of HTTP authentication may crash, including HTTP Basic and HTTP Digest. Crashes may occur if responses contain server challenges. +- Cache control through `CachedResponseHandler` and associated APIs is unavailable, as the underlying delegate methods aren't called. +- `URLSessionTaskMetrics` are never gathered. + +Due to these issues, Alamofire is unsupported on Linux and Windows. Please report any crashes to the [Swift bug reporter](https://bugs.swift.org). + +## Migration Guides + +- [Alamofire 5.0 Migration Guide](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Alamofire%205.0%20Migration%20Guide.md) +- [Alamofire 4.0 Migration Guide](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Alamofire%204.0%20Migration%20Guide.md) +- [Alamofire 3.0 Migration Guide](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Alamofire%203.0%20Migration%20Guide.md) +- [Alamofire 2.0 Migration Guide](https://github.com/Alamofire/Alamofire/blob/master/Documentation/Alamofire%202.0%20Migration%20Guide.md) + +## Communication +- If you **need help with making network requests** using Alamofire, use [Stack Overflow](https://stackoverflow.com/questions/tagged/alamofire) and tag `alamofire`. +- If you need to **find or understand an API**, check [our documentation](http://alamofire.github.io/Alamofire/) or [Apple's documentation for `URLSession`](https://developer.apple.com/documentation/foundation/url_loading_system), on top of which Alamofire is built. +- If you need **help with an Alamofire feature**, use [our forum on swift.org](https://forums.swift.org/c/related-projects/alamofire). +- If you'd like to **discuss Alamofire best practices**, use [our forum on swift.org](https://forums.swift.org/c/related-projects/alamofire). +- If you'd like to **discuss a feature request**, use [our forum on swift.org](https://forums.swift.org/c/related-projects/alamofire). +- If you **found a bug**, open an issue here on GitHub and follow the guide. The more detail the better! + +## Installation + +### CocoaPods + +[CocoaPods](https://cocoapods.org) is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate Alamofire into your Xcode project using CocoaPods, specify it in your `Podfile`: + +```ruby +pod 'Alamofire' +``` + +### Carthage + +[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To integrate Alamofire into your Xcode project using Carthage, specify it in your `Cartfile`: + +```ogdl +github "Alamofire/Alamofire" +``` + +### Swift Package Manager + +The [Swift Package Manager](https://swift.org/package-manager/) is a tool for automating the distribution of Swift code and is integrated into the `swift` compiler. + +Once you have your Swift package set up, adding Alamofire as a dependency is as easy as adding it to the `dependencies` value of your `Package.swift`. + +```swift +dependencies: [ + .package(url: "https://github.com/Alamofire/Alamofire.git", .upToNextMajor(from: "5.6.4")) +] +``` + +### Manually + +If you prefer not to use any of the aforementioned dependency managers, you can integrate Alamofire into your project manually. + +#### Embedded Framework + +- Open up Terminal, `cd` into your top-level project directory, and run the following command "if" your project is not initialized as a git repository: + + ```bash + $ git init + ``` + +- Add Alamofire as a git [submodule](https://git-scm.com/docs/git-submodule) by running the following command: + + ```bash + $ git submodule add https://github.com/Alamofire/Alamofire.git + ``` + +- Open the new `Alamofire` folder, and drag the `Alamofire.xcodeproj` into the Project Navigator of your application's Xcode project. + + > It should appear nested underneath your application's blue project icon. Whether it is above or below all the other Xcode groups does not matter. + +- Select the `Alamofire.xcodeproj` in the Project Navigator and verify the deployment target matches that of your application target. +- Next, select your application project in the Project Navigator (blue project icon) to navigate to the target configuration window and select the application target under the "Targets" heading in the sidebar. +- In the tab bar at the top of that window, open the "General" panel. +- Click on the `+` button under the "Embedded Binaries" section. +- You will see two different `Alamofire.xcodeproj` folders each with two different versions of the `Alamofire.framework` nested inside a `Products` folder. + + > It does not matter which `Products` folder you choose from, but it does matter whether you choose the top or bottom `Alamofire.framework`. + +- Select the top `Alamofire.framework` for iOS and the bottom one for macOS. + + > You can verify which one you selected by inspecting the build log for your project. The build target for `Alamofire` will be listed as `Alamofire iOS`, `Alamofire macOS`, `Alamofire tvOS`, or `Alamofire watchOS`. + +- And that's it! + + > The `Alamofire.framework` is automagically added as a target dependency, linked framework and embedded framework in a copy files build phase which is all you need to build on the simulator and a device. + +## Contributing + +Before contributing to Alamofire, please read the instructions detailed in our [contribution guide](https://github.com/Alamofire/Alamofire/blob/master/CONTRIBUTING.md). + +## Open Radars + +The following radars have some effect on the current implementation of Alamofire. + +- [`rdar://21349340`](http://www.openradar.me/radar?id=5517037090635776) - Compiler throwing warning due to toll-free bridging issue in the test case +- `rdar://26870455` - Background URL Session Configurations do not work in the simulator +- `rdar://26849668` - Some URLProtocol APIs do not properly handle `URLRequest` + +## Resolved Radars + +The following radars have been resolved over time after being filed against the Alamofire project. + +- [`rdar://26761490`](http://www.openradar.me/radar?id=5010235949318144) - Swift string interpolation causing memory leak with common usage. + - (Resolved): 9/1/17 in Xcode 9 beta 6. +- [`rdar://36082113`](http://openradar.appspot.com/radar?id=4942308441063424) - `URLSessionTaskMetrics` failing to link on watchOS 3.0+ + - (Resolved): Just add `CFNetwork` to your linked frameworks. +- `FB7624529` - `urlSession(_:task:didFinishCollecting:)` never called on watchOS + - (Resolved): Metrics now collected on watchOS 7+. + +## FAQ + +### What's the origin of the name Alamofire? + +Alamofire is named after the [Alamo Fire flower](https://aggie-horticulture.tamu.edu/wildseed/alamofire.html), a hybrid variant of the Bluebonnet, the official state flower of Texas. + +## Credits + +Alamofire is owned and maintained by the [Alamofire Software Foundation](http://alamofire.org). You can follow them on Twitter at [@AlamofireSF](https://twitter.com/AlamofireSF) for project updates and releases. + +### Security Disclosure + +If you believe you have identified a security vulnerability with Alamofire, you should report it as soon as possible via email to security@alamofire.org. Please do not post it to a public issue tracker. + +## Sponsorship + +The [ASF](https://github.com/Alamofire/Foundation#members) is looking to raise money to officially stay registered as a federal non-profit organization. +Registering will allow Foundation members to gain some legal protections and also allow us to put donations to use, tax-free. +Sponsoring the ASF will enable us to: + +- Pay our yearly legal fees to keep the non-profit in good status +- Pay for our mail servers to help us stay on top of all questions and security issues +- Potentially fund test servers to make it easier for us to test the edge cases +- Potentially fund developers to work on one of our projects full-time + +The community adoption of the ASF libraries has been amazing. +We are greatly humbled by your enthusiasm around the projects and want to continue to do everything we can to move the needle forward. +With your continued support, the ASF will be able to improve its reach and also provide better legal safety for the core members. +If you use any of our libraries for work, see if your employers would be interested in donating. +Any amount you can donate, whether once or monthly, to help us reach our goal would be greatly appreciated. + +[Sponsor Alamofire](https://github.com/sponsors/Alamofire) + +## Supporters + +[MacStadium](https://macstadium.com) provides Alamofire with a free, hosted Mac mini. + +![Powered by MacStadium](https://raw.githubusercontent.com/Alamofire/Alamofire/master/Resources/MacStadiumLogo.png) + +## License + +Alamofire is released under the MIT license. [See LICENSE](https://github.com/Alamofire/Alamofire/blob/master/LICENSE) for details. diff --git a/Pods/Alamofire/Source/AFError.swift b/Pods/Alamofire/Source/AFError.swift new file mode 100644 index 0000000..82a75b5 --- /dev/null +++ b/Pods/Alamofire/Source/AFError.swift @@ -0,0 +1,874 @@ +// +// AFError.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +#if canImport(Security) +import Security +#endif + +/// `AFError` is the error type returned by Alamofire. It encompasses a few different types of errors, each with +/// their own associated reasons. +public enum AFError: Error { + /// The underlying reason the `.multipartEncodingFailed` error occurred. + public enum MultipartEncodingFailureReason { + /// The `fileURL` provided for reading an encodable body part isn't a file `URL`. + case bodyPartURLInvalid(url: URL) + /// The filename of the `fileURL` provided has either an empty `lastPathComponent` or `pathExtension. + case bodyPartFilenameInvalid(in: URL) + /// The file at the `fileURL` provided was not reachable. + case bodyPartFileNotReachable(at: URL) + /// Attempting to check the reachability of the `fileURL` provided threw an error. + case bodyPartFileNotReachableWithError(atURL: URL, error: Error) + /// The file at the `fileURL` provided is actually a directory. + case bodyPartFileIsDirectory(at: URL) + /// The size of the file at the `fileURL` provided was not returned by the system. + case bodyPartFileSizeNotAvailable(at: URL) + /// The attempt to find the size of the file at the `fileURL` provided threw an error. + case bodyPartFileSizeQueryFailedWithError(forURL: URL, error: Error) + /// An `InputStream` could not be created for the provided `fileURL`. + case bodyPartInputStreamCreationFailed(for: URL) + /// An `OutputStream` could not be created when attempting to write the encoded data to disk. + case outputStreamCreationFailed(for: URL) + /// The encoded body data could not be written to disk because a file already exists at the provided `fileURL`. + case outputStreamFileAlreadyExists(at: URL) + /// The `fileURL` provided for writing the encoded body data to disk is not a file `URL`. + case outputStreamURLInvalid(url: URL) + /// The attempt to write the encoded body data to disk failed with an underlying error. + case outputStreamWriteFailed(error: Error) + /// The attempt to read an encoded body part `InputStream` failed with underlying system error. + case inputStreamReadFailed(error: Error) + } + + /// Represents unexpected input stream length that occur when encoding the `MultipartFormData`. Instances will be + /// embedded within an `AFError.multipartEncodingFailed` `.inputStreamReadFailed` case. + public struct UnexpectedInputStreamLength: Error { + /// The expected byte count to read. + public var bytesExpected: UInt64 + /// The actual byte count read. + public var bytesRead: UInt64 + } + + /// The underlying reason the `.parameterEncodingFailed` error occurred. + public enum ParameterEncodingFailureReason { + /// The `URLRequest` did not have a `URL` to encode. + case missingURL + /// JSON serialization failed with an underlying system error during the encoding process. + case jsonEncodingFailed(error: Error) + /// Custom parameter encoding failed due to the associated `Error`. + case customEncodingFailed(error: Error) + } + + /// The underlying reason the `.parameterEncoderFailed` error occurred. + public enum ParameterEncoderFailureReason { + /// Possible missing components. + public enum RequiredComponent { + /// The `URL` was missing or unable to be extracted from the passed `URLRequest` or during encoding. + case url + /// The `HTTPMethod` could not be extracted from the passed `URLRequest`. + case httpMethod(rawValue: String) + } + + /// A `RequiredComponent` was missing during encoding. + case missingRequiredComponent(RequiredComponent) + /// The underlying encoder failed with the associated error. + case encoderFailed(error: Error) + } + + /// The underlying reason the `.responseValidationFailed` error occurred. + public enum ResponseValidationFailureReason { + /// The data file containing the server response did not exist. + case dataFileNil + /// The data file containing the server response at the associated `URL` could not be read. + case dataFileReadFailed(at: URL) + /// The response did not contain a `Content-Type` and the `acceptableContentTypes` provided did not contain a + /// wildcard type. + case missingContentType(acceptableContentTypes: [String]) + /// The response `Content-Type` did not match any type in the provided `acceptableContentTypes`. + case unacceptableContentType(acceptableContentTypes: [String], responseContentType: String) + /// The response status code was not acceptable. + case unacceptableStatusCode(code: Int) + /// Custom response validation failed due to the associated `Error`. + case customValidationFailed(error: Error) + } + + /// The underlying reason the response serialization error occurred. + public enum ResponseSerializationFailureReason { + /// The server response contained no data or the data was zero length. + case inputDataNilOrZeroLength + /// The file containing the server response did not exist. + case inputFileNil + /// The file containing the server response could not be read from the associated `URL`. + case inputFileReadFailed(at: URL) + /// String serialization failed using the provided `String.Encoding`. + case stringSerializationFailed(encoding: String.Encoding) + /// JSON serialization failed with an underlying system error. + case jsonSerializationFailed(error: Error) + /// A `DataDecoder` failed to decode the response due to the associated `Error`. + case decodingFailed(error: Error) + /// A custom response serializer failed due to the associated `Error`. + case customSerializationFailed(error: Error) + /// Generic serialization failed for an empty response that wasn't type `Empty` but instead the associated type. + case invalidEmptyResponse(type: String) + } + + #if canImport(Security) + /// Underlying reason a server trust evaluation error occurred. + public enum ServerTrustFailureReason { + /// The output of a server trust evaluation. + public struct Output { + /// The host for which the evaluation was performed. + public let host: String + /// The `SecTrust` value which was evaluated. + public let trust: SecTrust + /// The `OSStatus` of evaluation operation. + public let status: OSStatus + /// The result of the evaluation operation. + public let result: SecTrustResultType + + /// Creates an `Output` value from the provided values. + init(_ host: String, _ trust: SecTrust, _ status: OSStatus, _ result: SecTrustResultType) { + self.host = host + self.trust = trust + self.status = status + self.result = result + } + } + + /// No `ServerTrustEvaluator` was found for the associated host. + case noRequiredEvaluator(host: String) + /// No certificates were found with which to perform the trust evaluation. + case noCertificatesFound + /// No public keys were found with which to perform the trust evaluation. + case noPublicKeysFound + /// During evaluation, application of the associated `SecPolicy` failed. + case policyApplicationFailed(trust: SecTrust, policy: SecPolicy, status: OSStatus) + /// During evaluation, setting the associated anchor certificates failed. + case settingAnchorCertificatesFailed(status: OSStatus, certificates: [SecCertificate]) + /// During evaluation, creation of the revocation policy failed. + case revocationPolicyCreationFailed + /// `SecTrust` evaluation failed with the associated `Error`, if one was produced. + case trustEvaluationFailed(error: Error?) + /// Default evaluation failed with the associated `Output`. + case defaultEvaluationFailed(output: Output) + /// Host validation failed with the associated `Output`. + case hostValidationFailed(output: Output) + /// Revocation check failed with the associated `Output` and options. + case revocationCheckFailed(output: Output, options: RevocationTrustEvaluator.Options) + /// Certificate pinning failed. + case certificatePinningFailed(host: String, trust: SecTrust, pinnedCertificates: [SecCertificate], serverCertificates: [SecCertificate]) + /// Public key pinning failed. + case publicKeyPinningFailed(host: String, trust: SecTrust, pinnedKeys: [SecKey], serverKeys: [SecKey]) + /// Custom server trust evaluation failed due to the associated `Error`. + case customEvaluationFailed(error: Error) + } + #endif + + /// The underlying reason the `.urlRequestValidationFailed` + public enum URLRequestValidationFailureReason { + /// URLRequest with GET method had body data. + case bodyDataInGETRequest(Data) + } + + /// `UploadableConvertible` threw an error in `createUploadable()`. + case createUploadableFailed(error: Error) + /// `URLRequestConvertible` threw an error in `asURLRequest()`. + case createURLRequestFailed(error: Error) + /// `SessionDelegate` threw an error while attempting to move downloaded file to destination URL. + case downloadedFileMoveFailed(error: Error, source: URL, destination: URL) + /// `Request` was explicitly cancelled. + case explicitlyCancelled + /// `URLConvertible` type failed to create a valid `URL`. + case invalidURL(url: URLConvertible) + /// Multipart form encoding failed. + case multipartEncodingFailed(reason: MultipartEncodingFailureReason) + /// `ParameterEncoding` threw an error during the encoding process. + case parameterEncodingFailed(reason: ParameterEncodingFailureReason) + /// `ParameterEncoder` threw an error while running the encoder. + case parameterEncoderFailed(reason: ParameterEncoderFailureReason) + /// `RequestAdapter` threw an error during adaptation. + case requestAdaptationFailed(error: Error) + /// `RequestRetrier` threw an error during the request retry process. + case requestRetryFailed(retryError: Error, originalError: Error) + /// Response validation failed. + case responseValidationFailed(reason: ResponseValidationFailureReason) + /// Response serialization failed. + case responseSerializationFailed(reason: ResponseSerializationFailureReason) + #if canImport(Security) + /// `ServerTrustEvaluating` instance threw an error during trust evaluation. + case serverTrustEvaluationFailed(reason: ServerTrustFailureReason) + #endif + /// `Session` which issued the `Request` was deinitialized, most likely because its reference went out of scope. + case sessionDeinitialized + /// `Session` was explicitly invalidated, possibly with the `Error` produced by the underlying `URLSession`. + case sessionInvalidated(error: Error?) + /// `URLSessionTask` completed with error. + case sessionTaskFailed(error: Error) + /// `URLRequest` failed validation. + case urlRequestValidationFailed(reason: URLRequestValidationFailureReason) +} + +extension Error { + /// Returns the instance cast as an `AFError`. + public var asAFError: AFError? { + self as? AFError + } + + /// Returns the instance cast as an `AFError`. If casting fails, a `fatalError` with the specified `message` is thrown. + public func asAFError(orFailWith message: @autoclosure () -> String, file: StaticString = #file, line: UInt = #line) -> AFError { + guard let afError = self as? AFError else { + fatalError(message(), file: file, line: line) + } + return afError + } + + /// Casts the instance as `AFError` or returns `defaultAFError` + func asAFError(or defaultAFError: @autoclosure () -> AFError) -> AFError { + self as? AFError ?? defaultAFError() + } +} + +// MARK: - Error Booleans + +extension AFError { + /// Returns whether the instance is `.sessionDeinitialized`. + public var isSessionDeinitializedError: Bool { + if case .sessionDeinitialized = self { return true } + return false + } + + /// Returns whether the instance is `.sessionInvalidated`. + public var isSessionInvalidatedError: Bool { + if case .sessionInvalidated = self { return true } + return false + } + + /// Returns whether the instance is `.explicitlyCancelled`. + public var isExplicitlyCancelledError: Bool { + if case .explicitlyCancelled = self { return true } + return false + } + + /// Returns whether the instance is `.invalidURL`. + public var isInvalidURLError: Bool { + if case .invalidURL = self { return true } + return false + } + + /// Returns whether the instance is `.parameterEncodingFailed`. When `true`, the `underlyingError` property will + /// contain the associated value. + public var isParameterEncodingError: Bool { + if case .parameterEncodingFailed = self { return true } + return false + } + + /// Returns whether the instance is `.parameterEncoderFailed`. When `true`, the `underlyingError` property will + /// contain the associated value. + public var isParameterEncoderError: Bool { + if case .parameterEncoderFailed = self { return true } + return false + } + + /// Returns whether the instance is `.multipartEncodingFailed`. When `true`, the `url` and `underlyingError` + /// properties will contain the associated values. + public var isMultipartEncodingError: Bool { + if case .multipartEncodingFailed = self { return true } + return false + } + + /// Returns whether the instance is `.requestAdaptationFailed`. When `true`, the `underlyingError` property will + /// contain the associated value. + public var isRequestAdaptationError: Bool { + if case .requestAdaptationFailed = self { return true } + return false + } + + /// Returns whether the instance is `.responseValidationFailed`. When `true`, the `acceptableContentTypes`, + /// `responseContentType`, `responseCode`, and `underlyingError` properties will contain the associated values. + public var isResponseValidationError: Bool { + if case .responseValidationFailed = self { return true } + return false + } + + /// Returns whether the instance is `.responseSerializationFailed`. When `true`, the `failedStringEncoding` and + /// `underlyingError` properties will contain the associated values. + public var isResponseSerializationError: Bool { + if case .responseSerializationFailed = self { return true } + return false + } + + #if canImport(Security) + /// Returns whether the instance is `.serverTrustEvaluationFailed`. When `true`, the `underlyingError` property will + /// contain the associated value. + public var isServerTrustEvaluationError: Bool { + if case .serverTrustEvaluationFailed = self { return true } + return false + } + #endif + + /// Returns whether the instance is `requestRetryFailed`. When `true`, the `underlyingError` property will + /// contain the associated value. + public var isRequestRetryError: Bool { + if case .requestRetryFailed = self { return true } + return false + } + + /// Returns whether the instance is `createUploadableFailed`. When `true`, the `underlyingError` property will + /// contain the associated value. + public var isCreateUploadableError: Bool { + if case .createUploadableFailed = self { return true } + return false + } + + /// Returns whether the instance is `createURLRequestFailed`. When `true`, the `underlyingError` property will + /// contain the associated value. + public var isCreateURLRequestError: Bool { + if case .createURLRequestFailed = self { return true } + return false + } + + /// Returns whether the instance is `downloadedFileMoveFailed`. When `true`, the `destination` and `underlyingError` properties will + /// contain the associated values. + public var isDownloadedFileMoveError: Bool { + if case .downloadedFileMoveFailed = self { return true } + return false + } + + /// Returns whether the instance is `createURLRequestFailed`. When `true`, the `underlyingError` property will + /// contain the associated value. + public var isSessionTaskError: Bool { + if case .sessionTaskFailed = self { return true } + return false + } +} + +// MARK: - Convenience Properties + +extension AFError { + /// The `URLConvertible` associated with the error. + public var urlConvertible: URLConvertible? { + guard case let .invalidURL(url) = self else { return nil } + return url + } + + /// The `URL` associated with the error. + public var url: URL? { + guard case let .multipartEncodingFailed(reason) = self else { return nil } + return reason.url + } + + /// The underlying `Error` responsible for generating the failure associated with `.sessionInvalidated`, + /// `.parameterEncodingFailed`, `.parameterEncoderFailed`, `.multipartEncodingFailed`, `.requestAdaptationFailed`, + /// `.responseSerializationFailed`, `.requestRetryFailed` errors. + public var underlyingError: Error? { + switch self { + case let .multipartEncodingFailed(reason): + return reason.underlyingError + case let .parameterEncodingFailed(reason): + return reason.underlyingError + case let .parameterEncoderFailed(reason): + return reason.underlyingError + case let .requestAdaptationFailed(error): + return error + case let .requestRetryFailed(retryError, _): + return retryError + case let .responseValidationFailed(reason): + return reason.underlyingError + case let .responseSerializationFailed(reason): + return reason.underlyingError + #if canImport(Security) + case let .serverTrustEvaluationFailed(reason): + return reason.underlyingError + #endif + case let .sessionInvalidated(error): + return error + case let .createUploadableFailed(error): + return error + case let .createURLRequestFailed(error): + return error + case let .downloadedFileMoveFailed(error, _, _): + return error + case let .sessionTaskFailed(error): + return error + case .explicitlyCancelled, + .invalidURL, + .sessionDeinitialized, + .urlRequestValidationFailed: + return nil + } + } + + /// The acceptable `Content-Type`s of a `.responseValidationFailed` error. + public var acceptableContentTypes: [String]? { + guard case let .responseValidationFailed(reason) = self else { return nil } + return reason.acceptableContentTypes + } + + /// The response `Content-Type` of a `.responseValidationFailed` error. + public var responseContentType: String? { + guard case let .responseValidationFailed(reason) = self else { return nil } + return reason.responseContentType + } + + /// The response code of a `.responseValidationFailed` error. + public var responseCode: Int? { + guard case let .responseValidationFailed(reason) = self else { return nil } + return reason.responseCode + } + + /// The `String.Encoding` associated with a failed `.stringResponse()` call. + public var failedStringEncoding: String.Encoding? { + guard case let .responseSerializationFailed(reason) = self else { return nil } + return reason.failedStringEncoding + } + + /// The `source` URL of a `.downloadedFileMoveFailed` error. + public var sourceURL: URL? { + guard case let .downloadedFileMoveFailed(_, source, _) = self else { return nil } + return source + } + + /// The `destination` URL of a `.downloadedFileMoveFailed` error. + public var destinationURL: URL? { + guard case let .downloadedFileMoveFailed(_, _, destination) = self else { return nil } + return destination + } + + #if canImport(Security) + /// The download resume data of any underlying network error. Only produced by `DownloadRequest`s. + public var downloadResumeData: Data? { + (underlyingError as? URLError)?.userInfo[NSURLSessionDownloadTaskResumeData] as? Data + } + #endif +} + +extension AFError.ParameterEncodingFailureReason { + var underlyingError: Error? { + switch self { + case let .jsonEncodingFailed(error), + let .customEncodingFailed(error): + return error + case .missingURL: + return nil + } + } +} + +extension AFError.ParameterEncoderFailureReason { + var underlyingError: Error? { + switch self { + case let .encoderFailed(error): + return error + case .missingRequiredComponent: + return nil + } + } +} + +extension AFError.MultipartEncodingFailureReason { + var url: URL? { + switch self { + case let .bodyPartURLInvalid(url), + let .bodyPartFilenameInvalid(url), + let .bodyPartFileNotReachable(url), + let .bodyPartFileIsDirectory(url), + let .bodyPartFileSizeNotAvailable(url), + let .bodyPartInputStreamCreationFailed(url), + let .outputStreamCreationFailed(url), + let .outputStreamFileAlreadyExists(url), + let .outputStreamURLInvalid(url), + let .bodyPartFileNotReachableWithError(url, _), + let .bodyPartFileSizeQueryFailedWithError(url, _): + return url + case .outputStreamWriteFailed, + .inputStreamReadFailed: + return nil + } + } + + var underlyingError: Error? { + switch self { + case let .bodyPartFileNotReachableWithError(_, error), + let .bodyPartFileSizeQueryFailedWithError(_, error), + let .outputStreamWriteFailed(error), + let .inputStreamReadFailed(error): + return error + case .bodyPartURLInvalid, + .bodyPartFilenameInvalid, + .bodyPartFileNotReachable, + .bodyPartFileIsDirectory, + .bodyPartFileSizeNotAvailable, + .bodyPartInputStreamCreationFailed, + .outputStreamCreationFailed, + .outputStreamFileAlreadyExists, + .outputStreamURLInvalid: + return nil + } + } +} + +extension AFError.ResponseValidationFailureReason { + var acceptableContentTypes: [String]? { + switch self { + case let .missingContentType(types), + let .unacceptableContentType(types, _): + return types + case .dataFileNil, + .dataFileReadFailed, + .unacceptableStatusCode, + .customValidationFailed: + return nil + } + } + + var responseContentType: String? { + switch self { + case let .unacceptableContentType(_, responseType): + return responseType + case .dataFileNil, + .dataFileReadFailed, + .missingContentType, + .unacceptableStatusCode, + .customValidationFailed: + return nil + } + } + + var responseCode: Int? { + switch self { + case let .unacceptableStatusCode(code): + return code + case .dataFileNil, + .dataFileReadFailed, + .missingContentType, + .unacceptableContentType, + .customValidationFailed: + return nil + } + } + + var underlyingError: Error? { + switch self { + case let .customValidationFailed(error): + return error + case .dataFileNil, + .dataFileReadFailed, + .missingContentType, + .unacceptableContentType, + .unacceptableStatusCode: + return nil + } + } +} + +extension AFError.ResponseSerializationFailureReason { + var failedStringEncoding: String.Encoding? { + switch self { + case let .stringSerializationFailed(encoding): + return encoding + case .inputDataNilOrZeroLength, + .inputFileNil, + .inputFileReadFailed(_), + .jsonSerializationFailed(_), + .decodingFailed(_), + .customSerializationFailed(_), + .invalidEmptyResponse: + return nil + } + } + + var underlyingError: Error? { + switch self { + case let .jsonSerializationFailed(error), + let .decodingFailed(error), + let .customSerializationFailed(error): + return error + case .inputDataNilOrZeroLength, + .inputFileNil, + .inputFileReadFailed, + .stringSerializationFailed, + .invalidEmptyResponse: + return nil + } + } +} + +#if canImport(Security) +extension AFError.ServerTrustFailureReason { + var output: AFError.ServerTrustFailureReason.Output? { + switch self { + case let .defaultEvaluationFailed(output), + let .hostValidationFailed(output), + let .revocationCheckFailed(output, _): + return output + case .noRequiredEvaluator, + .noCertificatesFound, + .noPublicKeysFound, + .policyApplicationFailed, + .settingAnchorCertificatesFailed, + .revocationPolicyCreationFailed, + .trustEvaluationFailed, + .certificatePinningFailed, + .publicKeyPinningFailed, + .customEvaluationFailed: + return nil + } + } + + var underlyingError: Error? { + switch self { + case let .customEvaluationFailed(error): + return error + case let .trustEvaluationFailed(error): + return error + case .noRequiredEvaluator, + .noCertificatesFound, + .noPublicKeysFound, + .policyApplicationFailed, + .settingAnchorCertificatesFailed, + .revocationPolicyCreationFailed, + .defaultEvaluationFailed, + .hostValidationFailed, + .revocationCheckFailed, + .certificatePinningFailed, + .publicKeyPinningFailed: + return nil + } + } +} +#endif + +// MARK: - Error Descriptions + +extension AFError: LocalizedError { + public var errorDescription: String? { + switch self { + case .explicitlyCancelled: + return "Request explicitly cancelled." + case let .invalidURL(url): + return "URL is not valid: \(url)" + case let .parameterEncodingFailed(reason): + return reason.localizedDescription + case let .parameterEncoderFailed(reason): + return reason.localizedDescription + case let .multipartEncodingFailed(reason): + return reason.localizedDescription + case let .requestAdaptationFailed(error): + return "Request adaption failed with error: \(error.localizedDescription)" + case let .responseValidationFailed(reason): + return reason.localizedDescription + case let .responseSerializationFailed(reason): + return reason.localizedDescription + case let .requestRetryFailed(retryError, originalError): + return """ + Request retry failed with retry error: \(retryError.localizedDescription), \ + original error: \(originalError.localizedDescription) + """ + case .sessionDeinitialized: + return """ + Session was invalidated without error, so it was likely deinitialized unexpectedly. \ + Be sure to retain a reference to your Session for the duration of your requests. + """ + case let .sessionInvalidated(error): + return "Session was invalidated with error: \(error?.localizedDescription ?? "No description.")" + #if canImport(Security) + case let .serverTrustEvaluationFailed(reason): + return "Server trust evaluation failed due to reason: \(reason.localizedDescription)" + #endif + case let .urlRequestValidationFailed(reason): + return "URLRequest validation failed due to reason: \(reason.localizedDescription)" + case let .createUploadableFailed(error): + return "Uploadable creation failed with error: \(error.localizedDescription)" + case let .createURLRequestFailed(error): + return "URLRequest creation failed with error: \(error.localizedDescription)" + case let .downloadedFileMoveFailed(error, source, destination): + return "Moving downloaded file from: \(source) to: \(destination) failed with error: \(error.localizedDescription)" + case let .sessionTaskFailed(error): + return "URLSessionTask failed with error: \(error.localizedDescription)" + } + } +} + +extension AFError.ParameterEncodingFailureReason { + var localizedDescription: String { + switch self { + case .missingURL: + return "URL request to encode was missing a URL" + case let .jsonEncodingFailed(error): + return "JSON could not be encoded because of error:\n\(error.localizedDescription)" + case let .customEncodingFailed(error): + return "Custom parameter encoder failed with error: \(error.localizedDescription)" + } + } +} + +extension AFError.ParameterEncoderFailureReason { + var localizedDescription: String { + switch self { + case let .missingRequiredComponent(component): + return "Encoding failed due to a missing request component: \(component)" + case let .encoderFailed(error): + return "The underlying encoder failed with the error: \(error)" + } + } +} + +extension AFError.MultipartEncodingFailureReason { + var localizedDescription: String { + switch self { + case let .bodyPartURLInvalid(url): + return "The URL provided is not a file URL: \(url)" + case let .bodyPartFilenameInvalid(url): + return "The URL provided does not have a valid filename: \(url)" + case let .bodyPartFileNotReachable(url): + return "The URL provided is not reachable: \(url)" + case let .bodyPartFileNotReachableWithError(url, error): + return """ + The system returned an error while checking the provided URL for reachability. + URL: \(url) + Error: \(error) + """ + case let .bodyPartFileIsDirectory(url): + return "The URL provided is a directory: \(url)" + case let .bodyPartFileSizeNotAvailable(url): + return "Could not fetch the file size from the provided URL: \(url)" + case let .bodyPartFileSizeQueryFailedWithError(url, error): + return """ + The system returned an error while attempting to fetch the file size from the provided URL. + URL: \(url) + Error: \(error) + """ + case let .bodyPartInputStreamCreationFailed(url): + return "Failed to create an InputStream for the provided URL: \(url)" + case let .outputStreamCreationFailed(url): + return "Failed to create an OutputStream for URL: \(url)" + case let .outputStreamFileAlreadyExists(url): + return "A file already exists at the provided URL: \(url)" + case let .outputStreamURLInvalid(url): + return "The provided OutputStream URL is invalid: \(url)" + case let .outputStreamWriteFailed(error): + return "OutputStream write failed with error: \(error)" + case let .inputStreamReadFailed(error): + return "InputStream read failed with error: \(error)" + } + } +} + +extension AFError.ResponseSerializationFailureReason { + var localizedDescription: String { + switch self { + case .inputDataNilOrZeroLength: + return "Response could not be serialized, input data was nil or zero length." + case .inputFileNil: + return "Response could not be serialized, input file was nil." + case let .inputFileReadFailed(url): + return "Response could not be serialized, input file could not be read: \(url)." + case let .stringSerializationFailed(encoding): + return "String could not be serialized with encoding: \(encoding)." + case let .jsonSerializationFailed(error): + return "JSON could not be serialized because of error:\n\(error.localizedDescription)" + case let .invalidEmptyResponse(type): + return """ + Empty response could not be serialized to type: \(type). \ + Use Empty as the expected type for such responses. + """ + case let .decodingFailed(error): + return "Response could not be decoded because of error:\n\(error.localizedDescription)" + case let .customSerializationFailed(error): + return "Custom response serializer failed with error:\n\(error.localizedDescription)" + } + } +} + +extension AFError.ResponseValidationFailureReason { + var localizedDescription: String { + switch self { + case .dataFileNil: + return "Response could not be validated, data file was nil." + case let .dataFileReadFailed(url): + return "Response could not be validated, data file could not be read: \(url)." + case let .missingContentType(types): + return """ + Response Content-Type was missing and acceptable content types \ + (\(types.joined(separator: ","))) do not match "*/*". + """ + case let .unacceptableContentType(acceptableTypes, responseType): + return """ + Response Content-Type "\(responseType)" does not match any acceptable types: \ + \(acceptableTypes.joined(separator: ",")). + """ + case let .unacceptableStatusCode(code): + return "Response status code was unacceptable: \(code)." + case let .customValidationFailed(error): + return "Custom response validation failed with error: \(error.localizedDescription)" + } + } +} + +#if canImport(Security) +extension AFError.ServerTrustFailureReason { + var localizedDescription: String { + switch self { + case let .noRequiredEvaluator(host): + return "A ServerTrustEvaluating value is required for host \(host) but none was found." + case .noCertificatesFound: + return "No certificates were found or provided for evaluation." + case .noPublicKeysFound: + return "No public keys were found or provided for evaluation." + case .policyApplicationFailed: + return "Attempting to set a SecPolicy failed." + case .settingAnchorCertificatesFailed: + return "Attempting to set the provided certificates as anchor certificates failed." + case .revocationPolicyCreationFailed: + return "Attempting to create a revocation policy failed." + case let .trustEvaluationFailed(error): + return "SecTrust evaluation failed with error: \(error?.localizedDescription ?? "None")" + case let .defaultEvaluationFailed(output): + return "Default evaluation failed for host \(output.host)." + case let .hostValidationFailed(output): + return "Host validation failed for host \(output.host)." + case let .revocationCheckFailed(output, _): + return "Revocation check failed for host \(output.host)." + case let .certificatePinningFailed(host, _, _, _): + return "Certificate pinning failed for host \(host)." + case let .publicKeyPinningFailed(host, _, _, _): + return "Public key pinning failed for host \(host)." + case let .customEvaluationFailed(error): + return "Custom trust evaluation failed with error: \(error.localizedDescription)" + } + } +} +#endif + +extension AFError.URLRequestValidationFailureReason { + var localizedDescription: String { + switch self { + case let .bodyDataInGETRequest(data): + return """ + Invalid URLRequest: Requests with GET method cannot have body data: + \(String(decoding: data, as: UTF8.self)) + """ + } + } +} diff --git a/Pods/Alamofire/Source/Alamofire.swift b/Pods/Alamofire/Source/Alamofire.swift new file mode 100644 index 0000000..c99fe49 --- /dev/null +++ b/Pods/Alamofire/Source/Alamofire.swift @@ -0,0 +1,40 @@ +// +// Alamofire.swift +// +// Copyright (c) 2014-2021 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Dispatch +import Foundation +#if canImport(FoundationNetworking) +@_exported import FoundationNetworking +#endif + +// Enforce minimum Swift version for all platforms and build systems. +#if swift(<5.5) +#error("Alamofire doesn't support Swift versions below 5.5.") +#endif + +/// Reference to `Session.default` for quick bootstrapping and examples. +public let AF = Session.default + +/// Current Alamofire version. Necessary since SPM doesn't use dynamic libraries. Plus this will be more accurate. +let version = "5.8.0" diff --git a/Pods/Alamofire/Source/AlamofireExtended.swift b/Pods/Alamofire/Source/AlamofireExtended.swift new file mode 100644 index 0000000..280c6de --- /dev/null +++ b/Pods/Alamofire/Source/AlamofireExtended.swift @@ -0,0 +1,61 @@ +// +// AlamofireExtended.swift +// +// Copyright (c) 2019 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +/// Type that acts as a generic extension point for all `AlamofireExtended` types. +public struct AlamofireExtension { + /// Stores the type or meta-type of any extended type. + public private(set) var type: ExtendedType + + /// Create an instance from the provided value. + /// + /// - Parameter type: Instance being extended. + public init(_ type: ExtendedType) { + self.type = type + } +} + +/// Protocol describing the `af` extension points for Alamofire extended types. +public protocol AlamofireExtended { + /// Type being extended. + associatedtype ExtendedType + + /// Static Alamofire extension point. + static var af: AlamofireExtension.Type { get set } + /// Instance Alamofire extension point. + var af: AlamofireExtension { get set } +} + +extension AlamofireExtended { + /// Static Alamofire extension point. + public static var af: AlamofireExtension.Type { + get { AlamofireExtension.self } + set {} + } + + /// Instance Alamofire extension point. + public var af: AlamofireExtension { + get { AlamofireExtension(self) } + set {} + } +} diff --git a/Pods/Alamofire/Source/AuthenticationInterceptor.swift b/Pods/Alamofire/Source/AuthenticationInterceptor.swift new file mode 100644 index 0000000..c3a3f31 --- /dev/null +++ b/Pods/Alamofire/Source/AuthenticationInterceptor.swift @@ -0,0 +1,403 @@ +// +// AuthenticationInterceptor.swift +// +// Copyright (c) 2020 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// Types adopting the `AuthenticationCredential` protocol can be used to authenticate `URLRequest`s. +/// +/// One common example of an `AuthenticationCredential` is an OAuth2 credential containing an access token used to +/// authenticate all requests on behalf of a user. The access token generally has an expiration window of 60 minutes +/// which will then require a refresh of the credential using the refresh token to generate a new access token. +public protocol AuthenticationCredential { + /// Whether the credential requires a refresh. This property should always return `true` when the credential is + /// expired. It is also wise to consider returning `true` when the credential will expire in several seconds or + /// minutes depending on the expiration window of the credential. + /// + /// For example, if the credential is valid for 60 minutes, then it would be wise to return `true` when the + /// credential is only valid for 5 minutes or less. That ensures the credential will not expire as it is passed + /// around backend services. + var requiresRefresh: Bool { get } +} + +// MARK: - + +/// Types adopting the `Authenticator` protocol can be used to authenticate `URLRequest`s with an +/// `AuthenticationCredential` as well as refresh the `AuthenticationCredential` when required. +public protocol Authenticator: AnyObject { + /// The type of credential associated with the `Authenticator` instance. + associatedtype Credential: AuthenticationCredential + + /// Applies the `Credential` to the `URLRequest`. + /// + /// In the case of OAuth2, the access token of the `Credential` would be added to the `URLRequest` as a Bearer + /// token to the `Authorization` header. + /// + /// - Parameters: + /// - credential: The `Credential`. + /// - urlRequest: The `URLRequest`. + func apply(_ credential: Credential, to urlRequest: inout URLRequest) + + /// Refreshes the `Credential` and executes the `completion` closure with the `Result` once complete. + /// + /// Refresh can be called in one of two ways. It can be called before the `Request` is actually executed due to + /// a `requiresRefresh` returning `true` during the adapt portion of the `Request` creation process. It can also + /// be triggered by a failed `Request` where the authentication server denied access due to an expired or + /// invalidated access token. + /// + /// In the case of OAuth2, this method would use the refresh token of the `Credential` to generate a new + /// `Credential` using the authentication service. Once complete, the `completion` closure should be called with + /// the new `Credential`, or the error that occurred. + /// + /// In general, if the refresh call fails with certain status codes from the authentication server (commonly a 401), + /// the refresh token in the `Credential` can no longer be used to generate a valid `Credential`. In these cases, + /// you will need to reauthenticate the user with their username / password. + /// + /// Please note, these are just general examples of common use cases. They are not meant to solve your specific + /// authentication server challenges. Please work with your authentication server team to ensure your + /// `Authenticator` logic matches their expectations. + /// + /// - Parameters: + /// - credential: The `Credential` to refresh. + /// - session: The `Session` requiring the refresh. + /// - completion: The closure to be executed once the refresh is complete. + func refresh(_ credential: Credential, for session: Session, completion: @escaping (Result) -> Void) + + /// Determines whether the `URLRequest` failed due to an authentication error based on the `HTTPURLResponse`. + /// + /// If the authentication server **CANNOT** invalidate credentials after they are issued, then simply return `false` + /// for this method. If the authentication server **CAN** invalidate credentials due to security breaches, then you + /// will need to work with your authentication server team to understand how to identify when this occurs. + /// + /// In the case of OAuth2, where an authentication server can invalidate credentials, you will need to inspect the + /// `HTTPURLResponse` or possibly the `Error` for when this occurs. This is commonly handled by the authentication + /// server returning a 401 status code and some additional header to indicate an OAuth2 failure occurred. + /// + /// It is very important to understand how your authentication server works to be able to implement this correctly. + /// For example, if your authentication server returns a 401 when an OAuth2 error occurs, and your downstream + /// service also returns a 401 when you are not authorized to perform that operation, how do you know which layer + /// of the backend returned you a 401? You do not want to trigger a refresh unless you know your authentication + /// server is actually the layer rejecting the request. Again, work with your authentication server team to understand + /// how to identify an OAuth2 401 error vs. a downstream 401 error to avoid endless refresh loops. + /// + /// - Parameters: + /// - urlRequest: The `URLRequest`. + /// - response: The `HTTPURLResponse`. + /// - error: The `Error`. + /// + /// - Returns: `true` if the `URLRequest` failed due to an authentication error, `false` otherwise. + func didRequest(_ urlRequest: URLRequest, with response: HTTPURLResponse, failDueToAuthenticationError error: Error) -> Bool + + /// Determines whether the `URLRequest` is authenticated with the `Credential`. + /// + /// If the authentication server **CANNOT** invalidate credentials after they are issued, then simply return `true` + /// for this method. If the authentication server **CAN** invalidate credentials due to security breaches, then + /// read on. + /// + /// When an authentication server can invalidate credentials, it means that you may have a non-expired credential + /// that appears to be valid, but will be rejected by the authentication server when used. Generally when this + /// happens, a number of requests are all sent when the application is foregrounded, and all of them will be + /// rejected by the authentication server in the order they are received. The first failed request will trigger a + /// refresh internally, which will update the credential, and then retry all the queued requests with the new + /// credential. However, it is possible that some of the original requests will not return from the authentication + /// server until the refresh has completed. This is where this method comes in. + /// + /// When the authentication server rejects a credential, we need to check to make sure we haven't refreshed the + /// credential while the request was in flight. If it has already refreshed, then we don't need to trigger an + /// additional refresh. If it hasn't refreshed, then we need to refresh. + /// + /// Now that it is understood how the result of this method is used in the refresh lifecyle, let's walk through how + /// to implement it. You should return `true` in this method if the `URLRequest` is authenticated in a way that + /// matches the values in the `Credential`. In the case of OAuth2, this would mean that the Bearer token in the + /// `Authorization` header of the `URLRequest` matches the access token in the `Credential`. If it matches, then we + /// know the `Credential` was used to authenticate the `URLRequest` and should return `true`. If the Bearer token + /// did not match the access token, then you should return `false`. + /// + /// - Parameters: + /// - urlRequest: The `URLRequest`. + /// - credential: The `Credential`. + /// + /// - Returns: `true` if the `URLRequest` is authenticated with the `Credential`, `false` otherwise. + func isRequest(_ urlRequest: URLRequest, authenticatedWith credential: Credential) -> Bool +} + +// MARK: - + +/// Represents various authentication failures that occur when using the `AuthenticationInterceptor`. All errors are +/// still vended from Alamofire as `AFError` types. The `AuthenticationError` instances will be embedded within +/// `AFError` `.requestAdaptationFailed` or `.requestRetryFailed` cases. +public enum AuthenticationError: Error { + /// The credential was missing so the request could not be authenticated. + case missingCredential + /// The credential was refreshed too many times within the `RefreshWindow`. + case excessiveRefresh +} + +// MARK: - + +/// The `AuthenticationInterceptor` class manages the queuing and threading complexity of authenticating requests. +/// It relies on an `Authenticator` type to handle the actual `URLRequest` authentication and `Credential` refresh. +public class AuthenticationInterceptor: RequestInterceptor where AuthenticatorType: Authenticator { + // MARK: Typealiases + + /// Type of credential used to authenticate requests. + public typealias Credential = AuthenticatorType.Credential + + // MARK: Helper Types + + /// Type that defines a time window used to identify excessive refresh calls. When enabled, prior to executing a + /// refresh, the `AuthenticationInterceptor` compares the timestamp history of previous refresh calls against the + /// `RefreshWindow`. If more refreshes have occurred within the refresh window than allowed, the refresh is + /// cancelled and an `AuthorizationError.excessiveRefresh` error is thrown. + public struct RefreshWindow { + /// `TimeInterval` defining the duration of the time window before the current time in which the number of + /// refresh attempts is compared against `maximumAttempts`. For example, if `interval` is 30 seconds, then the + /// `RefreshWindow` represents the past 30 seconds. If more attempts occurred in the past 30 seconds than + /// `maximumAttempts`, an `.excessiveRefresh` error will be thrown. + public let interval: TimeInterval + + /// Total refresh attempts allowed within `interval` before throwing an `.excessiveRefresh` error. + public let maximumAttempts: Int + + /// Creates a `RefreshWindow` instance from the specified `interval` and `maximumAttempts`. + /// + /// - Parameters: + /// - interval: `TimeInterval` defining the duration of the time window before the current time. + /// - maximumAttempts: The maximum attempts allowed within the `TimeInterval`. + public init(interval: TimeInterval = 30.0, maximumAttempts: Int = 5) { + self.interval = interval + self.maximumAttempts = maximumAttempts + } + } + + private struct AdaptOperation { + let urlRequest: URLRequest + let session: Session + let completion: (Result) -> Void + } + + private enum AdaptResult { + case adapt(Credential) + case doNotAdapt(AuthenticationError) + case adaptDeferred + } + + private struct MutableState { + var credential: Credential? + + var isRefreshing = false + var refreshTimestamps: [TimeInterval] = [] + var refreshWindow: RefreshWindow? + + var adaptOperations: [AdaptOperation] = [] + var requestsToRetry: [(RetryResult) -> Void] = [] + } + + // MARK: Properties + + /// The `Credential` used to authenticate requests. + public var credential: Credential? { + get { $mutableState.credential } + set { $mutableState.credential = newValue } + } + + let authenticator: AuthenticatorType + let queue = DispatchQueue(label: "org.alamofire.authentication.inspector") + + @Protected + private var mutableState: MutableState + + // MARK: Initialization + + /// Creates an `AuthenticationInterceptor` instance from the specified parameters. + /// + /// A `nil` `RefreshWindow` will result in the `AuthenticationInterceptor` not checking for excessive refresh calls. + /// It is recommended to always use a `RefreshWindow` to avoid endless refresh cycles. + /// + /// - Parameters: + /// - authenticator: The `Authenticator` type. + /// - credential: The `Credential` if it exists. `nil` by default. + /// - refreshWindow: The `RefreshWindow` used to identify excessive refresh calls. `RefreshWindow()` by default. + public init(authenticator: AuthenticatorType, + credential: Credential? = nil, + refreshWindow: RefreshWindow? = RefreshWindow()) { + self.authenticator = authenticator + mutableState = MutableState(credential: credential, refreshWindow: refreshWindow) + } + + // MARK: Adapt + + public func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (Result) -> Void) { + let adaptResult: AdaptResult = $mutableState.write { mutableState in + // Queue the adapt operation if a refresh is already in place. + guard !mutableState.isRefreshing else { + let operation = AdaptOperation(urlRequest: urlRequest, session: session, completion: completion) + mutableState.adaptOperations.append(operation) + return .adaptDeferred + } + + // Throw missing credential error is the credential is missing. + guard let credential = mutableState.credential else { + let error = AuthenticationError.missingCredential + return .doNotAdapt(error) + } + + // Queue the adapt operation and trigger refresh operation if credential requires refresh. + guard !credential.requiresRefresh else { + let operation = AdaptOperation(urlRequest: urlRequest, session: session, completion: completion) + mutableState.adaptOperations.append(operation) + refresh(credential, for: session, insideLock: &mutableState) + return .adaptDeferred + } + + return .adapt(credential) + } + + switch adaptResult { + case let .adapt(credential): + var authenticatedRequest = urlRequest + authenticator.apply(credential, to: &authenticatedRequest) + completion(.success(authenticatedRequest)) + + case let .doNotAdapt(adaptError): + completion(.failure(adaptError)) + + case .adaptDeferred: + // No-op: adapt operation captured during refresh. + break + } + } + + // MARK: Retry + + public func retry(_ request: Request, for session: Session, dueTo error: Error, completion: @escaping (RetryResult) -> Void) { + // Do not attempt retry if there was not an original request and response from the server. + guard let urlRequest = request.request, let response = request.response else { + completion(.doNotRetry) + return + } + + // Do not attempt retry unless the `Authenticator` verifies failure was due to authentication error (i.e. 401 status code). + guard authenticator.didRequest(urlRequest, with: response, failDueToAuthenticationError: error) else { + completion(.doNotRetry) + return + } + + // Do not attempt retry if there is no credential. + guard let credential = credential else { + let error = AuthenticationError.missingCredential + completion(.doNotRetryWithError(error)) + return + } + + // Retry the request if the `Authenticator` verifies it was authenticated with a previous credential. + guard authenticator.isRequest(urlRequest, authenticatedWith: credential) else { + completion(.retry) + return + } + + $mutableState.write { mutableState in + mutableState.requestsToRetry.append(completion) + + guard !mutableState.isRefreshing else { return } + + refresh(credential, for: session, insideLock: &mutableState) + } + } + + // MARK: Refresh + + private func refresh(_ credential: Credential, for session: Session, insideLock mutableState: inout MutableState) { + guard !isRefreshExcessive(insideLock: &mutableState) else { + let error = AuthenticationError.excessiveRefresh + handleRefreshFailure(error, insideLock: &mutableState) + return + } + + mutableState.refreshTimestamps.append(ProcessInfo.processInfo.systemUptime) + mutableState.isRefreshing = true + + // Dispatch to queue to hop out of the lock in case authenticator.refresh is implemented synchronously. + queue.async { + self.authenticator.refresh(credential, for: session) { result in + self.$mutableState.write { mutableState in + switch result { + case let .success(credential): + self.handleRefreshSuccess(credential, insideLock: &mutableState) + case let .failure(error): + self.handleRefreshFailure(error, insideLock: &mutableState) + } + } + } + } + } + + private func isRefreshExcessive(insideLock mutableState: inout MutableState) -> Bool { + guard let refreshWindow = mutableState.refreshWindow else { return false } + + let refreshWindowMin = ProcessInfo.processInfo.systemUptime - refreshWindow.interval + + let refreshAttemptsWithinWindow = mutableState.refreshTimestamps.reduce(into: 0) { attempts, refreshTimestamp in + guard refreshWindowMin <= refreshTimestamp else { return } + attempts += 1 + } + + let isRefreshExcessive = refreshAttemptsWithinWindow >= refreshWindow.maximumAttempts + + return isRefreshExcessive + } + + private func handleRefreshSuccess(_ credential: Credential, insideLock mutableState: inout MutableState) { + mutableState.credential = credential + + let adaptOperations = mutableState.adaptOperations + let requestsToRetry = mutableState.requestsToRetry + + mutableState.adaptOperations.removeAll() + mutableState.requestsToRetry.removeAll() + + mutableState.isRefreshing = false + + // Dispatch to queue to hop out of the mutable state lock + queue.async { + adaptOperations.forEach { self.adapt($0.urlRequest, for: $0.session, completion: $0.completion) } + requestsToRetry.forEach { $0(.retry) } + } + } + + private func handleRefreshFailure(_ error: Error, insideLock mutableState: inout MutableState) { + let adaptOperations = mutableState.adaptOperations + let requestsToRetry = mutableState.requestsToRetry + + mutableState.adaptOperations.removeAll() + mutableState.requestsToRetry.removeAll() + + mutableState.isRefreshing = false + + // Dispatch to queue to hop out of the mutable state lock + queue.async { + adaptOperations.forEach { $0.completion(.failure(error)) } + requestsToRetry.forEach { $0(.doNotRetryWithError(error)) } + } + } +} diff --git a/Pods/Alamofire/Source/CachedResponseHandler.swift b/Pods/Alamofire/Source/CachedResponseHandler.swift new file mode 100644 index 0000000..1371b6e --- /dev/null +++ b/Pods/Alamofire/Source/CachedResponseHandler.swift @@ -0,0 +1,107 @@ +// +// CachedResponseHandler.swift +// +// Copyright (c) 2019 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// A type that handles whether the data task should store the HTTP response in the cache. +public protocol CachedResponseHandler { + /// Determines whether the HTTP response should be stored in the cache. + /// + /// The `completion` closure should be passed one of three possible options: + /// + /// 1. The cached response provided by the server (this is the most common use case). + /// 2. A modified version of the cached response (you may want to modify it in some way before caching). + /// 3. A `nil` value to prevent the cached response from being stored in the cache. + /// + /// - Parameters: + /// - task: The data task whose request resulted in the cached response. + /// - response: The cached response to potentially store in the cache. + /// - completion: The closure to execute containing cached response, a modified response, or `nil`. + func dataTask(_ task: URLSessionDataTask, + willCacheResponse response: CachedURLResponse, + completion: @escaping (CachedURLResponse?) -> Void) +} + +// MARK: - + +/// `ResponseCacher` is a convenience `CachedResponseHandler` making it easy to cache, not cache, or modify a cached +/// response. +public struct ResponseCacher { + /// Defines the behavior of the `ResponseCacher` type. + public enum Behavior { + /// Stores the cached response in the cache. + case cache + /// Prevents the cached response from being stored in the cache. + case doNotCache + /// Modifies the cached response before storing it in the cache. + case modify((URLSessionDataTask, CachedURLResponse) -> CachedURLResponse?) + } + + /// Returns a `ResponseCacher` with a `.cache` `Behavior`. + public static let cache = ResponseCacher(behavior: .cache) + /// Returns a `ResponseCacher` with a `.doNotCache` `Behavior`. + public static let doNotCache = ResponseCacher(behavior: .doNotCache) + + /// The `Behavior` of the `ResponseCacher`. + public let behavior: Behavior + + /// Creates a `ResponseCacher` instance from the `Behavior`. + /// + /// - Parameter behavior: The `Behavior`. + public init(behavior: Behavior) { + self.behavior = behavior + } +} + +extension ResponseCacher: CachedResponseHandler { + public func dataTask(_ task: URLSessionDataTask, + willCacheResponse response: CachedURLResponse, + completion: @escaping (CachedURLResponse?) -> Void) { + switch behavior { + case .cache: + completion(response) + case .doNotCache: + completion(nil) + case let .modify(closure): + let response = closure(task, response) + completion(response) + } + } +} + +extension CachedResponseHandler where Self == ResponseCacher { + /// Provides a `ResponseCacher` which caches the response, if allowed. Equivalent to `ResponseCacher.cache`. + public static var cache: ResponseCacher { .cache } + + /// Provides a `ResponseCacher` which does not cache the response. Equivalent to `ResponseCacher.doNotCache`. + public static var doNotCache: ResponseCacher { .doNotCache } + + /// Creates a `ResponseCacher` which modifies the proposed `CachedURLResponse` using the provided closure. + /// + /// - Parameter closure: Closure used to modify the `CachedURLResponse`. + /// - Returns: The `ResponseCacher`. + public static func modify(using closure: @escaping ((URLSessionDataTask, CachedURLResponse) -> CachedURLResponse?)) -> ResponseCacher { + ResponseCacher(behavior: .modify(closure)) + } +} diff --git a/Pods/Alamofire/Source/Combine.swift b/Pods/Alamofire/Source/Combine.swift new file mode 100644 index 0000000..416610e --- /dev/null +++ b/Pods/Alamofire/Source/Combine.swift @@ -0,0 +1,655 @@ +// +// Combine.swift +// +// Copyright (c) 2020 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +#if !((os(iOS) && (arch(i386) || arch(arm))) || os(Windows) || os(Linux) || os(Android)) + +import Combine +import Dispatch +import Foundation + +// MARK: - DataRequest / UploadRequest + +/// A Combine `Publisher` that publishes the `DataResponse` of the provided `DataRequest`. +@available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) +public struct DataResponsePublisher: Publisher { + public typealias Output = DataResponse + public typealias Failure = Never + + private typealias Handler = (@escaping (_ response: DataResponse) -> Void) -> DataRequest + + private let request: DataRequest + private let responseHandler: Handler + + /// Creates an instance which will serialize responses using the provided `ResponseSerializer`. + /// + /// - Parameters: + /// - request: `DataRequest` for which to publish the response. + /// - queue: `DispatchQueue` on which the `DataResponse` value will be published. `.main` by default. + /// - serializer: `ResponseSerializer` used to produce the published `DataResponse`. + public init(_ request: DataRequest, queue: DispatchQueue, serializer: Serializer) + where Value == Serializer.SerializedObject { + self.request = request + responseHandler = { request.response(queue: queue, responseSerializer: serializer, completionHandler: $0) } + } + + /// Creates an instance which will serialize responses using the provided `DataResponseSerializerProtocol`. + /// + /// - Parameters: + /// - request: `DataRequest` for which to publish the response. + /// - queue: `DispatchQueue` on which the `DataResponse` value will be published. `.main` by default. + /// - serializer: `DataResponseSerializerProtocol` used to produce the published `DataResponse`. + public init(_ request: DataRequest, + queue: DispatchQueue, + serializer: Serializer) + where Value == Serializer.SerializedObject { + self.request = request + responseHandler = { request.response(queue: queue, responseSerializer: serializer, completionHandler: $0) } + } + + /// Publishes only the `Result` of the `DataResponse` value. + /// + /// - Returns: The `AnyPublisher` publishing the `Result` value. + public func result() -> AnyPublisher, Never> { + map(\.result).eraseToAnyPublisher() + } + + /// Publishes the `Result` of the `DataResponse` as a single `Value` or fail with the `AFError` instance. + /// + /// - Returns: The `AnyPublisher` publishing the stream. + public func value() -> AnyPublisher { + setFailureType(to: AFError.self).flatMap(\.result.publisher).eraseToAnyPublisher() + } + + public func receive(subscriber: S) where S: Subscriber, DataResponsePublisher.Failure == S.Failure, DataResponsePublisher.Output == S.Input { + subscriber.receive(subscription: Inner(request: request, + responseHandler: responseHandler, + downstream: subscriber)) + } + + private final class Inner: Subscription + where Downstream.Input == Output { + typealias Failure = Downstream.Failure + + @Protected + private var downstream: Downstream? + private let request: DataRequest + private let responseHandler: Handler + + init(request: DataRequest, responseHandler: @escaping Handler, downstream: Downstream) { + self.request = request + self.responseHandler = responseHandler + self.downstream = downstream + } + + func request(_ demand: Subscribers.Demand) { + assert(demand > 0) + + guard let downstream = downstream else { return } + + self.downstream = nil + responseHandler { response in + _ = downstream.receive(response) + downstream.receive(completion: .finished) + }.resume() + } + + func cancel() { + request.cancel() + downstream = nil + } + } +} + +@available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) +extension DataResponsePublisher where Value == Data? { + /// Creates an instance which publishes a `DataResponse` value without serialization. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public init(_ request: DataRequest, queue: DispatchQueue) { + self.request = request + responseHandler = { request.response(queue: queue, completionHandler: $0) } + } +} + +extension DataRequest { + /// Creates a `DataResponsePublisher` for this instance using the given `ResponseSerializer` and `DispatchQueue`. + /// + /// - Parameters: + /// - serializer: `ResponseSerializer` used to serialize response `Data`. + /// - queue: `DispatchQueue` on which the `DataResponse` will be published. `.main` by default. + /// + /// - Returns: The `DataResponsePublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishResponse(using serializer: Serializer, on queue: DispatchQueue = .main) -> DataResponsePublisher + where Serializer.SerializedObject == T { + DataResponsePublisher(self, queue: queue, serializer: serializer) + } + + /// Creates a `DataResponsePublisher` for this instance and uses a `DataResponseSerializer` to serialize the + /// response. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which the `DataResponse` will be published. `.main` by default. + /// - preprocessor: `DataPreprocessor` which filters the `Data` before serialization. `PassthroughPreprocessor()` + /// by default. + /// - emptyResponseCodes: `Set` of HTTP status codes for which empty responses are allowed. `[204, 205]` by + /// default. + /// - emptyRequestMethods: `Set` of `HTTPMethod`s for which empty responses are allowed, regardless of + /// status code. `[.head]` by default. + /// - Returns: The `DataResponsePublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishData(queue: DispatchQueue = .main, + preprocessor: DataPreprocessor = DataResponseSerializer.defaultDataPreprocessor, + emptyResponseCodes: Set = DataResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DataResponseSerializer.defaultEmptyRequestMethods) -> DataResponsePublisher { + publishResponse(using: DataResponseSerializer(dataPreprocessor: preprocessor, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + on: queue) + } + + /// Creates a `DataResponsePublisher` for this instance and uses a `StringResponseSerializer` to serialize the + /// response. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which the `DataResponse` will be published. `.main` by default. + /// - preprocessor: `DataPreprocessor` which filters the `Data` before serialization. `PassthroughPreprocessor()` + /// by default. + /// - encoding: `String.Encoding` to parse the response. `nil` by default, in which case the encoding + /// will be determined by the server response, falling back to the default HTTP character + /// set, `ISO-8859-1`. + /// - emptyResponseCodes: `Set` of HTTP status codes for which empty responses are allowed. `[204, 205]` by + /// default. + /// - emptyRequestMethods: `Set` of `HTTPMethod`s for which empty responses are allowed, regardless of + /// status code. `[.head]` by default. + /// + /// - Returns: The `DataResponsePublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishString(queue: DispatchQueue = .main, + preprocessor: DataPreprocessor = StringResponseSerializer.defaultDataPreprocessor, + encoding: String.Encoding? = nil, + emptyResponseCodes: Set = StringResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = StringResponseSerializer.defaultEmptyRequestMethods) -> DataResponsePublisher { + publishResponse(using: StringResponseSerializer(dataPreprocessor: preprocessor, + encoding: encoding, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + on: queue) + } + + @_disfavoredOverload + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + @available(*, deprecated, message: "Renamed publishDecodable(type:queue:preprocessor:decoder:emptyResponseCodes:emptyRequestMethods).") + public func publishDecodable(type: T.Type = T.self, + queue: DispatchQueue = .main, + preprocessor: DataPreprocessor = DecodableResponseSerializer.defaultDataPreprocessor, + decoder: DataDecoder = JSONDecoder(), + emptyResponseCodes: Set = DecodableResponseSerializer.defaultEmptyResponseCodes, + emptyResponseMethods: Set = DecodableResponseSerializer.defaultEmptyRequestMethods) -> DataResponsePublisher { + publishResponse(using: DecodableResponseSerializer(dataPreprocessor: preprocessor, + decoder: decoder, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyResponseMethods), + on: queue) + } + + /// Creates a `DataResponsePublisher` for this instance and uses a `DecodableResponseSerializer` to serialize the + /// response. + /// + /// - Parameters: + /// - type: `Decodable` type to which to decode response `Data`. Inferred from the context by + /// default. + /// - queue: `DispatchQueue` on which the `DataResponse` will be published. `.main` by default. + /// - preprocessor: `DataPreprocessor` which filters the `Data` before serialization. + /// `PassthroughPreprocessor()` by default. + /// - decoder: `DataDecoder` instance used to decode response `Data`. `JSONDecoder()` by default. + /// - emptyResponseCodes: `Set` of HTTP status codes for which empty responses are allowed. `[204, 205]` by + /// default. + /// - emptyRequestMethods: `Set` of `HTTPMethod`s for which empty responses are allowed, regardless of + /// status code. `[.head]` by default. + /// + /// - Returns: The `DataResponsePublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishDecodable(type: T.Type = T.self, + queue: DispatchQueue = .main, + preprocessor: DataPreprocessor = DecodableResponseSerializer.defaultDataPreprocessor, + decoder: DataDecoder = JSONDecoder(), + emptyResponseCodes: Set = DecodableResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DecodableResponseSerializer.defaultEmptyRequestMethods) -> DataResponsePublisher { + publishResponse(using: DecodableResponseSerializer(dataPreprocessor: preprocessor, + decoder: decoder, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + on: queue) + } + + /// Creates a `DataResponsePublisher` for this instance which does not serialize the response before publishing. + /// + /// - queue: `DispatchQueue` on which the `DataResponse` will be published. `.main` by default. + /// + /// - Returns: The `DataResponsePublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishUnserialized(queue: DispatchQueue = .main) -> DataResponsePublisher { + DataResponsePublisher(self, queue: queue) + } +} + +// A Combine `Publisher` that publishes a sequence of `Stream` values received by the provided `DataStreamRequest`. +@available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) +public struct DataStreamPublisher: Publisher { + public typealias Output = DataStreamRequest.Stream + public typealias Failure = Never + + private typealias Handler = (@escaping DataStreamRequest.Handler) -> DataStreamRequest + + private let request: DataStreamRequest + private let streamHandler: Handler + + /// Creates an instance which will serialize responses using the provided `DataStreamSerializer`. + /// + /// - Parameters: + /// - request: `DataStreamRequest` for which to publish the response. + /// - queue: `DispatchQueue` on which the `Stream` values will be published. `.main` by + /// default. + /// - serializer: `DataStreamSerializer` used to produce the published `Stream` values. + public init(_ request: DataStreamRequest, queue: DispatchQueue, serializer: Serializer) + where Value == Serializer.SerializedObject { + self.request = request + streamHandler = { request.responseStream(using: serializer, on: queue, stream: $0) } + } + + /// Publishes only the `Result` of the `DataStreamRequest.Stream`'s `Event`s. + /// + /// - Returns: The `AnyPublisher` publishing the `Result` value. + public func result() -> AnyPublisher, Never> { + compactMap { stream in + switch stream.event { + case let .stream(result): + return result + // If the stream has completed with an error, send the error value downstream as a `.failure`. + case let .complete(completion): + return completion.error.map(Result.failure) + } + } + .eraseToAnyPublisher() + } + + /// Publishes the streamed values of the `DataStreamRequest.Stream` as a sequence of `Value` or fail with the + /// `AFError` instance. + /// + /// - Returns: The `AnyPublisher` publishing the stream. + public func value() -> AnyPublisher { + result().setFailureType(to: AFError.self).flatMap(\.publisher).eraseToAnyPublisher() + } + + public func receive(subscriber: S) where S: Subscriber, DataStreamPublisher.Failure == S.Failure, DataStreamPublisher.Output == S.Input { + subscriber.receive(subscription: Inner(request: request, + streamHandler: streamHandler, + downstream: subscriber)) + } + + private final class Inner: Subscription + where Downstream.Input == Output { + typealias Failure = Downstream.Failure + + @Protected + private var downstream: Downstream? + private let request: DataStreamRequest + private let streamHandler: Handler + + init(request: DataStreamRequest, streamHandler: @escaping Handler, downstream: Downstream) { + self.request = request + self.streamHandler = streamHandler + self.downstream = downstream + } + + func request(_ demand: Subscribers.Demand) { + assert(demand > 0) + + guard let downstream = downstream else { return } + + self.downstream = nil + streamHandler { stream in + _ = downstream.receive(stream) + if case .complete = stream.event { + downstream.receive(completion: .finished) + } + }.resume() + } + + func cancel() { + request.cancel() + downstream = nil + } + } +} + +extension DataStreamRequest { + /// Creates a `DataStreamPublisher` for this instance using the given `DataStreamSerializer` and `DispatchQueue`. + /// + /// - Parameters: + /// - serializer: `DataStreamSerializer` used to serialize the streamed `Data`. + /// - queue: `DispatchQueue` on which the `DataRequest.Stream` values will be published. `.main` by default. + /// - Returns: The `DataStreamPublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishStream(using serializer: Serializer, + on queue: DispatchQueue = .main) -> DataStreamPublisher { + DataStreamPublisher(self, queue: queue, serializer: serializer) + } + + /// Creates a `DataStreamPublisher` for this instance which uses a `PassthroughStreamSerializer` to stream `Data` + /// unserialized. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which the `DataRequest.Stream` values will be published. `.main` by default. + /// - Returns: The `DataStreamPublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishData(queue: DispatchQueue = .main) -> DataStreamPublisher { + publishStream(using: PassthroughStreamSerializer(), on: queue) + } + + /// Creates a `DataStreamPublisher` for this instance which uses a `StringStreamSerializer` to serialize stream + /// `Data` values into `String` values. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which the `DataRequest.Stream` values will be published. `.main` by default. + /// - Returns: The `DataStreamPublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishString(queue: DispatchQueue = .main) -> DataStreamPublisher { + publishStream(using: StringStreamSerializer(), on: queue) + } + + /// Creates a `DataStreamPublisher` for this instance which uses a `DecodableStreamSerializer` with the provided + /// parameters to serialize stream `Data` values into the provided type. + /// + /// - Parameters: + /// - type: `Decodable` type to which to decode stream `Data`. Inferred from the context by default. + /// - queue: `DispatchQueue` on which the `DataRequest.Stream` values will be published. `.main` by default. + /// - decoder: `DataDecoder` instance used to decode stream `Data`. `JSONDecoder()` by default. + /// - preprocessor: `DataPreprocessor` which filters incoming stream `Data` before serialization. + /// `PassthroughPreprocessor()` by default. + /// - Returns: The `DataStreamPublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishDecodable(type: T.Type = T.self, + queue: DispatchQueue = .main, + decoder: DataDecoder = JSONDecoder(), + preprocessor: DataPreprocessor = PassthroughPreprocessor()) -> DataStreamPublisher { + publishStream(using: DecodableStreamSerializer(decoder: decoder, + dataPreprocessor: preprocessor), + on: queue) + } +} + +/// A Combine `Publisher` that publishes the `DownloadResponse` of the provided `DownloadRequest`. +@available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) +public struct DownloadResponsePublisher: Publisher { + public typealias Output = DownloadResponse + public typealias Failure = Never + + private typealias Handler = (@escaping (_ response: DownloadResponse) -> Void) -> DownloadRequest + + private let request: DownloadRequest + private let responseHandler: Handler + + /// Creates an instance which will serialize responses using the provided `ResponseSerializer`. + /// + /// - Parameters: + /// - request: `DownloadRequest` for which to publish the response. + /// - queue: `DispatchQueue` on which the `DownloadResponse` value will be published. `.main` by default. + /// - serializer: `ResponseSerializer` used to produce the published `DownloadResponse`. + public init(_ request: DownloadRequest, queue: DispatchQueue, serializer: Serializer) + where Value == Serializer.SerializedObject { + self.request = request + responseHandler = { request.response(queue: queue, responseSerializer: serializer, completionHandler: $0) } + } + + /// Creates an instance which will serialize responses using the provided `DownloadResponseSerializerProtocol` value. + /// + /// - Parameters: + /// - request: `DownloadRequest` for which to publish the response. + /// - queue: `DispatchQueue` on which the `DataResponse` value will be published. `.main` by default. + /// - serializer: `DownloadResponseSerializerProtocol` used to produce the published `DownloadResponse`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public init(_ request: DownloadRequest, + queue: DispatchQueue, + serializer: Serializer) + where Value == Serializer.SerializedObject { + self.request = request + responseHandler = { request.response(queue: queue, responseSerializer: serializer, completionHandler: $0) } + } + + /// Publishes only the `Result` of the `DownloadResponse` value. + /// + /// - Returns: The `AnyPublisher` publishing the `Result` value. + public func result() -> AnyPublisher, Never> { + map(\.result).eraseToAnyPublisher() + } + + /// Publishes the `Result` of the `DownloadResponse` as a single `Value` or fail with the `AFError` instance. + /// + /// - Returns: The `AnyPublisher` publishing the stream. + public func value() -> AnyPublisher { + setFailureType(to: AFError.self).flatMap(\.result.publisher).eraseToAnyPublisher() + } + + public func receive(subscriber: S) where S: Subscriber, DownloadResponsePublisher.Failure == S.Failure, DownloadResponsePublisher.Output == S.Input { + subscriber.receive(subscription: Inner(request: request, + responseHandler: responseHandler, + downstream: subscriber)) + } + + private final class Inner: Subscription + where Downstream.Input == Output { + typealias Failure = Downstream.Failure + + @Protected + private var downstream: Downstream? + private let request: DownloadRequest + private let responseHandler: Handler + + init(request: DownloadRequest, responseHandler: @escaping Handler, downstream: Downstream) { + self.request = request + self.responseHandler = responseHandler + self.downstream = downstream + } + + func request(_ demand: Subscribers.Demand) { + assert(demand > 0) + + guard let downstream = downstream else { return } + + self.downstream = nil + responseHandler { response in + _ = downstream.receive(response) + downstream.receive(completion: .finished) + }.resume() + } + + func cancel() { + request.cancel() + downstream = nil + } + } +} + +extension DownloadRequest { + /// Creates a `DownloadResponsePublisher` for this instance using the given `ResponseSerializer` and `DispatchQueue`. + /// + /// - Parameters: + /// - serializer: `ResponseSerializer` used to serialize the response `Data` from disk. + /// - queue: `DispatchQueue` on which the `DownloadResponse` will be published.`.main` by default. + /// + /// - Returns: The `DownloadResponsePublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishResponse(using serializer: Serializer, on queue: DispatchQueue = .main) -> DownloadResponsePublisher + where Serializer.SerializedObject == T { + DownloadResponsePublisher(self, queue: queue, serializer: serializer) + } + + /// Creates a `DownloadResponsePublisher` for this instance using the given `DownloadResponseSerializerProtocol` and + /// `DispatchQueue`. + /// + /// - Parameters: + /// - serializer: `DownloadResponseSerializer` used to serialize the response `Data` from disk. + /// - queue: `DispatchQueue` on which the `DownloadResponse` will be published.`.main` by default. + /// + /// - Returns: The `DownloadResponsePublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishResponse(using serializer: Serializer, on queue: DispatchQueue = .main) -> DownloadResponsePublisher + where Serializer.SerializedObject == T { + DownloadResponsePublisher(self, queue: queue, serializer: serializer) + } + + /// Creates a `DownloadResponsePublisher` for this instance and uses a `URLResponseSerializer` to serialize the + /// response. + /// + /// - Parameter queue: `DispatchQueue` on which the `DownloadResponse` will be published. `.main` by default. + /// + /// - Returns: The `DownloadResponsePublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishURL(queue: DispatchQueue = .main) -> DownloadResponsePublisher { + publishResponse(using: URLResponseSerializer(), on: queue) + } + + /// Creates a `DownloadResponsePublisher` for this instance and uses a `DataResponseSerializer` to serialize the + /// response. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which the `DownloadResponse` will be published. `.main` by default. + /// - preprocessor: `DataPreprocessor` which filters the `Data` before serialization. `PassthroughPreprocessor()` + /// by default. + /// - emptyResponseCodes: `Set` of HTTP status codes for which empty responses are allowed. `[204, 205]` by + /// default. + /// - emptyRequestMethods: `Set` of `HTTPMethod`s for which empty responses are allowed, regardless of + /// status code. `[.head]` by default. + /// + /// - Returns: The `DownloadResponsePublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishData(queue: DispatchQueue = .main, + preprocessor: DataPreprocessor = DataResponseSerializer.defaultDataPreprocessor, + emptyResponseCodes: Set = DataResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DataResponseSerializer.defaultEmptyRequestMethods) -> DownloadResponsePublisher { + publishResponse(using: DataResponseSerializer(dataPreprocessor: preprocessor, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + on: queue) + } + + /// Creates a `DownloadResponsePublisher` for this instance and uses a `StringResponseSerializer` to serialize the + /// response. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which the `DataResponse` will be published. `.main` by default. + /// - preprocessor: `DataPreprocessor` which filters the `Data` before serialization. `PassthroughPreprocessor()` + /// by default. + /// - encoding: `String.Encoding` to parse the response. `nil` by default, in which case the encoding + /// will be determined by the server response, falling back to the default HTTP character + /// set, `ISO-8859-1`. + /// - emptyResponseCodes: `Set` of HTTP status codes for which empty responses are allowed. `[204, 205]` by + /// default. + /// - emptyRequestMethods: `Set` of `HTTPMethod`s for which empty responses are allowed, regardless of + /// status code. `[.head]` by default. + /// + /// - Returns: The `DownloadResponsePublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishString(queue: DispatchQueue = .main, + preprocessor: DataPreprocessor = StringResponseSerializer.defaultDataPreprocessor, + encoding: String.Encoding? = nil, + emptyResponseCodes: Set = StringResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = StringResponseSerializer.defaultEmptyRequestMethods) -> DownloadResponsePublisher { + publishResponse(using: StringResponseSerializer(dataPreprocessor: preprocessor, + encoding: encoding, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + on: queue) + } + + @_disfavoredOverload + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + @available(*, deprecated, message: "Renamed publishDecodable(type:queue:preprocessor:decoder:emptyResponseCodes:emptyRequestMethods).") + public func publishDecodable(type: T.Type = T.self, + queue: DispatchQueue = .main, + preprocessor: DataPreprocessor = DecodableResponseSerializer.defaultDataPreprocessor, + decoder: DataDecoder = JSONDecoder(), + emptyResponseCodes: Set = DecodableResponseSerializer.defaultEmptyResponseCodes, + emptyResponseMethods: Set = DecodableResponseSerializer.defaultEmptyRequestMethods) -> DownloadResponsePublisher { + publishResponse(using: DecodableResponseSerializer(dataPreprocessor: preprocessor, + decoder: decoder, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyResponseMethods), + on: queue) + } + + /// Creates a `DownloadResponsePublisher` for this instance and uses a `DecodableResponseSerializer` to serialize + /// the response. + /// + /// - Parameters: + /// - type: `Decodable` type to which to decode response `Data`. Inferred from the context by default. + /// - queue: `DispatchQueue` on which the `DataResponse` will be published. `.main` by default. + /// - preprocessor: `DataPreprocessor` which filters the `Data` before serialization. + /// `PassthroughPreprocessor()` by default. + /// - decoder: `DataDecoder` instance used to decode response `Data`. `JSONDecoder()` by default. + /// - emptyResponseCodes: `Set` of HTTP status codes for which empty responses are allowed. `[204, 205]` by + /// default. + /// - emptyRequestMethods: `Set` of `HTTPMethod`s for which empty responses are allowed, regardless + /// of status code. `[.head]` by default. + /// + /// - Returns: The `DownloadResponsePublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishDecodable(type: T.Type = T.self, + queue: DispatchQueue = .main, + preprocessor: DataPreprocessor = DecodableResponseSerializer.defaultDataPreprocessor, + decoder: DataDecoder = JSONDecoder(), + emptyResponseCodes: Set = DecodableResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DecodableResponseSerializer.defaultEmptyRequestMethods) -> DownloadResponsePublisher { + publishResponse(using: DecodableResponseSerializer(dataPreprocessor: preprocessor, + decoder: decoder, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + on: queue) + } +} + +@available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) +extension DownloadResponsePublisher where Value == URL? { + /// Creates an instance which publishes a `DownloadResponse` value without serialization. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public init(_ request: DownloadRequest, queue: DispatchQueue) { + self.request = request + responseHandler = { request.response(queue: queue, completionHandler: $0) } + } +} + +extension DownloadRequest { + /// Creates a `DownloadResponsePublisher` for this instance which does not serialize the response before publishing. + /// + /// - Parameter queue: `DispatchQueue` on which the `DownloadResponse` will be published. `.main` by default. + /// + /// - Returns: The `DownloadResponsePublisher`. + @available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) + public func publishUnserialized(on queue: DispatchQueue = .main) -> DownloadResponsePublisher { + DownloadResponsePublisher(self, queue: queue) + } +} + +#endif diff --git a/Pods/Alamofire/Source/Concurrency.swift b/Pods/Alamofire/Source/Concurrency.swift new file mode 100644 index 0000000..21e7e1e --- /dev/null +++ b/Pods/Alamofire/Source/Concurrency.swift @@ -0,0 +1,832 @@ +// +// Concurrency.swift +// +// Copyright (c) 2021 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +#if compiler(>=5.6.0) && canImport(_Concurrency) + +import Foundation + +// MARK: - Request Event Streams + +@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) +extension Request { + /// Creates a `StreamOf` for the instance's upload progress. + /// + /// - Parameter bufferingPolicy: `BufferingPolicy` that determines the stream's buffering behavior.`.unbounded` by default. + /// + /// - Returns: The `StreamOf`. + public func uploadProgress(bufferingPolicy: StreamOf.BufferingPolicy = .unbounded) -> StreamOf { + stream(bufferingPolicy: bufferingPolicy) { [unowned self] continuation in + uploadProgress(queue: underlyingQueue) { progress in + continuation.yield(progress) + } + } + } + + /// Creates a `StreamOf` for the instance's download progress. + /// + /// - Parameter bufferingPolicy: `BufferingPolicy` that determines the stream's buffering behavior.`.unbounded` by default. + /// + /// - Returns: The `StreamOf`. + public func downloadProgress(bufferingPolicy: StreamOf.BufferingPolicy = .unbounded) -> StreamOf { + stream(bufferingPolicy: bufferingPolicy) { [unowned self] continuation in + downloadProgress(queue: underlyingQueue) { progress in + continuation.yield(progress) + } + } + } + + /// Creates a `StreamOf` for the `URLRequest`s produced for the instance. + /// + /// - Parameter bufferingPolicy: `BufferingPolicy` that determines the stream's buffering behavior.`.unbounded` by default. + /// + /// - Returns: The `StreamOf`. + public func urlRequests(bufferingPolicy: StreamOf.BufferingPolicy = .unbounded) -> StreamOf { + stream(bufferingPolicy: bufferingPolicy) { [unowned self] continuation in + onURLRequestCreation(on: underlyingQueue) { request in + continuation.yield(request) + } + } + } + + /// Creates a `StreamOf` for the `URLSessionTask`s produced for the instance. + /// + /// - Parameter bufferingPolicy: `BufferingPolicy` that determines the stream's buffering behavior.`.unbounded` by default. + /// + /// - Returns: The `StreamOf`. + public func urlSessionTasks(bufferingPolicy: StreamOf.BufferingPolicy = .unbounded) -> StreamOf { + stream(bufferingPolicy: bufferingPolicy) { [unowned self] continuation in + onURLSessionTaskCreation(on: underlyingQueue) { task in + continuation.yield(task) + } + } + } + + /// Creates a `StreamOf` for the cURL descriptions produced for the instance. + /// + /// - Parameter bufferingPolicy: `BufferingPolicy` that determines the stream's buffering behavior.`.unbounded` by default. + /// + /// - Returns: The `StreamOf`. + public func cURLDescriptions(bufferingPolicy: StreamOf.BufferingPolicy = .unbounded) -> StreamOf { + stream(bufferingPolicy: bufferingPolicy) { [unowned self] continuation in + cURLDescription(on: underlyingQueue) { description in + continuation.yield(description) + } + } + } + + fileprivate func stream(of type: T.Type = T.self, + bufferingPolicy: StreamOf.BufferingPolicy = .unbounded, + yielder: @escaping (StreamOf.Continuation) -> Void) -> StreamOf { + StreamOf(bufferingPolicy: bufferingPolicy) { [unowned self] continuation in + yielder(continuation) + // Must come after serializers run in order to catch retry progress. + onFinish { + continuation.finish() + } + } + } +} + +// MARK: - DataTask + +/// Value used to `await` a `DataResponse` and associated values. +@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) +public struct DataTask { + /// `DataResponse` produced by the `DataRequest` and its response handler. + public var response: DataResponse { + get async { + if shouldAutomaticallyCancel { + return await withTaskCancellationHandler { + await task.value + } onCancel: { + cancel() + } + } else { + return await task.value + } + } + } + + /// `Result` of any response serialization performed for the `response`. + public var result: Result { + get async { await response.result } + } + + /// `Value` returned by the `response`. + public var value: Value { + get async throws { + try await result.get() + } + } + + private let request: DataRequest + private let task: Task, Never> + private let shouldAutomaticallyCancel: Bool + + fileprivate init(request: DataRequest, task: Task, Never>, shouldAutomaticallyCancel: Bool) { + self.request = request + self.task = task + self.shouldAutomaticallyCancel = shouldAutomaticallyCancel + } + + /// Cancel the underlying `DataRequest` and `Task`. + public func cancel() { + task.cancel() + } + + /// Resume the underlying `DataRequest`. + public func resume() { + request.resume() + } + + /// Suspend the underlying `DataRequest`. + public func suspend() { + request.suspend() + } +} + +@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) +extension DataRequest { + /// Creates a `StreamOf` for the instance's responses. + /// + /// - Parameter bufferingPolicy: `BufferingPolicy` that determines the stream's buffering behavior.`.unbounded` by default. + /// + /// - Returns: The `StreamOf`. + public func httpResponses(bufferingPolicy: StreamOf.BufferingPolicy = .unbounded) -> StreamOf { + stream(bufferingPolicy: bufferingPolicy) { [unowned self] continuation in + onHTTPResponse(on: underlyingQueue) { response in + continuation.yield(response) + } + } + } + + #if swift(>=5.7) + /// Sets an async closure returning a `Request.ResponseDisposition`, called whenever the `DataRequest` produces an + /// `HTTPURLResponse`. + /// + /// - Note: Most requests will only produce a single response for each outgoing attempt (initial + retries). + /// However, some types of response may trigger multiple `HTTPURLResponse`s, such as multipart streams, + /// where responses after the first will contain the part headers. + /// + /// - Parameters: + /// - handler: Async closure executed when a new `HTTPURLResponse` is received and returning a + /// `ResponseDisposition` value. This value determines whether to continue the request or cancel it as + /// if `cancel()` had been called on the instance. Note, this closure is called on an arbitrary thread, + /// so any synchronous calls in it will execute in that context. + /// + /// - Returns: The instance. + @_disfavoredOverload + @discardableResult + public func onHTTPResponse( + perform handler: @escaping @Sendable (_ response: HTTPURLResponse) async -> ResponseDisposition + ) -> Self { + onHTTPResponse(on: underlyingQueue) { response, completionHandler in + Task { + let disposition = await handler(response) + completionHandler(disposition) + } + } + + return self + } + + /// Sets an async closure called whenever the `DataRequest` produces an `HTTPURLResponse`. + /// + /// - Note: Most requests will only produce a single response for each outgoing attempt (initial + retries). + /// However, some types of response may trigger multiple `HTTPURLResponse`s, such as multipart streams, + /// where responses after the first will contain the part headers. + /// + /// - Parameters: + /// - handler: Async closure executed when a new `HTTPURLResponse` is received. Note, this closure is called on an + /// arbitrary thread, so any synchronous calls in it will execute in that context. + /// + /// - Returns: The instance. + @discardableResult + public func onHTTPResponse(perform handler: @escaping @Sendable (_ response: HTTPURLResponse) async -> Void) -> Self { + onHTTPResponse { response in + await handler(response) + return .allow + } + + return self + } + #endif + + /// Creates a `DataTask` to `await` a `Data` value. + /// + /// - Parameters: + /// - shouldAutomaticallyCancel: `Bool` determining whether or not the request should be cancelled when the + /// enclosing async context is cancelled. Only applies to `DataTask`'s async + /// properties. `true` by default. + /// - dataPreprocessor: `DataPreprocessor` which processes the received `Data` before completion. + /// - emptyResponseCodes: HTTP response codes for which empty responses are allowed. `[204, 205]` by default. + /// - emptyRequestMethods: `HTTPMethod`s for which empty responses are always valid. `[.head]` by default. + /// + /// - Returns: The `DataTask`. + public func serializingData(automaticallyCancelling shouldAutomaticallyCancel: Bool = true, + dataPreprocessor: DataPreprocessor = DataResponseSerializer.defaultDataPreprocessor, + emptyResponseCodes: Set = DataResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DataResponseSerializer.defaultEmptyRequestMethods) -> DataTask { + serializingResponse(using: DataResponseSerializer(dataPreprocessor: dataPreprocessor, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + automaticallyCancelling: shouldAutomaticallyCancel) + } + + /// Creates a `DataTask` to `await` serialization of a `Decodable` value. + /// + /// - Parameters: + /// - type: `Decodable` type to decode from response data. + /// - shouldAutomaticallyCancel: `Bool` determining whether or not the request should be cancelled when the + /// enclosing async context is cancelled. Only applies to `DataTask`'s async + /// properties. `true` by default. + /// - dataPreprocessor: `DataPreprocessor` which processes the received `Data` before calling the serializer. + /// `PassthroughPreprocessor()` by default. + /// - decoder: `DataDecoder` to use to decode the response. `JSONDecoder()` by default. + /// - emptyResponseCodes: HTTP status codes for which empty responses are always valid. `[204, 205]` by default. + /// - emptyRequestMethods: `HTTPMethod`s for which empty responses are always valid. `[.head]` by default. + /// + /// - Returns: The `DataTask`. + public func serializingDecodable(_ type: Value.Type = Value.self, + automaticallyCancelling shouldAutomaticallyCancel: Bool = true, + dataPreprocessor: DataPreprocessor = DecodableResponseSerializer.defaultDataPreprocessor, + decoder: DataDecoder = JSONDecoder(), + emptyResponseCodes: Set = DecodableResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DecodableResponseSerializer.defaultEmptyRequestMethods) -> DataTask { + serializingResponse(using: DecodableResponseSerializer(dataPreprocessor: dataPreprocessor, + decoder: decoder, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + automaticallyCancelling: shouldAutomaticallyCancel) + } + + /// Creates a `DataTask` to `await` serialization of a `String` value. + /// + /// - Parameters: + /// - shouldAutomaticallyCancel: `Bool` determining whether or not the request should be cancelled when the + /// enclosing async context is cancelled. Only applies to `DataTask`'s async + /// properties. `true` by default. + /// - dataPreprocessor: `DataPreprocessor` which processes the received `Data` before calling the serializer. + /// `PassthroughPreprocessor()` by default. + /// - encoding: `String.Encoding` to use during serialization. Defaults to `nil`, in which case + /// the encoding will be determined from the server response, falling back to the + /// default HTTP character set, `ISO-8859-1`. + /// - emptyResponseCodes: HTTP status codes for which empty responses are always valid. `[204, 205]` by default. + /// - emptyRequestMethods: `HTTPMethod`s for which empty responses are always valid. `[.head]` by default. + /// + /// - Returns: The `DataTask`. + public func serializingString(automaticallyCancelling shouldAutomaticallyCancel: Bool = true, + dataPreprocessor: DataPreprocessor = StringResponseSerializer.defaultDataPreprocessor, + encoding: String.Encoding? = nil, + emptyResponseCodes: Set = StringResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = StringResponseSerializer.defaultEmptyRequestMethods) -> DataTask { + serializingResponse(using: StringResponseSerializer(dataPreprocessor: dataPreprocessor, + encoding: encoding, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + automaticallyCancelling: shouldAutomaticallyCancel) + } + + /// Creates a `DataTask` to `await` serialization using the provided `ResponseSerializer` instance. + /// + /// - Parameters: + /// - serializer: `ResponseSerializer` responsible for serializing the request, response, and data. + /// - shouldAutomaticallyCancel: `Bool` determining whether or not the request should be cancelled when the + /// enclosing async context is cancelled. Only applies to `DataTask`'s async + /// properties. `true` by default. + /// + /// - Returns: The `DataTask`. + public func serializingResponse(using serializer: Serializer, + automaticallyCancelling shouldAutomaticallyCancel: Bool = true) + -> DataTask { + dataTask(automaticallyCancelling: shouldAutomaticallyCancel) { [self] in + response(queue: underlyingQueue, + responseSerializer: serializer, + completionHandler: $0) + } + } + + /// Creates a `DataTask` to `await` serialization using the provided `DataResponseSerializerProtocol` instance. + /// + /// - Parameters: + /// - serializer: `DataResponseSerializerProtocol` responsible for serializing the request, + /// response, and data. + /// - shouldAutomaticallyCancel: `Bool` determining whether or not the request should be cancelled when the + /// enclosing async context is cancelled. Only applies to `DataTask`'s async + /// properties. `true` by default. + /// + /// - Returns: The `DataTask`. + public func serializingResponse(using serializer: Serializer, + automaticallyCancelling shouldAutomaticallyCancel: Bool = true) + -> DataTask { + dataTask(automaticallyCancelling: shouldAutomaticallyCancel) { [self] in + response(queue: underlyingQueue, + responseSerializer: serializer, + completionHandler: $0) + } + } + + private func dataTask(automaticallyCancelling shouldAutomaticallyCancel: Bool, + forResponse onResponse: @escaping (@escaping (DataResponse) -> Void) -> Void) + -> DataTask { + let task = Task { + await withTaskCancellationHandler { + await withCheckedContinuation { continuation in + onResponse { + continuation.resume(returning: $0) + } + } + } onCancel: { + self.cancel() + } + } + + return DataTask(request: self, task: task, shouldAutomaticallyCancel: shouldAutomaticallyCancel) + } +} + +// MARK: - DownloadTask + +/// Value used to `await` a `DownloadResponse` and associated values. +@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) +public struct DownloadTask { + /// `DownloadResponse` produced by the `DownloadRequest` and its response handler. + public var response: DownloadResponse { + get async { + if shouldAutomaticallyCancel { + return await withTaskCancellationHandler { + await task.value + } onCancel: { + cancel() + } + } else { + return await task.value + } + } + } + + /// `Result` of any response serialization performed for the `response`. + public var result: Result { + get async { await response.result } + } + + /// `Value` returned by the `response`. + public var value: Value { + get async throws { + try await result.get() + } + } + + private let task: Task, Never> + private let request: DownloadRequest + private let shouldAutomaticallyCancel: Bool + + fileprivate init(request: DownloadRequest, task: Task, Never>, shouldAutomaticallyCancel: Bool) { + self.request = request + self.task = task + self.shouldAutomaticallyCancel = shouldAutomaticallyCancel + } + + /// Cancel the underlying `DownloadRequest` and `Task`. + public func cancel() { + task.cancel() + } + + /// Resume the underlying `DownloadRequest`. + public func resume() { + request.resume() + } + + /// Suspend the underlying `DownloadRequest`. + public func suspend() { + request.suspend() + } +} + +@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) +extension DownloadRequest { + /// Creates a `DownloadTask` to `await` a `Data` value. + /// + /// - Parameters: + /// - shouldAutomaticallyCancel: `Bool` determining whether or not the request should be cancelled when the + /// enclosing async context is cancelled. Only applies to `DownloadTask`'s async + /// properties. `true` by default. + /// - dataPreprocessor: `DataPreprocessor` which processes the received `Data` before completion. + /// - emptyResponseCodes: HTTP response codes for which empty responses are allowed. `[204, 205]` by default. + /// - emptyRequestMethods: `HTTPMethod`s for which empty responses are always valid. `[.head]` by default. + /// + /// - Returns: The `DownloadTask`. + public func serializingData(automaticallyCancelling shouldAutomaticallyCancel: Bool = true, + dataPreprocessor: DataPreprocessor = DataResponseSerializer.defaultDataPreprocessor, + emptyResponseCodes: Set = DataResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DataResponseSerializer.defaultEmptyRequestMethods) -> DownloadTask { + serializingDownload(using: DataResponseSerializer(dataPreprocessor: dataPreprocessor, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + automaticallyCancelling: shouldAutomaticallyCancel) + } + + /// Creates a `DownloadTask` to `await` serialization of a `Decodable` value. + /// + /// - Note: This serializer reads the entire response into memory before parsing. + /// + /// - Parameters: + /// - type: `Decodable` type to decode from response data. + /// - shouldAutomaticallyCancel: `Bool` determining whether or not the request should be cancelled when the + /// enclosing async context is cancelled. Only applies to `DownloadTask`'s async + /// properties. `true` by default. + /// - dataPreprocessor: `DataPreprocessor` which processes the received `Data` before calling the serializer. + /// `PassthroughPreprocessor()` by default. + /// - decoder: `DataDecoder` to use to decode the response. `JSONDecoder()` by default. + /// - emptyResponseCodes: HTTP status codes for which empty responses are always valid. `[204, 205]` by default. + /// - emptyRequestMethods: `HTTPMethod`s for which empty responses are always valid. `[.head]` by default. + /// + /// - Returns: The `DownloadTask`. + public func serializingDecodable(_ type: Value.Type = Value.self, + automaticallyCancelling shouldAutomaticallyCancel: Bool = true, + dataPreprocessor: DataPreprocessor = DecodableResponseSerializer.defaultDataPreprocessor, + decoder: DataDecoder = JSONDecoder(), + emptyResponseCodes: Set = DecodableResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DecodableResponseSerializer.defaultEmptyRequestMethods) -> DownloadTask { + serializingDownload(using: DecodableResponseSerializer(dataPreprocessor: dataPreprocessor, + decoder: decoder, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + automaticallyCancelling: shouldAutomaticallyCancel) + } + + /// Creates a `DownloadTask` to `await` serialization of the downloaded file's `URL` on disk. + /// + /// - Parameters: + /// - shouldAutomaticallyCancel: `Bool` determining whether or not the request should be cancelled when the + /// enclosing async context is cancelled. Only applies to `DownloadTask`'s async + /// properties. `true` by default. + /// + /// - Returns: The `DownloadTask`. + public func serializingDownloadedFileURL(automaticallyCancelling shouldAutomaticallyCancel: Bool = true) -> DownloadTask { + serializingDownload(using: URLResponseSerializer(), + automaticallyCancelling: shouldAutomaticallyCancel) + } + + /// Creates a `DownloadTask` to `await` serialization of a `String` value. + /// + /// - Parameters: + /// - shouldAutomaticallyCancel: `Bool` determining whether or not the request should be cancelled when the + /// enclosing async context is cancelled. Only applies to `DownloadTask`'s async + /// properties. `true` by default. + /// - dataPreprocessor: `DataPreprocessor` which processes the received `Data` before calling the + /// serializer. `PassthroughPreprocessor()` by default. + /// - encoding: `String.Encoding` to use during serialization. Defaults to `nil`, in which case + /// the encoding will be determined from the server response, falling back to the + /// default HTTP character set, `ISO-8859-1`. + /// - emptyResponseCodes: HTTP status codes for which empty responses are always valid. `[204, 205]` by default. + /// - emptyRequestMethods: `HTTPMethod`s for which empty responses are always valid. `[.head]` by default. + /// + /// - Returns: The `DownloadTask`. + public func serializingString(automaticallyCancelling shouldAutomaticallyCancel: Bool = true, + dataPreprocessor: DataPreprocessor = StringResponseSerializer.defaultDataPreprocessor, + encoding: String.Encoding? = nil, + emptyResponseCodes: Set = StringResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = StringResponseSerializer.defaultEmptyRequestMethods) -> DownloadTask { + serializingDownload(using: StringResponseSerializer(dataPreprocessor: dataPreprocessor, + encoding: encoding, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + automaticallyCancelling: shouldAutomaticallyCancel) + } + + /// Creates a `DownloadTask` to `await` serialization using the provided `ResponseSerializer` instance. + /// + /// - Parameters: + /// - serializer: `ResponseSerializer` responsible for serializing the request, response, and data. + /// - shouldAutomaticallyCancel: `Bool` determining whether or not the request should be cancelled when the + /// enclosing async context is cancelled. Only applies to `DownloadTask`'s async + /// properties. `true` by default. + /// + /// - Returns: The `DownloadTask`. + public func serializingDownload(using serializer: Serializer, + automaticallyCancelling shouldAutomaticallyCancel: Bool = true) + -> DownloadTask { + downloadTask(automaticallyCancelling: shouldAutomaticallyCancel) { [self] in + response(queue: underlyingQueue, + responseSerializer: serializer, + completionHandler: $0) + } + } + + /// Creates a `DownloadTask` to `await` serialization using the provided `DownloadResponseSerializerProtocol` + /// instance. + /// + /// - Parameters: + /// - serializer: `DownloadResponseSerializerProtocol` responsible for serializing the request, + /// response, and data. + /// - shouldAutomaticallyCancel: `Bool` determining whether or not the request should be cancelled when the + /// enclosing async context is cancelled. Only applies to `DownloadTask`'s async + /// properties. `true` by default. + /// + /// - Returns: The `DownloadTask`. + public func serializingDownload(using serializer: Serializer, + automaticallyCancelling shouldAutomaticallyCancel: Bool = true) + -> DownloadTask { + downloadTask(automaticallyCancelling: shouldAutomaticallyCancel) { [self] in + response(queue: underlyingQueue, + responseSerializer: serializer, + completionHandler: $0) + } + } + + private func downloadTask(automaticallyCancelling shouldAutomaticallyCancel: Bool, + forResponse onResponse: @escaping (@escaping (DownloadResponse) -> Void) -> Void) + -> DownloadTask { + let task = Task { + await withTaskCancellationHandler { + await withCheckedContinuation { continuation in + onResponse { + continuation.resume(returning: $0) + } + } + } onCancel: { + self.cancel() + } + } + + return DownloadTask(request: self, task: task, shouldAutomaticallyCancel: shouldAutomaticallyCancel) + } +} + +// MARK: - DataStreamTask + +@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) +public struct DataStreamTask { + // Type of created streams. + public typealias Stream = StreamOf> + + private let request: DataStreamRequest + + fileprivate init(request: DataStreamRequest) { + self.request = request + } + + /// Creates a `Stream` of `Data` values from the underlying `DataStreamRequest`. + /// + /// - Parameters: + /// - shouldAutomaticallyCancel: `Bool` indicating whether the underlying `DataStreamRequest` should be canceled + /// which observation of the stream stops. `true` by default. + /// - bufferingPolicy: ` BufferingPolicy` that determines the stream's buffering behavior.`.unbounded` by default. + /// + /// - Returns: The `Stream`. + public func streamingData(automaticallyCancelling shouldAutomaticallyCancel: Bool = true, bufferingPolicy: Stream.BufferingPolicy = .unbounded) -> Stream { + createStream(automaticallyCancelling: shouldAutomaticallyCancel, bufferingPolicy: bufferingPolicy) { onStream in + request.responseStream(on: .streamCompletionQueue(forRequestID: request.id), stream: onStream) + } + } + + /// Creates a `Stream` of `UTF-8` `String`s from the underlying `DataStreamRequest`. + /// + /// - Parameters: + /// - shouldAutomaticallyCancel: `Bool` indicating whether the underlying `DataStreamRequest` should be canceled + /// which observation of the stream stops. `true` by default. + /// - bufferingPolicy: ` BufferingPolicy` that determines the stream's buffering behavior.`.unbounded` by default. + /// - Returns: + public func streamingStrings(automaticallyCancelling shouldAutomaticallyCancel: Bool = true, bufferingPolicy: Stream.BufferingPolicy = .unbounded) -> Stream { + createStream(automaticallyCancelling: shouldAutomaticallyCancel, bufferingPolicy: bufferingPolicy) { onStream in + request.responseStreamString(on: .streamCompletionQueue(forRequestID: request.id), stream: onStream) + } + } + + /// Creates a `Stream` of `Decodable` values from the underlying `DataStreamRequest`. + /// + /// - Parameters: + /// - type: `Decodable` type to be serialized from stream payloads. + /// - shouldAutomaticallyCancel: `Bool` indicating whether the underlying `DataStreamRequest` should be canceled + /// which observation of the stream stops. `true` by default. + /// - bufferingPolicy: `BufferingPolicy` that determines the stream's buffering behavior.`.unbounded` by default. + /// + /// - Returns: The `Stream`. + public func streamingDecodables(_ type: T.Type = T.self, + automaticallyCancelling shouldAutomaticallyCancel: Bool = true, + bufferingPolicy: Stream.BufferingPolicy = .unbounded) + -> Stream where T: Decodable { + streamingResponses(serializedUsing: DecodableStreamSerializer(), + automaticallyCancelling: shouldAutomaticallyCancel, + bufferingPolicy: bufferingPolicy) + } + + /// Creates a `Stream` of values using the provided `DataStreamSerializer` from the underlying `DataStreamRequest`. + /// + /// - Parameters: + /// - serializer: `DataStreamSerializer` to use to serialize incoming `Data`. + /// - shouldAutomaticallyCancel: `Bool` indicating whether the underlying `DataStreamRequest` should be canceled + /// which observation of the stream stops. `true` by default. + /// - bufferingPolicy: `BufferingPolicy` that determines the stream's buffering behavior.`.unbounded` by default. + /// + /// - Returns: The `Stream`. + public func streamingResponses(serializedUsing serializer: Serializer, + automaticallyCancelling shouldAutomaticallyCancel: Bool = true, + bufferingPolicy: Stream.BufferingPolicy = .unbounded) + -> Stream { + createStream(automaticallyCancelling: shouldAutomaticallyCancel, bufferingPolicy: bufferingPolicy) { onStream in + request.responseStream(using: serializer, + on: .streamCompletionQueue(forRequestID: request.id), + stream: onStream) + } + } + + private func createStream(automaticallyCancelling shouldAutomaticallyCancel: Bool = true, + bufferingPolicy: Stream.BufferingPolicy = .unbounded, + forResponse onResponse: @escaping (@escaping (DataStreamRequest.Stream) -> Void) -> Void) + -> Stream { + StreamOf(bufferingPolicy: bufferingPolicy) { + guard shouldAutomaticallyCancel, + request.isInitialized || request.isResumed || request.isSuspended else { return } + + cancel() + } builder: { continuation in + onResponse { stream in + continuation.yield(stream) + if case .complete = stream.event { + continuation.finish() + } + } + } + } + + /// Cancel the underlying `DataStreamRequest`. + public func cancel() { + request.cancel() + } + + /// Resume the underlying `DataStreamRequest`. + public func resume() { + request.resume() + } + + /// Suspend the underlying `DataStreamRequest`. + public func suspend() { + request.suspend() + } +} + +@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) +extension DataStreamRequest { + /// Creates a `StreamOf` for the instance's responses. + /// + /// - Parameter bufferingPolicy: `BufferingPolicy` that determines the stream's buffering behavior.`.unbounded` by default. + /// + /// - Returns: The `StreamOf`. + public func httpResponses(bufferingPolicy: StreamOf.BufferingPolicy = .unbounded) -> StreamOf { + stream(bufferingPolicy: bufferingPolicy) { [unowned self] continuation in + onHTTPResponse(on: underlyingQueue) { response in + continuation.yield(response) + } + } + } + + #if swift(>=5.7) + /// Sets an async closure returning a `Request.ResponseDisposition`, called whenever the `DataStreamRequest` + /// produces an `HTTPURLResponse`. + /// + /// - Note: Most requests will only produce a single response for each outgoing attempt (initial + retries). + /// However, some types of response may trigger multiple `HTTPURLResponse`s, such as multipart streams, + /// where responses after the first will contain the part headers. + /// + /// - Parameters: + /// - handler: Async closure executed when a new `HTTPURLResponse` is received and returning a + /// `ResponseDisposition` value. This value determines whether to continue the request or cancel it as + /// if `cancel()` had been called on the instance. Note, this closure is called on an arbitrary thread, + /// so any synchronous calls in it will execute in that context. + /// + /// - Returns: The instance. + @_disfavoredOverload + @discardableResult + public func onHTTPResponse(perform handler: @escaping @Sendable (HTTPURLResponse) async -> ResponseDisposition) -> Self { + onHTTPResponse(on: underlyingQueue) { response, completionHandler in + Task { + let disposition = await handler(response) + completionHandler(disposition) + } + } + + return self + } + + /// Sets an async closure called whenever the `DataStreamRequest` produces an `HTTPURLResponse`. + /// + /// - Note: Most requests will only produce a single response for each outgoing attempt (initial + retries). + /// However, some types of response may trigger multiple `HTTPURLResponse`s, such as multipart streams, + /// where responses after the first will contain the part headers. + /// + /// - Parameters: + /// - handler: Async closure executed when a new `HTTPURLResponse` is received. Note, this closure is called on an + /// arbitrary thread, so any synchronous calls in it will execute in that context. + /// + /// - Returns: The instance. + @discardableResult + public func onHTTPResponse(perform handler: @escaping @Sendable (HTTPURLResponse) async -> Void) -> Self { + onHTTPResponse { response in + await handler(response) + return .allow + } + + return self + } + #endif + + /// Creates a `DataStreamTask` used to `await` streams of serialized values. + /// + /// - Returns: The `DataStreamTask`. + public func streamTask() -> DataStreamTask { + DataStreamTask(request: self) + } +} + +extension DispatchQueue { + fileprivate static let singleEventQueue = DispatchQueue(label: "org.alamofire.concurrencySingleEventQueue", + attributes: .concurrent) + + fileprivate static func streamCompletionQueue(forRequestID id: UUID) -> DispatchQueue { + DispatchQueue(label: "org.alamofire.concurrencyStreamCompletionQueue-\(id)", target: .singleEventQueue) + } +} + +/// An asynchronous sequence generated from an underlying `AsyncStream`. Only produced by Alamofire. +@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) +public struct StreamOf: AsyncSequence { + public typealias AsyncIterator = Iterator + public typealias BufferingPolicy = AsyncStream.Continuation.BufferingPolicy + fileprivate typealias Continuation = AsyncStream.Continuation + + private let bufferingPolicy: BufferingPolicy + private let onTermination: (() -> Void)? + private let builder: (Continuation) -> Void + + fileprivate init(bufferingPolicy: BufferingPolicy = .unbounded, + onTermination: (() -> Void)? = nil, + builder: @escaping (Continuation) -> Void) { + self.bufferingPolicy = bufferingPolicy + self.onTermination = onTermination + self.builder = builder + } + + public func makeAsyncIterator() -> Iterator { + var continuation: AsyncStream.Continuation? + let stream = AsyncStream(bufferingPolicy: bufferingPolicy) { innerContinuation in + continuation = innerContinuation + builder(innerContinuation) + } + + return Iterator(iterator: stream.makeAsyncIterator()) { + continuation?.finish() + onTermination?() + } + } + + public struct Iterator: AsyncIteratorProtocol { + private final class Token { + private let onDeinit: () -> Void + + init(onDeinit: @escaping () -> Void) { + self.onDeinit = onDeinit + } + + deinit { + onDeinit() + } + } + + private var iterator: AsyncStream.AsyncIterator + private let token: Token + + init(iterator: AsyncStream.AsyncIterator, onCancellation: @escaping () -> Void) { + self.iterator = iterator + token = Token(onDeinit: onCancellation) + } + + public mutating func next() async -> Element? { + await iterator.next() + } + } +} + +#endif diff --git a/Pods/Alamofire/Source/DispatchQueue+Alamofire.swift b/Pods/Alamofire/Source/DispatchQueue+Alamofire.swift new file mode 100644 index 0000000..10cd273 --- /dev/null +++ b/Pods/Alamofire/Source/DispatchQueue+Alamofire.swift @@ -0,0 +1,37 @@ +// +// DispatchQueue+Alamofire.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Dispatch +import Foundation + +extension DispatchQueue { + /// Execute the provided closure after a `TimeInterval`. + /// + /// - Parameters: + /// - delay: `TimeInterval` to delay execution. + /// - closure: Closure to execute. + func after(_ delay: TimeInterval, execute closure: @escaping () -> Void) { + asyncAfter(deadline: .now() + delay, execute: closure) + } +} diff --git a/Pods/Alamofire/Source/EventMonitor.swift b/Pods/Alamofire/Source/EventMonitor.swift new file mode 100644 index 0000000..75b60f2 --- /dev/null +++ b/Pods/Alamofire/Source/EventMonitor.swift @@ -0,0 +1,907 @@ +// +// EventMonitor.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// Protocol outlining the lifetime events inside Alamofire. It includes both events received from the various +/// `URLSession` delegate protocols as well as various events from the lifetime of `Request` and its subclasses. +public protocol EventMonitor { + /// The `DispatchQueue` onto which Alamofire's root `CompositeEventMonitor` will dispatch events. `.main` by default. + var queue: DispatchQueue { get } + + // MARK: - URLSession Events + + // MARK: URLSessionDelegate Events + + /// Event called during `URLSessionDelegate`'s `urlSession(_:didBecomeInvalidWithError:)` method. + func urlSession(_ session: URLSession, didBecomeInvalidWithError error: Error?) + + // MARK: URLSessionTaskDelegate Events + + /// Event called during `URLSessionTaskDelegate`'s `urlSession(_:task:didReceive:completionHandler:)` method. + func urlSession(_ session: URLSession, task: URLSessionTask, didReceive challenge: URLAuthenticationChallenge) + + /// Event called during `URLSessionTaskDelegate`'s `urlSession(_:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:)` method. + func urlSession(_ session: URLSession, + task: URLSessionTask, + didSendBodyData bytesSent: Int64, + totalBytesSent: Int64, + totalBytesExpectedToSend: Int64) + + /// Event called during `URLSessionTaskDelegate`'s `urlSession(_:task:needNewBodyStream:)` method. + func urlSession(_ session: URLSession, taskNeedsNewBodyStream task: URLSessionTask) + + /// Event called during `URLSessionTaskDelegate`'s `urlSession(_:task:willPerformHTTPRedirection:newRequest:completionHandler:)` method. + func urlSession(_ session: URLSession, + task: URLSessionTask, + willPerformHTTPRedirection response: HTTPURLResponse, + newRequest request: URLRequest) + + /// Event called during `URLSessionTaskDelegate`'s `urlSession(_:task:didFinishCollecting:)` method. + func urlSession(_ session: URLSession, task: URLSessionTask, didFinishCollecting metrics: URLSessionTaskMetrics) + + /// Event called during `URLSessionTaskDelegate`'s `urlSession(_:task:didCompleteWithError:)` method. + func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) + + /// Event called during `URLSessionTaskDelegate`'s `urlSession(_:taskIsWaitingForConnectivity:)` method. + func urlSession(_ session: URLSession, taskIsWaitingForConnectivity task: URLSessionTask) + + // MARK: URLSessionDataDelegate Events + + /// Event called during `URLSessionDataDelegate`'s `urlSession(_:dataTask:didReceive:completionHandler:)` method. + func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive response: URLResponse) + + /// Event called during `URLSessionDataDelegate`'s `urlSession(_:dataTask:didReceive:)` method. + func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) + + /// Event called during `URLSessionDataDelegate`'s `urlSession(_:dataTask:willCacheResponse:completionHandler:)` method. + func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, willCacheResponse proposedResponse: CachedURLResponse) + + // MARK: URLSessionDownloadDelegate Events + + /// Event called during `URLSessionDownloadDelegate`'s `urlSession(_:downloadTask:didResumeAtOffset:expectedTotalBytes:)` method. + func urlSession(_ session: URLSession, + downloadTask: URLSessionDownloadTask, + didResumeAtOffset fileOffset: Int64, + expectedTotalBytes: Int64) + + /// Event called during `URLSessionDownloadDelegate`'s `urlSession(_:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:)` method. + func urlSession(_ session: URLSession, + downloadTask: URLSessionDownloadTask, + didWriteData bytesWritten: Int64, + totalBytesWritten: Int64, + totalBytesExpectedToWrite: Int64) + + /// Event called during `URLSessionDownloadDelegate`'s `urlSession(_:downloadTask:didFinishDownloadingTo:)` method. + func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) + + // MARK: - Request Events + + /// Event called when a `URLRequest` is first created for a `Request`. If a `RequestAdapter` is active, the + /// `URLRequest` will be adapted before being issued. + func request(_ request: Request, didCreateInitialURLRequest urlRequest: URLRequest) + + /// Event called when the attempt to create a `URLRequest` from a `Request`'s original `URLRequestConvertible` value fails. + func request(_ request: Request, didFailToCreateURLRequestWithError error: AFError) + + /// Event called when a `RequestAdapter` adapts the `Request`'s initial `URLRequest`. + func request(_ request: Request, didAdaptInitialRequest initialRequest: URLRequest, to adaptedRequest: URLRequest) + + /// Event called when a `RequestAdapter` fails to adapt the `Request`'s initial `URLRequest`. + func request(_ request: Request, didFailToAdaptURLRequest initialRequest: URLRequest, withError error: AFError) + + /// Event called when a final `URLRequest` is created for a `Request`. + func request(_ request: Request, didCreateURLRequest urlRequest: URLRequest) + + /// Event called when a `URLSessionTask` subclass instance is created for a `Request`. + func request(_ request: Request, didCreateTask task: URLSessionTask) + + /// Event called when a `Request` receives a `URLSessionTaskMetrics` value. + func request(_ request: Request, didGatherMetrics metrics: URLSessionTaskMetrics) + + /// Event called when a `Request` fails due to an error created by Alamofire. e.g. When certificate pinning fails. + func request(_ request: Request, didFailTask task: URLSessionTask, earlyWithError error: AFError) + + /// Event called when a `Request`'s task completes, possibly with an error. A `Request` may receive this event + /// multiple times if it is retried. + func request(_ request: Request, didCompleteTask task: URLSessionTask, with error: AFError?) + + /// Event called when a `Request` is about to be retried. + func requestIsRetrying(_ request: Request) + + /// Event called when a `Request` finishes and response serializers are being called. + func requestDidFinish(_ request: Request) + + /// Event called when a `Request` receives a `resume` call. + func requestDidResume(_ request: Request) + + /// Event called when a `Request`'s associated `URLSessionTask` is resumed. + func request(_ request: Request, didResumeTask task: URLSessionTask) + + /// Event called when a `Request` receives a `suspend` call. + func requestDidSuspend(_ request: Request) + + /// Event called when a `Request`'s associated `URLSessionTask` is suspended. + func request(_ request: Request, didSuspendTask task: URLSessionTask) + + /// Event called when a `Request` receives a `cancel` call. + func requestDidCancel(_ request: Request) + + /// Event called when a `Request`'s associated `URLSessionTask` is cancelled. + func request(_ request: Request, didCancelTask task: URLSessionTask) + + // MARK: DataRequest Events + + /// Event called when a `DataRequest` calls a `Validation`. + func request(_ request: DataRequest, + didValidateRequest urlRequest: URLRequest?, + response: HTTPURLResponse, + data: Data?, + withResult result: Request.ValidationResult) + + /// Event called when a `DataRequest` creates a `DataResponse` value without calling a `ResponseSerializer`. + func request(_ request: DataRequest, didParseResponse response: DataResponse) + + /// Event called when a `DataRequest` calls a `ResponseSerializer` and creates a generic `DataResponse`. + func request(_ request: DataRequest, didParseResponse response: DataResponse) + + // MARK: DataStreamRequest Events + + /// Event called when a `DataStreamRequest` calls a `Validation` closure. + /// + /// - Parameters: + /// - request: `DataStreamRequest` which is calling the `Validation`. + /// - urlRequest: `URLRequest` of the request being validated. + /// - response: `HTTPURLResponse` of the request being validated. + /// - result: Produced `ValidationResult`. + func request(_ request: DataStreamRequest, + didValidateRequest urlRequest: URLRequest?, + response: HTTPURLResponse, + withResult result: Request.ValidationResult) + + /// Event called when a `DataStreamSerializer` produces a value from streamed `Data`. + /// + /// - Parameters: + /// - request: `DataStreamRequest` for which the value was serialized. + /// - result: `Result` of the serialization attempt. + func request(_ request: DataStreamRequest, didParseStream result: Result) + + // MARK: UploadRequest Events + + /// Event called when an `UploadRequest` creates its `Uploadable` value, indicating the type of upload it represents. + func request(_ request: UploadRequest, didCreateUploadable uploadable: UploadRequest.Uploadable) + + /// Event called when an `UploadRequest` failed to create its `Uploadable` value due to an error. + func request(_ request: UploadRequest, didFailToCreateUploadableWithError error: AFError) + + /// Event called when an `UploadRequest` provides the `InputStream` from its `Uploadable` value. This only occurs if + /// the `InputStream` does not wrap a `Data` value or file `URL`. + func request(_ request: UploadRequest, didProvideInputStream stream: InputStream) + + // MARK: DownloadRequest Events + + /// Event called when a `DownloadRequest`'s `URLSessionDownloadTask` finishes and the temporary file has been moved. + func request(_ request: DownloadRequest, didFinishDownloadingUsing task: URLSessionTask, with result: Result) + + /// Event called when a `DownloadRequest`'s `Destination` closure is called and creates the destination URL the + /// downloaded file will be moved to. + func request(_ request: DownloadRequest, didCreateDestinationURL url: URL) + + /// Event called when a `DownloadRequest` calls a `Validation`. + func request(_ request: DownloadRequest, + didValidateRequest urlRequest: URLRequest?, + response: HTTPURLResponse, + fileURL: URL?, + withResult result: Request.ValidationResult) + + /// Event called when a `DownloadRequest` creates a `DownloadResponse` without calling a `ResponseSerializer`. + func request(_ request: DownloadRequest, didParseResponse response: DownloadResponse) + + /// Event called when a `DownloadRequest` calls a `DownloadResponseSerializer` and creates a generic `DownloadResponse` + func request(_ request: DownloadRequest, didParseResponse response: DownloadResponse) +} + +extension EventMonitor { + /// The default queue on which `CompositeEventMonitor`s will call the `EventMonitor` methods. `.main` by default. + public var queue: DispatchQueue { .main } + + // MARK: Default Implementations + + public func urlSession(_ session: URLSession, didBecomeInvalidWithError error: Error?) {} + public func urlSession(_ session: URLSession, + task: URLSessionTask, + didReceive challenge: URLAuthenticationChallenge) {} + public func urlSession(_ session: URLSession, + task: URLSessionTask, + didSendBodyData bytesSent: Int64, + totalBytesSent: Int64, + totalBytesExpectedToSend: Int64) {} + public func urlSession(_ session: URLSession, taskNeedsNewBodyStream task: URLSessionTask) {} + public func urlSession(_ session: URLSession, + task: URLSessionTask, + willPerformHTTPRedirection response: HTTPURLResponse, + newRequest request: URLRequest) {} + public func urlSession(_ session: URLSession, + task: URLSessionTask, + didFinishCollecting metrics: URLSessionTaskMetrics) {} + public func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {} + public func urlSession(_ session: URLSession, taskIsWaitingForConnectivity task: URLSessionTask) {} + public func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive response: URLResponse) {} + public func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {} + public func urlSession(_ session: URLSession, + dataTask: URLSessionDataTask, + willCacheResponse proposedResponse: CachedURLResponse) {} + public func urlSession(_ session: URLSession, + downloadTask: URLSessionDownloadTask, + didResumeAtOffset fileOffset: Int64, + expectedTotalBytes: Int64) {} + public func urlSession(_ session: URLSession, + downloadTask: URLSessionDownloadTask, + didWriteData bytesWritten: Int64, + totalBytesWritten: Int64, + totalBytesExpectedToWrite: Int64) {} + public func urlSession(_ session: URLSession, + downloadTask: URLSessionDownloadTask, + didFinishDownloadingTo location: URL) {} + public func request(_ request: Request, didCreateInitialURLRequest urlRequest: URLRequest) {} + public func request(_ request: Request, didFailToCreateURLRequestWithError error: AFError) {} + public func request(_ request: Request, + didAdaptInitialRequest initialRequest: URLRequest, + to adaptedRequest: URLRequest) {} + public func request(_ request: Request, + didFailToAdaptURLRequest initialRequest: URLRequest, + withError error: AFError) {} + public func request(_ request: Request, didCreateURLRequest urlRequest: URLRequest) {} + public func request(_ request: Request, didCreateTask task: URLSessionTask) {} + public func request(_ request: Request, didGatherMetrics metrics: URLSessionTaskMetrics) {} + public func request(_ request: Request, didFailTask task: URLSessionTask, earlyWithError error: AFError) {} + public func request(_ request: Request, didCompleteTask task: URLSessionTask, with error: AFError?) {} + public func requestIsRetrying(_ request: Request) {} + public func requestDidFinish(_ request: Request) {} + public func requestDidResume(_ request: Request) {} + public func request(_ request: Request, didResumeTask task: URLSessionTask) {} + public func requestDidSuspend(_ request: Request) {} + public func request(_ request: Request, didSuspendTask task: URLSessionTask) {} + public func requestDidCancel(_ request: Request) {} + public func request(_ request: Request, didCancelTask task: URLSessionTask) {} + public func request(_ request: DataRequest, + didValidateRequest urlRequest: URLRequest?, + response: HTTPURLResponse, + data: Data?, + withResult result: Request.ValidationResult) {} + public func request(_ request: DataRequest, didParseResponse response: DataResponse) {} + public func request(_ request: DataRequest, didParseResponse response: DataResponse) {} + public func request(_ request: DataStreamRequest, + didValidateRequest urlRequest: URLRequest?, + response: HTTPURLResponse, + withResult result: Request.ValidationResult) {} + public func request(_ request: DataStreamRequest, didParseStream result: Result) {} + public func request(_ request: UploadRequest, didCreateUploadable uploadable: UploadRequest.Uploadable) {} + public func request(_ request: UploadRequest, didFailToCreateUploadableWithError error: AFError) {} + public func request(_ request: UploadRequest, didProvideInputStream stream: InputStream) {} + public func request(_ request: DownloadRequest, didFinishDownloadingUsing task: URLSessionTask, with result: Result) {} + public func request(_ request: DownloadRequest, didCreateDestinationURL url: URL) {} + public func request(_ request: DownloadRequest, + didValidateRequest urlRequest: URLRequest?, + response: HTTPURLResponse, + fileURL: URL?, + withResult result: Request.ValidationResult) {} + public func request(_ request: DownloadRequest, didParseResponse response: DownloadResponse) {} + public func request(_ request: DownloadRequest, didParseResponse response: DownloadResponse) {} +} + +/// An `EventMonitor` which can contain multiple `EventMonitor`s and calls their methods on their queues. +public final class CompositeEventMonitor: EventMonitor { + public let queue = DispatchQueue(label: "org.alamofire.compositeEventMonitor", qos: .utility) + + let monitors: [EventMonitor] + + init(monitors: [EventMonitor]) { + self.monitors = monitors + } + + func performEvent(_ event: @escaping (EventMonitor) -> Void) { + queue.async { + for monitor in self.monitors { + monitor.queue.async { event(monitor) } + } + } + } + + public func urlSession(_ session: URLSession, didBecomeInvalidWithError error: Error?) { + performEvent { $0.urlSession(session, didBecomeInvalidWithError: error) } + } + + public func urlSession(_ session: URLSession, + task: URLSessionTask, + didReceive challenge: URLAuthenticationChallenge) { + performEvent { $0.urlSession(session, task: task, didReceive: challenge) } + } + + public func urlSession(_ session: URLSession, + task: URLSessionTask, + didSendBodyData bytesSent: Int64, + totalBytesSent: Int64, + totalBytesExpectedToSend: Int64) { + performEvent { + $0.urlSession(session, + task: task, + didSendBodyData: bytesSent, + totalBytesSent: totalBytesSent, + totalBytesExpectedToSend: totalBytesExpectedToSend) + } + } + + public func urlSession(_ session: URLSession, taskNeedsNewBodyStream task: URLSessionTask) { + performEvent { + $0.urlSession(session, taskNeedsNewBodyStream: task) + } + } + + public func urlSession(_ session: URLSession, + task: URLSessionTask, + willPerformHTTPRedirection response: HTTPURLResponse, + newRequest request: URLRequest) { + performEvent { + $0.urlSession(session, + task: task, + willPerformHTTPRedirection: response, + newRequest: request) + } + } + + public func urlSession(_ session: URLSession, task: URLSessionTask, didFinishCollecting metrics: URLSessionTaskMetrics) { + performEvent { $0.urlSession(session, task: task, didFinishCollecting: metrics) } + } + + public func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { + performEvent { $0.urlSession(session, task: task, didCompleteWithError: error) } + } + + @available(macOS 10.13, iOS 11.0, tvOS 11.0, watchOS 4.0, *) + public func urlSession(_ session: URLSession, taskIsWaitingForConnectivity task: URLSessionTask) { + performEvent { $0.urlSession(session, taskIsWaitingForConnectivity: task) } + } + + public func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive response: URLResponse) { + performEvent { $0.urlSession(session, dataTask: dataTask, didReceive: response) } + } + + public func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { + performEvent { $0.urlSession(session, dataTask: dataTask, didReceive: data) } + } + + public func urlSession(_ session: URLSession, + dataTask: URLSessionDataTask, + willCacheResponse proposedResponse: CachedURLResponse) { + performEvent { $0.urlSession(session, dataTask: dataTask, willCacheResponse: proposedResponse) } + } + + public func urlSession(_ session: URLSession, + downloadTask: URLSessionDownloadTask, + didResumeAtOffset fileOffset: Int64, + expectedTotalBytes: Int64) { + performEvent { + $0.urlSession(session, + downloadTask: downloadTask, + didResumeAtOffset: fileOffset, + expectedTotalBytes: expectedTotalBytes) + } + } + + public func urlSession(_ session: URLSession, + downloadTask: URLSessionDownloadTask, + didWriteData bytesWritten: Int64, + totalBytesWritten: Int64, + totalBytesExpectedToWrite: Int64) { + performEvent { + $0.urlSession(session, + downloadTask: downloadTask, + didWriteData: bytesWritten, + totalBytesWritten: totalBytesWritten, + totalBytesExpectedToWrite: totalBytesExpectedToWrite) + } + } + + public func urlSession(_ session: URLSession, + downloadTask: URLSessionDownloadTask, + didFinishDownloadingTo location: URL) { + performEvent { $0.urlSession(session, downloadTask: downloadTask, didFinishDownloadingTo: location) } + } + + public func request(_ request: Request, didCreateInitialURLRequest urlRequest: URLRequest) { + performEvent { $0.request(request, didCreateInitialURLRequest: urlRequest) } + } + + public func request(_ request: Request, didFailToCreateURLRequestWithError error: AFError) { + performEvent { $0.request(request, didFailToCreateURLRequestWithError: error) } + } + + public func request(_ request: Request, didAdaptInitialRequest initialRequest: URLRequest, to adaptedRequest: URLRequest) { + performEvent { $0.request(request, didAdaptInitialRequest: initialRequest, to: adaptedRequest) } + } + + public func request(_ request: Request, didFailToAdaptURLRequest initialRequest: URLRequest, withError error: AFError) { + performEvent { $0.request(request, didFailToAdaptURLRequest: initialRequest, withError: error) } + } + + public func request(_ request: Request, didCreateURLRequest urlRequest: URLRequest) { + performEvent { $0.request(request, didCreateURLRequest: urlRequest) } + } + + public func request(_ request: Request, didCreateTask task: URLSessionTask) { + performEvent { $0.request(request, didCreateTask: task) } + } + + public func request(_ request: Request, didGatherMetrics metrics: URLSessionTaskMetrics) { + performEvent { $0.request(request, didGatherMetrics: metrics) } + } + + public func request(_ request: Request, didFailTask task: URLSessionTask, earlyWithError error: AFError) { + performEvent { $0.request(request, didFailTask: task, earlyWithError: error) } + } + + public func request(_ request: Request, didCompleteTask task: URLSessionTask, with error: AFError?) { + performEvent { $0.request(request, didCompleteTask: task, with: error) } + } + + public func requestIsRetrying(_ request: Request) { + performEvent { $0.requestIsRetrying(request) } + } + + public func requestDidFinish(_ request: Request) { + performEvent { $0.requestDidFinish(request) } + } + + public func requestDidResume(_ request: Request) { + performEvent { $0.requestDidResume(request) } + } + + public func request(_ request: Request, didResumeTask task: URLSessionTask) { + performEvent { $0.request(request, didResumeTask: task) } + } + + public func requestDidSuspend(_ request: Request) { + performEvent { $0.requestDidSuspend(request) } + } + + public func request(_ request: Request, didSuspendTask task: URLSessionTask) { + performEvent { $0.request(request, didSuspendTask: task) } + } + + public func requestDidCancel(_ request: Request) { + performEvent { $0.requestDidCancel(request) } + } + + public func request(_ request: Request, didCancelTask task: URLSessionTask) { + performEvent { $0.request(request, didCancelTask: task) } + } + + public func request(_ request: DataRequest, + didValidateRequest urlRequest: URLRequest?, + response: HTTPURLResponse, + data: Data?, + withResult result: Request.ValidationResult) { + performEvent { $0.request(request, + didValidateRequest: urlRequest, + response: response, + data: data, + withResult: result) + } + } + + public func request(_ request: DataRequest, didParseResponse response: DataResponse) { + performEvent { $0.request(request, didParseResponse: response) } + } + + public func request(_ request: DataRequest, didParseResponse response: DataResponse) { + performEvent { $0.request(request, didParseResponse: response) } + } + + public func request(_ request: DataStreamRequest, + didValidateRequest urlRequest: URLRequest?, + response: HTTPURLResponse, + withResult result: Request.ValidationResult) { + performEvent { $0.request(request, + didValidateRequest: urlRequest, + response: response, + withResult: result) + } + } + + public func request(_ request: DataStreamRequest, didParseStream result: Result) { + performEvent { $0.request(request, didParseStream: result) } + } + + public func request(_ request: UploadRequest, didCreateUploadable uploadable: UploadRequest.Uploadable) { + performEvent { $0.request(request, didCreateUploadable: uploadable) } + } + + public func request(_ request: UploadRequest, didFailToCreateUploadableWithError error: AFError) { + performEvent { $0.request(request, didFailToCreateUploadableWithError: error) } + } + + public func request(_ request: UploadRequest, didProvideInputStream stream: InputStream) { + performEvent { $0.request(request, didProvideInputStream: stream) } + } + + public func request(_ request: DownloadRequest, didFinishDownloadingUsing task: URLSessionTask, with result: Result) { + performEvent { $0.request(request, didFinishDownloadingUsing: task, with: result) } + } + + public func request(_ request: DownloadRequest, didCreateDestinationURL url: URL) { + performEvent { $0.request(request, didCreateDestinationURL: url) } + } + + public func request(_ request: DownloadRequest, + didValidateRequest urlRequest: URLRequest?, + response: HTTPURLResponse, + fileURL: URL?, + withResult result: Request.ValidationResult) { + performEvent { $0.request(request, + didValidateRequest: urlRequest, + response: response, + fileURL: fileURL, + withResult: result) } + } + + public func request(_ request: DownloadRequest, didParseResponse response: DownloadResponse) { + performEvent { $0.request(request, didParseResponse: response) } + } + + public func request(_ request: DownloadRequest, didParseResponse response: DownloadResponse) { + performEvent { $0.request(request, didParseResponse: response) } + } +} + +/// `EventMonitor` that allows optional closures to be set to receive events. +open class ClosureEventMonitor: EventMonitor { + /// Closure called on the `urlSession(_:didBecomeInvalidWithError:)` event. + open var sessionDidBecomeInvalidWithError: ((URLSession, Error?) -> Void)? + + /// Closure called on the `urlSession(_:task:didReceive:completionHandler:)`. + open var taskDidReceiveChallenge: ((URLSession, URLSessionTask, URLAuthenticationChallenge) -> Void)? + + /// Closure that receives `urlSession(_:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:)` event. + open var taskDidSendBodyData: ((URLSession, URLSessionTask, Int64, Int64, Int64) -> Void)? + + /// Closure called on the `urlSession(_:task:needNewBodyStream:)` event. + open var taskNeedNewBodyStream: ((URLSession, URLSessionTask) -> Void)? + + /// Closure called on the `urlSession(_:task:willPerformHTTPRedirection:newRequest:completionHandler:)` event. + open var taskWillPerformHTTPRedirection: ((URLSession, URLSessionTask, HTTPURLResponse, URLRequest) -> Void)? + + /// Closure called on the `urlSession(_:task:didFinishCollecting:)` event. + open var taskDidFinishCollectingMetrics: ((URLSession, URLSessionTask, URLSessionTaskMetrics) -> Void)? + + /// Closure called on the `urlSession(_:task:didCompleteWithError:)` event. + open var taskDidComplete: ((URLSession, URLSessionTask, Error?) -> Void)? + + /// Closure called on the `urlSession(_:taskIsWaitingForConnectivity:)` event. + open var taskIsWaitingForConnectivity: ((URLSession, URLSessionTask) -> Void)? + + /// Closure called on the `urlSession(_:dataTask:didReceive:completionHandler:)` event. + open var dataTaskDidReceiveResponse: ((URLSession, URLSessionDataTask, URLResponse) -> Void)? + + /// Closure that receives the `urlSession(_:dataTask:didReceive:)` event. + open var dataTaskDidReceiveData: ((URLSession, URLSessionDataTask, Data) -> Void)? + + /// Closure called on the `urlSession(_:dataTask:willCacheResponse:completionHandler:)` event. + open var dataTaskWillCacheResponse: ((URLSession, URLSessionDataTask, CachedURLResponse) -> Void)? + + /// Closure called on the `urlSession(_:downloadTask:didFinishDownloadingTo:)` event. + open var downloadTaskDidFinishDownloadingToURL: ((URLSession, URLSessionDownloadTask, URL) -> Void)? + + /// Closure called on the `urlSession(_:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:)` + /// event. + open var downloadTaskDidWriteData: ((URLSession, URLSessionDownloadTask, Int64, Int64, Int64) -> Void)? + + /// Closure called on the `urlSession(_:downloadTask:didResumeAtOffset:expectedTotalBytes:)` event. + open var downloadTaskDidResumeAtOffset: ((URLSession, URLSessionDownloadTask, Int64, Int64) -> Void)? + + // MARK: - Request Events + + /// Closure called on the `request(_:didCreateInitialURLRequest:)` event. + open var requestDidCreateInitialURLRequest: ((Request, URLRequest) -> Void)? + + /// Closure called on the `request(_:didFailToCreateURLRequestWithError:)` event. + open var requestDidFailToCreateURLRequestWithError: ((Request, AFError) -> Void)? + + /// Closure called on the `request(_:didAdaptInitialRequest:to:)` event. + open var requestDidAdaptInitialRequestToAdaptedRequest: ((Request, URLRequest, URLRequest) -> Void)? + + /// Closure called on the `request(_:didFailToAdaptURLRequest:withError:)` event. + open var requestDidFailToAdaptURLRequestWithError: ((Request, URLRequest, AFError) -> Void)? + + /// Closure called on the `request(_:didCreateURLRequest:)` event. + open var requestDidCreateURLRequest: ((Request, URLRequest) -> Void)? + + /// Closure called on the `request(_:didCreateTask:)` event. + open var requestDidCreateTask: ((Request, URLSessionTask) -> Void)? + + /// Closure called on the `request(_:didGatherMetrics:)` event. + open var requestDidGatherMetrics: ((Request, URLSessionTaskMetrics) -> Void)? + + /// Closure called on the `request(_:didFailTask:earlyWithError:)` event. + open var requestDidFailTaskEarlyWithError: ((Request, URLSessionTask, AFError) -> Void)? + + /// Closure called on the `request(_:didCompleteTask:with:)` event. + open var requestDidCompleteTaskWithError: ((Request, URLSessionTask, AFError?) -> Void)? + + /// Closure called on the `requestIsRetrying(_:)` event. + open var requestIsRetrying: ((Request) -> Void)? + + /// Closure called on the `requestDidFinish(_:)` event. + open var requestDidFinish: ((Request) -> Void)? + + /// Closure called on the `requestDidResume(_:)` event. + open var requestDidResume: ((Request) -> Void)? + + /// Closure called on the `request(_:didResumeTask:)` event. + open var requestDidResumeTask: ((Request, URLSessionTask) -> Void)? + + /// Closure called on the `requestDidSuspend(_:)` event. + open var requestDidSuspend: ((Request) -> Void)? + + /// Closure called on the `request(_:didSuspendTask:)` event. + open var requestDidSuspendTask: ((Request, URLSessionTask) -> Void)? + + /// Closure called on the `requestDidCancel(_:)` event. + open var requestDidCancel: ((Request) -> Void)? + + /// Closure called on the `request(_:didCancelTask:)` event. + open var requestDidCancelTask: ((Request, URLSessionTask) -> Void)? + + /// Closure called on the `request(_:didValidateRequest:response:data:withResult:)` event. + open var requestDidValidateRequestResponseDataWithResult: ((DataRequest, URLRequest?, HTTPURLResponse, Data?, Request.ValidationResult) -> Void)? + + /// Closure called on the `request(_:didParseResponse:)` event. + open var requestDidParseResponse: ((DataRequest, DataResponse) -> Void)? + + /// Closure called on the `request(_:didValidateRequest:response:withResult:)` event. + open var requestDidValidateRequestResponseWithResult: ((DataStreamRequest, URLRequest?, HTTPURLResponse, Request.ValidationResult) -> Void)? + + /// Closure called on the `request(_:didCreateUploadable:)` event. + open var requestDidCreateUploadable: ((UploadRequest, UploadRequest.Uploadable) -> Void)? + + /// Closure called on the `request(_:didFailToCreateUploadableWithError:)` event. + open var requestDidFailToCreateUploadableWithError: ((UploadRequest, AFError) -> Void)? + + /// Closure called on the `request(_:didProvideInputStream:)` event. + open var requestDidProvideInputStream: ((UploadRequest, InputStream) -> Void)? + + /// Closure called on the `request(_:didFinishDownloadingUsing:with:)` event. + open var requestDidFinishDownloadingUsingTaskWithResult: ((DownloadRequest, URLSessionTask, Result) -> Void)? + + /// Closure called on the `request(_:didCreateDestinationURL:)` event. + open var requestDidCreateDestinationURL: ((DownloadRequest, URL) -> Void)? + + /// Closure called on the `request(_:didValidateRequest:response:temporaryURL:destinationURL:withResult:)` event. + open var requestDidValidateRequestResponseFileURLWithResult: ((DownloadRequest, URLRequest?, HTTPURLResponse, URL?, Request.ValidationResult) -> Void)? + + /// Closure called on the `request(_:didParseResponse:)` event. + open var requestDidParseDownloadResponse: ((DownloadRequest, DownloadResponse) -> Void)? + + public let queue: DispatchQueue + + /// Creates an instance using the provided queue. + /// + /// - Parameter queue: `DispatchQueue` on which events will fired. `.main` by default. + public init(queue: DispatchQueue = .main) { + self.queue = queue + } + + open func urlSession(_ session: URLSession, didBecomeInvalidWithError error: Error?) { + sessionDidBecomeInvalidWithError?(session, error) + } + + open func urlSession(_ session: URLSession, task: URLSessionTask, didReceive challenge: URLAuthenticationChallenge) { + taskDidReceiveChallenge?(session, task, challenge) + } + + open func urlSession(_ session: URLSession, + task: URLSessionTask, + didSendBodyData bytesSent: Int64, + totalBytesSent: Int64, + totalBytesExpectedToSend: Int64) { + taskDidSendBodyData?(session, task, bytesSent, totalBytesSent, totalBytesExpectedToSend) + } + + open func urlSession(_ session: URLSession, taskNeedsNewBodyStream task: URLSessionTask) { + taskNeedNewBodyStream?(session, task) + } + + open func urlSession(_ session: URLSession, + task: URLSessionTask, + willPerformHTTPRedirection response: HTTPURLResponse, + newRequest request: URLRequest) { + taskWillPerformHTTPRedirection?(session, task, response, request) + } + + open func urlSession(_ session: URLSession, task: URLSessionTask, didFinishCollecting metrics: URLSessionTaskMetrics) { + taskDidFinishCollectingMetrics?(session, task, metrics) + } + + open func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { + taskDidComplete?(session, task, error) + } + + @available(macOS 10.13, iOS 11.0, tvOS 11.0, watchOS 4.0, *) + open func urlSession(_ session: URLSession, taskIsWaitingForConnectivity task: URLSessionTask) { + taskIsWaitingForConnectivity?(session, task) + } + + open func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive response: URLResponse) { + dataTaskDidReceiveResponse?(session, dataTask, response) + } + + open func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { + dataTaskDidReceiveData?(session, dataTask, data) + } + + open func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, willCacheResponse proposedResponse: CachedURLResponse) { + dataTaskWillCacheResponse?(session, dataTask, proposedResponse) + } + + open func urlSession(_ session: URLSession, + downloadTask: URLSessionDownloadTask, + didResumeAtOffset fileOffset: Int64, + expectedTotalBytes: Int64) { + downloadTaskDidResumeAtOffset?(session, downloadTask, fileOffset, expectedTotalBytes) + } + + open func urlSession(_ session: URLSession, + downloadTask: URLSessionDownloadTask, + didWriteData bytesWritten: Int64, + totalBytesWritten: Int64, + totalBytesExpectedToWrite: Int64) { + downloadTaskDidWriteData?(session, downloadTask, bytesWritten, totalBytesWritten, totalBytesExpectedToWrite) + } + + open func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) { + downloadTaskDidFinishDownloadingToURL?(session, downloadTask, location) + } + + // MARK: Request Events + + open func request(_ request: Request, didCreateInitialURLRequest urlRequest: URLRequest) { + requestDidCreateInitialURLRequest?(request, urlRequest) + } + + open func request(_ request: Request, didFailToCreateURLRequestWithError error: AFError) { + requestDidFailToCreateURLRequestWithError?(request, error) + } + + open func request(_ request: Request, didAdaptInitialRequest initialRequest: URLRequest, to adaptedRequest: URLRequest) { + requestDidAdaptInitialRequestToAdaptedRequest?(request, initialRequest, adaptedRequest) + } + + open func request(_ request: Request, didFailToAdaptURLRequest initialRequest: URLRequest, withError error: AFError) { + requestDidFailToAdaptURLRequestWithError?(request, initialRequest, error) + } + + open func request(_ request: Request, didCreateURLRequest urlRequest: URLRequest) { + requestDidCreateURLRequest?(request, urlRequest) + } + + open func request(_ request: Request, didCreateTask task: URLSessionTask) { + requestDidCreateTask?(request, task) + } + + open func request(_ request: Request, didGatherMetrics metrics: URLSessionTaskMetrics) { + requestDidGatherMetrics?(request, metrics) + } + + open func request(_ request: Request, didFailTask task: URLSessionTask, earlyWithError error: AFError) { + requestDidFailTaskEarlyWithError?(request, task, error) + } + + open func request(_ request: Request, didCompleteTask task: URLSessionTask, with error: AFError?) { + requestDidCompleteTaskWithError?(request, task, error) + } + + open func requestIsRetrying(_ request: Request) { + requestIsRetrying?(request) + } + + open func requestDidFinish(_ request: Request) { + requestDidFinish?(request) + } + + open func requestDidResume(_ request: Request) { + requestDidResume?(request) + } + + public func request(_ request: Request, didResumeTask task: URLSessionTask) { + requestDidResumeTask?(request, task) + } + + open func requestDidSuspend(_ request: Request) { + requestDidSuspend?(request) + } + + public func request(_ request: Request, didSuspendTask task: URLSessionTask) { + requestDidSuspendTask?(request, task) + } + + open func requestDidCancel(_ request: Request) { + requestDidCancel?(request) + } + + public func request(_ request: Request, didCancelTask task: URLSessionTask) { + requestDidCancelTask?(request, task) + } + + open func request(_ request: DataRequest, + didValidateRequest urlRequest: URLRequest?, + response: HTTPURLResponse, + data: Data?, + withResult result: Request.ValidationResult) { + requestDidValidateRequestResponseDataWithResult?(request, urlRequest, response, data, result) + } + + open func request(_ request: DataRequest, didParseResponse response: DataResponse) { + requestDidParseResponse?(request, response) + } + + public func request(_ request: DataStreamRequest, didValidateRequest urlRequest: URLRequest?, response: HTTPURLResponse, withResult result: Request.ValidationResult) { + requestDidValidateRequestResponseWithResult?(request, urlRequest, response, result) + } + + open func request(_ request: UploadRequest, didCreateUploadable uploadable: UploadRequest.Uploadable) { + requestDidCreateUploadable?(request, uploadable) + } + + open func request(_ request: UploadRequest, didFailToCreateUploadableWithError error: AFError) { + requestDidFailToCreateUploadableWithError?(request, error) + } + + open func request(_ request: UploadRequest, didProvideInputStream stream: InputStream) { + requestDidProvideInputStream?(request, stream) + } + + open func request(_ request: DownloadRequest, didFinishDownloadingUsing task: URLSessionTask, with result: Result) { + requestDidFinishDownloadingUsingTaskWithResult?(request, task, result) + } + + open func request(_ request: DownloadRequest, didCreateDestinationURL url: URL) { + requestDidCreateDestinationURL?(request, url) + } + + open func request(_ request: DownloadRequest, + didValidateRequest urlRequest: URLRequest?, + response: HTTPURLResponse, + fileURL: URL?, + withResult result: Request.ValidationResult) { + requestDidValidateRequestResponseFileURLWithResult?(request, + urlRequest, + response, + fileURL, + result) + } + + open func request(_ request: DownloadRequest, didParseResponse response: DownloadResponse) { + requestDidParseDownloadResponse?(request, response) + } +} diff --git a/Pods/Alamofire/Source/HTTPHeaders.swift b/Pods/Alamofire/Source/HTTPHeaders.swift new file mode 100644 index 0000000..08d4799 --- /dev/null +++ b/Pods/Alamofire/Source/HTTPHeaders.swift @@ -0,0 +1,452 @@ +// +// HTTPHeaders.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// An order-preserving and case-insensitive representation of HTTP headers. +public struct HTTPHeaders { + private var headers: [HTTPHeader] = [] + + /// Creates an empty instance. + public init() {} + + /// Creates an instance from an array of `HTTPHeader`s. Duplicate case-insensitive names are collapsed into the last + /// name and value encountered. + public init(_ headers: [HTTPHeader]) { + headers.forEach { update($0) } + } + + /// Creates an instance from a `[String: String]`. Duplicate case-insensitive names are collapsed into the last name + /// and value encountered. + public init(_ dictionary: [String: String]) { + dictionary.forEach { update(HTTPHeader(name: $0.key, value: $0.value)) } + } + + /// Case-insensitively updates or appends an `HTTPHeader` into the instance using the provided `name` and `value`. + /// + /// - Parameters: + /// - name: The `HTTPHeader` name. + /// - value: The `HTTPHeader value. + public mutating func add(name: String, value: String) { + update(HTTPHeader(name: name, value: value)) + } + + /// Case-insensitively updates or appends the provided `HTTPHeader` into the instance. + /// + /// - Parameter header: The `HTTPHeader` to update or append. + public mutating func add(_ header: HTTPHeader) { + update(header) + } + + /// Case-insensitively updates or appends an `HTTPHeader` into the instance using the provided `name` and `value`. + /// + /// - Parameters: + /// - name: The `HTTPHeader` name. + /// - value: The `HTTPHeader value. + public mutating func update(name: String, value: String) { + update(HTTPHeader(name: name, value: value)) + } + + /// Case-insensitively updates or appends the provided `HTTPHeader` into the instance. + /// + /// - Parameter header: The `HTTPHeader` to update or append. + public mutating func update(_ header: HTTPHeader) { + guard let index = headers.index(of: header.name) else { + headers.append(header) + return + } + + headers.replaceSubrange(index...index, with: [header]) + } + + /// Case-insensitively removes an `HTTPHeader`, if it exists, from the instance. + /// + /// - Parameter name: The name of the `HTTPHeader` to remove. + public mutating func remove(name: String) { + guard let index = headers.index(of: name) else { return } + + headers.remove(at: index) + } + + /// Sort the current instance by header name, case insensitively. + public mutating func sort() { + headers.sort { $0.name.lowercased() < $1.name.lowercased() } + } + + /// Returns an instance sorted by header name. + /// + /// - Returns: A copy of the current instance sorted by name. + public func sorted() -> HTTPHeaders { + var headers = self + headers.sort() + + return headers + } + + /// Case-insensitively find a header's value by name. + /// + /// - Parameter name: The name of the header to search for, case-insensitively. + /// + /// - Returns: The value of header, if it exists. + public func value(for name: String) -> String? { + guard let index = headers.index(of: name) else { return nil } + + return headers[index].value + } + + /// Case-insensitively access the header with the given name. + /// + /// - Parameter name: The name of the header. + public subscript(_ name: String) -> String? { + get { value(for: name) } + set { + if let value = newValue { + update(name: name, value: value) + } else { + remove(name: name) + } + } + } + + /// The dictionary representation of all headers. + /// + /// This representation does not preserve the current order of the instance. + public var dictionary: [String: String] { + let namesAndValues = headers.map { ($0.name, $0.value) } + + return Dictionary(namesAndValues, uniquingKeysWith: { _, last in last }) + } +} + +extension HTTPHeaders: ExpressibleByDictionaryLiteral { + public init(dictionaryLiteral elements: (String, String)...) { + elements.forEach { update(name: $0.0, value: $0.1) } + } +} + +extension HTTPHeaders: ExpressibleByArrayLiteral { + public init(arrayLiteral elements: HTTPHeader...) { + self.init(elements) + } +} + +extension HTTPHeaders: Sequence { + public func makeIterator() -> IndexingIterator<[HTTPHeader]> { + headers.makeIterator() + } +} + +extension HTTPHeaders: Collection { + public var startIndex: Int { + headers.startIndex + } + + public var endIndex: Int { + headers.endIndex + } + + public subscript(position: Int) -> HTTPHeader { + headers[position] + } + + public func index(after i: Int) -> Int { + headers.index(after: i) + } +} + +extension HTTPHeaders: CustomStringConvertible { + public var description: String { + headers.map(\.description) + .joined(separator: "\n") + } +} + +// MARK: - HTTPHeader + +/// A representation of a single HTTP header's name / value pair. +public struct HTTPHeader: Hashable { + /// Name of the header. + public let name: String + + /// Value of the header. + public let value: String + + /// Creates an instance from the given `name` and `value`. + /// + /// - Parameters: + /// - name: The name of the header. + /// - value: The value of the header. + public init(name: String, value: String) { + self.name = name + self.value = value + } +} + +extension HTTPHeader: CustomStringConvertible { + public var description: String { + "\(name): \(value)" + } +} + +extension HTTPHeader { + /// Returns an `Accept` header. + /// + /// - Parameter value: The `Accept` value. + /// - Returns: The header. + public static func accept(_ value: String) -> HTTPHeader { + HTTPHeader(name: "Accept", value: value) + } + + /// Returns an `Accept-Charset` header. + /// + /// - Parameter value: The `Accept-Charset` value. + /// - Returns: The header. + public static func acceptCharset(_ value: String) -> HTTPHeader { + HTTPHeader(name: "Accept-Charset", value: value) + } + + /// Returns an `Accept-Language` header. + /// + /// Alamofire offers a default Accept-Language header that accumulates and encodes the system's preferred languages. + /// Use `HTTPHeader.defaultAcceptLanguage`. + /// + /// - Parameter value: The `Accept-Language` value. + /// + /// - Returns: The header. + public static func acceptLanguage(_ value: String) -> HTTPHeader { + HTTPHeader(name: "Accept-Language", value: value) + } + + /// Returns an `Accept-Encoding` header. + /// + /// Alamofire offers a default accept encoding value that provides the most common values. Use + /// `HTTPHeader.defaultAcceptEncoding`. + /// + /// - Parameter value: The `Accept-Encoding` value. + /// + /// - Returns: The header + public static func acceptEncoding(_ value: String) -> HTTPHeader { + HTTPHeader(name: "Accept-Encoding", value: value) + } + + /// Returns a `Basic` `Authorization` header using the `username` and `password` provided. + /// + /// - Parameters: + /// - username: The username of the header. + /// - password: The password of the header. + /// + /// - Returns: The header. + public static func authorization(username: String, password: String) -> HTTPHeader { + let credential = Data("\(username):\(password)".utf8).base64EncodedString() + + return authorization("Basic \(credential)") + } + + /// Returns a `Bearer` `Authorization` header using the `bearerToken` provided + /// + /// - Parameter bearerToken: The bearer token. + /// + /// - Returns: The header. + public static func authorization(bearerToken: String) -> HTTPHeader { + authorization("Bearer \(bearerToken)") + } + + /// Returns an `Authorization` header. + /// + /// Alamofire provides built-in methods to produce `Authorization` headers. For a Basic `Authorization` header use + /// `HTTPHeader.authorization(username:password:)`. For a Bearer `Authorization` header, use + /// `HTTPHeader.authorization(bearerToken:)`. + /// + /// - Parameter value: The `Authorization` value. + /// + /// - Returns: The header. + public static func authorization(_ value: String) -> HTTPHeader { + HTTPHeader(name: "Authorization", value: value) + } + + /// Returns a `Content-Disposition` header. + /// + /// - Parameter value: The `Content-Disposition` value. + /// + /// - Returns: The header. + public static func contentDisposition(_ value: String) -> HTTPHeader { + HTTPHeader(name: "Content-Disposition", value: value) + } + + /// Returns a `Content-Encoding` header. + /// + /// - Parameter value: The `Content-Encoding`. + /// + /// - Returns: The header. + public static func contentEncoding(_ value: String) -> HTTPHeader { + HTTPHeader(name: "Content-Encoding", value: value) + } + + /// Returns a `Content-Type` header. + /// + /// All Alamofire `ParameterEncoding`s and `ParameterEncoder`s set the `Content-Type` of the request, so it may not + /// be necessary to manually set this value. + /// + /// - Parameter value: The `Content-Type` value. + /// + /// - Returns: The header. + public static func contentType(_ value: String) -> HTTPHeader { + HTTPHeader(name: "Content-Type", value: value) + } + + /// Returns a `User-Agent` header. + /// + /// - Parameter value: The `User-Agent` value. + /// + /// - Returns: The header. + public static func userAgent(_ value: String) -> HTTPHeader { + HTTPHeader(name: "User-Agent", value: value) + } +} + +extension Array where Element == HTTPHeader { + /// Case-insensitively finds the index of an `HTTPHeader` with the provided name, if it exists. + func index(of name: String) -> Int? { + let lowercasedName = name.lowercased() + return firstIndex { $0.name.lowercased() == lowercasedName } + } +} + +// MARK: - Defaults + +extension HTTPHeaders { + /// The default set of `HTTPHeaders` used by Alamofire. Includes `Accept-Encoding`, `Accept-Language`, and + /// `User-Agent`. + public static let `default`: HTTPHeaders = [.defaultAcceptEncoding, + .defaultAcceptLanguage, + .defaultUserAgent] +} + +extension HTTPHeader { + /// Returns Alamofire's default `Accept-Encoding` header, appropriate for the encodings supported by particular OS + /// versions. + /// + /// See the [Accept-Encoding HTTP header documentation](https://tools.ietf.org/html/rfc7230#section-4.2.3) . + public static let defaultAcceptEncoding: HTTPHeader = { + let encodings: [String] + if #available(iOS 11.0, macOS 10.13, tvOS 11.0, watchOS 4.0, *) { + encodings = ["br", "gzip", "deflate"] + } else { + encodings = ["gzip", "deflate"] + } + + return .acceptEncoding(encodings.qualityEncoded()) + }() + + /// Returns Alamofire's default `Accept-Language` header, generated by querying `Locale` for the user's + /// `preferredLanguages`. + /// + /// See the [Accept-Language HTTP header documentation](https://tools.ietf.org/html/rfc7231#section-5.3.5). + public static let defaultAcceptLanguage: HTTPHeader = .acceptLanguage(Locale.preferredLanguages.prefix(6).qualityEncoded()) + + /// Returns Alamofire's default `User-Agent` header. + /// + /// See the [User-Agent header documentation](https://tools.ietf.org/html/rfc7231#section-5.5.3). + /// + /// Example: `iOS Example/1.0 (org.alamofire.iOS-Example; build:1; iOS 13.0.0) Alamofire/5.0.0` + public static let defaultUserAgent: HTTPHeader = { + let info = Bundle.main.infoDictionary + let executable = (info?["CFBundleExecutable"] as? String) ?? + (ProcessInfo.processInfo.arguments.first?.split(separator: "/").last.map(String.init)) ?? + "Unknown" + let bundle = info?["CFBundleIdentifier"] as? String ?? "Unknown" + let appVersion = info?["CFBundleShortVersionString"] as? String ?? "Unknown" + let appBuild = info?["CFBundleVersion"] as? String ?? "Unknown" + + let osNameVersion: String = { + let version = ProcessInfo.processInfo.operatingSystemVersion + let versionString = "\(version.majorVersion).\(version.minorVersion).\(version.patchVersion)" + let osName: String = { + #if os(iOS) + #if targetEnvironment(macCatalyst) + return "macOS(Catalyst)" + #else + return "iOS" + #endif + #elseif os(watchOS) + return "watchOS" + #elseif os(tvOS) + return "tvOS" + #elseif os(macOS) + return "macOS" + #elseif os(Linux) + return "Linux" + #elseif os(Windows) + return "Windows" + #elseif os(Android) + return "Android" + #else + return "Unknown" + #endif + }() + + return "\(osName) \(versionString)" + }() + + let alamofireVersion = "Alamofire/\(version)" + + let userAgent = "\(executable)/\(appVersion) (\(bundle); build:\(appBuild); \(osNameVersion)) \(alamofireVersion)" + + return .userAgent(userAgent) + }() +} + +extension Collection where Element == String { + func qualityEncoded() -> String { + enumerated().map { index, encoding in + let quality = 1.0 - (Double(index) * 0.1) + return "\(encoding);q=\(quality)" + }.joined(separator: ", ") + } +} + +// MARK: - System Type Extensions + +extension URLRequest { + /// Returns `allHTTPHeaderFields` as `HTTPHeaders`. + public var headers: HTTPHeaders { + get { allHTTPHeaderFields.map(HTTPHeaders.init) ?? HTTPHeaders() } + set { allHTTPHeaderFields = newValue.dictionary } + } +} + +extension HTTPURLResponse { + /// Returns `allHeaderFields` as `HTTPHeaders`. + public var headers: HTTPHeaders { + (allHeaderFields as? [String: String]).map(HTTPHeaders.init) ?? HTTPHeaders() + } +} + +extension URLSessionConfiguration { + /// Returns `httpAdditionalHeaders` as `HTTPHeaders`. + public var headers: HTTPHeaders { + get { (httpAdditionalHeaders as? [String: String]).map(HTTPHeaders.init) ?? HTTPHeaders() } + set { httpAdditionalHeaders = newValue.dictionary } + } +} diff --git a/Pods/Alamofire/Source/HTTPMethod.swift b/Pods/Alamofire/Source/HTTPMethod.swift new file mode 100644 index 0000000..539d214 --- /dev/null +++ b/Pods/Alamofire/Source/HTTPMethod.swift @@ -0,0 +1,56 @@ +// +// HTTPMethod.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +/// Type representing HTTP methods. Raw `String` value is stored and compared case-sensitively, so +/// `HTTPMethod.get != HTTPMethod(rawValue: "get")`. +/// +/// See https://tools.ietf.org/html/rfc7231#section-4.3 +public struct HTTPMethod: RawRepresentable, Equatable, Hashable { + /// `CONNECT` method. + public static let connect = HTTPMethod(rawValue: "CONNECT") + /// `DELETE` method. + public static let delete = HTTPMethod(rawValue: "DELETE") + /// `GET` method. + public static let get = HTTPMethod(rawValue: "GET") + /// `HEAD` method. + public static let head = HTTPMethod(rawValue: "HEAD") + /// `OPTIONS` method. + public static let options = HTTPMethod(rawValue: "OPTIONS") + /// `PATCH` method. + public static let patch = HTTPMethod(rawValue: "PATCH") + /// `POST` method. + public static let post = HTTPMethod(rawValue: "POST") + /// `PUT` method. + public static let put = HTTPMethod(rawValue: "PUT") + /// `QUERY` method. + public static let query = HTTPMethod(rawValue: "QUERY") + /// `TRACE` method. + public static let trace = HTTPMethod(rawValue: "TRACE") + + public let rawValue: String + + public init(rawValue: String) { + self.rawValue = rawValue + } +} diff --git a/Pods/Alamofire/Source/MultipartFormData.swift b/Pods/Alamofire/Source/MultipartFormData.swift new file mode 100644 index 0000000..3fb6e2b --- /dev/null +++ b/Pods/Alamofire/Source/MultipartFormData.swift @@ -0,0 +1,601 @@ +// +// MultipartFormData.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +#if canImport(MobileCoreServices) +import MobileCoreServices +#elseif canImport(CoreServices) +import CoreServices +#endif + +/// Constructs `multipart/form-data` for uploads within an HTTP or HTTPS body. There are currently two ways to encode +/// multipart form data. The first way is to encode the data directly in memory. This is very efficient, but can lead +/// to memory issues if the dataset is too large. The second way is designed for larger datasets and will write all the +/// data to a single file on disk with all the proper boundary segmentation. The second approach MUST be used for +/// larger datasets such as video content, otherwise your app may run out of memory when trying to encode the dataset. +/// +/// For more information on `multipart/form-data` in general, please refer to the RFC-2388 and RFC-2045 specs as well +/// and the w3 form documentation. +/// +/// - https://www.ietf.org/rfc/rfc2388.txt +/// - https://www.ietf.org/rfc/rfc2045.txt +/// - https://www.w3.org/TR/html401/interact/forms.html#h-17.13 +open class MultipartFormData { + // MARK: - Helper Types + + enum EncodingCharacters { + static let crlf = "\r\n" + } + + enum BoundaryGenerator { + enum BoundaryType { + case initial, encapsulated, final + } + + static func randomBoundary() -> String { + let first = UInt32.random(in: UInt32.min...UInt32.max) + let second = UInt32.random(in: UInt32.min...UInt32.max) + + return String(format: "alamofire.boundary.%08x%08x", first, second) + } + + static func boundaryData(forBoundaryType boundaryType: BoundaryType, boundary: String) -> Data { + let boundaryText: String + + switch boundaryType { + case .initial: + boundaryText = "--\(boundary)\(EncodingCharacters.crlf)" + case .encapsulated: + boundaryText = "\(EncodingCharacters.crlf)--\(boundary)\(EncodingCharacters.crlf)" + case .final: + boundaryText = "\(EncodingCharacters.crlf)--\(boundary)--\(EncodingCharacters.crlf)" + } + + return Data(boundaryText.utf8) + } + } + + class BodyPart { + let headers: HTTPHeaders + let bodyStream: InputStream + let bodyContentLength: UInt64 + var hasInitialBoundary = false + var hasFinalBoundary = false + + init(headers: HTTPHeaders, bodyStream: InputStream, bodyContentLength: UInt64) { + self.headers = headers + self.bodyStream = bodyStream + self.bodyContentLength = bodyContentLength + } + } + + // MARK: - Properties + + /// Default memory threshold used when encoding `MultipartFormData`, in bytes. + public static let encodingMemoryThreshold: UInt64 = 10_000_000 + + /// The `Content-Type` header value containing the boundary used to generate the `multipart/form-data`. + open lazy var contentType: String = "multipart/form-data; boundary=\(self.boundary)" + + /// The content length of all body parts used to generate the `multipart/form-data` not including the boundaries. + public var contentLength: UInt64 { bodyParts.reduce(0) { $0 + $1.bodyContentLength } } + + /// The boundary used to separate the body parts in the encoded form data. + public let boundary: String + + let fileManager: FileManager + + private var bodyParts: [BodyPart] + private var bodyPartError: AFError? + private let streamBufferSize: Int + + // MARK: - Lifecycle + + /// Creates an instance. + /// + /// - Parameters: + /// - fileManager: `FileManager` to use for file operations, if needed. + /// - boundary: Boundary `String` used to separate body parts. + public init(fileManager: FileManager = .default, boundary: String? = nil) { + self.fileManager = fileManager + self.boundary = boundary ?? BoundaryGenerator.randomBoundary() + bodyParts = [] + + // + // The optimal read/write buffer size in bytes for input and output streams is 1024 (1KB). For more + // information, please refer to the following article: + // - https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Streams/Articles/ReadingInputStreams.html + // + streamBufferSize = 1024 + } + + // MARK: - Body Parts + + /// Creates a body part from the data and appends it to the instance. + /// + /// The body part data will be encoded using the following format: + /// + /// - `Content-Disposition: form-data; name=#{name}; filename=#{filename}` (HTTP Header) + /// - `Content-Type: #{mimeType}` (HTTP Header) + /// - Encoded file data + /// - Multipart form boundary + /// + /// - Parameters: + /// - data: `Data` to encoding into the instance. + /// - name: Name to associate with the `Data` in the `Content-Disposition` HTTP header. + /// - fileName: Filename to associate with the `Data` in the `Content-Disposition` HTTP header. + /// - mimeType: MIME type to associate with the data in the `Content-Type` HTTP header. + public func append(_ data: Data, withName name: String, fileName: String? = nil, mimeType: String? = nil) { + let headers = contentHeaders(withName: name, fileName: fileName, mimeType: mimeType) + let stream = InputStream(data: data) + let length = UInt64(data.count) + + append(stream, withLength: length, headers: headers) + } + + /// Creates a body part from the file and appends it to the instance. + /// + /// The body part data will be encoded using the following format: + /// + /// - `Content-Disposition: form-data; name=#{name}; filename=#{generated filename}` (HTTP Header) + /// - `Content-Type: #{generated mimeType}` (HTTP Header) + /// - Encoded file data + /// - Multipart form boundary + /// + /// The filename in the `Content-Disposition` HTTP header is generated from the last path component of the + /// `fileURL`. The `Content-Type` HTTP header MIME type is generated by mapping the `fileURL` extension to the + /// system associated MIME type. + /// + /// - Parameters: + /// - fileURL: `URL` of the file whose content will be encoded into the instance. + /// - name: Name to associate with the file content in the `Content-Disposition` HTTP header. + public func append(_ fileURL: URL, withName name: String) { + let fileName = fileURL.lastPathComponent + let pathExtension = fileURL.pathExtension + + if !fileName.isEmpty && !pathExtension.isEmpty { + let mime = mimeType(forPathExtension: pathExtension) + append(fileURL, withName: name, fileName: fileName, mimeType: mime) + } else { + setBodyPartError(withReason: .bodyPartFilenameInvalid(in: fileURL)) + } + } + + /// Creates a body part from the file and appends it to the instance. + /// + /// The body part data will be encoded using the following format: + /// + /// - Content-Disposition: form-data; name=#{name}; filename=#{filename} (HTTP Header) + /// - Content-Type: #{mimeType} (HTTP Header) + /// - Encoded file data + /// - Multipart form boundary + /// + /// - Parameters: + /// - fileURL: `URL` of the file whose content will be encoded into the instance. + /// - name: Name to associate with the file content in the `Content-Disposition` HTTP header. + /// - fileName: Filename to associate with the file content in the `Content-Disposition` HTTP header. + /// - mimeType: MIME type to associate with the file content in the `Content-Type` HTTP header. + public func append(_ fileURL: URL, withName name: String, fileName: String, mimeType: String) { + let headers = contentHeaders(withName: name, fileName: fileName, mimeType: mimeType) + + //============================================================ + // Check 1 - is file URL? + //============================================================ + + guard fileURL.isFileURL else { + setBodyPartError(withReason: .bodyPartURLInvalid(url: fileURL)) + return + } + + //============================================================ + // Check 2 - is file URL reachable? + //============================================================ + + #if !(os(Linux) || os(Windows) || os(Android)) + do { + let isReachable = try fileURL.checkPromisedItemIsReachable() + guard isReachable else { + setBodyPartError(withReason: .bodyPartFileNotReachable(at: fileURL)) + return + } + } catch { + setBodyPartError(withReason: .bodyPartFileNotReachableWithError(atURL: fileURL, error: error)) + return + } + #endif + + //============================================================ + // Check 3 - is file URL a directory? + //============================================================ + + var isDirectory: ObjCBool = false + let path = fileURL.path + + guard fileManager.fileExists(atPath: path, isDirectory: &isDirectory) && !isDirectory.boolValue else { + setBodyPartError(withReason: .bodyPartFileIsDirectory(at: fileURL)) + return + } + + //============================================================ + // Check 4 - can the file size be extracted? + //============================================================ + + let bodyContentLength: UInt64 + + do { + guard let fileSize = try fileManager.attributesOfItem(atPath: path)[.size] as? NSNumber else { + setBodyPartError(withReason: .bodyPartFileSizeNotAvailable(at: fileURL)) + return + } + + bodyContentLength = fileSize.uint64Value + } catch { + setBodyPartError(withReason: .bodyPartFileSizeQueryFailedWithError(forURL: fileURL, error: error)) + return + } + + //============================================================ + // Check 5 - can a stream be created from file URL? + //============================================================ + + guard let stream = InputStream(url: fileURL) else { + setBodyPartError(withReason: .bodyPartInputStreamCreationFailed(for: fileURL)) + return + } + + append(stream, withLength: bodyContentLength, headers: headers) + } + + /// Creates a body part from the stream and appends it to the instance. + /// + /// The body part data will be encoded using the following format: + /// + /// - `Content-Disposition: form-data; name=#{name}; filename=#{filename}` (HTTP Header) + /// - `Content-Type: #{mimeType}` (HTTP Header) + /// - Encoded stream data + /// - Multipart form boundary + /// + /// - Parameters: + /// - stream: `InputStream` to encode into the instance. + /// - length: Length, in bytes, of the stream. + /// - name: Name to associate with the stream content in the `Content-Disposition` HTTP header. + /// - fileName: Filename to associate with the stream content in the `Content-Disposition` HTTP header. + /// - mimeType: MIME type to associate with the stream content in the `Content-Type` HTTP header. + public func append(_ stream: InputStream, + withLength length: UInt64, + name: String, + fileName: String, + mimeType: String) { + let headers = contentHeaders(withName: name, fileName: fileName, mimeType: mimeType) + append(stream, withLength: length, headers: headers) + } + + /// Creates a body part with the stream, length, and headers and appends it to the instance. + /// + /// The body part data will be encoded using the following format: + /// + /// - HTTP headers + /// - Encoded stream data + /// - Multipart form boundary + /// + /// - Parameters: + /// - stream: `InputStream` to encode into the instance. + /// - length: Length, in bytes, of the stream. + /// - headers: `HTTPHeaders` for the body part. + public func append(_ stream: InputStream, withLength length: UInt64, headers: HTTPHeaders) { + let bodyPart = BodyPart(headers: headers, bodyStream: stream, bodyContentLength: length) + bodyParts.append(bodyPart) + } + + // MARK: - Data Encoding + + /// Encodes all appended body parts into a single `Data` value. + /// + /// - Note: This method will load all the appended body parts into memory all at the same time. This method should + /// only be used when the encoded data will have a small memory footprint. For large data cases, please use + /// the `writeEncodedData(to:))` method. + /// + /// - Returns: The encoded `Data`, if encoding is successful. + /// - Throws: An `AFError` if encoding encounters an error. + public func encode() throws -> Data { + if let bodyPartError = bodyPartError { + throw bodyPartError + } + + var encoded = Data() + + bodyParts.first?.hasInitialBoundary = true + bodyParts.last?.hasFinalBoundary = true + + for bodyPart in bodyParts { + let encodedData = try encode(bodyPart) + encoded.append(encodedData) + } + + return encoded + } + + /// Writes all appended body parts to the given file `URL`. + /// + /// This process is facilitated by reading and writing with input and output streams, respectively. Thus, + /// this approach is very memory efficient and should be used for large body part data. + /// + /// - Parameter fileURL: File `URL` to which to write the form data. + /// - Throws: An `AFError` if encoding encounters an error. + public func writeEncodedData(to fileURL: URL) throws { + if let bodyPartError = bodyPartError { + throw bodyPartError + } + + if fileManager.fileExists(atPath: fileURL.path) { + throw AFError.multipartEncodingFailed(reason: .outputStreamFileAlreadyExists(at: fileURL)) + } else if !fileURL.isFileURL { + throw AFError.multipartEncodingFailed(reason: .outputStreamURLInvalid(url: fileURL)) + } + + guard let outputStream = OutputStream(url: fileURL, append: false) else { + throw AFError.multipartEncodingFailed(reason: .outputStreamCreationFailed(for: fileURL)) + } + + outputStream.open() + defer { outputStream.close() } + + bodyParts.first?.hasInitialBoundary = true + bodyParts.last?.hasFinalBoundary = true + + for bodyPart in bodyParts { + try write(bodyPart, to: outputStream) + } + } + + // MARK: - Private - Body Part Encoding + + private func encode(_ bodyPart: BodyPart) throws -> Data { + var encoded = Data() + + let initialData = bodyPart.hasInitialBoundary ? initialBoundaryData() : encapsulatedBoundaryData() + encoded.append(initialData) + + let headerData = encodeHeaders(for: bodyPart) + encoded.append(headerData) + + let bodyStreamData = try encodeBodyStream(for: bodyPart) + encoded.append(bodyStreamData) + + if bodyPart.hasFinalBoundary { + encoded.append(finalBoundaryData()) + } + + return encoded + } + + private func encodeHeaders(for bodyPart: BodyPart) -> Data { + let headerText = bodyPart.headers.map { "\($0.name): \($0.value)\(EncodingCharacters.crlf)" } + .joined() + + EncodingCharacters.crlf + + return Data(headerText.utf8) + } + + private func encodeBodyStream(for bodyPart: BodyPart) throws -> Data { + let inputStream = bodyPart.bodyStream + inputStream.open() + defer { inputStream.close() } + + var encoded = Data() + + while inputStream.hasBytesAvailable { + var buffer = [UInt8](repeating: 0, count: streamBufferSize) + let bytesRead = inputStream.read(&buffer, maxLength: streamBufferSize) + + if let error = inputStream.streamError { + throw AFError.multipartEncodingFailed(reason: .inputStreamReadFailed(error: error)) + } + + if bytesRead > 0 { + encoded.append(buffer, count: bytesRead) + } else { + break + } + } + + guard UInt64(encoded.count) == bodyPart.bodyContentLength else { + let error = AFError.UnexpectedInputStreamLength(bytesExpected: bodyPart.bodyContentLength, + bytesRead: UInt64(encoded.count)) + throw AFError.multipartEncodingFailed(reason: .inputStreamReadFailed(error: error)) + } + + return encoded + } + + // MARK: - Private - Writing Body Part to Output Stream + + private func write(_ bodyPart: BodyPart, to outputStream: OutputStream) throws { + try writeInitialBoundaryData(for: bodyPart, to: outputStream) + try writeHeaderData(for: bodyPart, to: outputStream) + try writeBodyStream(for: bodyPart, to: outputStream) + try writeFinalBoundaryData(for: bodyPart, to: outputStream) + } + + private func writeInitialBoundaryData(for bodyPart: BodyPart, to outputStream: OutputStream) throws { + let initialData = bodyPart.hasInitialBoundary ? initialBoundaryData() : encapsulatedBoundaryData() + return try write(initialData, to: outputStream) + } + + private func writeHeaderData(for bodyPart: BodyPart, to outputStream: OutputStream) throws { + let headerData = encodeHeaders(for: bodyPart) + return try write(headerData, to: outputStream) + } + + private func writeBodyStream(for bodyPart: BodyPart, to outputStream: OutputStream) throws { + let inputStream = bodyPart.bodyStream + + inputStream.open() + defer { inputStream.close() } + + var bytesLeftToRead = bodyPart.bodyContentLength + while inputStream.hasBytesAvailable && bytesLeftToRead > 0 { + let bufferSize = min(streamBufferSize, Int(bytesLeftToRead)) + var buffer = [UInt8](repeating: 0, count: bufferSize) + let bytesRead = inputStream.read(&buffer, maxLength: bufferSize) + + if let streamError = inputStream.streamError { + throw AFError.multipartEncodingFailed(reason: .inputStreamReadFailed(error: streamError)) + } + + if bytesRead > 0 { + if buffer.count != bytesRead { + buffer = Array(buffer[0.. 0, outputStream.hasSpaceAvailable { + let bytesWritten = outputStream.write(buffer, maxLength: bytesToWrite) + + if let error = outputStream.streamError { + throw AFError.multipartEncodingFailed(reason: .outputStreamWriteFailed(error: error)) + } + + bytesToWrite -= bytesWritten + + if bytesToWrite > 0 { + buffer = Array(buffer[bytesWritten.. HTTPHeaders { + var disposition = "form-data; name=\"\(name)\"" + if let fileName = fileName { disposition += "; filename=\"\(fileName)\"" } + + var headers: HTTPHeaders = [.contentDisposition(disposition)] + if let mimeType = mimeType { headers.add(.contentType(mimeType)) } + + return headers + } + + // MARK: - Private - Boundary Encoding + + private func initialBoundaryData() -> Data { + BoundaryGenerator.boundaryData(forBoundaryType: .initial, boundary: boundary) + } + + private func encapsulatedBoundaryData() -> Data { + BoundaryGenerator.boundaryData(forBoundaryType: .encapsulated, boundary: boundary) + } + + private func finalBoundaryData() -> Data { + BoundaryGenerator.boundaryData(forBoundaryType: .final, boundary: boundary) + } + + // MARK: - Private - Errors + + private func setBodyPartError(withReason reason: AFError.MultipartEncodingFailureReason) { + guard bodyPartError == nil else { return } + bodyPartError = AFError.multipartEncodingFailed(reason: reason) + } +} + +#if canImport(UniformTypeIdentifiers) +import UniformTypeIdentifiers + +extension MultipartFormData { + // MARK: - Private - Mime Type + + private func mimeType(forPathExtension pathExtension: String) -> String { + #if swift(>=5.9) + if #available(iOS 14, macOS 11, tvOS 14, watchOS 7, visionOS 1, *) { + return UTType(filenameExtension: pathExtension)?.preferredMIMEType ?? "application/octet-stream" + } else { + if + let id = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as CFString, nil)?.takeRetainedValue(), + let contentType = UTTypeCopyPreferredTagWithClass(id, kUTTagClassMIMEType)?.takeRetainedValue() { + return contentType as String + } + + return "application/octet-stream" + } + #else + if #available(iOS 14, macOS 11, tvOS 14, watchOS 7, *) { + return UTType(filenameExtension: pathExtension)?.preferredMIMEType ?? "application/octet-stream" + } else { + if + let id = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as CFString, nil)?.takeRetainedValue(), + let contentType = UTTypeCopyPreferredTagWithClass(id, kUTTagClassMIMEType)?.takeRetainedValue() { + return contentType as String + } + + return "application/octet-stream" + } + #endif + } +} + +#else + +extension MultipartFormData { + // MARK: - Private - Mime Type + + private func mimeType(forPathExtension pathExtension: String) -> String { + #if canImport(CoreServices) || canImport(MobileCoreServices) + if + let id = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as CFString, nil)?.takeRetainedValue(), + let contentType = UTTypeCopyPreferredTagWithClass(id, kUTTagClassMIMEType)?.takeRetainedValue() { + return contentType as String + } + #endif + + return "application/octet-stream" + } +} + +#endif diff --git a/Pods/Alamofire/Source/MultipartUpload.swift b/Pods/Alamofire/Source/MultipartUpload.swift new file mode 100644 index 0000000..ceda21f --- /dev/null +++ b/Pods/Alamofire/Source/MultipartUpload.swift @@ -0,0 +1,89 @@ +// +// MultipartUpload.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// Internal type which encapsulates a `MultipartFormData` upload. +final class MultipartUpload { + lazy var result = Result { try build() } + + @Protected + private(set) var multipartFormData: MultipartFormData + let encodingMemoryThreshold: UInt64 + let request: URLRequestConvertible + let fileManager: FileManager + + init(encodingMemoryThreshold: UInt64, + request: URLRequestConvertible, + multipartFormData: MultipartFormData) { + self.encodingMemoryThreshold = encodingMemoryThreshold + self.request = request + fileManager = multipartFormData.fileManager + self.multipartFormData = multipartFormData + } + + func build() throws -> UploadRequest.Uploadable { + let uploadable: UploadRequest.Uploadable + if $multipartFormData.contentLength < encodingMemoryThreshold { + let data = try $multipartFormData.read { try $0.encode() } + + uploadable = .data(data) + } else { + let tempDirectoryURL = fileManager.temporaryDirectory + let directoryURL = tempDirectoryURL.appendingPathComponent("org.alamofire.manager/multipart.form.data") + let fileName = UUID().uuidString + let fileURL = directoryURL.appendingPathComponent(fileName) + + try fileManager.createDirectory(at: directoryURL, withIntermediateDirectories: true, attributes: nil) + + do { + try $multipartFormData.read { try $0.writeEncodedData(to: fileURL) } + } catch { + // Cleanup after attempted write if it fails. + try? fileManager.removeItem(at: fileURL) + throw error + } + + uploadable = .file(fileURL, shouldRemove: true) + } + + return uploadable + } +} + +extension MultipartUpload: UploadConvertible { + func asURLRequest() throws -> URLRequest { + var urlRequest = try request.asURLRequest() + + $multipartFormData.read { multipartFormData in + urlRequest.headers.add(.contentType(multipartFormData.contentType)) + } + + return urlRequest + } + + func createUploadable() throws -> UploadRequest.Uploadable { + try result.get() + } +} diff --git a/Pods/Alamofire/Source/NetworkReachabilityManager.swift b/Pods/Alamofire/Source/NetworkReachabilityManager.swift new file mode 100644 index 0000000..8ba715b --- /dev/null +++ b/Pods/Alamofire/Source/NetworkReachabilityManager.swift @@ -0,0 +1,301 @@ +// +// NetworkReachabilityManager.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +#if canImport(SystemConfiguration) + +import Foundation +import SystemConfiguration + +/// The `NetworkReachabilityManager` class listens for reachability changes of hosts and addresses for both cellular and +/// WiFi network interfaces. +/// +/// Reachability can be used to determine background information about why a network operation failed, or to retry +/// network requests when a connection is established. It should not be used to prevent a user from initiating a network +/// request, as it's possible that an initial request may be required to establish reachability. +open class NetworkReachabilityManager { + /// Defines the various states of network reachability. + public enum NetworkReachabilityStatus { + /// It is unknown whether the network is reachable. + case unknown + /// The network is not reachable. + case notReachable + /// The network is reachable on the associated `ConnectionType`. + case reachable(ConnectionType) + + init(_ flags: SCNetworkReachabilityFlags) { + guard flags.isActuallyReachable else { self = .notReachable; return } + + var networkStatus: NetworkReachabilityStatus = .reachable(.ethernetOrWiFi) + + if flags.isCellular { networkStatus = .reachable(.cellular) } + + self = networkStatus + } + + /// Defines the various connection types detected by reachability flags. + public enum ConnectionType { + /// The connection type is either over Ethernet or WiFi. + case ethernetOrWiFi + /// The connection type is a cellular connection. + case cellular + } + } + + /// A closure executed when the network reachability status changes. The closure takes a single argument: the + /// network reachability status. + public typealias Listener = (NetworkReachabilityStatus) -> Void + + /// Default `NetworkReachabilityManager` for the zero address and a `listenerQueue` of `.main`. + public static let `default` = NetworkReachabilityManager() + + // MARK: - Properties + + /// Whether the network is currently reachable. + open var isReachable: Bool { isReachableOnCellular || isReachableOnEthernetOrWiFi } + + /// Whether the network is currently reachable over the cellular interface. + /// + /// - Note: Using this property to decide whether to make a high or low bandwidth request is not recommended. + /// Instead, set the `allowsCellularAccess` on any `URLRequest`s being issued. + /// + open var isReachableOnCellular: Bool { status == .reachable(.cellular) } + + /// Whether the network is currently reachable over Ethernet or WiFi interface. + open var isReachableOnEthernetOrWiFi: Bool { status == .reachable(.ethernetOrWiFi) } + + /// `DispatchQueue` on which reachability will update. + public let reachabilityQueue = DispatchQueue(label: "org.alamofire.reachabilityQueue") + + /// Flags of the current reachability type, if any. + open var flags: SCNetworkReachabilityFlags? { + var flags = SCNetworkReachabilityFlags() + + return SCNetworkReachabilityGetFlags(reachability, &flags) ? flags : nil + } + + /// The current network reachability status. + open var status: NetworkReachabilityStatus { + flags.map(NetworkReachabilityStatus.init) ?? .unknown + } + + /// Mutable state storage. + struct MutableState { + /// A closure executed when the network reachability status changes. + var listener: Listener? + /// `DispatchQueue` on which listeners will be called. + var listenerQueue: DispatchQueue? + /// Previously calculated status. + var previousStatus: NetworkReachabilityStatus? + } + + /// `SCNetworkReachability` instance providing notifications. + private let reachability: SCNetworkReachability + + /// Protected storage for mutable state. + @Protected + private var mutableState = MutableState() + + // MARK: - Initialization + + /// Creates an instance with the specified host. + /// + /// - Note: The `host` value must *not* contain a scheme, just the hostname. + /// + /// - Parameters: + /// - host: Host used to evaluate network reachability. Must *not* include the scheme (e.g. `https`). + public convenience init?(host: String) { + guard let reachability = SCNetworkReachabilityCreateWithName(nil, host) else { return nil } + + self.init(reachability: reachability) + } + + /// Creates an instance that monitors the address 0.0.0.0. + /// + /// Reachability treats the 0.0.0.0 address as a special token that causes it to monitor the general routing + /// status of the device, both IPv4 and IPv6. + public convenience init?() { + var zero = sockaddr() + zero.sa_len = UInt8(MemoryLayout.size) + zero.sa_family = sa_family_t(AF_INET) + + guard let reachability = SCNetworkReachabilityCreateWithAddress(nil, &zero) else { return nil } + + self.init(reachability: reachability) + } + + private init(reachability: SCNetworkReachability) { + self.reachability = reachability + } + + deinit { + stopListening() + } + + // MARK: - Listening + + /// Starts listening for changes in network reachability status. + /// + /// - Note: Stops and removes any existing listener. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which to call the `listener` closure. `.main` by default. + /// - listener: `Listener` closure called when reachability changes. + /// + /// - Returns: `true` if listening was started successfully, `false` otherwise. + @discardableResult + open func startListening(onQueue queue: DispatchQueue = .main, + onUpdatePerforming listener: @escaping Listener) -> Bool { + stopListening() + + $mutableState.write { state in + state.listenerQueue = queue + state.listener = listener + } + + let weakManager = WeakManager(manager: self) + + var context = SCNetworkReachabilityContext( + version: 0, + info: Unmanaged.passUnretained(weakManager).toOpaque(), + retain: { info in + let unmanaged = Unmanaged.fromOpaque(info) + _ = unmanaged.retain() + + return UnsafeRawPointer(unmanaged.toOpaque()) + }, + release: { info in + let unmanaged = Unmanaged.fromOpaque(info) + unmanaged.release() + }, + copyDescription: { info in + let unmanaged = Unmanaged.fromOpaque(info) + let weakManager = unmanaged.takeUnretainedValue() + let description = weakManager.manager?.flags?.readableDescription ?? "nil" + + return Unmanaged.passRetained(description as CFString) + } + ) + let callback: SCNetworkReachabilityCallBack = { _, flags, info in + guard let info = info else { return } + + let weakManager = Unmanaged.fromOpaque(info).takeUnretainedValue() + weakManager.manager?.notifyListener(flags) + } + + let queueAdded = SCNetworkReachabilitySetDispatchQueue(reachability, reachabilityQueue) + let callbackAdded = SCNetworkReachabilitySetCallback(reachability, callback, &context) + + // Manually call listener to give initial state, since the framework may not. + if let currentFlags = flags { + reachabilityQueue.async { + self.notifyListener(currentFlags) + } + } + + return callbackAdded && queueAdded + } + + /// Stops listening for changes in network reachability status. + open func stopListening() { + SCNetworkReachabilitySetCallback(reachability, nil, nil) + SCNetworkReachabilitySetDispatchQueue(reachability, nil) + $mutableState.write { state in + state.listener = nil + state.listenerQueue = nil + state.previousStatus = nil + } + } + + // MARK: - Internal - Listener Notification + + /// Calls the `listener` closure of the `listenerQueue` if the computed status hasn't changed. + /// + /// - Note: Should only be called from the `reachabilityQueue`. + /// + /// - Parameter flags: `SCNetworkReachabilityFlags` to use to calculate the status. + func notifyListener(_ flags: SCNetworkReachabilityFlags) { + let newStatus = NetworkReachabilityStatus(flags) + + $mutableState.write { state in + guard state.previousStatus != newStatus else { return } + + state.previousStatus = newStatus + + let listener = state.listener + state.listenerQueue?.async { listener?(newStatus) } + } + } + + private final class WeakManager { + weak var manager: NetworkReachabilityManager? + + init(manager: NetworkReachabilityManager?) { + self.manager = manager + } + } +} + +// MARK: - + +extension NetworkReachabilityManager.NetworkReachabilityStatus: Equatable {} + +extension SCNetworkReachabilityFlags { + var isReachable: Bool { contains(.reachable) } + var isConnectionRequired: Bool { contains(.connectionRequired) } + var canConnectAutomatically: Bool { contains(.connectionOnDemand) || contains(.connectionOnTraffic) } + var canConnectWithoutUserInteraction: Bool { canConnectAutomatically && !contains(.interventionRequired) } + var isActuallyReachable: Bool { isReachable && (!isConnectionRequired || canConnectWithoutUserInteraction) } + var isCellular: Bool { + #if swift(>=5.9) + #if os(iOS) || os(tvOS) || os(visionOS) + return contains(.isWWAN) + #else + return false + #endif + #else + #if os(iOS) || os(tvOS) + return contains(.isWWAN) + #else + return false + #endif + #endif + } + + /// Human readable `String` for all states, to help with debugging. + var readableDescription: String { + let W = isCellular ? "W" : "-" + let R = isReachable ? "R" : "-" + let c = isConnectionRequired ? "c" : "-" + let t = contains(.transientConnection) ? "t" : "-" + let i = contains(.interventionRequired) ? "i" : "-" + let C = contains(.connectionOnTraffic) ? "C" : "-" + let D = contains(.connectionOnDemand) ? "D" : "-" + let l = contains(.isLocalAddress) ? "l" : "-" + let d = contains(.isDirect) ? "d" : "-" + let a = contains(.connectionAutomatic) ? "a" : "-" + + return "\(W)\(R) \(c)\(t)\(i)\(C)\(D)\(l)\(d)\(a)" + } +} +#endif diff --git a/Pods/Alamofire/Source/Notifications.swift b/Pods/Alamofire/Source/Notifications.swift new file mode 100644 index 0000000..66434b6 --- /dev/null +++ b/Pods/Alamofire/Source/Notifications.swift @@ -0,0 +1,115 @@ +// +// Notifications.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +extension Request { + /// Posted when a `Request` is resumed. The `Notification` contains the resumed `Request`. + public static let didResumeNotification = Notification.Name(rawValue: "org.alamofire.notification.name.request.didResume") + /// Posted when a `Request` is suspended. The `Notification` contains the suspended `Request`. + public static let didSuspendNotification = Notification.Name(rawValue: "org.alamofire.notification.name.request.didSuspend") + /// Posted when a `Request` is cancelled. The `Notification` contains the cancelled `Request`. + public static let didCancelNotification = Notification.Name(rawValue: "org.alamofire.notification.name.request.didCancel") + /// Posted when a `Request` is finished. The `Notification` contains the completed `Request`. + public static let didFinishNotification = Notification.Name(rawValue: "org.alamofire.notification.name.request.didFinish") + + /// Posted when a `URLSessionTask` is resumed. The `Notification` contains the `Request` associated with the `URLSessionTask`. + public static let didResumeTaskNotification = Notification.Name(rawValue: "org.alamofire.notification.name.request.didResumeTask") + /// Posted when a `URLSessionTask` is suspended. The `Notification` contains the `Request` associated with the `URLSessionTask`. + public static let didSuspendTaskNotification = Notification.Name(rawValue: "org.alamofire.notification.name.request.didSuspendTask") + /// Posted when a `URLSessionTask` is cancelled. The `Notification` contains the `Request` associated with the `URLSessionTask`. + public static let didCancelTaskNotification = Notification.Name(rawValue: "org.alamofire.notification.name.request.didCancelTask") + /// Posted when a `URLSessionTask` is completed. The `Notification` contains the `Request` associated with the `URLSessionTask`. + public static let didCompleteTaskNotification = Notification.Name(rawValue: "org.alamofire.notification.name.request.didCompleteTask") +} + +// MARK: - + +extension Notification { + /// The `Request` contained by the instance's `userInfo`, `nil` otherwise. + public var request: Request? { + userInfo?[String.requestKey] as? Request + } + + /// Convenience initializer for a `Notification` containing a `Request` payload. + /// + /// - Parameters: + /// - name: The name of the notification. + /// - request: The `Request` payload. + init(name: Notification.Name, request: Request) { + self.init(name: name, object: nil, userInfo: [String.requestKey: request]) + } +} + +extension NotificationCenter { + /// Convenience function for posting notifications with `Request` payloads. + /// + /// - Parameters: + /// - name: The name of the notification. + /// - request: The `Request` payload. + func postNotification(named name: Notification.Name, with request: Request) { + let notification = Notification(name: name, request: request) + post(notification) + } +} + +extension String { + /// User info dictionary key representing the `Request` associated with the notification. + fileprivate static let requestKey = "org.alamofire.notification.key.request" +} + +/// `EventMonitor` that provides Alamofire's notifications. +public final class AlamofireNotifications: EventMonitor { + public func requestDidResume(_ request: Request) { + NotificationCenter.default.postNotification(named: Request.didResumeNotification, with: request) + } + + public func requestDidSuspend(_ request: Request) { + NotificationCenter.default.postNotification(named: Request.didSuspendNotification, with: request) + } + + public func requestDidCancel(_ request: Request) { + NotificationCenter.default.postNotification(named: Request.didCancelNotification, with: request) + } + + public func requestDidFinish(_ request: Request) { + NotificationCenter.default.postNotification(named: Request.didFinishNotification, with: request) + } + + public func request(_ request: Request, didResumeTask task: URLSessionTask) { + NotificationCenter.default.postNotification(named: Request.didResumeTaskNotification, with: request) + } + + public func request(_ request: Request, didSuspendTask task: URLSessionTask) { + NotificationCenter.default.postNotification(named: Request.didSuspendTaskNotification, with: request) + } + + public func request(_ request: Request, didCancelTask task: URLSessionTask) { + NotificationCenter.default.postNotification(named: Request.didCancelTaskNotification, with: request) + } + + public func request(_ request: Request, didCompleteTask task: URLSessionTask, with error: AFError?) { + NotificationCenter.default.postNotification(named: Request.didCompleteTaskNotification, with: request) + } +} diff --git a/Pods/Alamofire/Source/OperationQueue+Alamofire.swift b/Pods/Alamofire/Source/OperationQueue+Alamofire.swift new file mode 100644 index 0000000..b06a0cc --- /dev/null +++ b/Pods/Alamofire/Source/OperationQueue+Alamofire.swift @@ -0,0 +1,49 @@ +// +// OperationQueue+Alamofire.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +extension OperationQueue { + /// Creates an instance using the provided parameters. + /// + /// - Parameters: + /// - qualityOfService: `QualityOfService` to be applied to the queue. `.default` by default. + /// - maxConcurrentOperationCount: Maximum concurrent operations. + /// `OperationQueue.defaultMaxConcurrentOperationCount` by default. + /// - underlyingQueue: Underlying `DispatchQueue`. `nil` by default. + /// - name: Name for the queue. `nil` by default. + /// - startSuspended: Whether the queue starts suspended. `false` by default. + convenience init(qualityOfService: QualityOfService = .default, + maxConcurrentOperationCount: Int = OperationQueue.defaultMaxConcurrentOperationCount, + underlyingQueue: DispatchQueue? = nil, + name: String? = nil, + startSuspended: Bool = false) { + self.init() + self.qualityOfService = qualityOfService + self.maxConcurrentOperationCount = maxConcurrentOperationCount + self.underlyingQueue = underlyingQueue + self.name = name + isSuspended = startSuspended + } +} diff --git a/Pods/Alamofire/Source/ParameterEncoder.swift b/Pods/Alamofire/Source/ParameterEncoder.swift new file mode 100644 index 0000000..8916978 --- /dev/null +++ b/Pods/Alamofire/Source/ParameterEncoder.swift @@ -0,0 +1,213 @@ +// +// ParameterEncoder.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// A type that can encode any `Encodable` type into a `URLRequest`. +public protocol ParameterEncoder { + /// Encode the provided `Encodable` parameters into `request`. + /// + /// - Parameters: + /// - parameters: The `Encodable` parameter value. + /// - request: The `URLRequest` into which to encode the parameters. + /// + /// - Returns: A `URLRequest` with the result of the encoding. + /// - Throws: An `Error` when encoding fails. For Alamofire provided encoders, this will be an instance of + /// `AFError.parameterEncoderFailed` with an associated `ParameterEncoderFailureReason`. + func encode(_ parameters: Parameters?, into request: URLRequest) throws -> URLRequest +} + +/// A `ParameterEncoder` that encodes types as JSON body data. +/// +/// If no `Content-Type` header is already set on the provided `URLRequest`s, it's set to `application/json`. +open class JSONParameterEncoder: ParameterEncoder { + /// Returns an encoder with default parameters. + public static var `default`: JSONParameterEncoder { JSONParameterEncoder() } + + /// Returns an encoder with `JSONEncoder.outputFormatting` set to `.prettyPrinted`. + public static var prettyPrinted: JSONParameterEncoder { + let encoder = JSONEncoder() + encoder.outputFormatting = .prettyPrinted + + return JSONParameterEncoder(encoder: encoder) + } + + /// Returns an encoder with `JSONEncoder.outputFormatting` set to `.sortedKeys`. + @available(macOS 10.13, iOS 11.0, tvOS 11.0, watchOS 4.0, *) + public static var sortedKeys: JSONParameterEncoder { + let encoder = JSONEncoder() + encoder.outputFormatting = .sortedKeys + + return JSONParameterEncoder(encoder: encoder) + } + + /// `JSONEncoder` used to encode parameters. + public let encoder: JSONEncoder + + /// Creates an instance with the provided `JSONEncoder`. + /// + /// - Parameter encoder: The `JSONEncoder`. `JSONEncoder()` by default. + public init(encoder: JSONEncoder = JSONEncoder()) { + self.encoder = encoder + } + + open func encode(_ parameters: Parameters?, + into request: URLRequest) throws -> URLRequest { + guard let parameters = parameters else { return request } + + var request = request + + do { + let data = try encoder.encode(parameters) + request.httpBody = data + if request.headers["Content-Type"] == nil { + request.headers.update(.contentType("application/json")) + } + } catch { + throw AFError.parameterEncodingFailed(reason: .jsonEncodingFailed(error: error)) + } + + return request + } +} + +extension ParameterEncoder where Self == JSONParameterEncoder { + /// Provides a default `JSONParameterEncoder` instance. + public static var json: JSONParameterEncoder { JSONParameterEncoder() } + + /// Creates a `JSONParameterEncoder` using the provided `JSONEncoder`. + /// + /// - Parameter encoder: `JSONEncoder` used to encode parameters. `JSONEncoder()` by default. + /// - Returns: The `JSONParameterEncoder`. + public static func json(encoder: JSONEncoder = JSONEncoder()) -> JSONParameterEncoder { + JSONParameterEncoder(encoder: encoder) + } +} + +/// A `ParameterEncoder` that encodes types as URL-encoded query strings to be set on the URL or as body data, depending +/// on the `Destination` set. +/// +/// If no `Content-Type` header is already set on the provided `URLRequest`s, it will be set to +/// `application/x-www-form-urlencoded; charset=utf-8`. +/// +/// Encoding behavior can be customized by passing an instance of `URLEncodedFormEncoder` to the initializer. +open class URLEncodedFormParameterEncoder: ParameterEncoder { + /// Defines where the URL-encoded string should be set for each `URLRequest`. + public enum Destination { + /// Applies the encoded query string to any existing query string for `.get`, `.head`, and `.delete` request. + /// Sets it to the `httpBody` for all other methods. + case methodDependent + /// Applies the encoded query string to any existing query string from the `URLRequest`. + case queryString + /// Applies the encoded query string to the `httpBody` of the `URLRequest`. + case httpBody + + /// Determines whether the URL-encoded string should be applied to the `URLRequest`'s `url`. + /// + /// - Parameter method: The `HTTPMethod`. + /// + /// - Returns: Whether the URL-encoded string should be applied to a `URL`. + func encodesParametersInURL(for method: HTTPMethod) -> Bool { + switch self { + case .methodDependent: return [.get, .head, .delete].contains(method) + case .queryString: return true + case .httpBody: return false + } + } + } + + /// Returns an encoder with default parameters. + public static var `default`: URLEncodedFormParameterEncoder { URLEncodedFormParameterEncoder() } + + /// The `URLEncodedFormEncoder` to use. + public let encoder: URLEncodedFormEncoder + + /// The `Destination` for the URL-encoded string. + public let destination: Destination + + /// Creates an instance with the provided `URLEncodedFormEncoder` instance and `Destination` value. + /// + /// - Parameters: + /// - encoder: The `URLEncodedFormEncoder`. `URLEncodedFormEncoder()` by default. + /// - destination: The `Destination`. `.methodDependent` by default. + public init(encoder: URLEncodedFormEncoder = URLEncodedFormEncoder(), destination: Destination = .methodDependent) { + self.encoder = encoder + self.destination = destination + } + + open func encode(_ parameters: Parameters?, + into request: URLRequest) throws -> URLRequest { + guard let parameters = parameters else { return request } + + var request = request + + guard let url = request.url else { + throw AFError.parameterEncoderFailed(reason: .missingRequiredComponent(.url)) + } + + guard let method = request.method else { + let rawValue = request.method?.rawValue ?? "nil" + throw AFError.parameterEncoderFailed(reason: .missingRequiredComponent(.httpMethod(rawValue: rawValue))) + } + + if destination.encodesParametersInURL(for: method), + var components = URLComponents(url: url, resolvingAgainstBaseURL: false) { + let query: String = try Result { try encoder.encode(parameters) } + .mapError { AFError.parameterEncoderFailed(reason: .encoderFailed(error: $0)) }.get() + let newQueryString = [components.percentEncodedQuery, query].compactMap { $0 }.joinedWithAmpersands() + components.percentEncodedQuery = newQueryString.isEmpty ? nil : newQueryString + + guard let newURL = components.url else { + throw AFError.parameterEncoderFailed(reason: .missingRequiredComponent(.url)) + } + + request.url = newURL + } else { + if request.headers["Content-Type"] == nil { + request.headers.update(.contentType("application/x-www-form-urlencoded; charset=utf-8")) + } + + request.httpBody = try Result { try encoder.encode(parameters) } + .mapError { AFError.parameterEncoderFailed(reason: .encoderFailed(error: $0)) }.get() + } + + return request + } +} + +extension ParameterEncoder where Self == URLEncodedFormParameterEncoder { + /// Provides a default `URLEncodedFormParameterEncoder` instance. + public static var urlEncodedForm: URLEncodedFormParameterEncoder { URLEncodedFormParameterEncoder() } + + /// Creates a `URLEncodedFormParameterEncoder` with the provided encoder and destination. + /// + /// - Parameters: + /// - encoder: `URLEncodedFormEncoder` used to encode the parameters. `URLEncodedFormEncoder()` by default. + /// - destination: `Destination` to which to encode the parameters. `.methodDependent` by default. + /// - Returns: The `URLEncodedFormParameterEncoder`. + public static func urlEncodedForm(encoder: URLEncodedFormEncoder = URLEncodedFormEncoder(), + destination: URLEncodedFormParameterEncoder.Destination = .methodDependent) -> URLEncodedFormParameterEncoder { + URLEncodedFormParameterEncoder(encoder: encoder, destination: destination) + } +} diff --git a/Pods/Alamofire/Source/ParameterEncoding.swift b/Pods/Alamofire/Source/ParameterEncoding.swift new file mode 100644 index 0000000..ea61256 --- /dev/null +++ b/Pods/Alamofire/Source/ParameterEncoding.swift @@ -0,0 +1,346 @@ +// +// ParameterEncoding.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// A dictionary of parameters to apply to a `URLRequest`. +public typealias Parameters = [String: Any] + +/// A type used to define how a set of parameters are applied to a `URLRequest`. +public protocol ParameterEncoding { + /// Creates a `URLRequest` by encoding parameters and applying them on the passed request. + /// + /// - Parameters: + /// - urlRequest: `URLRequestConvertible` value onto which parameters will be encoded. + /// - parameters: `Parameters` to encode onto the request. + /// + /// - Returns: The encoded `URLRequest`. + /// - Throws: Any `Error` produced during parameter encoding. + func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest +} + +// MARK: - + +/// Creates a url-encoded query string to be set as or appended to any existing URL query string or set as the HTTP +/// body of the URL request. Whether the query string is set or appended to any existing URL query string or set as +/// the HTTP body depends on the destination of the encoding. +/// +/// The `Content-Type` HTTP header field of an encoded request with HTTP body is set to +/// `application/x-www-form-urlencoded; charset=utf-8`. +/// +/// There is no published specification for how to encode collection types. By default the convention of appending +/// `[]` to the key for array values (`foo[]=1&foo[]=2`), and appending the key surrounded by square brackets for +/// nested dictionary values (`foo[bar]=baz`) is used. Optionally, `ArrayEncoding` can be used to omit the +/// square brackets appended to array keys. +/// +/// `BoolEncoding` can be used to configure how boolean values are encoded. The default behavior is to encode +/// `true` as 1 and `false` as 0. +public struct URLEncoding: ParameterEncoding { + // MARK: Helper Types + + /// Defines whether the url-encoded query string is applied to the existing query string or HTTP body of the + /// resulting URL request. + public enum Destination { + /// Applies encoded query string result to existing query string for `GET`, `HEAD` and `DELETE` requests and + /// sets as the HTTP body for requests with any other HTTP method. + case methodDependent + /// Sets or appends encoded query string result to existing query string. + case queryString + /// Sets encoded query string result as the HTTP body of the URL request. + case httpBody + + func encodesParametersInURL(for method: HTTPMethod) -> Bool { + switch self { + case .methodDependent: return [.get, .head, .delete].contains(method) + case .queryString: return true + case .httpBody: return false + } + } + } + + /// Configures how `Array` parameters are encoded. + public enum ArrayEncoding { + /// An empty set of square brackets is appended to the key for every value. This is the default behavior. + case brackets + /// No brackets are appended. The key is encoded as is. + case noBrackets + /// Brackets containing the item index are appended. This matches the jQuery and Node.js behavior. + case indexInBrackets + /// Provide a custom array key encoding with the given closure. + case custom((_ key: String, _ index: Int) -> String) + + func encode(key: String, atIndex index: Int) -> String { + switch self { + case .brackets: + return "\(key)[]" + case .noBrackets: + return key + case .indexInBrackets: + return "\(key)[\(index)]" + case let .custom(encoding): + return encoding(key, index) + } + } + } + + /// Configures how `Bool` parameters are encoded. + public enum BoolEncoding { + /// Encode `true` as `1` and `false` as `0`. This is the default behavior. + case numeric + /// Encode `true` and `false` as string literals. + case literal + + func encode(value: Bool) -> String { + switch self { + case .numeric: + return value ? "1" : "0" + case .literal: + return value ? "true" : "false" + } + } + } + + // MARK: Properties + + /// Returns a default `URLEncoding` instance with a `.methodDependent` destination. + public static var `default`: URLEncoding { URLEncoding() } + + /// Returns a `URLEncoding` instance with a `.queryString` destination. + public static var queryString: URLEncoding { URLEncoding(destination: .queryString) } + + /// Returns a `URLEncoding` instance with an `.httpBody` destination. + public static var httpBody: URLEncoding { URLEncoding(destination: .httpBody) } + + /// The destination defining where the encoded query string is to be applied to the URL request. + public let destination: Destination + + /// The encoding to use for `Array` parameters. + public let arrayEncoding: ArrayEncoding + + /// The encoding to use for `Bool` parameters. + public let boolEncoding: BoolEncoding + + // MARK: Initialization + + /// Creates an instance using the specified parameters. + /// + /// - Parameters: + /// - destination: `Destination` defining where the encoded query string will be applied. `.methodDependent` by + /// default. + /// - arrayEncoding: `ArrayEncoding` to use. `.brackets` by default. + /// - boolEncoding: `BoolEncoding` to use. `.numeric` by default. + public init(destination: Destination = .methodDependent, + arrayEncoding: ArrayEncoding = .brackets, + boolEncoding: BoolEncoding = .numeric) { + self.destination = destination + self.arrayEncoding = arrayEncoding + self.boolEncoding = boolEncoding + } + + // MARK: Encoding + + public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest { + var urlRequest = try urlRequest.asURLRequest() + + guard let parameters = parameters else { return urlRequest } + + if let method = urlRequest.method, destination.encodesParametersInURL(for: method) { + guard let url = urlRequest.url else { + throw AFError.parameterEncodingFailed(reason: .missingURL) + } + + if var urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: false), !parameters.isEmpty { + let percentEncodedQuery = (urlComponents.percentEncodedQuery.map { $0 + "&" } ?? "") + query(parameters) + urlComponents.percentEncodedQuery = percentEncodedQuery + urlRequest.url = urlComponents.url + } + } else { + if urlRequest.headers["Content-Type"] == nil { + urlRequest.headers.update(.contentType("application/x-www-form-urlencoded; charset=utf-8")) + } + + urlRequest.httpBody = Data(query(parameters).utf8) + } + + return urlRequest + } + + /// Creates a percent-escaped, URL encoded query string components from the given key-value pair recursively. + /// + /// - Parameters: + /// - key: Key of the query component. + /// - value: Value of the query component. + /// + /// - Returns: The percent-escaped, URL encoded query string components. + public func queryComponents(fromKey key: String, value: Any) -> [(String, String)] { + var components: [(String, String)] = [] + switch value { + case let dictionary as [String: Any]: + for (nestedKey, value) in dictionary { + components += queryComponents(fromKey: "\(key)[\(nestedKey)]", value: value) + } + case let array as [Any]: + for (index, value) in array.enumerated() { + components += queryComponents(fromKey: arrayEncoding.encode(key: key, atIndex: index), value: value) + } + case let number as NSNumber: + if number.isBool { + components.append((escape(key), escape(boolEncoding.encode(value: number.boolValue)))) + } else { + components.append((escape(key), escape("\(number)"))) + } + case let bool as Bool: + components.append((escape(key), escape(boolEncoding.encode(value: bool)))) + default: + components.append((escape(key), escape("\(value)"))) + } + return components + } + + /// Creates a percent-escaped string following RFC 3986 for a query string key or value. + /// + /// - Parameter string: `String` to be percent-escaped. + /// + /// - Returns: The percent-escaped `String`. + public func escape(_ string: String) -> String { + string.addingPercentEncoding(withAllowedCharacters: .afURLQueryAllowed) ?? string + } + + private func query(_ parameters: [String: Any]) -> String { + var components: [(String, String)] = [] + + for key in parameters.keys.sorted(by: <) { + let value = parameters[key]! + components += queryComponents(fromKey: key, value: value) + } + return components.map { "\($0)=\($1)" }.joined(separator: "&") + } +} + +// MARK: - + +/// Uses `JSONSerialization` to create a JSON representation of the parameters object, which is set as the body of the +/// request. The `Content-Type` HTTP header field of an encoded request is set to `application/json`. +public struct JSONEncoding: ParameterEncoding { + public enum Error: Swift.Error { + case invalidJSONObject + } + + // MARK: Properties + + /// Returns a `JSONEncoding` instance with default writing options. + public static var `default`: JSONEncoding { JSONEncoding() } + + /// Returns a `JSONEncoding` instance with `.prettyPrinted` writing options. + public static var prettyPrinted: JSONEncoding { JSONEncoding(options: .prettyPrinted) } + + /// The options for writing the parameters as JSON data. + public let options: JSONSerialization.WritingOptions + + // MARK: Initialization + + /// Creates an instance using the specified `WritingOptions`. + /// + /// - Parameter options: `JSONSerialization.WritingOptions` to use. + public init(options: JSONSerialization.WritingOptions = []) { + self.options = options + } + + // MARK: Encoding + + public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest { + var urlRequest = try urlRequest.asURLRequest() + + guard let parameters = parameters else { return urlRequest } + + guard JSONSerialization.isValidJSONObject(parameters) else { + throw AFError.parameterEncodingFailed(reason: .jsonEncodingFailed(error: Error.invalidJSONObject)) + } + + do { + let data = try JSONSerialization.data(withJSONObject: parameters, options: options) + + if urlRequest.headers["Content-Type"] == nil { + urlRequest.headers.update(.contentType("application/json")) + } + + urlRequest.httpBody = data + } catch { + throw AFError.parameterEncodingFailed(reason: .jsonEncodingFailed(error: error)) + } + + return urlRequest + } + + /// Encodes any JSON compatible object into a `URLRequest`. + /// + /// - Parameters: + /// - urlRequest: `URLRequestConvertible` value into which the object will be encoded. + /// - jsonObject: `Any` value (must be JSON compatible` to be encoded into the `URLRequest`. `nil` by default. + /// + /// - Returns: The encoded `URLRequest`. + /// - Throws: Any `Error` produced during encoding. + public func encode(_ urlRequest: URLRequestConvertible, withJSONObject jsonObject: Any? = nil) throws -> URLRequest { + var urlRequest = try urlRequest.asURLRequest() + + guard let jsonObject = jsonObject else { return urlRequest } + + guard JSONSerialization.isValidJSONObject(jsonObject) else { + throw AFError.parameterEncodingFailed(reason: .jsonEncodingFailed(error: Error.invalidJSONObject)) + } + + do { + let data = try JSONSerialization.data(withJSONObject: jsonObject, options: options) + + if urlRequest.headers["Content-Type"] == nil { + urlRequest.headers.update(.contentType("application/json")) + } + + urlRequest.httpBody = data + } catch { + throw AFError.parameterEncodingFailed(reason: .jsonEncodingFailed(error: error)) + } + + return urlRequest + } +} + +extension JSONEncoding.Error { + public var localizedDescription: String { + """ + Invalid JSON object provided for parameter or object encoding. \ + This is most likely due to a value which can't be represented in Objective-C. + """ + } +} + +// MARK: - + +extension NSNumber { + fileprivate var isBool: Bool { + // Use Obj-C type encoding to check whether the underlying type is a `Bool`, as it's guaranteed as part of + // swift-corelibs-foundation, per [this discussion on the Swift forums](https://forums.swift.org/t/alamofire-on-linux-possible-but-not-release-ready/34553/22). + String(cString: objCType) == "c" + } +} diff --git a/Pods/Alamofire/Source/Protected.swift b/Pods/Alamofire/Source/Protected.swift new file mode 100644 index 0000000..9449412 --- /dev/null +++ b/Pods/Alamofire/Source/Protected.swift @@ -0,0 +1,161 @@ +// +// Protected.swift +// +// Copyright (c) 2014-2020 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +private protocol Lock { + func lock() + func unlock() +} + +extension Lock { + /// Executes a closure returning a value while acquiring the lock. + /// + /// - Parameter closure: The closure to run. + /// + /// - Returns: The value the closure generated. + func around(_ closure: () throws -> T) rethrows -> T { + lock(); defer { unlock() } + return try closure() + } + + /// Execute a closure while acquiring the lock. + /// + /// - Parameter closure: The closure to run. + func around(_ closure: () throws -> Void) rethrows { + lock(); defer { unlock() } + try closure() + } +} + +#if os(Linux) || os(Windows) || os(Android) + +extension NSLock: Lock {} + +#endif + +#if canImport(Darwin) +/// An `os_unfair_lock` wrapper. +final class UnfairLock: Lock { + private let unfairLock: os_unfair_lock_t + + init() { + unfairLock = .allocate(capacity: 1) + unfairLock.initialize(to: os_unfair_lock()) + } + + deinit { + unfairLock.deinitialize(count: 1) + unfairLock.deallocate() + } + + fileprivate func lock() { + os_unfair_lock_lock(unfairLock) + } + + fileprivate func unlock() { + os_unfair_lock_unlock(unfairLock) + } +} +#endif + +/// A thread-safe wrapper around a value. +@propertyWrapper +@dynamicMemberLookup +final class Protected { + #if canImport(Darwin) + private let lock = UnfairLock() + #elseif os(Linux) || os(Windows) || os(Android) + private let lock = NSLock() + #endif + private var value: T + + init(_ value: T) { + self.value = value + } + + /// The contained value. Unsafe for anything more than direct read or write. + var wrappedValue: T { + get { lock.around { value } } + set { lock.around { value = newValue } } + } + + var projectedValue: Protected { self } + + init(wrappedValue: T) { + value = wrappedValue + } + + /// Synchronously read or transform the contained value. + /// + /// - Parameter closure: The closure to execute. + /// + /// - Returns: The return value of the closure passed. + func read(_ closure: (T) throws -> U) rethrows -> U { + try lock.around { try closure(self.value) } + } + + /// Synchronously modify the protected value. + /// + /// - Parameter closure: The closure to execute. + /// + /// - Returns: The modified value. + @discardableResult + func write(_ closure: (inout T) throws -> U) rethrows -> U { + try lock.around { try closure(&self.value) } + } + + subscript(dynamicMember keyPath: WritableKeyPath) -> Property { + get { lock.around { value[keyPath: keyPath] } } + set { lock.around { value[keyPath: keyPath] = newValue } } + } + + subscript(dynamicMember keyPath: KeyPath) -> Property { + lock.around { value[keyPath: keyPath] } + } +} + +extension Protected where T == Request.MutableState { + /// Attempts to transition to the passed `State`. + /// + /// - Parameter state: The `State` to attempt transition to. + /// + /// - Returns: Whether the transition occurred. + func attemptToTransitionTo(_ state: Request.State) -> Bool { + lock.around { + guard value.state.canTransitionTo(state) else { return false } + + value.state = state + + return true + } + } + + /// Perform a closure while locked with the provided `Request.State`. + /// + /// - Parameter perform: The closure to perform while locked. + func withState(perform: (Request.State) -> Void) { + lock.around { perform(value.state) } + } +} diff --git a/Pods/Alamofire/Source/RedirectHandler.swift b/Pods/Alamofire/Source/RedirectHandler.swift new file mode 100644 index 0000000..cf88abf --- /dev/null +++ b/Pods/Alamofire/Source/RedirectHandler.swift @@ -0,0 +1,111 @@ +// +// RedirectHandler.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// A type that handles how an HTTP redirect response from a remote server should be redirected to the new request. +public protocol RedirectHandler { + /// Determines how the HTTP redirect response should be redirected to the new request. + /// + /// The `completion` closure should be passed one of three possible options: + /// + /// 1. The new request specified by the redirect (this is the most common use case). + /// 2. A modified version of the new request (you may want to route it somewhere else). + /// 3. A `nil` value to deny the redirect request and return the body of the redirect response. + /// + /// - Parameters: + /// - task: The `URLSessionTask` whose request resulted in a redirect. + /// - request: The `URLRequest` to the new location specified by the redirect response. + /// - response: The `HTTPURLResponse` containing the server's response to the original request. + /// - completion: The closure to execute containing the new `URLRequest`, a modified `URLRequest`, or `nil`. + func task(_ task: URLSessionTask, + willBeRedirectedTo request: URLRequest, + for response: HTTPURLResponse, + completion: @escaping (URLRequest?) -> Void) +} + +// MARK: - + +/// `Redirector` is a convenience `RedirectHandler` making it easy to follow, not follow, or modify a redirect. +public struct Redirector { + /// Defines the behavior of the `Redirector` type. + public enum Behavior { + /// Follow the redirect as defined in the response. + case follow + /// Do not follow the redirect defined in the response. + case doNotFollow + /// Modify the redirect request defined in the response. + case modify((URLSessionTask, URLRequest, HTTPURLResponse) -> URLRequest?) + } + + /// Returns a `Redirector` with a `.follow` `Behavior`. + public static let follow = Redirector(behavior: .follow) + /// Returns a `Redirector` with a `.doNotFollow` `Behavior`. + public static let doNotFollow = Redirector(behavior: .doNotFollow) + + /// The `Behavior` of the `Redirector`. + public let behavior: Behavior + + /// Creates a `Redirector` instance from the `Behavior`. + /// + /// - Parameter behavior: The `Behavior`. + public init(behavior: Behavior) { + self.behavior = behavior + } +} + +// MARK: - + +extension Redirector: RedirectHandler { + public func task(_ task: URLSessionTask, + willBeRedirectedTo request: URLRequest, + for response: HTTPURLResponse, + completion: @escaping (URLRequest?) -> Void) { + switch behavior { + case .follow: + completion(request) + case .doNotFollow: + completion(nil) + case let .modify(closure): + let request = closure(task, request, response) + completion(request) + } + } +} + +extension RedirectHandler where Self == Redirector { + /// Provides a `Redirector` which follows redirects. Equivalent to `Redirector.follow`. + public static var follow: Redirector { .follow } + + /// Provides a `Redirector` which does not follow redirects. Equivalent to `Redirector.doNotFollow`. + public static var doNotFollow: Redirector { .doNotFollow } + + /// Creates a `Redirector` which modifies the redirected `URLRequest` using the provided closure. + /// + /// - Parameter closure: Closure used to modify the redirect. + /// - Returns: The `Redirector`. + public static func modify(using closure: @escaping (URLSessionTask, URLRequest, HTTPURLResponse) -> URLRequest?) -> Redirector { + Redirector(behavior: .modify(closure)) + } +} diff --git a/Pods/Alamofire/Source/Request.swift b/Pods/Alamofire/Source/Request.swift new file mode 100644 index 0000000..fbae9db --- /dev/null +++ b/Pods/Alamofire/Source/Request.swift @@ -0,0 +1,2070 @@ +// +// Request.swift +// +// Copyright (c) 2014-2020 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// `Request` is the common superclass of all Alamofire request types and provides common state, delegate, and callback +/// handling. +public class Request { + /// State of the `Request`, with managed transitions between states set when calling `resume()`, `suspend()`, or + /// `cancel()` on the `Request`. + public enum State { + /// Initial state of the `Request`. + case initialized + /// `State` set when `resume()` is called. Any tasks created for the `Request` will have `resume()` called on + /// them in this state. + case resumed + /// `State` set when `suspend()` is called. Any tasks created for the `Request` will have `suspend()` called on + /// them in this state. + case suspended + /// `State` set when `cancel()` is called. Any tasks created for the `Request` will have `cancel()` called on + /// them. Unlike `resumed` or `suspended`, once in the `cancelled` state, the `Request` can no longer transition + /// to any other state. + case cancelled + /// `State` set when all response serialization completion closures have been cleared on the `Request` and + /// enqueued on their respective queues. + case finished + + /// Determines whether `self` can be transitioned to the provided `State`. + func canTransitionTo(_ state: State) -> Bool { + switch (self, state) { + case (.initialized, _): + return true + case (_, .initialized), (.cancelled, _), (.finished, _): + return false + case (.resumed, .cancelled), (.suspended, .cancelled), (.resumed, .suspended), (.suspended, .resumed): + return true + case (.suspended, .suspended), (.resumed, .resumed): + return false + case (_, .finished): + return true + } + } + } + + // MARK: - Initial State + + /// `UUID` providing a unique identifier for the `Request`, used in the `Hashable` and `Equatable` conformances. + public let id: UUID + /// The serial queue for all internal async actions. + public let underlyingQueue: DispatchQueue + /// The queue used for all serialization actions. By default it's a serial queue that targets `underlyingQueue`. + public let serializationQueue: DispatchQueue + /// `EventMonitor` used for event callbacks. + public let eventMonitor: EventMonitor? + /// The `Request`'s interceptor. + public let interceptor: RequestInterceptor? + /// The `Request`'s delegate. + public private(set) weak var delegate: RequestDelegate? + + // MARK: - Mutable State + + /// Type encapsulating all mutable state that may need to be accessed from anything other than the `underlyingQueue`. + struct MutableState { + /// State of the `Request`. + var state: State = .initialized + /// `ProgressHandler` and `DispatchQueue` provided for upload progress callbacks. + var uploadProgressHandler: (handler: ProgressHandler, queue: DispatchQueue)? + /// `ProgressHandler` and `DispatchQueue` provided for download progress callbacks. + var downloadProgressHandler: (handler: ProgressHandler, queue: DispatchQueue)? + /// `RedirectHandler` provided for to handle request redirection. + var redirectHandler: RedirectHandler? + /// `CachedResponseHandler` provided to handle response caching. + var cachedResponseHandler: CachedResponseHandler? + /// Queue and closure called when the `Request` is able to create a cURL description of itself. + var cURLHandler: (queue: DispatchQueue, handler: (String) -> Void)? + /// Queue and closure called when the `Request` creates a `URLRequest`. + var urlRequestHandler: (queue: DispatchQueue, handler: (URLRequest) -> Void)? + /// Queue and closure called when the `Request` creates a `URLSessionTask`. + var urlSessionTaskHandler: (queue: DispatchQueue, handler: (URLSessionTask) -> Void)? + /// Response serialization closures that handle response parsing. + var responseSerializers: [() -> Void] = [] + /// Response serialization completion closures executed once all response serializers are complete. + var responseSerializerCompletions: [() -> Void] = [] + /// Whether response serializer processing is finished. + var responseSerializerProcessingFinished = false + /// `URLCredential` used for authentication challenges. + var credential: URLCredential? + /// All `URLRequest`s created by Alamofire on behalf of the `Request`. + var requests: [URLRequest] = [] + /// All `URLSessionTask`s created by Alamofire on behalf of the `Request`. + var tasks: [URLSessionTask] = [] + /// All `URLSessionTaskMetrics` values gathered by Alamofire on behalf of the `Request`. Should correspond + /// exactly the the `tasks` created. + var metrics: [URLSessionTaskMetrics] = [] + /// Number of times any retriers provided retried the `Request`. + var retryCount = 0 + /// Final `AFError` for the `Request`, whether from various internal Alamofire calls or as a result of a `task`. + var error: AFError? + /// Whether the instance has had `finish()` called and is running the serializers. Should be replaced with a + /// representation in the state machine in the future. + var isFinishing = false + /// Actions to run when requests are finished. Use for concurrency support. + var finishHandlers: [() -> Void] = [] + } + + /// Protected `MutableState` value that provides thread-safe access to state values. + @Protected + fileprivate var mutableState = MutableState() + + /// `State` of the `Request`. + public var state: State { $mutableState.state } + /// Returns whether `state` is `.initialized`. + public var isInitialized: Bool { state == .initialized } + /// Returns whether `state is `.resumed`. + public var isResumed: Bool { state == .resumed } + /// Returns whether `state` is `.suspended`. + public var isSuspended: Bool { state == .suspended } + /// Returns whether `state` is `.cancelled`. + public var isCancelled: Bool { state == .cancelled } + /// Returns whether `state` is `.finished`. + public var isFinished: Bool { state == .finished } + + // MARK: Progress + + /// Closure type executed when monitoring the upload or download progress of a request. + public typealias ProgressHandler = (Progress) -> Void + + /// `Progress` of the upload of the body of the executed `URLRequest`. Reset to `0` if the `Request` is retried. + public let uploadProgress = Progress(totalUnitCount: 0) + /// `Progress` of the download of any response data. Reset to `0` if the `Request` is retried. + public let downloadProgress = Progress(totalUnitCount: 0) + /// `ProgressHandler` called when `uploadProgress` is updated, on the provided `DispatchQueue`. + private var uploadProgressHandler: (handler: ProgressHandler, queue: DispatchQueue)? { + get { $mutableState.uploadProgressHandler } + set { $mutableState.uploadProgressHandler = newValue } + } + + /// `ProgressHandler` called when `downloadProgress` is updated, on the provided `DispatchQueue`. + fileprivate var downloadProgressHandler: (handler: ProgressHandler, queue: DispatchQueue)? { + get { $mutableState.downloadProgressHandler } + set { $mutableState.downloadProgressHandler = newValue } + } + + // MARK: Redirect Handling + + /// `RedirectHandler` set on the instance. + public private(set) var redirectHandler: RedirectHandler? { + get { $mutableState.redirectHandler } + set { $mutableState.redirectHandler = newValue } + } + + // MARK: Cached Response Handling + + /// `CachedResponseHandler` set on the instance. + public private(set) var cachedResponseHandler: CachedResponseHandler? { + get { $mutableState.cachedResponseHandler } + set { $mutableState.cachedResponseHandler = newValue } + } + + // MARK: URLCredential + + /// `URLCredential` used for authentication challenges. Created by calling one of the `authenticate` methods. + public private(set) var credential: URLCredential? { + get { $mutableState.credential } + set { $mutableState.credential = newValue } + } + + // MARK: Validators + + /// `Validator` callback closures that store the validation calls enqueued. + @Protected + fileprivate var validators: [() -> Void] = [] + + // MARK: URLRequests + + /// All `URLRequests` created on behalf of the `Request`, including original and adapted requests. + public var requests: [URLRequest] { $mutableState.requests } + /// First `URLRequest` created on behalf of the `Request`. May not be the first one actually executed. + public var firstRequest: URLRequest? { requests.first } + /// Last `URLRequest` created on behalf of the `Request`. + public var lastRequest: URLRequest? { requests.last } + /// Current `URLRequest` created on behalf of the `Request`. + public var request: URLRequest? { lastRequest } + + /// `URLRequest`s from all of the `URLSessionTask`s executed on behalf of the `Request`. May be different from + /// `requests` due to `URLSession` manipulation. + public var performedRequests: [URLRequest] { $mutableState.read { $0.tasks.compactMap(\.currentRequest) } } + + // MARK: HTTPURLResponse + + /// `HTTPURLResponse` received from the server, if any. If the `Request` was retried, this is the response of the + /// last `URLSessionTask`. + public var response: HTTPURLResponse? { lastTask?.response as? HTTPURLResponse } + + // MARK: Tasks + + /// All `URLSessionTask`s created on behalf of the `Request`. + public var tasks: [URLSessionTask] { $mutableState.tasks } + /// First `URLSessionTask` created on behalf of the `Request`. + public var firstTask: URLSessionTask? { tasks.first } + /// Last `URLSessionTask` created on behalf of the `Request`. + public var lastTask: URLSessionTask? { tasks.last } + /// Current `URLSessionTask` created on behalf of the `Request`. + public var task: URLSessionTask? { lastTask } + + // MARK: Metrics + + /// All `URLSessionTaskMetrics` gathered on behalf of the `Request`. Should correspond to the `tasks` created. + public var allMetrics: [URLSessionTaskMetrics] { $mutableState.metrics } + /// First `URLSessionTaskMetrics` gathered on behalf of the `Request`. + public var firstMetrics: URLSessionTaskMetrics? { allMetrics.first } + /// Last `URLSessionTaskMetrics` gathered on behalf of the `Request`. + public var lastMetrics: URLSessionTaskMetrics? { allMetrics.last } + /// Current `URLSessionTaskMetrics` gathered on behalf of the `Request`. + public var metrics: URLSessionTaskMetrics? { lastMetrics } + + // MARK: Retry Count + + /// Number of times the `Request` has been retried. + public var retryCount: Int { $mutableState.retryCount } + + // MARK: Error + + /// `Error` returned from Alamofire internally, from the network request directly, or any validators executed. + public fileprivate(set) var error: AFError? { + get { $mutableState.error } + set { $mutableState.error = newValue } + } + + /// Default initializer for the `Request` superclass. + /// + /// - Parameters: + /// - id: `UUID` used for the `Hashable` and `Equatable` implementations. `UUID()` by default. + /// - underlyingQueue: `DispatchQueue` on which all internal `Request` work is performed. + /// - serializationQueue: `DispatchQueue` on which all serialization work is performed. By default targets + /// `underlyingQueue`, but can be passed another queue from a `Session`. + /// - eventMonitor: `EventMonitor` called for event callbacks from internal `Request` actions. + /// - interceptor: `RequestInterceptor` used throughout the request lifecycle. + /// - delegate: `RequestDelegate` that provides an interface to actions not performed by the `Request`. + init(id: UUID = UUID(), + underlyingQueue: DispatchQueue, + serializationQueue: DispatchQueue, + eventMonitor: EventMonitor?, + interceptor: RequestInterceptor?, + delegate: RequestDelegate) { + self.id = id + self.underlyingQueue = underlyingQueue + self.serializationQueue = serializationQueue + self.eventMonitor = eventMonitor + self.interceptor = interceptor + self.delegate = delegate + } + + // MARK: - Internal Event API + + // All API must be called from underlyingQueue. + + /// Called when an initial `URLRequest` has been created on behalf of the instance. If a `RequestAdapter` is active, + /// the `URLRequest` will be adapted before being issued. + /// + /// - Parameter request: The `URLRequest` created. + func didCreateInitialURLRequest(_ request: URLRequest) { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + $mutableState.write { $0.requests.append(request) } + + eventMonitor?.request(self, didCreateInitialURLRequest: request) + } + + /// Called when initial `URLRequest` creation has failed, typically through a `URLRequestConvertible`. + /// + /// - Note: Triggers retry. + /// + /// - Parameter error: `AFError` thrown from the failed creation. + func didFailToCreateURLRequest(with error: AFError) { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + self.error = error + + eventMonitor?.request(self, didFailToCreateURLRequestWithError: error) + + callCURLHandlerIfNecessary() + + retryOrFinish(error: error) + } + + /// Called when a `RequestAdapter` has successfully adapted a `URLRequest`. + /// + /// - Parameters: + /// - initialRequest: The `URLRequest` that was adapted. + /// - adaptedRequest: The `URLRequest` returned by the `RequestAdapter`. + func didAdaptInitialRequest(_ initialRequest: URLRequest, to adaptedRequest: URLRequest) { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + $mutableState.write { $0.requests.append(adaptedRequest) } + + eventMonitor?.request(self, didAdaptInitialRequest: initialRequest, to: adaptedRequest) + } + + /// Called when a `RequestAdapter` fails to adapt a `URLRequest`. + /// + /// - Note: Triggers retry. + /// + /// - Parameters: + /// - request: The `URLRequest` the adapter was called with. + /// - error: The `AFError` returned by the `RequestAdapter`. + func didFailToAdaptURLRequest(_ request: URLRequest, withError error: AFError) { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + self.error = error + + eventMonitor?.request(self, didFailToAdaptURLRequest: request, withError: error) + + callCURLHandlerIfNecessary() + + retryOrFinish(error: error) + } + + /// Final `URLRequest` has been created for the instance. + /// + /// - Parameter request: The `URLRequest` created. + func didCreateURLRequest(_ request: URLRequest) { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + $mutableState.read { state in + state.urlRequestHandler?.queue.async { state.urlRequestHandler?.handler(request) } + } + + eventMonitor?.request(self, didCreateURLRequest: request) + + callCURLHandlerIfNecessary() + } + + /// Asynchronously calls any stored `cURLHandler` and then removes it from `mutableState`. + private func callCURLHandlerIfNecessary() { + $mutableState.write { mutableState in + guard let cURLHandler = mutableState.cURLHandler else { return } + + cURLHandler.queue.async { cURLHandler.handler(self.cURLDescription()) } + + mutableState.cURLHandler = nil + } + } + + /// Called when a `URLSessionTask` is created on behalf of the instance. + /// + /// - Parameter task: The `URLSessionTask` created. + func didCreateTask(_ task: URLSessionTask) { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + $mutableState.write { state in + state.tasks.append(task) + + guard let urlSessionTaskHandler = state.urlSessionTaskHandler else { return } + + urlSessionTaskHandler.queue.async { urlSessionTaskHandler.handler(task) } + } + + eventMonitor?.request(self, didCreateTask: task) + } + + /// Called when resumption is completed. + func didResume() { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + eventMonitor?.requestDidResume(self) + } + + /// Called when a `URLSessionTask` is resumed on behalf of the instance. + /// + /// - Parameter task: The `URLSessionTask` resumed. + func didResumeTask(_ task: URLSessionTask) { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + eventMonitor?.request(self, didResumeTask: task) + } + + /// Called when suspension is completed. + func didSuspend() { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + eventMonitor?.requestDidSuspend(self) + } + + /// Called when a `URLSessionTask` is suspended on behalf of the instance. + /// + /// - Parameter task: The `URLSessionTask` suspended. + func didSuspendTask(_ task: URLSessionTask) { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + eventMonitor?.request(self, didSuspendTask: task) + } + + /// Called when cancellation is completed, sets `error` to `AFError.explicitlyCancelled`. + func didCancel() { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + $mutableState.write { mutableState in + mutableState.error = mutableState.error ?? AFError.explicitlyCancelled + } + + eventMonitor?.requestDidCancel(self) + } + + /// Called when a `URLSessionTask` is cancelled on behalf of the instance. + /// + /// - Parameter task: The `URLSessionTask` cancelled. + func didCancelTask(_ task: URLSessionTask) { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + eventMonitor?.request(self, didCancelTask: task) + } + + /// Called when a `URLSessionTaskMetrics` value is gathered on behalf of the instance. + /// + /// - Parameter metrics: The `URLSessionTaskMetrics` gathered. + func didGatherMetrics(_ metrics: URLSessionTaskMetrics) { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + $mutableState.write { $0.metrics.append(metrics) } + + eventMonitor?.request(self, didGatherMetrics: metrics) + } + + /// Called when a `URLSessionTask` fails before it is finished, typically during certificate pinning. + /// + /// - Parameters: + /// - task: The `URLSessionTask` which failed. + /// - error: The early failure `AFError`. + func didFailTask(_ task: URLSessionTask, earlyWithError error: AFError) { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + self.error = error + + // Task will still complete, so didCompleteTask(_:with:) will handle retry. + eventMonitor?.request(self, didFailTask: task, earlyWithError: error) + } + + /// Called when a `URLSessionTask` completes. All tasks will eventually call this method. + /// + /// - Note: Response validation is synchronously triggered in this step. + /// + /// - Parameters: + /// - task: The `URLSessionTask` which completed. + /// - error: The `AFError` `task` may have completed with. If `error` has already been set on the instance, this + /// value is ignored. + func didCompleteTask(_ task: URLSessionTask, with error: AFError?) { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + self.error = self.error ?? error + + validators.forEach { $0() } + + eventMonitor?.request(self, didCompleteTask: task, with: error) + + retryOrFinish(error: self.error) + } + + /// Called when the `RequestDelegate` is going to retry this `Request`. Calls `reset()`. + func prepareForRetry() { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + $mutableState.write { $0.retryCount += 1 } + + reset() + + eventMonitor?.requestIsRetrying(self) + } + + /// Called to determine whether retry will be triggered for the particular error, or whether the instance should + /// call `finish()`. + /// + /// - Parameter error: The possible `AFError` which may trigger retry. + func retryOrFinish(error: AFError?) { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + guard !isCancelled, let error = error, let delegate = delegate else { finish(); return } + + delegate.retryResult(for: self, dueTo: error) { retryResult in + switch retryResult { + case .doNotRetry: + self.finish() + case let .doNotRetryWithError(retryError): + self.finish(error: retryError.asAFError(orFailWith: "Received retryError was not already AFError")) + case .retry, .retryWithDelay: + delegate.retryRequest(self, withDelay: retryResult.delay) + } + } + } + + /// Finishes this `Request` and starts the response serializers. + /// + /// - Parameter error: The possible `Error` with which the instance will finish. + func finish(error: AFError? = nil) { + dispatchPrecondition(condition: .onQueue(underlyingQueue)) + + guard !$mutableState.isFinishing else { return } + + $mutableState.isFinishing = true + + if let error = error { self.error = error } + + // Start response handlers + processNextResponseSerializer() + + eventMonitor?.requestDidFinish(self) + } + + /// Appends the response serialization closure to the instance. + /// + /// - Note: This method will also `resume` the instance if `delegate.startImmediately` returns `true`. + /// + /// - Parameter closure: The closure containing the response serialization call. + func appendResponseSerializer(_ closure: @escaping () -> Void) { + $mutableState.write { mutableState in + mutableState.responseSerializers.append(closure) + + if mutableState.state == .finished { + mutableState.state = .resumed + } + + if mutableState.responseSerializerProcessingFinished { + underlyingQueue.async { self.processNextResponseSerializer() } + } + + if mutableState.state.canTransitionTo(.resumed) { + underlyingQueue.async { if self.delegate?.startImmediately == true { self.resume() } } + } + } + } + + /// Returns the next response serializer closure to execute if there's one left. + /// + /// - Returns: The next response serialization closure, if there is one. + func nextResponseSerializer() -> (() -> Void)? { + var responseSerializer: (() -> Void)? + + $mutableState.write { mutableState in + let responseSerializerIndex = mutableState.responseSerializerCompletions.count + + if responseSerializerIndex < mutableState.responseSerializers.count { + responseSerializer = mutableState.responseSerializers[responseSerializerIndex] + } + } + + return responseSerializer + } + + /// Processes the next response serializer and calls all completions if response serialization is complete. + func processNextResponseSerializer() { + guard let responseSerializer = nextResponseSerializer() else { + // Execute all response serializer completions and clear them + var completions: [() -> Void] = [] + + $mutableState.write { mutableState in + completions = mutableState.responseSerializerCompletions + + // Clear out all response serializers and response serializer completions in mutable state since the + // request is complete. It's important to do this prior to calling the completion closures in case + // the completions call back into the request triggering a re-processing of the response serializers. + // An example of how this can happen is by calling cancel inside a response completion closure. + mutableState.responseSerializers.removeAll() + mutableState.responseSerializerCompletions.removeAll() + + if mutableState.state.canTransitionTo(.finished) { + mutableState.state = .finished + } + + mutableState.responseSerializerProcessingFinished = true + mutableState.isFinishing = false + } + + completions.forEach { $0() } + + // Cleanup the request + cleanup() + + return + } + + serializationQueue.async { responseSerializer() } + } + + /// Notifies the `Request` that the response serializer is complete. + /// + /// - Parameter completion: The completion handler provided with the response serializer, called when all serializers + /// are complete. + func responseSerializerDidComplete(completion: @escaping () -> Void) { + $mutableState.write { $0.responseSerializerCompletions.append(completion) } + processNextResponseSerializer() + } + + /// Resets all task and response serializer related state for retry. + func reset() { + error = nil + + uploadProgress.totalUnitCount = 0 + uploadProgress.completedUnitCount = 0 + downloadProgress.totalUnitCount = 0 + downloadProgress.completedUnitCount = 0 + + $mutableState.write { state in + state.isFinishing = false + state.responseSerializerCompletions = [] + } + } + + /// Called when updating the upload progress. + /// + /// - Parameters: + /// - totalBytesSent: Total bytes sent so far. + /// - totalBytesExpectedToSend: Total bytes expected to send. + func updateUploadProgress(totalBytesSent: Int64, totalBytesExpectedToSend: Int64) { + uploadProgress.totalUnitCount = totalBytesExpectedToSend + uploadProgress.completedUnitCount = totalBytesSent + + uploadProgressHandler?.queue.async { self.uploadProgressHandler?.handler(self.uploadProgress) } + } + + /// Perform a closure on the current `state` while locked. + /// + /// - Parameter perform: The closure to perform. + func withState(perform: (State) -> Void) { + $mutableState.withState(perform: perform) + } + + // MARK: Task Creation + + /// Called when creating a `URLSessionTask` for this `Request`. Subclasses must override. + /// + /// - Parameters: + /// - request: `URLRequest` to use to create the `URLSessionTask`. + /// - session: `URLSession` which creates the `URLSessionTask`. + /// + /// - Returns: The `URLSessionTask` created. + func task(for request: URLRequest, using session: URLSession) -> URLSessionTask { + fatalError("Subclasses must override.") + } + + // MARK: - Public API + + // These APIs are callable from any queue. + + // MARK: State + + /// Cancels the instance. Once cancelled, a `Request` can no longer be resumed or suspended. + /// + /// - Returns: The instance. + @discardableResult + public func cancel() -> Self { + $mutableState.write { mutableState in + guard mutableState.state.canTransitionTo(.cancelled) else { return } + + mutableState.state = .cancelled + + underlyingQueue.async { self.didCancel() } + + guard let task = mutableState.tasks.last, task.state != .completed else { + underlyingQueue.async { self.finish() } + return + } + + // Resume to ensure metrics are gathered. + task.resume() + task.cancel() + underlyingQueue.async { self.didCancelTask(task) } + } + + return self + } + + /// Suspends the instance. + /// + /// - Returns: The instance. + @discardableResult + public func suspend() -> Self { + $mutableState.write { mutableState in + guard mutableState.state.canTransitionTo(.suspended) else { return } + + mutableState.state = .suspended + + underlyingQueue.async { self.didSuspend() } + + guard let task = mutableState.tasks.last, task.state != .completed else { return } + + task.suspend() + underlyingQueue.async { self.didSuspendTask(task) } + } + + return self + } + + /// Resumes the instance. + /// + /// - Returns: The instance. + @discardableResult + public func resume() -> Self { + $mutableState.write { mutableState in + guard mutableState.state.canTransitionTo(.resumed) else { return } + + mutableState.state = .resumed + + underlyingQueue.async { self.didResume() } + + guard let task = mutableState.tasks.last, task.state != .completed else { return } + + task.resume() + underlyingQueue.async { self.didResumeTask(task) } + } + + return self + } + + // MARK: - Closure API + + /// Associates a credential using the provided values with the instance. + /// + /// - Parameters: + /// - username: The username. + /// - password: The password. + /// - persistence: The `URLCredential.Persistence` for the created `URLCredential`. `.forSession` by default. + /// + /// - Returns: The instance. + @discardableResult + public func authenticate(username: String, password: String, persistence: URLCredential.Persistence = .forSession) -> Self { + let credential = URLCredential(user: username, password: password, persistence: persistence) + + return authenticate(with: credential) + } + + /// Associates the provided credential with the instance. + /// + /// - Parameter credential: The `URLCredential`. + /// + /// - Returns: The instance. + @discardableResult + public func authenticate(with credential: URLCredential) -> Self { + $mutableState.credential = credential + + return self + } + + /// Sets a closure to be called periodically during the lifecycle of the instance as data is read from the server. + /// + /// - Note: Only the last closure provided is used. + /// + /// - Parameters: + /// - queue: The `DispatchQueue` to execute the closure on. `.main` by default. + /// - closure: The closure to be executed periodically as data is read from the server. + /// + /// - Returns: The instance. + @discardableResult + public func downloadProgress(queue: DispatchQueue = .main, closure: @escaping ProgressHandler) -> Self { + $mutableState.downloadProgressHandler = (handler: closure, queue: queue) + + return self + } + + /// Sets a closure to be called periodically during the lifecycle of the instance as data is sent to the server. + /// + /// - Note: Only the last closure provided is used. + /// + /// - Parameters: + /// - queue: The `DispatchQueue` to execute the closure on. `.main` by default. + /// - closure: The closure to be executed periodically as data is sent to the server. + /// + /// - Returns: The instance. + @discardableResult + public func uploadProgress(queue: DispatchQueue = .main, closure: @escaping ProgressHandler) -> Self { + $mutableState.uploadProgressHandler = (handler: closure, queue: queue) + + return self + } + + // MARK: Redirects + + /// Sets the redirect handler for the instance which will be used if a redirect response is encountered. + /// + /// - Note: Attempting to set the redirect handler more than once is a logic error and will crash. + /// + /// - Parameter handler: The `RedirectHandler`. + /// + /// - Returns: The instance. + @discardableResult + public func redirect(using handler: RedirectHandler) -> Self { + $mutableState.write { mutableState in + precondition(mutableState.redirectHandler == nil, "Redirect handler has already been set.") + mutableState.redirectHandler = handler + } + + return self + } + + // MARK: Cached Responses + + /// Sets the cached response handler for the `Request` which will be used when attempting to cache a response. + /// + /// - Note: Attempting to set the cache handler more than once is a logic error and will crash. + /// + /// - Parameter handler: The `CachedResponseHandler`. + /// + /// - Returns: The instance. + @discardableResult + public func cacheResponse(using handler: CachedResponseHandler) -> Self { + $mutableState.write { mutableState in + precondition(mutableState.cachedResponseHandler == nil, "Cached response handler has already been set.") + mutableState.cachedResponseHandler = handler + } + + return self + } + + // MARK: - Lifetime APIs + + /// Sets a handler to be called when the cURL description of the request is available. + /// + /// - Note: When waiting for a `Request`'s `URLRequest` to be created, only the last `handler` will be called. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which `handler` will be called. + /// - handler: Closure to be called when the cURL description is available. + /// + /// - Returns: The instance. + @discardableResult + public func cURLDescription(on queue: DispatchQueue, calling handler: @escaping (String) -> Void) -> Self { + $mutableState.write { mutableState in + if mutableState.requests.last != nil { + queue.async { handler(self.cURLDescription()) } + } else { + mutableState.cURLHandler = (queue, handler) + } + } + + return self + } + + /// Sets a handler to be called when the cURL description of the request is available. + /// + /// - Note: When waiting for a `Request`'s `URLRequest` to be created, only the last `handler` will be called. + /// + /// - Parameter handler: Closure to be called when the cURL description is available. Called on the instance's + /// `underlyingQueue` by default. + /// + /// - Returns: The instance. + @discardableResult + public func cURLDescription(calling handler: @escaping (String) -> Void) -> Self { + cURLDescription(on: underlyingQueue, calling: handler) + + return self + } + + /// Sets a closure to called whenever Alamofire creates a `URLRequest` for this instance. + /// + /// - Note: This closure will be called multiple times if the instance adapts incoming `URLRequest`s or is retried. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which `handler` will be called. `.main` by default. + /// - handler: Closure to be called when a `URLRequest` is available. + /// + /// - Returns: The instance. + @discardableResult + public func onURLRequestCreation(on queue: DispatchQueue = .main, perform handler: @escaping (URLRequest) -> Void) -> Self { + $mutableState.write { state in + if let request = state.requests.last { + queue.async { handler(request) } + } + + state.urlRequestHandler = (queue, handler) + } + + return self + } + + /// Sets a closure to be called whenever the instance creates a `URLSessionTask`. + /// + /// - Note: This API should only be used to provide `URLSessionTask`s to existing API, like `NSFileProvider`. It + /// **SHOULD NOT** be used to interact with tasks directly, as that may be break Alamofire features. + /// Additionally, this closure may be called multiple times if the instance is retried. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which `handler` will be called. `.main` by default. + /// - handler: Closure to be called when the `URLSessionTask` is available. + /// + /// - Returns: The instance. + @discardableResult + public func onURLSessionTaskCreation(on queue: DispatchQueue = .main, perform handler: @escaping (URLSessionTask) -> Void) -> Self { + $mutableState.write { state in + if let task = state.tasks.last { + queue.async { handler(task) } + } + + state.urlSessionTaskHandler = (queue, handler) + } + + return self + } + + // MARK: Cleanup + + /// Adds a `finishHandler` closure to be called when the request completes. + /// + /// - Parameter closure: Closure to be called when the request finishes. + func onFinish(perform finishHandler: @escaping () -> Void) { + guard !isFinished else { finishHandler(); return } + + $mutableState.write { state in + state.finishHandlers.append(finishHandler) + } + } + + /// Final cleanup step executed when the instance finishes response serialization. + func cleanup() { + let handlers = $mutableState.finishHandlers + handlers.forEach { $0() } + $mutableState.write { state in + state.finishHandlers.removeAll() + } + + delegate?.cleanup(after: self) + } +} + +extension Request { + /// Type indicating how a `DataRequest` or `DataStreamRequest` should proceed after receiving an `HTTPURLResponse`. + public enum ResponseDisposition { + /// Allow the request to continue normally. + case allow + /// Cancel the request, similar to calling `cancel()`. + case cancel + + var sessionDisposition: URLSession.ResponseDisposition { + switch self { + case .allow: return .allow + case .cancel: return .cancel + } + } + } +} + +// MARK: - Protocol Conformances + +extension Request: Equatable { + public static func ==(lhs: Request, rhs: Request) -> Bool { + lhs.id == rhs.id + } +} + +extension Request: Hashable { + public func hash(into hasher: inout Hasher) { + hasher.combine(id) + } +} + +extension Request: CustomStringConvertible { + /// A textual representation of this instance, including the `HTTPMethod` and `URL` if the `URLRequest` has been + /// created, as well as the response status code, if a response has been received. + public var description: String { + guard let request = performedRequests.last ?? lastRequest, + let url = request.url, + let method = request.httpMethod else { return "No request created yet." } + + let requestDescription = "\(method) \(url.absoluteString)" + + return response.map { "\(requestDescription) (\($0.statusCode))" } ?? requestDescription + } +} + +extension Request { + /// cURL representation of the instance. + /// + /// - Returns: The cURL equivalent of the instance. + public func cURLDescription() -> String { + guard + let request = lastRequest, + let url = request.url, + let host = url.host, + let method = request.httpMethod else { return "$ curl command could not be created" } + + var components = ["$ curl -v"] + + components.append("-X \(method)") + + if let credentialStorage = delegate?.sessionConfiguration.urlCredentialStorage { + let protectionSpace = URLProtectionSpace(host: host, + port: url.port ?? 0, + protocol: url.scheme, + realm: host, + authenticationMethod: NSURLAuthenticationMethodHTTPBasic) + + if let credentials = credentialStorage.credentials(for: protectionSpace)?.values { + for credential in credentials { + guard let user = credential.user, let password = credential.password else { continue } + components.append("-u \(user):\(password)") + } + } else { + if let credential = credential, let user = credential.user, let password = credential.password { + components.append("-u \(user):\(password)") + } + } + } + + if let configuration = delegate?.sessionConfiguration, configuration.httpShouldSetCookies { + if + let cookieStorage = configuration.httpCookieStorage, + let cookies = cookieStorage.cookies(for: url), !cookies.isEmpty { + let allCookies = cookies.map { "\($0.name)=\($0.value)" }.joined(separator: ";") + + components.append("-b \"\(allCookies)\"") + } + } + + var headers = HTTPHeaders() + + if let sessionHeaders = delegate?.sessionConfiguration.headers { + for header in sessionHeaders where header.name != "Cookie" { + headers[header.name] = header.value + } + } + + for header in request.headers where header.name != "Cookie" { + headers[header.name] = header.value + } + + for header in headers { + let escapedValue = header.value.replacingOccurrences(of: "\"", with: "\\\"") + components.append("-H \"\(header.name): \(escapedValue)\"") + } + + if let httpBodyData = request.httpBody { + let httpBody = String(decoding: httpBodyData, as: UTF8.self) + var escapedBody = httpBody.replacingOccurrences(of: "\\\"", with: "\\\\\"") + escapedBody = escapedBody.replacingOccurrences(of: "\"", with: "\\\"") + + components.append("-d \"\(escapedBody)\"") + } + + components.append("\"\(url.absoluteString)\"") + + return components.joined(separator: " \\\n\t") + } +} + +/// Protocol abstraction for `Request`'s communication back to the `SessionDelegate`. +public protocol RequestDelegate: AnyObject { + /// `URLSessionConfiguration` used to create the underlying `URLSessionTask`s. + var sessionConfiguration: URLSessionConfiguration { get } + + /// Determines whether the `Request` should automatically call `resume()` when adding the first response handler. + var startImmediately: Bool { get } + + /// Notifies the delegate the `Request` has reached a point where it needs cleanup. + /// + /// - Parameter request: The `Request` to cleanup after. + func cleanup(after request: Request) + + /// Asynchronously ask the delegate whether a `Request` will be retried. + /// + /// - Parameters: + /// - request: `Request` which failed. + /// - error: `Error` which produced the failure. + /// - completion: Closure taking the `RetryResult` for evaluation. + func retryResult(for request: Request, dueTo error: AFError, completion: @escaping (RetryResult) -> Void) + + /// Asynchronously retry the `Request`. + /// + /// - Parameters: + /// - request: `Request` which will be retried. + /// - timeDelay: `TimeInterval` after which the retry will be triggered. + func retryRequest(_ request: Request, withDelay timeDelay: TimeInterval?) +} + +// MARK: - Subclasses + +// MARK: - DataRequest + +/// `Request` subclass which handles in-memory `Data` download using `URLSessionDataTask`. +public class DataRequest: Request { + /// `URLRequestConvertible` value used to create `URLRequest`s for this instance. + public let convertible: URLRequestConvertible + /// `Data` read from the server so far. + public var data: Data? { $dataMutableState.data } + + private struct DataMutableState { + var data: Data? + var httpResponseHandler: (queue: DispatchQueue, + handler: (_ response: HTTPURLResponse, + _ completionHandler: @escaping (ResponseDisposition) -> Void) -> Void)? + } + + @Protected + private var dataMutableState = DataMutableState() + + /// Creates a `DataRequest` using the provided parameters. + /// + /// - Parameters: + /// - id: `UUID` used for the `Hashable` and `Equatable` implementations. `UUID()` by default. + /// - convertible: `URLRequestConvertible` value used to create `URLRequest`s for this instance. + /// - underlyingQueue: `DispatchQueue` on which all internal `Request` work is performed. + /// - serializationQueue: `DispatchQueue` on which all serialization work is performed. By default targets + /// `underlyingQueue`, but can be passed another queue from a `Session`. + /// - eventMonitor: `EventMonitor` called for event callbacks from internal `Request` actions. + /// - interceptor: `RequestInterceptor` used throughout the request lifecycle. + /// - delegate: `RequestDelegate` that provides an interface to actions not performed by the `Request`. + init(id: UUID = UUID(), + convertible: URLRequestConvertible, + underlyingQueue: DispatchQueue, + serializationQueue: DispatchQueue, + eventMonitor: EventMonitor?, + interceptor: RequestInterceptor?, + delegate: RequestDelegate) { + self.convertible = convertible + + super.init(id: id, + underlyingQueue: underlyingQueue, + serializationQueue: serializationQueue, + eventMonitor: eventMonitor, + interceptor: interceptor, + delegate: delegate) + } + + override func reset() { + super.reset() + + $dataMutableState.write { mutableState in + mutableState.data = nil + } + } + + /// Called when `Data` is received by this instance. + /// + /// - Note: Also calls `updateDownloadProgress`. + /// + /// - Parameter data: The `Data` received. + func didReceive(data: Data) { + $dataMutableState.write { mutableState in + if mutableState.data == nil { + mutableState.data = data + } else { + mutableState.data?.append(data) + } + } + + updateDownloadProgress() + } + + func didReceiveResponse(_ response: HTTPURLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) { + $dataMutableState.read { dataMutableState in + guard let httpResponseHandler = dataMutableState.httpResponseHandler else { + underlyingQueue.async { completionHandler(.allow) } + return + } + + httpResponseHandler.queue.async { + httpResponseHandler.handler(response) { disposition in + if disposition == .cancel { + self.$mutableState.write { mutableState in + mutableState.state = .cancelled + mutableState.error = mutableState.error ?? AFError.explicitlyCancelled + } + } + + self.underlyingQueue.async { + completionHandler(disposition.sessionDisposition) + } + } + } + } + } + + override func task(for request: URLRequest, using session: URLSession) -> URLSessionTask { + let copiedRequest = request + return session.dataTask(with: copiedRequest) + } + + /// Called to update the `downloadProgress` of the instance. + func updateDownloadProgress() { + let totalBytesReceived = Int64(data?.count ?? 0) + let totalBytesExpected = task?.response?.expectedContentLength ?? NSURLSessionTransferSizeUnknown + + downloadProgress.totalUnitCount = totalBytesExpected + downloadProgress.completedUnitCount = totalBytesReceived + + downloadProgressHandler?.queue.async { self.downloadProgressHandler?.handler(self.downloadProgress) } + } + + /// Validates the request, using the specified closure. + /// + /// - Note: If validation fails, subsequent calls to response handlers will have an associated error. + /// + /// - Parameter validation: `Validation` closure used to validate the response. + /// + /// - Returns: The instance. + @discardableResult + public func validate(_ validation: @escaping Validation) -> Self { + let validator: () -> Void = { [unowned self] in + guard error == nil, let response = response else { return } + + let result = validation(request, response, data) + + if case let .failure(error) = result { self.error = error.asAFError(or: .responseValidationFailed(reason: .customValidationFailed(error: error))) } + + eventMonitor?.request(self, + didValidateRequest: request, + response: response, + data: data, + withResult: result) + } + + $validators.write { $0.append(validator) } + + return self + } + + /// Sets a closure called whenever the `DataRequest` produces an `HTTPURLResponse` and providing a completion + /// handler to return a `ResponseDisposition` value. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which the closure will be called. `.main` by default. + /// - handler: Closure called when the instance produces an `HTTPURLResponse`. The `completionHandler` provided + /// MUST be called, otherwise the request will never complete. + /// + /// - Returns: The instance. + @_disfavoredOverload + @discardableResult + public func onHTTPResponse( + on queue: DispatchQueue = .main, + perform handler: @escaping (_ response: HTTPURLResponse, + _ completionHandler: @escaping (ResponseDisposition) -> Void) -> Void + ) -> Self { + $dataMutableState.write { mutableState in + mutableState.httpResponseHandler = (queue, handler) + } + + return self + } + + /// Sets a closure called whenever the `DataRequest` produces an `HTTPURLResponse`. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which the closure will be called. `.main` by default. + /// - handler: Closure called when the instance produces an `HTTPURLResponse`. + /// + /// - Returns: The instance. + @discardableResult + public func onHTTPResponse(on queue: DispatchQueue = .main, + perform handler: @escaping (HTTPURLResponse) -> Void) -> Self { + onHTTPResponse(on: queue) { response, completionHandler in + handler(response) + completionHandler(.allow) + } + + return self + } +} + +// MARK: - DataStreamRequest + +/// `Request` subclass which streams HTTP response `Data` through a `Handler` closure. +public final class DataStreamRequest: Request { + /// Closure type handling `DataStreamRequest.Stream` values. + public typealias Handler = (Stream) throws -> Void + + /// Type encapsulating an `Event` as it flows through the stream, as well as a `CancellationToken` which can be used + /// to stop the stream at any time. + public struct Stream { + /// Latest `Event` from the stream. + public let event: Event + /// Token used to cancel the stream. + public let token: CancellationToken + + /// Cancel the ongoing stream by canceling the underlying `DataStreamRequest`. + public func cancel() { + token.cancel() + } + } + + /// Type representing an event flowing through the stream. Contains either the `Result` of processing streamed + /// `Data` or the completion of the stream. + public enum Event { + /// Output produced every time the instance receives additional `Data`. The associated value contains the + /// `Result` of processing the incoming `Data`. + case stream(Result) + /// Output produced when the instance has completed, whether due to stream end, cancellation, or an error. + /// Associated `Completion` value contains the final state. + case complete(Completion) + } + + /// Value containing the state of a `DataStreamRequest` when the stream was completed. + public struct Completion { + /// Last `URLRequest` issued by the instance. + public let request: URLRequest? + /// Last `HTTPURLResponse` received by the instance. + public let response: HTTPURLResponse? + /// Last `URLSessionTaskMetrics` produced for the instance. + public let metrics: URLSessionTaskMetrics? + /// `AFError` produced for the instance, if any. + public let error: AFError? + } + + /// Type used to cancel an ongoing stream. + public struct CancellationToken { + weak var request: DataStreamRequest? + + init(_ request: DataStreamRequest) { + self.request = request + } + + /// Cancel the ongoing stream by canceling the underlying `DataStreamRequest`. + public func cancel() { + request?.cancel() + } + } + + /// `URLRequestConvertible` value used to create `URLRequest`s for this instance. + public let convertible: URLRequestConvertible + /// Whether or not the instance will be cancelled if stream parsing encounters an error. + public let automaticallyCancelOnStreamError: Bool + + /// Internal mutable state specific to this type. + struct StreamMutableState { + /// `OutputStream` bound to the `InputStream` produced by `asInputStream`, if it has been called. + var outputStream: OutputStream? + /// Stream closures called as `Data` is received. + var streams: [(_ data: Data) -> Void] = [] + /// Number of currently executing streams. Used to ensure completions are only fired after all streams are + /// enqueued. + var numberOfExecutingStreams = 0 + /// Completion calls enqueued while streams are still executing. + var enqueuedCompletionEvents: [() -> Void] = [] + /// Handler for any `HTTPURLResponse`s received. + var httpResponseHandler: (queue: DispatchQueue, + handler: (_ response: HTTPURLResponse, + _ completionHandler: @escaping (ResponseDisposition) -> Void) -> Void)? + } + + @Protected + var streamMutableState = StreamMutableState() + + /// Creates a `DataStreamRequest` using the provided parameters. + /// + /// - Parameters: + /// - id: `UUID` used for the `Hashable` and `Equatable` implementations. `UUID()` + /// by default. + /// - convertible: `URLRequestConvertible` value used to create `URLRequest`s for this + /// instance. + /// - automaticallyCancelOnStreamError: `Bool` indicating whether the instance will be cancelled when an `Error` + /// is thrown while serializing stream `Data`. + /// - underlyingQueue: `DispatchQueue` on which all internal `Request` work is performed. + /// - serializationQueue: `DispatchQueue` on which all serialization work is performed. By default + /// targets + /// `underlyingQueue`, but can be passed another queue from a `Session`. + /// - eventMonitor: `EventMonitor` called for event callbacks from internal `Request` actions. + /// - interceptor: `RequestInterceptor` used throughout the request lifecycle. + /// - delegate: `RequestDelegate` that provides an interface to actions not performed by + /// the `Request`. + init(id: UUID = UUID(), + convertible: URLRequestConvertible, + automaticallyCancelOnStreamError: Bool, + underlyingQueue: DispatchQueue, + serializationQueue: DispatchQueue, + eventMonitor: EventMonitor?, + interceptor: RequestInterceptor?, + delegate: RequestDelegate) { + self.convertible = convertible + self.automaticallyCancelOnStreamError = automaticallyCancelOnStreamError + + super.init(id: id, + underlyingQueue: underlyingQueue, + serializationQueue: serializationQueue, + eventMonitor: eventMonitor, + interceptor: interceptor, + delegate: delegate) + } + + override func task(for request: URLRequest, using session: URLSession) -> URLSessionTask { + let copiedRequest = request + return session.dataTask(with: copiedRequest) + } + + override func finish(error: AFError? = nil) { + $streamMutableState.write { state in + state.outputStream?.close() + } + + super.finish(error: error) + } + + func didReceive(data: Data) { + $streamMutableState.write { state in + #if !canImport(FoundationNetworking) // If we not using swift-corelibs-foundation. + if let stream = state.outputStream { + underlyingQueue.async { + var bytes = Array(data) + stream.write(&bytes, maxLength: bytes.count) + } + } + #endif + state.numberOfExecutingStreams += state.streams.count + let localState = state + underlyingQueue.async { localState.streams.forEach { $0(data) } } + } + } + + func didReceiveResponse(_ response: HTTPURLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) { + $streamMutableState.read { dataMutableState in + guard let httpResponseHandler = dataMutableState.httpResponseHandler else { + underlyingQueue.async { completionHandler(.allow) } + return + } + + httpResponseHandler.queue.async { + httpResponseHandler.handler(response) { disposition in + if disposition == .cancel { + self.$mutableState.write { mutableState in + mutableState.state = .cancelled + mutableState.error = mutableState.error ?? AFError.explicitlyCancelled + } + } + + self.underlyingQueue.async { + completionHandler(disposition.sessionDisposition) + } + } + } + } + } + + /// Validates the `URLRequest` and `HTTPURLResponse` received for the instance using the provided `Validation` closure. + /// + /// - Parameter validation: `Validation` closure used to validate the request and response. + /// + /// - Returns: The `DataStreamRequest`. + @discardableResult + public func validate(_ validation: @escaping Validation) -> Self { + let validator: () -> Void = { [unowned self] in + guard error == nil, let response = response else { return } + + let result = validation(request, response) + + if case let .failure(error) = result { + self.error = error.asAFError(or: .responseValidationFailed(reason: .customValidationFailed(error: error))) + } + + eventMonitor?.request(self, + didValidateRequest: request, + response: response, + withResult: result) + } + + $validators.write { $0.append(validator) } + + return self + } + + #if !canImport(FoundationNetworking) // If we not using swift-corelibs-foundation. + /// Produces an `InputStream` that receives the `Data` received by the instance. + /// + /// - Note: The `InputStream` produced by this method must have `open()` called before being able to read `Data`. + /// Additionally, this method will automatically call `resume()` on the instance, regardless of whether or + /// not the creating session has `startRequestsImmediately` set to `true`. + /// + /// - Parameter bufferSize: Size, in bytes, of the buffer between the `OutputStream` and `InputStream`. + /// + /// - Returns: The `InputStream` bound to the internal `OutboundStream`. + public func asInputStream(bufferSize: Int = 1024) -> InputStream? { + defer { resume() } + + var inputStream: InputStream? + $streamMutableState.write { state in + Foundation.Stream.getBoundStreams(withBufferSize: bufferSize, + inputStream: &inputStream, + outputStream: &state.outputStream) + state.outputStream?.open() + } + + return inputStream + } + #endif + + /// Sets a closure called whenever the `DataRequest` produces an `HTTPURLResponse` and providing a completion + /// handler to return a `ResponseDisposition` value. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which the closure will be called. `.main` by default. + /// - handler: Closure called when the instance produces an `HTTPURLResponse`. The `completionHandler` provided + /// MUST be called, otherwise the request will never complete. + /// + /// - Returns: The instance. + @_disfavoredOverload + @discardableResult + public func onHTTPResponse( + on queue: DispatchQueue = .main, + perform handler: @escaping (_ response: HTTPURLResponse, + _ completionHandler: @escaping (ResponseDisposition) -> Void) -> Void + ) -> Self { + $streamMutableState.write { mutableState in + mutableState.httpResponseHandler = (queue, handler) + } + + return self + } + + /// Sets a closure called whenever the `DataRequest` produces an `HTTPURLResponse`. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which the closure will be called. `.main` by default. + /// - handler: Closure called when the instance produces an `HTTPURLResponse`. + /// + /// - Returns: The instance. + @discardableResult + public func onHTTPResponse(on queue: DispatchQueue = .main, + perform handler: @escaping (HTTPURLResponse) -> Void) -> Self { + onHTTPResponse(on: queue) { response, completionHandler in + handler(response) + completionHandler(.allow) + } + + return self + } + + func capturingError(from closure: () throws -> Void) { + do { + try closure() + } catch { + self.error = error.asAFError(or: .responseSerializationFailed(reason: .customSerializationFailed(error: error))) + cancel() + } + } + + func appendStreamCompletion(on queue: DispatchQueue, + stream: @escaping Handler) { + appendResponseSerializer { + self.underlyingQueue.async { + self.responseSerializerDidComplete { + self.$streamMutableState.write { state in + guard state.numberOfExecutingStreams == 0 else { + state.enqueuedCompletionEvents.append { + self.enqueueCompletion(on: queue, stream: stream) + } + + return + } + + self.enqueueCompletion(on: queue, stream: stream) + } + } + } + } + } + + func enqueueCompletion(on queue: DispatchQueue, + stream: @escaping Handler) { + queue.async { + do { + let completion = Completion(request: self.request, + response: self.response, + metrics: self.metrics, + error: self.error) + try stream(.init(event: .complete(completion), token: .init(self))) + } catch { + // Ignore error, as errors on Completion can't be handled anyway. + } + } + } +} + +extension DataStreamRequest.Stream { + /// Incoming `Result` values from `Event.stream`. + public var result: Result? { + guard case let .stream(result) = event else { return nil } + + return result + } + + /// `Success` value of the instance, if any. + public var value: Success? { + guard case let .success(value) = result else { return nil } + + return value + } + + /// `Failure` value of the instance, if any. + public var error: Failure? { + guard case let .failure(error) = result else { return nil } + + return error + } + + /// `Completion` value of the instance, if any. + public var completion: DataStreamRequest.Completion? { + guard case let .complete(completion) = event else { return nil } + + return completion + } +} + +// MARK: - DownloadRequest + +/// `Request` subclass which downloads `Data` to a file on disk using `URLSessionDownloadTask`. +public class DownloadRequest: Request { + /// A set of options to be executed prior to moving a downloaded file from the temporary `URL` to the destination + /// `URL`. + public struct Options: OptionSet { + /// Specifies that intermediate directories for the destination URL should be created. + public static let createIntermediateDirectories = Options(rawValue: 1 << 0) + /// Specifies that any previous file at the destination `URL` should be removed. + public static let removePreviousFile = Options(rawValue: 1 << 1) + + public let rawValue: Int + + public init(rawValue: Int) { + self.rawValue = rawValue + } + } + + // MARK: Destination + + /// A closure executed once a `DownloadRequest` has successfully completed in order to determine where to move the + /// temporary file written to during the download process. The closure takes two arguments: the temporary file URL + /// and the `HTTPURLResponse`, and returns two values: the file URL where the temporary file should be moved and + /// the options defining how the file should be moved. + /// + /// - Note: Downloads from a local `file://` `URL`s do not use the `Destination` closure, as those downloads do not + /// return an `HTTPURLResponse`. Instead the file is merely moved within the temporary directory. + public typealias Destination = (_ temporaryURL: URL, + _ response: HTTPURLResponse) -> (destinationURL: URL, options: Options) + + /// Creates a download file destination closure which uses the default file manager to move the temporary file to a + /// file URL in the first available directory with the specified search path directory and search path domain mask. + /// + /// - Parameters: + /// - directory: The search path directory. `.documentDirectory` by default. + /// - domain: The search path domain mask. `.userDomainMask` by default. + /// - options: `DownloadRequest.Options` used when moving the downloaded file to its destination. None by + /// default. + /// - Returns: The `Destination` closure. + public class func suggestedDownloadDestination(for directory: FileManager.SearchPathDirectory = .documentDirectory, + in domain: FileManager.SearchPathDomainMask = .userDomainMask, + options: Options = []) -> Destination { + { temporaryURL, response in + let directoryURLs = FileManager.default.urls(for: directory, in: domain) + let url = directoryURLs.first?.appendingPathComponent(response.suggestedFilename!) ?? temporaryURL + + return (url, options) + } + } + + /// Default `Destination` used by Alamofire to ensure all downloads persist. This `Destination` prepends + /// `Alamofire_` to the automatically generated download name and moves it within the temporary directory. Files + /// with this destination must be additionally moved if they should survive the system reclamation of temporary + /// space. + static let defaultDestination: Destination = { url, _ in + (defaultDestinationURL(url), []) + } + + /// Default `URL` creation closure. Creates a `URL` in the temporary directory with `Alamofire_` prepended to the + /// provided file name. + static let defaultDestinationURL: (URL) -> URL = { url in + let filename = "Alamofire_\(url.lastPathComponent)" + let destination = url.deletingLastPathComponent().appendingPathComponent(filename) + + return destination + } + + // MARK: Downloadable + + /// Type describing the source used to create the underlying `URLSessionDownloadTask`. + public enum Downloadable { + /// Download should be started from the `URLRequest` produced by the associated `URLRequestConvertible` value. + case request(URLRequestConvertible) + /// Download should be started from the associated resume `Data` value. + case resumeData(Data) + } + + // MARK: Mutable State + + /// Type containing all mutable state for `DownloadRequest` instances. + private struct DownloadRequestMutableState { + /// Possible resume `Data` produced when cancelling the instance. + var resumeData: Data? + /// `URL` to which `Data` is being downloaded. + var fileURL: URL? + } + + /// Protected mutable state specific to `DownloadRequest`. + @Protected + private var mutableDownloadState = DownloadRequestMutableState() + + /// If the download is resumable and is eventually cancelled or fails, this value may be used to resume the download + /// using the `download(resumingWith data:)` API. + /// + /// - Note: For more information about `resumeData`, see [Apple's documentation](https://developer.apple.com/documentation/foundation/urlsessiondownloadtask/1411634-cancel). + public var resumeData: Data? { + #if !canImport(FoundationNetworking) // If we not using swift-corelibs-foundation. + return $mutableDownloadState.resumeData ?? error?.downloadResumeData + #else + return $mutableDownloadState.resumeData + #endif + } + + /// If the download is successful, the `URL` where the file was downloaded. + public var fileURL: URL? { $mutableDownloadState.fileURL } + + // MARK: Initial State + + /// `Downloadable` value used for this instance. + public let downloadable: Downloadable + /// The `Destination` to which the downloaded file is moved. + let destination: Destination + + /// Creates a `DownloadRequest` using the provided parameters. + /// + /// - Parameters: + /// - id: `UUID` used for the `Hashable` and `Equatable` implementations. `UUID()` by default. + /// - downloadable: `Downloadable` value used to create `URLSessionDownloadTasks` for the instance. + /// - underlyingQueue: `DispatchQueue` on which all internal `Request` work is performed. + /// - serializationQueue: `DispatchQueue` on which all serialization work is performed. By default targets + /// `underlyingQueue`, but can be passed another queue from a `Session`. + /// - eventMonitor: `EventMonitor` called for event callbacks from internal `Request` actions. + /// - interceptor: `RequestInterceptor` used throughout the request lifecycle. + /// - delegate: `RequestDelegate` that provides an interface to actions not performed by the `Request` + /// - destination: `Destination` closure used to move the downloaded file to its final location. + init(id: UUID = UUID(), + downloadable: Downloadable, + underlyingQueue: DispatchQueue, + serializationQueue: DispatchQueue, + eventMonitor: EventMonitor?, + interceptor: RequestInterceptor?, + delegate: RequestDelegate, + destination: @escaping Destination) { + self.downloadable = downloadable + self.destination = destination + + super.init(id: id, + underlyingQueue: underlyingQueue, + serializationQueue: serializationQueue, + eventMonitor: eventMonitor, + interceptor: interceptor, + delegate: delegate) + } + + override func reset() { + super.reset() + + $mutableDownloadState.write { + $0.resumeData = nil + $0.fileURL = nil + } + } + + /// Called when a download has finished. + /// + /// - Parameters: + /// - task: `URLSessionTask` that finished the download. + /// - result: `Result` of the automatic move to `destination`. + func didFinishDownloading(using task: URLSessionTask, with result: Result) { + eventMonitor?.request(self, didFinishDownloadingUsing: task, with: result) + + switch result { + case let .success(url): $mutableDownloadState.fileURL = url + case let .failure(error): self.error = error + } + } + + /// Updates the `downloadProgress` using the provided values. + /// + /// - Parameters: + /// - bytesWritten: Total bytes written so far. + /// - totalBytesExpectedToWrite: Total bytes expected to write. + func updateDownloadProgress(bytesWritten: Int64, totalBytesExpectedToWrite: Int64) { + downloadProgress.totalUnitCount = totalBytesExpectedToWrite + downloadProgress.completedUnitCount += bytesWritten + + downloadProgressHandler?.queue.async { self.downloadProgressHandler?.handler(self.downloadProgress) } + } + + override func task(for request: URLRequest, using session: URLSession) -> URLSessionTask { + session.downloadTask(with: request) + } + + /// Creates a `URLSessionTask` from the provided resume data. + /// + /// - Parameters: + /// - data: `Data` used to resume the download. + /// - session: `URLSession` used to create the `URLSessionTask`. + /// + /// - Returns: The `URLSessionTask` created. + public func task(forResumeData data: Data, using session: URLSession) -> URLSessionTask { + session.downloadTask(withResumeData: data) + } + + /// Cancels the instance. Once cancelled, a `DownloadRequest` can no longer be resumed or suspended. + /// + /// - Note: This method will NOT produce resume data. If you wish to cancel and produce resume data, use + /// `cancel(producingResumeData:)` or `cancel(byProducingResumeData:)`. + /// + /// - Returns: The instance. + @discardableResult + override public func cancel() -> Self { + cancel(producingResumeData: false) + } + + /// Cancels the instance, optionally producing resume data. Once cancelled, a `DownloadRequest` can no longer be + /// resumed or suspended. + /// + /// - Note: If `producingResumeData` is `true`, the `resumeData` property will be populated with any resume data, if + /// available. + /// + /// - Returns: The instance. + @discardableResult + public func cancel(producingResumeData shouldProduceResumeData: Bool) -> Self { + cancel(optionallyProducingResumeData: shouldProduceResumeData ? { _ in } : nil) + } + + /// Cancels the instance while producing resume data. Once cancelled, a `DownloadRequest` can no longer be resumed + /// or suspended. + /// + /// - Note: The resume data passed to the completion handler will also be available on the instance's `resumeData` + /// property. + /// + /// - Parameter completionHandler: The completion handler that is called when the download has been successfully + /// cancelled. It is not guaranteed to be called on a particular queue, so you may + /// want use an appropriate queue to perform your work. + /// + /// - Returns: The instance. + @discardableResult + public func cancel(byProducingResumeData completionHandler: @escaping (_ data: Data?) -> Void) -> Self { + cancel(optionallyProducingResumeData: completionHandler) + } + + /// Internal implementation of cancellation that optionally takes a resume data handler. If no handler is passed, + /// cancellation is performed without producing resume data. + /// + /// - Parameter completionHandler: Optional resume data handler. + /// + /// - Returns: The instance. + private func cancel(optionallyProducingResumeData completionHandler: ((_ resumeData: Data?) -> Void)?) -> Self { + $mutableState.write { mutableState in + guard mutableState.state.canTransitionTo(.cancelled) else { return } + + mutableState.state = .cancelled + + underlyingQueue.async { self.didCancel() } + + guard let task = mutableState.tasks.last as? URLSessionDownloadTask, task.state != .completed else { + underlyingQueue.async { self.finish() } + return + } + + if let completionHandler = completionHandler { + // Resume to ensure metrics are gathered. + task.resume() + task.cancel { resumeData in + self.$mutableDownloadState.resumeData = resumeData + self.underlyingQueue.async { self.didCancelTask(task) } + completionHandler(resumeData) + } + } else { + // Resume to ensure metrics are gathered. + task.resume() + task.cancel() + self.underlyingQueue.async { self.didCancelTask(task) } + } + } + + return self + } + + /// Validates the request, using the specified closure. + /// + /// - Note: If validation fails, subsequent calls to response handlers will have an associated error. + /// + /// - Parameter validation: `Validation` closure to validate the response. + /// + /// - Returns: The instance. + @discardableResult + public func validate(_ validation: @escaping Validation) -> Self { + let validator: () -> Void = { [unowned self] in + guard error == nil, let response = response else { return } + + let result = validation(request, response, fileURL) + + if case let .failure(error) = result { + self.error = error.asAFError(or: .responseValidationFailed(reason: .customValidationFailed(error: error))) + } + + eventMonitor?.request(self, + didValidateRequest: request, + response: response, + fileURL: fileURL, + withResult: result) + } + + $validators.write { $0.append(validator) } + + return self + } +} + +// MARK: - UploadRequest + +/// `DataRequest` subclass which handles `Data` upload from memory, file, or stream using `URLSessionUploadTask`. +public class UploadRequest: DataRequest { + /// Type describing the origin of the upload, whether `Data`, file, or stream. + public enum Uploadable { + /// Upload from the provided `Data` value. + case data(Data) + /// Upload from the provided file `URL`, as well as a `Bool` determining whether the source file should be + /// automatically removed once uploaded. + case file(URL, shouldRemove: Bool) + /// Upload from the provided `InputStream`. + case stream(InputStream) + } + + // MARK: Initial State + + /// The `UploadableConvertible` value used to produce the `Uploadable` value for this instance. + public let upload: UploadableConvertible + + /// `FileManager` used to perform cleanup tasks, including the removal of multipart form encoded payloads written + /// to disk. + public let fileManager: FileManager + + // MARK: Mutable State + + /// `Uploadable` value used by the instance. + public var uploadable: Uploadable? + + /// Creates an `UploadRequest` using the provided parameters. + /// + /// - Parameters: + /// - id: `UUID` used for the `Hashable` and `Equatable` implementations. `UUID()` by default. + /// - convertible: `UploadConvertible` value used to determine the type of upload to be performed. + /// - underlyingQueue: `DispatchQueue` on which all internal `Request` work is performed. + /// - serializationQueue: `DispatchQueue` on which all serialization work is performed. By default targets + /// `underlyingQueue`, but can be passed another queue from a `Session`. + /// - eventMonitor: `EventMonitor` called for event callbacks from internal `Request` actions. + /// - interceptor: `RequestInterceptor` used throughout the request lifecycle. + /// - fileManager: `FileManager` used to perform cleanup tasks, including the removal of multipart form + /// encoded payloads written to disk. + /// - delegate: `RequestDelegate` that provides an interface to actions not performed by the `Request`. + init(id: UUID = UUID(), + convertible: UploadConvertible, + underlyingQueue: DispatchQueue, + serializationQueue: DispatchQueue, + eventMonitor: EventMonitor?, + interceptor: RequestInterceptor?, + fileManager: FileManager, + delegate: RequestDelegate) { + upload = convertible + self.fileManager = fileManager + + super.init(id: id, + convertible: convertible, + underlyingQueue: underlyingQueue, + serializationQueue: serializationQueue, + eventMonitor: eventMonitor, + interceptor: interceptor, + delegate: delegate) + } + + /// Called when the `Uploadable` value has been created from the `UploadConvertible`. + /// + /// - Parameter uploadable: The `Uploadable` that was created. + func didCreateUploadable(_ uploadable: Uploadable) { + self.uploadable = uploadable + + eventMonitor?.request(self, didCreateUploadable: uploadable) + } + + /// Called when the `Uploadable` value could not be created. + /// + /// - Parameter error: `AFError` produced by the failure. + func didFailToCreateUploadable(with error: AFError) { + self.error = error + + eventMonitor?.request(self, didFailToCreateUploadableWithError: error) + + retryOrFinish(error: error) + } + + override func task(for request: URLRequest, using session: URLSession) -> URLSessionTask { + guard let uploadable = uploadable else { + fatalError("Attempting to create a URLSessionUploadTask when Uploadable value doesn't exist.") + } + + switch uploadable { + case let .data(data): return session.uploadTask(with: request, from: data) + case let .file(url, _): return session.uploadTask(with: request, fromFile: url) + case .stream: return session.uploadTask(withStreamedRequest: request) + } + } + + override func reset() { + // Uploadable must be recreated on every retry. + uploadable = nil + + super.reset() + } + + /// Produces the `InputStream` from `uploadable`, if it can. + /// + /// - Note: Calling this method with a non-`.stream` `Uploadable` is a logic error and will crash. + /// + /// - Returns: The `InputStream`. + func inputStream() -> InputStream { + guard let uploadable = uploadable else { + fatalError("Attempting to access the input stream but the uploadable doesn't exist.") + } + + guard case let .stream(stream) = uploadable else { + fatalError("Attempted to access the stream of an UploadRequest that wasn't created with one.") + } + + eventMonitor?.request(self, didProvideInputStream: stream) + + return stream + } + + override public func cleanup() { + defer { super.cleanup() } + + guard + let uploadable = uploadable, + case let .file(url, shouldRemove) = uploadable, + shouldRemove + else { return } + + try? fileManager.removeItem(at: url) + } +} + +/// A type that can produce an `UploadRequest.Uploadable` value. +public protocol UploadableConvertible { + /// Produces an `UploadRequest.Uploadable` value from the instance. + /// + /// - Returns: The `UploadRequest.Uploadable`. + /// - Throws: Any `Error` produced during creation. + func createUploadable() throws -> UploadRequest.Uploadable +} + +extension UploadRequest.Uploadable: UploadableConvertible { + public func createUploadable() throws -> UploadRequest.Uploadable { + self + } +} + +/// A type that can be converted to an upload, whether from an `UploadRequest.Uploadable` or `URLRequestConvertible`. +public protocol UploadConvertible: UploadableConvertible & URLRequestConvertible {} diff --git a/Pods/Alamofire/Source/RequestCompression.swift b/Pods/Alamofire/Source/RequestCompression.swift new file mode 100644 index 0000000..c543e06 --- /dev/null +++ b/Pods/Alamofire/Source/RequestCompression.swift @@ -0,0 +1,153 @@ +// +// RequestCompression.swift +// +// Copyright (c) 2023 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +#if canImport(zlib) +import Foundation +import zlib + +/// `RequestAdapter` which compresses outgoing `URLRequest` bodies using the `deflate` `Content-Encoding` and adds the +/// appropriate header. +/// +/// - Note: Most requests to most APIs are small and so would only be slowed down by applying this adapter. Measure the +/// size of your request bodies and the performance impact of using this adapter before use. Using this adapter +/// with already compressed data, such as images, will, at best, have no effect. Additionally, body compression +/// is a synchronous operation, so measuring the performance impact may be important to determine whether you +/// want to use a dedicated `requestQueue` in your `Session` instance. Finally, not all servers support request +/// compression, so test with all of your server configurations before deploying. +@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) +public struct DeflateRequestCompressor: RequestInterceptor { + /// Type that determines the action taken when the `URLRequest` already has a `Content-Encoding` header. + public enum DuplicateHeaderBehavior { + /// Throws a `DuplicateHeaderError`. The default. + case error + /// Replaces the existing header value with `deflate`. + case replace + /// Silently skips compression when the header exists. + case skip + } + + /// `Error` produced when the outgoing `URLRequest` already has a `Content-Encoding` header, when the instance has + /// been configured to produce an error. + public struct DuplicateHeaderError: Error {} + + /// Behavior to use when the outgoing `URLRequest` already has a `Content-Encoding` header. + public let duplicateHeaderBehavior: DuplicateHeaderBehavior + /// Closure which determines whether the outgoing body data should be compressed. + public let shouldCompressBodyData: (_ bodyData: Data) -> Bool + + /// Creates an instance with the provided parameters. + /// + /// - Parameters: + /// - duplicateHeaderBehavior: `DuplicateHeaderBehavior` to use. `.error` by default. + /// - shouldCompressBodyData: Closure which determines whether the outgoing body data should be compressed. `true` by default. + public init(duplicateHeaderBehavior: DuplicateHeaderBehavior = .error, + shouldCompressBodyData: @escaping (_ bodyData: Data) -> Bool = { _ in true }) { + self.duplicateHeaderBehavior = duplicateHeaderBehavior + self.shouldCompressBodyData = shouldCompressBodyData + } + + public func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (Result) -> Void) { + // No need to compress unless we have body data. No support for compressing streams. + guard let bodyData = urlRequest.httpBody else { + completion(.success(urlRequest)) + return + } + + guard shouldCompressBodyData(bodyData) else { + completion(.success(urlRequest)) + return + } + + if urlRequest.headers.value(for: "Content-Encoding") != nil { + switch duplicateHeaderBehavior { + case .error: + completion(.failure(DuplicateHeaderError())) + return + case .replace: + // Header will be replaced once the body data is compressed. + break + case .skip: + completion(.success(urlRequest)) + return + } + } + + var compressedRequest = urlRequest + + do { + compressedRequest.httpBody = try deflate(bodyData) + compressedRequest.headers.update(.contentEncoding("deflate")) + completion(.success(compressedRequest)) + } catch { + completion(.failure(error)) + } + } + + func deflate(_ data: Data) throws -> Data { + var output = Data([0x78, 0x5E]) // Header + try output.append((data as NSData).compressed(using: .zlib) as Data) + var checksum = adler32Checksum(of: data).bigEndian + output.append(Data(bytes: &checksum, count: MemoryLayout.size)) + + return output + } + + func adler32Checksum(of data: Data) -> UInt32 { + #if swift(>=5.6) + data.withUnsafeBytes { buffer in + UInt32(adler32(1, buffer.baseAddress, UInt32(buffer.count))) + } + #else + data.withUnsafeBytes { buffer in + let buffer = buffer.bindMemory(to: UInt8.self) + return UInt32(adler32(1, buffer.baseAddress, UInt32(buffer.count))) + } + #endif + } +} + +@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) +extension RequestInterceptor where Self == DeflateRequestCompressor { + /// Create a `DeflateRequestCompressor` with default `duplicateHeaderBehavior` and `shouldCompressBodyData` values. + public static var deflateCompressor: DeflateRequestCompressor { + DeflateRequestCompressor() + } + + /// Creates a `DeflateRequestCompressor` with the provided `DuplicateHeaderBehavior` and `shouldCompressBodyData` + /// closure. + /// + /// - Parameters: + /// - duplicateHeaderBehavior: `DuplicateHeaderBehavior` to use. + /// - shouldCompressBodyData: Closure which determines whether the outgoing body data should be compressed. `true` by default. + /// + /// - Returns: The `DeflateRequestCompressor`. + public static func deflateCompressor( + duplicateHeaderBehavior: DeflateRequestCompressor.DuplicateHeaderBehavior = .error, + shouldCompressBodyData: @escaping (_ bodyData: Data) -> Bool = { _ in true } + ) -> DeflateRequestCompressor { + DeflateRequestCompressor(duplicateHeaderBehavior: duplicateHeaderBehavior, + shouldCompressBodyData: shouldCompressBodyData) + } +} +#endif diff --git a/Pods/Alamofire/Source/RequestInterceptor.swift b/Pods/Alamofire/Source/RequestInterceptor.swift new file mode 100644 index 0000000..9acd986 --- /dev/null +++ b/Pods/Alamofire/Source/RequestInterceptor.swift @@ -0,0 +1,351 @@ +// +// RequestInterceptor.swift +// +// Copyright (c) 2019 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// Stores all state associated with a `URLRequest` being adapted. +public struct RequestAdapterState { + /// The `UUID` of the `Request` associated with the `URLRequest` to adapt. + public let requestID: UUID + + /// The `Session` associated with the `URLRequest` to adapt. + public let session: Session +} + +// MARK: - + +/// A type that can inspect and optionally adapt a `URLRequest` in some manner if necessary. +public protocol RequestAdapter { + /// Inspects and adapts the specified `URLRequest` in some manner and calls the completion handler with the Result. + /// + /// - Parameters: + /// - urlRequest: The `URLRequest` to adapt. + /// - session: The `Session` that will execute the `URLRequest`. + /// - completion: The completion handler that must be called when adaptation is complete. + func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (Result) -> Void) + + /// Inspects and adapts the specified `URLRequest` in some manner and calls the completion handler with the Result. + /// + /// - Parameters: + /// - urlRequest: The `URLRequest` to adapt. + /// - state: The `RequestAdapterState` associated with the `URLRequest`. + /// - completion: The completion handler that must be called when adaptation is complete. + func adapt(_ urlRequest: URLRequest, using state: RequestAdapterState, completion: @escaping (Result) -> Void) +} + +extension RequestAdapter { + public func adapt(_ urlRequest: URLRequest, using state: RequestAdapterState, completion: @escaping (Result) -> Void) { + adapt(urlRequest, for: state.session, completion: completion) + } +} + +// MARK: - + +/// Outcome of determination whether retry is necessary. +public enum RetryResult { + /// Retry should be attempted immediately. + case retry + /// Retry should be attempted after the associated `TimeInterval`. + case retryWithDelay(TimeInterval) + /// Do not retry. + case doNotRetry + /// Do not retry due to the associated `Error`. + case doNotRetryWithError(Error) +} + +extension RetryResult { + var retryRequired: Bool { + switch self { + case .retry, .retryWithDelay: return true + default: return false + } + } + + var delay: TimeInterval? { + switch self { + case let .retryWithDelay(delay): return delay + default: return nil + } + } + + var error: Error? { + guard case let .doNotRetryWithError(error) = self else { return nil } + return error + } +} + +/// A type that determines whether a request should be retried after being executed by the specified session manager +/// and encountering an error. +public protocol RequestRetrier { + /// Determines whether the `Request` should be retried by calling the `completion` closure. + /// + /// This operation is fully asynchronous. Any amount of time can be taken to determine whether the request needs + /// to be retried. The one requirement is that the completion closure is called to ensure the request is properly + /// cleaned up after. + /// + /// - Parameters: + /// - request: `Request` that failed due to the provided `Error`. + /// - session: `Session` that produced the `Request`. + /// - error: `Error` encountered while executing the `Request`. + /// - completion: Completion closure to be executed when a retry decision has been determined. + func retry(_ request: Request, for session: Session, dueTo error: Error, completion: @escaping (RetryResult) -> Void) +} + +// MARK: - + +/// Type that provides both `RequestAdapter` and `RequestRetrier` functionality. +public protocol RequestInterceptor: RequestAdapter, RequestRetrier {} + +extension RequestInterceptor { + public func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (Result) -> Void) { + completion(.success(urlRequest)) + } + + public func retry(_ request: Request, + for session: Session, + dueTo error: Error, + completion: @escaping (RetryResult) -> Void) { + completion(.doNotRetry) + } +} + +/// `RequestAdapter` closure definition. +public typealias AdaptHandler = (URLRequest, Session, _ completion: @escaping (Result) -> Void) -> Void +/// `RequestRetrier` closure definition. +public typealias RetryHandler = (Request, Session, Error, _ completion: @escaping (RetryResult) -> Void) -> Void + +// MARK: - + +/// Closure-based `RequestAdapter`. +open class Adapter: RequestInterceptor { + private let adaptHandler: AdaptHandler + + /// Creates an instance using the provided closure. + /// + /// - Parameter adaptHandler: `AdaptHandler` closure to be executed when handling request adaptation. + public init(_ adaptHandler: @escaping AdaptHandler) { + self.adaptHandler = adaptHandler + } + + open func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (Result) -> Void) { + adaptHandler(urlRequest, session, completion) + } + + open func adapt(_ urlRequest: URLRequest, using state: RequestAdapterState, completion: @escaping (Result) -> Void) { + adaptHandler(urlRequest, state.session, completion) + } +} + +extension RequestAdapter where Self == Adapter { + /// Creates an `Adapter` using the provided `AdaptHandler` closure. + /// + /// - Parameter closure: `AdaptHandler` to use to adapt the request. + /// - Returns: The `Adapter`. + public static func adapter(using closure: @escaping AdaptHandler) -> Adapter { + Adapter(closure) + } +} + +// MARK: - + +/// Closure-based `RequestRetrier`. +open class Retrier: RequestInterceptor { + private let retryHandler: RetryHandler + + /// Creates an instance using the provided closure. + /// + /// - Parameter retryHandler: `RetryHandler` closure to be executed when handling request retry. + public init(_ retryHandler: @escaping RetryHandler) { + self.retryHandler = retryHandler + } + + open func retry(_ request: Request, + for session: Session, + dueTo error: Error, + completion: @escaping (RetryResult) -> Void) { + retryHandler(request, session, error, completion) + } +} + +extension RequestRetrier where Self == Retrier { + /// Creates a `Retrier` using the provided `RetryHandler` closure. + /// + /// - Parameter closure: `RetryHandler` to use to retry the request. + /// - Returns: The `Retrier`. + public static func retrier(using closure: @escaping RetryHandler) -> Retrier { + Retrier(closure) + } +} + +// MARK: - + +/// `RequestInterceptor` which can use multiple `RequestAdapter` and `RequestRetrier` values. +open class Interceptor: RequestInterceptor { + /// All `RequestAdapter`s associated with the instance. These adapters will be run until one fails. + public let adapters: [RequestAdapter] + /// All `RequestRetrier`s associated with the instance. These retriers will be run one at a time until one triggers retry. + public let retriers: [RequestRetrier] + + /// Creates an instance from `AdaptHandler` and `RetryHandler` closures. + /// + /// - Parameters: + /// - adaptHandler: `AdaptHandler` closure to be used. + /// - retryHandler: `RetryHandler` closure to be used. + public init(adaptHandler: @escaping AdaptHandler, retryHandler: @escaping RetryHandler) { + adapters = [Adapter(adaptHandler)] + retriers = [Retrier(retryHandler)] + } + + /// Creates an instance from `RequestAdapter` and `RequestRetrier` values. + /// + /// - Parameters: + /// - adapter: `RequestAdapter` value to be used. + /// - retrier: `RequestRetrier` value to be used. + public init(adapter: RequestAdapter, retrier: RequestRetrier) { + adapters = [adapter] + retriers = [retrier] + } + + /// Creates an instance from the arrays of `RequestAdapter` and `RequestRetrier` values. + /// + /// - Parameters: + /// - adapters: `RequestAdapter` values to be used. + /// - retriers: `RequestRetrier` values to be used. + /// - interceptors: `RequestInterceptor`s to be used. + public init(adapters: [RequestAdapter] = [], retriers: [RequestRetrier] = [], interceptors: [RequestInterceptor] = []) { + self.adapters = adapters + interceptors + self.retriers = retriers + interceptors + } + + open func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (Result) -> Void) { + adapt(urlRequest, for: session, using: adapters, completion: completion) + } + + private func adapt(_ urlRequest: URLRequest, + for session: Session, + using adapters: [RequestAdapter], + completion: @escaping (Result) -> Void) { + var pendingAdapters = adapters + + guard !pendingAdapters.isEmpty else { completion(.success(urlRequest)); return } + + let adapter = pendingAdapters.removeFirst() + + adapter.adapt(urlRequest, for: session) { result in + switch result { + case let .success(urlRequest): + self.adapt(urlRequest, for: session, using: pendingAdapters, completion: completion) + case .failure: + completion(result) + } + } + } + + open func adapt(_ urlRequest: URLRequest, using state: RequestAdapterState, completion: @escaping (Result) -> Void) { + adapt(urlRequest, using: state, adapters: adapters, completion: completion) + } + + private func adapt(_ urlRequest: URLRequest, + using state: RequestAdapterState, + adapters: [RequestAdapter], + completion: @escaping (Result) -> Void) { + var pendingAdapters = adapters + + guard !pendingAdapters.isEmpty else { completion(.success(urlRequest)); return } + + let adapter = pendingAdapters.removeFirst() + + adapter.adapt(urlRequest, using: state) { result in + switch result { + case let .success(urlRequest): + self.adapt(urlRequest, using: state, adapters: pendingAdapters, completion: completion) + case .failure: + completion(result) + } + } + } + + open func retry(_ request: Request, + for session: Session, + dueTo error: Error, + completion: @escaping (RetryResult) -> Void) { + retry(request, for: session, dueTo: error, using: retriers, completion: completion) + } + + private func retry(_ request: Request, + for session: Session, + dueTo error: Error, + using retriers: [RequestRetrier], + completion: @escaping (RetryResult) -> Void) { + var pendingRetriers = retriers + + guard !pendingRetriers.isEmpty else { completion(.doNotRetry); return } + + let retrier = pendingRetriers.removeFirst() + + retrier.retry(request, for: session, dueTo: error) { result in + switch result { + case .retry, .retryWithDelay, .doNotRetryWithError: + completion(result) + case .doNotRetry: + // Only continue to the next retrier if retry was not triggered and no error was encountered + self.retry(request, for: session, dueTo: error, using: pendingRetriers, completion: completion) + } + } + } +} + +extension RequestInterceptor where Self == Interceptor { + /// Creates an `Interceptor` using the provided `AdaptHandler` and `RetryHandler` closures. + /// + /// - Parameters: + /// - adapter: `AdapterHandler`to use to adapt the request. + /// - retrier: `RetryHandler` to use to retry the request. + /// - Returns: The `Interceptor`. + public static func interceptor(adapter: @escaping AdaptHandler, retrier: @escaping RetryHandler) -> Interceptor { + Interceptor(adaptHandler: adapter, retryHandler: retrier) + } + + /// Creates an `Interceptor` using the provided `RequestAdapter` and `RequestRetrier` instances. + /// - Parameters: + /// - adapter: `RequestAdapter` to use to adapt the request + /// - retrier: `RequestRetrier` to use to retry the request. + /// - Returns: The `Interceptor`. + public static func interceptor(adapter: RequestAdapter, retrier: RequestRetrier) -> Interceptor { + Interceptor(adapter: adapter, retrier: retrier) + } + + /// Creates an `Interceptor` using the provided `RequestAdapter`s, `RequestRetrier`s, and `RequestInterceptor`s. + /// - Parameters: + /// - adapters: `RequestAdapter`s to use to adapt the request. These adapters will be run until one fails. + /// - retriers: `RequestRetrier`s to use to retry the request. These retriers will be run one at a time until + /// a retry is triggered. + /// - interceptors: `RequestInterceptor`s to use to intercept the request. + /// - Returns: The `Interceptor`. + public static func interceptor(adapters: [RequestAdapter] = [], + retriers: [RequestRetrier] = [], + interceptors: [RequestInterceptor] = []) -> Interceptor { + Interceptor(adapters: adapters, retriers: retriers, interceptors: interceptors) + } +} diff --git a/Pods/Alamofire/Source/RequestTaskMap.swift b/Pods/Alamofire/Source/RequestTaskMap.swift new file mode 100644 index 0000000..9955875 --- /dev/null +++ b/Pods/Alamofire/Source/RequestTaskMap.swift @@ -0,0 +1,149 @@ +// +// RequestTaskMap.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// A type that maintains a two way, one to one map of `URLSessionTask`s to `Request`s. +struct RequestTaskMap { + private typealias Events = (completed: Bool, metricsGathered: Bool) + + private var tasksToRequests: [URLSessionTask: Request] + private var requestsToTasks: [Request: URLSessionTask] + private var taskEvents: [URLSessionTask: Events] + + var requests: [Request] { + Array(tasksToRequests.values) + } + + init(tasksToRequests: [URLSessionTask: Request] = [:], + requestsToTasks: [Request: URLSessionTask] = [:], + taskEvents: [URLSessionTask: (completed: Bool, metricsGathered: Bool)] = [:]) { + self.tasksToRequests = tasksToRequests + self.requestsToTasks = requestsToTasks + self.taskEvents = taskEvents + } + + subscript(_ request: Request) -> URLSessionTask? { + get { requestsToTasks[request] } + set { + guard let newValue = newValue else { + guard let task = requestsToTasks[request] else { + fatalError("RequestTaskMap consistency error: no task corresponding to request found.") + } + + requestsToTasks.removeValue(forKey: request) + tasksToRequests.removeValue(forKey: task) + taskEvents.removeValue(forKey: task) + + return + } + + requestsToTasks[request] = newValue + tasksToRequests[newValue] = request + taskEvents[newValue] = (completed: false, metricsGathered: false) + } + } + + subscript(_ task: URLSessionTask) -> Request? { + get { tasksToRequests[task] } + set { + guard let newValue = newValue else { + guard let request = tasksToRequests[task] else { + fatalError("RequestTaskMap consistency error: no request corresponding to task found.") + } + + tasksToRequests.removeValue(forKey: task) + requestsToTasks.removeValue(forKey: request) + taskEvents.removeValue(forKey: task) + + return + } + + tasksToRequests[task] = newValue + requestsToTasks[newValue] = task + taskEvents[task] = (completed: false, metricsGathered: false) + } + } + + var count: Int { + precondition(tasksToRequests.count == requestsToTasks.count, + "RequestTaskMap.count invalid, requests.count: \(tasksToRequests.count) != tasks.count: \(requestsToTasks.count)") + + return tasksToRequests.count + } + + var eventCount: Int { + precondition(taskEvents.count == count, "RequestTaskMap.eventCount invalid, count: \(count) != taskEvents.count: \(taskEvents.count)") + + return taskEvents.count + } + + var isEmpty: Bool { + precondition(tasksToRequests.isEmpty == requestsToTasks.isEmpty, + "RequestTaskMap.isEmpty invalid, requests.isEmpty: \(tasksToRequests.isEmpty) != tasks.isEmpty: \(requestsToTasks.isEmpty)") + + return tasksToRequests.isEmpty + } + + var isEventsEmpty: Bool { + precondition(taskEvents.isEmpty == isEmpty, "RequestTaskMap.isEventsEmpty invalid, isEmpty: \(isEmpty) != taskEvents.isEmpty: \(taskEvents.isEmpty)") + + return taskEvents.isEmpty + } + + mutating func disassociateIfNecessaryAfterGatheringMetricsForTask(_ task: URLSessionTask) -> Bool { + guard let events = taskEvents[task] else { + fatalError("RequestTaskMap consistency error: no events corresponding to task found.") + } + + switch (events.completed, events.metricsGathered) { + case (_, true): fatalError("RequestTaskMap consistency error: duplicate metricsGatheredForTask call.") + case (false, false): taskEvents[task] = (completed: false, metricsGathered: true); return false + case (true, false): self[task] = nil; return true + } + } + + mutating func disassociateIfNecessaryAfterCompletingTask(_ task: URLSessionTask) -> Bool { + guard let events = taskEvents[task] else { + fatalError("RequestTaskMap consistency error: no events corresponding to task found.") + } + + switch (events.completed, events.metricsGathered) { + case (true, _): fatalError("RequestTaskMap consistency error: duplicate completionReceivedForTask call.") + #if os(Linux) || os(Android) // Linux doesn't gather metrics, so unconditionally remove the reference and return true. + default: self[task] = nil; return true + #else + case (false, false): + if #available(macOS 10.12, iOS 10, watchOS 7, tvOS 10, *) { + taskEvents[task] = (completed: true, metricsGathered: false); return false + } else { + // watchOS < 7 doesn't gather metrics, so unconditionally remove the reference and return true. + self[task] = nil; return true + } + case (false, true): + self[task] = nil; return true + #endif + } + } +} diff --git a/Pods/Alamofire/Source/Response.swift b/Pods/Alamofire/Source/Response.swift new file mode 100644 index 0000000..d9ae9d8 --- /dev/null +++ b/Pods/Alamofire/Source/Response.swift @@ -0,0 +1,453 @@ +// +// Response.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// Default type of `DataResponse` returned by Alamofire, with an `AFError` `Failure` type. +public typealias AFDataResponse = DataResponse +/// Default type of `DownloadResponse` returned by Alamofire, with an `AFError` `Failure` type. +public typealias AFDownloadResponse = DownloadResponse + +/// Type used to store all values associated with a serialized response of a `DataRequest` or `UploadRequest`. +public struct DataResponse { + /// The URL request sent to the server. + public let request: URLRequest? + + /// The server's response to the URL request. + public let response: HTTPURLResponse? + + /// The data returned by the server. + public let data: Data? + + /// The final metrics of the response. + /// + /// - Note: Due to `FB7624529`, collection of `URLSessionTaskMetrics` on watchOS is currently disabled.` + /// + public let metrics: URLSessionTaskMetrics? + + /// The time taken to serialize the response. + public let serializationDuration: TimeInterval + + /// The result of response serialization. + public let result: Result + + /// Returns the associated value of the result if it is a success, `nil` otherwise. + public var value: Success? { result.success } + + /// Returns the associated error value if the result if it is a failure, `nil` otherwise. + public var error: Failure? { result.failure } + + /// Creates a `DataResponse` instance with the specified parameters derived from the response serialization. + /// + /// - Parameters: + /// - request: The `URLRequest` sent to the server. + /// - response: The `HTTPURLResponse` from the server. + /// - data: The `Data` returned by the server. + /// - metrics: The `URLSessionTaskMetrics` of the `DataRequest` or `UploadRequest`. + /// - serializationDuration: The duration taken by serialization. + /// - result: The `Result` of response serialization. + public init(request: URLRequest?, + response: HTTPURLResponse?, + data: Data?, + metrics: URLSessionTaskMetrics?, + serializationDuration: TimeInterval, + result: Result) { + self.request = request + self.response = response + self.data = data + self.metrics = metrics + self.serializationDuration = serializationDuration + self.result = result + } +} + +// MARK: - + +extension DataResponse: CustomStringConvertible, CustomDebugStringConvertible { + /// The textual representation used when written to an output stream, which includes whether the result was a + /// success or failure. + public var description: String { + "\(result)" + } + + /// The debug textual representation used when written to an output stream, which includes (if available) a summary + /// of the `URLRequest`, the request's headers and body (if decodable as a `String` below 100KB); the + /// `HTTPURLResponse`'s status code, headers, and body; the duration of the network and serialization actions; and + /// the `Result` of serialization. + public var debugDescription: String { + guard let urlRequest = request else { return "[Request]: None\n[Result]: \(result)" } + + let requestDescription = DebugDescription.description(of: urlRequest) + + let responseDescription = response.map { response in + let responseBodyDescription = DebugDescription.description(for: data, headers: response.headers) + + return """ + \(DebugDescription.description(of: response)) + \(responseBodyDescription.indentingNewlines()) + """ + } ?? "[Response]: None" + + let networkDuration = metrics.map { "\($0.taskInterval.duration)s" } ?? "None" + + return """ + \(requestDescription) + \(responseDescription) + [Network Duration]: \(networkDuration) + [Serialization Duration]: \(serializationDuration)s + [Result]: \(result) + """ + } +} + +// MARK: - + +extension DataResponse { + /// Evaluates the specified closure when the result of this `DataResponse` is a success, passing the unwrapped + /// result value as a parameter. + /// + /// Use the `map` method with a closure that does not throw. For example: + /// + /// let possibleData: DataResponse = ... + /// let possibleInt = possibleData.map { $0.count } + /// + /// - parameter transform: A closure that takes the success value of the instance's result. + /// + /// - returns: A `DataResponse` whose result wraps the value returned by the given closure. If this instance's + /// result is a failure, returns a response wrapping the same failure. + public func map(_ transform: (Success) -> NewSuccess) -> DataResponse { + DataResponse(request: request, + response: response, + data: data, + metrics: metrics, + serializationDuration: serializationDuration, + result: result.map(transform)) + } + + /// Evaluates the given closure when the result of this `DataResponse` is a success, passing the unwrapped result + /// value as a parameter. + /// + /// Use the `tryMap` method with a closure that may throw an error. For example: + /// + /// let possibleData: DataResponse = ... + /// let possibleObject = possibleData.tryMap { + /// try JSONSerialization.jsonObject(with: $0) + /// } + /// + /// - parameter transform: A closure that takes the success value of the instance's result. + /// + /// - returns: A success or failure `DataResponse` depending on the result of the given closure. If this instance's + /// result is a failure, returns the same failure. + public func tryMap(_ transform: (Success) throws -> NewSuccess) -> DataResponse { + DataResponse(request: request, + response: response, + data: data, + metrics: metrics, + serializationDuration: serializationDuration, + result: result.tryMap(transform)) + } + + /// Evaluates the specified closure when the `DataResponse` is a failure, passing the unwrapped error as a parameter. + /// + /// Use the `mapError` function with a closure that does not throw. For example: + /// + /// let possibleData: DataResponse = ... + /// let withMyError = possibleData.mapError { MyError.error($0) } + /// + /// - Parameter transform: A closure that takes the error of the instance. + /// + /// - Returns: A `DataResponse` instance containing the result of the transform. + public func mapError(_ transform: (Failure) -> NewFailure) -> DataResponse { + DataResponse(request: request, + response: response, + data: data, + metrics: metrics, + serializationDuration: serializationDuration, + result: result.mapError(transform)) + } + + /// Evaluates the specified closure when the `DataResponse` is a failure, passing the unwrapped error as a parameter. + /// + /// Use the `tryMapError` function with a closure that may throw an error. For example: + /// + /// let possibleData: DataResponse = ... + /// let possibleObject = possibleData.tryMapError { + /// try someFailableFunction(taking: $0) + /// } + /// + /// - Parameter transform: A throwing closure that takes the error of the instance. + /// + /// - Returns: A `DataResponse` instance containing the result of the transform. + public func tryMapError(_ transform: (Failure) throws -> NewFailure) -> DataResponse { + DataResponse(request: request, + response: response, + data: data, + metrics: metrics, + serializationDuration: serializationDuration, + result: result.tryMapError(transform)) + } +} + +// MARK: - + +/// Used to store all data associated with a serialized response of a download request. +public struct DownloadResponse { + /// The URL request sent to the server. + public let request: URLRequest? + + /// The server's response to the URL request. + public let response: HTTPURLResponse? + + /// The final destination URL of the data returned from the server after it is moved. + public let fileURL: URL? + + /// The resume data generated if the request was cancelled. + public let resumeData: Data? + + /// The final metrics of the response. + /// + /// - Note: Due to `FB7624529`, collection of `URLSessionTaskMetrics` on watchOS is currently disabled.` + /// + public let metrics: URLSessionTaskMetrics? + + /// The time taken to serialize the response. + public let serializationDuration: TimeInterval + + /// The result of response serialization. + public let result: Result + + /// Returns the associated value of the result if it is a success, `nil` otherwise. + public var value: Success? { result.success } + + /// Returns the associated error value if the result if it is a failure, `nil` otherwise. + public var error: Failure? { result.failure } + + /// Creates a `DownloadResponse` instance with the specified parameters derived from response serialization. + /// + /// - Parameters: + /// - request: The `URLRequest` sent to the server. + /// - response: The `HTTPURLResponse` from the server. + /// - fileURL: The final destination URL of the data returned from the server after it is moved. + /// - resumeData: The resume `Data` generated if the request was cancelled. + /// - metrics: The `URLSessionTaskMetrics` of the `DownloadRequest`. + /// - serializationDuration: The duration taken by serialization. + /// - result: The `Result` of response serialization. + public init(request: URLRequest?, + response: HTTPURLResponse?, + fileURL: URL?, + resumeData: Data?, + metrics: URLSessionTaskMetrics?, + serializationDuration: TimeInterval, + result: Result) { + self.request = request + self.response = response + self.fileURL = fileURL + self.resumeData = resumeData + self.metrics = metrics + self.serializationDuration = serializationDuration + self.result = result + } +} + +// MARK: - + +extension DownloadResponse: CustomStringConvertible, CustomDebugStringConvertible { + /// The textual representation used when written to an output stream, which includes whether the result was a + /// success or failure. + public var description: String { + "\(result)" + } + + /// The debug textual representation used when written to an output stream, which includes the URL request, the URL + /// response, the temporary and destination URLs, the resume data, the durations of the network and serialization + /// actions, and the response serialization result. + public var debugDescription: String { + guard let urlRequest = request else { return "[Request]: None\n[Result]: \(result)" } + + let requestDescription = DebugDescription.description(of: urlRequest) + let responseDescription = response.map(DebugDescription.description(of:)) ?? "[Response]: None" + let networkDuration = metrics.map { "\($0.taskInterval.duration)s" } ?? "None" + let resumeDataDescription = resumeData.map { "\($0)" } ?? "None" + + return """ + \(requestDescription) + \(responseDescription) + [File URL]: \(fileURL?.path ?? "None") + [Resume Data]: \(resumeDataDescription) + [Network Duration]: \(networkDuration) + [Serialization Duration]: \(serializationDuration)s + [Result]: \(result) + """ + } +} + +// MARK: - + +extension DownloadResponse { + /// Evaluates the given closure when the result of this `DownloadResponse` is a success, passing the unwrapped + /// result value as a parameter. + /// + /// Use the `map` method with a closure that does not throw. For example: + /// + /// let possibleData: DownloadResponse = ... + /// let possibleInt = possibleData.map { $0.count } + /// + /// - parameter transform: A closure that takes the success value of the instance's result. + /// + /// - returns: A `DownloadResponse` whose result wraps the value returned by the given closure. If this instance's + /// result is a failure, returns a response wrapping the same failure. + public func map(_ transform: (Success) -> NewSuccess) -> DownloadResponse { + DownloadResponse(request: request, + response: response, + fileURL: fileURL, + resumeData: resumeData, + metrics: metrics, + serializationDuration: serializationDuration, + result: result.map(transform)) + } + + /// Evaluates the given closure when the result of this `DownloadResponse` is a success, passing the unwrapped + /// result value as a parameter. + /// + /// Use the `tryMap` method with a closure that may throw an error. For example: + /// + /// let possibleData: DownloadResponse = ... + /// let possibleObject = possibleData.tryMap { + /// try JSONSerialization.jsonObject(with: $0) + /// } + /// + /// - parameter transform: A closure that takes the success value of the instance's result. + /// + /// - returns: A success or failure `DownloadResponse` depending on the result of the given closure. If this + /// instance's result is a failure, returns the same failure. + public func tryMap(_ transform: (Success) throws -> NewSuccess) -> DownloadResponse { + DownloadResponse(request: request, + response: response, + fileURL: fileURL, + resumeData: resumeData, + metrics: metrics, + serializationDuration: serializationDuration, + result: result.tryMap(transform)) + } + + /// Evaluates the specified closure when the `DownloadResponse` is a failure, passing the unwrapped error as a parameter. + /// + /// Use the `mapError` function with a closure that does not throw. For example: + /// + /// let possibleData: DownloadResponse = ... + /// let withMyError = possibleData.mapError { MyError.error($0) } + /// + /// - Parameter transform: A closure that takes the error of the instance. + /// + /// - Returns: A `DownloadResponse` instance containing the result of the transform. + public func mapError(_ transform: (Failure) -> NewFailure) -> DownloadResponse { + DownloadResponse(request: request, + response: response, + fileURL: fileURL, + resumeData: resumeData, + metrics: metrics, + serializationDuration: serializationDuration, + result: result.mapError(transform)) + } + + /// Evaluates the specified closure when the `DownloadResponse` is a failure, passing the unwrapped error as a parameter. + /// + /// Use the `tryMapError` function with a closure that may throw an error. For example: + /// + /// let possibleData: DownloadResponse = ... + /// let possibleObject = possibleData.tryMapError { + /// try someFailableFunction(taking: $0) + /// } + /// + /// - Parameter transform: A throwing closure that takes the error of the instance. + /// + /// - Returns: A `DownloadResponse` instance containing the result of the transform. + public func tryMapError(_ transform: (Failure) throws -> NewFailure) -> DownloadResponse { + DownloadResponse(request: request, + response: response, + fileURL: fileURL, + resumeData: resumeData, + metrics: metrics, + serializationDuration: serializationDuration, + result: result.tryMapError(transform)) + } +} + +private enum DebugDescription { + static func description(of request: URLRequest) -> String { + let requestSummary = "\(request.httpMethod!) \(request)" + let requestHeadersDescription = DebugDescription.description(for: request.headers) + let requestBodyDescription = DebugDescription.description(for: request.httpBody, headers: request.headers) + + return """ + [Request]: \(requestSummary) + \(requestHeadersDescription.indentingNewlines()) + \(requestBodyDescription.indentingNewlines()) + """ + } + + static func description(of response: HTTPURLResponse) -> String { + """ + [Response]: + [Status Code]: \(response.statusCode) + \(DebugDescription.description(for: response.headers).indentingNewlines()) + """ + } + + static func description(for headers: HTTPHeaders) -> String { + guard !headers.isEmpty else { return "[Headers]: None" } + + let headerDescription = "\(headers.sorted())".indentingNewlines() + return """ + [Headers]: + \(headerDescription) + """ + } + + static func description(for data: Data?, + headers: HTTPHeaders, + allowingPrintableTypes printableTypes: [String] = ["json", "xml", "text"], + maximumLength: Int = 100_000) -> String { + guard let data = data, !data.isEmpty else { return "[Body]: None" } + + guard + data.count <= maximumLength, + printableTypes.compactMap({ headers["Content-Type"]?.contains($0) }).contains(true) + else { return "[Body]: \(data.count) bytes" } + + return """ + [Body]: + \(String(decoding: data, as: UTF8.self) + .trimmingCharacters(in: .whitespacesAndNewlines) + .indentingNewlines()) + """ + } +} + +extension String { + fileprivate func indentingNewlines(by spaceCount: Int = 4) -> String { + let spaces = String(repeating: " ", count: spaceCount) + return replacingOccurrences(of: "\n", with: "\n\(spaces)") + } +} diff --git a/Pods/Alamofire/Source/ResponseSerialization.swift b/Pods/Alamofire/Source/ResponseSerialization.swift new file mode 100644 index 0000000..0e718bd --- /dev/null +++ b/Pods/Alamofire/Source/ResponseSerialization.swift @@ -0,0 +1,1270 @@ +// +// ResponseSerialization.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +// MARK: Protocols + +/// The type to which all data response serializers must conform in order to serialize a response. +public protocol DataResponseSerializerProtocol { + /// The type of serialized object to be created. + associatedtype SerializedObject + + /// Serialize the response `Data` into the provided type.. + /// + /// - Parameters: + /// - request: `URLRequest` which was used to perform the request, if any. + /// - response: `HTTPURLResponse` received from the server, if any. + /// - data: `Data` returned from the server, if any. + /// - error: `Error` produced by Alamofire or the underlying `URLSession` during the request. + /// + /// - Returns: The `SerializedObject`. + /// - Throws: Any `Error` produced during serialization. + func serialize(request: URLRequest?, response: HTTPURLResponse?, data: Data?, error: Error?) throws -> SerializedObject +} + +/// The type to which all download response serializers must conform in order to serialize a response. +public protocol DownloadResponseSerializerProtocol { + /// The type of serialized object to be created. + associatedtype SerializedObject + + /// Serialize the downloaded response `Data` from disk into the provided type.. + /// + /// - Parameters: + /// - request: `URLRequest` which was used to perform the request, if any. + /// - response: `HTTPURLResponse` received from the server, if any. + /// - fileURL: File `URL` to which the response data was downloaded. + /// - error: `Error` produced by Alamofire or the underlying `URLSession` during the request. + /// + /// - Returns: The `SerializedObject`. + /// - Throws: Any `Error` produced during serialization. + func serializeDownload(request: URLRequest?, response: HTTPURLResponse?, fileURL: URL?, error: Error?) throws -> SerializedObject +} + +/// A serializer that can handle both data and download responses. +public protocol ResponseSerializer: DataResponseSerializerProtocol & DownloadResponseSerializerProtocol { + /// `DataPreprocessor` used to prepare incoming `Data` for serialization. + var dataPreprocessor: DataPreprocessor { get } + /// `HTTPMethod`s for which empty response bodies are considered appropriate. + var emptyRequestMethods: Set { get } + /// HTTP response codes for which empty response bodies are considered appropriate. + var emptyResponseCodes: Set { get } +} + +/// Type used to preprocess `Data` before it handled by a serializer. +public protocol DataPreprocessor { + /// Process `Data` before it's handled by a serializer. + /// - Parameter data: The raw `Data` to process. + func preprocess(_ data: Data) throws -> Data +} + +/// `DataPreprocessor` that returns passed `Data` without any transform. +public struct PassthroughPreprocessor: DataPreprocessor { + public init() {} + + public func preprocess(_ data: Data) throws -> Data { data } +} + +/// `DataPreprocessor` that trims Google's typical `)]}',\n` XSSI JSON header. +public struct GoogleXSSIPreprocessor: DataPreprocessor { + public init() {} + + public func preprocess(_ data: Data) throws -> Data { + (data.prefix(6) == Data(")]}',\n".utf8)) ? data.dropFirst(6) : data + } +} + +extension DataPreprocessor where Self == PassthroughPreprocessor { + /// Provides a `PassthroughPreprocessor` instance. + public static var passthrough: PassthroughPreprocessor { PassthroughPreprocessor() } +} + +extension DataPreprocessor where Self == GoogleXSSIPreprocessor { + /// Provides a `GoogleXSSIPreprocessor` instance. + public static var googleXSSI: GoogleXSSIPreprocessor { GoogleXSSIPreprocessor() } +} + +extension ResponseSerializer { + /// Default `DataPreprocessor`. `PassthroughPreprocessor` by default. + public static var defaultDataPreprocessor: DataPreprocessor { PassthroughPreprocessor() } + /// Default `HTTPMethod`s for which empty response bodies are considered appropriate. `[.head]` by default. + public static var defaultEmptyRequestMethods: Set { [.head] } + /// HTTP response codes for which empty response bodies are considered appropriate. `[204, 205]` by default. + public static var defaultEmptyResponseCodes: Set { [204, 205] } + + public var dataPreprocessor: DataPreprocessor { Self.defaultDataPreprocessor } + public var emptyRequestMethods: Set { Self.defaultEmptyRequestMethods } + public var emptyResponseCodes: Set { Self.defaultEmptyResponseCodes } + + /// Determines whether the `request` allows empty response bodies, if `request` exists. + /// + /// - Parameter request: `URLRequest` to evaluate. + /// + /// - Returns: `Bool` representing the outcome of the evaluation, or `nil` if `request` was `nil`. + public func requestAllowsEmptyResponseData(_ request: URLRequest?) -> Bool? { + request.flatMap(\.httpMethod) + .flatMap(HTTPMethod.init) + .map { emptyRequestMethods.contains($0) } + } + + /// Determines whether the `response` allows empty response bodies, if `response` exists`. + /// + /// - Parameter response: `HTTPURLResponse` to evaluate. + /// + /// - Returns: `Bool` representing the outcome of the evaluation, or `nil` if `response` was `nil`. + public func responseAllowsEmptyResponseData(_ response: HTTPURLResponse?) -> Bool? { + response.map(\.statusCode) + .map { emptyResponseCodes.contains($0) } + } + + /// Determines whether `request` and `response` allow empty response bodies. + /// + /// - Parameters: + /// - request: `URLRequest` to evaluate. + /// - response: `HTTPURLResponse` to evaluate. + /// + /// - Returns: `true` if `request` or `response` allow empty bodies, `false` otherwise. + public func emptyResponseAllowed(forRequest request: URLRequest?, response: HTTPURLResponse?) -> Bool { + (requestAllowsEmptyResponseData(request) == true) || (responseAllowsEmptyResponseData(response) == true) + } +} + +/// By default, any serializer declared to conform to both types will get file serialization for free, as it just feeds +/// the data read from disk into the data response serializer. +extension DownloadResponseSerializerProtocol where Self: DataResponseSerializerProtocol { + public func serializeDownload(request: URLRequest?, response: HTTPURLResponse?, fileURL: URL?, error: Error?) throws -> Self.SerializedObject { + guard error == nil else { throw error! } + + guard let fileURL = fileURL else { + throw AFError.responseSerializationFailed(reason: .inputFileNil) + } + + let data: Data + do { + data = try Data(contentsOf: fileURL) + } catch { + throw AFError.responseSerializationFailed(reason: .inputFileReadFailed(at: fileURL)) + } + + do { + return try serialize(request: request, response: response, data: data, error: error) + } catch { + throw error + } + } +} + +// MARK: - Default + +extension DataRequest { + /// Adds a handler to be called once the request has finished. + /// + /// - Parameters: + /// - queue: The queue on which the completion handler is dispatched. `.main` by default. + /// - completionHandler: The code to be executed once the request has finished. + /// + /// - Returns: The request. + @discardableResult + public func response(queue: DispatchQueue = .main, completionHandler: @escaping (AFDataResponse) -> Void) -> Self { + appendResponseSerializer { + // Start work that should be on the serialization queue. + let result = AFResult(value: self.data, error: self.error) + // End work that should be on the serialization queue. + + self.underlyingQueue.async { + let response = DataResponse(request: self.request, + response: self.response, + data: self.data, + metrics: self.metrics, + serializationDuration: 0, + result: result) + + self.eventMonitor?.request(self, didParseResponse: response) + + self.responseSerializerDidComplete { queue.async { completionHandler(response) } } + } + } + + return self + } + + private func _response(queue: DispatchQueue = .main, + responseSerializer: Serializer, + completionHandler: @escaping (AFDataResponse) -> Void) + -> Self { + appendResponseSerializer { + // Start work that should be on the serialization queue. + let start = ProcessInfo.processInfo.systemUptime + let result: AFResult = Result { + try responseSerializer.serialize(request: self.request, + response: self.response, + data: self.data, + error: self.error) + }.mapError { error in + error.asAFError(or: .responseSerializationFailed(reason: .customSerializationFailed(error: error))) + } + + let end = ProcessInfo.processInfo.systemUptime + // End work that should be on the serialization queue. + + self.underlyingQueue.async { + let response = DataResponse(request: self.request, + response: self.response, + data: self.data, + metrics: self.metrics, + serializationDuration: end - start, + result: result) + + self.eventMonitor?.request(self, didParseResponse: response) + + guard !self.isCancelled, let serializerError = result.failure, let delegate = self.delegate else { + self.responseSerializerDidComplete { queue.async { completionHandler(response) } } + return + } + + delegate.retryResult(for: self, dueTo: serializerError) { retryResult in + var didComplete: (() -> Void)? + + defer { + if let didComplete = didComplete { + self.responseSerializerDidComplete { queue.async { didComplete() } } + } + } + + switch retryResult { + case .doNotRetry: + didComplete = { completionHandler(response) } + + case let .doNotRetryWithError(retryError): + let result: AFResult = .failure(retryError.asAFError(orFailWith: "Received retryError was not already AFError")) + + let response = DataResponse(request: self.request, + response: self.response, + data: self.data, + metrics: self.metrics, + serializationDuration: end - start, + result: result) + + didComplete = { completionHandler(response) } + + case .retry, .retryWithDelay: + delegate.retryRequest(self, withDelay: retryResult.delay) + } + } + } + } + + return self + } + + /// Adds a handler to be called once the request has finished. + /// + /// - Parameters: + /// - queue: The queue on which the completion handler is dispatched. `.main` by default + /// - responseSerializer: The response serializer responsible for serializing the request, response, and data. + /// - completionHandler: The code to be executed once the request has finished. + /// + /// - Returns: The request. + @discardableResult + public func response(queue: DispatchQueue = .main, + responseSerializer: Serializer, + completionHandler: @escaping (AFDataResponse) -> Void) + -> Self { + _response(queue: queue, responseSerializer: responseSerializer, completionHandler: completionHandler) + } + + /// Adds a handler to be called once the request has finished. + /// + /// - Parameters: + /// - queue: The queue on which the completion handler is dispatched. `.main` by default + /// - responseSerializer: The response serializer responsible for serializing the request, response, and data. + /// - completionHandler: The code to be executed once the request has finished. + /// + /// - Returns: The request. + @discardableResult + public func response(queue: DispatchQueue = .main, + responseSerializer: Serializer, + completionHandler: @escaping (AFDataResponse) -> Void) + -> Self { + _response(queue: queue, responseSerializer: responseSerializer, completionHandler: completionHandler) + } +} + +extension DownloadRequest { + /// Adds a handler to be called once the request has finished. + /// + /// - Parameters: + /// - queue: The queue on which the completion handler is dispatched. `.main` by default. + /// - completionHandler: The code to be executed once the request has finished. + /// + /// - Returns: The request. + @discardableResult + public func response(queue: DispatchQueue = .main, + completionHandler: @escaping (AFDownloadResponse) -> Void) + -> Self { + appendResponseSerializer { + // Start work that should be on the serialization queue. + let result = AFResult(value: self.fileURL, error: self.error) + // End work that should be on the serialization queue. + + self.underlyingQueue.async { + let response = DownloadResponse(request: self.request, + response: self.response, + fileURL: self.fileURL, + resumeData: self.resumeData, + metrics: self.metrics, + serializationDuration: 0, + result: result) + + self.eventMonitor?.request(self, didParseResponse: response) + + self.responseSerializerDidComplete { queue.async { completionHandler(response) } } + } + } + + return self + } + + private func _response(queue: DispatchQueue = .main, + responseSerializer: Serializer, + completionHandler: @escaping (AFDownloadResponse) -> Void) + -> Self { + appendResponseSerializer { + // Start work that should be on the serialization queue. + let start = ProcessInfo.processInfo.systemUptime + let result: AFResult = Result { + try responseSerializer.serializeDownload(request: self.request, + response: self.response, + fileURL: self.fileURL, + error: self.error) + }.mapError { error in + error.asAFError(or: .responseSerializationFailed(reason: .customSerializationFailed(error: error))) + } + let end = ProcessInfo.processInfo.systemUptime + // End work that should be on the serialization queue. + + self.underlyingQueue.async { + let response = DownloadResponse(request: self.request, + response: self.response, + fileURL: self.fileURL, + resumeData: self.resumeData, + metrics: self.metrics, + serializationDuration: end - start, + result: result) + + self.eventMonitor?.request(self, didParseResponse: response) + + guard let serializerError = result.failure, let delegate = self.delegate else { + self.responseSerializerDidComplete { queue.async { completionHandler(response) } } + return + } + + delegate.retryResult(for: self, dueTo: serializerError) { retryResult in + var didComplete: (() -> Void)? + + defer { + if let didComplete = didComplete { + self.responseSerializerDidComplete { queue.async { didComplete() } } + } + } + + switch retryResult { + case .doNotRetry: + didComplete = { completionHandler(response) } + + case let .doNotRetryWithError(retryError): + let result: AFResult = .failure(retryError.asAFError(orFailWith: "Received retryError was not already AFError")) + + let response = DownloadResponse(request: self.request, + response: self.response, + fileURL: self.fileURL, + resumeData: self.resumeData, + metrics: self.metrics, + serializationDuration: end - start, + result: result) + + didComplete = { completionHandler(response) } + + case .retry, .retryWithDelay: + delegate.retryRequest(self, withDelay: retryResult.delay) + } + } + } + } + + return self + } + + /// Adds a handler to be called once the request has finished. + /// + /// - Parameters: + /// - queue: The queue on which the completion handler is dispatched. `.main` by default. + /// - responseSerializer: The response serializer responsible for serializing the request, response, and data + /// contained in the destination `URL`. + /// - completionHandler: The code to be executed once the request has finished. + /// + /// - Returns: The request. + @discardableResult + public func response(queue: DispatchQueue = .main, + responseSerializer: Serializer, + completionHandler: @escaping (AFDownloadResponse) -> Void) + -> Self { + _response(queue: queue, responseSerializer: responseSerializer, completionHandler: completionHandler) + } + + /// Adds a handler to be called once the request has finished. + /// + /// - Parameters: + /// - queue: The queue on which the completion handler is dispatched. `.main` by default. + /// - responseSerializer: The response serializer responsible for serializing the request, response, and data + /// contained in the destination `URL`. + /// - completionHandler: The code to be executed once the request has finished. + /// + /// - Returns: The request. + @discardableResult + public func response(queue: DispatchQueue = .main, + responseSerializer: Serializer, + completionHandler: @escaping (AFDownloadResponse) -> Void) + -> Self { + _response(queue: queue, responseSerializer: responseSerializer, completionHandler: completionHandler) + } +} + +// MARK: - URL + +/// A `DownloadResponseSerializerProtocol` that performs only `Error` checking and ensures that a downloaded `fileURL` +/// is present. +public struct URLResponseSerializer: DownloadResponseSerializerProtocol { + /// Creates an instance. + public init() {} + + public func serializeDownload(request: URLRequest?, + response: HTTPURLResponse?, + fileURL: URL?, + error: Error?) throws -> URL { + guard error == nil else { throw error! } + + guard let url = fileURL else { + throw AFError.responseSerializationFailed(reason: .inputFileNil) + } + + return url + } +} + +extension DownloadResponseSerializerProtocol where Self == URLResponseSerializer { + /// Provides a `URLResponseSerializer` instance. + public static var url: URLResponseSerializer { URLResponseSerializer() } +} + +extension DownloadRequest { + /// Adds a handler using a `URLResponseSerializer` to be called once the request is finished. + /// + /// - Parameters: + /// - queue: The queue on which the completion handler is called. `.main` by default. + /// - completionHandler: A closure to be executed once the request has finished. + /// + /// - Returns: The request. + @discardableResult + public func responseURL(queue: DispatchQueue = .main, + completionHandler: @escaping (AFDownloadResponse) -> Void) -> Self { + response(queue: queue, responseSerializer: URLResponseSerializer(), completionHandler: completionHandler) + } +} + +// MARK: - Data + +/// A `ResponseSerializer` that performs minimal response checking and returns any response `Data` as-is. By default, a +/// request returning `nil` or no data is considered an error. However, if the request has an `HTTPMethod` or the +/// response has an HTTP status code valid for empty responses, then an empty `Data` value is returned. +public final class DataResponseSerializer: ResponseSerializer { + public let dataPreprocessor: DataPreprocessor + public let emptyResponseCodes: Set + public let emptyRequestMethods: Set + + /// Creates a `DataResponseSerializer` using the provided parameters. + /// + /// - Parameters: + /// - dataPreprocessor: `DataPreprocessor` used to prepare the received `Data` for serialization. + /// - emptyResponseCodes: The HTTP response codes for which empty responses are allowed. `[204, 205]` by default. + /// - emptyRequestMethods: The HTTP request methods for which empty responses are allowed. `[.head]` by default. + public init(dataPreprocessor: DataPreprocessor = DataResponseSerializer.defaultDataPreprocessor, + emptyResponseCodes: Set = DataResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DataResponseSerializer.defaultEmptyRequestMethods) { + self.dataPreprocessor = dataPreprocessor + self.emptyResponseCodes = emptyResponseCodes + self.emptyRequestMethods = emptyRequestMethods + } + + public func serialize(request: URLRequest?, response: HTTPURLResponse?, data: Data?, error: Error?) throws -> Data { + guard error == nil else { throw error! } + + guard var data = data, !data.isEmpty else { + guard emptyResponseAllowed(forRequest: request, response: response) else { + throw AFError.responseSerializationFailed(reason: .inputDataNilOrZeroLength) + } + + return Data() + } + + data = try dataPreprocessor.preprocess(data) + + return data + } +} + +extension ResponseSerializer where Self == DataResponseSerializer { + /// Provides a default `DataResponseSerializer` instance. + public static var data: DataResponseSerializer { DataResponseSerializer() } + + /// Creates a `DataResponseSerializer` using the provided parameters. + /// + /// - Parameters: + /// - dataPreprocessor: `DataPreprocessor` used to prepare the received `Data` for serialization. + /// - emptyResponseCodes: The HTTP response codes for which empty responses are allowed. `[204, 205]` by default. + /// - emptyRequestMethods: The HTTP request methods for which empty responses are allowed. `[.head]` by default. + /// + /// - Returns: The `DataResponseSerializer`. + public static func data(dataPreprocessor: DataPreprocessor = DataResponseSerializer.defaultDataPreprocessor, + emptyResponseCodes: Set = DataResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DataResponseSerializer.defaultEmptyRequestMethods) -> DataResponseSerializer { + DataResponseSerializer(dataPreprocessor: dataPreprocessor, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods) + } +} + +extension DataRequest { + /// Adds a handler using a `DataResponseSerializer` to be called once the request has finished. + /// + /// - Parameters: + /// - queue: The queue on which the completion handler is called. `.main` by default. + /// - dataPreprocessor: `DataPreprocessor` which processes the received `Data` before calling the + /// `completionHandler`. `PassthroughPreprocessor()` by default. + /// - emptyResponseCodes: HTTP status codes for which empty responses are always valid. `[204, 205]` by default. + /// - emptyRequestMethods: `HTTPMethod`s for which empty responses are always valid. `[.head]` by default. + /// - completionHandler: A closure to be executed once the request has finished. + /// + /// - Returns: The request. + @discardableResult + public func responseData(queue: DispatchQueue = .main, + dataPreprocessor: DataPreprocessor = DataResponseSerializer.defaultDataPreprocessor, + emptyResponseCodes: Set = DataResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DataResponseSerializer.defaultEmptyRequestMethods, + completionHandler: @escaping (AFDataResponse) -> Void) -> Self { + response(queue: queue, + responseSerializer: DataResponseSerializer(dataPreprocessor: dataPreprocessor, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + completionHandler: completionHandler) + } +} + +extension DownloadRequest { + /// Adds a handler using a `DataResponseSerializer` to be called once the request has finished. + /// + /// - Parameters: + /// - queue: The queue on which the completion handler is called. `.main` by default. + /// - dataPreprocessor: `DataPreprocessor` which processes the received `Data` before calling the + /// `completionHandler`. `PassthroughPreprocessor()` by default. + /// - emptyResponseCodes: HTTP status codes for which empty responses are always valid. `[204, 205]` by default. + /// - emptyRequestMethods: `HTTPMethod`s for which empty responses are always valid. `[.head]` by default. + /// - completionHandler: A closure to be executed once the request has finished. + /// + /// - Returns: The request. + @discardableResult + public func responseData(queue: DispatchQueue = .main, + dataPreprocessor: DataPreprocessor = DataResponseSerializer.defaultDataPreprocessor, + emptyResponseCodes: Set = DataResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DataResponseSerializer.defaultEmptyRequestMethods, + completionHandler: @escaping (AFDownloadResponse) -> Void) -> Self { + response(queue: queue, + responseSerializer: DataResponseSerializer(dataPreprocessor: dataPreprocessor, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + completionHandler: completionHandler) + } +} + +// MARK: - String + +/// A `ResponseSerializer` that decodes the response data as a `String`. By default, a request returning `nil` or no +/// data is considered an error. However, if the request has an `HTTPMethod` or the response has an HTTP status code +/// valid for empty responses, then an empty `String` is returned. +public final class StringResponseSerializer: ResponseSerializer { + public let dataPreprocessor: DataPreprocessor + /// Optional string encoding used to validate the response. + public let encoding: String.Encoding? + public let emptyResponseCodes: Set + public let emptyRequestMethods: Set + + /// Creates an instance with the provided values. + /// + /// - Parameters: + /// - dataPreprocessor: `DataPreprocessor` used to prepare the received `Data` for serialization. + /// - encoding: A string encoding. Defaults to `nil`, in which case the encoding will be determined + /// from the server response, falling back to the default HTTP character set, `ISO-8859-1`. + /// - emptyResponseCodes: The HTTP response codes for which empty responses are allowed. `[204, 205]` by default. + /// - emptyRequestMethods: The HTTP request methods for which empty responses are allowed. `[.head]` by default. + public init(dataPreprocessor: DataPreprocessor = StringResponseSerializer.defaultDataPreprocessor, + encoding: String.Encoding? = nil, + emptyResponseCodes: Set = StringResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = StringResponseSerializer.defaultEmptyRequestMethods) { + self.dataPreprocessor = dataPreprocessor + self.encoding = encoding + self.emptyResponseCodes = emptyResponseCodes + self.emptyRequestMethods = emptyRequestMethods + } + + public func serialize(request: URLRequest?, response: HTTPURLResponse?, data: Data?, error: Error?) throws -> String { + guard error == nil else { throw error! } + + guard var data = data, !data.isEmpty else { + guard emptyResponseAllowed(forRequest: request, response: response) else { + throw AFError.responseSerializationFailed(reason: .inputDataNilOrZeroLength) + } + + return "" + } + + data = try dataPreprocessor.preprocess(data) + + var convertedEncoding = encoding + + if let encodingName = response?.textEncodingName, convertedEncoding == nil { + convertedEncoding = String.Encoding(ianaCharsetName: encodingName) + } + + let actualEncoding = convertedEncoding ?? .isoLatin1 + + guard let string = String(data: data, encoding: actualEncoding) else { + throw AFError.responseSerializationFailed(reason: .stringSerializationFailed(encoding: actualEncoding)) + } + + return string + } +} + +extension ResponseSerializer where Self == StringResponseSerializer { + /// Provides a default `StringResponseSerializer` instance. + public static var string: StringResponseSerializer { StringResponseSerializer() } + + /// Creates a `StringResponseSerializer` with the provided values. + /// + /// - Parameters: + /// - dataPreprocessor: `DataPreprocessor` used to prepare the received `Data` for serialization. + /// - encoding: A string encoding. Defaults to `nil`, in which case the encoding will be determined + /// from the server response, falling back to the default HTTP character set, `ISO-8859-1`. + /// - emptyResponseCodes: The HTTP response codes for which empty responses are allowed. `[204, 205]` by default. + /// - emptyRequestMethods: The HTTP request methods for which empty responses are allowed. `[.head]` by default. + /// + /// - Returns: The `StringResponseSerializer`. + public static func string(dataPreprocessor: DataPreprocessor = StringResponseSerializer.defaultDataPreprocessor, + encoding: String.Encoding? = nil, + emptyResponseCodes: Set = StringResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = StringResponseSerializer.defaultEmptyRequestMethods) -> StringResponseSerializer { + StringResponseSerializer(dataPreprocessor: dataPreprocessor, + encoding: encoding, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods) + } +} + +extension DataRequest { + /// Adds a handler using a `StringResponseSerializer` to be called once the request has finished. + /// + /// - Parameters: + /// - queue: The queue on which the completion handler is dispatched. `.main` by default. + /// - dataPreprocessor: `DataPreprocessor` which processes the received `Data` before calling the + /// `completionHandler`. `PassthroughPreprocessor()` by default. + /// - encoding: The string encoding. Defaults to `nil`, in which case the encoding will be determined + /// from the server response, falling back to the default HTTP character set, `ISO-8859-1`. + /// - emptyResponseCodes: HTTP status codes for which empty responses are always valid. `[204, 205]` by default. + /// - emptyRequestMethods: `HTTPMethod`s for which empty responses are always valid. `[.head]` by default. + /// - completionHandler: A closure to be executed once the request has finished. + /// + /// - Returns: The request. + @discardableResult + public func responseString(queue: DispatchQueue = .main, + dataPreprocessor: DataPreprocessor = StringResponseSerializer.defaultDataPreprocessor, + encoding: String.Encoding? = nil, + emptyResponseCodes: Set = StringResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = StringResponseSerializer.defaultEmptyRequestMethods, + completionHandler: @escaping (AFDataResponse) -> Void) -> Self { + response(queue: queue, + responseSerializer: StringResponseSerializer(dataPreprocessor: dataPreprocessor, + encoding: encoding, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + completionHandler: completionHandler) + } +} + +extension DownloadRequest { + /// Adds a handler using a `StringResponseSerializer` to be called once the request has finished. + /// + /// - Parameters: + /// - queue: The queue on which the completion handler is dispatched. `.main` by default. + /// - dataPreprocessor: `DataPreprocessor` which processes the received `Data` before calling the + /// `completionHandler`. `PassthroughPreprocessor()` by default. + /// - encoding: The string encoding. Defaults to `nil`, in which case the encoding will be determined + /// from the server response, falling back to the default HTTP character set, `ISO-8859-1`. + /// - emptyResponseCodes: HTTP status codes for which empty responses are always valid. `[204, 205]` by default. + /// - emptyRequestMethods: `HTTPMethod`s for which empty responses are always valid. `[.head]` by default. + /// - completionHandler: A closure to be executed once the request has finished. + /// + /// - Returns: The request. + @discardableResult + public func responseString(queue: DispatchQueue = .main, + dataPreprocessor: DataPreprocessor = StringResponseSerializer.defaultDataPreprocessor, + encoding: String.Encoding? = nil, + emptyResponseCodes: Set = StringResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = StringResponseSerializer.defaultEmptyRequestMethods, + completionHandler: @escaping (AFDownloadResponse) -> Void) -> Self { + response(queue: queue, + responseSerializer: StringResponseSerializer(dataPreprocessor: dataPreprocessor, + encoding: encoding, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + completionHandler: completionHandler) + } +} + +// MARK: - JSON + +/// A `ResponseSerializer` that decodes the response data using `JSONSerialization`. By default, a request returning +/// `nil` or no data is considered an error. However, if the request has an `HTTPMethod` or the response has an +/// HTTP status code valid for empty responses, then an `NSNull` value is returned. +@available(*, deprecated, message: "JSONResponseSerializer deprecated and will be removed in Alamofire 6. Use DecodableResponseSerializer instead.") +public final class JSONResponseSerializer: ResponseSerializer { + public let dataPreprocessor: DataPreprocessor + public let emptyResponseCodes: Set + public let emptyRequestMethods: Set + /// `JSONSerialization.ReadingOptions` used when serializing a response. + public let options: JSONSerialization.ReadingOptions + + /// Creates an instance with the provided values. + /// + /// - Parameters: + /// - dataPreprocessor: `DataPreprocessor` used to prepare the received `Data` for serialization. + /// - emptyResponseCodes: The HTTP response codes for which empty responses are allowed. `[204, 205]` by default. + /// - emptyRequestMethods: The HTTP request methods for which empty responses are allowed. `[.head]` by default. + /// - options: The options to use. `.allowFragments` by default. + public init(dataPreprocessor: DataPreprocessor = JSONResponseSerializer.defaultDataPreprocessor, + emptyResponseCodes: Set = JSONResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = JSONResponseSerializer.defaultEmptyRequestMethods, + options: JSONSerialization.ReadingOptions = .allowFragments) { + self.dataPreprocessor = dataPreprocessor + self.emptyResponseCodes = emptyResponseCodes + self.emptyRequestMethods = emptyRequestMethods + self.options = options + } + + public func serialize(request: URLRequest?, response: HTTPURLResponse?, data: Data?, error: Error?) throws -> Any { + guard error == nil else { throw error! } + + guard var data = data, !data.isEmpty else { + guard emptyResponseAllowed(forRequest: request, response: response) else { + throw AFError.responseSerializationFailed(reason: .inputDataNilOrZeroLength) + } + + return NSNull() + } + + data = try dataPreprocessor.preprocess(data) + + do { + return try JSONSerialization.jsonObject(with: data, options: options) + } catch { + throw AFError.responseSerializationFailed(reason: .jsonSerializationFailed(error: error)) + } + } +} + +extension DataRequest { + /// Adds a handler using a `JSONResponseSerializer` to be called once the request has finished. + /// + /// - Parameters: + /// - queue: The queue on which the completion handler is dispatched. `.main` by default. + /// - dataPreprocessor: `DataPreprocessor` which processes the received `Data` before calling the + /// `completionHandler`. `PassthroughPreprocessor()` by default. + /// - emptyResponseCodes: HTTP status codes for which empty responses are always valid. `[204, 205]` by default. + /// - emptyRequestMethods: `HTTPMethod`s for which empty responses are always valid. `[.head]` by default. + /// - options: `JSONSerialization.ReadingOptions` used when parsing the response. `.allowFragments` + /// by default. + /// - completionHandler: A closure to be executed once the request has finished. + /// + /// - Returns: The request. + @available(*, deprecated, message: "responseJSON deprecated and will be removed in Alamofire 6. Use responseDecodable instead.") + @discardableResult + public func responseJSON(queue: DispatchQueue = .main, + dataPreprocessor: DataPreprocessor = JSONResponseSerializer.defaultDataPreprocessor, + emptyResponseCodes: Set = JSONResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = JSONResponseSerializer.defaultEmptyRequestMethods, + options: JSONSerialization.ReadingOptions = .allowFragments, + completionHandler: @escaping (AFDataResponse) -> Void) -> Self { + response(queue: queue, + responseSerializer: JSONResponseSerializer(dataPreprocessor: dataPreprocessor, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods, + options: options), + completionHandler: completionHandler) + } +} + +extension DownloadRequest { + /// Adds a handler using a `JSONResponseSerializer` to be called once the request has finished. + /// + /// - Parameters: + /// - queue: The queue on which the completion handler is dispatched. `.main` by default. + /// - dataPreprocessor: `DataPreprocessor` which processes the received `Data` before calling the + /// `completionHandler`. `PassthroughPreprocessor()` by default. + /// - emptyResponseCodes: HTTP status codes for which empty responses are always valid. `[204, 205]` by default. + /// - emptyRequestMethods: `HTTPMethod`s for which empty responses are always valid. `[.head]` by default. + /// - options: `JSONSerialization.ReadingOptions` used when parsing the response. `.allowFragments` + /// by default. + /// - completionHandler: A closure to be executed once the request has finished. + /// + /// - Returns: The request. + @available(*, deprecated, message: "responseJSON deprecated and will be removed in Alamofire 6. Use responseDecodable instead.") + @discardableResult + public func responseJSON(queue: DispatchQueue = .main, + dataPreprocessor: DataPreprocessor = JSONResponseSerializer.defaultDataPreprocessor, + emptyResponseCodes: Set = JSONResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = JSONResponseSerializer.defaultEmptyRequestMethods, + options: JSONSerialization.ReadingOptions = .allowFragments, + completionHandler: @escaping (AFDownloadResponse) -> Void) -> Self { + response(queue: queue, + responseSerializer: JSONResponseSerializer(dataPreprocessor: dataPreprocessor, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods, + options: options), + completionHandler: completionHandler) + } +} + +// MARK: - Empty + +/// Protocol representing an empty response. Use `T.emptyValue()` to get an instance. +public protocol EmptyResponse { + /// Empty value for the conforming type. + /// + /// - Returns: Value of `Self` to use for empty values. + static func emptyValue() -> Self +} + +/// Type representing an empty value. Use `Empty.value` to get the static instance. +public struct Empty: Codable { + /// Static `Empty` instance used for all `Empty` responses. + public static let value = Empty() +} + +extension Empty: EmptyResponse { + public static func emptyValue() -> Empty { + value + } +} + +// MARK: - DataDecoder Protocol + +/// Any type which can decode `Data` into a `Decodable` type. +public protocol DataDecoder { + /// Decode `Data` into the provided type. + /// + /// - Parameters: + /// - type: The `Type` to be decoded. + /// - data: The `Data` to be decoded. + /// + /// - Returns: The decoded value of type `D`. + /// - Throws: Any error that occurs during decode. + func decode(_ type: D.Type, from data: Data) throws -> D +} + +/// `JSONDecoder` automatically conforms to `DataDecoder`. +extension JSONDecoder: DataDecoder {} +/// `PropertyListDecoder` automatically conforms to `DataDecoder`. +extension PropertyListDecoder: DataDecoder {} + +// MARK: - Decodable + +/// A `ResponseSerializer` that decodes the response data as a generic value using any type that conforms to +/// `DataDecoder`. By default, this is an instance of `JSONDecoder`. Additionally, a request returning `nil` or no data +/// is considered an error. However, if the request has an `HTTPMethod` or the response has an HTTP status code valid +/// for empty responses then an empty value will be returned. If the decoded type conforms to `EmptyResponse`, the +/// type's `emptyValue()` will be returned. If the decoded type is `Empty`, the `.value` instance is returned. If the +/// decoded type *does not* conform to `EmptyResponse` and isn't `Empty`, an error will be produced. +public final class DecodableResponseSerializer: ResponseSerializer { + public let dataPreprocessor: DataPreprocessor + /// The `DataDecoder` instance used to decode responses. + public let decoder: DataDecoder + public let emptyResponseCodes: Set + public let emptyRequestMethods: Set + + /// Creates an instance using the values provided. + /// + /// - Parameters: + /// - dataPreprocessor: `DataPreprocessor` used to prepare the received `Data` for serialization. + /// - decoder: The `DataDecoder`. `JSONDecoder()` by default. + /// - emptyResponseCodes: The HTTP response codes for which empty responses are allowed. `[204, 205]` by default. + /// - emptyRequestMethods: The HTTP request methods for which empty responses are allowed. `[.head]` by default. + public init(dataPreprocessor: DataPreprocessor = DecodableResponseSerializer.defaultDataPreprocessor, + decoder: DataDecoder = JSONDecoder(), + emptyResponseCodes: Set = DecodableResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DecodableResponseSerializer.defaultEmptyRequestMethods) { + self.dataPreprocessor = dataPreprocessor + self.decoder = decoder + self.emptyResponseCodes = emptyResponseCodes + self.emptyRequestMethods = emptyRequestMethods + } + + public func serialize(request: URLRequest?, response: HTTPURLResponse?, data: Data?, error: Error?) throws -> T { + guard error == nil else { throw error! } + + guard var data = data, !data.isEmpty else { + guard emptyResponseAllowed(forRequest: request, response: response) else { + throw AFError.responseSerializationFailed(reason: .inputDataNilOrZeroLength) + } + + guard let emptyResponseType = T.self as? EmptyResponse.Type, let emptyValue = emptyResponseType.emptyValue() as? T else { + throw AFError.responseSerializationFailed(reason: .invalidEmptyResponse(type: "\(T.self)")) + } + + return emptyValue + } + + data = try dataPreprocessor.preprocess(data) + + do { + return try decoder.decode(T.self, from: data) + } catch { + throw AFError.responseSerializationFailed(reason: .decodingFailed(error: error)) + } + } +} + +extension ResponseSerializer { + /// Creates a `DecodableResponseSerializer` using the values provided. + /// + /// - Parameters: + /// - type: `Decodable` type to decode from response data. + /// - dataPreprocessor: `DataPreprocessor` used to prepare the received `Data` for serialization. + /// - decoder: The `DataDecoder`. `JSONDecoder()` by default. + /// - emptyResponseCodes: The HTTP response codes for which empty responses are allowed. `[204, 205]` by default. + /// - emptyRequestMethods: The HTTP request methods for which empty responses are allowed. `[.head]` by default. + /// + /// - Returns: The `DecodableResponseSerializer`. + public static func decodable(of type: T.Type, + dataPreprocessor: DataPreprocessor = DecodableResponseSerializer.defaultDataPreprocessor, + decoder: DataDecoder = JSONDecoder(), + emptyResponseCodes: Set = DecodableResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DecodableResponseSerializer.defaultEmptyRequestMethods) -> DecodableResponseSerializer where Self == DecodableResponseSerializer { + DecodableResponseSerializer(dataPreprocessor: dataPreprocessor, + decoder: decoder, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods) + } +} + +extension DataRequest { + /// Adds a handler using a `DecodableResponseSerializer` to be called once the request has finished. + /// + /// - Parameters: + /// - type: `Decodable` type to decode from response data. + /// - queue: The queue on which the completion handler is dispatched. `.main` by default. + /// - dataPreprocessor: `DataPreprocessor` which processes the received `Data` before calling the + /// `completionHandler`. `PassthroughPreprocessor()` by default. + /// - decoder: `DataDecoder` to use to decode the response. `JSONDecoder()` by default. + /// - emptyResponseCodes: HTTP status codes for which empty responses are always valid. `[204, 205]` by default. + /// - emptyRequestMethods: `HTTPMethod`s for which empty responses are always valid. `[.head]` by default. + /// - completionHandler: A closure to be executed once the request has finished. + /// + /// - Returns: The request. + @discardableResult + public func responseDecodable(of type: T.Type = T.self, + queue: DispatchQueue = .main, + dataPreprocessor: DataPreprocessor = DecodableResponseSerializer.defaultDataPreprocessor, + decoder: DataDecoder = JSONDecoder(), + emptyResponseCodes: Set = DecodableResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DecodableResponseSerializer.defaultEmptyRequestMethods, + completionHandler: @escaping (AFDataResponse) -> Void) -> Self { + response(queue: queue, + responseSerializer: DecodableResponseSerializer(dataPreprocessor: dataPreprocessor, + decoder: decoder, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + completionHandler: completionHandler) + } +} + +extension DownloadRequest { + /// Adds a handler using a `DecodableResponseSerializer` to be called once the request has finished. + /// + /// - Parameters: + /// - type: `Decodable` type to decode from response data. + /// - queue: The queue on which the completion handler is dispatched. `.main` by default. + /// - dataPreprocessor: `DataPreprocessor` which processes the received `Data` before calling the + /// `completionHandler`. `PassthroughPreprocessor()` by default. + /// - decoder: `DataDecoder` to use to decode the response. `JSONDecoder()` by default. + /// - emptyResponseCodes: HTTP status codes for which empty responses are always valid. `[204, 205]` by default. + /// - emptyRequestMethods: `HTTPMethod`s for which empty responses are always valid. `[.head]` by default. + /// - completionHandler: A closure to be executed once the request has finished. + /// + /// - Returns: The request. + @discardableResult + public func responseDecodable(of type: T.Type = T.self, + queue: DispatchQueue = .main, + dataPreprocessor: DataPreprocessor = DecodableResponseSerializer.defaultDataPreprocessor, + decoder: DataDecoder = JSONDecoder(), + emptyResponseCodes: Set = DecodableResponseSerializer.defaultEmptyResponseCodes, + emptyRequestMethods: Set = DecodableResponseSerializer.defaultEmptyRequestMethods, + completionHandler: @escaping (AFDownloadResponse) -> Void) -> Self { + response(queue: queue, + responseSerializer: DecodableResponseSerializer(dataPreprocessor: dataPreprocessor, + decoder: decoder, + emptyResponseCodes: emptyResponseCodes, + emptyRequestMethods: emptyRequestMethods), + completionHandler: completionHandler) + } +} + +// MARK: - DataStreamRequest + +/// A type which can serialize incoming `Data`. +public protocol DataStreamSerializer { + /// Type produced from the serialized `Data`. + associatedtype SerializedObject + + /// Serializes incoming `Data` into a `SerializedObject` value. + /// + /// - Parameter data: `Data` to be serialized. + /// + /// - Throws: Any error produced during serialization. + func serialize(_ data: Data) throws -> SerializedObject +} + +/// `DataStreamSerializer` which uses the provided `DataPreprocessor` and `DataDecoder` to serialize the incoming `Data`. +public struct DecodableStreamSerializer: DataStreamSerializer { + /// `DataDecoder` used to decode incoming `Data`. + public let decoder: DataDecoder + /// `DataPreprocessor` incoming `Data` is passed through before being passed to the `DataDecoder`. + public let dataPreprocessor: DataPreprocessor + + /// Creates an instance with the provided `DataDecoder` and `DataPreprocessor`. + /// - Parameters: + /// - decoder: ` DataDecoder` used to decode incoming `Data`. `JSONDecoder()` by default. + /// - dataPreprocessor: `DataPreprocessor` used to process incoming `Data` before it's passed through the + /// `decoder`. `PassthroughPreprocessor()` by default. + public init(decoder: DataDecoder = JSONDecoder(), dataPreprocessor: DataPreprocessor = PassthroughPreprocessor()) { + self.decoder = decoder + self.dataPreprocessor = dataPreprocessor + } + + public func serialize(_ data: Data) throws -> T { + let processedData = try dataPreprocessor.preprocess(data) + do { + return try decoder.decode(T.self, from: processedData) + } catch { + throw AFError.responseSerializationFailed(reason: .decodingFailed(error: error)) + } + } +} + +/// `DataStreamSerializer` which performs no serialization on incoming `Data`. +public struct PassthroughStreamSerializer: DataStreamSerializer { + /// Creates an instance. + public init() {} + + public func serialize(_ data: Data) throws -> Data { data } +} + +/// `DataStreamSerializer` which serializes incoming stream `Data` into `UTF8`-decoded `String` values. +public struct StringStreamSerializer: DataStreamSerializer { + /// Creates an instance. + public init() {} + + public func serialize(_ data: Data) throws -> String { + String(decoding: data, as: UTF8.self) + } +} + +extension DataStreamSerializer { + /// Creates a `DecodableStreamSerializer` instance with the provided `DataDecoder` and `DataPreprocessor`. + /// + /// - Parameters: + /// - type: `Decodable` type to decode from stream data. + /// - decoder: ` DataDecoder` used to decode incoming `Data`. `JSONDecoder()` by default. + /// - dataPreprocessor: `DataPreprocessor` used to process incoming `Data` before it's passed through the + /// `decoder`. `PassthroughPreprocessor()` by default. + public static func decodable(of type: T.Type, + decoder: DataDecoder = JSONDecoder(), + dataPreprocessor: DataPreprocessor = PassthroughPreprocessor()) -> Self where Self == DecodableStreamSerializer { + DecodableStreamSerializer(decoder: decoder, dataPreprocessor: dataPreprocessor) + } +} + +extension DataStreamSerializer where Self == PassthroughStreamSerializer { + /// Provides a `PassthroughStreamSerializer` instance. + public static var passthrough: PassthroughStreamSerializer { PassthroughStreamSerializer() } +} + +extension DataStreamSerializer where Self == StringStreamSerializer { + /// Provides a `StringStreamSerializer` instance. + public static var string: StringStreamSerializer { StringStreamSerializer() } +} + +extension DataStreamRequest { + /// Adds a `StreamHandler` which performs no parsing on incoming `Data`. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which to perform `StreamHandler` closure. + /// - stream: `StreamHandler` closure called as `Data` is received. May be called multiple times. + /// + /// - Returns: The `DataStreamRequest`. + @discardableResult + public func responseStream(on queue: DispatchQueue = .main, stream: @escaping Handler) -> Self { + let parser = { [unowned self] (data: Data) in + queue.async { + self.capturingError { + try stream(.init(event: .stream(.success(data)), token: .init(self))) + } + + self.updateAndCompleteIfPossible() + } + } + + $streamMutableState.write { $0.streams.append(parser) } + appendStreamCompletion(on: queue, stream: stream) + + return self + } + + /// Adds a `StreamHandler` which uses the provided `DataStreamSerializer` to process incoming `Data`. + /// + /// - Parameters: + /// - serializer: `DataStreamSerializer` used to process incoming `Data`. Its work is done on the `serializationQueue`. + /// - queue: `DispatchQueue` on which to perform `StreamHandler` closure. + /// - stream: `StreamHandler` closure called as `Data` is received. May be called multiple times. + /// + /// - Returns: The `DataStreamRequest`. + @discardableResult + public func responseStream(using serializer: Serializer, + on queue: DispatchQueue = .main, + stream: @escaping Handler) -> Self { + let parser = { [unowned self] (data: Data) in + serializationQueue.async { + // Start work on serialization queue. + let result = Result { try serializer.serialize(data) } + .mapError { $0.asAFError(or: .responseSerializationFailed(reason: .customSerializationFailed(error: $0))) } + // End work on serialization queue. + self.underlyingQueue.async { + self.eventMonitor?.request(self, didParseStream: result) + + if result.isFailure, self.automaticallyCancelOnStreamError { + self.cancel() + } + + queue.async { + self.capturingError { + try stream(.init(event: .stream(result), token: .init(self))) + } + + self.updateAndCompleteIfPossible() + } + } + } + } + + $streamMutableState.write { $0.streams.append(parser) } + appendStreamCompletion(on: queue, stream: stream) + + return self + } + + /// Adds a `StreamHandler` which parses incoming `Data` as a UTF8 `String`. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which to perform `StreamHandler` closure. + /// - stream: `StreamHandler` closure called as `Data` is received. May be called multiple times. + /// + /// - Returns: The `DataStreamRequest`. + @discardableResult + public func responseStreamString(on queue: DispatchQueue = .main, + stream: @escaping Handler) -> Self { + let parser = { [unowned self] (data: Data) in + serializationQueue.async { + // Start work on serialization queue. + let string = String(decoding: data, as: UTF8.self) + // End work on serialization queue. + self.underlyingQueue.async { + self.eventMonitor?.request(self, didParseStream: .success(string)) + + queue.async { + self.capturingError { + try stream(.init(event: .stream(.success(string)), token: .init(self))) + } + + self.updateAndCompleteIfPossible() + } + } + } + } + + $streamMutableState.write { $0.streams.append(parser) } + appendStreamCompletion(on: queue, stream: stream) + + return self + } + + private func updateAndCompleteIfPossible() { + $streamMutableState.write { state in + state.numberOfExecutingStreams -= 1 + + guard state.numberOfExecutingStreams == 0, !state.enqueuedCompletionEvents.isEmpty else { return } + + let completionEvents = state.enqueuedCompletionEvents + self.underlyingQueue.async { completionEvents.forEach { $0() } } + state.enqueuedCompletionEvents.removeAll() + } + } + + /// Adds a `StreamHandler` which parses incoming `Data` using the provided `DataDecoder`. + /// + /// - Parameters: + /// - type: `Decodable` type to parse incoming `Data` into. + /// - queue: `DispatchQueue` on which to perform `StreamHandler` closure. + /// - decoder: `DataDecoder` used to decode the incoming `Data`. + /// - preprocessor: `DataPreprocessor` used to process the incoming `Data` before it's passed to the `decoder`. + /// - stream: `StreamHandler` closure called as `Data` is received. May be called multiple times. + /// + /// - Returns: The `DataStreamRequest`. + @discardableResult + public func responseStreamDecodable(of type: T.Type = T.self, + on queue: DispatchQueue = .main, + using decoder: DataDecoder = JSONDecoder(), + preprocessor: DataPreprocessor = PassthroughPreprocessor(), + stream: @escaping Handler) -> Self { + responseStream(using: DecodableStreamSerializer(decoder: decoder, dataPreprocessor: preprocessor), + stream: stream) + } +} diff --git a/Pods/Alamofire/Source/Result+Alamofire.swift b/Pods/Alamofire/Source/Result+Alamofire.swift new file mode 100644 index 0000000..39ac286 --- /dev/null +++ b/Pods/Alamofire/Source/Result+Alamofire.swift @@ -0,0 +1,120 @@ +// +// Result+Alamofire.swift +// +// Copyright (c) 2019 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// Default type of `Result` returned by Alamofire, with an `AFError` `Failure` type. +public typealias AFResult = Result + +// MARK: - Internal APIs + +extension Result { + /// Returns whether the instance is `.success`. + var isSuccess: Bool { + guard case .success = self else { return false } + return true + } + + /// Returns whether the instance is `.failure`. + var isFailure: Bool { + !isSuccess + } + + /// Returns the associated value if the result is a success, `nil` otherwise. + var success: Success? { + guard case let .success(value) = self else { return nil } + return value + } + + /// Returns the associated error value if the result is a failure, `nil` otherwise. + var failure: Failure? { + guard case let .failure(error) = self else { return nil } + return error + } + + /// Initializes a `Result` from value or error. Returns `.failure` if the error is non-nil, `.success` otherwise. + /// + /// - Parameters: + /// - value: A value. + /// - error: An `Error`. + init(value: Success, error: Failure?) { + if let error = error { + self = .failure(error) + } else { + self = .success(value) + } + } + + /// Evaluates the specified closure when the `Result` is a success, passing the unwrapped value as a parameter. + /// + /// Use the `tryMap` method with a closure that may throw an error. For example: + /// + /// let possibleData: Result = .success(Data(...)) + /// let possibleObject = possibleData.tryMap { + /// try JSONSerialization.jsonObject(with: $0) + /// } + /// + /// - parameter transform: A closure that takes the success value of the instance. + /// + /// - returns: A `Result` containing the result of the given closure. If this instance is a failure, returns the + /// same failure. + func tryMap(_ transform: (Success) throws -> NewSuccess) -> Result { + switch self { + case let .success(value): + do { + return try .success(transform(value)) + } catch { + return .failure(error) + } + case let .failure(error): + return .failure(error) + } + } + + /// Evaluates the specified closure when the `Result` is a failure, passing the unwrapped error as a parameter. + /// + /// Use the `tryMapError` function with a closure that may throw an error. For example: + /// + /// let possibleData: Result = .success(Data(...)) + /// let possibleObject = possibleData.tryMapError { + /// try someFailableFunction(taking: $0) + /// } + /// + /// - Parameter transform: A throwing closure that takes the error of the instance. + /// + /// - Returns: A `Result` instance containing the result of the transform. If this instance is a success, returns + /// the same success. + func tryMapError(_ transform: (Failure) throws -> NewFailure) -> Result { + switch self { + case let .failure(error): + do { + return try .failure(transform(error)) + } catch { + return .failure(error) + } + case let .success(value): + return .success(value) + } + } +} diff --git a/Pods/Alamofire/Source/RetryPolicy.swift b/Pods/Alamofire/Source/RetryPolicy.swift new file mode 100644 index 0000000..bb52c6c --- /dev/null +++ b/Pods/Alamofire/Source/RetryPolicy.swift @@ -0,0 +1,430 @@ +// +// RetryPolicy.swift +// +// Copyright (c) 2019-2020 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// A retry policy that retries requests using an exponential backoff for allowed HTTP methods and HTTP status codes +/// as well as certain types of networking errors. +open class RetryPolicy: RequestInterceptor { + /// The default retry limit for retry policies. + public static let defaultRetryLimit: UInt = 2 + + /// The default exponential backoff base for retry policies (must be a minimum of 2). + public static let defaultExponentialBackoffBase: UInt = 2 + + /// The default exponential backoff scale for retry policies. + public static let defaultExponentialBackoffScale: Double = 0.5 + + /// The default HTTP methods to retry. + /// See [RFC 2616 - Section 9.1.2](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html) for more information. + public static let defaultRetryableHTTPMethods: Set = [.delete, // [Delete](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.7) - not always idempotent + .get, // [GET](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3) - generally idempotent + .head, // [HEAD](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4) - generally idempotent + .options, // [OPTIONS](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.2) - inherently idempotent + .put, // [PUT](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6) - not always idempotent + .trace // [TRACE](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.8) - inherently idempotent + ] + + /// The default HTTP status codes to retry. + /// See [RFC 2616 - Section 10](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10) for more information. + public static let defaultRetryableHTTPStatusCodes: Set = [408, // [Request Timeout](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.9) + 500, // [Internal Server Error](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1) + 502, // [Bad Gateway](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.3) + 503, // [Service Unavailable](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.4) + 504 // [Gateway Timeout](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.5) + ] + + /// The default URL error codes to retry. + public static let defaultRetryableURLErrorCodes: Set = [ // [Security] App Transport Security disallowed a connection because there is no secure network connection. + // - [Disabled] ATS settings do not change at runtime. + // .appTransportSecurityRequiresSecureConnection, + + // [System] An app or app extension attempted to connect to a background session that is already connected to a + // process. + // - [Enabled] The other process could release the background session. + .backgroundSessionInUseByAnotherProcess, + + // [System] The shared container identifier of the URL session configuration is needed but has not been set. + // - [Disabled] Cannot change at runtime. + // .backgroundSessionRequiresSharedContainer, + + // [System] The app is suspended or exits while a background data task is processing. + // - [Enabled] App can be foregrounded or launched to recover. + .backgroundSessionWasDisconnected, + + // [Network] The URL Loading system received bad data from the server. + // - [Enabled] Server could return valid data when retrying. + .badServerResponse, + + // [Resource] A malformed URL prevented a URL request from being initiated. + // - [Disabled] URL was most likely constructed incorrectly. + // .badURL, + + // [System] A connection was attempted while a phone call is active on a network that does not support + // simultaneous phone and data communication (EDGE or GPRS). + // - [Enabled] Phone call could be ended to allow request to recover. + .callIsActive, + + // [Client] An asynchronous load has been canceled. + // - [Disabled] Request was cancelled by the client. + // .cancelled, + + // [File System] A download task couldn’t close the downloaded file on disk. + // - [Disabled] File system error is unlikely to recover with retry. + // .cannotCloseFile, + + // [Network] An attempt to connect to a host failed. + // - [Enabled] Server or DNS lookup could recover during retry. + .cannotConnectToHost, + + // [File System] A download task couldn’t create the downloaded file on disk because of an I/O failure. + // - [Disabled] File system error is unlikely to recover with retry. + // .cannotCreateFile, + + // [Data] Content data received during a connection request had an unknown content encoding. + // - [Disabled] Server is unlikely to modify the content encoding during a retry. + // .cannotDecodeContentData, + + // [Data] Content data received during a connection request could not be decoded for a known content encoding. + // - [Disabled] Server is unlikely to modify the content encoding during a retry. + // .cannotDecodeRawData, + + // [Network] The host name for a URL could not be resolved. + // - [Enabled] Server or DNS lookup could recover during retry. + .cannotFindHost, + + // [Network] A request to load an item only from the cache could not be satisfied. + // - [Enabled] Cache could be populated during a retry. + .cannotLoadFromNetwork, + + // [File System] A download task was unable to move a downloaded file on disk. + // - [Disabled] File system error is unlikely to recover with retry. + // .cannotMoveFile, + + // [File System] A download task was unable to open the downloaded file on disk. + // - [Disabled] File system error is unlikely to recover with retry. + // .cannotOpenFile, + + // [Data] A task could not parse a response. + // - [Disabled] Invalid response is unlikely to recover with retry. + // .cannotParseResponse, + + // [File System] A download task was unable to remove a downloaded file from disk. + // - [Disabled] File system error is unlikely to recover with retry. + // .cannotRemoveFile, + + // [File System] A download task was unable to write to the downloaded file on disk. + // - [Disabled] File system error is unlikely to recover with retry. + // .cannotWriteToFile, + + // [Security] A client certificate was rejected. + // - [Disabled] Client certificate is unlikely to change with retry. + // .clientCertificateRejected, + + // [Security] A client certificate was required to authenticate an SSL connection during a request. + // - [Disabled] Client certificate is unlikely to be provided with retry. + // .clientCertificateRequired, + + // [Data] The length of the resource data exceeds the maximum allowed. + // - [Disabled] Resource will likely still exceed the length maximum on retry. + // .dataLengthExceedsMaximum, + + // [System] The cellular network disallowed a connection. + // - [Enabled] WiFi connection could be established during retry. + .dataNotAllowed, + + // [Network] The host address could not be found via DNS lookup. + // - [Enabled] DNS lookup could succeed during retry. + .dnsLookupFailed, + + // [Data] A download task failed to decode an encoded file during the download. + // - [Enabled] Server could correct the decoding issue with retry. + .downloadDecodingFailedMidStream, + + // [Data] A download task failed to decode an encoded file after downloading. + // - [Enabled] Server could correct the decoding issue with retry. + .downloadDecodingFailedToComplete, + + // [File System] A file does not exist. + // - [Disabled] File system error is unlikely to recover with retry. + // .fileDoesNotExist, + + // [File System] A request for an FTP file resulted in the server responding that the file is not a plain file, + // but a directory. + // - [Disabled] FTP directory is not likely to change to a file during a retry. + // .fileIsDirectory, + + // [Network] A redirect loop has been detected or the threshold for number of allowable redirects has been + // exceeded (currently 16). + // - [Disabled] The redirect loop is unlikely to be resolved within the retry window. + // .httpTooManyRedirects, + + // [System] The attempted connection required activating a data context while roaming, but international roaming + // is disabled. + // - [Enabled] WiFi connection could be established during retry. + .internationalRoamingOff, + + // [Connectivity] A client or server connection was severed in the middle of an in-progress load. + // - [Enabled] A network connection could be established during retry. + .networkConnectionLost, + + // [File System] A resource couldn’t be read because of insufficient permissions. + // - [Disabled] Permissions are unlikely to be granted during retry. + // .noPermissionsToReadFile, + + // [Connectivity] A network resource was requested, but an internet connection has not been established and + // cannot be established automatically. + // - [Enabled] A network connection could be established during retry. + .notConnectedToInternet, + + // [Resource] A redirect was specified by way of server response code, but the server did not accompany this + // code with a redirect URL. + // - [Disabled] The redirect URL is unlikely to be supplied during a retry. + // .redirectToNonExistentLocation, + + // [Client] A body stream is needed but the client did not provide one. + // - [Disabled] The client will be unlikely to supply a body stream during retry. + // .requestBodyStreamExhausted, + + // [Resource] A requested resource couldn’t be retrieved. + // - [Disabled] The resource is unlikely to become available during the retry window. + // .resourceUnavailable, + + // [Security] An attempt to establish a secure connection failed for reasons that can’t be expressed more + // specifically. + // - [Enabled] The secure connection could be established during a retry given the lack of specificity + // provided by the error. + .secureConnectionFailed, + + // [Security] A server certificate had a date which indicates it has expired, or is not yet valid. + // - [Enabled] The server certificate could become valid within the retry window. + .serverCertificateHasBadDate, + + // [Security] A server certificate was not signed by any root server. + // - [Disabled] The server certificate is unlikely to change during the retry window. + // .serverCertificateHasUnknownRoot, + + // [Security] A server certificate is not yet valid. + // - [Enabled] The server certificate could become valid within the retry window. + .serverCertificateNotYetValid, + + // [Security] A server certificate was signed by a root server that isn’t trusted. + // - [Disabled] The server certificate is unlikely to become trusted within the retry window. + // .serverCertificateUntrusted, + + // [Network] An asynchronous operation timed out. + // - [Enabled] The request timed out for an unknown reason and should be retried. + .timedOut + + // [System] The URL Loading System encountered an error that it can’t interpret. + // - [Disabled] The error could not be interpreted and is unlikely to be recovered from during a retry. + // .unknown, + + // [Resource] A properly formed URL couldn’t be handled by the framework. + // - [Disabled] The URL is unlikely to change during a retry. + // .unsupportedURL, + + // [Client] Authentication is required to access a resource. + // - [Disabled] The user authentication is unlikely to be provided by retrying. + // .userAuthenticationRequired, + + // [Client] An asynchronous request for authentication has been canceled by the user. + // - [Disabled] The user cancelled authentication and explicitly took action to not retry. + // .userCancelledAuthentication, + + // [Resource] A server reported that a URL has a non-zero content length, but terminated the network connection + // gracefully without sending any data. + // - [Disabled] The server is unlikely to provide data during the retry window. + // .zeroByteResource, + ] + + /// The total number of times the request is allowed to be retried. + public let retryLimit: UInt + + /// The base of the exponential backoff policy (should always be greater than or equal to 2). + public let exponentialBackoffBase: UInt + + /// The scale of the exponential backoff. + public let exponentialBackoffScale: Double + + /// The HTTP methods that are allowed to be retried. + public let retryableHTTPMethods: Set + + /// The HTTP status codes that are automatically retried by the policy. + public let retryableHTTPStatusCodes: Set + + /// The URL error codes that are automatically retried by the policy. + public let retryableURLErrorCodes: Set + + /// Creates a `RetryPolicy` from the specified parameters. + /// + /// - Parameters: + /// - retryLimit: The total number of times the request is allowed to be retried. `2` by default. + /// - exponentialBackoffBase: The base of the exponential backoff policy. `2` by default. + /// - exponentialBackoffScale: The scale of the exponential backoff. `0.5` by default. + /// - retryableHTTPMethods: The HTTP methods that are allowed to be retried. + /// `RetryPolicy.defaultRetryableHTTPMethods` by default. + /// - retryableHTTPStatusCodes: The HTTP status codes that are automatically retried by the policy. + /// `RetryPolicy.defaultRetryableHTTPStatusCodes` by default. + /// - retryableURLErrorCodes: The URL error codes that are automatically retried by the policy. + /// `RetryPolicy.defaultRetryableURLErrorCodes` by default. + public init(retryLimit: UInt = RetryPolicy.defaultRetryLimit, + exponentialBackoffBase: UInt = RetryPolicy.defaultExponentialBackoffBase, + exponentialBackoffScale: Double = RetryPolicy.defaultExponentialBackoffScale, + retryableHTTPMethods: Set = RetryPolicy.defaultRetryableHTTPMethods, + retryableHTTPStatusCodes: Set = RetryPolicy.defaultRetryableHTTPStatusCodes, + retryableURLErrorCodes: Set = RetryPolicy.defaultRetryableURLErrorCodes) { + precondition(exponentialBackoffBase >= 2, "The `exponentialBackoffBase` must be a minimum of 2.") + + self.retryLimit = retryLimit + self.exponentialBackoffBase = exponentialBackoffBase + self.exponentialBackoffScale = exponentialBackoffScale + self.retryableHTTPMethods = retryableHTTPMethods + self.retryableHTTPStatusCodes = retryableHTTPStatusCodes + self.retryableURLErrorCodes = retryableURLErrorCodes + } + + open func retry(_ request: Request, + for session: Session, + dueTo error: Error, + completion: @escaping (RetryResult) -> Void) { + if request.retryCount < retryLimit, shouldRetry(request: request, dueTo: error) { + completion(.retryWithDelay(pow(Double(exponentialBackoffBase), Double(request.retryCount)) * exponentialBackoffScale)) + } else { + completion(.doNotRetry) + } + } + + /// Determines whether or not to retry the provided `Request`. + /// + /// - Parameters: + /// - request: `Request` that failed due to the provided `Error`. + /// - error: `Error` encountered while executing the `Request`. + /// + /// - Returns: `Bool` determining whether or not to retry the `Request`. + open func shouldRetry(request: Request, dueTo error: Error) -> Bool { + guard let httpMethod = request.request?.method, retryableHTTPMethods.contains(httpMethod) else { return false } + + if let statusCode = request.response?.statusCode, retryableHTTPStatusCodes.contains(statusCode) { + return true + } else { + let errorCode = (error as? URLError)?.code + let afErrorCode = (error.asAFError?.underlyingError as? URLError)?.code + + guard let code = errorCode ?? afErrorCode else { return false } + + return retryableURLErrorCodes.contains(code) + } + } +} + +extension RequestInterceptor where Self == RetryPolicy { + /// Provides a default `RetryPolicy` instance. + public static var retryPolicy: RetryPolicy { RetryPolicy() } + + /// Creates an `RetryPolicy` from the specified parameters. + /// + /// - Parameters: + /// - retryLimit: The total number of times the request is allowed to be retried. `2` by default. + /// - exponentialBackoffBase: The base of the exponential backoff policy. `2` by default. + /// - exponentialBackoffScale: The scale of the exponential backoff. `0.5` by default. + /// - retryableHTTPMethods: The HTTP methods that are allowed to be retried. + /// `RetryPolicy.defaultRetryableHTTPMethods` by default. + /// - retryableHTTPStatusCodes: The HTTP status codes that are automatically retried by the policy. + /// `RetryPolicy.defaultRetryableHTTPStatusCodes` by default. + /// - retryableURLErrorCodes: The URL error codes that are automatically retried by the policy. + /// `RetryPolicy.defaultRetryableURLErrorCodes` by default. + /// + /// - Returns: The `RetryPolicy` + public static func retryPolicy(retryLimit: UInt = RetryPolicy.defaultRetryLimit, + exponentialBackoffBase: UInt = RetryPolicy.defaultExponentialBackoffBase, + exponentialBackoffScale: Double = RetryPolicy.defaultExponentialBackoffScale, + retryableHTTPMethods: Set = RetryPolicy.defaultRetryableHTTPMethods, + retryableHTTPStatusCodes: Set = RetryPolicy.defaultRetryableHTTPStatusCodes, + retryableURLErrorCodes: Set = RetryPolicy.defaultRetryableURLErrorCodes) -> RetryPolicy { + RetryPolicy(retryLimit: retryLimit, + exponentialBackoffBase: exponentialBackoffBase, + exponentialBackoffScale: exponentialBackoffScale, + retryableHTTPMethods: retryableHTTPMethods, + retryableHTTPStatusCodes: retryableHTTPStatusCodes, + retryableURLErrorCodes: retryableURLErrorCodes) + } +} + +// MARK: - + +/// A retry policy that automatically retries idempotent requests for network connection lost errors. For more +/// information about retrying network connection lost errors, please refer to Apple's +/// [technical document](https://developer.apple.com/library/content/qa/qa1941/_index.html). +open class ConnectionLostRetryPolicy: RetryPolicy { + /// Creates a `ConnectionLostRetryPolicy` instance from the specified parameters. + /// + /// - Parameters: + /// - retryLimit: The total number of times the request is allowed to be retried. + /// `RetryPolicy.defaultRetryLimit` by default. + /// - exponentialBackoffBase: The base of the exponential backoff policy. + /// `RetryPolicy.defaultExponentialBackoffBase` by default. + /// - exponentialBackoffScale: The scale of the exponential backoff. + /// `RetryPolicy.defaultExponentialBackoffScale` by default. + /// - retryableHTTPMethods: The idempotent http methods to retry. + /// `RetryPolicy.defaultRetryableHTTPMethods` by default. + public init(retryLimit: UInt = RetryPolicy.defaultRetryLimit, + exponentialBackoffBase: UInt = RetryPolicy.defaultExponentialBackoffBase, + exponentialBackoffScale: Double = RetryPolicy.defaultExponentialBackoffScale, + retryableHTTPMethods: Set = RetryPolicy.defaultRetryableHTTPMethods) { + super.init(retryLimit: retryLimit, + exponentialBackoffBase: exponentialBackoffBase, + exponentialBackoffScale: exponentialBackoffScale, + retryableHTTPMethods: retryableHTTPMethods, + retryableHTTPStatusCodes: [], + retryableURLErrorCodes: [.networkConnectionLost]) + } +} + +extension RequestInterceptor where Self == ConnectionLostRetryPolicy { + /// Provides a default `ConnectionLostRetryPolicy` instance. + public static var connectionLostRetryPolicy: ConnectionLostRetryPolicy { ConnectionLostRetryPolicy() } + + /// Creates a `ConnectionLostRetryPolicy` instance from the specified parameters. + /// + /// - Parameters: + /// - retryLimit: The total number of times the request is allowed to be retried. + /// `RetryPolicy.defaultRetryLimit` by default. + /// - exponentialBackoffBase: The base of the exponential backoff policy. + /// `RetryPolicy.defaultExponentialBackoffBase` by default. + /// - exponentialBackoffScale: The scale of the exponential backoff. + /// `RetryPolicy.defaultExponentialBackoffScale` by default. + /// - retryableHTTPMethods: The idempotent http methods to retry. + /// + /// - Returns: The `ConnectionLostRetryPolicy`. + public static func connectionLostRetryPolicy(retryLimit: UInt = RetryPolicy.defaultRetryLimit, + exponentialBackoffBase: UInt = RetryPolicy.defaultExponentialBackoffBase, + exponentialBackoffScale: Double = RetryPolicy.defaultExponentialBackoffScale, + retryableHTTPMethods: Set = RetryPolicy.defaultRetryableHTTPMethods) -> ConnectionLostRetryPolicy { + ConnectionLostRetryPolicy(retryLimit: retryLimit, + exponentialBackoffBase: exponentialBackoffBase, + exponentialBackoffScale: exponentialBackoffScale, + retryableHTTPMethods: retryableHTTPMethods) + } +} diff --git a/Pods/Alamofire/Source/ServerTrustEvaluation.swift b/Pods/Alamofire/Source/ServerTrustEvaluation.swift new file mode 100644 index 0000000..e490ab4 --- /dev/null +++ b/Pods/Alamofire/Source/ServerTrustEvaluation.swift @@ -0,0 +1,772 @@ +// +// ServerTrustEvaluation.swift +// +// Copyright (c) 2014-2016 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// Responsible for managing the mapping of `ServerTrustEvaluating` values to given hosts. +open class ServerTrustManager { + /// Determines whether all hosts for this `ServerTrustManager` must be evaluated. `true` by default. + public let allHostsMustBeEvaluated: Bool + + /// The dictionary of policies mapped to a particular host. + public let evaluators: [String: ServerTrustEvaluating] + + /// Initializes the `ServerTrustManager` instance with the given evaluators. + /// + /// Since different servers and web services can have different leaf certificates, intermediate and even root + /// certificates, it is important to have the flexibility to specify evaluation policies on a per host basis. This + /// allows for scenarios such as using default evaluation for host1, certificate pinning for host2, public key + /// pinning for host3 and disabling evaluation for host4. + /// + /// - Parameters: + /// - allHostsMustBeEvaluated: The value determining whether all hosts for this instance must be evaluated. `true` + /// by default. + /// - evaluators: A dictionary of evaluators mapped to hosts. + public init(allHostsMustBeEvaluated: Bool = true, evaluators: [String: ServerTrustEvaluating]) { + self.allHostsMustBeEvaluated = allHostsMustBeEvaluated + self.evaluators = evaluators + } + + #if canImport(Security) + /// Returns the `ServerTrustEvaluating` value for the given host, if one is set. + /// + /// By default, this method will return the policy that perfectly matches the given host. Subclasses could override + /// this method and implement more complex mapping implementations such as wildcards. + /// + /// - Parameter host: The host to use when searching for a matching policy. + /// + /// - Returns: The `ServerTrustEvaluating` value for the given host if found, `nil` otherwise. + /// - Throws: `AFError.serverTrustEvaluationFailed` if `allHostsMustBeEvaluated` is `true` and no matching + /// evaluators are found. + open func serverTrustEvaluator(forHost host: String) throws -> ServerTrustEvaluating? { + guard let evaluator = evaluators[host] else { + if allHostsMustBeEvaluated { + throw AFError.serverTrustEvaluationFailed(reason: .noRequiredEvaluator(host: host)) + } + + return nil + } + + return evaluator + } + #endif +} + +/// A protocol describing the API used to evaluate server trusts. +public protocol ServerTrustEvaluating { + #if !canImport(Security) + // Implement this once other platforms have API for evaluating server trusts. + #else + /// Evaluates the given `SecTrust` value for the given `host`. + /// + /// - Parameters: + /// - trust: The `SecTrust` value to evaluate. + /// - host: The host for which to evaluate the `SecTrust` value. + /// + /// - Returns: A `Bool` indicating whether the evaluator considers the `SecTrust` value valid for `host`. + func evaluate(_ trust: SecTrust, forHost host: String) throws + #endif +} + +// MARK: - Server Trust Evaluators + +#if canImport(Security) +/// An evaluator which uses the default server trust evaluation while allowing you to control whether to validate the +/// host provided by the challenge. Applications are encouraged to always validate the host in production environments +/// to guarantee the validity of the server's certificate chain. +public final class DefaultTrustEvaluator: ServerTrustEvaluating { + private let validateHost: Bool + + /// Creates a `DefaultTrustEvaluator`. + /// + /// - Parameter validateHost: Determines whether or not the evaluator should validate the host. `true` by default. + public init(validateHost: Bool = true) { + self.validateHost = validateHost + } + + public func evaluate(_ trust: SecTrust, forHost host: String) throws { + if validateHost { + try trust.af.performValidation(forHost: host) + } + + try trust.af.performDefaultValidation(forHost: host) + } +} + +/// An evaluator which Uses the default and revoked server trust evaluations allowing you to control whether to validate +/// the host provided by the challenge as well as specify the revocation flags for testing for revoked certificates. +/// Apple platforms did not start testing for revoked certificates automatically until iOS 10.1, macOS 10.12 and tvOS +/// 10.1 which is demonstrated in our TLS tests. Applications are encouraged to always validate the host in production +/// environments to guarantee the validity of the server's certificate chain. +public final class RevocationTrustEvaluator: ServerTrustEvaluating { + /// Represents the options to be use when evaluating the status of a certificate. + /// Only Revocation Policy Constants are valid, and can be found in [Apple's documentation](https://developer.apple.com/documentation/security/certificate_key_and_trust_services/policies/1563600-revocation_policy_constants). + public struct Options: OptionSet { + /// Perform revocation checking using the CRL (Certification Revocation List) method. + public static let crl = Options(rawValue: kSecRevocationCRLMethod) + /// Consult only locally cached replies; do not use network access. + public static let networkAccessDisabled = Options(rawValue: kSecRevocationNetworkAccessDisabled) + /// Perform revocation checking using OCSP (Online Certificate Status Protocol). + public static let ocsp = Options(rawValue: kSecRevocationOCSPMethod) + /// Prefer CRL revocation checking over OCSP; by default, OCSP is preferred. + public static let preferCRL = Options(rawValue: kSecRevocationPreferCRL) + /// Require a positive response to pass the policy. If the flag is not set, revocation checking is done on a + /// "best attempt" basis, where failure to reach the server is not considered fatal. + public static let requirePositiveResponse = Options(rawValue: kSecRevocationRequirePositiveResponse) + /// Perform either OCSP or CRL checking. The checking is performed according to the method(s) specified in the + /// certificate and the value of `preferCRL`. + public static let any = Options(rawValue: kSecRevocationUseAnyAvailableMethod) + + /// The raw value of the option. + public let rawValue: CFOptionFlags + + /// Creates an `Options` value with the given `CFOptionFlags`. + /// + /// - Parameter rawValue: The `CFOptionFlags` value to initialize with. + public init(rawValue: CFOptionFlags) { + self.rawValue = rawValue + } + } + + private let performDefaultValidation: Bool + private let validateHost: Bool + private let options: Options + + /// Creates a `RevocationTrustEvaluator` using the provided parameters. + /// + /// - Note: Default and host validation will fail when using this evaluator with self-signed certificates. Use + /// `PinnedCertificatesTrustEvaluator` if you need to use self-signed certificates. + /// + /// - Parameters: + /// - performDefaultValidation: Determines whether default validation should be performed in addition to + /// evaluating the pinned certificates. `true` by default. + /// - validateHost: Determines whether or not the evaluator should validate the host, in addition to + /// performing the default evaluation, even if `performDefaultValidation` is `false`. + /// `true` by default. + /// - options: The `Options` to use to check the revocation status of the certificate. `.any` by + /// default. + public init(performDefaultValidation: Bool = true, validateHost: Bool = true, options: Options = .any) { + self.performDefaultValidation = performDefaultValidation + self.validateHost = validateHost + self.options = options + } + + public func evaluate(_ trust: SecTrust, forHost host: String) throws { + if performDefaultValidation { + try trust.af.performDefaultValidation(forHost: host) + } + + if validateHost { + try trust.af.performValidation(forHost: host) + } + + #if swift(>=5.9) + if #available(iOS 12, macOS 10.14, tvOS 12, watchOS 5, visionOS 1, *) { + try trust.af.evaluate(afterApplying: SecPolicy.af.revocation(options: options)) + } else { + try trust.af.validate(policy: SecPolicy.af.revocation(options: options)) { status, result in + AFError.serverTrustEvaluationFailed(reason: .revocationCheckFailed(output: .init(host, trust, status, result), options: options)) + } + } + #else + if #available(iOS 12, macOS 10.14, tvOS 12, watchOS 5, *) { + try trust.af.evaluate(afterApplying: SecPolicy.af.revocation(options: options)) + } else { + try trust.af.validate(policy: SecPolicy.af.revocation(options: options)) { status, result in + AFError.serverTrustEvaluationFailed(reason: .revocationCheckFailed(output: .init(host, trust, status, result), options: options)) + } + } + #endif + } +} + +extension ServerTrustEvaluating where Self == RevocationTrustEvaluator { + /// Provides a default `RevocationTrustEvaluator` instance. + public static var revocationChecking: RevocationTrustEvaluator { RevocationTrustEvaluator() } + + /// Creates a `RevocationTrustEvaluator` using the provided parameters. + /// + /// - Note: Default and host validation will fail when using this evaluator with self-signed certificates. Use + /// `PinnedCertificatesTrustEvaluator` if you need to use self-signed certificates. + /// + /// - Parameters: + /// - performDefaultValidation: Determines whether default validation should be performed in addition to + /// evaluating the pinned certificates. `true` by default. + /// - validateHost: Determines whether or not the evaluator should validate the host, in addition + /// to performing the default evaluation, even if `performDefaultValidation` is + /// `false`. `true` by default. + /// - options: The `Options` to use to check the revocation status of the certificate. `.any` + /// by default. + /// - Returns: The `RevocationTrustEvaluator`. + public static func revocationChecking(performDefaultValidation: Bool = true, + validateHost: Bool = true, + options: RevocationTrustEvaluator.Options = .any) -> RevocationTrustEvaluator { + RevocationTrustEvaluator(performDefaultValidation: performDefaultValidation, + validateHost: validateHost, + options: options) + } +} + +/// Uses the pinned certificates to validate the server trust. The server trust is considered valid if one of the pinned +/// certificates match one of the server certificates. By validating both the certificate chain and host, certificate +/// pinning provides a very secure form of server trust validation mitigating most, if not all, MITM attacks. +/// Applications are encouraged to always validate the host and require a valid certificate chain in production +/// environments. +public final class PinnedCertificatesTrustEvaluator: ServerTrustEvaluating { + private let certificates: [SecCertificate] + private let acceptSelfSignedCertificates: Bool + private let performDefaultValidation: Bool + private let validateHost: Bool + + /// Creates a `PinnedCertificatesTrustEvaluator` from the provided parameters. + /// + /// - Parameters: + /// - certificates: The certificates to use to evaluate the trust. All `cer`, `crt`, and `der` + /// certificates in `Bundle.main` by default. + /// - acceptSelfSignedCertificates: Adds the provided certificates as anchors for the trust evaluation, allowing + /// self-signed certificates to pass. `false` by default. THIS SETTING SHOULD BE + /// FALSE IN PRODUCTION! + /// - performDefaultValidation: Determines whether default validation should be performed in addition to + /// evaluating the pinned certificates. `true` by default. + /// - validateHost: Determines whether or not the evaluator should validate the host, in addition + /// to performing the default evaluation, even if `performDefaultValidation` is + /// `false`. `true` by default. + public init(certificates: [SecCertificate] = Bundle.main.af.certificates, + acceptSelfSignedCertificates: Bool = false, + performDefaultValidation: Bool = true, + validateHost: Bool = true) { + self.certificates = certificates + self.acceptSelfSignedCertificates = acceptSelfSignedCertificates + self.performDefaultValidation = performDefaultValidation + self.validateHost = validateHost + } + + public func evaluate(_ trust: SecTrust, forHost host: String) throws { + guard !certificates.isEmpty else { + throw AFError.serverTrustEvaluationFailed(reason: .noCertificatesFound) + } + + if acceptSelfSignedCertificates { + try trust.af.setAnchorCertificates(certificates) + } + + if performDefaultValidation { + try trust.af.performDefaultValidation(forHost: host) + } + + if validateHost { + try trust.af.performValidation(forHost: host) + } + + let serverCertificatesData = Set(trust.af.certificateData) + let pinnedCertificatesData = Set(certificates.af.data) + let pinnedCertificatesInServerData = !serverCertificatesData.isDisjoint(with: pinnedCertificatesData) + if !pinnedCertificatesInServerData { + throw AFError.serverTrustEvaluationFailed(reason: .certificatePinningFailed(host: host, + trust: trust, + pinnedCertificates: certificates, + serverCertificates: trust.af.certificates)) + } + } +} + +extension ServerTrustEvaluating where Self == PinnedCertificatesTrustEvaluator { + /// Provides a default `PinnedCertificatesTrustEvaluator` instance. + public static var pinnedCertificates: PinnedCertificatesTrustEvaluator { PinnedCertificatesTrustEvaluator() } + + /// Creates a `PinnedCertificatesTrustEvaluator` using the provided parameters. + /// + /// - Parameters: + /// - certificates: The certificates to use to evaluate the trust. All `cer`, `crt`, and `der` + /// certificates in `Bundle.main` by default. + /// - acceptSelfSignedCertificates: Adds the provided certificates as anchors for the trust evaluation, allowing + /// self-signed certificates to pass. `false` by default. THIS SETTING SHOULD BE + /// FALSE IN PRODUCTION! + /// - performDefaultValidation: Determines whether default validation should be performed in addition to + /// evaluating the pinned certificates. `true` by default. + /// - validateHost: Determines whether or not the evaluator should validate the host, in addition + /// to performing the default evaluation, even if `performDefaultValidation` is + /// `false`. `true` by default. + public static func pinnedCertificates(certificates: [SecCertificate] = Bundle.main.af.certificates, + acceptSelfSignedCertificates: Bool = false, + performDefaultValidation: Bool = true, + validateHost: Bool = true) -> PinnedCertificatesTrustEvaluator { + PinnedCertificatesTrustEvaluator(certificates: certificates, + acceptSelfSignedCertificates: acceptSelfSignedCertificates, + performDefaultValidation: performDefaultValidation, + validateHost: validateHost) + } +} + +/// Uses the pinned public keys to validate the server trust. The server trust is considered valid if one of the pinned +/// public keys match one of the server certificate public keys. By validating both the certificate chain and host, +/// public key pinning provides a very secure form of server trust validation mitigating most, if not all, MITM attacks. +/// Applications are encouraged to always validate the host and require a valid certificate chain in production +/// environments. +public final class PublicKeysTrustEvaluator: ServerTrustEvaluating { + private let keys: [SecKey] + private let performDefaultValidation: Bool + private let validateHost: Bool + + /// Creates a `PublicKeysTrustEvaluator` from the provided parameters. + /// + /// - Note: Default and host validation will fail when using this evaluator with self-signed certificates. Use + /// `PinnedCertificatesTrustEvaluator` if you need to use self-signed certificates. + /// + /// - Parameters: + /// - keys: The `SecKey`s to use to validate public keys. Defaults to the public keys of all + /// certificates included in the main bundle. + /// - performDefaultValidation: Determines whether default validation should be performed in addition to + /// evaluating the pinned certificates. `true` by default. + /// - validateHost: Determines whether or not the evaluator should validate the host, in addition to + /// performing the default evaluation, even if `performDefaultValidation` is `false`. + /// `true` by default. + public init(keys: [SecKey] = Bundle.main.af.publicKeys, + performDefaultValidation: Bool = true, + validateHost: Bool = true) { + self.keys = keys + self.performDefaultValidation = performDefaultValidation + self.validateHost = validateHost + } + + public func evaluate(_ trust: SecTrust, forHost host: String) throws { + guard !keys.isEmpty else { + throw AFError.serverTrustEvaluationFailed(reason: .noPublicKeysFound) + } + + if performDefaultValidation { + try trust.af.performDefaultValidation(forHost: host) + } + + if validateHost { + try trust.af.performValidation(forHost: host) + } + + let pinnedKeysInServerKeys: Bool = { + for serverPublicKey in trust.af.publicKeys { + if keys.contains(serverPublicKey) { + return true + } + } + return false + }() + + if !pinnedKeysInServerKeys { + throw AFError.serverTrustEvaluationFailed(reason: .publicKeyPinningFailed(host: host, + trust: trust, + pinnedKeys: keys, + serverKeys: trust.af.publicKeys)) + } + } +} + +extension ServerTrustEvaluating where Self == PublicKeysTrustEvaluator { + /// Provides a default `PublicKeysTrustEvaluator` instance. + public static var publicKeys: PublicKeysTrustEvaluator { PublicKeysTrustEvaluator() } + + /// Creates a `PublicKeysTrustEvaluator` from the provided parameters. + /// + /// - Note: Default and host validation will fail when using this evaluator with self-signed certificates. Use + /// `PinnedCertificatesTrustEvaluator` if you need to use self-signed certificates. + /// + /// - Parameters: + /// - keys: The `SecKey`s to use to validate public keys. Defaults to the public keys of all + /// certificates included in the main bundle. + /// - performDefaultValidation: Determines whether default validation should be performed in addition to + /// evaluating the pinned certificates. `true` by default. + /// - validateHost: Determines whether or not the evaluator should validate the host, in addition to + /// performing the default evaluation, even if `performDefaultValidation` is `false`. + /// `true` by default. + public static func publicKeys(keys: [SecKey] = Bundle.main.af.publicKeys, + performDefaultValidation: Bool = true, + validateHost: Bool = true) -> PublicKeysTrustEvaluator { + PublicKeysTrustEvaluator(keys: keys, performDefaultValidation: performDefaultValidation, validateHost: validateHost) + } +} + +/// Uses the provided evaluators to validate the server trust. The trust is only considered valid if all of the +/// evaluators consider it valid. +public final class CompositeTrustEvaluator: ServerTrustEvaluating { + private let evaluators: [ServerTrustEvaluating] + + /// Creates a `CompositeTrustEvaluator` from the provided evaluators. + /// + /// - Parameter evaluators: The `ServerTrustEvaluating` values used to evaluate the server trust. + public init(evaluators: [ServerTrustEvaluating]) { + self.evaluators = evaluators + } + + public func evaluate(_ trust: SecTrust, forHost host: String) throws { + try evaluators.evaluate(trust, forHost: host) + } +} + +extension ServerTrustEvaluating where Self == CompositeTrustEvaluator { + /// Creates a `CompositeTrustEvaluator` from the provided evaluators. + /// + /// - Parameter evaluators: The `ServerTrustEvaluating` values used to evaluate the server trust. + public static func composite(evaluators: [ServerTrustEvaluating]) -> CompositeTrustEvaluator { + CompositeTrustEvaluator(evaluators: evaluators) + } +} + +/// Disables all evaluation which in turn will always consider any server trust as valid. +/// +/// - Note: Instead of disabling server trust evaluation, it's a better idea to configure systems to properly trust test +/// certificates, as outlined in [this Apple tech note](https://developer.apple.com/library/archive/qa/qa1948/_index.html). +/// +/// **THIS EVALUATOR SHOULD NEVER BE USED IN PRODUCTION!** +@available(*, deprecated, renamed: "DisabledTrustEvaluator", message: "DisabledEvaluator has been renamed DisabledTrustEvaluator.") +public typealias DisabledEvaluator = DisabledTrustEvaluator + +/// Disables all evaluation which in turn will always consider any server trust as valid. +/// +/// +/// - Note: Instead of disabling server trust evaluation, it's a better idea to configure systems to properly trust test +/// certificates, as outlined in [this Apple tech note](https://developer.apple.com/library/archive/qa/qa1948/_index.html). +/// +/// **THIS EVALUATOR SHOULD NEVER BE USED IN PRODUCTION!** +public final class DisabledTrustEvaluator: ServerTrustEvaluating { + /// Creates an instance. + public init() {} + + public func evaluate(_ trust: SecTrust, forHost host: String) throws {} +} + +// MARK: - Extensions + +extension Array where Element == ServerTrustEvaluating { + #if os(Linux) || os(Windows) || os(Android) + // Add this same convenience method for Linux/Windows. + #else + /// Evaluates the given `SecTrust` value for the given `host`. + /// + /// - Parameters: + /// - trust: The `SecTrust` value to evaluate. + /// - host: The host for which to evaluate the `SecTrust` value. + /// + /// - Returns: Whether or not the evaluator considers the `SecTrust` value valid for `host`. + public func evaluate(_ trust: SecTrust, forHost host: String) throws { + for evaluator in self { + try evaluator.evaluate(trust, forHost: host) + } + } + #endif +} + +extension Bundle: AlamofireExtended {} +extension AlamofireExtension where ExtendedType: Bundle { + /// Returns all valid `cer`, `crt`, and `der` certificates in the bundle. + public var certificates: [SecCertificate] { + paths(forResourcesOfTypes: [".cer", ".CER", ".crt", ".CRT", ".der", ".DER"]).compactMap { path in + guard + let certificateData = try? Data(contentsOf: URL(fileURLWithPath: path)) as CFData, + let certificate = SecCertificateCreateWithData(nil, certificateData) else { return nil } + + return certificate + } + } + + /// Returns all public keys for the valid certificates in the bundle. + public var publicKeys: [SecKey] { + certificates.af.publicKeys + } + + /// Returns all pathnames for the resources identified by the provided file extensions. + /// + /// - Parameter types: The filename extensions locate. + /// + /// - Returns: All pathnames for the given filename extensions. + public func paths(forResourcesOfTypes types: [String]) -> [String] { + Array(Set(types.flatMap { type.paths(forResourcesOfType: $0, inDirectory: nil) })) + } +} + +extension SecTrust: AlamofireExtended {} +extension AlamofireExtension where ExtendedType == SecTrust { + /// Evaluates `self` after applying the `SecPolicy` value provided. + /// + /// - Parameter policy: The `SecPolicy` to apply to `self` before evaluation. + /// + /// - Throws: Any `Error` from applying the `SecPolicy` or from evaluation. + @available(iOS 12, macOS 10.14, tvOS 12, watchOS 5, *) + public func evaluate(afterApplying policy: SecPolicy) throws { + try apply(policy: policy).af.evaluate() + } + + /// Attempts to validate `self` using the `SecPolicy` provided and transforming any error produced using the closure passed. + /// + /// - Parameters: + /// - policy: The `SecPolicy` used to evaluate `self`. + /// - errorProducer: The closure used transform the failed `OSStatus` and `SecTrustResultType`. + /// - Throws: Any `Error` from applying the `policy`, or the result of `errorProducer` if validation fails. + @available(iOS, introduced: 10, deprecated: 12, renamed: "evaluate(afterApplying:)") + @available(macOS, introduced: 10.12, deprecated: 10.14, renamed: "evaluate(afterApplying:)") + @available(tvOS, introduced: 10, deprecated: 12, renamed: "evaluate(afterApplying:)") + @available(watchOS, introduced: 3, deprecated: 5, renamed: "evaluate(afterApplying:)") + public func validate(policy: SecPolicy, errorProducer: (_ status: OSStatus, _ result: SecTrustResultType) -> Error) throws { + try apply(policy: policy).af.validate(errorProducer: errorProducer) + } + + /// Applies a `SecPolicy` to `self`, throwing if it fails. + /// + /// - Parameter policy: The `SecPolicy`. + /// + /// - Returns: `self`, with the policy applied. + /// - Throws: An `AFError.serverTrustEvaluationFailed` instance with a `.policyApplicationFailed` reason. + public func apply(policy: SecPolicy) throws -> SecTrust { + let status = SecTrustSetPolicies(type, policy) + + guard status.af.isSuccess else { + throw AFError.serverTrustEvaluationFailed(reason: .policyApplicationFailed(trust: type, + policy: policy, + status: status)) + } + + return type + } + + /// Evaluate `self`, throwing an `Error` if evaluation fails. + /// + /// - Throws: `AFError.serverTrustEvaluationFailed` with reason `.trustValidationFailed` and associated error from + /// the underlying evaluation. + @available(iOS 12, macOS 10.14, tvOS 12, watchOS 5, *) + public func evaluate() throws { + var error: CFError? + let evaluationSucceeded = SecTrustEvaluateWithError(type, &error) + + if !evaluationSucceeded { + throw AFError.serverTrustEvaluationFailed(reason: .trustEvaluationFailed(error: error)) + } + } + + /// Validate `self`, passing any failure values through `errorProducer`. + /// + /// - Parameter errorProducer: The closure used to transform the failed `OSStatus` and `SecTrustResultType` into an + /// `Error`. + /// - Throws: The `Error` produced by the `errorProducer` closure. + @available(iOS, introduced: 10, deprecated: 12, renamed: "evaluate()") + @available(macOS, introduced: 10.12, deprecated: 10.14, renamed: "evaluate()") + @available(tvOS, introduced: 10, deprecated: 12, renamed: "evaluate()") + @available(watchOS, introduced: 3, deprecated: 5, renamed: "evaluate()") + public func validate(errorProducer: (_ status: OSStatus, _ result: SecTrustResultType) -> Error) throws { + var result = SecTrustResultType.invalid + let status = SecTrustEvaluate(type, &result) + + guard status.af.isSuccess && result.af.isSuccess else { + throw errorProducer(status, result) + } + } + + /// Sets a custom certificate chain on `self`, allowing full validation of a self-signed certificate and its chain. + /// + /// - Parameter certificates: The `SecCertificate`s to add to the chain. + /// - Throws: Any error produced when applying the new certificate chain. + public func setAnchorCertificates(_ certificates: [SecCertificate]) throws { + // Add additional anchor certificates. + let status = SecTrustSetAnchorCertificates(type, certificates as CFArray) + guard status.af.isSuccess else { + throw AFError.serverTrustEvaluationFailed(reason: .settingAnchorCertificatesFailed(status: status, + certificates: certificates)) + } + + // Trust only the set anchor certs. + let onlyStatus = SecTrustSetAnchorCertificatesOnly(type, true) + guard onlyStatus.af.isSuccess else { + throw AFError.serverTrustEvaluationFailed(reason: .settingAnchorCertificatesFailed(status: onlyStatus, + certificates: certificates)) + } + } + + /// The public keys contained in `self`. + public var publicKeys: [SecKey] { + certificates.af.publicKeys + } + + /// The `SecCertificate`s contained in `self`. + public var certificates: [SecCertificate] { + #if swift(>=5.9) + if #available(iOS 15, macOS 12, tvOS 15, watchOS 8, visionOS 1, *) { + return (SecTrustCopyCertificateChain(type) as? [SecCertificate]) ?? [] + } else { + return (0..=5.5.1) // Xcode 13.1 / 2021 SDKs. + if #available(iOS 15, macOS 12, tvOS 15, watchOS 8, *) { + return (SecTrustCopyCertificateChain(type) as? [SecCertificate]) ?? [] + } else { + return (0..=5.9) + if #available(iOS 12, macOS 10.14, tvOS 12, watchOS 5, visionOS 1, *) { + try evaluate(afterApplying: SecPolicy.af.default) + } else { + try validate(policy: SecPolicy.af.default) { status, result in + AFError.serverTrustEvaluationFailed(reason: .defaultEvaluationFailed(output: .init(host, type, status, result))) + } + } + #else + if #available(iOS 12, macOS 10.14, tvOS 12, watchOS 5, *) { + try evaluate(afterApplying: SecPolicy.af.default) + } else { + try validate(policy: SecPolicy.af.default) { status, result in + AFError.serverTrustEvaluationFailed(reason: .defaultEvaluationFailed(output: .init(host, type, status, result))) + } + } + #endif + } + + /// Validates `self` after applying `SecPolicy.af.hostname(host)`, which performs the default validation as well as + /// hostname validation. + /// + /// - Parameter host: The hostname to use in the validation. + /// - Throws: An `AFError.serverTrustEvaluationFailed` instance with a `.defaultEvaluationFailed` reason. + public func performValidation(forHost host: String) throws { + #if swift(>=5.9) + if #available(iOS 12, macOS 10.14, tvOS 12, watchOS 5, visionOS 1, *) { + try evaluate(afterApplying: SecPolicy.af.hostname(host)) + } else { + try validate(policy: SecPolicy.af.hostname(host)) { status, result in + AFError.serverTrustEvaluationFailed(reason: .hostValidationFailed(output: .init(host, type, status, result))) + } + } + #else + if #available(iOS 12, macOS 10.14, tvOS 12, watchOS 5, *) { + try evaluate(afterApplying: SecPolicy.af.hostname(host)) + } else { + try validate(policy: SecPolicy.af.hostname(host)) { status, result in + AFError.serverTrustEvaluationFailed(reason: .hostValidationFailed(output: .init(host, type, status, result))) + } + } + #endif + } +} + +extension SecPolicy: AlamofireExtended {} +extension AlamofireExtension where ExtendedType == SecPolicy { + /// Creates a `SecPolicy` instance which will validate server certificates but not require a host name match. + public static let `default` = SecPolicyCreateSSL(true, nil) + + /// Creates a `SecPolicy` instance which will validate server certificates and much match the provided hostname. + /// + /// - Parameter hostname: The hostname to validate against. + /// + /// - Returns: The `SecPolicy`. + public static func hostname(_ hostname: String) -> SecPolicy { + SecPolicyCreateSSL(true, hostname as CFString) + } + + /// Creates a `SecPolicy` which checks the revocation of certificates. + /// + /// - Parameter options: The `RevocationTrustEvaluator.Options` for evaluation. + /// + /// - Returns: The `SecPolicy`. + /// - Throws: An `AFError.serverTrustEvaluationFailed` error with reason `.revocationPolicyCreationFailed` + /// if the policy cannot be created. + public static func revocation(options: RevocationTrustEvaluator.Options) throws -> SecPolicy { + guard let policy = SecPolicyCreateRevocation(options.rawValue) else { + throw AFError.serverTrustEvaluationFailed(reason: .revocationPolicyCreationFailed) + } + + return policy + } +} + +extension Array: AlamofireExtended {} +extension AlamofireExtension where ExtendedType == [SecCertificate] { + /// All `Data` values for the contained `SecCertificate`s. + public var data: [Data] { + type.map { SecCertificateCopyData($0) as Data } + } + + /// All public `SecKey` values for the contained `SecCertificate`s. + public var publicKeys: [SecKey] { + type.compactMap(\.af.publicKey) + } +} + +extension SecCertificate: AlamofireExtended {} +extension AlamofireExtension where ExtendedType == SecCertificate { + /// The public key for `self`, if it can be extracted. + /// + /// - Note: On 2020 OSes and newer, only RSA and ECDSA keys are supported. + /// + public var publicKey: SecKey? { + let policy = SecPolicyCreateBasicX509() + var trust: SecTrust? + let trustCreationStatus = SecTrustCreateWithCertificates(type, policy, &trust) + + guard let createdTrust = trust, trustCreationStatus == errSecSuccess else { return nil } + + #if swift(>=5.9) + if #available(iOS 14, macOS 11, tvOS 14, watchOS 7, visionOS 1, *) { + return SecTrustCopyKey(createdTrust) + } else { + return SecTrustCopyPublicKey(createdTrust) + } + #else + if #available(iOS 14, macOS 11, tvOS 14, watchOS 7, *) { + return SecTrustCopyKey(createdTrust) + } else { + return SecTrustCopyPublicKey(createdTrust) + } + #endif + } +} + +extension OSStatus: AlamofireExtended {} +extension AlamofireExtension where ExtendedType == OSStatus { + /// Returns whether `self` is `errSecSuccess`. + public var isSuccess: Bool { type == errSecSuccess } +} + +extension SecTrustResultType: AlamofireExtended {} +extension AlamofireExtension where ExtendedType == SecTrustResultType { + /// Returns whether `self is `.unspecified` or `.proceed`. + public var isSuccess: Bool { + type == .unspecified || type == .proceed + } +} +#endif diff --git a/Pods/Alamofire/Source/Session.swift b/Pods/Alamofire/Source/Session.swift new file mode 100644 index 0000000..4232f85 --- /dev/null +++ b/Pods/Alamofire/Source/Session.swift @@ -0,0 +1,1264 @@ +// +// Session.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// `Session` creates and manages Alamofire's `Request` types during their lifetimes. It also provides common +/// functionality for all `Request`s, including queuing, interception, trust management, redirect handling, and response +/// cache handling. +open class Session { + /// Shared singleton instance used by all `AF.request` APIs. Cannot be modified. + public static let `default` = Session() + + /// Underlying `URLSession` used to create `URLSessionTasks` for this instance, and for which this instance's + /// `delegate` handles `URLSessionDelegate` callbacks. + /// + /// - Note: This instance should **NOT** be used to interact with the underlying `URLSessionTask`s. Doing so will + /// break internal Alamofire logic that tracks those tasks. + /// + public let session: URLSession + /// Instance's `SessionDelegate`, which handles the `URLSessionDelegate` methods and `Request` interaction. + public let delegate: SessionDelegate + /// Root `DispatchQueue` for all internal callbacks and state update. **MUST** be a serial queue. + public let rootQueue: DispatchQueue + /// Value determining whether this instance automatically calls `resume()` on all created `Request`s. + public let startRequestsImmediately: Bool + /// `DispatchQueue` on which `URLRequest`s are created asynchronously. By default this queue uses `rootQueue` as its + /// `target`, but a separate queue can be used if request creation is determined to be a bottleneck. Always profile + /// and test before introducing an additional queue. + public let requestQueue: DispatchQueue + /// `DispatchQueue` passed to all `Request`s on which they perform their response serialization. By default this + /// queue uses `rootQueue` as its `target` but a separate queue can be used if response serialization is determined + /// to be a bottleneck. Always profile and test before introducing an additional queue. + public let serializationQueue: DispatchQueue + /// `RequestInterceptor` used for all `Request` created by the instance. `RequestInterceptor`s can also be set on a + /// per-`Request` basis, in which case the `Request`'s interceptor takes precedence over this value. + public let interceptor: RequestInterceptor? + /// `ServerTrustManager` instance used to evaluate all trust challenges and provide certificate and key pinning. + public let serverTrustManager: ServerTrustManager? + /// `RedirectHandler` instance used to provide customization for request redirection. + public let redirectHandler: RedirectHandler? + /// `CachedResponseHandler` instance used to provide customization of cached response handling. + public let cachedResponseHandler: CachedResponseHandler? + /// `CompositeEventMonitor` used to compose Alamofire's `defaultEventMonitors` and any passed `EventMonitor`s. + public let eventMonitor: CompositeEventMonitor + /// `EventMonitor`s included in all instances. `[AlamofireNotifications()]` by default. + public let defaultEventMonitors: [EventMonitor] = [AlamofireNotifications()] + + /// Internal map between `Request`s and any `URLSessionTasks` that may be in flight for them. + var requestTaskMap = RequestTaskMap() + /// `Set` of currently active `Request`s. + var activeRequests: Set = [] + /// Completion events awaiting `URLSessionTaskMetrics`. + var waitingCompletions: [URLSessionTask: () -> Void] = [:] + + /// Creates a `Session` from a `URLSession` and other parameters. + /// + /// - Note: When passing a `URLSession`, you must create the `URLSession` with a specific `delegateQueue` value and + /// pass the `delegateQueue`'s `underlyingQueue` as the `rootQueue` parameter of this initializer. + /// + /// - Parameters: + /// - session: Underlying `URLSession` for this instance. + /// - delegate: `SessionDelegate` that handles `session`'s delegate callbacks as well as `Request` + /// interaction. + /// - rootQueue: Root `DispatchQueue` for all internal callbacks and state updates. **MUST** be a + /// serial queue. + /// - startRequestsImmediately: Determines whether this instance will automatically start all `Request`s. `true` + /// by default. If set to `false`, all `Request`s created must have `.resume()` called. + /// on them for them to start. + /// - requestQueue: `DispatchQueue` on which to perform `URLRequest` creation. By default this queue + /// will use the `rootQueue` as its `target`. A separate queue can be used if it's + /// determined request creation is a bottleneck, but that should only be done after + /// careful testing and profiling. `nil` by default. + /// - serializationQueue: `DispatchQueue` on which to perform all response serialization. By default this + /// queue will use the `rootQueue` as its `target`. A separate queue can be used if + /// it's determined response serialization is a bottleneck, but that should only be + /// done after careful testing and profiling. `nil` by default. + /// - interceptor: `RequestInterceptor` to be used for all `Request`s created by this instance. `nil` + /// by default. + /// - serverTrustManager: `ServerTrustManager` to be used for all trust evaluations by this instance. `nil` + /// by default. + /// - redirectHandler: `RedirectHandler` to be used by all `Request`s created by this instance. `nil` by + /// default. + /// - cachedResponseHandler: `CachedResponseHandler` to be used by all `Request`s created by this instance. + /// `nil` by default. + /// - eventMonitors: Additional `EventMonitor`s used by the instance. Alamofire always adds a + /// `AlamofireNotifications` `EventMonitor` to the array passed here. `[]` by default. + public init(session: URLSession, + delegate: SessionDelegate, + rootQueue: DispatchQueue, + startRequestsImmediately: Bool = true, + requestQueue: DispatchQueue? = nil, + serializationQueue: DispatchQueue? = nil, + interceptor: RequestInterceptor? = nil, + serverTrustManager: ServerTrustManager? = nil, + redirectHandler: RedirectHandler? = nil, + cachedResponseHandler: CachedResponseHandler? = nil, + eventMonitors: [EventMonitor] = []) { + precondition(session.configuration.identifier == nil, + "Alamofire does not support background URLSessionConfigurations.") + precondition(session.delegateQueue.underlyingQueue === rootQueue, + "Session(session:) initializer must be passed the DispatchQueue used as the delegateQueue's underlyingQueue as rootQueue.") + + self.session = session + self.delegate = delegate + self.rootQueue = rootQueue + self.startRequestsImmediately = startRequestsImmediately + self.requestQueue = requestQueue ?? DispatchQueue(label: "\(rootQueue.label).requestQueue", target: rootQueue) + self.serializationQueue = serializationQueue ?? DispatchQueue(label: "\(rootQueue.label).serializationQueue", target: rootQueue) + self.interceptor = interceptor + self.serverTrustManager = serverTrustManager + self.redirectHandler = redirectHandler + self.cachedResponseHandler = cachedResponseHandler + eventMonitor = CompositeEventMonitor(monitors: defaultEventMonitors + eventMonitors) + delegate.eventMonitor = eventMonitor + delegate.stateProvider = self + } + + /// Creates a `Session` from a `URLSessionConfiguration`. + /// + /// - Note: This initializer lets Alamofire handle the creation of the underlying `URLSession` and its + /// `delegateQueue`, and is the recommended initializer for most uses. + /// + /// - Parameters: + /// - configuration: `URLSessionConfiguration` to be used to create the underlying `URLSession`. Changes + /// to this value after being passed to this initializer will have no effect. + /// `URLSessionConfiguration.af.default` by default. + /// - delegate: `SessionDelegate` that handles `session`'s delegate callbacks as well as `Request` + /// interaction. `SessionDelegate()` by default. + /// - rootQueue: Root `DispatchQueue` for all internal callbacks and state updates. **MUST** be a + /// serial queue. `DispatchQueue(label: "org.alamofire.session.rootQueue")` by default. + /// - startRequestsImmediately: Determines whether this instance will automatically start all `Request`s. `true` + /// by default. If set to `false`, all `Request`s created must have `.resume()` called. + /// on them for them to start. + /// - requestQueue: `DispatchQueue` on which to perform `URLRequest` creation. By default this queue + /// will use the `rootQueue` as its `target`. A separate queue can be used if it's + /// determined request creation is a bottleneck, but that should only be done after + /// careful testing and profiling. `nil` by default. + /// - serializationQueue: `DispatchQueue` on which to perform all response serialization. By default this + /// queue will use the `rootQueue` as its `target`. A separate queue can be used if + /// it's determined response serialization is a bottleneck, but that should only be + /// done after careful testing and profiling. `nil` by default. + /// - interceptor: `RequestInterceptor` to be used for all `Request`s created by this instance. `nil` + /// by default. + /// - serverTrustManager: `ServerTrustManager` to be used for all trust evaluations by this instance. `nil` + /// by default. + /// - redirectHandler: `RedirectHandler` to be used by all `Request`s created by this instance. `nil` by + /// default. + /// - cachedResponseHandler: `CachedResponseHandler` to be used by all `Request`s created by this instance. + /// `nil` by default. + /// - eventMonitors: Additional `EventMonitor`s used by the instance. Alamofire always adds a + /// `AlamofireNotifications` `EventMonitor` to the array passed here. `[]` by default. + public convenience init(configuration: URLSessionConfiguration = URLSessionConfiguration.af.default, + delegate: SessionDelegate = SessionDelegate(), + rootQueue: DispatchQueue = DispatchQueue(label: "org.alamofire.session.rootQueue"), + startRequestsImmediately: Bool = true, + requestQueue: DispatchQueue? = nil, + serializationQueue: DispatchQueue? = nil, + interceptor: RequestInterceptor? = nil, + serverTrustManager: ServerTrustManager? = nil, + redirectHandler: RedirectHandler? = nil, + cachedResponseHandler: CachedResponseHandler? = nil, + eventMonitors: [EventMonitor] = []) { + precondition(configuration.identifier == nil, "Alamofire does not support background URLSessionConfigurations.") + + // Retarget the incoming rootQueue for safety, unless it's the main queue, which we know is safe. + let serialRootQueue = (rootQueue === DispatchQueue.main) ? rootQueue : DispatchQueue(label: rootQueue.label, + target: rootQueue) + let delegateQueue = OperationQueue(maxConcurrentOperationCount: 1, underlyingQueue: serialRootQueue, name: "\(serialRootQueue.label).sessionDelegate") + let session = URLSession(configuration: configuration, delegate: delegate, delegateQueue: delegateQueue) + + self.init(session: session, + delegate: delegate, + rootQueue: serialRootQueue, + startRequestsImmediately: startRequestsImmediately, + requestQueue: requestQueue, + serializationQueue: serializationQueue, + interceptor: interceptor, + serverTrustManager: serverTrustManager, + redirectHandler: redirectHandler, + cachedResponseHandler: cachedResponseHandler, + eventMonitors: eventMonitors) + } + + deinit { + finishRequestsForDeinit() + session.invalidateAndCancel() + } + + // MARK: - All Requests API + + /// Perform an action on all active `Request`s. + /// + /// - Note: The provided `action` closure is performed asynchronously, meaning that some `Request`s may complete and + /// be unavailable by time it runs. Additionally, this action is performed on the instances's `rootQueue`, + /// so care should be taken that actions are fast. Once the work on the `Request`s is complete, any + /// additional work should be performed on another queue. + /// + /// - Parameters: + /// - action: Closure to perform with all `Request`s. + public func withAllRequests(perform action: @escaping (Set) -> Void) { + rootQueue.async { + action(self.activeRequests) + } + } + + /// Cancel all active `Request`s, optionally calling a completion handler when complete. + /// + /// - Note: This is an asynchronous operation and does not block the creation of future `Request`s. Cancelled + /// `Request`s may not cancel immediately due internal work, and may not cancel at all if they are close to + /// completion when cancelled. + /// + /// - Parameters: + /// - queue: `DispatchQueue` on which the completion handler is run. `.main` by default. + /// - completion: Closure to be called when all `Request`s have been cancelled. + public func cancelAllRequests(completingOnQueue queue: DispatchQueue = .main, completion: (() -> Void)? = nil) { + withAllRequests { requests in + requests.forEach { $0.cancel() } + queue.async { + completion?() + } + } + } + + // MARK: - DataRequest + + /// Closure which provides a `URLRequest` for mutation. + public typealias RequestModifier = (inout URLRequest) throws -> Void + + struct RequestConvertible: URLRequestConvertible { + let url: URLConvertible + let method: HTTPMethod + let parameters: Parameters? + let encoding: ParameterEncoding + let headers: HTTPHeaders? + let requestModifier: RequestModifier? + + func asURLRequest() throws -> URLRequest { + var request = try URLRequest(url: url, method: method, headers: headers) + try requestModifier?(&request) + + return try encoding.encode(request, with: parameters) + } + } + + /// Creates a `DataRequest` from a `URLRequest` created using the passed components and a `RequestInterceptor`. + /// + /// - Parameters: + /// - convertible: `URLConvertible` value to be used as the `URLRequest`'s `URL`. + /// - method: `HTTPMethod` for the `URLRequest`. `.get` by default. + /// - parameters: `Parameters` (a.k.a. `[String: Any]`) value to be encoded into the `URLRequest`. `nil` by + /// default. + /// - encoding: `ParameterEncoding` to be used to encode the `parameters` value into the `URLRequest`. + /// `URLEncoding.default` by default. + /// - headers: `HTTPHeaders` value to be added to the `URLRequest`. `nil` by default. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - requestModifier: `RequestModifier` which will be applied to the `URLRequest` created from the provided + /// parameters. `nil` by default. + /// + /// - Returns: The created `DataRequest`. + open func request(_ convertible: URLConvertible, + method: HTTPMethod = .get, + parameters: Parameters? = nil, + encoding: ParameterEncoding = URLEncoding.default, + headers: HTTPHeaders? = nil, + interceptor: RequestInterceptor? = nil, + requestModifier: RequestModifier? = nil) -> DataRequest { + let convertible = RequestConvertible(url: convertible, + method: method, + parameters: parameters, + encoding: encoding, + headers: headers, + requestModifier: requestModifier) + + return request(convertible, interceptor: interceptor) + } + + struct RequestEncodableConvertible: URLRequestConvertible { + let url: URLConvertible + let method: HTTPMethod + let parameters: Parameters? + let encoder: ParameterEncoder + let headers: HTTPHeaders? + let requestModifier: RequestModifier? + + func asURLRequest() throws -> URLRequest { + var request = try URLRequest(url: url, method: method, headers: headers) + try requestModifier?(&request) + + return try parameters.map { try encoder.encode($0, into: request) } ?? request + } + } + + /// Creates a `DataRequest` from a `URLRequest` created using the passed components, `Encodable` parameters, and a + /// `RequestInterceptor`. + /// + /// - Parameters: + /// - convertible: `URLConvertible` value to be used as the `URLRequest`'s `URL`. + /// - method: `HTTPMethod` for the `URLRequest`. `.get` by default. + /// - parameters: `Encodable` value to be encoded into the `URLRequest`. `nil` by default. + /// - encoder: `ParameterEncoder` to be used to encode the `parameters` value into the `URLRequest`. + /// `URLEncodedFormParameterEncoder.default` by default. + /// - headers: `HTTPHeaders` value to be added to the `URLRequest`. `nil` by default. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - requestModifier: `RequestModifier` which will be applied to the `URLRequest` created from + /// the provided parameters. `nil` by default. + /// + /// - Returns: The created `DataRequest`. + open func request(_ convertible: URLConvertible, + method: HTTPMethod = .get, + parameters: Parameters? = nil, + encoder: ParameterEncoder = URLEncodedFormParameterEncoder.default, + headers: HTTPHeaders? = nil, + interceptor: RequestInterceptor? = nil, + requestModifier: RequestModifier? = nil) -> DataRequest { + let convertible = RequestEncodableConvertible(url: convertible, + method: method, + parameters: parameters, + encoder: encoder, + headers: headers, + requestModifier: requestModifier) + + return request(convertible, interceptor: interceptor) + } + + /// Creates a `DataRequest` from a `URLRequestConvertible` value and a `RequestInterceptor`. + /// + /// - Parameters: + /// - convertible: `URLRequestConvertible` value to be used to create the `URLRequest`. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// + /// - Returns: The created `DataRequest`. + open func request(_ convertible: URLRequestConvertible, interceptor: RequestInterceptor? = nil) -> DataRequest { + let request = DataRequest(convertible: convertible, + underlyingQueue: rootQueue, + serializationQueue: serializationQueue, + eventMonitor: eventMonitor, + interceptor: interceptor, + delegate: self) + + perform(request) + + return request + } + + // MARK: - DataStreamRequest + + /// Creates a `DataStreamRequest` from the passed components, `Encodable` parameters, and `RequestInterceptor`. + /// + /// - Parameters: + /// - convertible: `URLConvertible` value to be used as the `URLRequest`'s `URL`. + /// - method: `HTTPMethod` for the `URLRequest`. `.get` by default. + /// - parameters: `Encodable` value to be encoded into the `URLRequest`. `nil` by default. + /// - encoder: `ParameterEncoder` to be used to encode the `parameters` value into the + /// `URLRequest`. + /// `URLEncodedFormParameterEncoder.default` by default. + /// - headers: `HTTPHeaders` value to be added to the `URLRequest`. `nil` by default. + /// - automaticallyCancelOnStreamError: `Bool` indicating whether the instance should be canceled when an `Error` + /// is thrown while serializing stream `Data`. `false` by default. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` + /// by default. + /// - requestModifier: `RequestModifier` which will be applied to the `URLRequest` created from + /// the provided parameters. `nil` by default. + /// + /// - Returns: The created `DataStream` request. + open func streamRequest(_ convertible: URLConvertible, + method: HTTPMethod = .get, + parameters: Parameters? = nil, + encoder: ParameterEncoder = URLEncodedFormParameterEncoder.default, + headers: HTTPHeaders? = nil, + automaticallyCancelOnStreamError: Bool = false, + interceptor: RequestInterceptor? = nil, + requestModifier: RequestModifier? = nil) -> DataStreamRequest { + let convertible = RequestEncodableConvertible(url: convertible, + method: method, + parameters: parameters, + encoder: encoder, + headers: headers, + requestModifier: requestModifier) + + return streamRequest(convertible, + automaticallyCancelOnStreamError: automaticallyCancelOnStreamError, + interceptor: interceptor) + } + + /// Creates a `DataStreamRequest` from the passed components and `RequestInterceptor`. + /// + /// - Parameters: + /// - convertible: `URLConvertible` value to be used as the `URLRequest`'s `URL`. + /// - method: `HTTPMethod` for the `URLRequest`. `.get` by default. + /// - headers: `HTTPHeaders` value to be added to the `URLRequest`. `nil` by default. + /// - automaticallyCancelOnStreamError: `Bool` indicating whether the instance should be canceled when an `Error` + /// is thrown while serializing stream `Data`. `false` by default. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` + /// by default. + /// - requestModifier: `RequestModifier` which will be applied to the `URLRequest` created from + /// the provided parameters. `nil` by default. + /// + /// - Returns: The created `DataStream` request. + open func streamRequest(_ convertible: URLConvertible, + method: HTTPMethod = .get, + headers: HTTPHeaders? = nil, + automaticallyCancelOnStreamError: Bool = false, + interceptor: RequestInterceptor? = nil, + requestModifier: RequestModifier? = nil) -> DataStreamRequest { + let convertible = RequestEncodableConvertible(url: convertible, + method: method, + parameters: Empty?.none, + encoder: URLEncodedFormParameterEncoder.default, + headers: headers, + requestModifier: requestModifier) + + return streamRequest(convertible, + automaticallyCancelOnStreamError: automaticallyCancelOnStreamError, + interceptor: interceptor) + } + + /// Creates a `DataStreamRequest` from the passed `URLRequestConvertible` value and `RequestInterceptor`. + /// + /// - Parameters: + /// - convertible: `URLRequestConvertible` value to be used to create the `URLRequest`. + /// - automaticallyCancelOnStreamError: `Bool` indicating whether the instance should be canceled when an `Error` + /// is thrown while serializing stream `Data`. `false` by default. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` + /// by default. + /// + /// - Returns: The created `DataStreamRequest`. + open func streamRequest(_ convertible: URLRequestConvertible, + automaticallyCancelOnStreamError: Bool = false, + interceptor: RequestInterceptor? = nil) -> DataStreamRequest { + let request = DataStreamRequest(convertible: convertible, + automaticallyCancelOnStreamError: automaticallyCancelOnStreamError, + underlyingQueue: rootQueue, + serializationQueue: serializationQueue, + eventMonitor: eventMonitor, + interceptor: interceptor, + delegate: self) + + perform(request) + + return request + } + + // MARK: - DownloadRequest + + /// Creates a `DownloadRequest` using a `URLRequest` created using the passed components, `RequestInterceptor`, and + /// `Destination`. + /// + /// - Parameters: + /// - convertible: `URLConvertible` value to be used as the `URLRequest`'s `URL`. + /// - method: `HTTPMethod` for the `URLRequest`. `.get` by default. + /// - parameters: `Parameters` (a.k.a. `[String: Any]`) value to be encoded into the `URLRequest`. `nil` by + /// default. + /// - encoding: `ParameterEncoding` to be used to encode the `parameters` value into the `URLRequest`. + /// Defaults to `URLEncoding.default`. + /// - headers: `HTTPHeaders` value to be added to the `URLRequest`. `nil` by default. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - requestModifier: `RequestModifier` which will be applied to the `URLRequest` created from the provided + /// parameters. `nil` by default. + /// - destination: `DownloadRequest.Destination` closure used to determine how and where the downloaded file + /// should be moved. `nil` by default. + /// + /// - Returns: The created `DownloadRequest`. + open func download(_ convertible: URLConvertible, + method: HTTPMethod = .get, + parameters: Parameters? = nil, + encoding: ParameterEncoding = URLEncoding.default, + headers: HTTPHeaders? = nil, + interceptor: RequestInterceptor? = nil, + requestModifier: RequestModifier? = nil, + to destination: DownloadRequest.Destination? = nil) -> DownloadRequest { + let convertible = RequestConvertible(url: convertible, + method: method, + parameters: parameters, + encoding: encoding, + headers: headers, + requestModifier: requestModifier) + + return download(convertible, interceptor: interceptor, to: destination) + } + + /// Creates a `DownloadRequest` from a `URLRequest` created using the passed components, `Encodable` parameters, and + /// a `RequestInterceptor`. + /// + /// - Parameters: + /// - convertible: `URLConvertible` value to be used as the `URLRequest`'s `URL`. + /// - method: `HTTPMethod` for the `URLRequest`. `.get` by default. + /// - parameters: Value conforming to `Encodable` to be encoded into the `URLRequest`. `nil` by default. + /// - encoder: `ParameterEncoder` to be used to encode the `parameters` value into the `URLRequest`. + /// Defaults to `URLEncodedFormParameterEncoder.default`. + /// - headers: `HTTPHeaders` value to be added to the `URLRequest`. `nil` by default. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - requestModifier: `RequestModifier` which will be applied to the `URLRequest` created from the provided + /// parameters. `nil` by default. + /// - destination: `DownloadRequest.Destination` closure used to determine how and where the downloaded file + /// should be moved. `nil` by default. + /// + /// - Returns: The created `DownloadRequest`. + open func download(_ convertible: URLConvertible, + method: HTTPMethod = .get, + parameters: Parameters? = nil, + encoder: ParameterEncoder = URLEncodedFormParameterEncoder.default, + headers: HTTPHeaders? = nil, + interceptor: RequestInterceptor? = nil, + requestModifier: RequestModifier? = nil, + to destination: DownloadRequest.Destination? = nil) -> DownloadRequest { + let convertible = RequestEncodableConvertible(url: convertible, + method: method, + parameters: parameters, + encoder: encoder, + headers: headers, + requestModifier: requestModifier) + + return download(convertible, interceptor: interceptor, to: destination) + } + + /// Creates a `DownloadRequest` from a `URLRequestConvertible` value, a `RequestInterceptor`, and a `Destination`. + /// + /// - Parameters: + /// - convertible: `URLRequestConvertible` value to be used to create the `URLRequest`. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - destination: `DownloadRequest.Destination` closure used to determine how and where the downloaded file + /// should be moved. `nil` by default. + /// + /// - Returns: The created `DownloadRequest`. + open func download(_ convertible: URLRequestConvertible, + interceptor: RequestInterceptor? = nil, + to destination: DownloadRequest.Destination? = nil) -> DownloadRequest { + let request = DownloadRequest(downloadable: .request(convertible), + underlyingQueue: rootQueue, + serializationQueue: serializationQueue, + eventMonitor: eventMonitor, + interceptor: interceptor, + delegate: self, + destination: destination ?? DownloadRequest.defaultDestination) + + perform(request) + + return request + } + + /// Creates a `DownloadRequest` from the `resumeData` produced from a previously cancelled `DownloadRequest`, as + /// well as a `RequestInterceptor`, and a `Destination`. + /// + /// - Note: If `destination` is not specified, the download will be moved to a temporary location determined by + /// Alamofire. The file will not be deleted until the system purges the temporary files. + /// + /// - Note: On some versions of all Apple platforms (iOS 10 - 10.2, macOS 10.12 - 10.12.2, tvOS 10 - 10.1, watchOS 3 - 3.1.1), + /// `resumeData` is broken on background URL session configurations. There's an underlying bug in the `resumeData` + /// generation logic where the data is written incorrectly and will always fail to resume the download. For more + /// information about the bug and possible workarounds, please refer to the [this Stack Overflow post](http://stackoverflow.com/a/39347461/1342462). + /// + /// - Parameters: + /// - data: The resume data from a previously cancelled `DownloadRequest` or `URLSessionDownloadTask`. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - destination: `DownloadRequest.Destination` closure used to determine how and where the downloaded file + /// should be moved. `nil` by default. + /// + /// - Returns: The created `DownloadRequest`. + open func download(resumingWith data: Data, + interceptor: RequestInterceptor? = nil, + to destination: DownloadRequest.Destination? = nil) -> DownloadRequest { + let request = DownloadRequest(downloadable: .resumeData(data), + underlyingQueue: rootQueue, + serializationQueue: serializationQueue, + eventMonitor: eventMonitor, + interceptor: interceptor, + delegate: self, + destination: destination ?? DownloadRequest.defaultDestination) + + perform(request) + + return request + } + + // MARK: - UploadRequest + + struct ParameterlessRequestConvertible: URLRequestConvertible { + let url: URLConvertible + let method: HTTPMethod + let headers: HTTPHeaders? + let requestModifier: RequestModifier? + + func asURLRequest() throws -> URLRequest { + var request = try URLRequest(url: url, method: method, headers: headers) + try requestModifier?(&request) + + return request + } + } + + struct Upload: UploadConvertible { + let request: URLRequestConvertible + let uploadable: UploadableConvertible + + func createUploadable() throws -> UploadRequest.Uploadable { + try uploadable.createUploadable() + } + + func asURLRequest() throws -> URLRequest { + try request.asURLRequest() + } + } + + // MARK: Data + + /// Creates an `UploadRequest` for the given `Data`, `URLRequest` components, and `RequestInterceptor`. + /// + /// - Parameters: + /// - data: The `Data` to upload. + /// - convertible: `URLConvertible` value to be used as the `URLRequest`'s `URL`. + /// - method: `HTTPMethod` for the `URLRequest`. `.post` by default. + /// - headers: `HTTPHeaders` value to be added to the `URLRequest`. `nil` by default. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - fileManager: `FileManager` instance to be used by the returned `UploadRequest`. `.default` instance by + /// default. + /// - requestModifier: `RequestModifier` which will be applied to the `URLRequest` created from the provided + /// parameters. `nil` by default. + /// + /// - Returns: The created `UploadRequest`. + open func upload(_ data: Data, + to convertible: URLConvertible, + method: HTTPMethod = .post, + headers: HTTPHeaders? = nil, + interceptor: RequestInterceptor? = nil, + fileManager: FileManager = .default, + requestModifier: RequestModifier? = nil) -> UploadRequest { + let convertible = ParameterlessRequestConvertible(url: convertible, + method: method, + headers: headers, + requestModifier: requestModifier) + + return upload(data, with: convertible, interceptor: interceptor, fileManager: fileManager) + } + + /// Creates an `UploadRequest` for the given `Data` using the `URLRequestConvertible` value and `RequestInterceptor`. + /// + /// - Parameters: + /// - data: The `Data` to upload. + /// - convertible: `URLRequestConvertible` value to be used to create the `URLRequest`. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - fileManager: `FileManager` instance to be used by the returned `UploadRequest`. `.default` instance by + /// default. + /// + /// - Returns: The created `UploadRequest`. + open func upload(_ data: Data, + with convertible: URLRequestConvertible, + interceptor: RequestInterceptor? = nil, + fileManager: FileManager = .default) -> UploadRequest { + upload(.data(data), with: convertible, interceptor: interceptor, fileManager: fileManager) + } + + // MARK: File + + /// Creates an `UploadRequest` for the file at the given file `URL`, using a `URLRequest` from the provided + /// components and `RequestInterceptor`. + /// + /// - Parameters: + /// - fileURL: The `URL` of the file to upload. + /// - convertible: `URLConvertible` value to be used as the `URLRequest`'s `URL`. + /// - method: `HTTPMethod` for the `URLRequest`. `.post` by default. + /// - headers: `HTTPHeaders` value to be added to the `URLRequest`. `nil` by default. + /// - interceptor: `RequestInterceptor` value to be used by the returned `UploadRequest`. `nil` by default. + /// - fileManager: `FileManager` instance to be used by the returned `UploadRequest`. `.default` instance by + /// default. + /// - requestModifier: `RequestModifier` which will be applied to the `URLRequest` created from the provided + /// parameters. `nil` by default. + /// + /// - Returns: The created `UploadRequest`. + open func upload(_ fileURL: URL, + to convertible: URLConvertible, + method: HTTPMethod = .post, + headers: HTTPHeaders? = nil, + interceptor: RequestInterceptor? = nil, + fileManager: FileManager = .default, + requestModifier: RequestModifier? = nil) -> UploadRequest { + let convertible = ParameterlessRequestConvertible(url: convertible, + method: method, + headers: headers, + requestModifier: requestModifier) + + return upload(fileURL, with: convertible, interceptor: interceptor, fileManager: fileManager) + } + + /// Creates an `UploadRequest` for the file at the given file `URL` using the `URLRequestConvertible` value and + /// `RequestInterceptor`. + /// + /// - Parameters: + /// - fileURL: The `URL` of the file to upload. + /// - convertible: `URLRequestConvertible` value to be used to create the `URLRequest`. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - fileManager: `FileManager` instance to be used by the returned `UploadRequest`. `.default` instance by + /// default. + /// + /// - Returns: The created `UploadRequest`. + open func upload(_ fileURL: URL, + with convertible: URLRequestConvertible, + interceptor: RequestInterceptor? = nil, + fileManager: FileManager = .default) -> UploadRequest { + upload(.file(fileURL, shouldRemove: false), with: convertible, interceptor: interceptor, fileManager: fileManager) + } + + // MARK: InputStream + + /// Creates an `UploadRequest` from the `InputStream` provided using a `URLRequest` from the provided components and + /// `RequestInterceptor`. + /// + /// - Parameters: + /// - stream: The `InputStream` that provides the data to upload. + /// - convertible: `URLConvertible` value to be used as the `URLRequest`'s `URL`. + /// - method: `HTTPMethod` for the `URLRequest`. `.post` by default. + /// - headers: `HTTPHeaders` value to be added to the `URLRequest`. `nil` by default. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - fileManager: `FileManager` instance to be used by the returned `UploadRequest`. `.default` instance by + /// default. + /// - requestModifier: `RequestModifier` which will be applied to the `URLRequest` created from the provided + /// parameters. `nil` by default. + /// + /// - Returns: The created `UploadRequest`. + open func upload(_ stream: InputStream, + to convertible: URLConvertible, + method: HTTPMethod = .post, + headers: HTTPHeaders? = nil, + interceptor: RequestInterceptor? = nil, + fileManager: FileManager = .default, + requestModifier: RequestModifier? = nil) -> UploadRequest { + let convertible = ParameterlessRequestConvertible(url: convertible, + method: method, + headers: headers, + requestModifier: requestModifier) + + return upload(stream, with: convertible, interceptor: interceptor, fileManager: fileManager) + } + + /// Creates an `UploadRequest` from the provided `InputStream` using the `URLRequestConvertible` value and + /// `RequestInterceptor`. + /// + /// - Parameters: + /// - stream: The `InputStream` that provides the data to upload. + /// - convertible: `URLRequestConvertible` value to be used to create the `URLRequest`. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - fileManager: `FileManager` instance to be used by the returned `UploadRequest`. `.default` instance by + /// default. + /// + /// - Returns: The created `UploadRequest`. + open func upload(_ stream: InputStream, + with convertible: URLRequestConvertible, + interceptor: RequestInterceptor? = nil, + fileManager: FileManager = .default) -> UploadRequest { + upload(.stream(stream), with: convertible, interceptor: interceptor, fileManager: fileManager) + } + + // MARK: MultipartFormData + + /// Creates an `UploadRequest` for the multipart form data built using a closure and sent using the provided + /// `URLRequest` components and `RequestInterceptor`. + /// + /// It is important to understand the memory implications of uploading `MultipartFormData`. If the cumulative + /// payload is small, encoding the data in-memory and directly uploading to a server is the by far the most + /// efficient approach. However, if the payload is too large, encoding the data in-memory could cause your app to + /// be terminated. Larger payloads must first be written to disk using input and output streams to keep the memory + /// footprint low, then the data can be uploaded as a stream from the resulting file. Streaming from disk MUST be + /// used for larger payloads such as video content. + /// + /// The `encodingMemoryThreshold` parameter allows Alamofire to automatically determine whether to encode in-memory + /// or stream from disk. If the content length of the `MultipartFormData` is below the `encodingMemoryThreshold`, + /// encoding takes place in-memory. If the content length exceeds the threshold, the data is streamed to disk + /// during the encoding process. Then the result is uploaded as data or as a stream depending on which encoding + /// technique was used. + /// + /// - Parameters: + /// - multipartFormData: `MultipartFormData` building closure. + /// - url: `URLConvertible` value to be used as the `URLRequest`'s `URL`. + /// - encodingMemoryThreshold: Byte threshold used to determine whether the form data is encoded into memory or + /// onto disk before being uploaded. `MultipartFormData.encodingMemoryThreshold` by + /// default. + /// - method: `HTTPMethod` for the `URLRequest`. `.post` by default. + /// - headers: `HTTPHeaders` value to be added to the `URLRequest`. `nil` by default. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - fileManager: `FileManager` to be used if the form data exceeds the memory threshold and is + /// written to disk before being uploaded. `.default` instance by default. + /// - requestModifier: `RequestModifier` which will be applied to the `URLRequest` created from the + /// provided parameters. `nil` by default. + /// + /// - Returns: The created `UploadRequest`. + open func upload(multipartFormData: @escaping (MultipartFormData) -> Void, + to url: URLConvertible, + usingThreshold encodingMemoryThreshold: UInt64 = MultipartFormData.encodingMemoryThreshold, + method: HTTPMethod = .post, + headers: HTTPHeaders? = nil, + interceptor: RequestInterceptor? = nil, + fileManager: FileManager = .default, + requestModifier: RequestModifier? = nil) -> UploadRequest { + let convertible = ParameterlessRequestConvertible(url: url, + method: method, + headers: headers, + requestModifier: requestModifier) + + let formData = MultipartFormData(fileManager: fileManager) + multipartFormData(formData) + + return upload(multipartFormData: formData, + with: convertible, + usingThreshold: encodingMemoryThreshold, + interceptor: interceptor, + fileManager: fileManager) + } + + /// Creates an `UploadRequest` using a `MultipartFormData` building closure, the provided `URLRequestConvertible` + /// value, and a `RequestInterceptor`. + /// + /// It is important to understand the memory implications of uploading `MultipartFormData`. If the cumulative + /// payload is small, encoding the data in-memory and directly uploading to a server is the by far the most + /// efficient approach. However, if the payload is too large, encoding the data in-memory could cause your app to + /// be terminated. Larger payloads must first be written to disk using input and output streams to keep the memory + /// footprint low, then the data can be uploaded as a stream from the resulting file. Streaming from disk MUST be + /// used for larger payloads such as video content. + /// + /// The `encodingMemoryThreshold` parameter allows Alamofire to automatically determine whether to encode in-memory + /// or stream from disk. If the content length of the `MultipartFormData` is below the `encodingMemoryThreshold`, + /// encoding takes place in-memory. If the content length exceeds the threshold, the data is streamed to disk + /// during the encoding process. Then the result is uploaded as data or as a stream depending on which encoding + /// technique was used. + /// + /// - Parameters: + /// - multipartFormData: `MultipartFormData` building closure. + /// - request: `URLRequestConvertible` value to be used to create the `URLRequest`. + /// - encodingMemoryThreshold: Byte threshold used to determine whether the form data is encoded into memory or + /// onto disk before being uploaded. `MultipartFormData.encodingMemoryThreshold` by + /// default. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - fileManager: `FileManager` to be used if the form data exceeds the memory threshold and is + /// written to disk before being uploaded. `.default` instance by default. + /// + /// - Returns: The created `UploadRequest`. + open func upload(multipartFormData: @escaping (MultipartFormData) -> Void, + with request: URLRequestConvertible, + usingThreshold encodingMemoryThreshold: UInt64 = MultipartFormData.encodingMemoryThreshold, + interceptor: RequestInterceptor? = nil, + fileManager: FileManager = .default) -> UploadRequest { + let formData = MultipartFormData(fileManager: fileManager) + multipartFormData(formData) + + return upload(multipartFormData: formData, + with: request, + usingThreshold: encodingMemoryThreshold, + interceptor: interceptor, + fileManager: fileManager) + } + + /// Creates an `UploadRequest` for the prebuilt `MultipartFormData` value using the provided `URLRequest` components + /// and `RequestInterceptor`. + /// + /// It is important to understand the memory implications of uploading `MultipartFormData`. If the cumulative + /// payload is small, encoding the data in-memory and directly uploading to a server is the by far the most + /// efficient approach. However, if the payload is too large, encoding the data in-memory could cause your app to + /// be terminated. Larger payloads must first be written to disk using input and output streams to keep the memory + /// footprint low, then the data can be uploaded as a stream from the resulting file. Streaming from disk MUST be + /// used for larger payloads such as video content. + /// + /// The `encodingMemoryThreshold` parameter allows Alamofire to automatically determine whether to encode in-memory + /// or stream from disk. If the content length of the `MultipartFormData` is below the `encodingMemoryThreshold`, + /// encoding takes place in-memory. If the content length exceeds the threshold, the data is streamed to disk + /// during the encoding process. Then the result is uploaded as data or as a stream depending on which encoding + /// technique was used. + /// + /// - Parameters: + /// - multipartFormData: `MultipartFormData` instance to upload. + /// - url: `URLConvertible` value to be used as the `URLRequest`'s `URL`. + /// - encodingMemoryThreshold: Byte threshold used to determine whether the form data is encoded into memory or + /// onto disk before being uploaded. `MultipartFormData.encodingMemoryThreshold` by + /// default. + /// - method: `HTTPMethod` for the `URLRequest`. `.post` by default. + /// - headers: `HTTPHeaders` value to be added to the `URLRequest`. `nil` by default. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - fileManager: `FileManager` to be used if the form data exceeds the memory threshold and is + /// written to disk before being uploaded. `.default` instance by default. + /// - requestModifier: `RequestModifier` which will be applied to the `URLRequest` created from the + /// provided parameters. `nil` by default. + /// + /// - Returns: The created `UploadRequest`. + open func upload(multipartFormData: MultipartFormData, + to url: URLConvertible, + usingThreshold encodingMemoryThreshold: UInt64 = MultipartFormData.encodingMemoryThreshold, + method: HTTPMethod = .post, + headers: HTTPHeaders? = nil, + interceptor: RequestInterceptor? = nil, + fileManager: FileManager = .default, + requestModifier: RequestModifier? = nil) -> UploadRequest { + let convertible = ParameterlessRequestConvertible(url: url, + method: method, + headers: headers, + requestModifier: requestModifier) + + let multipartUpload = MultipartUpload(encodingMemoryThreshold: encodingMemoryThreshold, + request: convertible, + multipartFormData: multipartFormData) + + return upload(multipartUpload, interceptor: interceptor, fileManager: fileManager) + } + + /// Creates an `UploadRequest` for the prebuilt `MultipartFormData` value using the providing `URLRequestConvertible` + /// value and `RequestInterceptor`. + /// + /// It is important to understand the memory implications of uploading `MultipartFormData`. If the cumulative + /// payload is small, encoding the data in-memory and directly uploading to a server is the by far the most + /// efficient approach. However, if the payload is too large, encoding the data in-memory could cause your app to + /// be terminated. Larger payloads must first be written to disk using input and output streams to keep the memory + /// footprint low, then the data can be uploaded as a stream from the resulting file. Streaming from disk MUST be + /// used for larger payloads such as video content. + /// + /// The `encodingMemoryThreshold` parameter allows Alamofire to automatically determine whether to encode in-memory + /// or stream from disk. If the content length of the `MultipartFormData` is below the `encodingMemoryThreshold`, + /// encoding takes place in-memory. If the content length exceeds the threshold, the data is streamed to disk + /// during the encoding process. Then the result is uploaded as data or as a stream depending on which encoding + /// technique was used. + /// + /// - Parameters: + /// - multipartFormData: `MultipartFormData` instance to upload. + /// - request: `URLRequestConvertible` value to be used to create the `URLRequest`. + /// - encodingMemoryThreshold: Byte threshold used to determine whether the form data is encoded into memory or + /// onto disk before being uploaded. `MultipartFormData.encodingMemoryThreshold` by + /// default. + /// - interceptor: `RequestInterceptor` value to be used by the returned `DataRequest`. `nil` by default. + /// - fileManager: `FileManager` instance to be used by the returned `UploadRequest`. `.default` instance by + /// default. + /// + /// - Returns: The created `UploadRequest`. + open func upload(multipartFormData: MultipartFormData, + with request: URLRequestConvertible, + usingThreshold encodingMemoryThreshold: UInt64 = MultipartFormData.encodingMemoryThreshold, + interceptor: RequestInterceptor? = nil, + fileManager: FileManager = .default) -> UploadRequest { + let multipartUpload = MultipartUpload(encodingMemoryThreshold: encodingMemoryThreshold, + request: request, + multipartFormData: multipartFormData) + + return upload(multipartUpload, interceptor: interceptor, fileManager: fileManager) + } + + // MARK: - Internal API + + // MARK: Uploadable + + func upload(_ uploadable: UploadRequest.Uploadable, + with convertible: URLRequestConvertible, + interceptor: RequestInterceptor?, + fileManager: FileManager) -> UploadRequest { + let uploadable = Upload(request: convertible, uploadable: uploadable) + + return upload(uploadable, interceptor: interceptor, fileManager: fileManager) + } + + func upload(_ upload: UploadConvertible, interceptor: RequestInterceptor?, fileManager: FileManager) -> UploadRequest { + let request = UploadRequest(convertible: upload, + underlyingQueue: rootQueue, + serializationQueue: serializationQueue, + eventMonitor: eventMonitor, + interceptor: interceptor, + fileManager: fileManager, + delegate: self) + + perform(request) + + return request + } + + // MARK: Perform + + /// Starts performing the provided `Request`. + /// + /// - Parameter request: The `Request` to perform. + func perform(_ request: Request) { + rootQueue.async { + guard !request.isCancelled else { return } + + self.activeRequests.insert(request) + + self.requestQueue.async { + // Leaf types must come first, otherwise they will cast as their superclass. + switch request { + case let r as UploadRequest: self.performUploadRequest(r) // UploadRequest must come before DataRequest due to subtype relationship. + case let r as DataRequest: self.performDataRequest(r) + case let r as DownloadRequest: self.performDownloadRequest(r) + case let r as DataStreamRequest: self.performDataStreamRequest(r) + default: fatalError("Attempted to perform unsupported Request subclass: \(type(of: request))") + } + } + } + } + + func performDataRequest(_ request: DataRequest) { + dispatchPrecondition(condition: .onQueue(requestQueue)) + + performSetupOperations(for: request, convertible: request.convertible) + } + + func performDataStreamRequest(_ request: DataStreamRequest) { + dispatchPrecondition(condition: .onQueue(requestQueue)) + + performSetupOperations(for: request, convertible: request.convertible) + } + + func performUploadRequest(_ request: UploadRequest) { + dispatchPrecondition(condition: .onQueue(requestQueue)) + + performSetupOperations(for: request, convertible: request.convertible) { + do { + let uploadable = try request.upload.createUploadable() + self.rootQueue.async { request.didCreateUploadable(uploadable) } + return true + } catch { + self.rootQueue.async { request.didFailToCreateUploadable(with: error.asAFError(or: .createUploadableFailed(error: error))) } + return false + } + } + } + + func performDownloadRequest(_ request: DownloadRequest) { + dispatchPrecondition(condition: .onQueue(requestQueue)) + + switch request.downloadable { + case let .request(convertible): + performSetupOperations(for: request, convertible: convertible) + case let .resumeData(resumeData): + rootQueue.async { self.didReceiveResumeData(resumeData, for: request) } + } + } + + func performSetupOperations(for request: Request, + convertible: URLRequestConvertible, + shouldCreateTask: @escaping () -> Bool = { true }) { + dispatchPrecondition(condition: .onQueue(requestQueue)) + + let initialRequest: URLRequest + + do { + initialRequest = try convertible.asURLRequest() + try initialRequest.validate() + } catch { + rootQueue.async { request.didFailToCreateURLRequest(with: error.asAFError(or: .createURLRequestFailed(error: error))) } + return + } + + rootQueue.async { request.didCreateInitialURLRequest(initialRequest) } + + guard !request.isCancelled else { return } + + guard let adapter = adapter(for: request) else { + guard shouldCreateTask() else { return } + rootQueue.async { self.didCreateURLRequest(initialRequest, for: request) } + return + } + + let adapterState = RequestAdapterState(requestID: request.id, session: self) + + adapter.adapt(initialRequest, using: adapterState) { result in + do { + let adaptedRequest = try result.get() + try adaptedRequest.validate() + + self.rootQueue.async { request.didAdaptInitialRequest(initialRequest, to: adaptedRequest) } + + guard shouldCreateTask() else { return } + + self.rootQueue.async { self.didCreateURLRequest(adaptedRequest, for: request) } + } catch { + self.rootQueue.async { request.didFailToAdaptURLRequest(initialRequest, withError: .requestAdaptationFailed(error: error)) } + } + } + } + + // MARK: - Task Handling + + func didCreateURLRequest(_ urlRequest: URLRequest, for request: Request) { + dispatchPrecondition(condition: .onQueue(rootQueue)) + + request.didCreateURLRequest(urlRequest) + + guard !request.isCancelled else { return } + + let task = request.task(for: urlRequest, using: session) + requestTaskMap[request] = task + request.didCreateTask(task) + + updateStatesForTask(task, request: request) + } + + func didReceiveResumeData(_ data: Data, for request: DownloadRequest) { + dispatchPrecondition(condition: .onQueue(rootQueue)) + + guard !request.isCancelled else { return } + + let task = request.task(forResumeData: data, using: session) + requestTaskMap[request] = task + request.didCreateTask(task) + + updateStatesForTask(task, request: request) + } + + func updateStatesForTask(_ task: URLSessionTask, request: Request) { + dispatchPrecondition(condition: .onQueue(rootQueue)) + + request.withState { state in + switch state { + case .initialized, .finished: + // Do nothing. + break + case .resumed: + task.resume() + rootQueue.async { request.didResumeTask(task) } + case .suspended: + task.suspend() + rootQueue.async { request.didSuspendTask(task) } + case .cancelled: + // Resume to ensure metrics are gathered. + task.resume() + task.cancel() + rootQueue.async { request.didCancelTask(task) } + } + } + } + + // MARK: - Adapters and Retriers + + func adapter(for request: Request) -> RequestAdapter? { + if let requestInterceptor = request.interceptor, let sessionInterceptor = interceptor { + return Interceptor(adapters: [requestInterceptor, sessionInterceptor]) + } else { + return request.interceptor ?? interceptor + } + } + + func retrier(for request: Request) -> RequestRetrier? { + if let requestInterceptor = request.interceptor, let sessionInterceptor = interceptor { + return Interceptor(retriers: [requestInterceptor, sessionInterceptor]) + } else { + return request.interceptor ?? interceptor + } + } + + // MARK: - Invalidation + + func finishRequestsForDeinit() { + requestTaskMap.requests.forEach { request in + rootQueue.async { + request.finish(error: AFError.sessionDeinitialized) + } + } + } +} + +// MARK: - RequestDelegate + +extension Session: RequestDelegate { + public var sessionConfiguration: URLSessionConfiguration { + session.configuration + } + + public var startImmediately: Bool { startRequestsImmediately } + + public func cleanup(after request: Request) { + activeRequests.remove(request) + } + + public func retryResult(for request: Request, dueTo error: AFError, completion: @escaping (RetryResult) -> Void) { + guard let retrier = retrier(for: request) else { + rootQueue.async { completion(.doNotRetry) } + return + } + + retrier.retry(request, for: self, dueTo: error) { retryResult in + self.rootQueue.async { + guard let retryResultError = retryResult.error else { completion(retryResult); return } + + let retryError = AFError.requestRetryFailed(retryError: retryResultError, originalError: error) + completion(.doNotRetryWithError(retryError)) + } + } + } + + public func retryRequest(_ request: Request, withDelay timeDelay: TimeInterval?) { + rootQueue.async { + let retry: () -> Void = { + guard !request.isCancelled else { return } + + request.prepareForRetry() + self.perform(request) + } + + if let retryDelay = timeDelay { + self.rootQueue.after(retryDelay) { retry() } + } else { + retry() + } + } + } +} + +// MARK: - SessionStateProvider + +extension Session: SessionStateProvider { + func request(for task: URLSessionTask) -> Request? { + dispatchPrecondition(condition: .onQueue(rootQueue)) + + return requestTaskMap[task] + } + + func didGatherMetricsForTask(_ task: URLSessionTask) { + dispatchPrecondition(condition: .onQueue(rootQueue)) + + let didDisassociate = requestTaskMap.disassociateIfNecessaryAfterGatheringMetricsForTask(task) + + if didDisassociate { + waitingCompletions[task]?() + waitingCompletions[task] = nil + } + } + + func didCompleteTask(_ task: URLSessionTask, completion: @escaping () -> Void) { + dispatchPrecondition(condition: .onQueue(rootQueue)) + + let didDisassociate = requestTaskMap.disassociateIfNecessaryAfterCompletingTask(task) + + if didDisassociate { + completion() + } else { + waitingCompletions[task] = completion + } + } + + func credential(for task: URLSessionTask, in protectionSpace: URLProtectionSpace) -> URLCredential? { + dispatchPrecondition(condition: .onQueue(rootQueue)) + + return requestTaskMap[task]?.credential ?? + session.configuration.urlCredentialStorage?.defaultCredential(for: protectionSpace) + } + + func cancelRequestsForSessionInvalidation(with error: Error?) { + dispatchPrecondition(condition: .onQueue(rootQueue)) + + requestTaskMap.requests.forEach { $0.finish(error: AFError.sessionInvalidated(error: error)) } + } +} diff --git a/Pods/Alamofire/Source/SessionDelegate.swift b/Pods/Alamofire/Source/SessionDelegate.swift new file mode 100644 index 0000000..af45b27 --- /dev/null +++ b/Pods/Alamofire/Source/SessionDelegate.swift @@ -0,0 +1,355 @@ +// +// SessionDelegate.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// Class which implements the various `URLSessionDelegate` methods to connect various Alamofire features. +open class SessionDelegate: NSObject { + private let fileManager: FileManager + + weak var stateProvider: SessionStateProvider? + var eventMonitor: EventMonitor? + + /// Creates an instance from the given `FileManager`. + /// + /// - Parameter fileManager: `FileManager` to use for underlying file management, such as moving downloaded files. + /// `.default` by default. + public init(fileManager: FileManager = .default) { + self.fileManager = fileManager + } + + /// Internal method to find and cast requests while maintaining some integrity checking. + /// + /// - Parameters: + /// - task: The `URLSessionTask` for which to find the associated `Request`. + /// - type: The `Request` subclass type to cast any `Request` associate with `task`. + func request(for task: URLSessionTask, as type: R.Type) -> R? { + guard let provider = stateProvider else { + assertionFailure("StateProvider is nil.") + return nil + } + + return provider.request(for: task) as? R + } +} + +/// Type which provides various `Session` state values. +protocol SessionStateProvider: AnyObject { + var serverTrustManager: ServerTrustManager? { get } + var redirectHandler: RedirectHandler? { get } + var cachedResponseHandler: CachedResponseHandler? { get } + + func request(for task: URLSessionTask) -> Request? + func didGatherMetricsForTask(_ task: URLSessionTask) + func didCompleteTask(_ task: URLSessionTask, completion: @escaping () -> Void) + func credential(for task: URLSessionTask, in protectionSpace: URLProtectionSpace) -> URLCredential? + func cancelRequestsForSessionInvalidation(with error: Error?) +} + +// MARK: URLSessionDelegate + +extension SessionDelegate: URLSessionDelegate { + open func urlSession(_ session: URLSession, didBecomeInvalidWithError error: Error?) { + eventMonitor?.urlSession(session, didBecomeInvalidWithError: error) + + stateProvider?.cancelRequestsForSessionInvalidation(with: error) + } +} + +// MARK: URLSessionTaskDelegate + +extension SessionDelegate: URLSessionTaskDelegate { + /// Result of a `URLAuthenticationChallenge` evaluation. + typealias ChallengeEvaluation = (disposition: URLSession.AuthChallengeDisposition, credential: URLCredential?, error: AFError?) + + open func urlSession(_ session: URLSession, + task: URLSessionTask, + didReceive challenge: URLAuthenticationChallenge, + completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) { + eventMonitor?.urlSession(session, task: task, didReceive: challenge) + + let evaluation: ChallengeEvaluation + switch challenge.protectionSpace.authenticationMethod { + case NSURLAuthenticationMethodHTTPBasic, NSURLAuthenticationMethodHTTPDigest, NSURLAuthenticationMethodNTLM, + NSURLAuthenticationMethodNegotiate: + evaluation = attemptCredentialAuthentication(for: challenge, belongingTo: task) + #if canImport(Security) + case NSURLAuthenticationMethodServerTrust: + evaluation = attemptServerTrustAuthentication(with: challenge) + case NSURLAuthenticationMethodClientCertificate: + evaluation = attemptCredentialAuthentication(for: challenge, belongingTo: task) + #endif + default: + evaluation = (.performDefaultHandling, nil, nil) + } + + if let error = evaluation.error { + stateProvider?.request(for: task)?.didFailTask(task, earlyWithError: error) + } + + completionHandler(evaluation.disposition, evaluation.credential) + } + + #if canImport(Security) + /// Evaluates the server trust `URLAuthenticationChallenge` received. + /// + /// - Parameter challenge: The `URLAuthenticationChallenge`. + /// + /// - Returns: The `ChallengeEvaluation`. + func attemptServerTrustAuthentication(with challenge: URLAuthenticationChallenge) -> ChallengeEvaluation { + let host = challenge.protectionSpace.host + + guard challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust, + let trust = challenge.protectionSpace.serverTrust + else { + return (.performDefaultHandling, nil, nil) + } + + do { + guard let evaluator = try stateProvider?.serverTrustManager?.serverTrustEvaluator(forHost: host) else { + return (.performDefaultHandling, nil, nil) + } + + try evaluator.evaluate(trust, forHost: host) + + return (.useCredential, URLCredential(trust: trust), nil) + } catch { + return (.cancelAuthenticationChallenge, nil, error.asAFError(or: .serverTrustEvaluationFailed(reason: .customEvaluationFailed(error: error)))) + } + } + #endif + + /// Evaluates the credential-based authentication `URLAuthenticationChallenge` received for `task`. + /// + /// - Parameters: + /// - challenge: The `URLAuthenticationChallenge`. + /// - task: The `URLSessionTask` which received the challenge. + /// + /// - Returns: The `ChallengeEvaluation`. + func attemptCredentialAuthentication(for challenge: URLAuthenticationChallenge, + belongingTo task: URLSessionTask) -> ChallengeEvaluation { + guard challenge.previousFailureCount == 0 else { + return (.rejectProtectionSpace, nil, nil) + } + + guard let credential = stateProvider?.credential(for: task, in: challenge.protectionSpace) else { + return (.performDefaultHandling, nil, nil) + } + + return (.useCredential, credential, nil) + } + + open func urlSession(_ session: URLSession, + task: URLSessionTask, + didSendBodyData bytesSent: Int64, + totalBytesSent: Int64, + totalBytesExpectedToSend: Int64) { + eventMonitor?.urlSession(session, + task: task, + didSendBodyData: bytesSent, + totalBytesSent: totalBytesSent, + totalBytesExpectedToSend: totalBytesExpectedToSend) + + stateProvider?.request(for: task)?.updateUploadProgress(totalBytesSent: totalBytesSent, + totalBytesExpectedToSend: totalBytesExpectedToSend) + } + + open func urlSession(_ session: URLSession, + task: URLSessionTask, + needNewBodyStream completionHandler: @escaping (InputStream?) -> Void) { + eventMonitor?.urlSession(session, taskNeedsNewBodyStream: task) + + guard let request = request(for: task, as: UploadRequest.self) else { + assertionFailure("needNewBodyStream did not find UploadRequest.") + completionHandler(nil) + return + } + + completionHandler(request.inputStream()) + } + + open func urlSession(_ session: URLSession, + task: URLSessionTask, + willPerformHTTPRedirection response: HTTPURLResponse, + newRequest request: URLRequest, + completionHandler: @escaping (URLRequest?) -> Void) { + eventMonitor?.urlSession(session, task: task, willPerformHTTPRedirection: response, newRequest: request) + + if let redirectHandler = stateProvider?.request(for: task)?.redirectHandler ?? stateProvider?.redirectHandler { + redirectHandler.task(task, willBeRedirectedTo: request, for: response, completion: completionHandler) + } else { + completionHandler(request) + } + } + + open func urlSession(_ session: URLSession, task: URLSessionTask, didFinishCollecting metrics: URLSessionTaskMetrics) { + eventMonitor?.urlSession(session, task: task, didFinishCollecting: metrics) + + stateProvider?.request(for: task)?.didGatherMetrics(metrics) + + stateProvider?.didGatherMetricsForTask(task) + } + + open func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { + eventMonitor?.urlSession(session, task: task, didCompleteWithError: error) + + let request = stateProvider?.request(for: task) + + stateProvider?.didCompleteTask(task) { + request?.didCompleteTask(task, with: error.map { $0.asAFError(or: .sessionTaskFailed(error: $0)) }) + } + } + + @available(macOS 10.13, iOS 11.0, tvOS 11.0, watchOS 4.0, *) + open func urlSession(_ session: URLSession, taskIsWaitingForConnectivity task: URLSessionTask) { + eventMonitor?.urlSession(session, taskIsWaitingForConnectivity: task) + } +} + +// MARK: URLSessionDataDelegate + +extension SessionDelegate: URLSessionDataDelegate { + open func urlSession(_ session: URLSession, + dataTask: URLSessionDataTask, + didReceive response: URLResponse, + completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) { + eventMonitor?.urlSession(session, dataTask: dataTask, didReceive: response) + + guard let response = response as? HTTPURLResponse else { completionHandler(.allow); return } + + if let request = request(for: dataTask, as: DataRequest.self) { + request.didReceiveResponse(response, completionHandler: completionHandler) + } else if let request = request(for: dataTask, as: DataStreamRequest.self) { + request.didReceiveResponse(response, completionHandler: completionHandler) + } else { + assertionFailure("dataTask did not find DataRequest or DataStreamRequest in didReceive response") + completionHandler(.allow) + return + } + } + + open func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { + eventMonitor?.urlSession(session, dataTask: dataTask, didReceive: data) + + if let request = request(for: dataTask, as: DataRequest.self) { + request.didReceive(data: data) + } else if let request = request(for: dataTask, as: DataStreamRequest.self) { + request.didReceive(data: data) + } else { + assertionFailure("dataTask did not find DataRequest or DataStreamRequest in didReceive data") + return + } + } + + open func urlSession(_ session: URLSession, + dataTask: URLSessionDataTask, + willCacheResponse proposedResponse: CachedURLResponse, + completionHandler: @escaping (CachedURLResponse?) -> Void) { + eventMonitor?.urlSession(session, dataTask: dataTask, willCacheResponse: proposedResponse) + + if let handler = stateProvider?.request(for: dataTask)?.cachedResponseHandler ?? stateProvider?.cachedResponseHandler { + handler.dataTask(dataTask, willCacheResponse: proposedResponse, completion: completionHandler) + } else { + completionHandler(proposedResponse) + } + } +} + +// MARK: URLSessionDownloadDelegate + +extension SessionDelegate: URLSessionDownloadDelegate { + open func urlSession(_ session: URLSession, + downloadTask: URLSessionDownloadTask, + didResumeAtOffset fileOffset: Int64, + expectedTotalBytes: Int64) { + eventMonitor?.urlSession(session, + downloadTask: downloadTask, + didResumeAtOffset: fileOffset, + expectedTotalBytes: expectedTotalBytes) + guard let downloadRequest = request(for: downloadTask, as: DownloadRequest.self) else { + assertionFailure("downloadTask did not find DownloadRequest.") + return + } + + downloadRequest.updateDownloadProgress(bytesWritten: fileOffset, + totalBytesExpectedToWrite: expectedTotalBytes) + } + + open func urlSession(_ session: URLSession, + downloadTask: URLSessionDownloadTask, + didWriteData bytesWritten: Int64, + totalBytesWritten: Int64, + totalBytesExpectedToWrite: Int64) { + eventMonitor?.urlSession(session, + downloadTask: downloadTask, + didWriteData: bytesWritten, + totalBytesWritten: totalBytesWritten, + totalBytesExpectedToWrite: totalBytesExpectedToWrite) + guard let downloadRequest = request(for: downloadTask, as: DownloadRequest.self) else { + assertionFailure("downloadTask did not find DownloadRequest.") + return + } + + downloadRequest.updateDownloadProgress(bytesWritten: bytesWritten, + totalBytesExpectedToWrite: totalBytesExpectedToWrite) + } + + open func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) { + eventMonitor?.urlSession(session, downloadTask: downloadTask, didFinishDownloadingTo: location) + + guard let request = request(for: downloadTask, as: DownloadRequest.self) else { + assertionFailure("downloadTask did not find DownloadRequest.") + return + } + + let (destination, options): (URL, DownloadRequest.Options) + if let response = request.response { + (destination, options) = request.destination(location, response) + } else { + // If there's no response this is likely a local file download, so generate the temporary URL directly. + (destination, options) = (DownloadRequest.defaultDestinationURL(location), []) + } + + eventMonitor?.request(request, didCreateDestinationURL: destination) + + do { + if options.contains(.removePreviousFile), fileManager.fileExists(atPath: destination.path) { + try fileManager.removeItem(at: destination) + } + + if options.contains(.createIntermediateDirectories) { + let directory = destination.deletingLastPathComponent() + try fileManager.createDirectory(at: directory, withIntermediateDirectories: true) + } + + try fileManager.moveItem(at: location, to: destination) + + request.didFinishDownloading(using: downloadTask, with: .success(destination)) + } catch { + request.didFinishDownloading(using: downloadTask, with: .failure(.downloadedFileMoveFailed(error: error, + source: location, + destination: destination))) + } + } +} diff --git a/Pods/Alamofire/Source/StringEncoding+Alamofire.swift b/Pods/Alamofire/Source/StringEncoding+Alamofire.swift new file mode 100644 index 0000000..8fa6133 --- /dev/null +++ b/Pods/Alamofire/Source/StringEncoding+Alamofire.swift @@ -0,0 +1,55 @@ +// +// StringEncoding+Alamofire.swift +// +// Copyright (c) 2020 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +extension String.Encoding { + /// Creates an encoding from the IANA charset name. + /// + /// - Notes: These mappings match those [provided by CoreFoundation](https://opensource.apple.com/source/CF/CF-476.18/CFStringUtilities.c.auto.html) + /// + /// - Parameter name: IANA charset name. + init?(ianaCharsetName name: String) { + switch name.lowercased() { + case "utf-8": + self = .utf8 + case "iso-8859-1": + self = .isoLatin1 + case "unicode-1-1", "iso-10646-ucs-2", "utf-16": + self = .utf16 + case "utf-16be": + self = .utf16BigEndian + case "utf-16le": + self = .utf16LittleEndian + case "utf-32": + self = .utf32 + case "utf-32be": + self = .utf32BigEndian + case "utf-32le": + self = .utf32LittleEndian + default: + return nil + } + } +} diff --git a/Pods/Alamofire/Source/URLConvertible+URLRequestConvertible.swift b/Pods/Alamofire/Source/URLConvertible+URLRequestConvertible.swift new file mode 100644 index 0000000..455c4bc --- /dev/null +++ b/Pods/Alamofire/Source/URLConvertible+URLRequestConvertible.swift @@ -0,0 +1,105 @@ +// +// URLConvertible+URLRequestConvertible.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// Types adopting the `URLConvertible` protocol can be used to construct `URL`s, which can then be used to construct +/// `URLRequests`. +public protocol URLConvertible { + /// Returns a `URL` from the conforming instance or throws. + /// + /// - Returns: The `URL` created from the instance. + /// - Throws: Any error thrown while creating the `URL`. + func asURL() throws -> URL +} + +extension String: URLConvertible { + /// Returns a `URL` if `self` can be used to initialize a `URL` instance, otherwise throws. + /// + /// - Returns: The `URL` initialized with `self`. + /// - Throws: An `AFError.invalidURL` instance. + public func asURL() throws -> URL { + guard let url = URL(string: self) else { throw AFError.invalidURL(url: self) } + + return url + } +} + +extension URL: URLConvertible { + /// Returns `self`. + public func asURL() throws -> URL { self } +} + +extension URLComponents: URLConvertible { + /// Returns a `URL` if the `self`'s `url` is not nil, otherwise throws. + /// + /// - Returns: The `URL` from the `url` property. + /// - Throws: An `AFError.invalidURL` instance. + public func asURL() throws -> URL { + guard let url = url else { throw AFError.invalidURL(url: self) } + + return url + } +} + +// MARK: - + +/// Types adopting the `URLRequestConvertible` protocol can be used to safely construct `URLRequest`s. +public protocol URLRequestConvertible { + /// Returns a `URLRequest` or throws if an `Error` was encountered. + /// + /// - Returns: A `URLRequest`. + /// - Throws: Any error thrown while constructing the `URLRequest`. + func asURLRequest() throws -> URLRequest +} + +extension URLRequestConvertible { + /// The `URLRequest` returned by discarding any `Error` encountered. + public var urlRequest: URLRequest? { try? asURLRequest() } +} + +extension URLRequest: URLRequestConvertible { + /// Returns `self`. + public func asURLRequest() throws -> URLRequest { self } +} + +// MARK: - + +extension URLRequest { + /// Creates an instance with the specified `url`, `method`, and `headers`. + /// + /// - Parameters: + /// - url: The `URLConvertible` value. + /// - method: The `HTTPMethod`. + /// - headers: The `HTTPHeaders`, `nil` by default. + /// - Throws: Any error thrown while converting the `URLConvertible` to a `URL`. + public init(url: URLConvertible, method: HTTPMethod, headers: HTTPHeaders? = nil) throws { + let url = try url.asURL() + + self.init(url: url) + + httpMethod = method.rawValue + allHTTPHeaderFields = headers?.dictionary + } +} diff --git a/Pods/Alamofire/Source/URLEncodedFormEncoder.swift b/Pods/Alamofire/Source/URLEncodedFormEncoder.swift new file mode 100644 index 0000000..dcb5991 --- /dev/null +++ b/Pods/Alamofire/Source/URLEncodedFormEncoder.swift @@ -0,0 +1,1083 @@ +// +// URLEncodedFormEncoder.swift +// +// Copyright (c) 2019 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// An object that encodes instances into URL-encoded query strings. +/// +/// `ArrayEncoding` can be used to configure how `Array` values are encoded. By default, the `.brackets` encoding is +/// used, encoding array values with brackets for each value. e.g `array[]=1&array[]=2`. +/// +/// `BoolEncoding` can be used to configure how `Bool` values are encoded. By default, the `.numeric` encoding is used, +/// encoding `true` as `1` and `false` as `0`. +/// +/// `DataEncoding` can be used to configure how `Data` values are encoded. By default, the `.deferredToData` encoding is +/// used, which encodes `Data` values using their default `Encodable` implementation. +/// +/// `DateEncoding` can be used to configure how `Date` values are encoded. By default, the `.deferredToDate` +/// encoding is used, which encodes `Date`s using their default `Encodable` implementation. +/// +/// `KeyEncoding` can be used to configure how keys are encoded. By default, the `.useDefaultKeys` encoding is used, +/// which encodes the keys directly from the `Encodable` implementation. +/// +/// `KeyPathEncoding` can be used to configure how paths within nested objects are encoded. By default, the `.brackets` +/// encoding is used, which encodes each sub-key in brackets. e.g. `parent[child][grandchild]=value`. +/// +/// `NilEncoding` can be used to configure how `nil` `Optional` values are encoded. By default, the `.dropKey` encoding +/// is used, which drops `nil` key / value pairs from the output entirely. +/// +/// `SpaceEncoding` can be used to configure how spaces are encoded. By default, the `.percentEscaped` encoding is used, +/// replacing spaces with `%20`. +/// +/// This type is largely based on Vapor's [`url-encoded-form`](https://github.com/vapor/url-encoded-form) project. +public final class URLEncodedFormEncoder { + /// Encoding to use for `Array` values. + public enum ArrayEncoding { + /// An empty set of square brackets ("[]") are appended to the key for every value. This is the default encoding. + case brackets + /// No brackets are appended to the key and the key is encoded as is. + case noBrackets + /// Brackets containing the item index are appended. This matches the jQuery and Node.js behavior. + case indexInBrackets + /// Provide a custom array key encoding with the given closure. + case custom((_ key: String, _ index: Int) -> String) + + /// Encodes the key according to the encoding. + /// + /// - Parameters: + /// - key: The `key` to encode. + /// - index: When this enum instance is `.indexInBrackets`, the `index` to encode. + /// + /// - Returns: The encoded key. + func encode(_ key: String, atIndex index: Int) -> String { + switch self { + case .brackets: return "\(key)[]" + case .noBrackets: return key + case .indexInBrackets: return "\(key)[\(index)]" + case let .custom(encoding): return encoding(key, index) + } + } + } + + /// Encoding to use for `Bool` values. + public enum BoolEncoding { + /// Encodes `true` as `1`, `false` as `0`. + case numeric + /// Encodes `true` as "true", `false` as "false". This is the default encoding. + case literal + + /// Encodes the given `Bool` as a `String`. + /// + /// - Parameter value: The `Bool` to encode. + /// + /// - Returns: The encoded `String`. + func encode(_ value: Bool) -> String { + switch self { + case .numeric: return value ? "1" : "0" + case .literal: return value ? "true" : "false" + } + } + } + + /// Encoding to use for `Data` values. + public enum DataEncoding { + /// Defers encoding to the `Data` type. + case deferredToData + /// Encodes `Data` as a Base64-encoded string. This is the default encoding. + case base64 + /// Encode the `Data` as a custom value encoded by the given closure. + case custom((Data) throws -> String) + + /// Encodes `Data` according to the encoding. + /// + /// - Parameter data: The `Data` to encode. + /// + /// - Returns: The encoded `String`, or `nil` if the `Data` should be encoded according to its + /// `Encodable` implementation. + func encode(_ data: Data) throws -> String? { + switch self { + case .deferredToData: return nil + case .base64: return data.base64EncodedString() + case let .custom(encoding): return try encoding(data) + } + } + } + + /// Encoding to use for `Date` values. + public enum DateEncoding { + /// ISO8601 and RFC3339 formatter. + private static let iso8601Formatter: ISO8601DateFormatter = { + let formatter = ISO8601DateFormatter() + formatter.formatOptions = .withInternetDateTime + return formatter + }() + + /// Defers encoding to the `Date` type. This is the default encoding. + case deferredToDate + /// Encodes `Date`s as seconds since midnight UTC on January 1, 1970. + case secondsSince1970 + /// Encodes `Date`s as milliseconds since midnight UTC on January 1, 1970. + case millisecondsSince1970 + /// Encodes `Date`s according to the ISO8601 and RFC3339 standards. + case iso8601 + /// Encodes `Date`s using the given `DateFormatter`. + case formatted(DateFormatter) + /// Encodes `Date`s using the given closure. + case custom((Date) throws -> String) + + /// Encodes the date according to the encoding. + /// + /// - Parameter date: The `Date` to encode. + /// + /// - Returns: The encoded `String`, or `nil` if the `Date` should be encoded according to its + /// `Encodable` implementation. + func encode(_ date: Date) throws -> String? { + switch self { + case .deferredToDate: + return nil + case .secondsSince1970: + return String(date.timeIntervalSince1970) + case .millisecondsSince1970: + return String(date.timeIntervalSince1970 * 1000.0) + case .iso8601: + return DateEncoding.iso8601Formatter.string(from: date) + case let .formatted(formatter): + return formatter.string(from: date) + case let .custom(closure): + return try closure(date) + } + } + } + + /// Encoding to use for keys. + /// + /// This type is derived from [`JSONEncoder`'s `KeyEncodingStrategy`](https://github.com/apple/swift/blob/6aa313b8dd5f05135f7f878eccc1db6f9fbe34ff/stdlib/public/Darwin/Foundation/JSONEncoder.swift#L128) + /// and [`XMLEncoder`s `KeyEncodingStrategy`](https://github.com/MaxDesiatov/XMLCoder/blob/master/Sources/XMLCoder/Encoder/XMLEncoder.swift#L102). + public enum KeyEncoding { + /// Use the keys specified by each type. This is the default encoding. + case useDefaultKeys + /// Convert from "camelCaseKeys" to "snake_case_keys" before writing a key. + /// + /// Capital characters are determined by testing membership in + /// `CharacterSet.uppercaseLetters` and `CharacterSet.lowercaseLetters` + /// (Unicode General Categories Lu and Lt). + /// The conversion to lower case uses `Locale.system`, also known as + /// the ICU "root" locale. This means the result is consistent + /// regardless of the current user's locale and language preferences. + /// + /// Converting from camel case to snake case: + /// 1. Splits words at the boundary of lower-case to upper-case + /// 2. Inserts `_` between words + /// 3. Lowercases the entire string + /// 4. Preserves starting and ending `_`. + /// + /// For example, `oneTwoThree` becomes `one_two_three`. `_oneTwoThree_` becomes `_one_two_three_`. + /// + /// - Note: Using a key encoding strategy has a nominal performance cost, as each string key has to be converted. + case convertToSnakeCase + /// Same as convertToSnakeCase, but using `-` instead of `_`. + /// For example `oneTwoThree` becomes `one-two-three`. + case convertToKebabCase + /// Capitalize the first letter only. + /// For example `oneTwoThree` becomes `OneTwoThree`. + case capitalized + /// Uppercase all letters. + /// For example `oneTwoThree` becomes `ONETWOTHREE`. + case uppercased + /// Lowercase all letters. + /// For example `oneTwoThree` becomes `onetwothree`. + case lowercased + /// A custom encoding using the provided closure. + case custom((String) -> String) + + func encode(_ key: String) -> String { + switch self { + case .useDefaultKeys: return key + case .convertToSnakeCase: return convertToSnakeCase(key) + case .convertToKebabCase: return convertToKebabCase(key) + case .capitalized: return String(key.prefix(1).uppercased() + key.dropFirst()) + case .uppercased: return key.uppercased() + case .lowercased: return key.lowercased() + case let .custom(encoding): return encoding(key) + } + } + + private func convertToSnakeCase(_ key: String) -> String { + convert(key, usingSeparator: "_") + } + + private func convertToKebabCase(_ key: String) -> String { + convert(key, usingSeparator: "-") + } + + private func convert(_ key: String, usingSeparator separator: String) -> String { + guard !key.isEmpty else { return key } + + var words: [Range] = [] + // The general idea of this algorithm is to split words on + // transition from lower to upper case, then on transition of >1 + // upper case characters to lowercase + // + // myProperty -> my_property + // myURLProperty -> my_url_property + // + // It is assumed, per Swift naming conventions, that the first character of the key is lowercase. + var wordStart = key.startIndex + var searchRange = key.index(after: wordStart)..1 capital letters. Turn those into a word, stopping at the capital before + // the lower case character. + let beforeLowerIndex = key.index(before: lowerCaseRange.lowerBound) + words.append(upperCaseRange.lowerBound.. String + + /// Creates an instance with the encoding closure called for each sub-key in a key path. + /// + /// - Parameter encoding: Closure used to perform the encoding. + public init(encoding: @escaping (_ subkey: String) -> String) { + self.encoding = encoding + } + + func encodeKeyPath(_ keyPath: String) -> String { + encoding(keyPath) + } + } + + /// Encoding to use for `nil` values. + public struct NilEncoding { + /// Encodes `nil` by dropping the entire key / value pair. + public static let dropKey = NilEncoding { nil } + /// Encodes `nil` by dropping only the value. e.g. `value1=one&nilValue=&value2=two`. + public static let dropValue = NilEncoding { "" } + /// Encodes `nil` as `null`. + public static let null = NilEncoding { "null" } + + private let encoding: () -> String? + + /// Creates an instance with the encoding closure called for `nil` values. + /// + /// - Parameter encoding: Closure used to perform the encoding. + public init(encoding: @escaping () -> String?) { + self.encoding = encoding + } + + func encodeNil() -> String? { + encoding() + } + } + + /// Encoding to use for spaces. + public enum SpaceEncoding { + /// Encodes spaces using percent escaping (`%20`). + case percentEscaped + /// Encodes spaces as `+`. + case plusReplaced + + /// Encodes the string according to the encoding. + /// + /// - Parameter string: The `String` to encode. + /// + /// - Returns: The encoded `String`. + func encode(_ string: String) -> String { + switch self { + case .percentEscaped: return string.replacingOccurrences(of: " ", with: "%20") + case .plusReplaced: return string.replacingOccurrences(of: " ", with: "+") + } + } + } + + /// `URLEncodedFormEncoder` error. + public enum Error: Swift.Error { + /// An invalid root object was created by the encoder. Only keyed values are valid. + case invalidRootObject(String) + + var localizedDescription: String { + switch self { + case let .invalidRootObject(object): + return "URLEncodedFormEncoder requires keyed root object. Received \(object) instead." + } + } + } + + /// Whether or not to sort the encoded key value pairs. + /// + /// - Note: This setting ensures a consistent ordering for all encodings of the same parameters. When set to `false`, + /// encoded `Dictionary` values may have a different encoded order each time they're encoded due to + /// ` Dictionary`'s random storage order, but `Encodable` types will maintain their encoded order. + public let alphabetizeKeyValuePairs: Bool + /// The `ArrayEncoding` to use. + public let arrayEncoding: ArrayEncoding + /// The `BoolEncoding` to use. + public let boolEncoding: BoolEncoding + /// THe `DataEncoding` to use. + public let dataEncoding: DataEncoding + /// The `DateEncoding` to use. + public let dateEncoding: DateEncoding + /// The `KeyEncoding` to use. + public let keyEncoding: KeyEncoding + /// The `KeyPathEncoding` to use. + public let keyPathEncoding: KeyPathEncoding + /// The `NilEncoding` to use. + public let nilEncoding: NilEncoding + /// The `SpaceEncoding` to use. + public let spaceEncoding: SpaceEncoding + /// The `CharacterSet` of allowed (non-escaped) characters. + public var allowedCharacters: CharacterSet + + /// Creates an instance from the supplied parameters. + /// + /// - Parameters: + /// - alphabetizeKeyValuePairs: Whether or not to sort the encoded key value pairs. `true` by default. + /// - arrayEncoding: The `ArrayEncoding` to use. `.brackets` by default. + /// - boolEncoding: The `BoolEncoding` to use. `.numeric` by default. + /// - dataEncoding: The `DataEncoding` to use. `.base64` by default. + /// - dateEncoding: The `DateEncoding` to use. `.deferredToDate` by default. + /// - keyEncoding: The `KeyEncoding` to use. `.useDefaultKeys` by default. + /// - nilEncoding: The `NilEncoding` to use. `.drop` by default. + /// - spaceEncoding: The `SpaceEncoding` to use. `.percentEscaped` by default. + /// - allowedCharacters: The `CharacterSet` of allowed (non-escaped) characters. `.afURLQueryAllowed` by + /// default. + public init(alphabetizeKeyValuePairs: Bool = true, + arrayEncoding: ArrayEncoding = .brackets, + boolEncoding: BoolEncoding = .numeric, + dataEncoding: DataEncoding = .base64, + dateEncoding: DateEncoding = .deferredToDate, + keyEncoding: KeyEncoding = .useDefaultKeys, + keyPathEncoding: KeyPathEncoding = .brackets, + nilEncoding: NilEncoding = .dropKey, + spaceEncoding: SpaceEncoding = .percentEscaped, + allowedCharacters: CharacterSet = .afURLQueryAllowed) { + self.alphabetizeKeyValuePairs = alphabetizeKeyValuePairs + self.arrayEncoding = arrayEncoding + self.boolEncoding = boolEncoding + self.dataEncoding = dataEncoding + self.dateEncoding = dateEncoding + self.keyEncoding = keyEncoding + self.keyPathEncoding = keyPathEncoding + self.nilEncoding = nilEncoding + self.spaceEncoding = spaceEncoding + self.allowedCharacters = allowedCharacters + } + + func encode(_ value: Encodable) throws -> URLEncodedFormComponent { + let context = URLEncodedFormContext(.object([])) + let encoder = _URLEncodedFormEncoder(context: context, + boolEncoding: boolEncoding, + dataEncoding: dataEncoding, + dateEncoding: dateEncoding, + nilEncoding: nilEncoding) + try value.encode(to: encoder) + + return context.component + } + + /// Encodes the `value` as a URL form encoded `String`. + /// + /// - Parameter value: The `Encodable` value.` + /// + /// - Returns: The encoded `String`. + /// - Throws: An `Error` or `EncodingError` instance if encoding fails. + public func encode(_ value: Encodable) throws -> String { + let component: URLEncodedFormComponent = try encode(value) + + guard case let .object(object) = component else { + throw Error.invalidRootObject("\(component)") + } + + let serializer = URLEncodedFormSerializer(alphabetizeKeyValuePairs: alphabetizeKeyValuePairs, + arrayEncoding: arrayEncoding, + keyEncoding: keyEncoding, + keyPathEncoding: keyPathEncoding, + spaceEncoding: spaceEncoding, + allowedCharacters: allowedCharacters) + let query = serializer.serialize(object) + + return query + } + + /// Encodes the value as `Data`. This is performed by first creating an encoded `String` and then returning the + /// `.utf8` data. + /// + /// - Parameter value: The `Encodable` value. + /// + /// - Returns: The encoded `Data`. + /// + /// - Throws: An `Error` or `EncodingError` instance if encoding fails. + public func encode(_ value: Encodable) throws -> Data { + let string: String = try encode(value) + + return Data(string.utf8) + } +} + +final class _URLEncodedFormEncoder { + var codingPath: [CodingKey] + // Returns an empty dictionary, as this encoder doesn't support userInfo. + var userInfo: [CodingUserInfoKey: Any] { [:] } + + let context: URLEncodedFormContext + + private let boolEncoding: URLEncodedFormEncoder.BoolEncoding + private let dataEncoding: URLEncodedFormEncoder.DataEncoding + private let dateEncoding: URLEncodedFormEncoder.DateEncoding + private let nilEncoding: URLEncodedFormEncoder.NilEncoding + + init(context: URLEncodedFormContext, + codingPath: [CodingKey] = [], + boolEncoding: URLEncodedFormEncoder.BoolEncoding, + dataEncoding: URLEncodedFormEncoder.DataEncoding, + dateEncoding: URLEncodedFormEncoder.DateEncoding, + nilEncoding: URLEncodedFormEncoder.NilEncoding) { + self.context = context + self.codingPath = codingPath + self.boolEncoding = boolEncoding + self.dataEncoding = dataEncoding + self.dateEncoding = dateEncoding + self.nilEncoding = nilEncoding + } +} + +extension _URLEncodedFormEncoder: Encoder { + func container(keyedBy type: Key.Type) -> KeyedEncodingContainer where Key: CodingKey { + let container = _URLEncodedFormEncoder.KeyedContainer(context: context, + codingPath: codingPath, + boolEncoding: boolEncoding, + dataEncoding: dataEncoding, + dateEncoding: dateEncoding, + nilEncoding: nilEncoding) + return KeyedEncodingContainer(container) + } + + func unkeyedContainer() -> UnkeyedEncodingContainer { + _URLEncodedFormEncoder.UnkeyedContainer(context: context, + codingPath: codingPath, + boolEncoding: boolEncoding, + dataEncoding: dataEncoding, + dateEncoding: dateEncoding, + nilEncoding: nilEncoding) + } + + func singleValueContainer() -> SingleValueEncodingContainer { + _URLEncodedFormEncoder.SingleValueContainer(context: context, + codingPath: codingPath, + boolEncoding: boolEncoding, + dataEncoding: dataEncoding, + dateEncoding: dateEncoding, + nilEncoding: nilEncoding) + } +} + +final class URLEncodedFormContext { + var component: URLEncodedFormComponent + + init(_ component: URLEncodedFormComponent) { + self.component = component + } +} + +enum URLEncodedFormComponent { + typealias Object = [(key: String, value: URLEncodedFormComponent)] + + case string(String) + case array([URLEncodedFormComponent]) + case object(Object) + + /// Converts self to an `[URLEncodedFormData]` or returns `nil` if not convertible. + var array: [URLEncodedFormComponent]? { + switch self { + case let .array(array): return array + default: return nil + } + } + + /// Converts self to an `Object` or returns `nil` if not convertible. + var object: Object? { + switch self { + case let .object(object): return object + default: return nil + } + } + + /// Sets self to the supplied value at a given path. + /// + /// data.set(to: "hello", at: ["path", "to", "value"]) + /// + /// - parameters: + /// - value: Value of `Self` to set at the supplied path. + /// - path: `CodingKey` path to update with the supplied value. + public mutating func set(to value: URLEncodedFormComponent, at path: [CodingKey]) { + set(&self, to: value, at: path) + } + + /// Recursive backing method to `set(to:at:)`. + private func set(_ context: inout URLEncodedFormComponent, to value: URLEncodedFormComponent, at path: [CodingKey]) { + guard !path.isEmpty else { + context = value + return + } + + let end = path[0] + var child: URLEncodedFormComponent + switch path.count { + case 1: + child = value + case 2...: + if let index = end.intValue { + let array = context.array ?? [] + if array.count > index { + child = array[index] + } else { + child = .array([]) + } + set(&child, to: value, at: Array(path[1...])) + } else { + child = context.object?.first { $0.key == end.stringValue }?.value ?? .object(.init()) + set(&child, to: value, at: Array(path[1...])) + } + default: fatalError("Unreachable") + } + + if let index = end.intValue { + if var array = context.array { + if array.count > index { + array[index] = child + } else { + array.append(child) + } + context = .array(array) + } else { + context = .array([child]) + } + } else { + if var object = context.object { + if let index = object.firstIndex(where: { $0.key == end.stringValue }) { + object[index] = (key: end.stringValue, value: child) + } else { + object.append((key: end.stringValue, value: child)) + } + context = .object(object) + } else { + context = .object([(key: end.stringValue, value: child)]) + } + } + } +} + +struct AnyCodingKey: CodingKey, Hashable { + let stringValue: String + let intValue: Int? + + init?(stringValue: String) { + self.stringValue = stringValue + intValue = nil + } + + init?(intValue: Int) { + stringValue = "\(intValue)" + self.intValue = intValue + } + + init(_ base: Key) where Key: CodingKey { + if let intValue = base.intValue { + self.init(intValue: intValue)! + } else { + self.init(stringValue: base.stringValue)! + } + } +} + +extension _URLEncodedFormEncoder { + final class KeyedContainer where Key: CodingKey { + var codingPath: [CodingKey] + + private let context: URLEncodedFormContext + private let boolEncoding: URLEncodedFormEncoder.BoolEncoding + private let dataEncoding: URLEncodedFormEncoder.DataEncoding + private let dateEncoding: URLEncodedFormEncoder.DateEncoding + private let nilEncoding: URLEncodedFormEncoder.NilEncoding + + init(context: URLEncodedFormContext, + codingPath: [CodingKey], + boolEncoding: URLEncodedFormEncoder.BoolEncoding, + dataEncoding: URLEncodedFormEncoder.DataEncoding, + dateEncoding: URLEncodedFormEncoder.DateEncoding, + nilEncoding: URLEncodedFormEncoder.NilEncoding) { + self.context = context + self.codingPath = codingPath + self.boolEncoding = boolEncoding + self.dataEncoding = dataEncoding + self.dateEncoding = dateEncoding + self.nilEncoding = nilEncoding + } + + private func nestedCodingPath(for key: CodingKey) -> [CodingKey] { + codingPath + [key] + } + } +} + +extension _URLEncodedFormEncoder.KeyedContainer: KeyedEncodingContainerProtocol { + func encodeNil(forKey key: Key) throws { + guard let nilValue = nilEncoding.encodeNil() else { return } + + try encode(nilValue, forKey: key) + } + + func encode(_ value: T, forKey key: Key) throws where T: Encodable { + var container = nestedSingleValueEncoder(for: key) + try container.encode(value) + } + + func nestedSingleValueEncoder(for key: Key) -> SingleValueEncodingContainer { + let container = _URLEncodedFormEncoder.SingleValueContainer(context: context, + codingPath: nestedCodingPath(for: key), + boolEncoding: boolEncoding, + dataEncoding: dataEncoding, + dateEncoding: dateEncoding, + nilEncoding: nilEncoding) + + return container + } + + func nestedUnkeyedContainer(forKey key: Key) -> UnkeyedEncodingContainer { + let container = _URLEncodedFormEncoder.UnkeyedContainer(context: context, + codingPath: nestedCodingPath(for: key), + boolEncoding: boolEncoding, + dataEncoding: dataEncoding, + dateEncoding: dateEncoding, + nilEncoding: nilEncoding) + + return container + } + + func nestedContainer(keyedBy keyType: NestedKey.Type, forKey key: Key) -> KeyedEncodingContainer where NestedKey: CodingKey { + let container = _URLEncodedFormEncoder.KeyedContainer(context: context, + codingPath: nestedCodingPath(for: key), + boolEncoding: boolEncoding, + dataEncoding: dataEncoding, + dateEncoding: dateEncoding, + nilEncoding: nilEncoding) + + return KeyedEncodingContainer(container) + } + + func superEncoder() -> Encoder { + _URLEncodedFormEncoder(context: context, + codingPath: codingPath, + boolEncoding: boolEncoding, + dataEncoding: dataEncoding, + dateEncoding: dateEncoding, + nilEncoding: nilEncoding) + } + + func superEncoder(forKey key: Key) -> Encoder { + _URLEncodedFormEncoder(context: context, + codingPath: nestedCodingPath(for: key), + boolEncoding: boolEncoding, + dataEncoding: dataEncoding, + dateEncoding: dateEncoding, + nilEncoding: nilEncoding) + } +} + +extension _URLEncodedFormEncoder { + final class SingleValueContainer { + var codingPath: [CodingKey] + + private var canEncodeNewValue = true + + private let context: URLEncodedFormContext + private let boolEncoding: URLEncodedFormEncoder.BoolEncoding + private let dataEncoding: URLEncodedFormEncoder.DataEncoding + private let dateEncoding: URLEncodedFormEncoder.DateEncoding + private let nilEncoding: URLEncodedFormEncoder.NilEncoding + + init(context: URLEncodedFormContext, + codingPath: [CodingKey], + boolEncoding: URLEncodedFormEncoder.BoolEncoding, + dataEncoding: URLEncodedFormEncoder.DataEncoding, + dateEncoding: URLEncodedFormEncoder.DateEncoding, + nilEncoding: URLEncodedFormEncoder.NilEncoding) { + self.context = context + self.codingPath = codingPath + self.boolEncoding = boolEncoding + self.dataEncoding = dataEncoding + self.dateEncoding = dateEncoding + self.nilEncoding = nilEncoding + } + + private func checkCanEncode(value: Any?) throws { + guard canEncodeNewValue else { + let context = EncodingError.Context(codingPath: codingPath, + debugDescription: "Attempt to encode value through single value container when previously value already encoded.") + throw EncodingError.invalidValue(value as Any, context) + } + } + } +} + +extension _URLEncodedFormEncoder.SingleValueContainer: SingleValueEncodingContainer { + func encodeNil() throws { + guard let nilValue = nilEncoding.encodeNil() else { return } + + try encode(nilValue) + } + + func encode(_ value: Bool) throws { + try encode(value, as: String(boolEncoding.encode(value))) + } + + func encode(_ value: String) throws { + try encode(value, as: value) + } + + func encode(_ value: Double) throws { + try encode(value, as: String(value)) + } + + func encode(_ value: Float) throws { + try encode(value, as: String(value)) + } + + func encode(_ value: Int) throws { + try encode(value, as: String(value)) + } + + func encode(_ value: Int8) throws { + try encode(value, as: String(value)) + } + + func encode(_ value: Int16) throws { + try encode(value, as: String(value)) + } + + func encode(_ value: Int32) throws { + try encode(value, as: String(value)) + } + + func encode(_ value: Int64) throws { + try encode(value, as: String(value)) + } + + func encode(_ value: UInt) throws { + try encode(value, as: String(value)) + } + + func encode(_ value: UInt8) throws { + try encode(value, as: String(value)) + } + + func encode(_ value: UInt16) throws { + try encode(value, as: String(value)) + } + + func encode(_ value: UInt32) throws { + try encode(value, as: String(value)) + } + + func encode(_ value: UInt64) throws { + try encode(value, as: String(value)) + } + + private func encode(_ value: T, as string: String) throws where T: Encodable { + try checkCanEncode(value: value) + defer { canEncodeNewValue = false } + + context.component.set(to: .string(string), at: codingPath) + } + + func encode(_ value: T) throws where T: Encodable { + switch value { + case let date as Date: + guard let string = try dateEncoding.encode(date) else { + try attemptToEncode(value) + return + } + + try encode(value, as: string) + case let data as Data: + guard let string = try dataEncoding.encode(data) else { + try attemptToEncode(value) + return + } + + try encode(value, as: string) + case let decimal as Decimal: + // Decimal's `Encodable` implementation returns an object, not a single value, so override it. + try encode(value, as: String(describing: decimal)) + default: + try attemptToEncode(value) + } + } + + private func attemptToEncode(_ value: T) throws where T: Encodable { + try checkCanEncode(value: value) + defer { canEncodeNewValue = false } + + let encoder = _URLEncodedFormEncoder(context: context, + codingPath: codingPath, + boolEncoding: boolEncoding, + dataEncoding: dataEncoding, + dateEncoding: dateEncoding, + nilEncoding: nilEncoding) + try value.encode(to: encoder) + } +} + +extension _URLEncodedFormEncoder { + final class UnkeyedContainer { + var codingPath: [CodingKey] + + var count = 0 + var nestedCodingPath: [CodingKey] { + codingPath + [AnyCodingKey(intValue: count)!] + } + + private let context: URLEncodedFormContext + private let boolEncoding: URLEncodedFormEncoder.BoolEncoding + private let dataEncoding: URLEncodedFormEncoder.DataEncoding + private let dateEncoding: URLEncodedFormEncoder.DateEncoding + private let nilEncoding: URLEncodedFormEncoder.NilEncoding + + init(context: URLEncodedFormContext, + codingPath: [CodingKey], + boolEncoding: URLEncodedFormEncoder.BoolEncoding, + dataEncoding: URLEncodedFormEncoder.DataEncoding, + dateEncoding: URLEncodedFormEncoder.DateEncoding, + nilEncoding: URLEncodedFormEncoder.NilEncoding) { + self.context = context + self.codingPath = codingPath + self.boolEncoding = boolEncoding + self.dataEncoding = dataEncoding + self.dateEncoding = dateEncoding + self.nilEncoding = nilEncoding + } + } +} + +extension _URLEncodedFormEncoder.UnkeyedContainer: UnkeyedEncodingContainer { + func encodeNil() throws { + guard let nilValue = nilEncoding.encodeNil() else { return } + + try encode(nilValue) + } + + func encode(_ value: T) throws where T: Encodable { + var container = nestedSingleValueContainer() + try container.encode(value) + } + + func nestedSingleValueContainer() -> SingleValueEncodingContainer { + defer { count += 1 } + + return _URLEncodedFormEncoder.SingleValueContainer(context: context, + codingPath: nestedCodingPath, + boolEncoding: boolEncoding, + dataEncoding: dataEncoding, + dateEncoding: dateEncoding, + nilEncoding: nilEncoding) + } + + func nestedContainer(keyedBy keyType: NestedKey.Type) -> KeyedEncodingContainer where NestedKey: CodingKey { + defer { count += 1 } + let container = _URLEncodedFormEncoder.KeyedContainer(context: context, + codingPath: nestedCodingPath, + boolEncoding: boolEncoding, + dataEncoding: dataEncoding, + dateEncoding: dateEncoding, + nilEncoding: nilEncoding) + + return KeyedEncodingContainer(container) + } + + func nestedUnkeyedContainer() -> UnkeyedEncodingContainer { + defer { count += 1 } + + return _URLEncodedFormEncoder.UnkeyedContainer(context: context, + codingPath: nestedCodingPath, + boolEncoding: boolEncoding, + dataEncoding: dataEncoding, + dateEncoding: dateEncoding, + nilEncoding: nilEncoding) + } + + func superEncoder() -> Encoder { + defer { count += 1 } + + return _URLEncodedFormEncoder(context: context, + codingPath: codingPath, + boolEncoding: boolEncoding, + dataEncoding: dataEncoding, + dateEncoding: dateEncoding, + nilEncoding: nilEncoding) + } +} + +final class URLEncodedFormSerializer { + private let alphabetizeKeyValuePairs: Bool + private let arrayEncoding: URLEncodedFormEncoder.ArrayEncoding + private let keyEncoding: URLEncodedFormEncoder.KeyEncoding + private let keyPathEncoding: URLEncodedFormEncoder.KeyPathEncoding + private let spaceEncoding: URLEncodedFormEncoder.SpaceEncoding + private let allowedCharacters: CharacterSet + + init(alphabetizeKeyValuePairs: Bool, + arrayEncoding: URLEncodedFormEncoder.ArrayEncoding, + keyEncoding: URLEncodedFormEncoder.KeyEncoding, + keyPathEncoding: URLEncodedFormEncoder.KeyPathEncoding, + spaceEncoding: URLEncodedFormEncoder.SpaceEncoding, + allowedCharacters: CharacterSet) { + self.alphabetizeKeyValuePairs = alphabetizeKeyValuePairs + self.arrayEncoding = arrayEncoding + self.keyEncoding = keyEncoding + self.keyPathEncoding = keyPathEncoding + self.spaceEncoding = spaceEncoding + self.allowedCharacters = allowedCharacters + } + + func serialize(_ object: URLEncodedFormComponent.Object) -> String { + var output: [String] = [] + for (key, component) in object { + let value = serialize(component, forKey: key) + output.append(value) + } + output = alphabetizeKeyValuePairs ? output.sorted() : output + + return output.joinedWithAmpersands() + } + + func serialize(_ component: URLEncodedFormComponent, forKey key: String) -> String { + switch component { + case let .string(string): return "\(escape(keyEncoding.encode(key)))=\(escape(string))" + case let .array(array): return serialize(array, forKey: key) + case let .object(object): return serialize(object, forKey: key) + } + } + + func serialize(_ object: URLEncodedFormComponent.Object, forKey key: String) -> String { + var segments: [String] = object.map { subKey, value in + let keyPath = keyPathEncoding.encodeKeyPath(subKey) + return serialize(value, forKey: key + keyPath) + } + segments = alphabetizeKeyValuePairs ? segments.sorted() : segments + + return segments.joinedWithAmpersands() + } + + func serialize(_ array: [URLEncodedFormComponent], forKey key: String) -> String { + var segments: [String] = array.enumerated().map { index, component in + let keyPath = arrayEncoding.encode(key, atIndex: index) + return serialize(component, forKey: keyPath) + } + segments = alphabetizeKeyValuePairs ? segments.sorted() : segments + + return segments.joinedWithAmpersands() + } + + func escape(_ query: String) -> String { + var allowedCharactersWithSpace = allowedCharacters + allowedCharactersWithSpace.insert(charactersIn: " ") + let escapedQuery = query.addingPercentEncoding(withAllowedCharacters: allowedCharactersWithSpace) ?? query + let spaceEncodedQuery = spaceEncoding.encode(escapedQuery) + + return spaceEncodedQuery + } +} + +extension Array where Element == String { + func joinedWithAmpersands() -> String { + joined(separator: "&") + } +} + +extension CharacterSet { + /// Creates a CharacterSet from RFC 3986 allowed characters. + /// + /// RFC 3986 states that the following characters are "reserved" characters. + /// + /// - General Delimiters: ":", "#", "[", "]", "@", "?", "/" + /// - Sub-Delimiters: "!", "$", "&", "'", "(", ")", "*", "+", ",", ";", "=" + /// + /// In RFC 3986 - Section 3.4, it states that the "?" and "/" characters should not be escaped to allow + /// query strings to include a URL. Therefore, all "reserved" characters with the exception of "?" and "/" + /// should be percent-escaped in the query string. + public static let afURLQueryAllowed: CharacterSet = { + let generalDelimitersToEncode = ":#[]@" // does not include "?" or "/" due to RFC 3986 - Section 3.4 + let subDelimitersToEncode = "!$&'()*+,;=" + let encodableDelimiters = CharacterSet(charactersIn: "\(generalDelimitersToEncode)\(subDelimitersToEncode)") + + return CharacterSet.urlQueryAllowed.subtracting(encodableDelimiters) + }() +} diff --git a/Pods/Alamofire/Source/URLRequest+Alamofire.swift b/Pods/Alamofire/Source/URLRequest+Alamofire.swift new file mode 100644 index 0000000..ab72fb5 --- /dev/null +++ b/Pods/Alamofire/Source/URLRequest+Alamofire.swift @@ -0,0 +1,39 @@ +// +// URLRequest+Alamofire.swift +// +// Copyright (c) 2019 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +extension URLRequest { + /// Returns the `httpMethod` as Alamofire's `HTTPMethod` type. + public var method: HTTPMethod? { + get { httpMethod.map(HTTPMethod.init) } + set { httpMethod = newValue?.rawValue } + } + + public func validate() throws { + if method == .get, let bodyData = httpBody { + throw AFError.urlRequestValidationFailed(reason: .bodyDataInGETRequest(bodyData)) + } + } +} diff --git a/Pods/Alamofire/Source/URLSessionConfiguration+Alamofire.swift b/Pods/Alamofire/Source/URLSessionConfiguration+Alamofire.swift new file mode 100644 index 0000000..292a8fe --- /dev/null +++ b/Pods/Alamofire/Source/URLSessionConfiguration+Alamofire.swift @@ -0,0 +1,46 @@ +// +// URLSessionConfiguration+Alamofire.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +extension URLSessionConfiguration: AlamofireExtended {} +extension AlamofireExtension where ExtendedType: URLSessionConfiguration { + /// Alamofire's default configuration. Same as `URLSessionConfiguration.default` but adds Alamofire default + /// `Accept-Language`, `Accept-Encoding`, and `User-Agent` headers. + public static var `default`: URLSessionConfiguration { + let configuration = URLSessionConfiguration.default + configuration.headers = .default + + return configuration + } + + /// `.ephemeral` configuration with Alamofire's default `Accept-Language`, `Accept-Encoding`, and `User-Agent` + /// headers. + public static var ephemeral: URLSessionConfiguration { + let configuration = URLSessionConfiguration.ephemeral + configuration.headers = .default + + return configuration + } +} diff --git a/Pods/Alamofire/Source/Validation.swift b/Pods/Alamofire/Source/Validation.swift new file mode 100644 index 0000000..2cf23fb --- /dev/null +++ b/Pods/Alamofire/Source/Validation.swift @@ -0,0 +1,302 @@ +// +// Validation.swift +// +// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +extension Request { + // MARK: Helper Types + + fileprivate typealias ErrorReason = AFError.ResponseValidationFailureReason + + /// Used to represent whether a validation succeeded or failed. + public typealias ValidationResult = Result + + fileprivate struct MIMEType { + let type: String + let subtype: String + + var isWildcard: Bool { type == "*" && subtype == "*" } + + init?(_ string: String) { + let components: [String] = { + let stripped = string.trimmingCharacters(in: .whitespacesAndNewlines) + let split = stripped[..<(stripped.range(of: ";")?.lowerBound ?? stripped.endIndex)] + + return split.components(separatedBy: "/") + }() + + if let type = components.first, let subtype = components.last { + self.type = type + self.subtype = subtype + } else { + return nil + } + } + + func matches(_ mime: MIMEType) -> Bool { + switch (type, subtype) { + case (mime.type, mime.subtype), (mime.type, "*"), ("*", mime.subtype), ("*", "*"): + return true + default: + return false + } + } + } + + // MARK: Properties + + fileprivate var acceptableStatusCodes: Range { 200..<300 } + + fileprivate var acceptableContentTypes: [String] { + if let accept = request?.value(forHTTPHeaderField: "Accept") { + return accept.components(separatedBy: ",") + } + + return ["*/*"] + } + + // MARK: Status Code + + fileprivate func validate(statusCode acceptableStatusCodes: S, + response: HTTPURLResponse) + -> ValidationResult + where S.Iterator.Element == Int { + if acceptableStatusCodes.contains(response.statusCode) { + return .success(()) + } else { + let reason: ErrorReason = .unacceptableStatusCode(code: response.statusCode) + return .failure(AFError.responseValidationFailed(reason: reason)) + } + } + + // MARK: Content Type + + fileprivate func validate(contentType acceptableContentTypes: S, + response: HTTPURLResponse, + data: Data?) + -> ValidationResult + where S.Iterator.Element == String { + guard let data = data, !data.isEmpty else { return .success(()) } + + return validate(contentType: acceptableContentTypes, response: response) + } + + fileprivate func validate(contentType acceptableContentTypes: S, + response: HTTPURLResponse) + -> ValidationResult + where S.Iterator.Element == String { + guard + let responseContentType = response.mimeType, + let responseMIMEType = MIMEType(responseContentType) + else { + for contentType in acceptableContentTypes { + if let mimeType = MIMEType(contentType), mimeType.isWildcard { + return .success(()) + } + } + + let error: AFError = { + let reason: ErrorReason = .missingContentType(acceptableContentTypes: acceptableContentTypes.sorted()) + return AFError.responseValidationFailed(reason: reason) + }() + + return .failure(error) + } + + for contentType in acceptableContentTypes { + if let acceptableMIMEType = MIMEType(contentType), acceptableMIMEType.matches(responseMIMEType) { + return .success(()) + } + } + + let error: AFError = { + let reason: ErrorReason = .unacceptableContentType(acceptableContentTypes: acceptableContentTypes.sorted(), + responseContentType: responseContentType) + + return AFError.responseValidationFailed(reason: reason) + }() + + return .failure(error) + } +} + +// MARK: - + +extension DataRequest { + /// A closure used to validate a request that takes a URL request, a URL response and data, and returns whether the + /// request was valid. + public typealias Validation = (URLRequest?, HTTPURLResponse, Data?) -> ValidationResult + + /// Validates that the response has a status code in the specified sequence. + /// + /// If validation fails, subsequent calls to response handlers will have an associated error. + /// + /// - Parameter acceptableStatusCodes: `Sequence` of acceptable response status codes. + /// + /// - Returns: The instance. + @discardableResult + public func validate(statusCode acceptableStatusCodes: S) -> Self where S.Iterator.Element == Int { + validate { [unowned self] _, response, _ in + self.validate(statusCode: acceptableStatusCodes, response: response) + } + } + + /// Validates that the response has a content type in the specified sequence. + /// + /// If validation fails, subsequent calls to response handlers will have an associated error. + /// + /// - parameter contentType: The acceptable content types, which may specify wildcard types and/or subtypes. + /// + /// - returns: The request. + @discardableResult + public func validate(contentType acceptableContentTypes: @escaping @autoclosure () -> S) -> Self where S.Iterator.Element == String { + validate { [unowned self] _, response, data in + self.validate(contentType: acceptableContentTypes(), response: response, data: data) + } + } + + /// Validates that the response has a status code in the default acceptable range of 200...299, and that the content + /// type matches any specified in the Accept HTTP header field. + /// + /// If validation fails, subsequent calls to response handlers will have an associated error. + /// + /// - returns: The request. + @discardableResult + public func validate() -> Self { + let contentTypes: () -> [String] = { [unowned self] in + acceptableContentTypes + } + return validate(statusCode: acceptableStatusCodes).validate(contentType: contentTypes()) + } +} + +extension DataStreamRequest { + /// A closure used to validate a request that takes a `URLRequest` and `HTTPURLResponse` and returns whether the + /// request was valid. + public typealias Validation = (_ request: URLRequest?, _ response: HTTPURLResponse) -> ValidationResult + + /// Validates that the response has a status code in the specified sequence. + /// + /// If validation fails, subsequent calls to response handlers will have an associated error. + /// + /// - Parameter acceptableStatusCodes: `Sequence` of acceptable response status codes. + /// + /// - Returns: The instance. + @discardableResult + public func validate(statusCode acceptableStatusCodes: S) -> Self where S.Iterator.Element == Int { + validate { [unowned self] _, response in + self.validate(statusCode: acceptableStatusCodes, response: response) + } + } + + /// Validates that the response has a content type in the specified sequence. + /// + /// If validation fails, subsequent calls to response handlers will have an associated error. + /// + /// - parameter contentType: The acceptable content types, which may specify wildcard types and/or subtypes. + /// + /// - returns: The request. + @discardableResult + public func validate(contentType acceptableContentTypes: @escaping @autoclosure () -> S) -> Self where S.Iterator.Element == String { + validate { [unowned self] _, response in + self.validate(contentType: acceptableContentTypes(), response: response) + } + } + + /// Validates that the response has a status code in the default acceptable range of 200...299, and that the content + /// type matches any specified in the Accept HTTP header field. + /// + /// If validation fails, subsequent calls to response handlers will have an associated error. + /// + /// - Returns: The instance. + @discardableResult + public func validate() -> Self { + let contentTypes: () -> [String] = { [unowned self] in + acceptableContentTypes + } + return validate(statusCode: acceptableStatusCodes).validate(contentType: contentTypes()) + } +} + +// MARK: - + +extension DownloadRequest { + /// A closure used to validate a request that takes a URL request, a URL response, a temporary URL and a + /// destination URL, and returns whether the request was valid. + public typealias Validation = (_ request: URLRequest?, + _ response: HTTPURLResponse, + _ fileURL: URL?) + -> ValidationResult + + /// Validates that the response has a status code in the specified sequence. + /// + /// If validation fails, subsequent calls to response handlers will have an associated error. + /// + /// - Parameter acceptableStatusCodes: `Sequence` of acceptable response status codes. + /// + /// - Returns: The instance. + @discardableResult + public func validate(statusCode acceptableStatusCodes: S) -> Self where S.Iterator.Element == Int { + validate { [unowned self] _, response, _ in + self.validate(statusCode: acceptableStatusCodes, response: response) + } + } + + /// Validates that the response has a content type in the specified sequence. + /// + /// If validation fails, subsequent calls to response handlers will have an associated error. + /// + /// - parameter contentType: The acceptable content types, which may specify wildcard types and/or subtypes. + /// + /// - returns: The request. + @discardableResult + public func validate(contentType acceptableContentTypes: @escaping @autoclosure () -> S) -> Self where S.Iterator.Element == String { + validate { [unowned self] _, response, fileURL in + guard let validFileURL = fileURL else { + return .failure(AFError.responseValidationFailed(reason: .dataFileNil)) + } + + do { + let data = try Data(contentsOf: validFileURL) + return self.validate(contentType: acceptableContentTypes(), response: response, data: data) + } catch { + return .failure(AFError.responseValidationFailed(reason: .dataFileReadFailed(at: validFileURL))) + } + } + } + + /// Validates that the response has a status code in the default acceptable range of 200...299, and that the content + /// type matches any specified in the Accept HTTP header field. + /// + /// If validation fails, subsequent calls to response handlers will have an associated error. + /// + /// - returns: The request. + @discardableResult + public func validate() -> Self { + let contentTypes = { [unowned self] in + acceptableContentTypes + } + return validate(statusCode: acceptableStatusCodes).validate(contentType: contentTypes()) + } +} diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 2159622..5c66f5f 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -1,16 +1,20 @@ PODS: + - Alamofire (5.8.0) - SwiftKeychainWrapper (4.0.1) DEPENDENCIES: + - Alamofire - SwiftKeychainWrapper SPEC REPOS: trunk: + - Alamofire - SwiftKeychainWrapper SPEC CHECKSUMS: + Alamofire: 0e92e751b3e9e66d7982db43919d01f313b8eb91 SwiftKeychainWrapper: 807ba1d63c33a7d0613288512399cd1eda1e470c -PODFILE CHECKSUM: c35529dbf1ff04b85c8f9b84db4ba78205552aec +PODFILE CHECKSUM: 433259fab42c529bb3041164bfcbb29e3ee6f972 COCOAPODS: 1.13.0 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 2506489..98b2885 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,116 +7,226 @@ objects = { /* Begin PBXBuildFile section */ - 0272D6846A167EEC137A317C66834826 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - 07614D85DCD9D7B87465D2B994687E4A /* Pods-PowerUp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 650702400DD5901F8FD11DF994E6059A /* Pods-PowerUp-dummy.m */; }; - 0D2C829DBA4D94629A8BF045009E4C35 /* Pods-PowerUp-PowerUpUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2172621237EFED83C5F5A9F0900D5985 /* Pods-PowerUp-PowerUpUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0272D6846A167EEC137A317C66834826 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD0CE05D5D076B1B5190EE5DF97FD54E /* Foundation.framework */; }; + 04A8430BFC619C34E5F4D3878D094380 /* CachedResponseHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 492890E964DEF8C3B1433A657A32761D /* CachedResponseHandler.swift */; }; + 079F0820555C5B86C9FBD5EC6344137F /* Protected.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36C3C5FB0C945042CB843B98D76EE212 /* Protected.swift */; }; + 11CCD832BD537718892C6A216A38490A /* URLRequest+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEF759D25265FAB82EF30C93FF20062A /* URLRequest+Alamofire.swift */; }; + 197457852FC83E905248660B0F930452 /* AuthenticationInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66A171A1378589CA57A656E338F69017 /* AuthenticationInterceptor.swift */; }; + 1AFD57838680DF58184FF94D14C7F3FF /* RequestInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 155320B123A5E710C35C19470431474D /* RequestInterceptor.swift */; }; 1F2BBE5F52608DEFCD764C78EC1E8679 /* Pods-PowerUpTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 972353E978D4231D0CDCA0CC128B02EB /* Pods-PowerUpTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2C3FBDBB0815930AE6D237D3132F7AB5 /* SwiftKeychainWrapper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD3B183F2B832E75AB78E4306742985 /* SwiftKeychainWrapper-dummy.m */; }; - 2DD2A44F4FD88FC7541A5A9CDB746688 /* SwiftKeychainWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = E50C46D8B59DEC0895EBC924E7E1F9AB /* SwiftKeychainWrapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4D5CAB203E46FDEFC5FF48A820B5CA43 /* KeychainWrapperSubscript.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17BC4ECF36B8D66C3A362BC3659967B /* KeychainWrapperSubscript.swift */; }; - 547687992E274F060AFB78025F553417 /* Pods-PowerUp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5799AB139A3F217F8AAFD6540536FCAF /* Pods-PowerUp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6DEF962A6FB9C877A2D287D17FAF5A82 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 282FCD4EA8B05830E9108690B8CD336B /* Session.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2749025194FA83B53CFDAF73B64658C8 /* Session.swift */; }; + 2C3FBDBB0815930AE6D237D3132F7AB5 /* SwiftKeychainWrapper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4746090BAAD95A5421C5A8857451DD7D /* SwiftKeychainWrapper-dummy.m */; }; + 2DD2A44F4FD88FC7541A5A9CDB746688 /* SwiftKeychainWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AD0D804C4E4B56EFE39BAD4FE55174E /* SwiftKeychainWrapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 320C0D7A88AA812EFB20016BA1F5D7AE /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82C9FEE24C14A1D15BBE89CD8B6FCFC3 /* AFError.swift */; }; + 385BC4B250B6A6DB8AAAEA77D5B7A46F /* Combine.swift in Sources */ = {isa = PBXBuildFile; fileRef = A076B6FEB8E786F87FEEA861BE42849A /* Combine.swift */; }; + 3A59D8FBAF9A54906E3644AC80465AFB /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83E10341BE6F58757C3FA8C48AABB811 /* Notifications.swift */; }; + 3D8F0292757E2B1CB72E4DA65674C3FB /* Pods-PowerUp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 650702400DD5901F8FD11DF994E6059A /* Pods-PowerUp-dummy.m */; }; + 3ED869CD16B3A1D4414D4B44758AB76B /* Pods-PowerUp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5799AB139A3F217F8AAFD6540536FCAF /* Pods-PowerUp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3FA127A261BB563409868A0DC21807B2 /* ResponseSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFD6AF65CD3528B4CE893860CA7B36B1 /* ResponseSerialization.swift */; }; + 482B74C0548970BB9C095E2D8530E421 /* ParameterEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F54957D940521AFFA54D30D8CDDE36D /* ParameterEncoding.swift */; }; + 4D5CAB203E46FDEFC5FF48A820B5CA43 /* KeychainWrapperSubscript.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF0FB492575FA885F7FF387709B4087 /* KeychainWrapperSubscript.swift */; }; + 529173B31EFCD3D199E79866AFBEC86C /* HTTPHeaders.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFDAFD121E98B22E084CEC96B8FC7DBF /* HTTPHeaders.swift */; }; + 553329A1CF473AB06A869C1CBACFDCB3 /* Pods-PowerUp-PowerUpUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AF43FB23EC51B14469480C982F04B647 /* Pods-PowerUp-PowerUpUITests-dummy.m */; }; + 5B92A66A66BD639411C3D839A0F87B0C /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A5E3D9F543235E2A875E0960DCC4CBF /* Request.swift */; }; + 643A7AFFB7AEB70B2B9B7E0926055023 /* RetryPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5021D9176FC33D47120CC84DA81F66F /* RetryPolicy.swift */; }; + 67B10FEAA3B7E5387D20E76B1085E94D /* URLSessionConfiguration+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF14B5482A1D9C14C0AB5C866F0EADA6 /* URLSessionConfiguration+Alamofire.swift */; }; 70EFC12046DD9F05B22463011AF4331F /* Pods-PowerUpTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EC416C491B6447A2AA20146F11C9669 /* Pods-PowerUpTests-dummy.m */; }; - AB199F4BD1188875FF9F6C5D47B910A8 /* Pods-PowerUp-PowerUpUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AF43FB23EC51B14469480C982F04B647 /* Pods-PowerUp-PowerUpUITests-dummy.m */; }; - D005939236F0DC4DE94D3162E4A21E6B /* KeychainItemAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 401FEAAE1F19BDC26BAF62CC7FA30A96 /* KeychainItemAccessibility.swift */; }; - DBBF7B5297187AD91D0B5646B6F22B22 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - E7D976091250A09655570BD888AAEFFC /* KeychainWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5AE5E9472BF525BD3E705261568E5199 /* KeychainWrapper.swift */; }; - ECD03F70BD29FA94C00C61CE232B3F33 /* SwiftKeychainWrapper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E305D3EE71B912A8108E1C1BA65FF413 /* SwiftKeychainWrapper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F2C295BC641A64853FE36228606A3294 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 732C29255F73EF3D83D49BD4F8FEAA8F /* MultipartUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 809984AA7DC4C4DE06F94C93F3F31F68 /* MultipartUpload.swift */; }; + 737747B9A98257DB58112C3A23686669 /* MultipartFormData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84ECC50F91C6ED215795ACEEE0287100 /* MultipartFormData.swift */; }; + 77AB6AF4BFC6DE016DA7C057B5799C84 /* ServerTrustEvaluation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 520A1CC575874DE1155E941312B8F162 /* ServerTrustEvaluation.swift */; }; + 78B1DD1219182494A6AFAD26AAB20AA6 /* Concurrency.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79525E84FDDF1E347CCD7877AC264C0D /* Concurrency.swift */; }; + 78EF7E99BBDB349EB2FB3C0E5D73A21A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD0CE05D5D076B1B5190EE5DF97FD54E /* Foundation.framework */; }; + 7BC6E318493F76F5D3A07D516D38236F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD0CE05D5D076B1B5190EE5DF97FD54E /* Foundation.framework */; }; + 7D64BC3E6CAA4AB54EAC0AAADE93F578 /* OperationQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6344A752BA47A0DBBA274E2D06B5FBA /* OperationQueue+Alamofire.swift */; }; + 81E6A0FF7F286008345ECFA3A2103FA8 /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 403513E0A6F0474762A8971124260F75 /* Alamofire.swift */; }; + 82FD97FBBEFE51E2D3B434AF4954FC93 /* EventMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67BC0604A17B2F8C6342EEC7E1AD2C91 /* EventMonitor.swift */; }; + 8E698F134A953250D5834C8B83CDAD34 /* DispatchQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BDF726C4B6F23821730DF59F27F1A8 /* DispatchQueue+Alamofire.swift */; }; + 8E85763AE29BEF0A46EE875B8F069E8E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD0CE05D5D076B1B5190EE5DF97FD54E /* Foundation.framework */; }; + A523488C60BF961290D0B1ABB9ADACEC /* RequestCompression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93119AC21A0AFDB18491C0FBEA76F4E8 /* RequestCompression.swift */; }; + AA721ECC2B36AFB7D9FE70C83E6D63F9 /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48143438C90609D239F36AAFC5F6A846 /* Response.swift */; }; + B17D933C8F8BC6A4F91AA620D7D7A870 /* ParameterEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = C353F30FD1BCD3980906A5F0330D44A1 /* ParameterEncoder.swift */; }; + BAB17A1C6CAD14B3788973EAF8466C93 /* NetworkReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD750CBD48B53AD6A1622B9A571211F9 /* NetworkReachabilityManager.swift */; }; + C04739CBCEE445B66192BFA708655EDF /* StringEncoding+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B3AAC6B8CCF6783E1734A8148F6F057 /* StringEncoding+Alamofire.swift */; }; + C8269B42DED12AB1F275648D0BD32E45 /* URLEncodedFormEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18912D63AB7BE6672195C92E646962D4 /* URLEncodedFormEncoder.swift */; }; + D005939236F0DC4DE94D3162E4A21E6B /* KeychainItemAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC72696DB5B86F77322B409F5C3B3097 /* KeychainItemAccessibility.swift */; }; + D0560E8E2E5EB407B5D8E0381BF453FA /* URLConvertible+URLRequestConvertible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 980AD000837D128A8F4A4D128BF66299 /* URLConvertible+URLRequestConvertible.swift */; }; + D09FBBADAF7C5C757AA5AB5DFE54BD25 /* Alamofire-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FD7D16E748EBF929A1B5F0C71A2421 /* Alamofire-dummy.m */; }; + D368E6F70C5E6998548A72E65F92432D /* Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F2A370F3AA6185699E5C9291637FD69 /* Validation.swift */; }; + D7BCBE1EB4A638403C265CE2199EFF1B /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8D3D57353834825F7B52B816066B7789 /* CFNetwork.framework */; }; + E6251F02EE12804D1B66AE32E716E664 /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E28059F69337F068381297699C57D83F /* SessionDelegate.swift */; }; + E7D976091250A09655570BD888AAEFFC /* KeychainWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = B17EE43DA1E40E10E9D17E4DB968F205 /* KeychainWrapper.swift */; }; + ECD03F70BD29FA94C00C61CE232B3F33 /* SwiftKeychainWrapper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3426D65806EC04F28F48F00127D19314 /* SwiftKeychainWrapper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ECE6F23823454A8FDB3F97CE1A7CD182 /* RedirectHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 300099B2CF25A7D6DA7048267AF51457 /* RedirectHandler.swift */; }; + ECF2F956B37A4C28B228BC291A57AD6E /* RequestTaskMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = C90DCFB1BC5BDBA17EF0DE05B8E484CD /* RequestTaskMap.swift */; }; + F038D81F7ABAA15CF03246AD4BF334F7 /* Alamofire-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 157E265F2B0AFAB5A5CC9BF4636601F5 /* Alamofire-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2415AE8678DE2698B7AD7D88B1A5C0F /* AlamofireExtended.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0646E99BB8700FBA55B17F7F448B7EA1 /* AlamofireExtended.swift */; }; + F2C295BC641A64853FE36228606A3294 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD0CE05D5D076B1B5190EE5DF97FD54E /* Foundation.framework */; }; + F369C18DF935B4E097AEC0EA32B24F56 /* Pods-PowerUp-PowerUpUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2172621237EFED83C5F5A9F0900D5985 /* Pods-PowerUp-PowerUpUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F66CC47AD425C8D57BD149AFD09C2AFE /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18BB81275FF31B9D0F730E6B16EAF6A /* HTTPMethod.swift */; }; + F6E94E8EE1CE35F49B9091BE8748587B /* Result+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BAB4652888328569EE3AC8C8D70880A /* Result+Alamofire.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 7FF4A995E002779358F3588BA8B85632 /* PBXContainerItemProxy */ = { + 2323037D50FF5B6EE7EE1CC673A1B067 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = CF903DF43E111410ECA0C288D36FA21A; - remoteInfo = SwiftKeychainWrapper; + remoteGlobalIDString = 476C0C98426C94FADFD4DC33EB76D8C6; + remoteInfo = "Pods-PowerUp"; }; - E5923715BA81933D2B5D19E94983FD31 /* PBXContainerItemProxy */ = { + 3A29176E06F23AF206D79D6E2EB67744 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = CF903DF43E111410ECA0C288D36FA21A; remoteInfo = SwiftKeychainWrapper; }; - EAAB9904C3CFE6B994B2B1A92832E618 /* PBXContainerItemProxy */ = { + 4746F6F24D4552ADACB25E1C9065C03D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 476C0C98426C94FADFD4DC33EB76D8C6; - remoteInfo = "Pods-PowerUp"; + remoteGlobalIDString = EAAA1AD3A8A1B59AB91319EE40752C6D; + remoteInfo = Alamofire; + }; + 50C3736D3F8A312FF970F72A6113E637 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EAAA1AD3A8A1B59AB91319EE40752C6D; + remoteInfo = Alamofire; + }; + 6465B3E6CF50F45333917D2017D744B3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CF903DF43E111410ECA0C288D36FA21A; + remoteInfo = SwiftKeychainWrapper; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 0646E99BB8700FBA55B17F7F448B7EA1 /* AlamofireExtended.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AlamofireExtended.swift; path = Source/AlamofireExtended.swift; sourceTree = ""; }; + 065A424EF4762ACB7AA3073BD1534DC5 /* SwiftKeychainWrapper-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftKeychainWrapper-prefix.pch"; sourceTree = ""; }; + 08FD7D16E748EBF929A1B5F0C71A2421 /* Alamofire-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Alamofire-dummy.m"; sourceTree = ""; }; 1252F15C4CC5A8510EAF429278FA450C /* Pods-PowerUp-PowerUpUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUp-PowerUpUITests-acknowledgements.plist"; sourceTree = ""; }; + 155320B123A5E710C35C19470431474D /* RequestInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestInterceptor.swift; path = Source/RequestInterceptor.swift; sourceTree = ""; }; + 157E265F2B0AFAB5A5CC9BF4636601F5 /* Alamofire-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-umbrella.h"; sourceTree = ""; }; + 18912D63AB7BE6672195C92E646962D4 /* URLEncodedFormEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLEncodedFormEncoder.swift; path = Source/URLEncodedFormEncoder.swift; sourceTree = ""; }; + 1AD0D804C4E4B56EFE39BAD4FE55174E /* SwiftKeychainWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SwiftKeychainWrapper.h; path = SwiftKeychainWrapper/SwiftKeychainWrapper.h; sourceTree = ""; }; 1EC416C491B6447A2AA20146F11C9669 /* Pods-PowerUpTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PowerUpTests-dummy.m"; sourceTree = ""; }; 20ED28AFC324E7BA448DDE811B42E07A /* Pods-PowerUpTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUpTests-Info.plist"; sourceTree = ""; }; 2172621237EFED83C5F5A9F0900D5985 /* Pods-PowerUp-PowerUpUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PowerUp-PowerUpUITests-umbrella.h"; sourceTree = ""; }; 26E7827087DAE0521FFF44871D80C93D /* Pods-PowerUp-PowerUpUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUp-PowerUpUITests.release.xcconfig"; sourceTree = ""; }; - 401FEAAE1F19BDC26BAF62CC7FA30A96 /* KeychainItemAccessibility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainItemAccessibility.swift; path = SwiftKeychainWrapper/KeychainItemAccessibility.swift; sourceTree = ""; }; + 2749025194FA83B53CFDAF73B64658C8 /* Session.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Session.swift; path = Source/Session.swift; sourceTree = ""; }; + 300099B2CF25A7D6DA7048267AF51457 /* RedirectHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RedirectHandler.swift; path = Source/RedirectHandler.swift; sourceTree = ""; }; + 3426D65806EC04F28F48F00127D19314 /* SwiftKeychainWrapper-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftKeychainWrapper-umbrella.h"; sourceTree = ""; }; + 36C3C5FB0C945042CB843B98D76EE212 /* Protected.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Protected.swift; path = Source/Protected.swift; sourceTree = ""; }; + 403513E0A6F0474762A8971124260F75 /* Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Alamofire.swift; path = Source/Alamofire.swift; sourceTree = ""; }; + 4746090BAAD95A5421C5A8857451DD7D /* SwiftKeychainWrapper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftKeychainWrapper-dummy.m"; sourceTree = ""; }; + 48143438C90609D239F36AAFC5F6A846 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = Source/Response.swift; sourceTree = ""; }; + 492890E964DEF8C3B1433A657A32761D /* CachedResponseHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CachedResponseHandler.swift; path = Source/CachedResponseHandler.swift; sourceTree = ""; }; 4CC410D60E3A2F9C7804E1F95777CD87 /* Pods-PowerUp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUp.debug.xcconfig"; sourceTree = ""; }; - 4CD3B183F2B832E75AB78E4306742985 /* SwiftKeychainWrapper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftKeychainWrapper-dummy.m"; sourceTree = ""; }; + 4F54957D940521AFFA54D30D8CDDE36D /* ParameterEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoding.swift; path = Source/ParameterEncoding.swift; sourceTree = ""; }; 5069D199AB328CCD047E61C632CD7C32 /* SwiftKeychainWrapper */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SwiftKeychainWrapper; path = SwiftKeychainWrapper.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 51BDF726C4B6F23821730DF59F27F1A8 /* DispatchQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Alamofire.swift"; path = "Source/DispatchQueue+Alamofire.swift"; sourceTree = ""; }; + 520A1CC575874DE1155E941312B8F162 /* ServerTrustEvaluation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServerTrustEvaluation.swift; path = Source/ServerTrustEvaluation.swift; sourceTree = ""; }; 5493DA2643AEE06347105DD54F8F1DEB /* Pods-PowerUp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUp-Info.plist"; sourceTree = ""; }; 5799AB139A3F217F8AAFD6540536FCAF /* Pods-PowerUp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PowerUp-umbrella.h"; sourceTree = ""; }; 59B06BB0F43DC8FBF64B9611F232B23A /* Pods-PowerUp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PowerUp-acknowledgements.markdown"; sourceTree = ""; }; - 5AE5E9472BF525BD3E705261568E5199 /* KeychainWrapper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainWrapper.swift; path = SwiftKeychainWrapper/KeychainWrapper.swift; sourceTree = ""; }; 5B3A3D886C7912CFE90B065772A6E5A1 /* Pods-PowerUpTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUpTests.release.xcconfig"; sourceTree = ""; }; - 5CFB04FEB4458AA699A90B3398293537 /* SwiftKeychainWrapper.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftKeychainWrapper.debug.xcconfig; sourceTree = ""; }; + 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Alamofire; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5F2A370F3AA6185699E5C9291637FD69 /* Validation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Validation.swift; path = Source/Validation.swift; sourceTree = ""; }; + 64AFC79D07D07246266B7EE6519C983C /* Alamofire.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.release.xcconfig; sourceTree = ""; }; 650702400DD5901F8FD11DF994E6059A /* Pods-PowerUp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PowerUp-dummy.m"; sourceTree = ""; }; 65BC23A8E471ADB39AD491B1C32ED7E0 /* Pods-PowerUp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PowerUp.modulemap"; sourceTree = ""; }; - 66A1EC832952C8C8FD3F4346A2B74B4A /* SwiftKeychainWrapper-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SwiftKeychainWrapper-Info.plist"; sourceTree = ""; }; + 66A171A1378589CA57A656E338F69017 /* AuthenticationInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AuthenticationInterceptor.swift; path = Source/AuthenticationInterceptor.swift; sourceTree = ""; }; 679BBBA92C4FF3D6180AEFCA12AF3175 /* Pods-PowerUp-PowerUpUITests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-PowerUp-PowerUpUITests"; path = Pods_PowerUp_PowerUpUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 67BC0604A17B2F8C6342EEC7E1AD2C91 /* EventMonitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EventMonitor.swift; path = Source/EventMonitor.swift; sourceTree = ""; }; + 6AEB2C59BF74EA5663135847216D57F7 /* Alamofire.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.debug.xcconfig; sourceTree = ""; }; + 6DB057F92377D73C5B8E3D19E7607A3D /* SwiftKeychainWrapper.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SwiftKeychainWrapper.modulemap; sourceTree = ""; }; + 6E0EDE8DAA8EE459ABB011FDA633DE02 /* SwiftKeychainWrapper.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftKeychainWrapper.release.xcconfig; sourceTree = ""; }; 772F9BBE013EF6AC8847DE2546BFA2AE /* Pods-PowerUpTests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-PowerUpTests"; path = Pods_PowerUpTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 79525E84FDDF1E347CCD7877AC264C0D /* Concurrency.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Concurrency.swift; path = Source/Concurrency.swift; sourceTree = ""; }; + 7A5E3D9F543235E2A875E0960DCC4CBF /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = Source/Request.swift; sourceTree = ""; }; + 7B3AAC6B8CCF6783E1734A8148F6F057 /* StringEncoding+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "StringEncoding+Alamofire.swift"; path = "Source/StringEncoding+Alamofire.swift"; sourceTree = ""; }; + 7BAB4652888328569EE3AC8C8D70880A /* Result+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Result+Alamofire.swift"; path = "Source/Result+Alamofire.swift"; sourceTree = ""; }; + 809984AA7DC4C4DE06F94C93F3F31F68 /* MultipartUpload.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartUpload.swift; path = Source/MultipartUpload.swift; sourceTree = ""; }; + 82C9FEE24C14A1D15BBE89CD8B6FCFC3 /* AFError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AFError.swift; path = Source/AFError.swift; sourceTree = ""; }; + 83E10341BE6F58757C3FA8C48AABB811 /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Source/Notifications.swift; sourceTree = ""; }; + 84ECC50F91C6ED215795ACEEE0287100 /* MultipartFormData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartFormData.swift; path = Source/MultipartFormData.swift; sourceTree = ""; }; + 8D3D57353834825F7B52B816066B7789 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; }; + 93119AC21A0AFDB18491C0FBEA76F4E8 /* RequestCompression.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestCompression.swift; path = Source/RequestCompression.swift; sourceTree = ""; }; 972353E978D4231D0CDCA0CC128B02EB /* Pods-PowerUpTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PowerUpTests-umbrella.h"; sourceTree = ""; }; + 980AD000837D128A8F4A4D128BF66299 /* URLConvertible+URLRequestConvertible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLConvertible+URLRequestConvertible.swift"; path = "Source/URLConvertible+URLRequestConvertible.swift"; sourceTree = ""; }; 9AAB23B833496B2179F485E868A6AEF1 /* Pods-PowerUp-PowerUpUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUp-PowerUpUITests-Info.plist"; sourceTree = ""; }; + 9D16945F2DAA2B44D388DC00EDCCC786 /* Alamofire.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Alamofire.modulemap; sourceTree = ""; }; 9D18E990689473A176C8D659C67BD1F7 /* Pods-PowerUp-PowerUpUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUp-PowerUpUITests.debug.xcconfig"; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A076B6FEB8E786F87FEEA861BE42849A /* Combine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Combine.swift; path = Source/Combine.swift; sourceTree = ""; }; A36803CFE10823E1BB3DF4C229313EA3 /* Pods-PowerUp-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PowerUp-frameworks.sh"; sourceTree = ""; }; A9306E425980F66DE0C0046983B85279 /* Pods-PowerUp-PowerUpUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PowerUp-PowerUpUITests-frameworks.sh"; sourceTree = ""; }; + AD750CBD48B53AD6A1622B9A571211F9 /* NetworkReachabilityManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkReachabilityManager.swift; path = Source/NetworkReachabilityManager.swift; sourceTree = ""; }; AF43FB23EC51B14469480C982F04B647 /* Pods-PowerUp-PowerUpUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PowerUp-PowerUpUITests-dummy.m"; sourceTree = ""; }; - AF488A977815A1B45CDC7E94AAF1DEEC /* SwiftKeychainWrapper-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftKeychainWrapper-prefix.pch"; sourceTree = ""; }; AF8B2DB8F0273F86A3C6D79515BB355E /* Pods-PowerUpTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUpTests-acknowledgements.plist"; sourceTree = ""; }; B11240D995CC8BD3DDA123EBFE4D84B4 /* Pods-PowerUp-PowerUpUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PowerUp-PowerUpUITests.modulemap"; sourceTree = ""; }; + B17EE43DA1E40E10E9D17E4DB968F205 /* KeychainWrapper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainWrapper.swift; path = SwiftKeychainWrapper/KeychainWrapper.swift; sourceTree = ""; }; + B6344A752BA47A0DBBA274E2D06B5FBA /* OperationQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "OperationQueue+Alamofire.swift"; path = "Source/OperationQueue+Alamofire.swift"; sourceTree = ""; }; + BC72696DB5B86F77322B409F5C3B3097 /* KeychainItemAccessibility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainItemAccessibility.swift; path = SwiftKeychainWrapper/KeychainItemAccessibility.swift; sourceTree = ""; }; + BEF759D25265FAB82EF30C93FF20062A /* URLRequest+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLRequest+Alamofire.swift"; path = "Source/URLRequest+Alamofire.swift"; sourceTree = ""; }; + BFD6AF65CD3528B4CE893860CA7B36B1 /* ResponseSerialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseSerialization.swift; path = Source/ResponseSerialization.swift; sourceTree = ""; }; + C25F3B66061C1B2503CA695288EDC4AF /* SwiftKeychainWrapper-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SwiftKeychainWrapper-Info.plist"; sourceTree = ""; }; C268C0BFFA51D313317A1F7AA7AFFD0B /* Pods-PowerUp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUp.release.xcconfig"; sourceTree = ""; }; + C353F30FD1BCD3980906A5F0330D44A1 /* ParameterEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoder.swift; path = Source/ParameterEncoder.swift; sourceTree = ""; }; + C42ADCCD11AE48052F7DE73D9DB83016 /* Alamofire-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Alamofire-Info.plist"; sourceTree = ""; }; + C453043E66AE205765AD45D57C444A1F /* Alamofire-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-prefix.pch"; sourceTree = ""; }; + C90DCFB1BC5BDBA17EF0DE05B8E484CD /* RequestTaskMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestTaskMap.swift; path = Source/RequestTaskMap.swift; sourceTree = ""; }; CB6998EF9CAA7E4E97DF1BDAD9830594 /* Pods-PowerUp-PowerUpUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PowerUp-PowerUpUITests-acknowledgements.markdown"; sourceTree = ""; }; CBD2CEE5F2964AC0CE867488CC8182E4 /* Pods-PowerUpTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PowerUpTests.debug.xcconfig"; sourceTree = ""; }; CE916E32CFDEC602C6355B08E0C91172 /* Pods-PowerUpTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PowerUpTests.modulemap"; sourceTree = ""; }; - D17BC4ECF36B8D66C3A362BC3659967B /* KeychainWrapperSubscript.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainWrapperSubscript.swift; path = SwiftKeychainWrapper/KeychainWrapperSubscript.swift; sourceTree = ""; }; + D18BB81275FF31B9D0F730E6B16EAF6A /* HTTPMethod.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HTTPMethod.swift; path = Source/HTTPMethod.swift; sourceTree = ""; }; D5A73AF4313CEA92639EE1587D70071C /* Pods-PowerUpTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PowerUpTests-acknowledgements.markdown"; sourceTree = ""; }; - E05A6FC530DC5A853665D015CB29AECE /* SwiftKeychainWrapper.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SwiftKeychainWrapper.modulemap; sourceTree = ""; }; + DFDAFD121E98B22E084CEC96B8FC7DBF /* HTTPHeaders.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HTTPHeaders.swift; path = Source/HTTPHeaders.swift; sourceTree = ""; }; E27C4C7ACE0148581B517150932720A7 /* Pods-PowerUp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PowerUp-acknowledgements.plist"; sourceTree = ""; }; - E305D3EE71B912A8108E1C1BA65FF413 /* SwiftKeychainWrapper-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftKeychainWrapper-umbrella.h"; sourceTree = ""; }; - E50C46D8B59DEC0895EBC924E7E1F9AB /* SwiftKeychainWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SwiftKeychainWrapper.h; path = SwiftKeychainWrapper/SwiftKeychainWrapper.h; sourceTree = ""; }; - EF9D370359AADCA0963C43618AAB128C /* SwiftKeychainWrapper.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftKeychainWrapper.release.xcconfig; sourceTree = ""; }; + E28059F69337F068381297699C57D83F /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Source/SessionDelegate.swift; sourceTree = ""; }; + E5021D9176FC33D47120CC84DA81F66F /* RetryPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RetryPolicy.swift; path = Source/RetryPolicy.swift; sourceTree = ""; }; + EAF0FB492575FA885F7FF387709B4087 /* KeychainWrapperSubscript.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainWrapperSubscript.swift; path = SwiftKeychainWrapper/KeychainWrapperSubscript.swift; sourceTree = ""; }; F03057FCFD9F5F71152527521E9027EC /* Pods-PowerUp */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-PowerUp"; path = Pods_PowerUp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FA1E0F5C05D198621068FCA8A55FFB90 /* SwiftKeychainWrapper.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftKeychainWrapper.debug.xcconfig; sourceTree = ""; }; + FD0CE05D5D076B1B5190EE5DF97FD54E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + FF14B5482A1D9C14C0AB5C866F0EADA6 /* URLSessionConfiguration+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLSessionConfiguration+Alamofire.swift"; path = "Source/URLSessionConfiguration+Alamofire.swift"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 00A74AC852615C495503161E0E619575 /* Frameworks */ = { + 22CB76324A659B721744816B6E55CF2E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DBBF7B5297187AD91D0B5646B6F22B22 /* Foundation.framework in Frameworks */, + F2C295BC641A64853FE36228606A3294 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 22CB76324A659B721744816B6E55CF2E /* Frameworks */ = { + 5BF6E64D3157435E5797A5278584A4DC /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F2C295BC641A64853FE36228606A3294 /* Foundation.framework in Frameworks */, + D7BCBE1EB4A638403C265CE2199EFF1B /* CFNetwork.framework in Frameworks */, + 8E85763AE29BEF0A46EE875B8F069E8E /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 77D9ED936E1724DEDEB2386BFB69FC1C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 78EF7E99BBDB349EB2FB3C0E5D73A21A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 91F0D5CBEDAC43958EE0CEF085E3DE7C /* Frameworks */ = { + 993B5EA204806D620C2F163C1D431D89 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6DEF962A6FB9C877A2D287D17FAF5A82 /* Foundation.framework in Frameworks */, + 7BC6E318493F76F5D3A07D516D38236F /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -131,29 +241,71 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 4D648058B24BD4A367AD82ADF04F7334 /* Products */ = { + 01CDB0CEAD280119591F18544ADAB7CE /* SwiftKeychainWrapper */ = { isa = PBXGroup; children = ( - F03057FCFD9F5F71152527521E9027EC /* Pods-PowerUp */, - 679BBBA92C4FF3D6180AEFCA12AF3175 /* Pods-PowerUp-PowerUpUITests */, - 772F9BBE013EF6AC8847DE2546BFA2AE /* Pods-PowerUpTests */, - 5069D199AB328CCD047E61C632CD7C32 /* SwiftKeychainWrapper */, + BC72696DB5B86F77322B409F5C3B3097 /* KeychainItemAccessibility.swift */, + B17EE43DA1E40E10E9D17E4DB968F205 /* KeychainWrapper.swift */, + EAF0FB492575FA885F7FF387709B4087 /* KeychainWrapperSubscript.swift */, + 1AD0D804C4E4B56EFE39BAD4FE55174E /* SwiftKeychainWrapper.h */, + 56DE51366F66B70C4D202BE28B6EBA3F /* Support Files */, ); - name = Products; + name = SwiftKeychainWrapper; + path = SwiftKeychainWrapper; + sourceTree = ""; + }; + 100C866A2F595A0880F6DC23DF51C305 /* Support Files */ = { + isa = PBXGroup; + children = ( + 9D16945F2DAA2B44D388DC00EDCCC786 /* Alamofire.modulemap */, + 08FD7D16E748EBF929A1B5F0C71A2421 /* Alamofire-dummy.m */, + C42ADCCD11AE48052F7DE73D9DB83016 /* Alamofire-Info.plist */, + C453043E66AE205765AD45D57C444A1F /* Alamofire-prefix.pch */, + 157E265F2B0AFAB5A5CC9BF4636601F5 /* Alamofire-umbrella.h */, + 6AEB2C59BF74EA5663135847216D57F7 /* Alamofire.debug.xcconfig */, + 64AFC79D07D07246266B7EE6519C983C /* Alamofire.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/Alamofire"; + sourceTree = ""; + }; + 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 61C8CC330A5CA84DA2F5F1D32AB07069 /* iOS */, + ); + name = Frameworks; sourceTree = ""; }; - 4D9253D8D9382E21E72D01A5076FF530 /* Pods */ = { + 32A2BE47F3BB0916A6639E714E50F531 /* Pods */ = { isa = PBXGroup; children = ( - FD889C92A54761B6B2F24356812B3E85 /* SwiftKeychainWrapper */, + D8766CD6E595801B92EF284BB8B9CE4B /* Alamofire */, + 01CDB0CEAD280119591F18544ADAB7CE /* SwiftKeychainWrapper */, ); name = Pods; sourceTree = ""; }; - 578452D2E740E91742655AC8F1636D1F /* iOS */ = { + 56DE51366F66B70C4D202BE28B6EBA3F /* Support Files */ = { + isa = PBXGroup; + children = ( + 6DB057F92377D73C5B8E3D19E7607A3D /* SwiftKeychainWrapper.modulemap */, + 4746090BAAD95A5421C5A8857451DD7D /* SwiftKeychainWrapper-dummy.m */, + C25F3B66061C1B2503CA695288EDC4AF /* SwiftKeychainWrapper-Info.plist */, + 065A424EF4762ACB7AA3073BD1534DC5 /* SwiftKeychainWrapper-prefix.pch */, + 3426D65806EC04F28F48F00127D19314 /* SwiftKeychainWrapper-umbrella.h */, + FA1E0F5C05D198621068FCA8A55FFB90 /* SwiftKeychainWrapper.debug.xcconfig */, + 6E0EDE8DAA8EE459ABB011FDA633DE02 /* SwiftKeychainWrapper.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/SwiftKeychainWrapper"; + sourceTree = ""; + }; + 61C8CC330A5CA84DA2F5F1D32AB07069 /* iOS */ = { isa = PBXGroup; children = ( - 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */, + 8D3D57353834825F7B52B816066B7789 /* CFNetwork.framework */, + FD0CE05D5D076B1B5190EE5DF97FD54E /* Foundation.framework */, ); name = iOS; sourceTree = ""; @@ -206,34 +358,69 @@ isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, - 4D9253D8D9382E21E72D01A5076FF530 /* Pods */, - 4D648058B24BD4A367AD82ADF04F7334 /* Products */, + 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */, + 32A2BE47F3BB0916A6639E714E50F531 /* Pods */, + F882987345D82102AF7E0987BDF85029 /* Products */, A08ADDFF3C3B9C41728475272F9D3110 /* Targets Support Files */, ); sourceTree = ""; }; - D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { + D8766CD6E595801B92EF284BB8B9CE4B /* Alamofire */ = { isa = PBXGroup; children = ( - 578452D2E740E91742655AC8F1636D1F /* iOS */, + 82C9FEE24C14A1D15BBE89CD8B6FCFC3 /* AFError.swift */, + 403513E0A6F0474762A8971124260F75 /* Alamofire.swift */, + 0646E99BB8700FBA55B17F7F448B7EA1 /* AlamofireExtended.swift */, + 66A171A1378589CA57A656E338F69017 /* AuthenticationInterceptor.swift */, + 492890E964DEF8C3B1433A657A32761D /* CachedResponseHandler.swift */, + A076B6FEB8E786F87FEEA861BE42849A /* Combine.swift */, + 79525E84FDDF1E347CCD7877AC264C0D /* Concurrency.swift */, + 51BDF726C4B6F23821730DF59F27F1A8 /* DispatchQueue+Alamofire.swift */, + 67BC0604A17B2F8C6342EEC7E1AD2C91 /* EventMonitor.swift */, + DFDAFD121E98B22E084CEC96B8FC7DBF /* HTTPHeaders.swift */, + D18BB81275FF31B9D0F730E6B16EAF6A /* HTTPMethod.swift */, + 84ECC50F91C6ED215795ACEEE0287100 /* MultipartFormData.swift */, + 809984AA7DC4C4DE06F94C93F3F31F68 /* MultipartUpload.swift */, + AD750CBD48B53AD6A1622B9A571211F9 /* NetworkReachabilityManager.swift */, + 83E10341BE6F58757C3FA8C48AABB811 /* Notifications.swift */, + B6344A752BA47A0DBBA274E2D06B5FBA /* OperationQueue+Alamofire.swift */, + C353F30FD1BCD3980906A5F0330D44A1 /* ParameterEncoder.swift */, + 4F54957D940521AFFA54D30D8CDDE36D /* ParameterEncoding.swift */, + 36C3C5FB0C945042CB843B98D76EE212 /* Protected.swift */, + 300099B2CF25A7D6DA7048267AF51457 /* RedirectHandler.swift */, + 7A5E3D9F543235E2A875E0960DCC4CBF /* Request.swift */, + 93119AC21A0AFDB18491C0FBEA76F4E8 /* RequestCompression.swift */, + 155320B123A5E710C35C19470431474D /* RequestInterceptor.swift */, + C90DCFB1BC5BDBA17EF0DE05B8E484CD /* RequestTaskMap.swift */, + 48143438C90609D239F36AAFC5F6A846 /* Response.swift */, + BFD6AF65CD3528B4CE893860CA7B36B1 /* ResponseSerialization.swift */, + 7BAB4652888328569EE3AC8C8D70880A /* Result+Alamofire.swift */, + E5021D9176FC33D47120CC84DA81F66F /* RetryPolicy.swift */, + 520A1CC575874DE1155E941312B8F162 /* ServerTrustEvaluation.swift */, + 2749025194FA83B53CFDAF73B64658C8 /* Session.swift */, + E28059F69337F068381297699C57D83F /* SessionDelegate.swift */, + 7B3AAC6B8CCF6783E1734A8148F6F057 /* StringEncoding+Alamofire.swift */, + 980AD000837D128A8F4A4D128BF66299 /* URLConvertible+URLRequestConvertible.swift */, + 18912D63AB7BE6672195C92E646962D4 /* URLEncodedFormEncoder.swift */, + BEF759D25265FAB82EF30C93FF20062A /* URLRequest+Alamofire.swift */, + FF14B5482A1D9C14C0AB5C866F0EADA6 /* URLSessionConfiguration+Alamofire.swift */, + 5F2A370F3AA6185699E5C9291637FD69 /* Validation.swift */, + 100C866A2F595A0880F6DC23DF51C305 /* Support Files */, ); - name = Frameworks; + name = Alamofire; + path = Alamofire; sourceTree = ""; }; - DBF7F7D339302EBCE551E5A9B4185871 /* Support Files */ = { + F882987345D82102AF7E0987BDF85029 /* Products */ = { isa = PBXGroup; children = ( - E05A6FC530DC5A853665D015CB29AECE /* SwiftKeychainWrapper.modulemap */, - 4CD3B183F2B832E75AB78E4306742985 /* SwiftKeychainWrapper-dummy.m */, - 66A1EC832952C8C8FD3F4346A2B74B4A /* SwiftKeychainWrapper-Info.plist */, - AF488A977815A1B45CDC7E94AAF1DEEC /* SwiftKeychainWrapper-prefix.pch */, - E305D3EE71B912A8108E1C1BA65FF413 /* SwiftKeychainWrapper-umbrella.h */, - 5CFB04FEB4458AA699A90B3398293537 /* SwiftKeychainWrapper.debug.xcconfig */, - EF9D370359AADCA0963C43618AAB128C /* SwiftKeychainWrapper.release.xcconfig */, + 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire */, + F03057FCFD9F5F71152527521E9027EC /* Pods-PowerUp */, + 679BBBA92C4FF3D6180AEFCA12AF3175 /* Pods-PowerUp-PowerUpUITests */, + 772F9BBE013EF6AC8847DE2546BFA2AE /* Pods-PowerUpTests */, + 5069D199AB328CCD047E61C632CD7C32 /* SwiftKeychainWrapper */, ); - name = "Support Files"; - path = "../Target Support Files/SwiftKeychainWrapper"; + name = Products; sourceTree = ""; }; FCBF9056CDB8BC2272F0139F69226933 /* Pods-PowerUpTests */ = { @@ -252,35 +439,30 @@ path = "Target Support Files/Pods-PowerUpTests"; sourceTree = ""; }; - FD889C92A54761B6B2F24356812B3E85 /* SwiftKeychainWrapper */ = { - isa = PBXGroup; - children = ( - 401FEAAE1F19BDC26BAF62CC7FA30A96 /* KeychainItemAccessibility.swift */, - 5AE5E9472BF525BD3E705261568E5199 /* KeychainWrapper.swift */, - D17BC4ECF36B8D66C3A362BC3659967B /* KeychainWrapperSubscript.swift */, - E50C46D8B59DEC0895EBC924E7E1F9AB /* SwiftKeychainWrapper.h */, - DBF7F7D339302EBCE551E5A9B4185871 /* Support Files */, - ); - name = SwiftKeychainWrapper; - path = SwiftKeychainWrapper; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 47DF431299F5533BADE3F84774744A23 /* Headers */ = { + 18CD2DF39E67F84DDF541D3814845F9D /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 1F2BBE5F52608DEFCD764C78EC1E8679 /* Pods-PowerUpTests-umbrella.h in Headers */, + 3ED869CD16B3A1D4414D4B44758AB76B /* Pods-PowerUp-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 44A09C60B56DE58BA36A6F23E7C5A341 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + F369C18DF935B4E097AEC0EA32B24F56 /* Pods-PowerUp-PowerUpUITests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 6E603BD614FD31DA57FA8027F716A86C /* Headers */ = { + 47DF431299F5533BADE3F84774744A23 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 0D2C829DBA4D94629A8BF045009E4C35 /* Pods-PowerUp-PowerUpUITests-umbrella.h in Headers */, + 1F2BBE5F52608DEFCD764C78EC1E8679 /* Pods-PowerUpTests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -293,11 +475,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - FBB395F5595FFB1574D37811B63D637D /* Headers */ = { + ED12AA7015568FEE3FAA009FC97DAAD5 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 547687992E274F060AFB78025F553417 /* Pods-PowerUp-umbrella.h in Headers */, + F038D81F7ABAA15CF03246AD4BF334F7 /* Alamofire-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -316,7 +498,7 @@ buildRules = ( ); dependencies = ( - 64EBA2121ECDBF413D142965A39DD8CF /* PBXTargetDependency */, + 1A709A70FD09B643D7040F6B1F6F2766 /* PBXTargetDependency */, ); name = "Pods-PowerUpTests"; productName = Pods_PowerUpTests; @@ -325,17 +507,18 @@ }; 476C0C98426C94FADFD4DC33EB76D8C6 /* Pods-PowerUp */ = { isa = PBXNativeTarget; - buildConfigurationList = 6B1F7265710333447E2CEB4F5FF884D2 /* Build configuration list for PBXNativeTarget "Pods-PowerUp" */; + buildConfigurationList = 3D97D1158982A2029D65D815FA6011F1 /* Build configuration list for PBXNativeTarget "Pods-PowerUp" */; buildPhases = ( - FBB395F5595FFB1574D37811B63D637D /* Headers */, - 826FF3B5ACCEF1A2DBCE332BD1DCF97D /* Sources */, - 91F0D5CBEDAC43958EE0CEF085E3DE7C /* Frameworks */, - 122644D5D9C6AF8BD5E74FF32EAED0E6 /* Resources */, + 18CD2DF39E67F84DDF541D3814845F9D /* Headers */, + D868726002FB00676F07D2912BB21D43 /* Sources */, + 993B5EA204806D620C2F163C1D431D89 /* Frameworks */, + E89CF0A1DBE14291AD163138D3B2EAA1 /* Resources */, ); buildRules = ( ); dependencies = ( - 56AEDD89908895815DDEDE897F6D7F5E /* PBXTargetDependency */, + FE7773B7A3CB170081FE5DAD9968361C /* PBXTargetDependency */, + D5EE52DF806D89346F8B9BACC94C9B17 /* PBXTargetDependency */, ); name = "Pods-PowerUp"; productName = Pods_PowerUp; @@ -344,17 +527,18 @@ }; BD9088F68E61A657A20A13CB25D1959F /* Pods-PowerUp-PowerUpUITests */ = { isa = PBXNativeTarget; - buildConfigurationList = 4C6E917C739BB17DE52DAA78FF093A08 /* Build configuration list for PBXNativeTarget "Pods-PowerUp-PowerUpUITests" */; + buildConfigurationList = CD3914A9D5B2874B1E83BD513F2360EE /* Build configuration list for PBXNativeTarget "Pods-PowerUp-PowerUpUITests" */; buildPhases = ( - 6E603BD614FD31DA57FA8027F716A86C /* Headers */, - 1E1F7C72E7A6E78869F0E54FC70A578A /* Sources */, - 00A74AC852615C495503161E0E619575 /* Frameworks */, - C03BBF88A505EAC85F7E171B82C7BF08 /* Resources */, + 44A09C60B56DE58BA36A6F23E7C5A341 /* Headers */, + 631256EF22FCD6D538C21862D1CE3F92 /* Sources */, + 77D9ED936E1724DEDEB2386BFB69FC1C /* Frameworks */, + E9B9DEDA9C902263F59AB10D4599F3DB /* Resources */, ); buildRules = ( ); dependencies = ( - 7D2A98A800DF929849B3C4216BEF1DDC /* PBXTargetDependency */, + 354267AC5FB52C064FF4D5D2E3BE80CE /* PBXTargetDependency */, + 800710F4CED535D47E8D9ABA45ACEFA9 /* PBXTargetDependency */, ); name = "Pods-PowerUp-PowerUpUITests"; productName = Pods_PowerUp_PowerUpUITests; @@ -379,6 +563,24 @@ productReference = 5069D199AB328CCD047E61C632CD7C32 /* SwiftKeychainWrapper */; productType = "com.apple.product-type.framework"; }; + EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */ = { + isa = PBXNativeTarget; + buildConfigurationList = D7761A54AFA2998F27E0BC2FACC2EB53 /* Build configuration list for PBXNativeTarget "Alamofire" */; + buildPhases = ( + ED12AA7015568FEE3FAA009FC97DAAD5 /* Headers */, + 277C3B3F937C6D40D2B777A164FAB89D /* Sources */, + 5BF6E64D3157435E5797A5278584A4DC /* Frameworks */, + 565FD2058706F22D2347B30C65280F30 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Alamofire; + productName = Alamofire; + productReference = 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire */; + productType = "com.apple.product-type.framework"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -397,10 +599,11 @@ en, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = 4D648058B24BD4A367AD82ADF04F7334 /* Products */; + productRefGroup = F882987345D82102AF7E0987BDF85029 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( + EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */, 476C0C98426C94FADFD4DC33EB76D8C6 /* Pods-PowerUp */, BD9088F68E61A657A20A13CB25D1959F /* Pods-PowerUp-PowerUpUITests */, 0F2CB9A420AD8C96C4D1FBF4C5EF1765 /* Pods-PowerUpTests */, @@ -410,7 +613,7 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 122644D5D9C6AF8BD5E74FF32EAED0E6 /* Resources */ = { + 565FD2058706F22D2347B30C65280F30 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -424,14 +627,21 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C03BBF88A505EAC85F7E171B82C7BF08 /* Resources */ = { + C43BC878A5CB5CE6C59FF13F0DF23FA9 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - C43BC878A5CB5CE6C59FF13F0DF23FA9 /* Resources */ = { + E89CF0A1DBE14291AD163138D3B2EAA1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E9B9DEDA9C902263F59AB10D4599F3DB /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -449,11 +659,56 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 1E1F7C72E7A6E78869F0E54FC70A578A /* Sources */ = { + 277C3B3F937C6D40D2B777A164FAB89D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - AB199F4BD1188875FF9F6C5D47B910A8 /* Pods-PowerUp-PowerUpUITests-dummy.m in Sources */, + 320C0D7A88AA812EFB20016BA1F5D7AE /* AFError.swift in Sources */, + 81E6A0FF7F286008345ECFA3A2103FA8 /* Alamofire.swift in Sources */, + D09FBBADAF7C5C757AA5AB5DFE54BD25 /* Alamofire-dummy.m in Sources */, + F2415AE8678DE2698B7AD7D88B1A5C0F /* AlamofireExtended.swift in Sources */, + 197457852FC83E905248660B0F930452 /* AuthenticationInterceptor.swift in Sources */, + 04A8430BFC619C34E5F4D3878D094380 /* CachedResponseHandler.swift in Sources */, + 385BC4B250B6A6DB8AAAEA77D5B7A46F /* Combine.swift in Sources */, + 78B1DD1219182494A6AFAD26AAB20AA6 /* Concurrency.swift in Sources */, + 8E698F134A953250D5834C8B83CDAD34 /* DispatchQueue+Alamofire.swift in Sources */, + 82FD97FBBEFE51E2D3B434AF4954FC93 /* EventMonitor.swift in Sources */, + 529173B31EFCD3D199E79866AFBEC86C /* HTTPHeaders.swift in Sources */, + F66CC47AD425C8D57BD149AFD09C2AFE /* HTTPMethod.swift in Sources */, + 737747B9A98257DB58112C3A23686669 /* MultipartFormData.swift in Sources */, + 732C29255F73EF3D83D49BD4F8FEAA8F /* MultipartUpload.swift in Sources */, + BAB17A1C6CAD14B3788973EAF8466C93 /* NetworkReachabilityManager.swift in Sources */, + 3A59D8FBAF9A54906E3644AC80465AFB /* Notifications.swift in Sources */, + 7D64BC3E6CAA4AB54EAC0AAADE93F578 /* OperationQueue+Alamofire.swift in Sources */, + B17D933C8F8BC6A4F91AA620D7D7A870 /* ParameterEncoder.swift in Sources */, + 482B74C0548970BB9C095E2D8530E421 /* ParameterEncoding.swift in Sources */, + 079F0820555C5B86C9FBD5EC6344137F /* Protected.swift in Sources */, + ECE6F23823454A8FDB3F97CE1A7CD182 /* RedirectHandler.swift in Sources */, + 5B92A66A66BD639411C3D839A0F87B0C /* Request.swift in Sources */, + A523488C60BF961290D0B1ABB9ADACEC /* RequestCompression.swift in Sources */, + 1AFD57838680DF58184FF94D14C7F3FF /* RequestInterceptor.swift in Sources */, + ECF2F956B37A4C28B228BC291A57AD6E /* RequestTaskMap.swift in Sources */, + AA721ECC2B36AFB7D9FE70C83E6D63F9 /* Response.swift in Sources */, + 3FA127A261BB563409868A0DC21807B2 /* ResponseSerialization.swift in Sources */, + F6E94E8EE1CE35F49B9091BE8748587B /* Result+Alamofire.swift in Sources */, + 643A7AFFB7AEB70B2B9B7E0926055023 /* RetryPolicy.swift in Sources */, + 77AB6AF4BFC6DE016DA7C057B5799C84 /* ServerTrustEvaluation.swift in Sources */, + 282FCD4EA8B05830E9108690B8CD336B /* Session.swift in Sources */, + E6251F02EE12804D1B66AE32E716E664 /* SessionDelegate.swift in Sources */, + C04739CBCEE445B66192BFA708655EDF /* StringEncoding+Alamofire.swift in Sources */, + D0560E8E2E5EB407B5D8E0381BF453FA /* URLConvertible+URLRequestConvertible.swift in Sources */, + C8269B42DED12AB1F275648D0BD32E45 /* URLEncodedFormEncoder.swift in Sources */, + 11CCD832BD537718892C6A216A38490A /* URLRequest+Alamofire.swift in Sources */, + 67B10FEAA3B7E5387D20E76B1085E94D /* URLSessionConfiguration+Alamofire.swift in Sources */, + D368E6F70C5E6998548A72E65F92432D /* Validation.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 631256EF22FCD6D538C21862D1CE3F92 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 553329A1CF473AB06A869C1CBACFDCB3 /* Pods-PowerUp-PowerUpUITests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -468,41 +723,53 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 826FF3B5ACCEF1A2DBCE332BD1DCF97D /* Sources */ = { + D868726002FB00676F07D2912BB21D43 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 07614D85DCD9D7B87465D2B994687E4A /* Pods-PowerUp-dummy.m in Sources */, + 3D8F0292757E2B1CB72E4DA65674C3FB /* Pods-PowerUp-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 56AEDD89908895815DDEDE897F6D7F5E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SwiftKeychainWrapper; - target = CF903DF43E111410ECA0C288D36FA21A /* SwiftKeychainWrapper */; - targetProxy = E5923715BA81933D2B5D19E94983FD31 /* PBXContainerItemProxy */; - }; - 64EBA2121ECDBF413D142965A39DD8CF /* PBXTargetDependency */ = { + 1A709A70FD09B643D7040F6B1F6F2766 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Pods-PowerUp"; target = 476C0C98426C94FADFD4DC33EB76D8C6 /* Pods-PowerUp */; - targetProxy = EAAB9904C3CFE6B994B2B1A92832E618 /* PBXContainerItemProxy */; + targetProxy = 2323037D50FF5B6EE7EE1CC673A1B067 /* PBXContainerItemProxy */; }; - 7D2A98A800DF929849B3C4216BEF1DDC /* PBXTargetDependency */ = { + 354267AC5FB52C064FF4D5D2E3BE80CE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Alamofire; + target = EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */; + targetProxy = 50C3736D3F8A312FF970F72A6113E637 /* PBXContainerItemProxy */; + }; + 800710F4CED535D47E8D9ABA45ACEFA9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SwiftKeychainWrapper; + target = CF903DF43E111410ECA0C288D36FA21A /* SwiftKeychainWrapper */; + targetProxy = 6465B3E6CF50F45333917D2017D744B3 /* PBXContainerItemProxy */; + }; + D5EE52DF806D89346F8B9BACC94C9B17 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = SwiftKeychainWrapper; target = CF903DF43E111410ECA0C288D36FA21A /* SwiftKeychainWrapper */; - targetProxy = 7FF4A995E002779358F3588BA8B85632 /* PBXContainerItemProxy */; + targetProxy = 3A29176E06F23AF206D79D6E2EB67744 /* PBXContainerItemProxy */; + }; + FE7773B7A3CB170081FE5DAD9968361C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Alamofire; + target = EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */; + targetProxy = 4746F6F24D4552ADACB25E1C9065C03D /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 364058F34052B510799909B8A39752FC /* Release */ = { + 6A132E01B04C4EF8559B23B95BDCD322 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C268C0BFFA51D313317A1F7AA7AFFD0B /* Pods-PowerUp.release.xcconfig */; + baseConfigurationReference = 26E7827087DAE0521FFF44871D80C93D /* Pods-PowerUp-PowerUpUITests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -514,7 +781,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.4; LD_RUNPATH_SEARCH_PATHS = ( @@ -523,7 +790,7 @@ "@loader_path/Frameworks", ); MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -604,9 +871,43 @@ }; name = Debug; }; - 804DD9C25D0996EF250B91D21E9610B3 /* Debug */ = { + 8CD241342938F54A20E875C2AE5904F6 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9D18E990689473A176C8D659C67BD1F7 /* Pods-PowerUp-PowerUpUITests.debug.xcconfig */; + baseConfigurationReference = FA1E0F5C05D198621068FCA8A55FFB90 /* SwiftKeychainWrapper.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.modulemap"; + PRODUCT_MODULE_NAME = SwiftKeychainWrapper; + PRODUCT_NAME = SwiftKeychainWrapper; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9322A5CCEF7FCE5A9C959A95D8DAF382 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CBD2CEE5F2964AC0CE867488CC8182E4 /* Pods-PowerUpTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -618,7 +919,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.4; LD_RUNPATH_SEARCH_PATHS = ( @@ -627,7 +928,7 @@ "@loader_path/Frameworks", ); MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -641,9 +942,9 @@ }; name = Debug; }; - 8CD241342938F54A20E875C2AE5904F6 /* Debug */ = { + 986CA13C16CB2180B15C7439E2C71672 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5CFB04FEB4458AA699A90B3398293537 /* SwiftKeychainWrapper.debug.xcconfig */; + baseConfigurationReference = 6E0EDE8DAA8EE459ABB011FDA633DE02 /* SwiftKeychainWrapper.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -670,14 +971,15 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 9322A5CCEF7FCE5A9C959A95D8DAF382 /* Debug */ = { + 9CC7F73A2050297B5C7B565DBB54531A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CBD2CEE5F2964AC0CE867488CC8182E4 /* Pods-PowerUpTests.debug.xcconfig */; + baseConfigurationReference = 5B3A3D886C7912CFE90B065772A6E5A1 /* Pods-PowerUpTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -707,15 +1009,54 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + A4218490DD6AB80697C9548AB2B0734F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4CC410D60E3A2F9C7804E1F95777CD87 /* Pods-PowerUp.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 986CA13C16CB2180B15C7439E2C71672 /* Release */ = { + B7D9E7CD650F798EC835C67DACFEBC4F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EF9D370359AADCA0963C43618AAB128C /* SwiftKeychainWrapper.release.xcconfig */; + baseConfigurationReference = 6AEB2C59BF74EA5663135847216D57F7 /* Alamofire.debug.xcconfig */; buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -724,32 +1065,31 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Alamofire/Alamofire-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_FILE = "Target Support Files/SwiftKeychainWrapper/SwiftKeychainWrapper.modulemap"; - PRODUCT_MODULE_NAME = SwiftKeychainWrapper; - PRODUCT_NAME = SwiftKeychainWrapper; + MODULEMAP_FILE = "Target Support Files/Alamofire/Alamofire.modulemap"; + PRODUCT_MODULE_NAME = Alamofire; + PRODUCT_NAME = Alamofire; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; + SWIFT_VERSION = 5; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 9CC7F73A2050297B5C7B565DBB54531A /* Release */ = { + B8B3662FA545949E2A0582BD36CB27B5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5B3A3D886C7912CFE90B065772A6E5A1 /* Pods-PowerUpTests.release.xcconfig */; + baseConfigurationReference = C268C0BFFA51D313317A1F7AA7AFFD0B /* Pods-PowerUp.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -761,7 +1101,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.4; LD_RUNPATH_SEARCH_PATHS = ( @@ -770,7 +1110,7 @@ "@loader_path/Frameworks", ); MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -785,9 +1125,9 @@ }; name = Release; }; - A32D88EC2118B4C374A03C8CAF4C151C /* Debug */ = { + CF15EE7F089B2C3D719D6798AACE2CAF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4CC410D60E3A2F9C7804E1F95777CD87 /* Pods-PowerUp.debug.xcconfig */; + baseConfigurationReference = 9D18E990689473A176C8D659C67BD1F7 /* Pods-PowerUp-PowerUpUITests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -799,7 +1139,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 16.4; LD_RUNPATH_SEARCH_PATHS = ( @@ -808,7 +1148,7 @@ "@loader_path/Frameworks", ); MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PowerUp/Pods-PowerUp.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -822,11 +1162,10 @@ }; name = Debug; }; - DD45638C9002ABF1C42831C7DC0878AD /* Release */ = { + F5F3306F2C09AB4B623C805497E28D51 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 26E7827087DAE0521FFF44871D80C93D /* Pods-PowerUp-PowerUpUITests.release.xcconfig */; + baseConfigurationReference = 64AFC79D07D07246266B7EE6519C983C /* Alamofire.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -836,23 +1175,22 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Alamofire/Alamofire-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 16.4; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/Alamofire/Alamofire.modulemap"; + PRODUCT_MODULE_NAME = Alamofire; + PRODUCT_NAME = Alamofire; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -934,6 +1272,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 3D97D1158982A2029D65D815FA6011F1 /* Build configuration list for PBXNativeTarget "Pods-PowerUp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A4218490DD6AB80697C9548AB2B0734F /* Debug */, + B8B3662FA545949E2A0582BD36CB27B5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -943,29 +1290,29 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4C6E917C739BB17DE52DAA78FF093A08 /* Build configuration list for PBXNativeTarget "Pods-PowerUp-PowerUpUITests" */ = { + 98BCB2F8FCBF8621114310D5DB4657DB /* Build configuration list for PBXNativeTarget "SwiftKeychainWrapper" */ = { isa = XCConfigurationList; buildConfigurations = ( - 804DD9C25D0996EF250B91D21E9610B3 /* Debug */, - DD45638C9002ABF1C42831C7DC0878AD /* Release */, + 8CD241342938F54A20E875C2AE5904F6 /* Debug */, + 986CA13C16CB2180B15C7439E2C71672 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 6B1F7265710333447E2CEB4F5FF884D2 /* Build configuration list for PBXNativeTarget "Pods-PowerUp" */ = { + CD3914A9D5B2874B1E83BD513F2360EE /* Build configuration list for PBXNativeTarget "Pods-PowerUp-PowerUpUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( - A32D88EC2118B4C374A03C8CAF4C151C /* Debug */, - 364058F34052B510799909B8A39752FC /* Release */, + CF15EE7F089B2C3D719D6798AACE2CAF /* Debug */, + 6A132E01B04C4EF8559B23B95BDCD322 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 98BCB2F8FCBF8621114310D5DB4657DB /* Build configuration list for PBXNativeTarget "SwiftKeychainWrapper" */ = { + D7761A54AFA2998F27E0BC2FACC2EB53 /* Build configuration list for PBXNativeTarget "Alamofire" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8CD241342938F54A20E875C2AE5904F6 /* Debug */, - 986CA13C16CB2180B15C7439E2C71672 /* Release */, + B7D9E7CD650F798EC835C67DACFEBC4F /* Debug */, + F5F3306F2C09AB4B623C805497E28D51 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Alamofire.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Alamofire.xcscheme new file mode 100644 index 0000000..fe38b07 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Alamofire.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Pods-PowerUp-PowerUpUITests.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Pods-PowerUp-PowerUpUITests.xcscheme new file mode 100644 index 0000000..993539a --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Pods-PowerUp-PowerUpUITests.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Pods-PowerUp.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Pods-PowerUp.xcscheme new file mode 100644 index 0000000..a7548b3 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Pods-PowerUp.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Pods-PowerUpTests.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Pods-PowerUpTests.xcscheme new file mode 100644 index 0000000..af243a5 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/Pods-PowerUpTests.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/SwiftKeychainWrapper.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/SwiftKeychainWrapper.xcscheme new file mode 100644 index 0000000..a67fe8e --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/SwiftKeychainWrapper.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist index 1c6c56f..94c7ff0 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Pods/Pods.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,26 +4,43 @@ SchemeUserState - Pods-PowerUp-PowerUpUITests.xcscheme_^#shared#^_ + Alamofire.xcscheme + isShown + orderHint - 4 + 0 - Pods-PowerUp.xcscheme_^#shared#^_ + Pods-PowerUp-PowerUpUITests.xcscheme + isShown + orderHint 2 - Pods-PowerUpTests.xcscheme_^#shared#^_ + Pods-PowerUp.xcscheme + isShown + + orderHint + 1 + + Pods-PowerUpTests.xcscheme + + isShown + orderHint 3 - SwiftKeychainWrapper.xcscheme_^#shared#^_ + SwiftKeychainWrapper.xcscheme + isShown + orderHint - 1 + 4 + SuppressBuildableAutocreation + diff --git a/Pods/Target Support Files/Alamofire/Alamofire-Info.plist b/Pods/Target Support Files/Alamofire/Alamofire-Info.plist new file mode 100644 index 0000000..b22a6a3 --- /dev/null +++ b/Pods/Target Support Files/Alamofire/Alamofire-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + ${PODS_DEVELOPMENT_LANGUAGE} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.8.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Alamofire/Alamofire-dummy.m b/Pods/Target Support Files/Alamofire/Alamofire-dummy.m new file mode 100644 index 0000000..a6c4594 --- /dev/null +++ b/Pods/Target Support Files/Alamofire/Alamofire-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Alamofire : NSObject +@end +@implementation PodsDummy_Alamofire +@end diff --git a/Pods/Target Support Files/Alamofire/Alamofire-prefix.pch b/Pods/Target Support Files/Alamofire/Alamofire-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/Pods/Target Support Files/Alamofire/Alamofire-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Pods/Target Support Files/Alamofire/Alamofire-umbrella.h b/Pods/Target Support Files/Alamofire/Alamofire-umbrella.h new file mode 100644 index 0000000..00014e3 --- /dev/null +++ b/Pods/Target Support Files/Alamofire/Alamofire-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double AlamofireVersionNumber; +FOUNDATION_EXPORT const unsigned char AlamofireVersionString[]; + diff --git a/Pods/Target Support Files/Alamofire/Alamofire.debug.xcconfig b/Pods/Target Support Files/Alamofire/Alamofire.debug.xcconfig new file mode 100644 index 0000000..dbfd4d1 --- /dev/null +++ b/Pods/Target Support Files/Alamofire/Alamofire.debug.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Alamofire +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/Alamofire +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Alamofire/Alamofire.modulemap b/Pods/Target Support Files/Alamofire/Alamofire.modulemap new file mode 100644 index 0000000..d1f125f --- /dev/null +++ b/Pods/Target Support Files/Alamofire/Alamofire.modulemap @@ -0,0 +1,6 @@ +framework module Alamofire { + umbrella header "Alamofire-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Alamofire/Alamofire.release.xcconfig b/Pods/Target Support Files/Alamofire/Alamofire.release.xcconfig new file mode 100644 index 0000000..dbfd4d1 --- /dev/null +++ b/Pods/Target Support Files/Alamofire/Alamofire.release.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Alamofire +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "CFNetwork" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/Alamofire +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.markdown b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.markdown index bbf4a83..ad56cf3 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.markdown @@ -1,6 +1,29 @@ # Acknowledgements This application makes use of the following third party libraries: +## Alamofire + +Copyright (c) 2014-2022 Alamofire Software Foundation (http://alamofire.org/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + ## SwiftKeychainWrapper The MIT License (MIT) diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.plist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.plist index 59dde5e..0e1635c 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.plist +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-acknowledgements.plist @@ -12,6 +12,35 @@ Type PSGroupSpecifier + + FooterText + Copyright (c) 2014-2022 Alamofire Software Foundation (http://alamofire.org/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + License + MIT + Title + Alamofire + Type + PSGroupSpecifier + FooterText The MIT License (MIT) diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-input-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-input-files.xcfilelist index 08ccc11..6707c67 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-input-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-input-files.xcfilelist @@ -1,2 +1,3 @@ ${PODS_ROOT}/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh +${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework ${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-output-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-output-files.xcfilelist index 6edc35e..8aca91f 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-output-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Debug-output-files.xcfilelist @@ -1 +1,2 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-input-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-input-files.xcfilelist index 08ccc11..6707c67 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-input-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-input-files.xcfilelist @@ -1,2 +1,3 @@ ${PODS_ROOT}/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh +${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework ${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-output-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-output-files.xcfilelist index 6edc35e..8aca91f 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-output-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks-Release-output-files.xcfilelist @@ -1 +1,2 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh index ee40200..641623a 100755 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests-frameworks.sh @@ -176,9 +176,11 @@ code_sign_if_enabled() { } if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework" install_framework "${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework" install_framework "${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.debug.xcconfig b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.debug.xcconfig index 6f69f0d..e82cd9f 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.debug.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "CFNetwork" -framework "SwiftKeychainWrapper" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.release.xcconfig b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.release.xcconfig index 6f69f0d..e82cd9f 100644 --- a/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.release.xcconfig +++ b/Pods/Target Support Files/Pods-PowerUp-PowerUpUITests/Pods-PowerUp-PowerUpUITests.release.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "CFNetwork" -framework "SwiftKeychainWrapper" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.markdown b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.markdown index bbf4a83..ad56cf3 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.markdown @@ -1,6 +1,29 @@ # Acknowledgements This application makes use of the following third party libraries: +## Alamofire + +Copyright (c) 2014-2022 Alamofire Software Foundation (http://alamofire.org/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + ## SwiftKeychainWrapper The MIT License (MIT) diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.plist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.plist index 59dde5e..0e1635c 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.plist +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-acknowledgements.plist @@ -12,6 +12,35 @@ Type PSGroupSpecifier + + FooterText + Copyright (c) 2014-2022 Alamofire Software Foundation (http://alamofire.org/) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + License + MIT + Title + Alamofire + Type + PSGroupSpecifier + FooterText The MIT License (MIT) diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-input-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-input-files.xcfilelist index b4233fc..0a96cdf 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-input-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-input-files.xcfilelist @@ -1,2 +1,3 @@ ${PODS_ROOT}/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh +${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework ${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-output-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-output-files.xcfilelist index 6edc35e..8aca91f 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-output-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Debug-output-files.xcfilelist @@ -1 +1,2 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-input-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-input-files.xcfilelist index b4233fc..0a96cdf 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-input-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-input-files.xcfilelist @@ -1,2 +1,3 @@ ${PODS_ROOT}/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh +${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework ${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-output-files.xcfilelist b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-output-files.xcfilelist index 6edc35e..8aca91f 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-output-files.xcfilelist +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks-Release-output-files.xcfilelist @@ -1 +1,2 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftKeychainWrapper.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh index ee40200..641623a 100755 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp-frameworks.sh @@ -176,9 +176,11 @@ code_sign_if_enabled() { } if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework" install_framework "${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework" install_framework "${BUILT_PRODUCTS_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.debug.xcconfig b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.debug.xcconfig index b97ddf1..4b4d3ee 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.debug.xcconfig +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.debug.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "CFNetwork" -framework "SwiftKeychainWrapper" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.release.xcconfig b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.release.xcconfig index b97ddf1..4b4d3ee 100644 --- a/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.release.xcconfig +++ b/Pods/Target Support Files/Pods-PowerUp/Pods-PowerUp.release.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "CFNetwork" -framework "SwiftKeychainWrapper" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.debug.xcconfig b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.debug.xcconfig index 52b8e1f..5e90837 100644 --- a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.debug.xcconfig @@ -1,8 +1,8 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "CFNetwork" -framework "SwiftKeychainWrapper" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.release.xcconfig b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.release.xcconfig index 52b8e1f..5e90837 100644 --- a/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.release.xcconfig +++ b/Pods/Target Support Files/Pods-PowerUpTests/Pods-PowerUpTests.release.xcconfig @@ -1,8 +1,8 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "SwiftKeychainWrapper" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftKeychainWrapper/SwiftKeychainWrapper.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "CFNetwork" -framework "SwiftKeychainWrapper" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/PowerUp.xcodeproj/project.pbxproj b/PowerUp.xcodeproj/project.pbxproj index 243bdb8..2e42e28 100644 --- a/PowerUp.xcodeproj/project.pbxproj +++ b/PowerUp.xcodeproj/project.pbxproj @@ -14,6 +14,8 @@ 111834A22B0C137D00EB24C4 /* CafeWithDistance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1118349E2B0C137D00EB24C4 /* CafeWithDistance.swift */; }; 111834A32B0C137D00EB24C4 /* Coordinate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1118349F2B0C137D00EB24C4 /* Coordinate.swift */; }; 111834A42B0C137D00EB24C4 /* Cafe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 111834A02B0C137D00EB24C4 /* Cafe.swift */; }; + 111834A72B0ED55A00EB24C4 /* OrderDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 111834A62B0ED55A00EB24C4 /* OrderDto.swift */; }; + 111834A92B0EF66F00EB24C4 /* TimeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 111834A82B0EF66F00EB24C4 /* TimeTableViewCell.swift */; }; 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A8892ACB5E990054E020 /* LoginViewController.swift */; }; 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1129A88B2ACB5ED30054E020 /* LoginView.swift */; }; 11433FBE2ABCBCDD005AA716 /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 11433FBD2ABCBCDD005AA716 /* .gitignore */; }; @@ -71,6 +73,8 @@ 1118349E2B0C137D00EB24C4 /* CafeWithDistance.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CafeWithDistance.swift; sourceTree = ""; }; 1118349F2B0C137D00EB24C4 /* Coordinate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Coordinate.swift; sourceTree = ""; }; 111834A02B0C137D00EB24C4 /* Cafe.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Cafe.swift; sourceTree = ""; }; + 111834A62B0ED55A00EB24C4 /* OrderDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderDto.swift; sourceTree = ""; }; + 111834A82B0EF66F00EB24C4 /* TimeTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeTableViewCell.swift; sourceTree = ""; }; 1129A8892ACB5E990054E020 /* LoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = ""; }; 1129A88B2ACB5ED30054E020 /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = ""; }; 11433FBD2ABCBCDD005AA716 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; @@ -150,6 +154,7 @@ 1118349E2B0C137D00EB24C4 /* CafeWithDistance.swift */, 1118349F2B0C137D00EB24C4 /* Coordinate.swift */, 1118349D2B0C137D00EB24C4 /* Machine.swift */, + 111834A62B0ED55A00EB24C4 /* OrderDto.swift */, ); path = DataModels; sourceTree = ""; @@ -276,6 +281,7 @@ children = ( 858F16B22ACB978C002B64C1 /* TimeScreen.swift */, 858F16B42ACB97A1002B64C1 /* TimeViewController.swift */, + 111834A82B0EF66F00EB24C4 /* TimeTableViewCell.swift */, ); path = "Time Screen"; sourceTree = ""; @@ -556,6 +562,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 111834A72B0ED55A00EB24C4 /* OrderDto.swift in Sources */, 858F16AE2ACA7357002B64C1 /* StoreViewController.swift in Sources */, 858F15472ABB77F0002B64C1 /* ViewController.swift in Sources */, 858F16B32ACB978C002B64C1 /* TimeScreen.swift in Sources */, @@ -566,6 +573,7 @@ 1129A88A2ACB5E990054E020 /* LoginViewController.swift in Sources */, 111834A42B0C137D00EB24C4 /* Cafe.swift in Sources */, 1129A88C2ACB5ED30054E020 /* LoginView.swift in Sources */, + 111834A92B0EF66F00EB24C4 /* TimeTableViewCell.swift in Sources */, 111834A32B0C137D00EB24C4 /* Coordinate.swift in Sources */, 858333512AE0AB5F005540D6 /* RegisterView.swift in Sources */, 4452940A2AFDFB8900B1A3D5 /* ProfileViewController.swift in Sources */, diff --git a/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist b/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist index 2c9e80a..f6419a4 100644 --- a/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/PowerUp.xcodeproj/xcuserdata/chendingbang.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,7 +7,7 @@ PowerUp.xcscheme_^#shared#^_ orderHint - 0 + 5 diff --git a/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate b/PowerUp.xcworkspace/xcuserdata/chendingbang.xcuserdatad/UserInterfaceState.xcuserstate index ff7c7b328d87172b85bc5eba43a4c36e4a57a107..1e51038ea6e79c54e8f31847466c9a9469716139 100644 GIT binary patch literal 57889 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 Lp|Jli2jcz@0VC(9 delta 15712 zcmb8V2V7Iv`#*lqxf2`&We9{7AYlZ;2verA4I^v_LxhM}6$Bi(a*kE&sw>u2S8!{s zRomLSt!=GVZN*Wo+iI<=?hbA3@7x5ewf%lx|G&Hl@!sd0d!G06KF_+x^f^86A(+!2 z!Xg+ST1rn1r0S?aZD=8DzM!ipM zp+2CtQroCcs86Y#)Gq1(^%?agb%;7f9jDr})DzGh z*Z>Kz1wBAdUYo$I0L=|=fO4b6SxH)f=A#ncmfQ+g5SXJ5I_iN$U_Nqgl~4RABu3b(GJs*3?u>a}3OUW)ZWL zS;m-{bq%xUHf^Br@Rxz5~Req?SkKQVtWe=;wa zzgUU|EM#exVXfINtb}!DU05kAXBDh3>&NzGli3tDl}%&Q*$g(5?Z;}^EH;}hVN2OE zR>$gD!$7u@0RRJC9w&zRzxBx3fFgPuSh;9`*qH8T%!B zi2a&9%3f!0us^al*`L^3>}~cAdzZb({>(mNe`o*VC{Ez4xUQTXXU_$4L7a*U=0dno zE{s!i;amh4$@S*?aOqqIr!{bSTp6e1nzWZX7qB!`xJE7B`z) z$SvYlawhImZYQ^k+s*Ca_Hz5U{oDcWGwvXFh&#@m;!blHxl7z-?k4vWPw{|3%nI?&3EVRc^6*Fd-FcLoDbqvd>U^^=QH?Bz8|mQv-oU2htK7;d?8=X58!L~ zH~1lZ3qOK?o1ewc=I8Kp`FXsNpU=O;FW?vQ@A7T@dVT}HmEXqit_UoCOy_D!2-6g1g{h5IhB$;3aqqzJf{! z7b1jsAwftJ(uHgxN5~Zh3H8EY;SFJkFjN>OGzg8taG^>RfT#yvGBDd94B~?ZBr>c=V3PeFDl*k_M=40&9JgaVaOZFk%D|Gjlt4^J*m-DE9J0qCGu&f#!=&`36#O8-6>