diff --git a/Podfile b/Podfile index a8ed968c1ccdb1ea6b715f601f6498875b185817..273322fe9c88d2903fa9a43cc029f33b59b1386e 100644 --- a/Podfile +++ b/Podfile @@ -17,6 +17,7 @@ def pods pod 'AppAuth' pod 'GTMAppAuth' pod 'Travellib', :git => "https://git.imp.fu-berlin.de/jakobsbode/travellib.git", :branch => 'master' + pod 'Cuckoo' end target 'enzevalos_iphone' do diff --git a/Podfile.lock b/Podfile.lock index 78980ae3501605e44596d17081c0eb5fe64386ab..55ea3583f84da03a57acc3952462c1bc06f3c8d2 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -5,6 +5,9 @@ PODS: - AppAuth/Core (1.3.0) - AppAuth/ExternalUserAgent (1.3.0) - BZipCompression (1.0.2) + - Cuckoo (1.3.2): + - Cuckoo/Swift (= 1.3.2) + - Cuckoo/Swift (1.3.2) - FrameAccessor (1.3.2) - GTMAppAuth (1.0.0): - AppAuth/Core (~> 1.0) @@ -25,6 +28,7 @@ PODS: DEPENDENCIES: - AppAuth - BZipCompression + - Cuckoo - GTMAppAuth - KeychainAccess - mailcore2-ios (from `https://github.com/MailCore/mailcore2.git`, branch `master`) @@ -37,6 +41,7 @@ SPEC REPOS: trunk: - AppAuth - BZipCompression + - Cuckoo - FrameAccessor - GTMAppAuth - GTMSessionFetcher @@ -64,6 +69,7 @@ CHECKOUT OPTIONS: SPEC CHECKSUMS: AppAuth: 73574f3013a1e65b9601a3ddc8b3158cce68c09d BZipCompression: e0f96508e60eb93b5f5d4c7de1eb3dd0ac4f9ae9 + Cuckoo: 57f71c6616b6b08cd9fe27f803da056fb619ff3e FrameAccessor: 0f7ba6ce37be9a5d0302a27c731dca70af8d438b GTMAppAuth: 4deac854479704f348309e7b66189e604cf5e01e GTMSessionFetcher: cea130bbfe5a7edc8d06d3f0d17288c32ffe9925 @@ -74,6 +80,6 @@ SPEC CHECKSUMS: Travellib: 819ccc356d19fdaf6f0b3c89db069d34aa6c3ec9 VENTokenField: 5a19b838fb97f040e3d4c93f584b4adeaf3fc1ee -PODFILE CHECKSUM: 45a5974132c11f7d67770b26136f69bc87d99bec +PODFILE CHECKSUM: a0e2b9d269dae873c01f9b28257284bc7add6675 COCOAPODS: 1.9.0 diff --git a/Pods/Cuckoo/Generator/Package.pins b/Pods/Cuckoo/Generator/Package.pins new file mode 100644 index 0000000000000000000000000000000000000000..235635e2c522e9e2a4fb3705c252d7cd26687177 --- /dev/null +++ b/Pods/Cuckoo/Generator/Package.pins @@ -0,0 +1,72 @@ +{ + "autoPin": true, + "pins": [ + { + "package": "Clang_C", + "reason": null, + "repositoryURL": "https://github.com/norio-nomura/Clang_C.git", + "version": "1.0.2" + }, + { + "package": "Commandant", + "reason": null, + "repositoryURL": "https://github.com/Carthage/Commandant.git", + "version": "0.12.0" + }, + { + "package": "FileKit", + "reason": null, + "repositoryURL": "https://github.com/TadeasKriz/FileKit.git", + "version": "4.0.2" + }, + { + "package": "PathKit", + "reason": null, + "repositoryURL": "https://github.com/kylef/PathKit.git", + "version": "0.8.0" + }, + { + "package": "Result", + "reason": null, + "repositoryURL": "https://github.com/antitypical/Result.git", + "version": "3.2.1" + }, + { + "package": "SWXMLHash", + "reason": null, + "repositoryURL": "https://github.com/drmohundro/SWXMLHash.git", + "version": "3.0.4" + }, + { + "package": "SourceKit", + "reason": null, + "repositoryURL": "https://github.com/norio-nomura/SourceKit.git", + "version": "1.0.1" + }, + { + "package": "SourceKitten", + "reason": null, + "repositoryURL": "https://github.com/jpsim/SourceKitten.git", + "version": "0.17.2" + }, + { + "package": "Spectre", + "reason": null, + "repositoryURL": "https://github.com/kylef/Spectre.git", + "version": "0.7.2" + }, + { + "package": "Stencil", + "reason": null, + "repositoryURL": "https://github.com/kylef/Stencil.git", + "version": "0.8.0" + }, + { + "package": "Yams", + "reason": null, + "repositoryURL": "https://github.com/jpsim/Yams.git", + "version": "0.3.2" + } + ], + "version": 1 +} \ No newline at end of file diff --git a/Pods/Cuckoo/Generator/Package.resolved b/Pods/Cuckoo/Generator/Package.resolved new file mode 100644 index 0000000000000000000000000000000000000000..2cc42dcca4e71f7692d94249ec9b28cecfe55034 --- /dev/null +++ b/Pods/Cuckoo/Generator/Package.resolved @@ -0,0 +1,106 @@ +{ + "object": { + "pins": [ + { + "package": "Commandant", + "repositoryURL": "https://github.com/Carthage/Commandant.git", + "state": { + "branch": null, + "revision": "07cad52573bad19d95844035bf0b25acddf6b0f6", + "version": "0.15.0" + } + }, + { + "package": "FileKit", + "repositoryURL": "https://github.com/nvzqz/FileKit.git", + "state": { + "branch": "develop", + "revision": "48b5ddb287f131a5c628badc819b880453f94449", + "version": null + } + }, + { + "package": "Nimble", + "repositoryURL": "https://github.com/Quick/Nimble.git", + "state": { + "branch": null, + "revision": "e9d769113660769a4d9dd3afb855562c0b7ae7b0", + "version": "7.3.4" + } + }, + { + "package": "PathKit", + "repositoryURL": "https://github.com/kylef/PathKit.git", + "state": { + "branch": null, + "revision": "e2f5be30e4c8f531c9c1e8765aa7b71c0a45d7a0", + "version": "0.9.2" + } + }, + { + "package": "Quick", + "repositoryURL": "https://github.com/Quick/Quick.git", + "state": { + "branch": null, + "revision": "f2b5a06440ea87eba1a167cab37bf6496646c52e", + "version": "1.3.4" + } + }, + { + "package": "Result", + "repositoryURL": "https://github.com/antitypical/Result.git", + "state": { + "branch": null, + "revision": "2ca499ba456795616fbc471561ff1d963e6ae160", + "version": "4.1.0" + } + }, + { + "package": "SourceKitten", + "repositoryURL": "https://github.com/jpsim/SourceKitten.git", + "state": { + "branch": null, + "revision": "79ca340f609adee48defa966e6a3dd0e0acbeb08", + "version": "0.21.3" + } + }, + { + "package": "Spectre", + "repositoryURL": "https://github.com/kylef/Spectre.git", + "state": { + "branch": null, + "revision": "f14ff47f45642aa5703900980b014c2e9394b6e5", + "version": "0.9.0" + } + }, + { + "package": "Stencil", + "repositoryURL": "https://github.com/kylef/Stencil.git", + "state": { + "branch": null, + "revision": "0e9a78d6584e3812cd9c09494d5c7b483e8f533c", + "version": "0.13.1" + } + }, + { + "package": "SWXMLHash", + "repositoryURL": "https://github.com/drmohundro/SWXMLHash.git", + "state": { + "branch": null, + "revision": "f43166a8e18fdd0857f29e303b1bb79a5428bca0", + "version": "4.9.0" + } + }, + { + "package": "Yams", + "repositoryURL": "https://github.com/jpsim/Yams.git", + "state": { + "branch": null, + "revision": "b08dba4bcea978bf1ad37703a384097d3efce5af", + "version": "1.0.2" + } + } + ] + }, + "version": 1 +} diff --git a/Pods/Cuckoo/Generator/Package.swift b/Pods/Cuckoo/Generator/Package.swift new file mode 100644 index 0000000000000000000000000000000000000000..c69124e2ccf4eff1a4f3c6ce0aeded215f620311 --- /dev/null +++ b/Pods/Cuckoo/Generator/Package.swift @@ -0,0 +1,24 @@ +// swift-tools-version:4.2 +import PackageDescription + +let package = Package( + name: "CuckooGenerator", + products: [ + .library(name: "CuckooGeneratorFramework", targets:["CuckooGeneratorFramework", "cuckoo_generator"]), + .executable(name: "cuckoo_generator", targets: ["cuckoo_generator"]) + + ], + dependencies: [ + .package(url: "https://github.com/jpsim/SourceKitten.git", .upToNextMinor(from: "0.21.2")), + .package(url: "https://github.com/nvzqz/FileKit.git", .branch("develop")), + .package(url: "https://github.com/kylef/Stencil.git", from: "0.13.1"), + .package(url: "https://github.com/Carthage/Commandant.git", from: "0.12.0") + ], + targets: [ + .target(name: "CuckooGeneratorFramework", dependencies: [ + "FileKit", "SourceKittenFramework", "Stencil", "Commandant"], exclude: ["Tests"]), + + .target(name: "cuckoo_generator", dependencies: [ + .target(name: "CuckooGeneratorFramework")], exclude: ["Tests"]), + ] +) diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/CodeBuilder.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/CodeBuilder.swift new file mode 100644 index 0000000000000000000000000000000000000000..20eb9c3e511a3d80f228a193a1a390133bd6102e --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/CodeBuilder.swift @@ -0,0 +1,36 @@ +// +// CodeBuilder.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 06.07.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public class CodeBuilder { + + fileprivate static let Tab = " " + + public fileprivate(set) var code = "" + + fileprivate var nesting = 0 + + public func clear() { + code = "" + } + + public func nest(_ closure: () -> ()) { + nesting += 1 + closure() + nesting -= 1 + } + + public func nest(_ line: String) { + nest { self += line } + } +} + +public func +=(left: CodeBuilder, right: String) { + (0..<left.nesting).forEach { _ in left.code += CodeBuilder.Tab } + left.code += right + left.code += "\n" +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/FileHeaderHandler.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/FileHeaderHandler.swift new file mode 100644 index 0000000000000000000000000000000000000000..a7cf3cc12de96ef249093a78da713b18b24251e8 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/FileHeaderHandler.swift @@ -0,0 +1,95 @@ +// +// FileHeaderHandler.swift +// CuckooGenerator +// +// Created by Tadeas Kriz on 12/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Foundation +import FileKit + +public struct FileHeaderHandler { + + public static func getHeader(of file: FileRepresentation, includeTimestamp: Bool) -> String { + let path: String + if let absolutePath = file.sourceFile.path { + path = getRelativePath(from: absolutePath) + } else { + path = "unknown" + } + let generationInfo = "// MARK: - Mocks generated from file: \(path)" + (includeTimestamp ? " at \(Date())\n" : "") + let header = getHeader(of: file) + return generationInfo + "\n" + header + "\n" + } + + public static func getImports(of file: FileRepresentation, testableFrameworks: [String]) -> String { + var imports = Array(Set(file.declarations.only(Import.self).map { "import \($0.importee)\n" })).sorted().joined(separator: "") + if imports.isEmpty == false { + imports = "\n\(imports)" + } + return "import Cuckoo\n" + getTestableImports(testableFrameworks: testableFrameworks) + imports + } + + private static func getRelativePath(from absolutePath: String) -> String { + let path = Path(absolutePath) + let base = path.commonAncestor(Path.current) + let components = path.components.suffix(from: base.components.endIndex) + let result = components.map { $0.rawValue }.joined(separator: Path.separator) + let difference = Path.current.components.endIndex - base.components.endIndex + return (0..<difference).reduce(result) { acc, _ in ".." + Path.separator + acc } + } + + private static func getHeader(of file: FileRepresentation) -> String { + let possibleHeaderEnd = getPossibleHeaderEnd(current: file.sourceFile.contents.unicodeScalars.count, declarations: file.declarations) + let possibleHeader = String(file.sourceFile.contents.utf8.prefix(possibleHeaderEnd)) ?? "" + let singleLine = getPrefixToLastSingleLineComment(text: possibleHeader) + let multiLine = getPrefixToLastMultiLineComment(text: possibleHeader) + return singleLine.count > multiLine.count ? singleLine : multiLine + } + + private static func getPossibleHeaderEnd(current: Int, declarations: [Token]) -> Int { + return declarations.reduce(current) { minimum, declaration in + let declarationMinimum: Int + switch declaration { + case let containerToken as ContainerToken: + declarationMinimum = containerToken.range.lowerBound + case let method as Method: + declarationMinimum = method.range.lowerBound + case let importToken as Import: + declarationMinimum = importToken.range.lowerBound + default: + declarationMinimum = minimum + } + return min(declarationMinimum, minimum) + } + } + + private static func getPrefixToLastSingleLineComment(text: String) -> String { + if let range = text.range(of: "//", options: .backwards) { + let lastLine = text.lineRange(for: range) + return String(text[..<lastLine.upperBound]) + } else { + return "" + } + } + + private static func getPrefixToLastMultiLineComment(text: String) -> String { + if let range = text.range(of: "*/", options: .backwards) { + return String(text[..<range.upperBound]) + "\n" + } else { + return "" + } + } + + private static func getTestableImports(testableFrameworks: [String]) -> String { + func replaceIllegalCharacters(_ char: UnicodeScalar) -> Character { + if CharacterSet.letters.contains(UnicodeScalar(char.value)!) || CharacterSet.decimalDigits.contains(UnicodeScalar(char.value)!) { + return Character(char) + } else { + return "_" + } + } + return testableFrameworks.map { String($0.unicodeScalars.map(replaceIllegalCharacters)) }.map { "@testable import \($0)\n" }.joined(separator: "") + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Generator.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Generator.swift new file mode 100644 index 0000000000000000000000000000000000000000..c87cc3ffb778ff306c4e8cf8253d01c4ab3a92ea --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Generator.swift @@ -0,0 +1,141 @@ +// +// Generator.swift +// CuckooGenerator +// +// Created by Tadeas Kriz on 13/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Foundation +import Stencil + +public struct Generator { + + private let declarations: [Token] + private let code = CodeBuilder() + + public init(file: FileRepresentation) { + declarations = file.declarations + } + + public func generate(debug: Bool = false) throws -> String { + code.clear() + + let ext = Extension() + ext.registerFilter("genericSafe") { (value: Any?) in + guard let string = value as? String else { return value } + return self.genericSafeType(from: string) + } + + ext.registerFilter("matchableGenericNames") { (value: Any?) in + guard let method = value as? Method else { return value } + return self.matchableGenericTypes(from: method) + } + + ext.registerFilter("matchableGenericWhereClause") { (value: Any?) in + guard let method = value as? Method else { return value } + return self.matchableGenericsWhereClause(from: method) + } + + ext.registerFilter("matchableParameterSignature") { (value: Any?) in + guard let parameters = value as? [MethodParameter] else { return value } + return self.matchableParameterSignature(with: parameters) + } + + ext.registerFilter("parameterMatchers") { (value: Any?) in + guard let parameters = value as? [MethodParameter] else { return value } + return self.parameterMatchers(for: parameters) + } + + ext.registerFilter("openNestedClosure") { (value: Any?) in + guard let method = value as? Method else { return value } + return self.openNestedClosure(for: method) + } + + ext.registerFilter("closeNestedClosure") { (value: Any?) in + guard let parameters = value as? [MethodParameter] else { return value } + return self.closeNestedClosure(for: parameters) + } + + let environment = Environment(extensions: [ext]) + + let containers = declarations.compactMap { $0 as? ContainerToken } + .filter { $0.accessibility.isAccessible } + .map { $0.serializeWithType() } + + return try environment.renderTemplate(string: Templates.mock, context: ["containers": containers, "debug": debug]) + } + + private func matchableGenericTypes(from method: Method) -> String { + guard !method.parameters.isEmpty || !method.genericParameters.isEmpty else { return "" } + + let matchableGenericParameters = method.parameters.enumerated().map { index, parameter -> String in + let type = parameter.isOptional ? "OptionalMatchable" : "Matchable" + return "M\(index + 1): Cuckoo.\(type)" + } + let methodGenericParameters = method.genericParameters.map { $0.description } + return "<\((matchableGenericParameters + methodGenericParameters).joined(separator: ", "))>" + } + + private func matchableGenericsWhereClause(from method: Method) -> String { + guard method.parameters.isEmpty == false else { return "" } + + let matchableWhereConstraints = method.parameters.enumerated().map { index, parameter -> String in + let type = parameter.isOptional ? "OptionalMatchedType" : "MatchedType" + return "M\(index + 1).\(type) == \(genericSafeType(from: parameter.type.withoutAttributes.unoptionaled.sugarized))" + } + let methodWhereConstraints = method.returnSignature.whereConstraints + return " where \((matchableWhereConstraints + methodWhereConstraints).joined(separator: ", "))" + } + + private func matchableParameterSignature(with parameters: [MethodParameter]) -> String { + guard parameters.isEmpty == false else { return "" } + + return parameters.enumerated().map { "\($1.labelAndName): M\($0 + 1)" }.joined(separator: ", ") + } + + private func parameterMatchers(for parameters: [MethodParameter]) -> String { + guard parameters.isEmpty == false else { return "let matchers: [Cuckoo.ParameterMatcher<Void>] = []" } + + let tupleType = parameters.map { $0.typeWithoutAttributes }.joined(separator: ", ") + let matchers = parameters.enumerated().map { "wrap(matchable: \($1.name)) { $0\(parameters.count > 1 ? ".\($0)" : "") }" }.joined(separator: ", ") + return "let matchers: [Cuckoo.ParameterMatcher<(\(genericSafeType(from: tupleType)))>] = [\(matchers)]" + } + + private func genericSafeType(from type: String) -> String { + return type.replacingOccurrences(of: "!", with: "?") + } + + private func openNestedClosure(for method: Method) -> String { + var fullString = "" + for (index, parameter) in method.parameters.enumerated() { + if parameter.isClosure && !parameter.isEscaping { + let indents = String(repeating: "\t", count: index) + let tries = method.isThrowing ? "try " : "" + + let sugarizedReturnType = method.returnType.sugarized + let returnSignature: String + if sugarizedReturnType.isEmpty { + returnSignature = sugarizedReturnType + } else { + returnSignature = " -> \(sugarizedReturnType)" + } + + fullString += "\(indents)return \(tries)withoutActuallyEscaping(\(parameter.name), do: { (\(parameter.name): @escaping \(parameter.type))\(returnSignature) in\n" + } + } + + return fullString + } + + private func closeNestedClosure(for parameters: [MethodParameter]) -> String { + var fullString = "" + for (index, parameter) in parameters.enumerated() { + if parameter.isClosure && !parameter.isEscaping { + let indents = String(repeating: "\t", count: index) + fullString += "\(indents)})\n" + } + } + return fullString + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/StderrPrint.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/StderrPrint.swift new file mode 100644 index 0000000000000000000000000000000000000000..04945a76702f437671e84d8dd83f4d2aa8afe51c --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/StderrPrint.swift @@ -0,0 +1,16 @@ +// +// StderrPrint.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 18.12.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Foundation + +public private(set) var stderrUsed = false + +func stderrPrint(_ item: Any) { + stderrUsed = true + fputs("error: \(item)\n", stderr) +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Supporting Files/CuckooGeneratorFramework.h b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Supporting Files/CuckooGeneratorFramework.h new file mode 100644 index 0000000000000000000000000000000000000000..f57d6c35438fb33d1a0dc980c3fde3ada439320f --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Supporting Files/CuckooGeneratorFramework.h @@ -0,0 +1,17 @@ +// +// CuckooGeneratorFramework.h +// CuckooGeneratorFramework +// +// Created by Tadeas Kriz on 13/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +#import <Foundation/Foundation.h> + +//! Project version number for CuckooGeneratorFramework. +FOUNDATION_EXPORT double CuckooGeneratorFrameworkVersionNumber; + +//! Project version string for CuckooGeneratorFramework. +FOUNDATION_EXPORT const unsigned char CuckooGeneratorFrameworkVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import <CuckooGeneratorFramework/PublicHeader.h> diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Supporting Files/Info.plist b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Supporting Files/Info.plist new file mode 100644 index 0000000000000000000000000000000000000000..219d15be60aa464b82ab888feaad20de79ef0d4b --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Supporting Files/Info.plist @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleExecutable</key> + <string>$(EXECUTABLE_NAME)</string> + <key>CFBundleIdentifier</key> + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>$(PRODUCT_NAME)</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleShortVersionString</key> + <string>0.8.4</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>$(CURRENT_PROJECT_VERSION)</string> + <key>NSHumanReadableCopyright</key> + <string>Copyright © 2016 Brightify. All rights reserved.</string> + <key>NSPrincipalClass</key> + <string></string> +</dict> +</plist> diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/MockTemplate.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/MockTemplate.swift new file mode 100644 index 0000000000000000000000000000000000000000..123b7eaf9e51b5f5c3d55c247c89ed66c2d1c283 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/MockTemplate.swift @@ -0,0 +1,130 @@ +// +// MockTemplate.swift +// CuckooGeneratorFramework +// +// Created by Tadeas Kriz on 11/14/17. +// + +import Foundation + +extension Templates { + static let staticGenericParameter = "_CUCKOO$$GENERIC" + static let typeErasureClassName = "DefaultImplCaller" + static let mock = """ +{% for container in containers %} +{% for attribute in container.attributes %} +{{ attribute.text }} +{% endfor %} +{{ container.accessibility }} class {{ container.mockName }}{{ container.genericParameters }}: {{ container.name }}{% if container.isImplementation %}{{ container.genericArguments }}{% endif %}, {% if container.isImplementation %}Cuckoo.ClassMock{% else %}Cuckoo.ProtocolMock{% endif %} { + {% if container.isGeneric and not container.isImplementation %} + {{ container.accessibility }} typealias MocksType = \(typeErasureClassName){{ container.genericArguments }} + {% else %} + {{ container.accessibility }} typealias MocksType = {{ container.name }}{{ container.genericArguments }} + {% endif %} + {{ container.accessibility }} typealias Stubbing = __StubbingProxy_{{ container.name }} + {{ container.accessibility }} typealias Verification = __VerificationProxy_{{ container.name }} + + {{ container.accessibility }} let cuckoo_manager = Cuckoo.MockManager.preconfiguredManager ?? Cuckoo.MockManager(hasParent: {{ container.isImplementation }}) + + {% if container.isGeneric and not container.isImplementation %} +\(Templates.typeErasure.indented()) + + private var __defaultImplStub: \(typeErasureClassName){{ container.genericArguments }}? + + {{ container.accessibility }} func enableDefaultImplementation<\(staticGenericParameter): {{ container.name }}>(_ stub: \(staticGenericParameter)) where {{ container.genericProtocolIdentity }} { + var mutableStub = stub + __defaultImplStub = \(typeErasureClassName)(from: &mutableStub, keeping: mutableStub) + cuckoo_manager.enableDefaultStubImplementation() + } + + {{ container.accessibility }} func enableDefaultImplementation<\(staticGenericParameter): {{ container.name }}>(mutating stub: UnsafeMutablePointer<\(staticGenericParameter)>) where {{ container.genericProtocolIdentity }} { + __defaultImplStub = \(typeErasureClassName)(from: stub, keeping: nil) + cuckoo_manager.enableDefaultStubImplementation() + } + {% else %} + private var __defaultImplStub: {{ container.name }}{{ container.genericArguments }}? + + {{ container.accessibility }} func enableDefaultImplementation(_ stub: {{ container.name }}{{ container.genericArguments }}) { + __defaultImplStub = stub + cuckoo_manager.enableDefaultStubImplementation() + } + {% endif %} + + {% for property in container.properties %} + {% if debug %} + // {{property}} + {% endif %} + {% for attribute in property.attributes %} + {{ attribute.text }} + {% endfor %} + {{ property.accessibility }}{% if container.isImplementation %} override{% endif %} var {{ property.name }}: {{ property.type }} { + get { + return cuckoo_manager.getter("{{ property.name }}", + superclassCall: + {% if container.isImplementation %} + super.{{ property.name }} + {% else %} + Cuckoo.MockManager.crashOnProtocolSuperclassCall() + {% endif %}, + defaultCall: __defaultImplStub!.{{property.name}}) + } + {% ifnot property.isReadOnly %} + set { + cuckoo_manager.setter("{{ property.name }}", + value: newValue, + superclassCall: + {% if container.isImplementation %} + super.{{ property.name }} = newValue + {% else %} + Cuckoo.MockManager.crashOnProtocolSuperclassCall() + {% endif %}, + defaultCall: __defaultImplStub!.{{property.name}} = newValue) + } + {% endif %} + } + {% endfor %} + + {% for initializer in container.initializers %} + {% if debug %} + // {{initializer}} + {% endif %} + {{ initializer.accessibility }}{% if container.isImplementation %} override{% endif %}{% if initializer.@type == "ProtocolMethod" %} required{% endif %} init({{initializer.parameterSignature}}) { + {% if container.isImplementation %} + super.init({{initializer.call}}) + {% endif %} + } + {% endfor %} + + {% for method in container.methods %} + {% if debug %} + // {{method}} + {% endif %} + {% for attribute in method.attributes %} + {{ attribute.text }} + {% endfor %} + {{ method.accessibility }}{% if container.isImplementation and method.isOverriding %} override{% endif %} func {{ method.name }}{{ method.genericParameters }}({{ method.parameterSignature }}) {{ method.returnSignature }} { + {{ method.self|openNestedClosure }} + return{% if method.isThrowing %} try{% endif %} cuckoo_manager.call{% if method.isThrowing %}{{ method.throwType|capitalize }}{% endif %}("{{method.fullyQualifiedName}}", + parameters: ({{method.parameterNames}}), + escapingParameters: ({{method.escapingParameterNames}}), + superclassCall: + {% if container.isImplementation %} + super.{{method.name}}({{method.call}}) + {% else %} + Cuckoo.MockManager.crashOnProtocolSuperclassCall() + {% endif %}, + defaultCall: __defaultImplStub!.{{method.name}}{%if method.isOptional %}!{%endif%}({{method.call}})) + {{ method.parameters|closeNestedClosure }} + } + {% endfor %} + +\(Templates.stubbingProxy.indented()) + +\(Templates.verificationProxy.indented()) +} + +\(Templates.noImplStub) + +{% endfor %} +""" +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/NopImplStubTemplate.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/NopImplStubTemplate.swift new file mode 100644 index 0000000000000000000000000000000000000000..33a6a298619249189a534dfa24df73a1a3bbd90d --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/NopImplStubTemplate.swift @@ -0,0 +1,40 @@ +// +// NopImplStubTemplate.swift +// CuckooGeneratorFramework +// +// Created by Tadeas Kriz on 11/14/17. +// + +extension Templates { + static let noImplStub = """ +{{container.accessibility}} class {{ container.name }}Stub{{ container.genericParameters }}: {{ container.name }}{% if container.isImplementation %}{{ container.genericArguments }}{% endif %} { + {% for property in container.properties %} + {% for attribute in property.attributes %} + {{ attribute.text }} + {% endfor %} + {{ property.accessibility }}{% if container.@type == "ClassDeclaration" %} override{% endif %} var {{ property.name }}: {{ property.type }} { + get { + return DefaultValueRegistry.defaultValue(for: ({{property.type|genericSafe}}).self) + } + {% ifnot property.isReadOnly %} + set { } + {% endif %} + } + {% endfor %} + + {% for initializer in container.initializers %} + {{ initializer.accessibility }}{% if container.@type == "ClassDeclaration" %} override{% endif %}{% if initializer.@type == "ProtocolMethod" %} required{%endif%} init({{initializer.parameterSignature}}) { + {% if container.@type == "ClassDeclaration" %} + super.init({{initializer.call}}) + {% endif %} + } + {% endfor %} + + {% for method in container.methods %} + {{ method.accessibility }}{% if container.@type == "ClassDeclaration" and method.isOverriding %} override{% endif %} func {{ method.name }}{{ method.genericParameters }}({{ method.parameterSignature }}) {{ method.returnSignature }} {{ method.whereClause }} { + return DefaultValueRegistry.defaultValue(for: ({{method.returnType|genericSafe}}).self) + } + {% endfor %} +} +""" +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/StubbingProxyTemplate.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/StubbingProxyTemplate.swift new file mode 100644 index 0000000000000000000000000000000000000000..e6e0e568092e12e0b0f8304ad4d0fa2f9e2ccb24 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/StubbingProxyTemplate.swift @@ -0,0 +1,34 @@ +// +// StubbingProxyTemplate.swift +// CuckooGeneratorFramework +// +// Created by Tadeas Kriz on 11/14/17. +// + +import Foundation + +extension Templates { + static let stubbingProxy = """ +{{ container.accessibility }} struct __StubbingProxy_{{ container.name }}: Cuckoo.StubbingProxy { + private let cuckoo_manager: Cuckoo.MockManager + + {{ container.accessibility }} init(manager: Cuckoo.MockManager) { + self.cuckoo_manager = manager + } + {% for property in container.properties %} + {% for attribute in property.attributes %} + {{ attribute.text }} + {% endfor %} + var {{property.name}}: Cuckoo.{{ property.stubType }}<{{ container.mockName }}, {% if property.isReadOnly %}{{property.type|genericSafe}}{% else %}{{property.nonOptionalType|genericSafe}}{% endif %}> { + return .init(manager: cuckoo_manager, name: "{{property.name}}") + } + {% endfor %} + {% for method in container.methods %} + func {{method.name}}{{method.self|matchableGenericNames}}({{method.parameters|matchableParameterSignature}}) -> {{method.stubFunction}}<({{method.inputTypes|genericSafe}}){%if method.returnType != "Void" %}, {{method.returnType|genericSafe}}{%endif%}>{{method.self|matchableGenericWhereClause}} { + {{method.parameters|parameterMatchers}} + return .init(stub: cuckoo_manager.createStub(for: {{ container.mockName }}.self, method: "{{method.fullyQualifiedName}}", parameterMatchers: matchers)) + } + {% endfor %} +} +""" +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/Templates.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/Templates.swift new file mode 100644 index 0000000000000000000000000000000000000000..304f9ce63ac74a80f86969c184004c5d86057b45 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/Templates.swift @@ -0,0 +1,20 @@ +// +// Templates.swift +// CuckooGeneratorFramework +// +// Created by Tadeas Kriz on 11/14/17. +// + +import Foundation + +struct Templates { } + +extension String { + func indented(times: Int = 1) -> String { + let indentation = String(repeating: "\t", count: times) + + return self.components(separatedBy: CharacterSet.newlines).map { + indentation + $0 + }.joined(separator: "\n") + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/TypeErasureTemplate.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/TypeErasureTemplate.swift new file mode 100644 index 0000000000000000000000000000000000000000..b42b893804c2ddac7025c04828cda80a9ee0c497 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/TypeErasureTemplate.swift @@ -0,0 +1,49 @@ +// +// TypeErasureTemplate.swift +// CuckooGeneratorFramework +// +// Created by Matyáš Kříž on 26/11/2018. +// + +import Foundation + +extension Templates { + static let typeErasure = """ + {{ container.accessibility }} class \(typeErasureClassName){{ container.genericParameters }}: {{ container.name }} { + private let reference: Any + + {% for property in container.properties %}private let _getter_storage$${{ property.name }}: () -> {{ property.type }}{% if not property.isReadOnly %} + private let _setter_storage$${{ property.name }}: ({{ property.type }}) -> Void{% endif %} + {{ container.accessibility }} var {{ property.name }}: {{ property.type }} { + get { return _getter_storage$${{ property.name }}() }{% if not property.isReadOnly %} + set { _setter_storage$${{ property.name }}(newValue) }{% endif %} + } + + {% endfor %} + {# For developers: The `keeping reference: Any?` is necessary because when called from the `enableDefaultImplementation(stub:)` method + instead of `enableDefaultImplementation(mutating:)`, we need to prevent the struct getting deallocated. #} + init<\(staticGenericParameter): {{ container.name }}>(from defaultImpl: UnsafeMutablePointer<\(staticGenericParameter)>, keeping reference: @escaping @autoclosure () -> Any?) where {{ container.genericProtocolIdentity }} { + self.reference = reference + + {% for property in container.properties %}_getter_storage$${{ property.name }} = { defaultImpl.pointee.{{ property.name }} } + {% if not property.isReadOnly %}_setter_storage$${{ property.name }} = { defaultImpl.pointee.{{ property.name }} = $0 }{% endif %} + {% endfor %} + {% for method in container.methods %}_storage${{ forloop.counter }}${{ method.name }} = defaultImpl.pointee.{{ method.name }} + {% endfor %} + } + {% if container.initializers %} + /// MARK:- ignored required initializers{% endif %} + {% for initializer in container.initializers %}{{ container.accessibility }} required init({{ initializer.parameterSignature }}) { + fatalError("`DefaultImplCaller` class is only used for calling default implementation and can't be initialized on its own.") + } + {% endfor %} + + {% for method in container.methods %} + private let _storage${{ forloop.counter }}${{ method.name }}: ({{ method.inputTypes }}) -> {{ method.returnType }} + {{ container.accessibility }} func {{ method.name }}({{ method.parameterSignature }}) {{ method.returnSignature }} { + return _storage${{ forloop.counter }}${{ method.name }}({{ method.parameterNames }}) + } + {% endfor %} + } + """ +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/VerificationProxyTemplate.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/VerificationProxyTemplate.swift new file mode 100644 index 0000000000000000000000000000000000000000..7aa2c68b732710c6b620b0ac8d039d16d30b4ca1 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Templates/VerificationProxyTemplate.swift @@ -0,0 +1,41 @@ +// +// VerificationProxyTemplate.swift +// CuckooGeneratorFramework +// +// Created by Tadeas Kriz on 11/14/17. +// + +import Foundation + +extension Templates { + static let verificationProxy = """ +{{ container.accessibility }} struct __VerificationProxy_{{ container.name }}: Cuckoo.VerificationProxy { + private let cuckoo_manager: Cuckoo.MockManager + private let callMatcher: Cuckoo.CallMatcher + private let sourceLocation: Cuckoo.SourceLocation + + {{ container.accessibility }} init(manager: Cuckoo.MockManager, callMatcher: Cuckoo.CallMatcher, sourceLocation: Cuckoo.SourceLocation) { + self.cuckoo_manager = manager + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } + + {% for property in container.properties %} + {% for attribute in property.attributes %} + {{ attribute.text }} + {% endfor %} + var {{property.name}}: Cuckoo.{{property.verifyType}}<{% if property.isReadOnly %}{{property.type|genericSafe}}{% else %}{{property.nonOptionalType|genericSafe}}{% endif %}> { + return .init(manager: cuckoo_manager, name: "{{property.name}}", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + {% endfor %} + + {% for method in container.methods %} + @discardableResult + func {{method.name}}{{method.self|matchableGenericNames}}({{method.parameters|matchableParameterSignature}}) -> Cuckoo.__DoNotUse<({{method.inputTypes|genericSafe}}), {{method.returnType|genericSafe}}>{{method.self|matchableGenericWhereClause}} { + {{method.parameters|parameterMatchers}} + return cuckoo_manager.verify("{{method.fullyQualifiedName}}", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + {% endfor %} +} +""" +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokenizer.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokenizer.swift new file mode 100644 index 0000000000000000000000000000000000000000..56cde89f9c36d1c210229acffbbc8baefae519f6 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokenizer.swift @@ -0,0 +1,496 @@ +// +// Tokenizer.swift +// CuckooGenerator +// +// Created by Tadeas Kriz on 12/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Foundation +import SourceKittenFramework + +public struct Tokenizer { + private let file: File + private let source: String + private let debugMode: Bool + + public init(sourceFile: File, debugMode: Bool) { + self.file = sourceFile + self.debugMode = debugMode + + source = sourceFile.contents + } + + public func tokenize() -> FileRepresentation { + do { + let structure = try Structure(file: file) + + let declarations = tokenize(structure.dictionary[Key.Substructure.rawValue] as? [SourceKitRepresentable] ?? []) + let imports = tokenize(imports: declarations) + + return FileRepresentation(sourceFile: file, declarations: declarations + imports) + } catch { + print("Error") + } + + return FileRepresentation(sourceFile: file, declarations: []) + } + + private func tokenize(_ representables: [SourceKitRepresentable]) -> [Token] { + return representables.compactMap(tokenize) + } + + internal static let nameNotSet = "name not set" + internal static let unknownType = "unknown type" + private func tokenize(_ representable: SourceKitRepresentable) -> Token? { + guard let dictionary = representable as? [String: SourceKitRepresentable] else { return nil } + + // Common fields + let name = dictionary[Key.Name.rawValue] as? String ?? Tokenizer.nameNotSet + let kind = dictionary[Key.Kind.rawValue] as? String ?? Tokenizer.unknownType + + // Inheritance + let inheritedTypes = dictionary[Key.InheritedTypes.rawValue] as? [SourceKitRepresentable] ?? [] + let tokenizedInheritedTypes = inheritedTypes.compactMap { type -> InheritanceDeclaration in + guard let typeDict = type as? [String: SourceKitRepresentable] else { + return InheritanceDeclaration.empty + } + let name = typeDict[Key.Name.rawValue] as? String ?? Tokenizer.nameNotSet + return InheritanceDeclaration(name: name) + } + + // Optional fields + let range = extractRange(from: dictionary, offset: .Offset, length: .Length) + let nameRange = extractRange(from: dictionary, offset: .NameOffset, length: .NameLength) + let bodyRange = extractRange(from: dictionary, offset: .BodyOffset, length: .BodyLength) + + // Attributes + let attributes = (dictionary[Key.Attributes.rawValue] as? [SourceKitRepresentable] ?? []) + .compactMap { attribute -> Attribute? in + guard let attribute = attribute as? [String: SourceKitRepresentable], + let stringKind = attribute[Key.Attribute.rawValue] as? String, + let kind = Attribute.Kind(rawValue: stringKind), + let attributeRange = extractRange(from: attribute, offset: .Offset, length: .Length) else { return nil } + let startIndex = source.utf8.index(source.utf8.startIndex, offsetBy: attributeRange.lowerBound) + let endIndex = source.utf8.index(source.utf8.startIndex, offsetBy: attributeRange.upperBound) + guard let text = String(source.utf8[startIndex..<endIndex]) else { return nil } + return Attribute(kind: kind, text: text) + } + + guard !attributes.map({ $0.kind }).contains(.final) else { + if debugMode { + fputs("Cuckoo: Ignoring mocking of '\(name)' because it's marked `final`.\n", stdout) + } + return nil + } + + let accessibility = (dictionary[Key.Accessibility.rawValue] as? String).flatMap { Accessibility(rawValue: $0) } ?? .Internal + let type: WrappableType? + if let stringType = dictionary[Key.TypeName.rawValue] as? String { + type = WrappableType(parsing: stringType) + } else { + type = nil + } + + switch kind { + case Kinds.ProtocolDeclaration.rawValue: + let subtokens = tokenize(dictionary[Key.Substructure.rawValue] as? [SourceKitRepresentable] ?? []) + let initializers = subtokens.only(Initializer.self) + let children = subtokens.noneOf(Initializer.self) + let genericParameters = subtokens.only(GenericParameter.self) + + return ProtocolDeclaration( + name: name, + accessibility: accessibility, + range: range!, + nameRange: nameRange!, + bodyRange: bodyRange!, + initializers: initializers, + children: children, + inheritedTypes: tokenizedInheritedTypes, + attributes: attributes, + genericParameters: genericParameters) + + case Kinds.ClassDeclaration.rawValue: + let subtokens = tokenize(dictionary[Key.Substructure.rawValue] as? [SourceKitRepresentable] ?? []) + let initializers = subtokens.only(Initializer.self) + let children = subtokens.noneOf(Initializer.self).map { child -> Token in + if var property = child as? InstanceVariable { + property.overriding = true + return property + } else { + return child + } + } + let genericParameters = subtokens.only(GenericParameter.self) + + return ClassDeclaration( + name: name, + accessibility: accessibility, + range: range!, + nameRange: nameRange!, + bodyRange: bodyRange!, + initializers: initializers, + children: children, + inheritedTypes: tokenizedInheritedTypes, + attributes: attributes, + genericParameters: genericParameters) + + case Kinds.ExtensionDeclaration.rawValue: + return ExtensionDeclaration(range: range!) + + case Kinds.InstanceVariable.rawValue: + let setterAccessibility = (dictionary[Key.SetterAccessibility.rawValue] as? String).flatMap(Accessibility.init) + + if String(source.utf8.dropFirst(range!.startIndex))?.takeUntil(occurence: name)?.trimmed.hasPrefix("let") == true { + return nil + } + + let guessedType: WrappableType? + if type == nil { + guessedType = TypeGuesser.guessType(from: String(source.utf8[range!.startIndex..<range!.endIndex].drop(while: { $0 != "=" }).dropFirst()).trimmed).map { .type($0) } + } else { + guessedType = type + } + + return InstanceVariable( + name: name, + type: guessedType ?? .type("__UnknownType"), + accessibility: accessibility, + setterAccessibility: setterAccessibility, + range: range!, + nameRange: nameRange!, + overriding: false, + attributes: attributes) + + case Kinds.InstanceMethod.rawValue: + let genericParameters = tokenize(dictionary[Key.Substructure.rawValue] as? [SourceKitRepresentable] ?? []).only(GenericParameter.self) + let parameters = tokenize(methodName: name, parameters: dictionary[Key.Substructure.rawValue] as? [SourceKitRepresentable] ?? []) + + let returnSignature: ReturnSignature + if let bodyRange = bodyRange { + returnSignature = parseReturnSignature(source: source.utf8[nameRange!.endIndex..<bodyRange.startIndex].takeUntil(occurence: "{")?.trimmed ?? "") + } else { + returnSignature = parseReturnSignature(source: source.utf8[nameRange!.endIndex..<range!.endIndex].trimmed) + } + + // methods can specify an empty public name of a parameter without any private name - `fun(_: String)` + let namedParameters = parameters.enumerated().map { index, parameter -> MethodParameter in + if parameter.name == Tokenizer.nameNotSet { + var mutableParameter = parameter + mutableParameter.name = "parameter\(index)" + return mutableParameter + } else { + return parameter + } + } + + // When bodyRange != nil, we need to create `ClassMethod` instead of `ProtocolMethod` + if let bodyRange = bodyRange { + return ClassMethod( + name: name, + accessibility: accessibility, + returnSignature: returnSignature, + range: range!, + nameRange: nameRange!, + parameters: namedParameters, + bodyRange: bodyRange, + attributes: attributes, + genericParameters: genericParameters) + } else { + return ProtocolMethod( + name: name, + accessibility: accessibility, + returnSignature: returnSignature, + range: range!, + nameRange: nameRange!, + parameters: namedParameters, + attributes: attributes, + genericParameters: genericParameters) + } + + case Kinds.GenericParameter.rawValue: + return tokenize(parameterLabel: nil, parameter: representable) + + case Kinds.AssociatedType.rawValue: + let regex = try! NSRegularExpression(pattern: "\\s*:\\s*([^\\s;\\/]+)") + guard let range = range else { return nil } + guard let inheritanceMatch = regex.firstMatch( + in: source, + range: NSMakeRange(range.startIndex, range.endIndex - range.startIndex)) else { + return GenericParameter(name: name, range: range, inheritedType: nil) + } + let inheritanceRange = inheritanceMatch.range(at: 1) + let fromIndex = source.index(source.startIndex, offsetBy: inheritanceRange.location) + let toIndex = source.index(fromIndex, offsetBy: inheritanceRange.length) + let inheritance = String(source[fromIndex..<toIndex]) + let fullRange = range.lowerBound..<(range.upperBound + inheritanceMatch.range.length) + return GenericParameter(name: name, range: fullRange, inheritedType: InheritanceDeclaration(name: inheritance)) + + default: + // Do not log anything, until the parser contains all known cases. + // stderrPrint("Unknown kind. Dictionary: \(dictionary) \(file.path ?? "")") + return nil + } + } + + private func tokenize(methodName: String, parameters: [SourceKitRepresentable]) -> [MethodParameter] { + // Takes the string between `(` and `)` + let parameterNames = methodName.components(separatedBy: "(").last?.dropLast(1).map { "\($0)" }.joined(separator: "") + var parameterLabels: [String?] = parameterNames?.components(separatedBy: ":").map { $0 != "_" ? $0 : nil } ?? [] + + // Last element is not type. + parameterLabels = Array(parameterLabels.dropLast()) + + // Substructure can contain some other information after the parameters. + let filteredParameters = parameters.filter { + let dictionary = $0 as? [String: SourceKitRepresentable] + let kind = dictionary?[Key.Kind.rawValue] as? String ?? "" + return kind == Kinds.MethodParameter.rawValue + } + + return zip(parameterLabels, filteredParameters).compactMap { tokenize(parameterLabel: $0, parameter: $1) as? MethodParameter } + } + + private func tokenize(parameterLabel: String?, parameter: SourceKitRepresentable) -> Token? { + guard let dictionary = parameter as? [String: SourceKitRepresentable] else { return nil } + + let name = dictionary[Key.Name.rawValue] as? String ?? Tokenizer.nameNotSet + let kind = dictionary[Key.Kind.rawValue] as? String ?? Tokenizer.unknownType + let range = extractRange(from: dictionary, offset: .Offset, length: .Length) + let nameRange = extractRange(from: dictionary, offset: .NameOffset, length: .NameLength) + let type = dictionary[Key.TypeName.rawValue] as? String + + switch kind { + case Kinds.MethodParameter.rawValue: + // separate `inout` from the type and remember that the parameter is inout + let type = type! + + // we want to remove `inout` and remember it, but we don't want to affect a potential `inout` closure parameter + let inoutSeparatedType: String + let isInout: Bool + if let inoutRange = type.range(of: "inout ") { + if let closureParenIndex = type.firstIndex(of: "("), closureParenIndex < inoutRange.upperBound { + inoutSeparatedType = type + isInout = false + } else { + var mutableString = type + mutableString.removeSubrange(inoutRange) + inoutSeparatedType = mutableString + isInout = true + } + } else { + inoutSeparatedType = type + isInout = false + } + + let wrappableType = WrappableType(parsing: inoutSeparatedType) + + return MethodParameter(label: parameterLabel, name: name, type: wrappableType, range: range!, nameRange: nameRange!, isInout: isInout) + + case Kinds.GenericParameter.rawValue: + let inheritedTypeElement = (dictionary[Key.InheritedTypes.rawValue] as? [SourceKitRepresentable] ?? []).first + let inheritedType = (inheritedTypeElement as? [String: SourceKitRepresentable] ?? [:])[Key.Name.rawValue] as? String + let inheritanceDeclaration: InheritanceDeclaration? + if let inheritedType = inheritedType { + inheritanceDeclaration = .init(name: inheritedType) + } else { + inheritanceDeclaration = nil + } + return GenericParameter(name: name, range: range!, inheritedType: inheritanceDeclaration) + + default: + stderrPrint("Unknown method parameter. Dictionary: \(dictionary) \(file.path ?? "")") + return nil + } + } + + private func tokenize(imports otherTokens: [Token]) -> [Token] { + let rangesToIgnore: [CountableRange<Int>] = otherTokens.compactMap { token in + switch token { + case let container as ContainerToken: + return container.range + case let extensionToken as ExtensionDeclaration: + return extensionToken.range + default: + return nil + } + } + + do { + let baseRegex = "(?:\\b|;)import(?:\\s|(?:\\/\\/.*\\n)|(?:\\/\\*.*\\*\\/))+" + let identifierRegex = "[^\\s;\\/]+" + let libraryImportRegex = baseRegex + "(\(identifierRegex))(?:\\n|(?:\\s)*;)" + let componentImportRegex = baseRegex + "(\(identifierRegex))\\s+(\(identifierRegex))\\.(\(identifierRegex))" + let libraryRegex = try NSRegularExpression(pattern: libraryImportRegex) + let componentRegex = try NSRegularExpression(pattern: componentImportRegex) + let librariesRange = NSRange(location: 0, length: source.count) + let libraries = libraryRegex.matches(in: source, range: librariesRange) + .filter { result in + rangesToIgnore.filter { $0 ~= result.range.location }.isEmpty + } + .map { result -> Import in + let range = result.range.location..<(result.range.location + result.range.length) + let library = source.stringMatch(from: result, at: 1) + return Import(range: range, importee: .library(name: library)) + } + let components = componentRegex.matches(in: source, range: NSRange(location: 0, length: source.count)) + .filter { result in + rangesToIgnore.filter { $0 ~= result.range.location }.isEmpty + } + .map { result -> Import in + let componentRange = result.range(at: 1) + let componentType = componentRange.location == NSNotFound ? nil : source[componentRange] + let library = source[result.range(at: 2)] + let component = source[result.range(at: 3)] + let range = result.range.location..<(result.range.location + result.range.length) + return Import(range: range, importee: .component(componentType: componentType, library: library, name: component)) + } + + return libraries + components + } catch let error as NSError { + fatalError("Invalid regex:" + error.description) + } + } + + private func getReturnType(source: String, index: inout String.Index) -> String { + var returnType = "" + var afterArrow = true + var parenLevel = 0 + + while index != source.endIndex { + let character = source[index] + switch character { + case "(", "<", "[": + parenLevel += 1 + returnType.append(character) + index = source.index(after: index) + case ")", ">", "]": + parenLevel -= 1 + returnType.append(character) + index = source.index(after: index) + case "-": + index = source.index(after: index) + // just a little sanity check + guard source[index] == ">" else { fatalError("Uhh, what.") } + index = source.index(after: index) + returnType.append(" -> ") + afterArrow = true + case " ": + index = source.index(after: index) + returnType.append(character) + case "w": + let previousCharacter = source[source.index(before: index)] + guard parenLevel == 0 && !afterArrow && previousCharacter == " " else { + returnType.append(character) + index = source.index(after: index) + continue + } + + // we reached the "where" clause + return returnType + default: + afterArrow = false + returnType.append(character) + index = source.index(after: index) + } + } + + return returnType + } + + /// - returns: the where constraints parsed from the where clause + private func parseWhereClause(source: String, index: inout String.Index) -> [String] { + var whereConstraints = [] as [String] + var currentConstraint = "" + var parenLevel = 0 + while index != source.endIndex { + let character = source[index] + switch character { + case "(", "<", "[": + parenLevel += 1 + case ")", ">", "]": + parenLevel -= 1 + case "," where parenLevel == 0: + currentConstraint = currentConstraint.trimmed + whereConstraints.append(currentConstraint) + currentConstraint = "" + default: + currentConstraint.append(character) + } + + index = source.index(after: index) + } + if !currentConstraint.isEmpty { + currentConstraint = currentConstraint.trimmed + whereConstraints.append(currentConstraint) + } + return whereConstraints + } + + /// - parameter source: A trimmed string containing only the method return signature excluding the trailing brace + /// - returns: ReturnSignature structure containing the parsed throwString, return type, and where constraints + private func parseReturnSignature(source: String) -> ReturnSignature { + var throwString = nil as String? + var returnType: WrappableType? + var whereConstraints = [] as [String] + + var index = source.startIndex + parseLoop: while index != source.endIndex { + let character = source[index] + switch character { + case "r" where returnType == nil: + throwString = "rethrows" + index = source.index(index, offsetBy: throwString!.count) + continue + case "t" where returnType == nil: + throwString = "throws" + index = source.index(index, offsetBy: throwString!.count) + continue + case "w": + index = source.index(index, offsetBy: "where".count) + whereConstraints = parseWhereClause(source: source, index: &index) + // the where clause is the last thing in method signature, so we'll just stop the parsing + break parseLoop + case "-": + index = source.index(after: index) + guard source[index] == ">" else { fatalError("Uhh, what.") } + index = source.index(after: index) + returnType = WrappableType(parsing: getReturnType(source: source, index: &index).trimmed) + continue + default: + break + } + index = source.index(after: index) + } + + return ReturnSignature(throwString: throwString, returnType: returnType ?? WrappableType.type("Void"), whereConstraints: whereConstraints) + } +} + +extension String { + subscript(range: NSRange) -> String { + let fromIndex = self.index(self.startIndex, offsetBy: range.location) + let toIndex = self.index(fromIndex, offsetBy: range.length) + return String(self[fromIndex..<toIndex]) + } +} + +extension String { + func stringMatch(from match: NSTextCheckingResult, at range: Int = 0) -> String { + let matchRange = match.range(at: range) + let fromIndex = index(startIndex, offsetBy: matchRange.location) + let toIndex = index(fromIndex, offsetBy: matchRange.length) + return String(self[fromIndex..<toIndex]) + } + + func removing(match: NSTextCheckingResult, at range: Int = 0) -> String { + let matchRange = match.range(at: range) + let fromIndex = index(startIndex, offsetBy: matchRange.location) + let toIndex = index(fromIndex, offsetBy: matchRange.length) + + var mutableString = self + mutableString.removeSubrange(fromIndex..<toIndex) + return mutableString + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Accessibility.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Accessibility.swift new file mode 100644 index 0000000000000000000000000000000000000000..6285e819c20d06e33e8d9311f996a082be02b957 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Accessibility.swift @@ -0,0 +1,56 @@ +// +// Accessibility.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 30.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public enum Accessibility: String { + case Open = "source.lang.swift.accessibility.open" + case Public = "source.lang.swift.accessibility.public" + case Internal = "source.lang.swift.accessibility.internal" + case Private = "source.lang.swift.accessibility.private" + case FilePrivate = "source.lang.swift.accessibility.fileprivate" + + public var sourceName: String { + switch self { + case .Open: + fallthrough + case .Public: + return "public" + case .Internal: + return "" + case .Private: + return "private" + case .FilePrivate: + return "fileprivate" + } + } + + public var isAccessible: Bool { + return self != .Private && self != .FilePrivate + } +} + +extension Accessibility: Comparable { + /// How open is this accessibility. The higher number the more accessible. + private var openness: Int { + switch self { + case .Open: + return 4 + case .Public: + return 3 + case .Internal: + return 2 + case .FilePrivate: + return 1 + case .Private: + return 0 + } + } + + public static func < (lhs: Accessibility, rhs: Accessibility) -> Bool { + return lhs.openness < rhs.openness + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Attribute.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Attribute.swift new file mode 100644 index 0000000000000000000000000000000000000000..b394cdcac6bd8face04bd12027b21910433c06df --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Attribute.swift @@ -0,0 +1,46 @@ +// +// Attribute.swift +// CuckooGenerator +// +// Created by Tadeas Kriz on 2/25/17. +// +// + +public struct Attribute { + public enum Kind: String { + case objc = "source.decl.attribute.objc" + case optional = "source.decl.attribute.optional" + case lazy = "source.decl.attribute.lazy" + case required = "source.decl.attribute.required" + case override = "source.decl.attribute.override" + case convenience = "source.decl.attribute.convenience" + case weak = "source.decl.attribute.weak" + case ibAction = "source.decl.attribute.ibaction" + case ibOutlet = "source.decl.attribute.iboutlet" + case available = "source.decl.attribute.available" + case final = "source.decl.attribute.final" + } + + public var kind: Kind + public var text: String + + public var isSupported: Bool { + switch (kind) { + case .objc, .optional, .lazy, .required, .override, .convenience, .weak, .ibAction, .ibOutlet, .final: + return false + case .available: + return true + } + } +} + +extension Attribute: Token { + public func isEqual(to other: Token) -> Bool { + guard let otherAttribute = other as? Attribute else { return false } + return self.kind == otherAttribute.kind && self.text == otherAttribute.text + } + + public func serialize() -> [String : Any] { + return ["text": text] + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ClassDeclaration.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ClassDeclaration.swift new file mode 100644 index 0000000000000000000000000000000000000000..3e580ff0366f53537f23cd971f7a849a6b71b3b8 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ClassDeclaration.swift @@ -0,0 +1,43 @@ +// +// ClassDeclaration.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 30.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public struct ClassDeclaration: ContainerToken, HasAccessibility { + public let implementation: Bool = true + public var name: String + public var accessibility: Accessibility + public var range: CountableRange<Int> + public var nameRange: CountableRange<Int> + public var bodyRange: CountableRange<Int> + public var initializers: [Initializer] + public var children: [Token] + public var inheritedTypes: [InheritanceDeclaration] + public var attributes: [Attribute] + public var genericParameters: [GenericParameter] + public var hasNoArgInit: Bool { + return initializers.filter { $0.parameters.isEmpty }.isEmpty + } + + public func replace(children tokens: [Token]) -> ClassDeclaration { + return ClassDeclaration( + name: self.name, + accessibility: self.accessibility, + range: self.range, + nameRange: self.nameRange, + bodyRange: self.bodyRange, + initializers: self.initializers, + children: tokens, + inheritedTypes: self.inheritedTypes, + attributes: self.attributes, + genericParameters: self.genericParameters) + } + + public func isEqual(to other: Token) -> Bool { + guard let other = other as? ClassDeclaration else { return false } + return self.name == other.name + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ClassMethod.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ClassMethod.swift new file mode 100644 index 0000000000000000000000000000000000000000..ce9ae5d7d8e359ad08239120efc4ef43c58782d7 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ClassMethod.swift @@ -0,0 +1,25 @@ +// +// ClassMethod.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 30.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public struct ClassMethod: Method { + public var name: String + public var accessibility: Accessibility + public var returnSignature: ReturnSignature + public var range: CountableRange<Int> + public var nameRange: CountableRange<Int> + public var parameters: [MethodParameter] + public var bodyRange: CountableRange<Int> + public var attributes: [Attribute] + public var genericParameters: [GenericParameter] + public var isOptional: Bool { + return false + } + public var isOverriding: Bool { + return true + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ContainerToken.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ContainerToken.swift new file mode 100644 index 0000000000000000000000000000000000000000..5e835c49d6fed2cb162227b2f7bd39b32eb945bf --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ContainerToken.swift @@ -0,0 +1,72 @@ +// +// ContainerToken.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 30.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol ContainerToken: Token, HasAccessibility { + var name: String { get } + var range: CountableRange<Int> { get } + var nameRange: CountableRange<Int> { get } + var bodyRange: CountableRange<Int> { get } + var initializers: [Initializer] { get } + var children: [Token] { get } + var implementation: Bool { get } + var inheritedTypes: [InheritanceDeclaration] { get } + var attributes: [Attribute] { get } + var genericParameters: [GenericParameter] { get } +} + +extension ContainerToken { + public func serialize() -> [String : Any] { + func withAdjustedAccessibility(token: Token & HasAccessibility) -> Token & HasAccessibility { + // We only want to adjust tokens that are accessible and lower than the enclosing type + guard token.accessibility.isAccessible && token.accessibility < accessibility else { return token } + var mutableToken = token + mutableToken.accessibility = accessibility + return mutableToken + } + + let accessibilityAdjustedChildren = children.map { child -> Token in + guard let childWithAccessibility = child as? HasAccessibility & Token else { return child } + return withAdjustedAccessibility(token: childWithAccessibility) + } + + let properties = accessibilityAdjustedChildren.compactMap { $0 as? InstanceVariable } + .filter { $0.accessibility.isAccessible } + .map { $0.serializeWithType() } + + let methods = accessibilityAdjustedChildren.compactMap { $0 as? Method } + .filter { $0.accessibility.isAccessible && !$0.isInit && !$0.isDeinit } + .map { $0.serializeWithType() } + + let initializers = accessibilityAdjustedChildren.compactMap { $0 as? Method } + .filter { $0.accessibility.isAccessible && $0.isInit && !$0.isDeinit } + .map { $0.serializeWithType() } + + let genericParametersString = genericParameters.map { $0.description }.joined(separator: ", ") + let genericArgumentsString = genericParameters.map { $0.name }.joined(separator: ", ") + let genericProtocolIdentity = genericParameters.map { "\(Templates.staticGenericParameter).\($0.name) == \($0.name)" }.joined(separator: ", ") + let isGeneric = !genericParameters.isEmpty + + return [ + "name": name, + "accessibility": accessibility.sourceName, + "isAccessible": accessibility.isAccessible, + "children": accessibilityAdjustedChildren.map { $0.serializeWithType() }, + "properties": properties, + "methods": methods, + "initializers": implementation ? [] : initializers, + "isImplementation": implementation, + "mockName": "Mock\(name)", + "inheritedTypes": inheritedTypes, + "attributes": attributes.filter { $0.isSupported }, + "isGeneric": isGeneric, + "genericParameters": isGeneric ? "<\(genericParametersString)>" : "", + "genericArguments": isGeneric ? "<\(genericArgumentsString)>" : "", + "genericProtocolIdentity": genericProtocolIdentity, + ] + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ExtensionDeclaration.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ExtensionDeclaration.swift new file mode 100644 index 0000000000000000000000000000000000000000..fbb6e5af0893304c7af12603d4da97dfcd8a56e6 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ExtensionDeclaration.swift @@ -0,0 +1,17 @@ +// +// ExtensionDeclaration.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 17.06.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public struct ExtensionDeclaration: Token { + // TODO Implement support for extensions + public let range: CountableRange<Int> + + public func isEqual(to other: Token) -> Bool { + guard let other = other as? ExtensionDeclaration else { return false } + return self.range == other.range + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/FileRepresentation.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/FileRepresentation.swift new file mode 100644 index 0000000000000000000000000000000000000000..67d98e97f4867c71e94ede64deae69be7e324876 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/FileRepresentation.swift @@ -0,0 +1,68 @@ +// +// FileRepresentation.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 30.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import SourceKittenFramework + +public struct FileRepresentation { + public let sourceFile: File + public let declarations: [Token] + + public init(sourceFile: File, declarations: [Token]) { + self.sourceFile = sourceFile + self.declarations = declarations + } +} + +public extension FileRepresentation { + func mergeInheritance(with files: [FileRepresentation]) -> FileRepresentation { + let tokens = self.declarations.reduce([Token]()) { list, token in + let mergeToken = token.mergeInheritance(with: files) + return list + [mergeToken] + } + + return FileRepresentation(sourceFile: self.sourceFile, declarations: tokens) + } +} + +extension Token { + func mergeInheritance(with files: [FileRepresentation]) -> Token { + guard let typeToken = self as? ContainerToken else { + return self + } + let inheritedRepresentations: [Token] = typeToken.inheritedTypes + .compactMap { Self.findToken(forClassOrProtocol: $0.name, in: files) } + .compactMap { $0.mergeInheritance(with: files) } + + // Merge super declarations + let mergedTokens = inheritedRepresentations.filter { $0.isClassOrProtocolDeclaration } + .map { $0 as! ContainerToken } + .flatMap { $0.children } + .reduce(typeToken.children) { tokens, inheritedToken in + if tokens.contains(where: { $0 == inheritedToken }) { + return tokens + } + return tokens + [inheritedToken] + } + + switch typeToken { + case let classToken as ClassDeclaration: + return classToken.replace(children: mergedTokens) + case let protocolToken as ProtocolDeclaration: + return protocolToken.replace(children: mergedTokens) + default: + return typeToken + } + } + + static func findToken(forClassOrProtocol name: String, in files: [FileRepresentation]) -> Token? { + return files.flatMap { $0.declarations } + .filter { $0.isClassOrProtocolDeclaration } + .map { $0 as! ContainerToken } + .first { $0.name == name } + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/GenericParameter.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/GenericParameter.swift new file mode 100644 index 0000000000000000000000000000000000000000..491fe92d86966c2d845fe202a622d5e1e9845e9a --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/GenericParameter.swift @@ -0,0 +1,31 @@ +// +// GenericParameter.swift +// CuckooGeneratorFramework +// +// Created by Matyáš Kříž on 19/11/2018. +// + +import Foundation + +public struct GenericParameter: Token { + public let name: String + public let range: CountableRange<Int> + public let inheritedType: InheritanceDeclaration? + + public var description: String { + let hasInheritedType = inheritedType != nil + return "\(name)\(hasInheritedType ? ": " : "")\(inheritedType?.name ?? "")" + } + + public func isEqual(to other: Token) -> Bool { + guard let other = other as? GenericParameter else { return false } + return self.name == other.name && self.range == other.range && self.inheritedType?.name == other.inheritedType?.name + } + + public func serialize() -> [String : Any] { + return [ + "name": name, + "inheritedType": inheritedType, + ] + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/HasAccessibility.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/HasAccessibility.swift new file mode 100644 index 0000000000000000000000000000000000000000..254a855c7a224510eddf7a666219eb6164989193 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/HasAccessibility.swift @@ -0,0 +1,12 @@ +// +// HasAccessibility.swift +// CuckooGenerator +// +// Created by Matyáš Kříž on 11/03/2019. +// + +import Foundation + +public protocol HasAccessibility { + var accessibility: Accessibility { get set } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Import.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Import.swift new file mode 100644 index 0000000000000000000000000000000000000000..502d9b79d4b3deaffc46f32a95ab74374ffcc8bf --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Import.swift @@ -0,0 +1,38 @@ +// +// Import.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 17.06.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public struct Import: Token { + public enum Importee: CustomStringConvertible { + case library(name: String) + case component(componentType: String?, library: String, name: String) + + public var description: String { + switch self { + case .library(let name): + return name + case .component(let componentType, let library, let name): + return [componentType, "\(library).\(name)"].compactMap { $0 }.joined(separator: " ") + } + } + } + + public let range: CountableRange<Int> + public let importee: Importee + + public func isEqual(to other: Token) -> Bool { + guard let other = other as? Import, self.range == other.range else { return false } + switch (self.importee, other.importee) { + case (.library(let lhsName), .library(let rhsName)): + return lhsName == rhsName + case (.component(let lhsImportType, let lhsLibrary, let lhsName), .component(let rhsImportType, let rhsLibrary, let rhsName)): + return lhsImportType == rhsImportType && lhsLibrary == rhsLibrary && lhsName == rhsName + default: + return false + } + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/InheritanceDeclaration.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/InheritanceDeclaration.swift new file mode 100644 index 0000000000000000000000000000000000000000..a994e8e3ddffc7a7a09e63e1183026cc8ba3ad7c --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/InheritanceDeclaration.swift @@ -0,0 +1,17 @@ +// +// InheritanceDeclaration.swift +// CuckooGenerator +// +// Created by Arjan Duijzer on 22/02/2017. +// Copyright (c) 2017 Brightify. All rights reserved. +// + +public struct InheritanceDeclaration: Token { + public static let empty = InheritanceDeclaration(name: Tokenizer.nameNotSet) + public let name: String + + public func isEqual(to other: Token) -> Bool { + guard let other = other as? InheritanceDeclaration else { return false } + return self.name == other.name + } +} \ No newline at end of file diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Initializer.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Initializer.swift new file mode 100644 index 0000000000000000000000000000000000000000..f0711a44f1b7f2813a3811c7c2790262d3fce9c8 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Initializer.swift @@ -0,0 +1,25 @@ +// +// Initializer.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 30.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public struct Initializer: Method, HasAccessibility { + public var name: String + public var accessibility: Accessibility + public var returnType: WrappableType + public var returnSignature: ReturnSignature + public var range: CountableRange<Int> + public var nameRange: CountableRange<Int> + public var parameters: [MethodParameter] + public var isOverriding: Bool + public var required: Bool + public var attributes: [Attribute] + public var genericParameters: [GenericParameter] + + public var isOptional: Bool { + return false + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/InstanceVariable.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/InstanceVariable.swift new file mode 100644 index 0000000000000000000000000000000000000000..b33f23fe53c79580950cff8a185303d195b8eb2e --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/InstanceVariable.swift @@ -0,0 +1,46 @@ +// +// InstanceVariable.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 30.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public struct InstanceVariable: Token, HasAccessibility { + public var name: String + public var type: WrappableType + public var accessibility: Accessibility + public var setterAccessibility: Accessibility? + public var range: CountableRange<Int> + public var nameRange: CountableRange<Int> + public var overriding: Bool + public var attributes: [Attribute] + + public var readOnly: Bool { + if let setterAccessibility = setterAccessibility { + return !setterAccessibility.isAccessible + } else { + return true + } + } + + public func isEqual(to other: Token) -> Bool { + guard let other = other as? InstanceVariable else { return false } + return self.name == other.name + } + + public func serialize() -> [String : Any] { + let readOnlyString = readOnly ? "ReadOnly" : "" + let optionalString = type.isOptional && !readOnly ? "Optional" : "" + return [ + "name": name, + "type": type.sugarized, + "nonOptionalType": type.unoptionaled.sugarized, + "accessibility": accessibility.sourceName, + "isReadOnly": readOnly, + "stubType": (overriding ? "Class" : "Protocol") + "ToBeStubbed\(readOnlyString)\(optionalString)Property", + "verifyType": "Verify\(readOnlyString)\(optionalString)Property", + "attributes": attributes.filter { $0.isSupported }, + ] + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Key.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Key.swift new file mode 100644 index 0000000000000000000000000000000000000000..2a5d3bcc0bb3d99d7c71eab2e5890c900deea943 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Key.swift @@ -0,0 +1,28 @@ +// +// Key.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 30.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public enum Key: String { + case Substructure = "key.substructure" + case Kind = "key.kind" + case Accessibility = "key.accessibility" + case SetterAccessibility = "key.setter_accessibility" + case Name = "key.name" + case TypeName = "key.typename" + case InheritedTypes = "key.inheritedtypes" + case Attributes = "key.attributes" + case Attribute = "key.attribute" + + case Length = "key.length" + case Offset = "key.offset" + + case NameLength = "key.namelength" + case NameOffset = "key.nameoffset" + + case BodyLength = "key.bodylength" + case BodyOffset = "key.bodyoffset" +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Kinds.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Kinds.swift new file mode 100644 index 0000000000000000000000000000000000000000..a7bfaed6bd907c7674d7c7c7782f109686480b02 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Kinds.swift @@ -0,0 +1,19 @@ +// +// Kinds.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 30.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public enum Kinds: String { + case ProtocolDeclaration = "source.lang.swift.decl.protocol" + case InstanceMethod = "source.lang.swift.decl.function.method.instance" + case MethodParameter = "source.lang.swift.decl.var.parameter" + case ClassDeclaration = "source.lang.swift.decl.class" + case ExtensionDeclaration = "source.lang.swift.decl.extension" + case InstanceVariable = "source.lang.swift.decl.var.instance" + case GenericParameter = "source.lang.swift.decl.generic_type_param" + case AssociatedType = "source.lang.swift.decl.associatedtype" + case Optional = "source.decl.attribute.optional" +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Method.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Method.swift new file mode 100644 index 0000000000000000000000000000000000000000..a85c91068b0bee04e5c1495c61ca14ac33503933 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Method.swift @@ -0,0 +1,158 @@ +// +// Method.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 30.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Foundation + +public protocol Method: Token, HasAccessibility { + var name: String { get } + var returnSignature: ReturnSignature { get } + var range: CountableRange<Int> { get } + var nameRange: CountableRange<Int> { get } + var parameters: [MethodParameter] { get } + var isOptional: Bool { get } + var isOverriding: Bool { get } + var hasClosureParams: Bool { get } + var hasOptionalParams: Bool { get } + var attributes: [Attribute] { get } + var genericParameters: [GenericParameter] { get } +} + +public extension Method { + var rawName: String { + return name.takeUntil(occurence: "(") ?? "" + } + + var isInit: Bool { + return rawName == "init" + } + + var isDeinit: Bool { + return rawName == "deinit" + } + + var fullyQualifiedName: String { + let parameterTypes = parameters.map { ($0.isInout ? "inout " : "") + $0.type.sugarized } + let nameParts = name.components(separatedBy: ":") + let lastNamePart = nameParts.last ?? "" + + let returnSignatureDescription = returnSignature.description + let returnSignatureString = returnSignatureDescription.isEmpty ? "" : " \(returnSignatureDescription)" + + return zip(nameParts.dropLast(), parameterTypes) + .map { $0 + ": " + $1 } + .joined(separator: ", ") + lastNamePart + returnSignatureString + } + + var isThrowing: Bool { + guard let throwType = returnSignature.throwType else { return false } + return throwType.isThrowing || throwType.isRethrowing + } + + var returnType: WrappableType { + return returnSignature.returnType + } + + var hasClosureParams: Bool { + return parameters.contains { $0.isClosure } + } + + var hasOptionalParams: Bool { + return parameters.contains { $0.isOptional } + } + + func isEqual(to other: Token) -> Bool { + guard let other = other as? Method else { return false } + return self.name == other.name && self.parameters == other.parameters && self.returnType == other.returnType + } + + func serialize() -> [String : Any] { + let call = parameters.map { + let referencedName = "\($0.isInout ? "&" : "")\($0.name)" + if let label = $0.label { + return "\(label): \(referencedName)" + } else { + return referencedName + } + }.joined(separator: ", ") + + let stubFunctionPrefix = isOverriding ? "Class" : "Protocol" + let returnString = returnType.sugarized == "Void" ? "NoReturn" : "" + let throwingString = isThrowing ? "Throwing" : "" + let stubFunction = "Cuckoo.\(stubFunctionPrefix)Stub\(returnString)\(throwingString)Function" + + let escapingParameterNames = parameters.map { parameter in + if parameter.isClosure && !parameter.isEscaping { + let parameterCount = parameter.closureParamCount + let parameterSignature = parameterCount > 0 ? (1...parameterCount).map { _ in "_" }.joined(separator: ", ") : "()" + + // FIXME: Instead of parsing the closure return type here, Tokenizer should do it and pass the information in a data structure + let returnSignature: String + let closureReturnType = extractClosureReturnType(parameter: parameter.type.sugarized) + if let closureReturnType = closureReturnType, !closureReturnType.isEmpty && closureReturnType != "Void" { + returnSignature = " -> " + closureReturnType + } else { + returnSignature = "" + } + return "{ \(parameterSignature)\(returnSignature) in fatalError(\"This is a stub! It's not supposed to be called!\") }" + } else { + return parameter.name + } + }.joined(separator: ", ") + + let genericParametersString = genericParameters.map { $0.description }.joined(separator: ", ") + let isGeneric = !genericParameters.isEmpty + + return [ + "self": self, + "name": rawName, + "accessibility": accessibility.sourceName, + "returnSignature": returnSignature.description, + "parameters": parameters, + "parameterNames": parameters.map { $0.name }.joined(separator: ", "), + "escapingParameterNames": escapingParameterNames, + "isInit": isInit, + "returnType": returnType.explicitOptionalOnly.sugarized, + "isThrowing": isThrowing, + "throwType": returnSignature.throwType?.description ?? "", + "fullyQualifiedName": fullyQualifiedName, + "call": call, + "isOverriding": isOverriding, + "parameterSignature": parameters.map { "\($0.labelAndName): \($0.isInout ? "inout " : "")\($0.type)" }.joined(separator: ", "), + "parameterSignatureWithoutNames": parameters.map { "\($0.name): \($0.type)" }.joined(separator: ", "), + "argumentSignature": parameters.map { $0.type.description }.joined(separator: ", "), + "stubFunction": stubFunction, + "inputTypes": parameters.map { $0.typeWithoutAttributes }.joined(separator: ", "), + "isOptional": isOptional, + "hasClosureParams": hasClosureParams, + "hasOptionalParams": hasOptionalParams, + "attributes": attributes.filter { $0.isSupported }, + "genericParameters": isGeneric ? "<\(genericParametersString)>" : "", + ] + } + + private func extractClosureReturnType(parameter: String) -> String? { + var parenLevel = 0 + for i in 0..<parameter.count { + let index = parameter.index(parameter.startIndex, offsetBy: i) + let character = parameter[index] + if character == "(" { + parenLevel += 1 + } else if character == ")" { + parenLevel -= 1 + if parenLevel == 0 { + let returnSignature = String(parameter[parameter.index(after: index)..<parameter.endIndex]) + let regex = try! NSRegularExpression(pattern: "\\s*->\\s*(.*)\\s*") + guard let result = regex.matches(in: returnSignature, range: NSRange(location: 0, length: returnSignature.count)).first else { return nil } + return returnSignature[result.range(at: 1)] + } + } + } + + return nil + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/MethodParameter.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/MethodParameter.swift new file mode 100644 index 0000000000000000000000000000000000000000..d3f3b95f53ac4f01c51aa4601a1b4faeb9eaf25a --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/MethodParameter.swift @@ -0,0 +1,87 @@ +// +// MethodParameter.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 30.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public struct MethodParameter: Token, Equatable { + public var label: String? + public var name: String + public var type: WrappableType + public var range: CountableRange<Int> + public var nameRange: CountableRange<Int> + public var isInout: Bool + + public var labelAndName: String { + if let label = label { + return label != name ? "\(label) \(name)" : name + } else { + return "_ \(name)" + } + } + + public var typeWithoutAttributes: String { + return type.withoutAttributes.sugarized.trimmed + } + + public func isEqual(to other: Token) -> Bool { + guard let other = other as? MethodParameter else { return false } + return label == other.label && type == other.type + } + + public var isClosure: Bool { + return typeWithoutAttributes.hasPrefix("(") && typeWithoutAttributes.range(of: "->") != nil + } + + public var isOptional: Bool { + return type.isOptional + } + + public var closureParamCount: Int { + // make sure that the parameter is a closure and that it's not just an empty `() -> ...` closure + guard isClosure && !"^\\s*\\(\\s*\\)".regexMatches(typeWithoutAttributes) else { return 0 } + + var parenLevel = 0 + var parameterCount = 1 + for character in typeWithoutAttributes { + switch character { + case "(", "<": + parenLevel += 1 + case ")", ">": + parenLevel -= 1 + case ",": + parameterCount += parenLevel == 1 ? 1 : 0 + default: + break + } + if parenLevel == 0 { + break + } + } + + return parameterCount + } + + public var isEscaping: Bool { + return isClosure && (type.containsAttribute(named: "@escaping") || type.isOptional) + } + + public func serialize() -> [String : Any] { + return [ + "label": label ?? "", + "name": name, + "type": type, + "labelAndName": labelAndName, + "typeWithoutAttributes": typeWithoutAttributes, + "isClosure": isClosure, + "isOptional": isOptional, + "isEscaping": isEscaping + ] + } +} + +public func ==(lhs: MethodParameter, rhs: MethodParameter) -> Bool { + return lhs.isEqual(to: rhs) +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ProtocolDeclaration.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ProtocolDeclaration.swift new file mode 100644 index 0000000000000000000000000000000000000000..bba478cf65db55fdb72895cc8ee96ffd9b257b5c --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ProtocolDeclaration.swift @@ -0,0 +1,40 @@ +// +// ProtocolDeclaration.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 30.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public struct ProtocolDeclaration: ContainerToken, HasAccessibility { + public let implementation: Bool = false + public var name: String + public var accessibility: Accessibility + public var range: CountableRange<Int> + public var nameRange: CountableRange<Int> + public var bodyRange: CountableRange<Int> + public var initializers: [Initializer] + public var children: [Token] + public var inheritedTypes: [InheritanceDeclaration] + public var attributes: [Attribute] + public var genericParameters: [GenericParameter] + + public func replace(children tokens: [Token]) -> ProtocolDeclaration { + return ProtocolDeclaration( + name: self.name, + accessibility: self.accessibility, + range: self.range, + nameRange: self.nameRange, + bodyRange: self.bodyRange, + initializers: self.initializers, + children: tokens, + inheritedTypes: self.inheritedTypes, + attributes: self.attributes, + genericParameters: self.genericParameters) + } + + public func isEqual(to other: Token) -> Bool { + guard let other = other as? ProtocolDeclaration else { return false } + return self.name == other.name + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ProtocolMethod.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ProtocolMethod.swift new file mode 100644 index 0000000000000000000000000000000000000000..2ed7205fae0e44120fa303ff02f03271c05d4313 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ProtocolMethod.swift @@ -0,0 +1,25 @@ +// +// ProtocolMethod.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 30.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public struct ProtocolMethod: Method { + public var name: String + public var accessibility: Accessibility + public var returnSignature: ReturnSignature + public var range: CountableRange<Int> + public var nameRange: CountableRange<Int> + public var parameters: [MethodParameter] + public var attributes: [Attribute] + public var genericParameters: [GenericParameter] + + public var isOptional: Bool { + return attributes.map { $0.kind }.contains(.optional) + } + public var isOverriding: Bool { + return false + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ReturnSignature.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ReturnSignature.swift new file mode 100644 index 0000000000000000000000000000000000000000..bf0b16c350534ba3bd3f352e577b246cb504b5ed --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ReturnSignature.swift @@ -0,0 +1,33 @@ +// +// ReturnSignature.swift +// CuckooGeneratorFramework +// +// Created by Matyáš Kříž on 25/03/2019. +// + +import Foundation + +public struct ReturnSignature { + public var throwType: ThrowType? + public var returnType: WrappableType + public var whereConstraints: [String] + + public init(throwString: String?, returnType: WrappableType, whereConstraints: [String]) { + if let throwString = throwString { + throwType = ThrowType(string: throwString) + } else { + throwType = nil + } + self.returnType = returnType + self.whereConstraints = whereConstraints + } +} + +extension ReturnSignature: CustomStringConvertible { + public var description: String { + let trimmedReturnType = returnType.explicitOptionalOnly.sugarized.trimmed + let returnString = trimmedReturnType.isEmpty || trimmedReturnType == "Void" ? nil : "-> \(returnType)" + let whereString = whereConstraints.isEmpty ? nil : "where \(whereConstraints.joined(separator: ", "))" + return [throwType?.description, returnString, whereString].compactMap { $0 }.joined(separator: " ") + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ThrowType.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ThrowType.swift new file mode 100644 index 0000000000000000000000000000000000000000..a85ea5457265366a94766059d843c203428c4b22 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/ThrowType.swift @@ -0,0 +1,38 @@ +// +// ThrowType.swift +// CuckooGeneratorFramework +// +// Created by Matyáš Kříž on 14/05/2019. +// + +public enum ThrowType: CustomStringConvertible { + case throwing + case rethrowing + + public init?(string: String) { + if string.trimmed.hasPrefix("throws") { + self = .throwing + } else if string.trimmed.hasPrefix("rethrows") { + self = .rethrowing + } else { + return nil + } + } + + public var isThrowing: Bool { + return self == .throwing + } + + public var isRethrowing: Bool { + return self == .rethrowing + } + + public var description: String { + switch self { + case .throwing: + return "throws" + case .rethrowing: + return "rethrows" + } + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Token.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Token.swift new file mode 100644 index 0000000000000000000000000000000000000000..b2604d894503e6e8e375fa255fb82ef1b31b6529 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/Token.swift @@ -0,0 +1,37 @@ +// +// Token.swift +// CuckooGenerator +// +// Created by Filip Dolnik on 30.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol Token { + func isEqual(to other: Token) -> Bool + + func serialize() -> [String: Any] +} + +public func ==(rhs: Token, lhs: Token) -> Bool { + return rhs.isEqual(to: lhs) +} + +public extension Token { + func serialize() -> [String: Any] { + return [:] + } + + func serializeWithType() -> [String: Any] { + var serialized = serialize() + serialized["@type"] = "\(type(of: self))" + return serialized + } + + var isClassOrProtocolDeclaration: Bool { + return self is ProtocolDeclaration || self is ClassDeclaration + } + + var isInheritanceDeclaration: Bool { + return self is InheritanceDeclaration + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/WrappableType.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/WrappableType.swift new file mode 100644 index 0000000000000000000000000000000000000000..d573ce76f3a887b0d82ded55669b3872ccaa6e30 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Tokens/WrappableType.swift @@ -0,0 +1,155 @@ +// +// WrappableType.swift +// CuckooGeneratorFramework +// +// Created by Matyáš Kříž on 13/03/2019. +// + +public enum WrappableType { + indirect case optional(WrappableType) + indirect case implicitlyUnwrappedOptional(WrappableType) + indirect case attributed(WrappableType, attributes: [String]) + case type(String) + + public var sugarized: String { + switch self { + case .optional(let wrapped): + return "\(wrapped.sugarized)?" + case .implicitlyUnwrappedOptional(let wrapped): + return "\(wrapped.sugarized)!" + case .attributed(let wrapped, let attributes): + return "\(attributes.joined(separator: " ")) \(wrapped.sugarized)" + case .type(let type): + return type + } + } + + public var desugarized: String { + switch self { + case .optional(let wrapped), .implicitlyUnwrappedOptional(let wrapped): + return "Optional<\(wrapped.desugarized)>" + case .attributed(let wrapped, let attributes): + return "\(attributes.joined(separator: " ")) \(wrapped.desugarized)" + case .type(let type): + return type + } + } + + public var explicitOptionalOnly: WrappableType { + switch self { + case .optional(let wrapped), .implicitlyUnwrappedOptional(let wrapped): + return .optional(wrapped.explicitOptionalOnly) + case .attributed(let wrapped, let attributes): + return .attributed(wrapped.explicitOptionalOnly, attributes: attributes) + case .type: + return self + } + } + + public var unoptionaled: WrappableType { + switch self { + case .optional(let wrapped), .implicitlyUnwrappedOptional(let wrapped): + return wrapped.unoptionaled + case .attributed(let wrapped, let attributes): + return .attributed(wrapped.unoptionaled, attributes: attributes) + case .type: + return self + } + } + + public var unwrapped: WrappableType { + switch self { + case .optional(let wrapped), .implicitlyUnwrappedOptional(let wrapped): + return wrapped + case .attributed(let wrapped, let attributes): + return .attributed(wrapped.unwrapped, attributes: attributes) + case .type: + return self + } + } + + public var withoutAttributes: WrappableType { + switch self { + case .optional(let wrapped): + return .optional(wrapped.withoutAttributes) + case .implicitlyUnwrappedOptional(let wrapped): + return .implicitlyUnwrappedOptional(wrapped.withoutAttributes) + case .attributed(let wrapped, _): + return wrapped + case .type: + return self + } + } + + public var isOptional: Bool { + switch self { + case .optional, .implicitlyUnwrappedOptional: + return true + case .attributed(let wrapped, _): + return wrapped.isOptional + case .type: + return false + } + } + + public init(parsing value: String) { + let trimmedValue = value.trimmed + let optionalPrefix = "Optional<" + if trimmedValue.hasPrefix("@") { + let (attributes, resultString) = ["@autoclosure", "@escaping", "@noescape"] + .reduce(([], trimmedValue)) { acc, next -> ([String], String) in + var (attributes, resultString) = acc + guard let range = resultString.range(of: next) else { return acc } + resultString.removeSubrange(range) + attributes.append(next) + return (attributes, resultString) + } + self = .attributed(WrappableType(parsing: resultString), attributes: attributes) + } else if trimmedValue.hasSuffix("?") { + if trimmedValue.contains("->") && !trimmedValue.hasSuffix(")?") { + self = .type(trimmedValue) + } else { + self = .optional(WrappableType(parsing: String(trimmedValue.dropLast()))) + } + } else if trimmedValue.hasPrefix(optionalPrefix) { + self = .optional(WrappableType(parsing: String(trimmedValue.dropFirst(optionalPrefix.count).dropLast()))) + } else if trimmedValue.hasSuffix("!") { + self = .implicitlyUnwrappedOptional(WrappableType(parsing: String(trimmedValue.dropLast()))) + } else { + self = .type(trimmedValue) + } + } + + public func containsAttribute(named attribute: String) -> Bool { + switch self { + case .optional(let wrapped), .implicitlyUnwrappedOptional(let wrapped): + return wrapped.containsAttribute(named: attribute) + case .attributed(_, let attributes): + return attributes.contains(attribute.trimmed) + case .type: + return false + } + } +} + +extension WrappableType: CustomStringConvertible { + public var description: String { + return sugarized + } +} + +extension WrappableType: Equatable { + public static func ==(lhs: WrappableType, rhs: WrappableType) -> Bool { + switch (lhs, rhs) { + case (.optional(let lhsWrapped), .optional(let rhsWrapped)), + (.implicitlyUnwrappedOptional(let lhsWrapped), .implicitlyUnwrappedOptional(let rhsWrapped)): + return lhsWrapped == rhsWrapped + case (.attributed(let lhsWrapped, let lhsAttributes), .attributed(let rhsWrapped, let rhsAttributes)): + return lhsWrapped == rhsWrapped && lhsAttributes == rhsAttributes + case (.type(let lhsType), .type(let rhsType)): + return lhsType == rhsType + default: + return false + } + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/TypeGuesser.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/TypeGuesser.swift new file mode 100644 index 0000000000000000000000000000000000000000..237149816ad5299175aa7249569f6acba85cadaa --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/TypeGuesser.swift @@ -0,0 +1,58 @@ +// +// TypeGuesser.swift +// CuckooGeneratorFramework +// +// Created by Matyáš Kříž on 31/05/2019. +// + +import Foundation + +struct TypeGuesser { + static func guessType(from value: String) -> String? { + let value = value.trimmed + let casting = checkCasting(from: value) + guard casting == nil else { return casting } + + let character = value[value.startIndex] + switch character { + case "-", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9": + return guessNumberType(from: value) + case "_": + return guessIdentifier(from: value) + case "\"": + return "String" + default: + let identifier = guessIdentifier(from: value) + return identifier == "true" || identifier == "false" ? "Bool" : identifier + } + } + + private static func guessNumberType(from value: String) -> String { + var iterator = value.makeIterator() + while let character = iterator.next() { + if character == "." || character == "e" { + return "Double" + } + } + return "Int" + } + + private static func guessIdentifier(from value: String) -> String? { + var identifier = "" + var iterator = value.makeIterator() + while let character = iterator.next() { + guard character != "(" else { break } + identifier.append(character) + } + return identifier + } + + private static func checkCasting(from value: String) -> String? { + let regex = try! NSRegularExpression(pattern: " as (.*)$") + let range = NSRange(location: 0, length: value.count) + guard let casting = regex.firstMatch(in: value, range: range) else { return nil } + let foundRange = casting.range(at: 1) + guard foundRange.location != NSNotFound else { return nil } + return value[foundRange] + } +} diff --git a/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Utils.swift b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Utils.swift new file mode 100644 index 0000000000000000000000000000000000000000..043e9d279c93a06074229e74bf7782c3cd10c299 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/CuckooGeneratorFramework/Utils.swift @@ -0,0 +1,64 @@ +// +// String+Utility.swift +// CuckooGenerator +// +// Created by Tadeas Kriz on 12/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Foundation +import SourceKittenFramework + +extension String { + var trimmed: String { + return trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) + } + + func takeUntil(occurence: String) -> String? { + return components(separatedBy: occurence).first + } + + subscript(range: Range<Int>) -> String { + let stringRange = index(startIndex, offsetBy: range.lowerBound)..<index(startIndex, offsetBy: range.upperBound) + return String(self[stringRange]) + } +} + +extension String.UTF8View { + subscript(range: Range<Int>) -> String { + let stringRange = index(startIndex, offsetBy: range.lowerBound)..<index(startIndex, offsetBy: range.upperBound) + let subsequence: String.UTF8View.SubSequence = self[stringRange] + return String(subsequence) ?? "" + } +} + +extension String { + func regexMatches(_ source: String) -> Bool { + let regex = try! NSRegularExpression(pattern: self) + return regex.firstMatch(in: source, range: NSRange(location: 0, length: source.count)) != nil + } +} + +extension Sequence { + #if !swift(>=4.1) + public func compactMap<O>(_ transform: (Element) -> O?) -> [O] { + return self.flatMap(transform) + } + #endif + + + func only<T>(_ type: T.Type) -> [T] { + return compactMap { $0 as? T } + } + + func noneOf<T>(_ type: T.Type) -> [Iterator.Element] { + return filter { !($0 is T) } + } +} + +internal func extractRange(from dictionary: [String: SourceKitRepresentable], offset: Key, length: Key) -> CountableRange<Int>? { + guard let offset = (dictionary[offset.rawValue] as? Int64).map(Int.init), + let length = (dictionary[length.rawValue] as? Int64).map(Int.init) else { return nil } + + return offset..<offset.advanced(by: length) +} diff --git a/Pods/Cuckoo/Generator/Source/cuckoo_generator/CuckooGeneratorError.swift b/Pods/Cuckoo/Generator/Source/cuckoo_generator/CuckooGeneratorError.swift new file mode 100644 index 0000000000000000000000000000000000000000..a7d758db5b88b58ef5d0c715975ad32bac60c3c9 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/cuckoo_generator/CuckooGeneratorError.swift @@ -0,0 +1,27 @@ +// +// CuckooGeneratorError.swift +// CuckooGenerator +// +// Created by Tadeas Kriz on 13/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Foundation +import FileKit + +public enum CuckooGeneratorError: Error { + case ioError(FileKitError) + case unknownError(Error) + case stderrUsed + + public var description: String { + switch self { + case .ioError(let error): + return error.description + case .unknownError(let error): + return "\(error)" + case .stderrUsed: + return "" + } + } +} diff --git a/Pods/Cuckoo/Generator/Source/cuckoo_generator/GenerateMocksCommand.swift b/Pods/Cuckoo/Generator/Source/cuckoo_generator/GenerateMocksCommand.swift new file mode 100644 index 0000000000000000000000000000000000000000..b2e70464caba7fa155d4a9a56366c5c4fcf4b865 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/cuckoo_generator/GenerateMocksCommand.swift @@ -0,0 +1,213 @@ +// +// GenerateMocksCommand.swift +// CuckooGenerator +// +// Created by Tadeas Kriz on 12/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Commandant +import Result +import SourceKittenFramework +import FileKit +import CuckooGeneratorFramework +import Foundation + +private func curry<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, R> + (_ f: @escaping (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) -> R) + -> (P1) -> (P2) -> (P3) -> (P4) -> (P5) -> (P6) -> (P7) -> (P8) -> (P9) -> (P10) -> (P11) -> (P12) -> R { + return { p1 in { p2 in { p3 in { p4 in { p5 in { p6 in { p7 in { p8 in { p9 in { p10 in { p11 in { p12 in + f(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) + } } } } } } } } } } } } +} + +public struct GenerateMocksCommand: CommandProtocol { + + public let verb = "generate" + public let function = "Generates mock files" + + public func run(_ options: Options) -> Result<Void, CuckooGeneratorError> { + let getFullPathSortedArray: ([String]) -> [String] = { stringArray in + Array(Set(stringArray.map { Path($0).standardRawValue })).sorted() + } + let inputPathValues: [String] + if options.globEnabled { + inputPathValues = getFullPathSortedArray(options.files.flatMap { Glob(pattern: $0).paths }) + } else { + inputPathValues = getFullPathSortedArray(options.files) + } + let inputFiles = inputPathValues.map { File(path: $0) }.compactMap { $0 } + let tokens = inputFiles.map { Tokenizer(sourceFile: $0, debugMode: options.debugMode).tokenize() } + let tokensWithInheritance = options.noInheritance ? tokens : mergeInheritance(tokens) + + // filter classes/protocols based on the settings passed to the generator + var typeFilters = [] as [(Token) -> Bool] + if options.noClassMocking { + typeFilters.append(ignoreClasses) + } + if !options.regex.isEmpty { + typeFilters.append(keepMatching(pattern: options.regex)) + } + if !options.exclude.isEmpty { + typeFilters.append(ignoreIfExists(in: options.exclude)) + } + let parsedFiles = removeTypes(from: tokensWithInheritance, using: typeFilters) + + // generating headers and mocks + let headers = parsedFiles.map { options.noHeader ? "" : FileHeaderHandler.getHeader(of: $0, includeTimestamp: !options.noTimestamp) } + let imports = parsedFiles.map { FileHeaderHandler.getImports(of: $0, testableFrameworks: options.testableFrameworks) } + let mocks = parsedFiles.map { try! Generator(file: $0).generate(debug: options.debugMode) } + + let mergedFiles = zip(zip(headers, imports), mocks).map { $0.0 + $0.1 + $1 } + let outputPath = Path(options.output) + + do { + if outputPath.isDirectory { + let inputPaths = inputPathValues.map { Path($0) } + for (inputPath, outputText) in zip(inputPaths, mergedFiles) { + let fileName = options.filePrefix + inputPath.fileName + let outputFile = TextFile(path: outputPath + fileName) + try outputText |> outputFile + } + } else { + let outputFile = TextFile(path: outputPath) + try mergedFiles.joined(separator: "\n") |> outputFile + } + } catch let error as FileKitError { + return .failure(.ioError(error)) + } catch let error { + return .failure(.unknownError(error)) + } + + return stderrUsed ? .failure(.stderrUsed) : .success(()) + } + + private func mergeInheritance(_ filesRepresentation: [FileRepresentation]) -> [FileRepresentation] { + return filesRepresentation.compactMap { $0.mergeInheritance(with: filesRepresentation) } + } + + private func removeTypes(from files: [FileRepresentation], using filters: [(Token) -> Bool]) -> [FileRepresentation] { + // Only keep those that pass all filters + let filter: (Token) -> Bool = { token in + !filters.contains { !$0(token) } + } + + return files.compactMap { file in + let filteredDeclarations = file.declarations.filter(filter) + guard !filteredDeclarations.isEmpty else { return nil } + return FileRepresentation(sourceFile: file.sourceFile, declarations: filteredDeclarations) + } + } + + // filter that keeps the protocols while removing all classes + private func ignoreClasses(token: Token) -> Bool { + return !(token is ClassDeclaration) + } + + // filter that keeps the classes/protocols that match the passed regular expression + private func keepMatching(pattern: String) -> (Token) -> Bool { + do { + let regex = try NSRegularExpression(pattern: pattern, options: []) + + return { token in + guard let containerToken = token as? ContainerToken else { return true } + return regex.firstMatch(in: containerToken.name, options: [], range: NSMakeRange(0, containerToken.name.count)) != nil + } + } catch { + fatalError("Invalid regular expression: " + (error as NSError).description) + } + } + + // filter that keeps only the classes/protocols that are not supposed to be excluded + private func ignoreIfExists(in excluded: [String]) -> (Token) -> Bool { + let excludedSet = Set(excluded) + return { token in + guard let containerToken = token as? ContainerToken else { return true } + return !excludedSet.contains(containerToken.name) + } + } + + + public struct Options: OptionsProtocol { + let files: [String] + let output: String + let noHeader: Bool + let noTimestamp: Bool + let noInheritance: Bool + let testableFrameworks: [String] + let exclude: [String] + let filePrefix: String + let noClassMocking: Bool + let debugMode: Bool + let globEnabled: Bool + let regex: String + + public init(output: String, + testableFrameworks: String, + exclude: String, + noHeader: Bool, + noTimestamp: Bool, + noInheritance: Bool, + filePrefix: String, + noClassMocking: Bool, + debugMode: Bool, + globEnabled: Bool, + regex: String, + files: [String]) { + + self.output = output + self.testableFrameworks = testableFrameworks.components(separatedBy: ",").filter { !$0.isEmpty } + self.exclude = exclude.components(separatedBy: ",").filter { !$0.isEmpty }.map { $0.trimmingCharacters(in: .whitespacesAndNewlines) } + self.noHeader = noHeader + self.noTimestamp = noTimestamp + self.noInheritance = noInheritance + self.filePrefix = filePrefix + self.noClassMocking = noClassMocking + self.debugMode = debugMode + self.globEnabled = globEnabled + self.regex = regex + self.files = files + } + + // all options are declared here and then parsed by Commandant + public static func evaluate(_ m: CommandMode) -> Result<Options, CommandantError<CuckooGeneratorError>> { + let output: Result<String, CommandantError<ClientError>> = m <| Option(key: "output", defaultValue: "GeneratedMocks.swift", usage: "Where to put the generated mocks.\nIf a path to a directory is supplied, each input file will have a respective output file with mocks.\nIf a path to a Swift file is supplied, all mocks will be in a single file.\nDefault value is `GeneratedMocks.swift`.") + + let testable: Result<String, CommandantError<ClientError>> = m <| Option(key: "testable", defaultValue: "", usage: "A comma separated list of frameworks that should be imported as @testable in the mock files.") + + let exclude: Result<String, CommandantError<ClientError>> = m <| Option(key: "exclude", defaultValue: "", usage: "A comma separated list of classes and protocols that should be skipped during mock generation.") + + let noHeader: Result<Bool, CommandantError<ClientError>> = m <| Option(key: "no-header", defaultValue: false, usage: "Do not generate file headers.") + + let noTimestamp: Result<Bool, CommandantError<ClientError>> = m <| Option(key: "no-timestamp", defaultValue: false, usage: "Do not generate timestamp.") + + let noInheritance: Result<Bool, CommandantError<ClientError>> = m <| Option(key: "no-inheritance", defaultValue: false, usage: "Do not generate stubs/mock for super class/protocol even if available.") + + let filePrefix: Result<String, CommandantError<ClientError>> = m <| Option(key: "file-prefix", defaultValue: "", usage: "Names of generated files in directory will start with this prefix. Only works when output path is directory.") + + let noClassMocking: Result<Bool, CommandantError<ClientError>> = m <| Option(key: "no-class-mocking", defaultValue: false, usage: "Do not generate mocks for classes.") + + let debugMode: Result<Bool, CommandantError<ClientError>> = m <| Switch(flag: "d", key: "debug", usage: "Run generator in debug mode.") + + let globEnabled: Result<Bool, CommandantError<ClientError>> = m <| Switch(flag: "g", key: "glob", usage: "Use glob for specifying input paths.") + + let regex: Result<String, CommandantError<ClientError>> = m <| Option(key: "regex", defaultValue: "", usage: "A regular expression pattern that is used to match Classes and Protocols.\nAll that do not match are excluded.\nCan be used alongside `--exclude`.") + + let input: Result<[String], CommandantError<ClientError>> = m <| Argument(usage: "Files to parse and generate mocks for.") + + return curry(Options.init) + <*> output + <*> testable + <*> exclude + <*> noHeader + <*> noTimestamp + <*> noInheritance + <*> filePrefix + <*> noClassMocking + <*> debugMode + <*> globEnabled + <*> regex + <*> input + } + } +} diff --git a/Pods/Cuckoo/Generator/Source/cuckoo_generator/Glob.swift b/Pods/Cuckoo/Generator/Source/cuckoo_generator/Glob.swift new file mode 100644 index 0000000000000000000000000000000000000000..09012dbf8a58fcc82d93dfcad1cbbd5785deca29 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/cuckoo_generator/Glob.swift @@ -0,0 +1,184 @@ +// +// Created by Eric Firestone on 3/22/16. +// Copyright © 2016 Square, Inc. All rights reserved. +// Released under the Apache v2 License. +// +// Adapted from https://gist.github.com/blakemerryman/76312e1cbf8aec248167 + +import Foundation + +/** + Finds files on the file system using pattern matching. + */ +class Glob: Collection { + /** + * Different glob implementations have different behaviors, so the behavior of this + * implementation is customizable. + */ + struct Behavior { + // If true then a globstar ("**") causes matching to be done recursively in subdirectories. + // If false then "**" is treated the same as "*" + let supportsGlobstar: Bool + + // If true the results from the directory where the globstar is declared will be included as well. + // For example, with the pattern "dir/**/*.ext" the fie "dir/file.ext" would be included if this + // property is true, and would be omitted if it's false. + let includesFilesFromRootOfGlobstar: Bool + + // If false then the results will not include directory entries. This does not affect recursion depth. + let includesDirectoriesInResults: Bool + + // If false and the last characters of the pattern are "**/" then only directories are returned in the results. + let includesFilesInResultsIfTrailingSlash: Bool + } + + static var defaultBehavior = Glob.Behavior( + supportsGlobstar: true, + includesFilesFromRootOfGlobstar: true, + includesDirectoriesInResults: false, + includesFilesInResultsIfTrailingSlash: false + ) + + private var isDirectoryCache = [String: Bool]() + + let behavior: Behavior + var paths = [String]() + var startIndex: Int { return paths.startIndex } + var endIndex: Int { return paths.endIndex } + + init(pattern: String, behavior: Behavior = Glob.defaultBehavior) { + + self.behavior = behavior + + var adjustedPattern = pattern + let hasTrailingGlobstarSlash = pattern.hasSuffix("**/") + var includeFiles = !hasTrailingGlobstarSlash + + if behavior.includesFilesInResultsIfTrailingSlash { + includeFiles = true + if hasTrailingGlobstarSlash { + // Grab the files too. + adjustedPattern += "*" + } + } + + let patterns = behavior.supportsGlobstar ? expandGlobstar(pattern: adjustedPattern) : [adjustedPattern] + + for pattern in patterns { + var gt = glob_t() + if executeGlob(pattern: pattern, gt: >) { + populateFiles(gt: gt, includeFiles: includeFiles) + } + + globfree(>) + } + + paths = Array(Set(paths)).sorted { lhs, rhs in + lhs.compare(rhs) != ComparisonResult.orderedDescending + } + + clearCaches() + } + + // MARK: Private + + private var globalFlags = GLOB_TILDE | GLOB_BRACE | GLOB_MARK + + private func executeGlob(pattern: UnsafePointer<CChar>, gt: UnsafeMutablePointer<glob_t>) -> Bool { + return 0 == glob(pattern, globalFlags, nil, gt) + } + + private func expandGlobstar(pattern: String) -> [String] { + guard pattern.contains("**") else { + return [pattern] + } + + var results = [String]() + var parts = pattern.components(separatedBy: "**") + let firstPart = parts.removeFirst() + var lastPart = parts.joined(separator: "**") + + let fileManager = FileManager.default + + var directories: [String] + + do { + directories = try fileManager.subpathsOfDirectory(atPath: firstPart).compactMap { subpath in + let fullPath = NSString(string: firstPart).appendingPathComponent(subpath) + var isDirectory = ObjCBool(false) + if fileManager.fileExists(atPath: fullPath, isDirectory: &isDirectory) && isDirectory.boolValue { + return fullPath + } else { + return nil + } + } + } catch { + directories = [] + print("Error parsing file system item: \(error)") + } + + if behavior.includesFilesFromRootOfGlobstar { + // Check the base directory for the glob star as well. + directories.insert(firstPart, at: 0) + + // Include the globstar root directory ("dir/") in a pattern like "dir/**" or "dir/**/" + if lastPart.isEmpty { + results.append(firstPart) + } + } + + if lastPart.isEmpty { + lastPart = "*" + } + for directory in directories { + let partiallyResolvedPattern = NSString(string: directory).appendingPathComponent(lastPart) + results.append(contentsOf: expandGlobstar(pattern: partiallyResolvedPattern)) + } + + return results + } + + private func isDirectory(path: String) -> Bool { + var isDirectory = isDirectoryCache[path] + if let isDirectory = isDirectory { + return isDirectory + } + + var isDirectoryBool = ObjCBool(false) + isDirectory = FileManager.default.fileExists(atPath: path, isDirectory: &isDirectoryBool) && isDirectoryBool.boolValue + isDirectoryCache[path] = isDirectory! + + return isDirectory! + } + + private func clearCaches() { + isDirectoryCache.removeAll() + } + + private func populateFiles(gt: glob_t, includeFiles: Bool) { + let includeDirectories = behavior.includesDirectoriesInResults + + for i in 0..<Int(gt.gl_matchc) { + if let path = String(validatingUTF8: gt.gl_pathv[i]!) { + if !includeFiles || !includeDirectories { + let isDirectory = self.isDirectory(path: path) + if (!includeFiles && !isDirectory) || (!includeDirectories && isDirectory) { + continue + } + } + + paths.append(path) + } + } + } + + // MARK: Subscript Support + + subscript(i: Int) -> String { + return paths[i] + } + + func index(after i: Int) -> Int { + return i + 1 + } +} diff --git a/Pods/Cuckoo/Generator/Source/cuckoo_generator/Supporting Files/Components.plist b/Pods/Cuckoo/Generator/Source/cuckoo_generator/Supporting Files/Components.plist new file mode 100644 index 0000000000000000000000000000000000000000..1999299373386c39f83f10c595a262cce85fe92b --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/cuckoo_generator/Supporting Files/Components.plist @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<array> + <dict> + <key>BundleIsVersionChecked</key> + <false/> + <key>BundleOverwriteAction</key> + <string>upgrade</string> + <key>ChildBundles</key> + <array> + <dict> + <key>BundleOverwriteAction</key> + <string></string> + <key>RootRelativeBundlePath</key> + <string>/usr/local/Frameworks/CuckooGeneratorFramework.framework/Versions/A/Frameworks/FileKit.framework</string> + </dict> + <dict> + <key>BundleOverwriteAction</key> + <string></string> + <key>RootRelativeBundlePath</key> + <string>/usr/local/Frameworks/CuckooGeneratorFramework.framework/Versions/A/Frameworks/Result.framework</string> + </dict> + <dict> + <key>BundleOverwriteAction</key> + <string></string> + <key>RootRelativeBundlePath</key> + <string>/usr/local/Frameworks/CuckooGeneratorFramework.framework/Versions/A/Frameworks/Commandant.framework</string> + </dict> + <dict> + <key>BundleOverwriteAction</key> + <string></string> + <key>RootRelativeBundlePath</key> + <string>/usr/local/Frameworks/CuckooGeneratorFramework.framework/Versions/A/Frameworks/SWXMLHash.framework</string> + </dict> + <dict> + <key>BundleOverwriteAction</key> + <string></string> + <key>RootRelativeBundlePath</key> + <string>/usr/local/Frameworks/CuckooGeneratorFramework.framework/Versions/A/Frameworks/SourceKittenFramework.framework</string> + </dict> + </array> + <key>RootRelativeBundlePath</key> + <string>/usr/local/Frameworks/CuckooGeneratorFramework.framework</string> + </dict> +</array> +</plist> diff --git a/Pods/Cuckoo/Generator/Source/cuckoo_generator/Supporting Files/Info.plist b/Pods/Cuckoo/Generator/Source/cuckoo_generator/Supporting Files/Info.plist new file mode 100644 index 0000000000000000000000000000000000000000..f72234f578e461b2a1d65b3dbb318364e3dd1011 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/cuckoo_generator/Supporting Files/Info.plist @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleExecutable</key> + <string>$(EXECUTABLE_NAME)</string> + <key>CFBundleIconFile</key> + <string></string> + <key>CFBundleIdentifier</key> + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>$(PRODUCT_NAME)</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string>0.8.4</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>1</string> + <key>LSMinimumSystemVersion</key> + <string>$(MACOSX_DEPLOYMENT_TARGET)</string> + <key>NSHumanReadableCopyright</key> + <string>Copyright © 2016 Brightify. All rights reserved.</string> + <key>NSPrincipalClass</key> + <string>NSApplication</string> +</dict> +</plist> diff --git a/Pods/Cuckoo/Generator/Source/cuckoo_generator/VersionCommand.swift b/Pods/Cuckoo/Generator/Source/cuckoo_generator/VersionCommand.swift new file mode 100644 index 0000000000000000000000000000000000000000..0b01c783ae1700cbba5b0953f22f1ef219993a4b --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/cuckoo_generator/VersionCommand.swift @@ -0,0 +1,32 @@ +// +// VersionCommand.swift +// CuckooGenerator +// +// Created by Tadeas Kriz on 17/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Foundation +import Commandant +import Result + +public struct VersionCommand: CommandProtocol { + + static let appVersion = Bundle.allFrameworks.filter { + $0.bundleIdentifier == "org.brightify.CuckooGeneratorFramework" + }.first?.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String ?? "" + + public let verb = "version" + public let function = "Prints the version of this generator." + + public func run(_ options: Options) -> Result<Void, CuckooGeneratorError> { + print(VersionCommand.appVersion) + return .success(()) + } + + public struct Options: OptionsProtocol { + public static func evaluate(_ m: CommandMode) -> Result<Options, CommandantError<CuckooGeneratorError>> { + return .success(Options()) + } + } +} diff --git a/Pods/Cuckoo/Generator/Source/cuckoo_generator/main.swift b/Pods/Cuckoo/Generator/Source/cuckoo_generator/main.swift new file mode 100755 index 0000000000000000000000000000000000000000..ccc1606c71af743118ee9a790282e71166ac3cb9 --- /dev/null +++ b/Pods/Cuckoo/Generator/Source/cuckoo_generator/main.swift @@ -0,0 +1,27 @@ +//#!/usr/bin/swift -F Carthage/Build/Mac +// +// main.swift +// SwiftMockGenerator +// +// Created by Tadeas Kriz on 12/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Foundation +import Commandant + +let registry = CommandRegistry<CuckooGeneratorError>() +registry.register(GenerateMocksCommand()) +registry.register(VersionCommand()) + +let helpCommand = HelpCommand(registry: registry) +registry.register(helpCommand) + +registry.main(defaultVerb: helpCommand.verb) { error in + switch error { + case .stderrUsed: + break + default: + fputs(error.description + "\n", stderr) + } +} diff --git a/Pods/Cuckoo/Generator/Tests/Gemfile b/Pods/Cuckoo/Generator/Tests/Gemfile new file mode 100644 index 0000000000000000000000000000000000000000..0104995f7d3e4d3fbba8e387cc99df179195c61d --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'aruba', '~> 0.14.1' diff --git a/Pods/Cuckoo/Generator/Tests/Gemfile.lock b/Pods/Cuckoo/Generator/Tests/Gemfile.lock new file mode 100644 index 0000000000000000000000000000000000000000..5e32aa17da313e94780363683bb7faabe93aebe4 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/Gemfile.lock @@ -0,0 +1,44 @@ +GEM + remote: https://rubygems.org/ + specs: + aruba (0.14.1) + childprocess (~> 0.5.6) + contracts (~> 0.9) + cucumber (>= 1.3.19) + ffi (~> 1.9.10) + rspec-expectations (>= 2.99) + thor (~> 0.19) + builder (3.2.2) + childprocess (0.5.9) + ffi (~> 1.0, >= 1.0.11) + contracts (0.14.0) + cucumber (2.4.0) + builder (>= 2.1.2) + cucumber-core (~> 1.5.0) + cucumber-wire (~> 0.0.1) + diff-lcs (>= 1.1.3) + gherkin (~> 4.0) + multi_json (>= 1.7.5, < 2.0) + multi_test (>= 0.1.2) + cucumber-core (1.5.0) + gherkin (~> 4.0) + cucumber-wire (0.0.1) + diff-lcs (1.2.5) + ffi (1.9.25) + gherkin (4.0.0) + multi_json (1.12.1) + multi_test (0.1.2) + rspec-expectations (3.4.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.4.0) + rspec-support (3.4.1) + thor (0.19.1) + +PLATFORMS + ruby + +DEPENDENCIES + aruba (~> 0.14.1) + +BUNDLED WITH + 1.12.5 diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/ClassWithAttributes.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/ClassWithAttributes.swift new file mode 100644 index 0000000000000000000000000000000000000000..2533385d965e3c557dd35fb53279e8a767d5c8d2 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/ClassWithAttributes.swift @@ -0,0 +1,7 @@ +/* Multi + line + comment */ + +@objc +public class ClassWithAttributes { +} \ No newline at end of file diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/ClassWithInit.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/ClassWithInit.swift new file mode 100644 index 0000000000000000000000000000000000000000..d12a282a24df0371d1bbb5857da1f1fd14ebc43f --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/ClassWithInit.swift @@ -0,0 +1,14 @@ +// +// ClassWithInit.swift +// Cuckoo +// +// Created by Tadeas Kriz on 09/02/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +class ClassWithInit { + + init(parameter: String) { + + } +} \ No newline at end of file diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/ClassWithOptionals.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/ClassWithOptionals.swift new file mode 100644 index 0000000000000000000000000000000000000000..be114758ea4b1b09b4c38bf1815bd24de3f431e6 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/ClassWithOptionals.swift @@ -0,0 +1,38 @@ +// +// ClassWithOptionals.swift +// Cuckoo +// +// Created by Filip Dolnik on 18.12.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +class ClassWithOptionals { + + var value: Int? = 0 + + var uValue: Int! = 0 + + var array: [Int?] = [] + + var closure: (Int?) -> Void = { _ in } + + var uClosure: (Int!) -> Void = { _ in } + + func returnValue() -> Int? { + return value + } + + func returnUValue() -> Int! { + return uValue + } + + func returnArray() -> [Int?] { + return array + } + + func parameter(parameter: Int?) { + } + + func uParameter(parameter: Int!) { + } +} diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/EmptyClass.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/EmptyClass.swift new file mode 100644 index 0000000000000000000000000000000000000000..be5068ff67cc294abc6c616e9724c3274913e2d9 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/EmptyClass.swift @@ -0,0 +1,12 @@ +// +// EmptyClass.swift +// Cuckoo +// +// Created by Tadeas Kriz on 09/02/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Foundation + +class EmptyClass { +} \ No newline at end of file diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/ClassWithAttributes.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/ClassWithAttributes.swift new file mode 100644 index 0000000000000000000000000000000000000000..9ee7f06534f28b2e5903da0a7c91f9e28875e03a --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/ClassWithAttributes.swift @@ -0,0 +1,43 @@ +// MARK: - Mocks generated from file: SourceFiles/ClassWithAttributes.swift +/* Multi + line + comment */ + +import Cuckoo + +public class MockClassWithAttributes: ClassWithAttributes, Cuckoo.Mock { + public typealias MocksType = ClassWithAttributes + public typealias Stubbing = __StubbingProxy_ClassWithAttributes + public typealias Verification = __VerificationProxy_ClassWithAttributes + public let cuckoo_manager = Cuckoo.MockManager() + + private var observed: ClassWithAttributes? + + public func spy(on victim: ClassWithAttributes) -> Self { + observed = victim + return self + } + + public struct __StubbingProxy_ClassWithAttributes: Cuckoo.StubbingProxy { + private let cuckoo_manager: Cuckoo.MockManager + + public init(manager: Cuckoo.MockManager) { + self.manager = cuckoo_manager + } + } + + public struct __VerificationProxy_ClassWithAttributes: Cuckoo.VerificationProxy { + private let cuckoo_manager: Cuckoo.MockManager + private let callMatcher: Cuckoo.CallMatcher + private let sourceLocation: Cuckoo.SourceLocation + + public init(manager: Cuckoo.MockManager, callMatcher: Cuckoo.CallMatcher, sourceLocation: Cuckoo.SourceLocation) { + self.manager = cuckoo_manager + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } + } +} + +public class ClassWithAttributesStub: ClassWithAttributes { +} diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/ClassWithInit.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/ClassWithInit.swift new file mode 100644 index 0000000000000000000000000000000000000000..459478d25903eccb5e417731cb41a18bd9750a23 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/ClassWithInit.swift @@ -0,0 +1,47 @@ +// MARK: - Mocks generated from file: SourceFiles/ClassWithInit.swift +// +// ClassWithInit.swift +// Cuckoo +// +// Created by Tadeas Kriz on 09/02/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Cuckoo + +class MockClassWithInit: ClassWithInit, Cuckoo.Mock { + typealias MocksType = ClassWithInit + typealias Stubbing = __StubbingProxy_ClassWithInit + typealias Verification = __VerificationProxy_ClassWithInit + let cuckoo_manager = Cuckoo.MockManager() + + private var observed: ClassWithInit? + + func spy(on victim: ClassWithInit) -> Self { + observed = victim + return self + } + + struct __StubbingProxy_ClassWithInit: Cuckoo.StubbingProxy { + private let cuckoo_manager: Cuckoo.MockManager + + init(manager: Cuckoo.MockManager) { + self.manager = cuckoo_manager + } + } + + struct __VerificationProxy_ClassWithInit: Cuckoo.VerificationProxy { + private let cuckoo_manager: Cuckoo.MockManager + private let callMatcher: Cuckoo.CallMatcher + private let sourceLocation: Cuckoo.SourceLocation + + init(manager: Cuckoo.MockManager, callMatcher: Cuckoo.CallMatcher, sourceLocation: Cuckoo.SourceLocation) { + self.manager = cuckoo_manager + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } + } +} + +class ClassWithInitStub: ClassWithInit { +} diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/ClassWithOptionals.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/ClassWithOptionals.swift new file mode 100644 index 0000000000000000000000000000000000000000..4a1a7013fca68a1f0a7605bbcc30f2a90a56f346 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/ClassWithOptionals.swift @@ -0,0 +1,261 @@ +// MARK: - Mocks generated from file: SourceFiles/ClassWithOptionals.swift +// +// ClassWithOptionals.swift +// Cuckoo +// +// Created by Filip Dolnik on 18.12.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Cuckoo + +class MockClassWithOptionals: ClassWithOptionals, Cuckoo.Mock { + typealias MocksType = ClassWithOptionals + typealias Stubbing = __StubbingProxy_ClassWithOptionals + typealias Verification = __VerificationProxy_ClassWithOptionals + let cuckoo_manager = Cuckoo.MockManager() + + private var observed: ClassWithOptionals? + + func spy(on victim: ClassWithOptionals) -> Self { + observed = victim + return self + } + + override var value: Int? { + get { + return cuckoo_manager.getter("value", original: observed.map { o in return { () -> Int? in o.value } }) + } + set { + cuckoo_manager.setter("value", value: newValue, original: observed != nil ? { self.observed?.value = $0 } : nil) + } + } + + override var uValue: Int! { + get { + return cuckoo_manager.getter("uValue", original: observed.map { o in return { () -> Int! in o.uValue } }) + } + set { + cuckoo_manager.setter("uValue", value: newValue, original: observed != nil ? { self.observed?.uValue = $0 } : nil) + } + } + + override var array: [Int?] { + get { + return cuckoo_manager.getter("array", original: observed.map { o in return { () -> [Int?] in o.array } }) + } + set { + cuckoo_manager.setter("array", value: newValue, original: observed != nil ? { self.observed?.array = $0 } : nil) + } + } + + override var closure: (Int?) -> Void { + get { + return cuckoo_manager.getter("closure", original: observed.map { o in return { () -> (Int?) -> Void in o.closure } }) + } + set { + cuckoo_manager.setter("closure", value: newValue, original: observed != nil ? { self.observed?.closure = $0 } : nil) + } + } + + override var uClosure: (Int!) -> Void { + get { + return cuckoo_manager.getter("uClosure", original: observed.map { o in return { () -> (Int!) -> Void in o.uClosure } }) + } + set { + cuckoo_manager.setter("uClosure", value: newValue, original: observed != nil ? { self.observed?.uClosure = $0 } : nil) + } + } + + override func returnValue() -> Int? { + return cuckoo_manager.call("returnValue() -> Int?", parameters: (), original: observed.map { o in return { () -> Int? in o.returnValue() } }) + } + + override func returnUValue() -> Int! { + return cuckoo_manager.call("returnUValue() -> Int!", parameters: (), original: observed.map { o in return { () -> Int! in o.returnUValue() } }) + } + + override func returnArray() -> [Int?] { + return cuckoo_manager.call("returnArray() -> [Int?]", parameters: (), original: observed.map { o in return { () -> [Int?] in o.returnArray() } }) + } + + override func parameter(parameter: Int?) { + return cuckoo_manager.call("parameter(parameter: Int?)", parameters: (parameter), original: observed.map { o in return { (parameter: Int?) in o.parameter(parameter: parameter) } }) + } + + override func uParameter(parameter: Int!) { + return cuckoo_manager.call("uParameter(parameter: Int!)", parameters: (parameter), original: observed.map { o in return { (parameter: Int!) in o.uParameter(parameter: parameter) } }) + } + + struct __StubbingProxy_ClassWithOptionals: Cuckoo.StubbingProxy { + private let cuckoo_manager: Cuckoo.MockManager + + init(manager: Cuckoo.MockManager) { + self.manager = cuckoo_manager + } + + var value: Cuckoo.ToBeStubbedProperty<Int?> { + return Cuckoo.ToBeStubbedProperty(manager: cuckoo_manager, name: "value") + } + + var uValue: Cuckoo.ToBeStubbedProperty<Int?> { + return Cuckoo.ToBeStubbedProperty(manager: cuckoo_manager, name: "uValue") + } + + var array: Cuckoo.ToBeStubbedProperty<[Int?]> { + return Cuckoo.ToBeStubbedProperty(manager: cuckoo_manager, name: "array") + } + + var closure: Cuckoo.ToBeStubbedProperty<(Int?) -> Void> { + return Cuckoo.ToBeStubbedProperty(manager: cuckoo_manager, name: "closure") + } + + var uClosure: Cuckoo.ToBeStubbedProperty<(Int?) -> Void> { + return Cuckoo.ToBeStubbedProperty(manager: cuckoo_manager, name: "uClosure") + } + + func returnValue() -> Cuckoo.StubFunction<(), Int?> { + return Cuckoo.StubFunction(stub: cuckoo_manager.createStub("returnValue() -> Int?", parameterMatchers: [])) + } + + func returnUValue() -> Cuckoo.StubFunction<(), Int?> { + return Cuckoo.StubFunction(stub: cuckoo_manager.createStub("returnUValue() -> Int!", parameterMatchers: [])) + } + + func returnArray() -> Cuckoo.StubFunction<(), [Int?]> { + return Cuckoo.StubFunction(stub: cuckoo_manager.createStub("returnArray() -> [Int?]", parameterMatchers: [])) + } + + func parameter<M1: Cuckoo.Matchable>(parameter: M1) -> Cuckoo.StubNoReturnFunction<(Int?)> where M1.MatchedType == Int? { + let matchers: [Cuckoo.ParameterMatcher<(Int?)>] = [wrap(matchable: parameter) { $0 }] + return Cuckoo.StubNoReturnFunction(stub: cuckoo_manager.createStub("parameter(parameter: Int?)", parameterMatchers: matchers)) + } + + func uParameter<M1: Cuckoo.Matchable>(parameter: M1) -> Cuckoo.StubNoReturnFunction<(Int?)> where M1.MatchedType == Int? { + let matchers: [Cuckoo.ParameterMatcher<(Int?)>] = [wrap(matchable: parameter) { $0 }] + return Cuckoo.StubNoReturnFunction(stub: cuckoo_manager.createStub("uParameter(parameter: Int!)", parameterMatchers: matchers)) + } + } + + struct __VerificationProxy_ClassWithOptionals: Cuckoo.VerificationProxy { + private let cuckoo_manager: Cuckoo.MockManager + private let callMatcher: Cuckoo.CallMatcher + private let sourceLocation: Cuckoo.SourceLocation + + init(manager: Cuckoo.MockManager, callMatcher: Cuckoo.CallMatcher, sourceLocation: Cuckoo.SourceLocation) { + self.manager = cuckoo_manager + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } + + var value: Cuckoo.VerifyProperty<Int?> { + return Cuckoo.VerifyProperty(manager: cuckoo_manager, name: "value", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + var uValue: Cuckoo.VerifyProperty<Int?> { + return Cuckoo.VerifyProperty(manager: cuckoo_manager, name: "uValue", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + var array: Cuckoo.VerifyProperty<[Int?]> { + return Cuckoo.VerifyProperty(manager: cuckoo_manager, name: "array", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + var closure: Cuckoo.VerifyProperty<(Int?) -> Void> { + return Cuckoo.VerifyProperty(manager: cuckoo_manager, name: "closure", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + var uClosure: Cuckoo.VerifyProperty<(Int?) -> Void> { + return Cuckoo.VerifyProperty(manager: cuckoo_manager, name: "uClosure", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + @discardableResult + func returnValue() -> Cuckoo.__DoNotUse<Int?> { + return cuckoo_manager.verify("returnValue() -> Int?", callMatcher: callMatcher, parameterMatchers: [] as [Cuckoo.ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + @discardableResult + func returnUValue() -> Cuckoo.__DoNotUse<Int?> { + return cuckoo_manager.verify("returnUValue() -> Int!", callMatcher: callMatcher, parameterMatchers: [] as [Cuckoo.ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + @discardableResult + func returnArray() -> Cuckoo.__DoNotUse<[Int?]> { + return cuckoo_manager.verify("returnArray() -> [Int?]", callMatcher: callMatcher, parameterMatchers: [] as [Cuckoo.ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + @discardableResult + func parameter<M1: Cuckoo.Matchable>(parameter: M1) -> Cuckoo.__DoNotUse<Void> where M1.MatchedType == Int? { + let matchers: [Cuckoo.ParameterMatcher<(Int?)>] = [wrap(matchable: parameter) { $0 }] + return cuckoo_manager.verify("parameter(parameter: Int?)", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + + @discardableResult + func uParameter<M1: Cuckoo.Matchable>(parameter: M1) -> Cuckoo.__DoNotUse<Void> where M1.MatchedType == Int? { + let matchers: [Cuckoo.ParameterMatcher<(Int?)>] = [wrap(matchable: parameter) { $0 }] + return cuckoo_manager.verify("uParameter(parameter: Int!)", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + } +} + +class ClassWithOptionalsStub: ClassWithOptionals { + + override var value: Int? { + get { + return DefaultValueRegistry.defaultValue(for: (Int?).self) + } + set { + } + } + + override var uValue: Int! { + get { + return DefaultValueRegistry.defaultValue(for: (Int!).self) + } + set { + } + } + + override var array: [Int?] { + get { + return DefaultValueRegistry.defaultValue(for: ([Int?]).self) + } + set { + } + } + + override var closure: (Int?) -> Void { + get { + return DefaultValueRegistry.defaultValue(for: ((Int?) -> Void).self) + } + set { + } + } + + override var uClosure: (Int!) -> Void { + get { + return DefaultValueRegistry.defaultValue(for: ((Int!) -> Void).self) + } + set { + } + } + + override func returnValue() -> Int? { + return DefaultValueRegistry.defaultValue(for: (Int?).self) + } + + override func returnUValue() -> Int! { + return DefaultValueRegistry.defaultValue(for: (Int!).self) + } + + override func returnArray() -> [Int?] { + return DefaultValueRegistry.defaultValue(for: ([Int?]).self) + } + + override func parameter(parameter: Int?) { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } + + override func uParameter(parameter: Int!) { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } +} diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/GeneratedMocks.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/GeneratedMocks.swift new file mode 100644 index 0000000000000000000000000000000000000000..de907078eb9030ac1a0aeff2a28c4af21845a90e --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/GeneratedMocks.swift @@ -0,0 +1,527 @@ +// MARK: - Mocks generated from file: SourceFiles/TestedClass.swift +// +// TestedClass.swift +// Cuckoo +// +// Created by Tadeas Kriz on 09/02/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Cuckoo + +class MockTestedClass: TestedClass, Cuckoo.Mock { + typealias MocksType = TestedClass + typealias Stubbing = __StubbingProxy_TestedClass + typealias Verification = __VerificationProxy_TestedClass + let cuckoo_manager = Cuckoo.MockManager() + + private var observed: TestedClass? + + func spy(on victim: TestedClass) -> Self { + observed = victim + return self + } + + override var readOnlyProperty: String { + get { + return cuckoo_manager.getter("readOnlyProperty", original: observed.map { o in return { () -> String in o.readOnlyProperty } }) + } + } + + override var readWriteProperty: Int { + get { + return cuckoo_manager.getter("readWriteProperty", original: observed.map { o in return { () -> Int in o.readWriteProperty } }) + } + set { + cuckoo_manager.setter("readWriteProperty", value: newValue, original: observed != nil ? { self.observed?.readWriteProperty = $0 } : nil) + } + } + + override var optionalProperty: Int? { + get { + return cuckoo_manager.getter("optionalProperty", original: observed.map { o in return { () -> Int? in o.optionalProperty } }) + } + set { + cuckoo_manager.setter("optionalProperty", value: newValue, original: observed != nil ? { self.observed?.optionalProperty = $0 } : nil) + } + } + + override func noReturn() { + return cuckoo_manager.call("noReturn()", parameters: (), original: observed.map { o in return { () in o.noReturn() } }) + } + + override func count(characters: String) -> Int { + return cuckoo_manager.call("count(characters: String) -> Int", parameters: (characters), original: observed.map { o in return { (characters: String) -> Int in o.count(characters: characters) } }) + } + + override func withThrows() throws -> Int { + return try cuckoo_manager.callThrows("withThrows() throws -> Int", parameters: (), original: observed.map { o in return { () throws -> Int in try o.withThrows() } }) + } + + override func withNoReturnThrows() throws { + return try cuckoo_manager.callThrows("withNoReturnThrows() throws", parameters: (), original: observed.map { o in return { () throws in try o.withNoReturnThrows() } }) + } + + override func withClosure(_ closure: (String) -> Int) -> Int { + return cuckoo_manager.call("withClosure(_: (String) -> Int) -> Int", parameters: (closure), original: observed.map { o in return { (closure: (String) -> Int) -> Int in o.withClosure(closure) } }) + } + + override func withEscape(_ a: String, action closure: @escaping (String) -> Void) { + return cuckoo_manager.call("withEscape(_: String, action: @escaping (String) -> Void)", parameters: (a, closure), original: observed.map { o in return { (a: String, closure: @escaping (String) -> Void) in o.withEscape(a, action: closure) } }) + } + + override func withOptionalClosure(_ a: String, closure: ((String) -> Void)?) { + return cuckoo_manager.call("withOptionalClosure(_: String, closure: ((String) -> Void)?)", parameters: (a, closure), original: observed.map { o in return { (a: String, closure: ((String) -> Void)?) in o.withOptionalClosure(a, closure: closure) } }) + } + + override func withLabelAndUnderscore(labelA a: String, _ b: String) { + return cuckoo_manager.call("withLabelAndUnderscore(labelA: String, _: String)", parameters: (a, b), original: observed.map { o in return { (a: String, b: String) in o.withLabelAndUnderscore(labelA: a, b) } }) + } + + struct __StubbingProxy_TestedClass: Cuckoo.StubbingProxy { + private let cuckoo_manager: Cuckoo.MockManager + + init(manager: Cuckoo.MockManager) { + self.manager = cuckoo_manager + } + + var readOnlyProperty: Cuckoo.ToBeStubbedReadOnlyProperty<String> { + return Cuckoo.ToBeStubbedReadOnlyProperty(manager: cuckoo_manager, name: "readOnlyProperty") + } + + var readWriteProperty: Cuckoo.ToBeStubbedProperty<Int> { + return Cuckoo.ToBeStubbedProperty(manager: cuckoo_manager, name: "readWriteProperty") + } + + var optionalProperty: Cuckoo.ToBeStubbedProperty<Int?> { + return Cuckoo.ToBeStubbedProperty(manager: cuckoo_manager, name: "optionalProperty") + } + + func noReturn() -> Cuckoo.StubNoReturnFunction<()> { + return Cuckoo.StubNoReturnFunction(stub: cuckoo_manager.createStub("noReturn()", parameterMatchers: [])) + } + + func count<M1: Cuckoo.Matchable>(characters: M1) -> Cuckoo.StubFunction<(String), Int> where M1.MatchedType == String { + let matchers: [Cuckoo.ParameterMatcher<(String)>] = [wrap(matchable: characters) { $0 }] + return Cuckoo.StubFunction(stub: cuckoo_manager.createStub("count(characters: String) -> Int", parameterMatchers: matchers)) + } + + func withThrows() -> Cuckoo.StubThrowingFunction<(), Int> { + return Cuckoo.StubThrowingFunction(stub: cuckoo_manager.createStub("withThrows() throws -> Int", parameterMatchers: [])) + } + + func withNoReturnThrows() -> Cuckoo.StubNoReturnThrowingFunction<()> { + return Cuckoo.StubNoReturnThrowingFunction(stub: cuckoo_manager.createStub("withNoReturnThrows() throws", parameterMatchers: [])) + } + + func withClosure<M1: Cuckoo.Matchable>(_ closure: M1) -> Cuckoo.StubFunction<((String) -> Int), Int> where M1.MatchedType == (String) -> Int { + let matchers: [Cuckoo.ParameterMatcher<((String) -> Int)>] = [wrap(matchable: closure) { $0 }] + return Cuckoo.StubFunction(stub: cuckoo_manager.createStub("withClosure(_: (String) -> Int) -> Int", parameterMatchers: matchers)) + } + + func withEscape<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(_ a: M1, action closure: M2) -> Cuckoo.StubNoReturnFunction<(String, (String) -> Void)> where M1.MatchedType == String, M2.MatchedType == (String) -> Void { + let matchers: [Cuckoo.ParameterMatcher<(String, (String) -> Void)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: closure) { $0.1 }] + return Cuckoo.StubNoReturnFunction(stub: cuckoo_manager.createStub("withEscape(_: String, action: @escaping (String) -> Void)", parameterMatchers: matchers)) + } + + func withOptionalClosure<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(_ a: M1, closure: M2) -> Cuckoo.StubNoReturnFunction<(String, ((String) -> Void)?)> where M1.MatchedType == String, M2.MatchedType == ((String) -> Void)? { + let matchers: [Cuckoo.ParameterMatcher<(String, ((String) -> Void)?)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: closure) { $0.1 }] + return Cuckoo.StubNoReturnFunction(stub: cuckoo_manager.createStub("withOptionalClosure(_: String, closure: ((String) -> Void)?)", parameterMatchers: matchers)) + } + + func withLabelAndUnderscore<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(labelA a: M1, _ b: M2) -> Cuckoo.StubNoReturnFunction<(String, String)> where M1.MatchedType == String, M2.MatchedType == String { + let matchers: [Cuckoo.ParameterMatcher<(String, String)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: b) { $0.1 }] + return Cuckoo.StubNoReturnFunction(stub: cuckoo_manager.createStub("withLabelAndUnderscore(labelA: String, _: String)", parameterMatchers: matchers)) + } + } + + struct __VerificationProxy_TestedClass: Cuckoo.VerificationProxy { + private let cuckoo_manager: Cuckoo.MockManager + private let callMatcher: Cuckoo.CallMatcher + private let sourceLocation: Cuckoo.SourceLocation + + init(manager: Cuckoo.MockManager, callMatcher: Cuckoo.CallMatcher, sourceLocation: Cuckoo.SourceLocation) { + self.manager = cuckoo_manager + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } + + var readOnlyProperty: Cuckoo.VerifyReadOnlyProperty<String> { + return Cuckoo.VerifyReadOnlyProperty(manager: cuckoo_manager, name: "readOnlyProperty", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + var readWriteProperty: Cuckoo.VerifyProperty<Int> { + return Cuckoo.VerifyProperty(manager: cuckoo_manager, name: "readWriteProperty", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + var optionalProperty: Cuckoo.VerifyProperty<Int?> { + return Cuckoo.VerifyProperty(manager: cuckoo_manager, name: "optionalProperty", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + @discardableResult + func noReturn() -> Cuckoo.__DoNotUse<Void> { + return cuckoo_manager.verify("noReturn()", callMatcher: callMatcher, parameterMatchers: [] as [Cuckoo.ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + @discardableResult + func count<M1: Cuckoo.Matchable>(characters: M1) -> Cuckoo.__DoNotUse<Int> where M1.MatchedType == String { + let matchers: [Cuckoo.ParameterMatcher<(String)>] = [wrap(matchable: characters) { $0 }] + return cuckoo_manager.verify("count(characters: String) -> Int", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + + @discardableResult + func withThrows() -> Cuckoo.__DoNotUse<Int> { + return cuckoo_manager.verify("withThrows() throws -> Int", callMatcher: callMatcher, parameterMatchers: [] as [Cuckoo.ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + @discardableResult + func withNoReturnThrows() -> Cuckoo.__DoNotUse<Void> { + return cuckoo_manager.verify("withNoReturnThrows() throws", callMatcher: callMatcher, parameterMatchers: [] as [Cuckoo.ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + @discardableResult + func withClosure<M1: Cuckoo.Matchable>(_ closure: M1) -> Cuckoo.__DoNotUse<Int> where M1.MatchedType == (String) -> Int { + let matchers: [Cuckoo.ParameterMatcher<((String) -> Int)>] = [wrap(matchable: closure) { $0 }] + return cuckoo_manager.verify("withClosure(_: (String) -> Int) -> Int", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + + @discardableResult + func withEscape<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(_ a: M1, action closure: M2) -> Cuckoo.__DoNotUse<Void> where M1.MatchedType == String, M2.MatchedType == (String) -> Void { + let matchers: [Cuckoo.ParameterMatcher<(String, (String) -> Void)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: closure) { $0.1 }] + return cuckoo_manager.verify("withEscape(_: String, action: @escaping (String) -> Void)", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + + @discardableResult + func withOptionalClosure<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(_ a: M1, closure: M2) -> Cuckoo.__DoNotUse<Void> where M1.MatchedType == String, M2.MatchedType == ((String) -> Void)? { + let matchers: [Cuckoo.ParameterMatcher<(String, ((String) -> Void)?)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: closure) { $0.1 }] + return cuckoo_manager.verify("withOptionalClosure(_: String, closure: ((String) -> Void)?)", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + + @discardableResult + func withLabelAndUnderscore<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(labelA a: M1, _ b: M2) -> Cuckoo.__DoNotUse<Void> where M1.MatchedType == String, M2.MatchedType == String { + let matchers: [Cuckoo.ParameterMatcher<(String, String)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: b) { $0.1 }] + return cuckoo_manager.verify("withLabelAndUnderscore(labelA: String, _: String)", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + } +} + +class TestedClassStub: TestedClass { + + override var readOnlyProperty: String { + get { + return DefaultValueRegistry.defaultValue(for: (String).self) + } + } + + override var readWriteProperty: Int { + get { + return DefaultValueRegistry.defaultValue(for: (Int).self) + } + set { + } + } + + override var optionalProperty: Int? { + get { + return DefaultValueRegistry.defaultValue(for: (Int?).self) + } + set { + } + } + + override func noReturn() { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } + + override func count(characters: String) -> Int { + return DefaultValueRegistry.defaultValue(for: (Int).self) + } + + override func withThrows() throws -> Int { + return DefaultValueRegistry.defaultValue(for: (Int).self) + } + + override func withNoReturnThrows() throws { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } + + override func withClosure(_ closure: (String) -> Int) -> Int { + return DefaultValueRegistry.defaultValue(for: (Int).self) + } + + override func withEscape(_ a: String, action closure: @escaping (String) -> Void) { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } + + override func withOptionalClosure(_ a: String, closure: ((String) -> Void)?) { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } + + override func withLabelAndUnderscore(labelA a: String, _ b: String) { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } +} + +// MARK: - Mocks generated from file: SourceFiles/TestedProtocol.swift +// +// TestedProtocol.swift +// Cuckoo +// +// Created by Tadeas Kriz on 18/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Cuckoo + +class MockTestedProtocol: TestedProtocol, Cuckoo.Mock { + typealias MocksType = TestedProtocol + typealias Stubbing = __StubbingProxy_TestedProtocol + typealias Verification = __VerificationProxy_TestedProtocol + let cuckoo_manager = Cuckoo.MockManager() + + private var observed: TestedProtocol? + + func spy(on victim: TestedProtocol) -> Self { + observed = victim + return self + } + + var readOnlyProperty: String { + get { + return cuckoo_manager.getter("readOnlyProperty", original: observed.map { o in return { () -> String in o.readOnlyProperty } }) + } + } + + var readWriteProperty: Int { + get { + return cuckoo_manager.getter("readWriteProperty", original: observed.map { o in return { () -> Int in o.readWriteProperty } }) + } + set { + cuckoo_manager.setter("readWriteProperty", value: newValue, original: observed != nil ? { self.observed?.readWriteProperty = $0 } : nil) + } + } + + var optionalProperty: Int? { + get { + return cuckoo_manager.getter("optionalProperty", original: observed.map { o in return { () -> Int? in o.optionalProperty } }) + } + set { + cuckoo_manager.setter("optionalProperty", value: newValue, original: observed != nil ? { self.observed?.optionalProperty = $0 } : nil) + } + } + + func noReturn() { + return cuckoo_manager.call("noReturn()", parameters: (), original: observed.map { o in return { () in o.noReturn() } }) + } + + func count(characters: String) -> Int { + return cuckoo_manager.call("count(characters: String) -> Int", parameters: (characters), original: observed.map { o in return { (characters: String) -> Int in o.count(characters: characters) } }) + } + + func withThrows() throws -> Int { + return try cuckoo_manager.callThrows("withThrows() throws -> Int", parameters: (), original: observed.map { o in return { () throws -> Int in try o.withThrows() } }) + } + + func withNoReturnThrows() throws { + return try cuckoo_manager.callThrows("withNoReturnThrows() throws", parameters: (), original: observed.map { o in return { () throws in try o.withNoReturnThrows() } }) + } + + func withClosure(_ closure: (String) -> Int) -> Int { + return cuckoo_manager.call("withClosure(_: (String) -> Int) -> Int", parameters: (closure), original: observed.map { o in return { (closure: (String) -> Int) -> Int in o.withClosure(closure) } }) + } + + func withEscape(_ a: String, action closure: @escaping (String) -> Void) { + return cuckoo_manager.call("withEscape(_: String, action: @escaping (String) -> Void)", parameters: (a, closure), original: observed.map { o in return { (a: String, closure: @escaping (String) -> Void) in o.withEscape(a, action: closure) } }) + } + + func withOptionalClosure(_ a: String, closure: ((String) -> Void)?) { + return cuckoo_manager.call("withOptionalClosure(_: String, closure: ((String) -> Void)?)", parameters: (a, closure), original: observed.map { o in return { (a: String, closure: ((String) -> Void)?) in o.withOptionalClosure(a, closure: closure) } }) + } + + func withLabelAndUnderscore(labelA a: String, _ b: String) { + return cuckoo_manager.call("withLabelAndUnderscore(labelA: String, _: String)", parameters: (a, b), original: observed.map { o in return { (a: String, b: String) in o.withLabelAndUnderscore(labelA: a, b) } }) + } + + struct __StubbingProxy_TestedProtocol: Cuckoo.StubbingProxy { + private let cuckoo_manager: Cuckoo.MockManager + + init(manager: Cuckoo.MockManager) { + self.manager = cuckoo_manager + } + + var readOnlyProperty: Cuckoo.ToBeStubbedReadOnlyProperty<String> { + return Cuckoo.ToBeStubbedReadOnlyProperty(manager: cuckoo_manager, name: "readOnlyProperty") + } + + var readWriteProperty: Cuckoo.ToBeStubbedProperty<Int> { + return Cuckoo.ToBeStubbedProperty(manager: cuckoo_manager, name: "readWriteProperty") + } + + var optionalProperty: Cuckoo.ToBeStubbedProperty<Int?> { + return Cuckoo.ToBeStubbedProperty(manager: cuckoo_manager, name: "optionalProperty") + } + + func noReturn() -> Cuckoo.StubNoReturnFunction<()> { + return Cuckoo.StubNoReturnFunction(stub: cuckoo_manager.createStub("noReturn()", parameterMatchers: [])) + } + + func count<M1: Cuckoo.Matchable>(characters: M1) -> Cuckoo.StubFunction<(String), Int> where M1.MatchedType == String { + let matchers: [Cuckoo.ParameterMatcher<(String)>] = [wrap(matchable: characters) { $0 }] + return Cuckoo.StubFunction(stub: cuckoo_manager.createStub("count(characters: String) -> Int", parameterMatchers: matchers)) + } + + func withThrows() -> Cuckoo.StubThrowingFunction<(), Int> { + return Cuckoo.StubThrowingFunction(stub: cuckoo_manager.createStub("withThrows() throws -> Int", parameterMatchers: [])) + } + + func withNoReturnThrows() -> Cuckoo.StubNoReturnThrowingFunction<()> { + return Cuckoo.StubNoReturnThrowingFunction(stub: cuckoo_manager.createStub("withNoReturnThrows() throws", parameterMatchers: [])) + } + + func withClosure<M1: Cuckoo.Matchable>(_ closure: M1) -> Cuckoo.StubFunction<((String) -> Int), Int> where M1.MatchedType == (String) -> Int { + let matchers: [Cuckoo.ParameterMatcher<((String) -> Int)>] = [wrap(matchable: closure) { $0 }] + return Cuckoo.StubFunction(stub: cuckoo_manager.createStub("withClosure(_: (String) -> Int) -> Int", parameterMatchers: matchers)) + } + + func withEscape<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(_ a: M1, action closure: M2) -> Cuckoo.StubNoReturnFunction<(String, (String) -> Void)> where M1.MatchedType == String, M2.MatchedType == (String) -> Void { + let matchers: [Cuckoo.ParameterMatcher<(String, (String) -> Void)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: closure) { $0.1 }] + return Cuckoo.StubNoReturnFunction(stub: cuckoo_manager.createStub("withEscape(_: String, action: @escaping (String) -> Void)", parameterMatchers: matchers)) + } + + func withOptionalClosure<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(_ a: M1, closure: M2) -> Cuckoo.StubNoReturnFunction<(String, ((String) -> Void)?)> where M1.MatchedType == String, M2.MatchedType == ((String) -> Void)? { + let matchers: [Cuckoo.ParameterMatcher<(String, ((String) -> Void)?)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: closure) { $0.1 }] + return Cuckoo.StubNoReturnFunction(stub: cuckoo_manager.createStub("withOptionalClosure(_: String, closure: ((String) -> Void)?)", parameterMatchers: matchers)) + } + + func withLabelAndUnderscore<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(labelA a: M1, _ b: M2) -> Cuckoo.StubNoReturnFunction<(String, String)> where M1.MatchedType == String, M2.MatchedType == String { + let matchers: [Cuckoo.ParameterMatcher<(String, String)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: b) { $0.1 }] + return Cuckoo.StubNoReturnFunction(stub: cuckoo_manager.createStub("withLabelAndUnderscore(labelA: String, _: String)", parameterMatchers: matchers)) + } + } + + struct __VerificationProxy_TestedProtocol: Cuckoo.VerificationProxy { + private let cuckoo_manager: Cuckoo.MockManager + private let callMatcher: Cuckoo.CallMatcher + private let sourceLocation: Cuckoo.SourceLocation + + init(manager: Cuckoo.MockManager, callMatcher: Cuckoo.CallMatcher, sourceLocation: Cuckoo.SourceLocation) { + self.manager = cuckoo_manager + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } + + var readOnlyProperty: Cuckoo.VerifyReadOnlyProperty<String> { + return Cuckoo.VerifyReadOnlyProperty(manager: cuckoo_manager, name: "readOnlyProperty", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + var readWriteProperty: Cuckoo.VerifyProperty<Int> { + return Cuckoo.VerifyProperty(manager: cuckoo_manager, name: "readWriteProperty", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + var optionalProperty: Cuckoo.VerifyProperty<Int?> { + return Cuckoo.VerifyProperty(manager: cuckoo_manager, name: "optionalProperty", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + @discardableResult + func noReturn() -> Cuckoo.__DoNotUse<Void> { + return cuckoo_manager.verify("noReturn()", callMatcher: callMatcher, parameterMatchers: [] as [Cuckoo.ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + @discardableResult + func count<M1: Cuckoo.Matchable>(characters: M1) -> Cuckoo.__DoNotUse<Int> where M1.MatchedType == String { + let matchers: [Cuckoo.ParameterMatcher<(String)>] = [wrap(matchable: characters) { $0 }] + return cuckoo_manager.verify("count(characters: String) -> Int", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + + @discardableResult + func withThrows() -> Cuckoo.__DoNotUse<Int> { + return cuckoo_manager.verify("withThrows() throws -> Int", callMatcher: callMatcher, parameterMatchers: [] as [Cuckoo.ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + @discardableResult + func withNoReturnThrows() -> Cuckoo.__DoNotUse<Void> { + return cuckoo_manager.verify("withNoReturnThrows() throws", callMatcher: callMatcher, parameterMatchers: [] as [Cuckoo.ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + @discardableResult + func withClosure<M1: Cuckoo.Matchable>(_ closure: M1) -> Cuckoo.__DoNotUse<Int> where M1.MatchedType == (String) -> Int { + let matchers: [Cuckoo.ParameterMatcher<((String) -> Int)>] = [wrap(matchable: closure) { $0 }] + return cuckoo_manager.verify("withClosure(_: (String) -> Int) -> Int", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + + @discardableResult + func withEscape<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(_ a: M1, action closure: M2) -> Cuckoo.__DoNotUse<Void> where M1.MatchedType == String, M2.MatchedType == (String) -> Void { + let matchers: [Cuckoo.ParameterMatcher<(String, (String) -> Void)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: closure) { $0.1 }] + return cuckoo_manager.verify("withEscape(_: String, action: @escaping (String) -> Void)", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + + @discardableResult + func withOptionalClosure<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(_ a: M1, closure: M2) -> Cuckoo.__DoNotUse<Void> where M1.MatchedType == String, M2.MatchedType == ((String) -> Void)? { + let matchers: [Cuckoo.ParameterMatcher<(String, ((String) -> Void)?)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: closure) { $0.1 }] + return cuckoo_manager.verify("withOptionalClosure(_: String, closure: ((String) -> Void)?)", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + + @discardableResult + func withLabelAndUnderscore<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(labelA a: M1, _ b: M2) -> Cuckoo.__DoNotUse<Void> where M1.MatchedType == String, M2.MatchedType == String { + let matchers: [Cuckoo.ParameterMatcher<(String, String)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: b) { $0.1 }] + return cuckoo_manager.verify("withLabelAndUnderscore(labelA: String, _: String)", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + } +} + +class TestedProtocolStub: TestedProtocol { + + var readOnlyProperty: String { + get { + return DefaultValueRegistry.defaultValue(for: (String).self) + } + } + + var readWriteProperty: Int { + get { + return DefaultValueRegistry.defaultValue(for: (Int).self) + } + set { + } + } + + var optionalProperty: Int? { + get { + return DefaultValueRegistry.defaultValue(for: (Int?).self) + } + set { + } + } + + func noReturn() { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } + + func count(characters: String) -> Int { + return DefaultValueRegistry.defaultValue(for: (Int).self) + } + + func withThrows() throws -> Int { + return DefaultValueRegistry.defaultValue(for: (Int).self) + } + + func withNoReturnThrows() throws { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } + + func withClosure(_ closure: (String) -> Int) -> Int { + return DefaultValueRegistry.defaultValue(for: (Int).self) + } + + func withEscape(_ a: String, action closure: @escaping (String) -> Void) { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } + + func withOptionalClosure(_ a: String, closure: ((String) -> Void)?) { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } + + func withLabelAndUnderscore(labelA a: String, _ b: String) { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } +} diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/Imports.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/Imports.swift new file mode 100644 index 0000000000000000000000000000000000000000..4a7cb669e488082ee81537e387219aec0784755f --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/Imports.swift @@ -0,0 +1,57 @@ +// MARK: - Mocks generated from file: SourceFiles/Imports.swift +// +// Imports.swift +// Cuckoo +// +// Created by Tadeas Kriz on 18/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Cuckoo + +import a +import b +import c +import d +import e +import f +import g +import h +import i + +class MockA: A, Cuckoo.Mock { + typealias MocksType = A + typealias Stubbing = __StubbingProxy_A + typealias Verification = __VerificationProxy_A + let cuckoo_manager = Cuckoo.MockManager() + + private var observed: A? + + func spy(on victim: A) -> Self { + observed = victim + return self + } + + struct __StubbingProxy_A: Cuckoo.StubbingProxy { + private let cuckoo_manager: Cuckoo.MockManager + + init(manager: Cuckoo.MockManager) { + self.manager = cuckoo_manager + } + } + + struct __VerificationProxy_A: Cuckoo.VerificationProxy { + private let cuckoo_manager: Cuckoo.MockManager + private let callMatcher: Cuckoo.CallMatcher + private let sourceLocation: Cuckoo.SourceLocation + + init(manager: Cuckoo.MockManager, callMatcher: Cuckoo.CallMatcher, sourceLocation: Cuckoo.SourceLocation) { + self.manager = cuckoo_manager + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } + } +} + +class AStub: A { +} diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/MultipleClasses.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/MultipleClasses.swift new file mode 100644 index 0000000000000000000000000000000000000000..56e87160594328a43027f54016d0acee059a996a --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/MultipleClasses.swift @@ -0,0 +1,84 @@ +// MARK: - Mocks generated from file: SourceFiles/MultipleClasses.swift +// +// MultipleClasses.swift +// Cuckoo +// +// Created by Tadeas Kriz on 18/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Cuckoo + +class MockA: A, Cuckoo.Mock { + typealias MocksType = A + typealias Stubbing = __StubbingProxy_A + typealias Verification = __VerificationProxy_A + let cuckoo_manager = Cuckoo.MockManager() + + private var observed: A? + + func spy(on victim: A) -> Self { + observed = victim + return self + } + + struct __StubbingProxy_A: Cuckoo.StubbingProxy { + private let cuckoo_manager: Cuckoo.MockManager + + init(manager: Cuckoo.MockManager) { + self.manager = cuckoo_manager + } + } + + struct __VerificationProxy_A: Cuckoo.VerificationProxy { + private let cuckoo_manager: Cuckoo.MockManager + private let callMatcher: Cuckoo.CallMatcher + private let sourceLocation: Cuckoo.SourceLocation + + init(manager: Cuckoo.MockManager, callMatcher: Cuckoo.CallMatcher, sourceLocation: Cuckoo.SourceLocation) { + self.manager = cuckoo_manager + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } + } +} + +class AStub: A { +} + +class MockB: B, Cuckoo.Mock { + typealias MocksType = B + typealias Stubbing = __StubbingProxy_B + typealias Verification = __VerificationProxy_B + let cuckoo_manager = Cuckoo.MockManager() + + private var observed: B? + + func spy(on victim: B) -> Self { + observed = victim + return self + } + + struct __StubbingProxy_B: Cuckoo.StubbingProxy { + private let cuckoo_manager: Cuckoo.MockManager + + init(manager: Cuckoo.MockManager) { + self.manager = cuckoo_manager + } + } + + struct __VerificationProxy_B: Cuckoo.VerificationProxy { + private let cuckoo_manager: Cuckoo.MockManager + private let callMatcher: Cuckoo.CallMatcher + private let sourceLocation: Cuckoo.SourceLocation + + init(manager: Cuckoo.MockManager, callMatcher: Cuckoo.CallMatcher, sourceLocation: Cuckoo.SourceLocation) { + self.manager = cuckoo_manager + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } + } +} + +class BStub: B { +} diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/NoHeader.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/NoHeader.swift new file mode 100644 index 0000000000000000000000000000000000000000..67231cb1851171d7890109c42f12257c50197847 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/NoHeader.swift @@ -0,0 +1,40 @@ +import Cuckoo + +import Foundation + +class MockEmptyClass: EmptyClass, Cuckoo.Mock { + typealias MocksType = EmptyClass + typealias Stubbing = __StubbingProxy_EmptyClass + typealias Verification = __VerificationProxy_EmptyClass + let cuckoo_manager = Cuckoo.MockManager() + + private var observed: EmptyClass? + + func spy(on victim: EmptyClass) -> Self { + observed = victim + return self + } + + struct __StubbingProxy_EmptyClass: Cuckoo.StubbingProxy { + private let cuckoo_manager: Cuckoo.MockManager + + init(manager: Cuckoo.MockManager) { + self.manager = cuckoo_manager + } + } + + struct __VerificationProxy_EmptyClass: Cuckoo.VerificationProxy { + private let cuckoo_manager: Cuckoo.MockManager + private let callMatcher: Cuckoo.CallMatcher + private let sourceLocation: Cuckoo.SourceLocation + + init(manager: Cuckoo.MockManager, callMatcher: Cuckoo.CallMatcher, sourceLocation: Cuckoo.SourceLocation) { + self.manager = cuckoo_manager + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } + } +} + +class EmptyClassStub: EmptyClass { +} diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/Struct.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/Struct.swift new file mode 100644 index 0000000000000000000000000000000000000000..8d7f9e9c925ca2fb5d677d3bc586fe2a02749a5e --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/Struct.swift @@ -0,0 +1,10 @@ +// MARK: - Mocks generated from file: SourceFiles/Struct.swift +// +// Struct.swift +// Cuckoo +// +// Created by Tadeas Kriz on 09/02/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Cuckoo diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/TestableFrameworks.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/TestableFrameworks.swift new file mode 100644 index 0000000000000000000000000000000000000000..6af42b51880ba84ac294b50c9d189d9af86e8da4 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/TestableFrameworks.swift @@ -0,0 +1,53 @@ +// MARK: - Mocks generated from file: SourceFiles/EmptyClass.swift +// +// EmptyClass.swift +// Cuckoo +// +// Created by Tadeas Kriz on 09/02/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Cuckoo +@testable import Cuckoo +@testable import A_b +@testable import A_c +@testable import A_d + +import Foundation + +class MockEmptyClass: EmptyClass, Cuckoo.Mock { + typealias MocksType = EmptyClass + typealias Stubbing = __StubbingProxy_EmptyClass + typealias Verification = __VerificationProxy_EmptyClass + let cuckoo_manager = Cuckoo.MockManager() + + private var observed: EmptyClass? + + func spy(on victim: EmptyClass) -> Self { + observed = victim + return self + } + + struct __StubbingProxy_EmptyClass: Cuckoo.StubbingProxy { + private let cuckoo_manager: Cuckoo.MockManager + + init(manager: Cuckoo.MockManager) { + self.manager = cuckoo_manager + } + } + + struct __VerificationProxy_EmptyClass: Cuckoo.VerificationProxy { + private let cuckoo_manager: Cuckoo.MockManager + private let callMatcher: Cuckoo.CallMatcher + private let sourceLocation: Cuckoo.SourceLocation + + init(manager: Cuckoo.MockManager, callMatcher: Cuckoo.CallMatcher, sourceLocation: Cuckoo.SourceLocation) { + self.manager = cuckoo_manager + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } + } +} + +class EmptyClassStub: EmptyClass { +} diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/TestedProtocol.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/TestedProtocol.swift new file mode 100644 index 0000000000000000000000000000000000000000..3b80e12e1719a0c8069cb5b7e8b5a886b2677821 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/Expected/TestedProtocol.swift @@ -0,0 +1,263 @@ +// MARK: - Mocks generated from file: SourceFiles/TestedProtocol.swift +// +// TestedProtocol.swift +// Cuckoo +// +// Created by Tadeas Kriz on 18/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import Cuckoo + +class MockTestedProtocol: TestedProtocol, Cuckoo.Mock { + typealias MocksType = TestedProtocol + typealias Stubbing = __StubbingProxy_TestedProtocol + typealias Verification = __VerificationProxy_TestedProtocol + let cuckoo_manager = Cuckoo.MockManager() + + private var observed: TestedProtocol? + + func spy(on victim: TestedProtocol) -> Self { + observed = victim + return self + } + + var readOnlyProperty: String { + get { + return cuckoo_manager.getter("readOnlyProperty", original: observed.map { o in return { () -> String in o.readOnlyProperty } }) + } + } + + var readWriteProperty: Int { + get { + return cuckoo_manager.getter("readWriteProperty", original: observed.map { o in return { () -> Int in o.readWriteProperty } }) + } + set { + cuckoo_manager.setter("readWriteProperty", value: newValue, original: observed != nil ? { self.observed?.readWriteProperty = $0 } : nil) + } + } + + var optionalProperty: Int? { + get { + return cuckoo_manager.getter("optionalProperty", original: observed.map { o in return { () -> Int? in o.optionalProperty } }) + } + set { + cuckoo_manager.setter("optionalProperty", value: newValue, original: observed != nil ? { self.observed?.optionalProperty = $0 } : nil) + } + } + + func noReturn() { + return cuckoo_manager.call("noReturn()", parameters: (), original: observed.map { o in return { () in o.noReturn() } }) + } + + func count(characters: String) -> Int { + return cuckoo_manager.call("count(characters: String) -> Int", parameters: (characters), original: observed.map { o in return { (characters: String) -> Int in o.count(characters: characters) } }) + } + + func withThrows() throws -> Int { + return try cuckoo_manager.callThrows("withThrows() throws -> Int", parameters: (), original: observed.map { o in return { () throws -> Int in try o.withThrows() } }) + } + + func withNoReturnThrows() throws { + return try cuckoo_manager.callThrows("withNoReturnThrows() throws", parameters: (), original: observed.map { o in return { () throws in try o.withNoReturnThrows() } }) + } + + func withClosure(_ closure: (String) -> Int) -> Int { + return cuckoo_manager.call("withClosure(_: (String) -> Int) -> Int", parameters: (closure), original: observed.map { o in return { (closure: (String) -> Int) -> Int in o.withClosure(closure) } }) + } + + func withEscape(_ a: String, action closure: @escaping (String) -> Void) { + return cuckoo_manager.call("withEscape(_: String, action: @escaping (String) -> Void)", parameters: (a, closure), original: observed.map { o in return { (a: String, closure: @escaping (String) -> Void) in o.withEscape(a, action: closure) } }) + } + + func withOptionalClosure(_ a: String, closure: ((String) -> Void)?) { + return cuckoo_manager.call("withOptionalClosure(_: String, closure: ((String) -> Void)?)", parameters: (a, closure), original: observed.map { o in return { (a: String, closure: ((String) -> Void)?) in o.withOptionalClosure(a, closure: closure) } }) + } + + func withLabelAndUnderscore(labelA a: String, _ b: String) { + return cuckoo_manager.call("withLabelAndUnderscore(labelA: String, _: String)", parameters: (a, b), original: observed.map { o in return { (a: String, b: String) in o.withLabelAndUnderscore(labelA: a, b) } }) + } + + struct __StubbingProxy_TestedProtocol: Cuckoo.StubbingProxy { + private let cuckoo_manager: Cuckoo.MockManager + + init(manager: Cuckoo.MockManager) { + self.manager = cuckoo_manager + } + + var readOnlyProperty: Cuckoo.ToBeStubbedReadOnlyProperty<String> { + return Cuckoo.ToBeStubbedReadOnlyProperty(manager: cuckoo_manager, name: "readOnlyProperty") + } + + var readWriteProperty: Cuckoo.ToBeStubbedProperty<Int> { + return Cuckoo.ToBeStubbedProperty(manager: cuckoo_manager, name: "readWriteProperty") + } + + var optionalProperty: Cuckoo.ToBeStubbedProperty<Int?> { + return Cuckoo.ToBeStubbedProperty(manager: cuckoo_manager, name: "optionalProperty") + } + + func noReturn() -> Cuckoo.StubNoReturnFunction<()> { + return Cuckoo.StubNoReturnFunction(stub: cuckoo_manager.createStub("noReturn()", parameterMatchers: [])) + } + + func count<M1: Cuckoo.Matchable>(characters: M1) -> Cuckoo.StubFunction<(String), Int> where M1.MatchedType == String { + let matchers: [Cuckoo.ParameterMatcher<(String)>] = [wrap(matchable: characters) { $0 }] + return Cuckoo.StubFunction(stub: cuckoo_manager.createStub("count(characters: String) -> Int", parameterMatchers: matchers)) + } + + func withThrows() -> Cuckoo.StubThrowingFunction<(), Int> { + return Cuckoo.StubThrowingFunction(stub: cuckoo_manager.createStub("withThrows() throws -> Int", parameterMatchers: [])) + } + + func withNoReturnThrows() -> Cuckoo.StubNoReturnThrowingFunction<()> { + return Cuckoo.StubNoReturnThrowingFunction(stub: cuckoo_manager.createStub("withNoReturnThrows() throws", parameterMatchers: [])) + } + + func withClosure<M1: Cuckoo.Matchable>(_ closure: M1) -> Cuckoo.StubFunction<((String) -> Int), Int> where M1.MatchedType == (String) -> Int { + let matchers: [Cuckoo.ParameterMatcher<((String) -> Int)>] = [wrap(matchable: closure) { $0 }] + return Cuckoo.StubFunction(stub: cuckoo_manager.createStub("withClosure(_: (String) -> Int) -> Int", parameterMatchers: matchers)) + } + + func withEscape<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(_ a: M1, action closure: M2) -> Cuckoo.StubNoReturnFunction<(String, (String) -> Void)> where M1.MatchedType == String, M2.MatchedType == (String) -> Void { + let matchers: [Cuckoo.ParameterMatcher<(String, (String) -> Void)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: closure) { $0.1 }] + return Cuckoo.StubNoReturnFunction(stub: cuckoo_manager.createStub("withEscape(_: String, action: @escaping (String) -> Void)", parameterMatchers: matchers)) + } + + func withOptionalClosure<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(_ a: M1, closure: M2) -> Cuckoo.StubNoReturnFunction<(String, ((String) -> Void)?)> where M1.MatchedType == String, M2.MatchedType == ((String) -> Void)? { + let matchers: [Cuckoo.ParameterMatcher<(String, ((String) -> Void)?)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: closure) { $0.1 }] + return Cuckoo.StubNoReturnFunction(stub: cuckoo_manager.createStub("withOptionalClosure(_: String, closure: ((String) -> Void)?)", parameterMatchers: matchers)) + } + + func withLabelAndUnderscore<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(labelA a: M1, _ b: M2) -> Cuckoo.StubNoReturnFunction<(String, String)> where M1.MatchedType == String, M2.MatchedType == String { + let matchers: [Cuckoo.ParameterMatcher<(String, String)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: b) { $0.1 }] + return Cuckoo.StubNoReturnFunction(stub: cuckoo_manager.createStub("withLabelAndUnderscore(labelA: String, _: String)", parameterMatchers: matchers)) + } + } + + struct __VerificationProxy_TestedProtocol: Cuckoo.VerificationProxy { + private let cuckoo_manager: Cuckoo.MockManager + private let callMatcher: Cuckoo.CallMatcher + private let sourceLocation: Cuckoo.SourceLocation + + init(manager: Cuckoo.MockManager, callMatcher: Cuckoo.CallMatcher, sourceLocation: Cuckoo.SourceLocation) { + self.manager = cuckoo_manager + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } + + var readOnlyProperty: Cuckoo.VerifyReadOnlyProperty<String> { + return Cuckoo.VerifyReadOnlyProperty(manager: cuckoo_manager, name: "readOnlyProperty", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + var readWriteProperty: Cuckoo.VerifyProperty<Int> { + return Cuckoo.VerifyProperty(manager: cuckoo_manager, name: "readWriteProperty", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + var optionalProperty: Cuckoo.VerifyProperty<Int?> { + return Cuckoo.VerifyProperty(manager: cuckoo_manager, name: "optionalProperty", callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + @discardableResult + func noReturn() -> Cuckoo.__DoNotUse<Void> { + return cuckoo_manager.verify("noReturn()", callMatcher: callMatcher, parameterMatchers: [] as [Cuckoo.ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + @discardableResult + func count<M1: Cuckoo.Matchable>(characters: M1) -> Cuckoo.__DoNotUse<Int> where M1.MatchedType == String { + let matchers: [Cuckoo.ParameterMatcher<(String)>] = [wrap(matchable: characters) { $0 }] + return cuckoo_manager.verify("count(characters: String) -> Int", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + + @discardableResult + func withThrows() -> Cuckoo.__DoNotUse<Int> { + return cuckoo_manager.verify("withThrows() throws -> Int", callMatcher: callMatcher, parameterMatchers: [] as [Cuckoo.ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + @discardableResult + func withNoReturnThrows() -> Cuckoo.__DoNotUse<Void> { + return cuckoo_manager.verify("withNoReturnThrows() throws", callMatcher: callMatcher, parameterMatchers: [] as [Cuckoo.ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + @discardableResult + func withClosure<M1: Cuckoo.Matchable>(_ closure: M1) -> Cuckoo.__DoNotUse<Int> where M1.MatchedType == (String) -> Int { + let matchers: [Cuckoo.ParameterMatcher<((String) -> Int)>] = [wrap(matchable: closure) { $0 }] + return cuckoo_manager.verify("withClosure(_: (String) -> Int) -> Int", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + + @discardableResult + func withEscape<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(_ a: M1, action closure: M2) -> Cuckoo.__DoNotUse<Void> where M1.MatchedType == String, M2.MatchedType == (String) -> Void { + let matchers: [Cuckoo.ParameterMatcher<(String, (String) -> Void)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: closure) { $0.1 }] + return cuckoo_manager.verify("withEscape(_: String, action: @escaping (String) -> Void)", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + + @discardableResult + func withOptionalClosure<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(_ a: M1, closure: M2) -> Cuckoo.__DoNotUse<Void> where M1.MatchedType == String, M2.MatchedType == ((String) -> Void)? { + let matchers: [Cuckoo.ParameterMatcher<(String, ((String) -> Void)?)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: closure) { $0.1 }] + return cuckoo_manager.verify("withOptionalClosure(_: String, closure: ((String) -> Void)?)", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + + @discardableResult + func withLabelAndUnderscore<M1: Cuckoo.Matchable, M2: Cuckoo.Matchable>(labelA a: M1, _ b: M2) -> Cuckoo.__DoNotUse<Void> where M1.MatchedType == String, M2.MatchedType == String { + let matchers: [Cuckoo.ParameterMatcher<(String, String)>] = [wrap(matchable: a) { $0.0 }, wrap(matchable: b) { $0.1 }] + return cuckoo_manager.verify("withLabelAndUnderscore(labelA: String, _: String)", callMatcher: callMatcher, parameterMatchers: matchers, sourceLocation: sourceLocation) + } + } +} + +class TestedProtocolStub: TestedProtocol { + + var readOnlyProperty: String { + get { + return DefaultValueRegistry.defaultValue(for: (String).self) + } + } + + var readWriteProperty: Int { + get { + return DefaultValueRegistry.defaultValue(for: (Int).self) + } + set { + } + } + + var optionalProperty: Int? { + get { + return DefaultValueRegistry.defaultValue(for: (Int?).self) + } + set { + } + } + + func noReturn() { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } + + func count(characters: String) -> Int { + return DefaultValueRegistry.defaultValue(for: (Int).self) + } + + func withThrows() throws -> Int { + return DefaultValueRegistry.defaultValue(for: (Int).self) + } + + func withNoReturnThrows() throws { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } + + func withClosure(_ closure: (String) -> Int) -> Int { + return DefaultValueRegistry.defaultValue(for: (Int).self) + } + + func withEscape(_ a: String, action closure: @escaping (String) -> Void) { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } + + func withOptionalClosure(_ a: String, closure: ((String) -> Void)?) { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } + + func withLabelAndUnderscore(labelA a: String, _ b: String) { + return DefaultValueRegistry.defaultValue(for: (Void).self) + } +} diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/ImplicitInstanceVariableType.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/ImplicitInstanceVariableType.swift new file mode 100644 index 0000000000000000000000000000000000000000..83486520821d21e0f948031ae64dffc7caec80e7 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/ImplicitInstanceVariableType.swift @@ -0,0 +1,12 @@ +// +// ImplicitInstanceVariableType.swift +// Cuckoo +// +// Created by Tadeas Kriz on 09/02/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +class ImplicitInstanceVariableType { + + var variable = 5 +} \ No newline at end of file diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/Imports.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/Imports.swift new file mode 100644 index 0000000000000000000000000000000000000000..75e138bc1a03fc7ae949aea6acf40513056108af --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/Imports.swift @@ -0,0 +1,32 @@ +// +// Imports.swift +// Cuckoo +// +// Created by Tadeas Kriz on 18/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import c;import d +import a; import b + +import e +import +f + +import //aaa +g +import /* aaa */h + +// Class A +class A { + let text = " import x " +} + +import i +import i + +extension A { + var text2: String { + return " import y " + } +} \ No newline at end of file diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/MultipleClasses.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/MultipleClasses.swift new file mode 100644 index 0000000000000000000000000000000000000000..696f18252cbbece4b3804cdc742c52f8fc18d0dc --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/MultipleClasses.swift @@ -0,0 +1,13 @@ +// +// MultipleClasses.swift +// Cuckoo +// +// Created by Tadeas Kriz on 18/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +class A { +} + +class B { +} \ No newline at end of file diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/Struct.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/Struct.swift new file mode 100644 index 0000000000000000000000000000000000000000..117667782bc3d55c13204fb9412538758956ff49 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/Struct.swift @@ -0,0 +1,10 @@ +// +// Struct.swift +// Cuckoo +// +// Created by Tadeas Kriz on 09/02/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +struct Struct { +} \ No newline at end of file diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/TestedClass.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/TestedClass.swift new file mode 100644 index 0000000000000000000000000000000000000000..884f867ca8c255a8491ecced348fdb81c763482e --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/TestedClass.swift @@ -0,0 +1,48 @@ +// +// TestedClass.swift +// Cuckoo +// +// Created by Tadeas Kriz on 09/02/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +class TestedClass { + let constant: Float = 0.0 + + var readOnlyProperty: String { + return "a" + } + + lazy var readWriteProperty: Int = 0 + + lazy var optionalProperty: Int? = 0 + + func noReturn() { + } + + func count(characters: String) -> Int { + return characters.characters.count + } + + func withThrows() throws -> Int { + return 0 + } + + func withNoReturnThrows() throws { + } + + func withClosure(_ closure: (String) -> Int) -> Int { + return closure("hello") + } + + func withEscape(_ a: String, action closure: @escaping (String) -> Void) { + closure(a) + } + + func withOptionalClosure(_ a: String, closure: ((String) -> Void)?) { + closure?(a) + } + + func withLabelAndUnderscore(labelA a: String, _ b: String) { + } +} diff --git a/Pods/Cuckoo/Generator/Tests/SourceFiles/TestedProtocol.swift b/Pods/Cuckoo/Generator/Tests/SourceFiles/TestedProtocol.swift new file mode 100644 index 0000000000000000000000000000000000000000..d25747f8607d839278d34ecac96c5301c6d23144 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/SourceFiles/TestedProtocol.swift @@ -0,0 +1,31 @@ +// +// TestedProtocol.swift +// Cuckoo +// +// Created by Tadeas Kriz on 18/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +protocol TestedProtocol { + var readOnlyProperty: String { get } + + var readWriteProperty: Int { get set } + + var optionalProperty: Int? { get set } + + func noReturn() + + func count(characters: String) -> Int + + func withThrows() throws -> Int + + func withNoReturnThrows() throws + + func withClosure(_ closure: (String) -> Int) -> Int + + func withEscape(_ a: String, action closure: @escaping (String) -> Void) + + func withOptionalClosure(_ a: String, closure: ((String) -> Void)?) + + func withLabelAndUnderscore(labelA a: String, _ b: String) +} diff --git a/Pods/Cuckoo/Generator/Tests/features/generate_command.feature b/Pods/Cuckoo/Generator/Tests/features/generate_command.feature new file mode 100644 index 0000000000000000000000000000000000000000..04ecd8a44e787d908256175d18cfc4e4f6d94727 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/features/generate_command.feature @@ -0,0 +1,85 @@ +Feature: Generate command + + # Recorded tests + + Scenario: class with attributes + When I run `runcuckoo generate --no-timestamp --output ClassWithAttributes.swift SourceFiles/ClassWithAttributes.swift` + Then the file "Expected/ClassWithAttributes.swift" should be equal to file "ClassWithAttributes.swift" + + Scenario: class with init + When I run `runcuckoo generate --no-timestamp --output ClassWithInit.swift SourceFiles/ClassWithInit.swift` + Then the file "Expected/ClassWithInit.swift" should be equal to file "ClassWithInit.swift" + + Scenario: class with optionals + When I run `runcuckoo generate --no-timestamp --output ClassWithOptionals.swift SourceFiles/ClassWithOptionals.swift` + Then the file "Expected/ClassWithOptionals.swift" should be equal to file "ClassWithOptionals.swift" + + Scenario: output not specified + When I run `runcuckoo generate --no-timestamp SourceFiles/TestedClass.swift SourceFiles/TestedProtocol.swift` + Then the file "Expected/GeneratedMocks.swift" should be equal to file "GeneratedMocks.swift" + + Scenario: imports + When I run `runcuckoo generate --no-timestamp --output Imports.swift SourceFiles/Imports.swift` + Then the file "Expected/Imports.swift" should be equal to file "Imports.swift" + + Scenario: multiple classes + When I run `runcuckoo generate --no-timestamp --output MultipleClasses.swift SourceFiles/MultipleClasses.swift` + Then the file "Expected/MultipleClasses.swift" should be equal to file "MultipleClasses.swift" + + Scenario: no header + When I run `runcuckoo generate --no-header --output NoHeader.swift SourceFiles/EmptyClass.swift` + Then the file "Expected/NoHeader.swift" should be equal to file "NoHeader.swift" + + Scenario: struct + When I run `runcuckoo generate --no-timestamp --output Struct.swift SourceFiles/Struct.swift` + Then the file "Expected/Struct.swift" should be equal to file "Struct.swift" + + Scenario: testableFrameworks + When I run `runcuckoo generate --no-timestamp --testable "Cuckoo,A b,A-c,A.d" --output TestableFrameworks.swift SourceFiles/EmptyClass.swift` + Then the file "Expected/TestableFrameworks.swift" should be equal to file "TestableFrameworks.swift" + + Scenario: --no-class-mocking + When I run `runcuckoo generate --no-timestamp --no-class-mocking --output TestedProtocol.swift SourceFiles/TestedClass.swift SourceFiles/TestedProtocol.swift` + Then the file "Expected/TestedProtocol.swift" should be equal to file "TestedProtocol.swift" + + # Not recorded tests + + Scenario: success + When I run `runcuckoo generate --output Actual.swift SourceFiles/EmptyClass.swift` + Then the exit status should be 0 + + Scenario: non existing input file + When I run `runcuckoo generate --output Actual.swift non_existing_file.swift` + Then the output should contain: + """ + Could not read contents of `non_existing_file.swift` + """ + And the exit status should be 1 + + Scenario: implicit instance variable type + When I run `runcuckoo generate --output Actual.swift SourceFiles/ImplicitInstanceVariableType.swift` + Then the output should contain: + """ + Type of instance variable variable could not be inferred. Please specify it explicitly. + """ + And the exit status should be 1 + + # Tests reusing code from recoreded tests (if they fail these will fail because of it.) + + Scenario: in file + When I run `runcuckoo generate --no-timestamp --output Actual.swift SourceFiles/TestedClass.swift SourceFiles/TestedProtocol.swift` + Then the file "Expected/GeneratedMocks.swift" should be equal to file "Actual.swift" + + Scenario: in directory + When I run `runcuckoo generate --no-timestamp --output . SourceFiles/ClassWithAttributes.swift SourceFiles/Imports.swift` + Then the file "Expected/ClassWithAttributes.swift" should be equal to file "ClassWithAttributes.swift" + And the file "Expected/Imports.swift" should be equal to file "Imports.swift" + + Scenario: in file with file-prefix + When I run `runcuckoo generate --no-timestamp --file-prefix Mock --output Actual.swift SourceFiles/TestedClass.swift SourceFiles/TestedProtocol.swift` + Then the file "Expected/GeneratedMocks.swift" should be equal to file "Actual.swift" + + Scenario: in directory with file-prefix + When I run `runcuckoo generate --no-timestamp --file-prefix Mock --output . SourceFiles/ClassWithAttributes.swift SourceFiles/Imports.swift` + Then the file "Expected/ClassWithAttributes.swift" should be equal to file "MockClassWithAttributes.swift" + And the file "Expected/Imports.swift" should be equal to file "MockImports.swift" \ No newline at end of file diff --git a/Pods/Cuckoo/Generator/Tests/features/support/aruba.rb b/Pods/Cuckoo/Generator/Tests/features/support/aruba.rb new file mode 100644 index 0000000000000000000000000000000000000000..c389ee0acf5d103dfef5d3f8f9e646f0e4541083 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/features/support/aruba.rb @@ -0,0 +1,7 @@ +require 'aruba/cucumber' + +Aruba.configure do |config| + config.exit_timeout = 1000 + config.root_directory = '../.build' + config.working_directory = 'tmp' +end diff --git a/Pods/Cuckoo/Generator/Tests/features/support/env.rb b/Pods/Cuckoo/Generator/Tests/features/support/env.rb new file mode 100644 index 0000000000000000000000000000000000000000..5c494edea50a9ca7474fccd57858bd3d596fc8f9 --- /dev/null +++ b/Pods/Cuckoo/Generator/Tests/features/support/env.rb @@ -0,0 +1,14 @@ +require 'aruba/cucumber' +%x'rm -rf ../.build/log' +%x'mkdir ../.build/log' + +Before do |scenario| + %x'ln -s ../../Tests/SourceFiles ../.build/tmp/SourceFiles' + %x'ln -s ../../Tests/SourceFiles/Expected ../.build/tmp/Expected' +end + +After do |scenario| + %x'cp -R ../.build/tmp ../.build/log/"#{scenario.name}"' + %x'rm ../.build/log/"#{scenario.name}"/SourceFiles' + %x'rm ../.build/log/"#{scenario.name}"/Expected' +end diff --git a/Pods/Cuckoo/Generator/makefile b/Pods/Cuckoo/Generator/makefile new file mode 100755 index 0000000000000000000000000000000000000000..1644171fe93c3513d6dc256316d9856ec875a135 --- /dev/null +++ b/Pods/Cuckoo/Generator/makefile @@ -0,0 +1,21 @@ +.PHONY : clean superclean build test + +default: clean build + +clean: + swift package clean + +superclean: + rm -rf .build + +build: + swift build + +record: -test + for file in .build/log/*/*.swift; do + fileName="$(echo "$file" | awk -F"/" '{print $NF}')" + expectedFile="Tests/SourceFiles/Expected/$fileName" + if [ -f "$expectedFile" ]; then + cp "$file" "$expectedFile" + fi + done diff --git a/Pods/Cuckoo/LICENSE b/Pods/Cuckoo/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..c520f55cb8333289343573c533940d5f748578ca --- /dev/null +++ b/Pods/Cuckoo/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Brightify.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/Cuckoo/README.md b/Pods/Cuckoo/README.md new file mode 100644 index 0000000000000000000000000000000000000000..dca1736bc6131bd66593745abd5356052a75a942 --- /dev/null +++ b/Pods/Cuckoo/README.md @@ -0,0 +1,596 @@ +# Cuckoo +## Mock your Swift objects! + +[](https://travis-ci.org/Brightify/Cuckoo) +[](http://cocoapods.org/pods/Cuckoo) +[](https://github.com/Carthage/Carthage) +[](http://cocoapods.org/pods/Cuckoo) +[](http://cocoapods.org/pods/Cuckoo) +[](http://swiftkit.brightify.org) + +## Introduction +Cuckoo was created due to lack of a proper Swift mocking framework. We built the DSL to be very similar to [Mockito](http://mockito.org/), so anyone using it in Java/Android can immediately pick it up and use it. + +To have a chat, [join our Slack workspace](http://swiftkit.brightify.org)! + +## How does it work +Cuckoo has two parts. One is the [runtime](https://github.com/Brightify/Cuckoo) and the other one is an OS X command-line tool simply called [CuckooGenerator](https://github.com/SwiftKit/CuckooGenerator). + +Unfortunately Swift does not have a proper reflection, so we decided to use a compile-time generator to go through files you specify and generate supporting structs/classes that will be used by the runtime in your test target. + +The generated files contain enough information to give you the right amount of power. They work based on inheritance and protocol adoption. This means that only overridable things can be mocked. We currently support all features which fulfill this rule except for things listed in TODO. Due to the complexity of Swift it is not easy to check for all edge cases so if you find some unexpected behavior please file an issue. + +## Changelog +List of all changes and new features can be found [here](CHANGELOG.md). + +## Features +Cuckoo is a powerful mocking framework that supports: + +- [x] inheritance (grandparent methods) +- [x] generics +- [x] simple type inference for instance variables (works with initializers, `as TYPE` notation, and can be overridden by specifying type explicitly) +- [x] [Objective-C mocks utilizing OCMock](#objective-c-support) + +## What will not be supported +Due to the limitations mentioned above, unoverridable code structures are not supportable by Cuckoo. This includes: +- `struct` - workaround is to use a common protocol +- everything with `final` or `private` modifier +- global constants and functions +- static properties and methods + +## Requirements +Cuckoo works on the following platforms: + +- **iOS 8+** +- **Mac OSX 10.9+** +- **tvOS 9+** + +**watchOS** support is not yet possible due to missing XCTest library. + +Note: Version `1.2.0` is the last one supporting **Swift 4.2**. Use versions `1.3.0`+ for **Swift 5** and up. + +## Cuckoo +### 1. Installation +#### CocoaPods +Cuckoo runtime is available through [CocoaPods](http://cocoapods.org). To install it, simply add the following line to your test target in your Podfile: + +```Ruby +pod "Cuckoo" +``` + +And add the following `Run script` build phase to your test target's `Build Phases` above the `Compile Sources` phase: + +```Bash +# Define output file. Change "${PROJECT_DIR}/${PROJECT_NAME}Tests" to your test's root source folder, if it's not the default name. +OUTPUT_FILE="${PROJECT_DIR}/${PROJECT_NAME}Tests/GeneratedMocks.swift" +echo "Generated Mocks File = ${OUTPUT_FILE}" + +# Define input directory. Change "${PROJECT_DIR}/${PROJECT_NAME}" to your project's root source folder, if it's not the default name. +INPUT_DIR="${PROJECT_DIR}/${PROJECT_NAME}" +echo "Mocks Input Directory = ${INPUT_DIR}" + +# Generate mock files, include as many input files as you'd like to create mocks for. +"${PODS_ROOT}/Cuckoo/run" generate --testable "${PROJECT_NAME}" \ +--output "${OUTPUT_FILE}" \ +"${INPUT_DIR}/FileName1.swift" \ +"${INPUT_DIR}/FileName2.swift" \ +"${INPUT_DIR}/FileName3.swift" +# ... and so forth, the last line should never end with a backslash + +# After running once, locate `GeneratedMocks.swift` and drag it into your Xcode test target group. +``` + +**IMPORTANT**: To make your mocking journey easier, make absolutely sure that the run script is above the `Compile Sources` phase. + +Input files can be also specified directly in `Run script` in `Input Files` form. + +Note: All paths in the Run script must be absolute. Variable `PROJECT_DIR` automatically points to your project directory. +**Remember to include paths to inherited Classes and Protocols for mocking/stubbing parent and grandparents.** + +#### Swift Package Manager + +To use Cuckoo with Apple's Swift package manager, add the following as a dependency to your `Package.swift`: + +```swift +.package(url: "https://github.com/Brightify/Cuckoo.git", .upToNextMajor(from: "1.3.0")) +``` + +after that add `"Cuckoo"` as a dependency of the test target. + +If you're unsure, take a look at this example `PackageDescription`: + +```swift +// swift-tools-version:4.0 +import PackageDescription + +let package = Package( + name: "Friendlyst", + products: [ + .library( + name: "Friendlyst", + targets: ["Friendlyst"]), + ], + dependencies: [ + .package(url: "https://github.com/Brightify/Cuckoo.git", .upToNextMajor(from: "1.3.0")) + ], + targets: [ + .target( + name: "Friendlyst", + dependencies: [], + path: "Source"), + .testTarget( + name: "FriendlystTests", + dependencies: ["Cuckoo"], + path: "Tests"), + ] +) +``` + +Cuckoo relies on a script that is currently not downloadable using SwiftPM. However, for convenience, you can copy this line into the terminal to download the latest `run` script. Unfortunately if there are changes in the `run` script, you'll need to execute this line again. +```Bash +curl -Lo run https://raw.githubusercontent.com/Brightify/Cuckoo/master/run && chmod +x run +``` + +When you're all set, use the same `Run script` phase as above and replace +```Bash +"${PODS_ROOT}/Cuckoo/run" +``` +with +```Bash +"${PROJECT_DIR}/run" --download +``` + +The `--download` option is necessary because the `Generator` sources are not cloned in your project (they're in DerivedData, out of reach). You can add a version (e.g. 1.3.0) after it to get a specific version of the `cuckoo_generator`. Use `--clean` as well to replace the current `cuckoo_generator` if you're changing versions. + +#### Carthage +To use Cuckoo with [Carthage](https://github.com/Carthage/Carthage) add this line to your Cartfile: +``` +github "Brightify/Cuckoo" +``` + +Then use the `Run script` from above and replace +```Bash +"${PODS_ROOT}/Cuckoo/run" +``` +with +```Bash +"Carthage/Checkouts/Cuckoo/run" +``` + +Don't forget to add the Framework into your project. + +### 2. Usage +Usage of Cuckoo is similar to [Mockito](http://mockito.org/) and [Hamcrest](http://hamcrest.org/). However, there are some differences and limitations caused by generating the mocks and Swift language itself. List of all the supported features can be found below. You can find complete examples in [tests](Tests). + +#### Mock initialization +Mocks can be created with the same constructors as the mocked type. Name of mock class always corresponds to name of the mocked class/protocol with `Mock` prefix (e.g. mock of protocol `Greeter` is called `MockGreeter`). + +```Swift +let mock = MockGreeter() +``` + +#### Spy +Spies are a special case of Mocks where each call is forwarded to the victim by default. Since Cuckoo version `0.11.0` we changed the way spies work. When you need a spy, give Cuckoo a class to mock instead of a protocol. You'll then be able to call `enableSuperclassSpy()` (or `withEnabledSuperclassSpy()`) on a mock instance and it will behave like a spy for the parent class. + +```Swift +let spy = MockGreeter().withEnabledSuperclassSpy() +``` + +Note: The behavior was changed due to a limitation of Swift. Since we can't create a real proxy for the spy, calls inside the spy were not caught by the Mock and it was confusing. If you rely on the old behavior (i.e. you use spies with final classes), let us know on Slack or create an issue. + +#### Stubbing +Stubbing can be done by calling methods as a parameter of the `when` function. The stub call must be done on special stubbing object. You can get a reference to it with the `stub` function. This function takes an instance of the mock that you want to stub and a closure in which you can do the stubbing. The parameter of this closure is the stubbing object. + +Note: It is currently possible for the subbing object to escape from the closure. You can still use it to stub calls but it is not recommended in practice as the behavior of this may change in the future. + +After calling the `when` function you can specify what to do next with following methods: + +```Swift +/// Invokes `implementation` when invoked. +then(_ implementation: IN throws -> OUT) + +/// Returns `output` when invoked. +thenReturn(_ output: OUT, _ outputs: OUT...) + +/// Throws `error` when invoked. +thenThrow(_ error: ErrorType, _ errors: Error...) + +/// Invokes real implementation when invoked. +thenCallRealImplementation() + +/// Does nothing when invoked. +thenDoNothing() +``` + +The available methods depend on the stubbed method characteristics. For example you cannot use the `thenThrow` method with a method that isn't throwing or rethrowing. + +An example of stubbing a method looks like this: + +```Swift +stub(mock) { stub in + when(stub.greetWithMessage("Hello world")).then { message in + print(message) + } +} +``` + +As for a property: + +```Swift +stub(mock) { stub in + when(stub.readWriteProperty.get).thenReturn(10) + when(stub.readWriteProperty.set(anyInt())).then { + print($0) + } +} +``` + +Notice the `get` and `set`, these will be used in verification later. + +##### Enabling default implementation +In addition to stubbing, you can enable default implementation using an instance of the original class that's being mocked. Every method/property that is not stubbed will behave according to the original implementation. + +Enabling the default implementation is achieved by simply calling the provided method: + +```Swift +let original = OriginalClass<Int>(value: 12) +mock.enableDefaultImplementation(original) +``` + +For passing classes into the method, nothing changes whether you're mocking a class or a protocol. However, there is a difference if you're using a `struct` to conform to the original protocol we are mocking: + +```Swift +let original = ConformingStruct<String>(value: "Hello, Cuckoo!") +mock.enableDefaultImplementation(original) +// or if you need to track changes: +mock.enableDefaultImplementation(mutating: &original) +``` + +Note that this only concerns `struct`s. `enableDefaultImplementation(_:)` and `enableDefaultImplementation(mutating:)` are different in state tracking. + +The standard non-mutating method `enableDefaultImplementation(_:)` creates a copy of the `struct` for default implementation and works with that. However, the mutating method `enableDefaultImplementation(mutating:)` takes a reference to the struct and the changes of the `original` are reflected in the default implementation calls even after enabling default implementation. + +We recommend using the non-mutating method for enabling default implementation unless you need to track the changes for consistency within your code. + +##### Chain stubbing +It is possible to chain stubbing. This is useful for when you need to define different behavior for multiple calls in order. The last behavior will be used for all calls after that. The syntax goes like this: + +```Swift +when(stub.readWriteProperty.get).thenReturn(10).thenReturn(20) +``` + +which is equivalent to: + +```Swift +when(stub.readWriteProperty.get).thenReturn(10, 20) +``` + +The first call to `readWriteProperty` will return `10` and all calls after that will return `20`. + +You can combine the stubbing methods as you like. + +##### Overriding of stubbing +When looking for stub match Cuckoo gives the highest priority to the last call of `when`. This means that calling `when` multiple times with the same function and matchers effectively overrides the previous call. Also more general parameter matchers have to be used before specific ones. + +```Swift +when(stub.countCharacters(anyString())).thenReturn(10) +when(stub.countCharacters("a")).thenReturn(1) +``` + +In this example calling `countCharacters` with `a` will return `1`. If you reversed the order of stubbing then the output would always be `10`. + +#### Usage in real code +After previous steps the stubbed method can be called. It is up to you to inject this mock into your production code. + +Note: Call on mock which wasn't stubbed will cause an error. In case of a spy, the real code will execute. + +#### Verification +For verifying calls there is function `verify`. Its first parameter is the mocked object, optional second parameter is the call matcher. Then the call with its parameters follows. + +```Swift +verify(mock).greetWithMessage("Hello world") +``` + +Verification of properties is similar to their stubbing. + +You can check if there are no more interactions on mock with function `verifyNoMoreInteractions`. + +##### Argument capture +You can use `ArgumentCaptor` to capture arguments in verification of calls (doing that in stubbing is not recommended). Here is an example code: + +```Swift +mock.readWriteProperty = 10 +mock.readWriteProperty = 20 +mock.readWriteProperty = 30 + +let argumentCaptor = ArgumentCaptor<Int>() +verify(mock, times(3)).readWriteProperty.set(argumentCaptor.capture()) +argumentCaptor.value // Returns 30 +argumentCaptor.allValues // Returns [10, 20, 30] +``` + +As you can see, method `capture()` is used to create matcher for the call and then you can get the arguments via properties `value` and `allValues`. `value` returns last captured argument or nil if none. `allValues` returns array with all captured values. + +### 3. Matchers +Cuckoo makes use of *matchers* to connect your mocks to your code under test. + +#### A) Automatic matchers for known types +You can mock any object that conforms to the `Matchable` protocol. +These basic values are extended to conform to `Matchable`: + +- `Bool` +- `String` +- `Float` +- `Double` +- `Character` +- `Int` +- `Int8` +- `Int16` +- `Int32` +- `Int64` +- `UInt` +- `UInt8` +- `UInt16` +- `UInt32` +- `UInt64` + +Matchers for `Array`, `Dictionary`, and `Set` are automatically synthesized as long as the type of the element conforms to `Matchable`. + +#### B) Custom matchers +If Cuckoo doesn't know the type you are trying to compare, you have to write your own method `equal(to:)` using a `ParameterMatcher`. Add this method to your test file: + +```swift +func equal(to value: YourCustomType) -> ParameterMatcher<YourCustomType> { + return ParameterMatcher { tested in + // Implementation of equality test for your custom type. + } +} +``` + +⚠️ Trying to match an object with an unknown or non-`Matchable` type may lead to: + +``` +Command failed due to signal: Segmentation fault: 11 +``` + +For details or an example (with Alamofire), see [this issue](https://github.com/Brightify/Cuckoo/issues/124). + +#### Parameter matchers +`ParameterMatcher` itself also conforms to `Matchable`. You can create your own `ParameterMatcher` instances or if you want to directly use your custom types there is the `Matchable` protocol. Standard instances of `ParameterMatcher` can be obtained via these functions: + +```Swift +/// Returns an equality matcher. +equal<T: Equatable>(to value: T) + +/// Returns an identity matcher. +equal<T: AnyObject>(to value: T) + +/// Returns a matcher using the supplied function. +equal<T>(to value: T, equalWhen equalityFunction: (T, T) -> Bool) + +/// Returns a matcher matching any Int value. +anyInt() + +/// Returns a matcher matching any String value. +anyString() + +/// Returns a matcher matching any T value or nil. +any<T>(type: T.Type = T.self) + +/// Returns a matcher matching any closure. +anyClosure() + +/// Returns a matcher matching any throwing closure. +anyThrowingClosure() + +/// Returns a matcher matching any non nil value. +notNil() +``` + +Cuckoo also provides plenty of convenience matchers for sequences and dictionaries, allowing you to check if a sequence is a superset of a certain sequence, contains at least one of its elements, or is completely disjunct from it. + +`Matchable` can be chained with methods `or` and `and` like so: + +```Swift +verify(mock).greetWithMessage("Hello world".or("Hallo Welt")) +``` + +#### Call matchers +As a second parameter of the `verify` function you can use instances of `CallMatcher`. Its primary function is to assert how many times was the call made. But the `matches` function has a parameter of type `[StubCall]` which means you can use a custom `CallMatcher` to inspect the stub calls or for some side effect. + +Note: Call matchers are applied after the parameter matchers. So you get only stub calls of the desired method with correct arguments. + +Standard call matchers are: + +```Swift +/// Returns a matcher ensuring a call was made `count` times. +times(_ count: Int) + +/// Returns a matcher ensuring no call was made. +never() + +/// Returns a matcher ensuring at least one call was made. +atLeastOnce() + +/// Returns a matcher ensuring call was made at least `count` times. +atLeast(_ count: Int) + +/// Returns a matcher ensuring call was made at most `count` times. +atMost(_ count: Int) +``` + +As with `Matchable` you can chain `CallMatcher` with methods `or` and `and`. However, you can't mix `Matchable` and `CallMatcher` together. + +#### Resetting mocks +Following functions are used to reset stubbing and/or invocations on mocks. + +```Swift +/// Clears all invocations and stubs of given mocks. +reset<M: Mock>(_ mocks: M...) + +/// Clears all stubs of given mocks. +clearStubs<M: Mock>(_ mocks: M...) + +/// Clears all invocations of given mocks. +clearInvocations<M: Mock>(_ mocks: M...) +``` + +#### Stub objects +Stubs are used for suppressing real code. Stubs are different from Mocks in that they don't support stubbing nor verification. They can be created with the same constructors as the mocked type. Name of stub class always corresponds to name of the mocked class/protocol with `Stub` suffix (e.g. stub of protocol `Greeter` is called `GreeterStub`). + +```Swift +let stub = GreeterStub() +``` + +When a method is called or a property accessed/set on a stub, nothing happens. If a value is to be returned from a method or a property, `DefaultValueRegistry` provides a default value. Stubs can be used to set implicit (no) behavior to mocks without the need to use `thenDoNothing()` like this: `MockGreeter().spy(on: GreeterStub())`. + +##### DefaultValueRegistry +`DefaultValueRegistry` is used by Stubs to get default values for return types. It knows only default Swift types, sets, arrays, dictionaries, optionals, and tuples (up to 6 values). Tuples for more values can be added through extensions. Custom types must be registered before use with `DefaultValueRegistry.register<T>(value: T, forType: T.Type)`. Furthermore, default values set by Cuckoo can also be overridden by this method. Sets, arrays, etc. do not have to be registered if their generic type is already registered. + +`DefaultValueRegistry.reset()` returns the registry to its clean slate before the `register` method made any changes. + +## Cuckoo generator +### Installation +For normal use you can skip this because the [run script](run) downloads or builds the correct version of the generator automatically. + +#### Custom +So you have chosen a more complicated path. You can clone this repository and build it yourself. Take a look at the [run script](run) for more inspiration. + +### Usage +Generator can be executed manually through the terminal. Each call consists of build options, a command, generator options, and arguments. Options and arguments depend on the command used. Options can have additional parameters. Names of all of them are case sensitive. The order goes like this: + +``` +cuckoo build_options command generator_options arguments +``` + +#### Build Options +These options are only used for downloading or building the generator and don't interfere with the result of the generated mocks. + +When the [run script](run) is executed without any build options (they are only valid when specified **BEFORE** the `command`), it simply searches for the `cuckoo_generator` file and builds it from source code if it's missing. + +To download the generator from GitHub instead of building it, use the `--download [version]` option as the first argument (i.e. `run --download generate ...` or `run --download 1.3.0 generate ...` to fetch a specific version). If you're having issues with rather long build time (especially in CI), this might be the way to fix it. + +**NOTE**: If you encounter Github API rate limit using the `--download` option, the [run script](run) refers to the environment variable `GITHUB_ACCESS_TOKEN`. +Add this line (replacing the Xs with your [GitHub token](https://github.com/settings/tokens), no additional permissions are needed) to the script build phase above the `run` call: +``` +export GITHUB_ACCESS_TOKEN="XXXXXXX" +``` + +The build option `--clean` forces either build or download of the version specified even if the generator is present. At the moment the [run script](run) doesn't enforce the generator version to be the same as the Cuckoo version. We recommend using this option after updating Cuckoo as well as if you're having mysterious compile errors in the generated mocks. Please try to use this option first to verify that your generator isn't outdated before filing an issue about incorrectly generated mocks. + +We recommend only using `--clean` when you're trying to fix a compile problem as it forces the build (or download) every time which makes the testing way longer than it needs to be. + +#### Generator commands +##### `generate` command +Generates mock files. + +This command accepts options that can be used to adjust the behavior of the generator, these are listed below. + +After the options come arguments, in this case a list (separated by spaces) of files for which you want to generate mocks or that are required for correct inheritance mocking. + +###### `--output` (string) +Absolute path to where the generated mocks will be stored. + +If a path to a directory is supplied, each input file will be mapped to its own output file with mocks. + +If a path to a file is supplied, all mocks will be generated into this single file. + +The default value is `GeneratedMocks.swift`. + +###### `--testable` (string)[,(string)...] +A comma separated list of frameworks that should be imported as @testable in the mock files. + +###### `--exclude` (string)[,(string)...] +A comma separated list of classes and protocols that should be skipped during mock generation. + +###### `--no-header` +Do not generate file headers. + +###### `--no-timestamp` +Do not generate timestamp. + +###### `--no-inheritance` +Do not mock/stub parents and grandparents. + +###### `--file-prefix` (string) +Names of generated files in directory will start with this prefix. Only works when output path is directory. + +###### `--no-class-mocking` +Do not generate mocks for classes. + +###### `--regex` (string) +A regular expression pattern that is used to match Classes and Protocols. All that do not match are excluded. Can be used alongside `--exclude` in which case the `--exclude` has higher priority. + +###### `-g` or `--glob` +Activate [glob](https://en.wikipedia.org/wiki/Glob_(programming)) parsing for specified input paths. + +###### `-d` or `--debug` +Run generator in debug mode. There is more info output as well as included in the generated mocks (e.g. method parameter info). + +#### `version` command +Prints the version of this generator. + +#### `help` command +Display general or command-specific help. + +After the `help` command you can specify the name of another command for displaying command-specific information. + +## Objective-C Support +Cuckoo subspec `Cuckoo/OCMock` brings support for mocking Objective-C classes and protocols. + +Example usage: +``` +let tableView = UITableView() +// stubbing the class is very similar to stubbing with Cuckoo +let mock = objcStub(for: UITableViewController.self) { stubber, mock in + stubber.when(mock.numberOfSections(in: tableView)).thenReturn(1) + stubber.when(mock.tableView(tableView, accessoryButtonTappedForRowWith: IndexPath(row: 14, section: 2))).then { args in + // `args` is [Any] of the arguments passed and the closure needs to cast them manually + let (tableView, indexPath) = (args[0] as! UITableView, args[1] as! IndexPath) + print(tableView, indexPath) + } +} + +// calling stays the same +XCTAssertEqual(mock.numberOfSections(in: tableView), 1) +mock.tableView(tableView, accessoryButtonTappedForRowWith: IndexPath(row: 14, section: 2)) + +// `objcVerify` is used to verify the interaction with the methods/variables +objcVerify(mock.numberOfSections(in: tableView)) +objcVerify(mock.tableView(tableView, accessoryButtonTappedForRowWith: IndexPath(row: 14, section: 2))) +``` + +Detailed usage is available in Cuckoo tests along with DOs and DON'Ts of this Swift-ObjC bridge. + +So far, only CocoaPods is supported. To install, simply add this line to your `Podfile`: +``` +pod 'Cuckoo/OCMock' +``` + +## Contribute +Cuckoo is open for everyone and we'd like you to help us make the best Swift mocking library. For Cuckoo development, follow these steps: +1. Make sure you have latest stable version of Xcode installed +2. Clone the **Cuckoo** repository +3. In Terminal, run: `make dev` from inside the **Cuckoo** directory +4. Open `Cuckoo.xcodeproj` +5. Select either `Cuckoo-iOS` or `Cuckoo-macOS` scheme and verify by running the tests (⌘+U) +6. Peek around or file a pull request with your changes + +The project consists of two parts - runtime and code generator. When you open the `Cuckoo.xcodeproj` in Xcode, you'll see these directories: + - `Source` - runtime sources + - `Tests` - tests for the runtime part + - `CuckoGenerator.xcodeproj` - project generated by `make dev` containing Generator source code + +Thank you for your help! + +## Inspiration +- [Mockito](http://mockito.org/) - Mocking DSL +- [Hamcrest](http://hamcrest.org/) - Matcher API + +## Used libraries +- [Commandant](https://github.com/Carthage/Commandant) +- [FileKit](https://github.com/nvzqz/FileKit) +- [SourceKitten](https://github.com/jpsim/SourceKitten) + +## License +Cuckoo is available under the [MIT License](LICENSE). diff --git a/Pods/Cuckoo/Source/CuckooFunctions.swift b/Pods/Cuckoo/Source/CuckooFunctions.swift new file mode 100644 index 0000000000000000000000000000000000000000..8a71c4a44182152c3890df1b76d2b48555a22c52 --- /dev/null +++ b/Pods/Cuckoo/Source/CuckooFunctions.swift @@ -0,0 +1,51 @@ +// +// CuckooFunctions.swift +// Cuckoo +// +// Created by Tadeas Kriz on 13/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +/// Starts the stubbing for the given mock. Can be used multiple times. +public func stub<M: Mock>(_ mock: M, block: (M.Stubbing) -> Void) { + block(mock.getStubbingProxy()) +} + +/// Used in stubbing. Currently only returns passed function but this may change in the future so it is not recommended to omit it. +// TODO: Uncomment the `: BaseStubFunctionTrait` before the next major release to improve API. +public func when<F/*: BaseStubFunctionTrait*/>(_ function: F) -> F { + return function +} + +/// Creates object used for verification of calls. +public func verify<M: Mock>(_ mock: M, _ callMatcher: CallMatcher = times(1), file: StaticString = #file, line: UInt = #line) -> M.Verification { + return mock.getVerificationProxy(callMatcher, sourceLocation: (file, line)) +} + +/// Clears all invocations and stubs of mocks. +public func reset(_ mocks: HasMockManager...) { + mocks.forEach { mock in + mock.cuckoo_manager.reset() + } +} + +/// Clears all stubs of mocks. +public func clearStubs<M: Mock>(_ mocks: M...) { + mocks.forEach { mock in + mock.cuckoo_manager.clearStubs() + } +} + +/// Clears all invocations of mocks. +public func clearInvocations<M: Mock>(_ mocks: M...) { + mocks.forEach { mock in + mock.cuckoo_manager.clearInvocations() + } +} + +/// Checks if there are no more uverified calls. +public func verifyNoMoreInteractions<M: Mock>(_ mocks: M..., file: StaticString = #file, line: UInt = #line) { + mocks.forEach { mock in + mock.cuckoo_manager.verifyNoMoreInteractions((file, line)) + } +} diff --git a/Pods/Cuckoo/Source/DefaultValueRegistry.swift b/Pods/Cuckoo/Source/DefaultValueRegistry.swift new file mode 100644 index 0000000000000000000000000000000000000000..eb2e0c67cc6740806bc10681cfb81f47887178b2 --- /dev/null +++ b/Pods/Cuckoo/Source/DefaultValueRegistry.swift @@ -0,0 +1,107 @@ +// +// DefaultValueRegistry.swift +// Cuckoo +// +// Created by Tadeáš Kříž on 20/09/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public class DefaultValueRegistry { + + private static let defaultRegisteredTypes: [ObjectIdentifier: Any] = [ + ObjectIdentifier(Void.self): Void(), + ObjectIdentifier(Int.self): Int(), + ObjectIdentifier(Int8.self): Int8(), + ObjectIdentifier(Int16.self): Int16(), + ObjectIdentifier(Int32.self): Int32(), + ObjectIdentifier(Int64.self): Int64(), + ObjectIdentifier(UInt.self): UInt(), + ObjectIdentifier(UInt8.self): UInt8(), + ObjectIdentifier(UInt16.self): UInt16(), + ObjectIdentifier(UInt32.self): UInt32(), + ObjectIdentifier(UInt64.self): UInt64(), + ObjectIdentifier(String.self): String(), + ObjectIdentifier(Bool.self): Bool(), + ObjectIdentifier(Double.self): Double(), + ObjectIdentifier(Float.self): Float() + ] + + private static var registeredTypes = defaultRegisteredTypes + + public static func register<T>(value: T, forType type: T.Type) { + registeredTypes[ObjectIdentifier(type)] = value + } + + public static func defaultValue<T>(for type: Set<T>.Type) -> Set<T> { + return defaultValueOrNil(for: type) ?? [] + } + + public static func defaultValue<T>(for type: Array<T>.Type) -> Array<T> { + return defaultValueOrNil(for: type) ?? [] + } + + public static func defaultValue<K, V>(for type: Dictionary<K, V>.Type) -> Dictionary<K, V> { + return defaultValueOrNil(for: type) ?? [:] + } + + public static func defaultValue<T>(for type: Optional<T>.Type) -> Optional<T> { + return defaultValueOrNil(for: type) ?? nil + } + + public static func defaultValue<T>(for type: T.Type) -> T { + if let registeredDefault = defaultValueOrNil(for: type) { + return registeredDefault + } + fatalError("Type \(T.self) does not have default return value registered.") + } + + public static func reset() { + registeredTypes = defaultRegisteredTypes + } + + private static func defaultValueOrNil<T>(for type: T.Type) -> T? { + return registeredTypes[ObjectIdentifier(type)] as? T + } + + // Overloads for tuples. + + public static func defaultValue<P1, P2>(for type: (P1, P2).Type) -> (P1, P2) { + if let registeredDefault = defaultValueOrNil(for: type) { + return registeredDefault + } else { + return (defaultValue(for: P1.self), defaultValue(for: P2.self)) + } + } + + public static func defaultValue<P1, P2, P3>(for type: (P1, P2, P3).Type) -> (P1, P2, P3) { + if let registeredDefault = defaultValueOrNil(for: type) { + return registeredDefault + } else { + return (defaultValue(for: P1.self), defaultValue(for: P2.self), defaultValue(for: P3.self)) + } + } + + public static func defaultValue<P1, P2, P3, P4>(for type: (P1, P2, P3, P4).Type) -> (P1, P2, P3, P4) { + if let registeredDefault = defaultValueOrNil(for: type) { + return registeredDefault + } else { + return (defaultValue(for: P1.self), defaultValue(for: P2.self), defaultValue(for: P3.self), defaultValue(for: P4.self)) + } + } + + public static func defaultValue<P1, P2, P3, P4, P5>(for type: (P1, P2, P3, P4, P5).Type) -> (P1, P2, P3, P4, P5) { + if let registeredDefault = defaultValueOrNil(for: type) { + return registeredDefault + } else { + return (defaultValue(for: P1.self), defaultValue(for: P2.self), defaultValue(for: P3.self), defaultValue(for: P4.self), defaultValue(for: P5.self)) + } + } + + public static func defaultValue<P1, P2, P3, P4, P5, P6>(for type: (P1, P2, P3, P4, P5, P6).Type) -> (P1, P2, P3, P4, P5, P6) { + if let registeredDefault = defaultValueOrNil(for: type) { + return registeredDefault + } else { + return (defaultValue(for: P1.self), defaultValue(for: P2.self), defaultValue(for: P3.self), defaultValue(for: P4.self), defaultValue(for: P5.self), defaultValue(for: P6.self)) + } + } +} diff --git a/Pods/Cuckoo/Source/Initialization/CreateMock.swift b/Pods/Cuckoo/Source/Initialization/CreateMock.swift new file mode 100644 index 0000000000000000000000000000000000000000..9b963a88a1a212441fc8dde4e21d5473c46c5981 --- /dev/null +++ b/Pods/Cuckoo/Source/Initialization/CreateMock.swift @@ -0,0 +1,24 @@ +// +// CreateMock.swift +// Cuckoo +// +// Created by Tadeas Kriz on 7/6/18. +// + +import Foundation + +public func createMock<MOCKED: Mocked>(for mockedType: MOCKED.Type, configuration: (MockBuilder, MOCKED.MockType.Stubbing) -> MOCKED.MockType) -> MOCKED.MockType { + return createMock(MOCKED.MockType.self, configuration: configuration) +} + +public func createMock<MOCK: Mock>(_ mockType: MOCK.Type, configuration: (MockBuilder, MOCK.Stubbing) -> MOCK) -> MOCK { + let manager = MockManager(hasParent: MOCK.cuckoo_hasSuperclass) + + MockManager.preconfiguredManagerThreadLocal.value = manager + defer { MockManager.preconfiguredManagerThreadLocal.delete() } + + let builder = MockBuilder(manager: manager) + + let stubbing = MOCK.Stubbing(manager: manager) + return configuration(builder, stubbing) +} diff --git a/Pods/Cuckoo/Source/Initialization/MockBuilder.swift b/Pods/Cuckoo/Source/Initialization/MockBuilder.swift new file mode 100644 index 0000000000000000000000000000000000000000..83d44106d6e0c96af540de63b09d97bbf56dd3dd --- /dev/null +++ b/Pods/Cuckoo/Source/Initialization/MockBuilder.swift @@ -0,0 +1,23 @@ +// +// MockBuilder.swift +// Cuckoo +// +// Created by Tadeas Kriz on 7/6/18. +// + +import Foundation + +public class MockBuilder { + private let manager: MockManager + + init(manager: MockManager) { + self.manager = manager + } + public func enableSuperclassSpy() { + manager.enableSuperclassSpy() + } + + public func enableDefaultStubImplementation() { + manager.enableDefaultStubImplementation() + } +} diff --git a/Pods/Cuckoo/Source/Initialization/MockManager+preconfigured.swift b/Pods/Cuckoo/Source/Initialization/MockManager+preconfigured.swift new file mode 100644 index 0000000000000000000000000000000000000000..a103c81fc411da39157cd7fbc5d21caf25926903 --- /dev/null +++ b/Pods/Cuckoo/Source/Initialization/MockManager+preconfigured.swift @@ -0,0 +1,16 @@ +// +// MockManager+preconfigured.swift +// Cuckoo +// +// Created by Tadeas Kriz on 7/6/18. +// + +import Foundation + +extension MockManager { + internal static let preconfiguredManagerThreadLocal = ThreadLocal<MockManager>() + + public static var preconfiguredManager: MockManager? { + return preconfiguredManagerThreadLocal.value + } +} diff --git a/Pods/Cuckoo/Source/Initialization/ThreadLocal.swift b/Pods/Cuckoo/Source/Initialization/ThreadLocal.swift new file mode 100644 index 0000000000000000000000000000000000000000..48f740de5e14fdb7fdaf56242480e323f029afeb --- /dev/null +++ b/Pods/Cuckoo/Source/Initialization/ThreadLocal.swift @@ -0,0 +1,44 @@ +// +// ThreadLocal.swift +// Cuckoo +// +// Created by Tadeas Kriz on 7/6/18. +// + +import Foundation + +internal class ThreadLocal<T> { + private let dictionaryKey = "ThreadLocal.\(UUID().uuidString)" + + internal var value: T? { + get { + let dictionary = Thread.current.threadDictionary + if let storedValue = dictionary[dictionaryKey] { + guard let typedStoredValue = storedValue as? T else { + fatalError("Thread dictionary has been tampered with or UUID confict has occured. Thread dictionary contained different type than \(T.self) for key \(dictionaryKey).") + } + + return typedStoredValue + } else { + return nil + } + } + set { + guard let newValue = newValue else { + delete() + return + } + + let dictionary = Thread.current.threadDictionary + dictionary[dictionaryKey] = newValue + } + } + + internal init() { + } + + internal func delete() { + let dictionary = Thread.current.threadDictionary + dictionary.removeObject(forKey: dictionaryKey) + } +} diff --git a/Pods/Cuckoo/Source/Matching/Array+matchers.swift b/Pods/Cuckoo/Source/Matching/Array+matchers.swift new file mode 100644 index 0000000000000000000000000000000000000000..57afc98a260a8c10e0ef4e78184ea209603deda0 --- /dev/null +++ b/Pods/Cuckoo/Source/Matching/Array+matchers.swift @@ -0,0 +1,283 @@ +// +// Array+matchers.swift +// Cuckoo +// +// Created by Matyáš Kříž on 04/09/2019. +// + +extension Array: Matchable where Element: Matchable, Element == Element.MatchedType { + public typealias MatchedType = [Element] + + public var matcher: ParameterMatcher<[Element]> { + return ParameterMatcher<[Element]> { other in + guard self.count == other.count else { return false } + return zip(self, other).allSatisfy { $0.matcher.matches($1) } + } + } +} + + +// MARK: Contains ANY of the elements. +/** + * Matcher for sequences of elements that checks if at least one of the passed elements matches the passed sequence. + * - parameter values: Variadic elements that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsAnyOf<T, S: Sequence>(values elements: T..., where equality: @escaping (T, T) -> Bool) -> ParameterMatcher<S> where T == S.Element { + return containsAnyOf(elements, where: equality) +} +/** + * Matcher for sequences of elements that checks if at least one of the passed elements matches the passed sequence. + * - parameter elements: Elements that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsAnyOf<IN: Sequence, OUT: Sequence>(_ elements: IN, where equality: @escaping (IN.Element, IN.Element) -> Bool) -> ParameterMatcher<OUT> where IN.Element == OUT.Element { + return ParameterMatcher { sequence in + elements.contains { element in + sequence.contains { + equality($0, element) + } + } + } +} + +/** + * Matcher for sequences of `Equatable` elements that checks if at least one of the passed elements matches the passed sequence. + * - parameter values: Variadic elements that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAnyOf<T: Equatable, S: Sequence>(values elements: T...) -> ParameterMatcher<S> where T == S.Element { + return containsAnyOf(elements) +} +/** + * Matcher for sequences of `Equatable` elements that checks if at least one of the passed elements matches the passed sequence. + * - parameter elements: Elements that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAnyOf<IN: Sequence, OUT: Sequence>(_ elements: IN) -> ParameterMatcher<OUT> where IN.Element: Equatable, IN.Element == OUT.Element { + return containsAnyOf(elements, where: ==) +} + +/** + * Matcher for sequences of `Hashable` elements that checks if at least one of the passed elements matches the passed sequence. + * - parameter values: Variadic elements that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAnyOf<T: Hashable, S: Sequence>(values elements: T...) -> ParameterMatcher<S> where T == S.Element { + return containsAnyOf(elements) +} +/** + * Matcher for sequences of `Hashable` elements that checks if at least one of the passed elements matches the passed sequence. + * - parameter elements: Elements that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAnyOf<IN: Sequence, OUT: Sequence>(_ elements: IN) -> ParameterMatcher<OUT> where IN.Element: Hashable, IN.Element == OUT.Element { + return ParameterMatcher { sequence in + let set = Set(sequence) + let elementsSet = Set(elements) + return !set.isDisjoint(with: elementsSet) + } +} + + +// MARK: Contains ALL of the elements. +/** + * Matcher for sequences of elements that checks if all of the passed elements match the passed sequence. + * - parameter values: Variadic elements that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + * - NOTE: When matching an Array, this matcher expects items as many times as they are present in the passed elements. + */ +public func containsAllOf<T, S: Sequence>(values elements: T..., where equality: @escaping (T, T) -> Bool) -> ParameterMatcher<S> where T == S.Element { + return containsAllOf(elements, where: equality) +} +/** + * Matcher for sequences of elements that checks if all of the passed elements match the passed sequence. + * - parameter elements: Elements that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + * - NOTE: When passing an Array, this matcher expects items as many times as they are present in the passed elements. + */ +public func containsAllOf<IN: Sequence, OUT: Sequence>(_ elements: IN, where equality: @escaping (IN.Element, IN.Element) -> Bool) -> ParameterMatcher<OUT> where IN.Element == OUT.Element { + return ParameterMatcher { sequence in + var matchedSequence = sequence.map { (element: $0, matched: false) } + for element in elements { + if let matchedIndex = matchedSequence.firstIndex(where: { !$0.matched && equality($0.element, element) }) { + matchedSequence[matchedIndex].matched = true + } else { + return false + } + } + return true + } +} + +/** + * Matcher for sequences of `Equatable` elements that checks if all of the passed elements match the passed sequence. + * - parameter values: Variadic elements that are used for matching. + * - returns: ParameterMatcher object. + * - NOTE: When passing an Array, this matcher expects items as many times as they are present in the passed elements. + */ +public func containsAllOf<T: Equatable, S: Sequence>(values elements: T...) -> ParameterMatcher<S> where T == S.Element { + return containsAllOf(elements) +} +/** + * Matcher for sequences of `Equatable` elements that checks if all of the passed elements match the passed sequence. + * - parameter elements: Elements that are used for matching. + * - returns: ParameterMatcher object. + * - NOTE: When passing an Array, this matcher expects items as many times as they are present in the passed elements. + */ +public func containsAllOf<IN: Sequence, OUT: Sequence>(_ elements: IN) -> ParameterMatcher<OUT> where IN.Element: Equatable, IN.Element == OUT.Element { + return containsAllOf(elements, where: ==) +} + +/** + * Matcher for sequences of `Hashable` elements that checks if all of the passed elements match the passed sequence. + * - parameter values: Variadic elements that are used for matching. + * - returns: ParameterMatcher object. + * - NOTE: When passing an Array, this matcher expects items as many times as they are present in the passed elements. + */ +public func containsAllOf<T: Hashable>(values elements: T...) -> ParameterMatcher<[T]> { + return containsAllOf(elements) +} +/** + * Matcher for sequences of `Hashable` elements that checks if all of the passed elements match the passed sequence. + * - parameter elements: Elements that are used for matching. + * - returns: ParameterMatcher object. + * - NOTE: When passing an Array, this matcher expects items as many times as they are present in the passed elements. + */ +public func containsAllOf<IN: Sequence, OUT: Sequence>(_ elements: IN) -> ParameterMatcher<OUT> where IN.Element: Hashable, IN.Element == OUT.Element { + return ParameterMatcher { sequence in + let sequenceDictionary: [IN.Element: Int] = sequence.reduce(into: [:]) { dictionary, element in + dictionary[element, default: 0] += 1 + } + let elementsDictionary: [IN.Element: Int] = elements.reduce(into: [:]) { dictionary, element in + dictionary[element, default: 0] += 1 + } + + return elementsDictionary.allSatisfy { key, element in + sequenceDictionary[key].map { $0 == element } ?? false + } + } +} +/** + * Matcher for `Set`s of `Hashable` elements that checks if all of the passed elements match the passed `Set`. + * - parameter elements: Elements that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAllOf<IN: Sequence, OUT: Sequence>(_ elements: IN) -> ParameterMatcher<OUT> where IN.Element: Hashable, IN.Element == OUT.Element, IN: SetAlgebra { + return ParameterMatcher { sequence in + let set = Set(sequence) + let elementsSet = Set(elements) + return set.isSuperset(of: elementsSet) + } +} + + +// MARK: Contains NONE of the elements. +/** + * Matcher for sequences of elements that checks if none of the passed elements match the passed sequence. + * - parameter values: Variadic elements that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsNoneOf<T, S: Sequence>(values elements: T..., where equality: @escaping (T, T) -> Bool) -> ParameterMatcher<S> where T == S.Element { + return containsNoneOf(elements, where: equality) +} +/** + * Matcher for sequences of elements that checks if none of the passed elements match the passed sequence. + * - parameter elements: Elements that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsNoneOf<IN: Sequence, OUT: Sequence>(_ elements: IN, where equality: @escaping (IN.Element, IN.Element) -> Bool) -> ParameterMatcher<OUT> where IN.Element == OUT.Element { + return not(containsAnyOf(elements, where: equality)) +} + +/** + * Matcher for sequences of `Equatable` elements that checks if none of the passed elements match the passed sequence. + * - parameter values: Variadic elements that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsNoneOf<T: Equatable, S: Sequence>(values elements: T...) -> ParameterMatcher<S> where T == S.Element { + return containsNoneOf(elements) +} +/** + * Matcher for sequences of `Equatable` elements that checks if none of the passed elements match the passed sequence. + * - parameter elements: Elements that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsNoneOf<IN: Sequence, OUT: Sequence>(_ elements: IN) -> ParameterMatcher<OUT> where IN.Element: Equatable, IN.Element == OUT.Element { + return containsNoneOf(elements, where: ==) +} + +/** + * Matcher for sequences of `Hashable` elements that checks if none of the passed elements match the passed sequence. + * - parameter values: Variadic elements that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsNoneOf<T: Hashable, S: Sequence>(values elements: T...) -> ParameterMatcher<S> where T == S.Element { + return containsNoneOf(elements) +} +/** + * Matcher for sequences of `Hashable` elements that checks if none of the passed elements match the passed sequence. + * - parameter elements: Elements that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsNoneOf<IN: Sequence, OUT: Sequence>(_ elements: IN) -> ParameterMatcher<OUT> where IN.Element: Hashable, IN.Element == OUT.Element { + return not(containsAnyOf(elements)) +} + + +// MARK: Has length N (exact, at least, at most). +/** + * Matcher for collections of elements that checks if the collection is exactly N elements long. + * - parameter exactly: Required length of the matching collection. + * - returns: ParameterMatcher object. + */ +public func hasLength<C: Collection>(exactly requiredExactLength: Int) -> ParameterMatcher<C> { + return ParameterMatcher { collection in + collection.count == requiredExactLength + } +} + +/** + * Matcher for collections of elements that checks if the collection is at least N elements long with the option to include the number itself (default). + * - parameter atLeast: Required minimum length of the matching collection. + * - parameter inclusive: Whether the minimum length itself should be included. + * - returns: ParameterMatcher object. + */ +public func hasLength<C: Collection>(atLeast requiredMinimumLength: Int, inclusive: Bool = true) -> ParameterMatcher<C> { + return ParameterMatcher { collection in + collection.count > requiredMinimumLength || (inclusive && collection.count == requiredMinimumLength) + } +} + +/** + * Matcher for collections of elements that checks if the collection is at most N elements long with the option to include the number itself (default). + * - parameter atMost: Required maximum length of the matching collection. + * - parameter inclusive: Whether the maximum length itself should be included. + * - returns: ParameterMatcher object. + */ +public func hasLength<C: Collection>(atMost requiredMaximumLength: Int, inclusive: Bool = true) -> ParameterMatcher<C> { + return ParameterMatcher { collection in + collection.count < requiredMaximumLength || (inclusive && collection.count == requiredMaximumLength) + } +} + +/** + * Matcher for collections of elements that checks if the collection is at between N and M elements long with the option to include the bounds as well (default). + * - parameter inRange: Required length range of the matching collection. + * - parameter inclusive: Whether the length range bounds should be included. + * - returns: ParameterMatcher object. + */ +public func hasLength<C: Collection>(inRange requiredLengthRange: CountableRange<Int>, inclusive: Bool = true) -> ParameterMatcher<C> { + return hasLength(atLeast: requiredLengthRange.lowerBound, inclusive: inclusive) + .and(hasLength(atMost: requiredLengthRange.upperBound, inclusive: inclusive)) +} diff --git a/Pods/Cuckoo/Source/Matching/CallMatcher.swift b/Pods/Cuckoo/Source/Matching/CallMatcher.swift new file mode 100644 index 0000000000000000000000000000000000000000..e0a6703f3daa12218cdce115a574ea77fdd15ec2 --- /dev/null +++ b/Pods/Cuckoo/Source/Matching/CallMatcher.swift @@ -0,0 +1,43 @@ +// +// CallMatcher.swift +// Cuckoo +// +// Created by Filip Dolnik on 04.07.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +/// CallMatcher is used in verification to assert how many times was the call made. It can also be used to do different asserts on stub calls matched with parameter matchers. +public struct CallMatcher { + public let name: String + + private let matchesFunction: ([StubCall]) -> Bool + + public init(name: String, matchesFunction: @escaping ([StubCall]) -> Bool) { + self.name = name + self.matchesFunction = matchesFunction + } + + public init(name: String, numberOfExpectedCalls: Int, compareCallsFunction: @escaping (_ expected: Int, _ actual: Int) -> Bool) { + self.init(name: name) { + return compareCallsFunction(numberOfExpectedCalls, $0.count) + } + } + + public func matches(_ calls: [StubCall]) -> Bool { + return matchesFunction(calls) + } + + public func or(_ otherMatcher: CallMatcher) -> CallMatcher { + let name = "either \(self.name) or \(otherMatcher.name)" + return CallMatcher(name: name) { + return self.matches($0) || otherMatcher.matches($0) + } + } + + public func and(_ otherMatcher: CallMatcher) -> CallMatcher { + let name = "both \(self.name) and \(otherMatcher.name)" + return CallMatcher(name: name) { + return self.matches($0) && otherMatcher.matches($0) + } + } +} diff --git a/Pods/Cuckoo/Source/Matching/CallMatcherFunctions.swift b/Pods/Cuckoo/Source/Matching/CallMatcherFunctions.swift new file mode 100644 index 0000000000000000000000000000000000000000..9f9b984441d2a6ece64603d541cafafaf2869f20 --- /dev/null +++ b/Pods/Cuckoo/Source/Matching/CallMatcherFunctions.swift @@ -0,0 +1,33 @@ +// +// CallMatcherFunctions.swift +// Cuckoo +// +// Created by Filip Dolnik on 04.07.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +/// Returns a matcher ensuring a call was made **`count`** times. +public func times(_ count: Int) -> CallMatcher { + let name = count == 0 ? "never" : "\(count) times" + return CallMatcher(name: name, numberOfExpectedCalls: count, compareCallsFunction: ==) +} + +/// Returns a matcher ensuring no call was made. +public func never() -> CallMatcher { + return times(0) +} + +/// Returns a matcher ensuring at least one call was made. +public func atLeastOnce() -> CallMatcher { + return atLeast(1) +} + +/// Returns a matcher ensuring call was made at least `count` times. +public func atLeast(_ count: Int) -> CallMatcher { + return CallMatcher(name: "at least \(count) times", numberOfExpectedCalls: count, compareCallsFunction: <=) +} + +/// Returns a matcher ensuring call was made at most `count` times. +public func atMost(_ count: Int) -> CallMatcher { + return CallMatcher(name: "at most \(count) times",numberOfExpectedCalls: count, compareCallsFunction: >=) +} diff --git a/Pods/Cuckoo/Source/Matching/Dictionary+matchers.swift b/Pods/Cuckoo/Source/Matching/Dictionary+matchers.swift new file mode 100644 index 0000000000000000000000000000000000000000..3d0ac83b514e59e8f1871e4445ad82d4dabb650f --- /dev/null +++ b/Pods/Cuckoo/Source/Matching/Dictionary+matchers.swift @@ -0,0 +1,324 @@ +// +// Dictionary+matchers.swift +// Cuckoo +// +// Created by Matyáš Kříž on 04/09/2019. +// + +extension Dictionary: Matchable where Value: Matchable, Value == Value.MatchedType { + public typealias MatchedType = [Key: Value] + + public var matcher: ParameterMatcher<[Key: Value]> { + return ParameterMatcher<[Key: Value]> { other in + guard self.count == other.count else { return false } + return self.allSatisfy { + guard let foundElement = other[$0.key] else { return false } + return $0.value.matcher.matches(foundElement) + } + } + } +} + + +// MARK: PAIR MATCHING +// MARK: Contains ANY of the elements as key-value pairs. +/** + * Matcher for dictionaries that checks if the matching dictionary contains any of the key-value pairs from the passed dictionary. + * - parameter inputDictionary: Dictionary that is used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAnyOf<K, V: Equatable>(_ inputDictionary: [K: V]) -> ParameterMatcher<[K: V]> { + return containsAnyOf(inputDictionary, where: ==) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains any of the key-value pairs from the passed dictionary. + * - parameter inputDictionary: Dictionary that is used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsAnyOf<K, V>(_ inputDictionary: [K: V], where equality: @escaping (V, V) -> Bool) -> ParameterMatcher<[K: V]> { + return ParameterMatcher { dictionary in + inputDictionary.contains { key, value in + dictionary[key].map { equality($0, value) } ?? false + } + } +} + +// MARK: Contains ALL of the elements as key-value pairs. +/** + * Matcher for dictionaries that checks if the matching dictionary contains all of the key-value pairs from the passed dictionary. + * - parameter inputDictionary: Dictionary that is used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAllOf<K, V: Equatable>(_ inputDictionary: [K: V]) -> ParameterMatcher<[K: V]> { + return containsAllOf(inputDictionary, where: ==) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains all of the key-value pairs from the passed dictionary. + * - parameter inputDictionary: Dictionary that is used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsAllOf<K, V>(_ inputDictionary: [K: V], where equality: @escaping (V, V) -> Bool) -> ParameterMatcher<[K: V]> { + return ParameterMatcher { dictionary in + inputDictionary.allSatisfy { key, value in + dictionary[key].map { equality($0, value) } ?? false + } + } +} + +// MARK: Contains NONE of the elements as key-value pairs. +/** + * Matcher for dictionaries that checks if the matching dictionary contains none of the key-value pairs from the passed dictionary. + * - parameter inputDictionary: Dictionary that is used for matching. + * - returns: ParameterMatcher object. + */ +public func containsNoneOf<K, V: Equatable>(_ inputDictionary: [K: V]) -> ParameterMatcher<[K: V]> { + return containsNoneOf(inputDictionary, where: ==) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains none of the key-value pairs from the passed dictionary. + * - parameter inputDictionary: Dictionary that is used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsNoneOf<K, V>(_ inputDictionary: [K: V], where equality: @escaping (V, V) -> Bool) -> ParameterMatcher<[K: V]> { + return not(containsAnyOf(inputDictionary, where: equality)) +} + + +// MARK: KEYS MATCHING +// MARK: Contains ANY of the elements as keys. +/** + * Matcher for dictionaries that checks if the matching dictionary contains any of the passed keys. + * - parameter values: Variadic keys that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAnyKeysOf<K, V>(values elements: K...) -> ParameterMatcher<[K: V]> { + return containsAnyKeysOf(elements) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains any of the passed keys. + * - parameter elements: Keys that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAnyKeysOf<S: Sequence, V>(_ elements: S) -> ParameterMatcher<[S.Element: V]> { + return ParameterMatcher { dictionary in + containsAnyOf(elements).matches(dictionary.keys) + } +} + +// MARK: Contains ALL of the elements as keys. +/** + * Matcher for dictionaries that checks if the matching dictionary contains all of the passed keys. + * - parameter values: Variadic keys that are used for matching + * - returns: ParameterMatcher object. + */ +public func containsAllKeysOf<K, V>(values elements: K...) -> ParameterMatcher<[K: V]> { + return containsAllKeysOf(elements) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains all of the passed keys. + * - parameter elements: Keys that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAllKeysOf<S: Sequence, V>(_ elements: S) -> ParameterMatcher<[S.Element: V]> { + return ParameterMatcher { dictionary in + containsAllOf(elements).matches(dictionary.keys) + } +} + +// MARK: Contains NONE of the elements as keys. +/** + * Matcher for dictionaries that checks if the matching dictionary contains none of the passed keys. + * - parameter values: Variadic keys that are used for matching + * - returns: ParameterMatcher object. + */ +public func containsNoKeysOf<K, V>(values elements: K...) -> ParameterMatcher<[K: V]> { + return containsNoKeysOf(elements) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains none of the passed keys. + * - parameter elements: Keys that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsNoKeysOf<S: Sequence, V>(_ elements: S) -> ParameterMatcher<[S.Element: V]> { + return not(containsAnyKeysOf(elements)) +} + + +// MARK: VALUES MATCHING +// MARK: Contains ANY of the elements as values. +/** + * Matcher for dictionaries that checks if the matching dictionary contains any of the passed values. + * - parameter values: Variadic values that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsAnyValuesOf<K, V>(values elements: V..., where equality: @escaping (V, V) -> Bool) -> ParameterMatcher<[K: V]> { + return containsAnyValuesOf(elements, where: equality) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains any of the passed values. + * - parameter elements: Values that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsAnyValuesOf<K, S: Sequence>(_ elements: S, where equality: @escaping (S.Element, S.Element) -> Bool) -> ParameterMatcher<[K: S.Element]> { + return ParameterMatcher { dictionary in + containsAnyOf(elements, where: equality).matches(dictionary.values) + } +} + +/** + * Matcher for dictionaries that checks if the matching dictionary contains any of the passed values. + * - parameter values: Variadic keys that are used for matching + * - returns: ParameterMatcher object. + */ +public func containsAnyValuesOf<K, V: Equatable>(values elements: V...) -> ParameterMatcher<[K: V]> { + return containsAnyValuesOf(elements) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains any of the passed values. + * - parameter elements: Keys that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAnyValuesOf<K, S: Sequence>(_ elements: S) -> ParameterMatcher<[K: S.Element]> where S.Element: Equatable { + return containsAnyValuesOf(elements, where: ==) +} + + +/** + * Matcher for dictionaries that checks if the matching dictionary contains any of the passed values. + * - parameter values: Variadic values that are used for matching + * - returns: ParameterMatcher object. + */ +public func containsAnyValuesOf<K, V: Hashable>(values elements: V...) -> ParameterMatcher<[K: V]> { + return containsAnyValuesOf(elements) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains none of the passed values. + * - parameter elements: Values that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAnyValuesOf<K, S: Sequence>(_ elements: S) -> ParameterMatcher<[K: S.Element]> where S.Element: Hashable { + return ParameterMatcher { dictionary in + containsAnyOf(elements).matches(dictionary.values) + } +} + +// MARK: Contains ALL of the elements as values. +/** + * Matcher for dictionaries that checks if the matching dictionary contains all of the passed values. + * - parameter values: Variadic values that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsAllValuesOf<K, V>(values elements: V..., where equality: @escaping (V, V) -> Bool) -> ParameterMatcher<[K: V]> { + return containsAllValuesOf(elements, where: equality) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains all of the passed values. + * - parameter elements: Values that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsAllValuesOf<K, S: Sequence>(_ elements: S, where equality: @escaping (S.Element, S.Element) -> Bool) -> ParameterMatcher<[K: S.Element]> { + return ParameterMatcher { dictionary in + containsAllOf(elements, where: equality).matches(dictionary.values) + } +} + +/** + * Matcher for dictionaries that checks if the matching dictionary contains all of the passed values. + * - parameter values: Variadic values that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAllValuesOf<K, V: Equatable>(values elements: V...) -> ParameterMatcher<[K: V]> { + return containsAllValuesOf(elements) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains all of the passed values. + * - parameter elements: Values that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAllValuesOf<K, S: Sequence>(_ elements: S) -> ParameterMatcher<[K: S.Element]> where S.Element: Equatable { + return containsAllValuesOf(elements, where: ==) +} + +/** + * Matcher for dictionaries that checks if the matching dictionary contains all of the passed values. + * - parameter values: Variadic values that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAllValuesOf<K, V: Hashable>(values elements: V...) -> ParameterMatcher<[K: V]> { + return containsAllValuesOf(elements) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains all of the passed values. + * - parameter elements: Values that are used for matching. + * - returns: ParameterMatcher object. + */ +public func containsAllValuesOf<K, S: Sequence>(_ elements: S) -> ParameterMatcher<[K: S.Element]> where S.Element: Hashable { + return ParameterMatcher { dictionary in + containsAllOf(elements).matches(dictionary.values) + } +} + +// MARK: Contains NONE of the elements as values. +/** + * Matcher for dictionaries that checks if the matching dictionary contains none of the passed values. + * - parameter values: Variadic values that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsNoValuesOf<K, V>(values elements: V..., where equality: @escaping (V, V) -> Bool) -> ParameterMatcher<[K: V]> { + return containsNoValuesOf(elements, where: equality) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains none of the passed values. + * - parameter elements: Values that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsNoValuesOf<K, S: Sequence>(_ elements: S, where equality: @escaping (S.Element, S.Element) -> Bool) -> ParameterMatcher<[K: S.Element]> { + return not(containsAnyValuesOf(elements, where: equality)) +} + +/** + * Matcher for dictionaries that checks if the matching dictionary contains none of the passed values. + * - parameter values: Variadic values that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsNoValuesOf<K, V: Equatable>(values elements: V...) -> ParameterMatcher<[K: V]> { + return containsNoValuesOf(elements) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains none of the passed values. + * - parameter elements: Values that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsNoValuesOf<K, S: Sequence>(_ elements: S) -> ParameterMatcher<[K: S.Element]> where S.Element: Equatable { + return containsNoValuesOf(elements, where: ==) +} + +/** + * Matcher for dictionaries that checks if the matching dictionary contains none of the passed values. + * - parameter values: Variadic values that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsNoValuesOf<K, V: Hashable>(values elements: V...) -> ParameterMatcher<[K: V]> { + return containsNoValuesOf(elements) +} +/** + * Matcher for dictionaries that checks if the matching dictionary contains none of the passed values. + * - parameter elements: Values that are used for matching. + * - parameter where: Closure for determining equality of elements that don't conform to `Equatable`. + * - returns: ParameterMatcher object. + */ +public func containsNoValuesOf<K, S: Sequence>(_ elements: S) -> ParameterMatcher<[K: S.Element]> where S.Element: Hashable { + return not(containsAnyValuesOf(elements)) +} diff --git a/Pods/Cuckoo/Source/Matching/Matchable.swift b/Pods/Cuckoo/Source/Matching/Matchable.swift new file mode 100644 index 0000000000000000000000000000000000000000..e260238996088076be98bc10516f72268429f2a4 --- /dev/null +++ b/Pods/Cuckoo/Source/Matching/Matchable.swift @@ -0,0 +1,161 @@ +// +// Matchable.swift +// Cuckoo +// +// Created by Tadeas Kriz on 16/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +/** + Matchable can be anything that can produce its own parameter matcher. + It is used instead of concrete value for stubbing and verification. +*/ +public protocol Matchable { + associatedtype MatchedType + + /// Matcher for this instance. This should be an equalTo type of a matcher, but it is not required. + var matcher: ParameterMatcher<MatchedType> { get } +} + +public protocol OptionalMatchable { + associatedtype OptionalMatchedType + + var optionalMatcher: ParameterMatcher<OptionalMatchedType?> { get } +} + +public extension Matchable { + func or<M>(_ otherMatchable: M) -> ParameterMatcher<MatchedType> where M: Matchable, M.MatchedType == MatchedType { + return ParameterMatcher { + return self.matcher.matches($0) || otherMatchable.matcher.matches($0) + } + } + + func and<M>(_ otherMatchable: M) -> ParameterMatcher<MatchedType> where M: Matchable, M.MatchedType == MatchedType { + return ParameterMatcher { + return self.matcher.matches($0) && otherMatchable.matcher.matches($0) + } + } +} + +extension Optional: Matchable where Wrapped: Matchable, Wrapped.MatchedType == Wrapped { + public typealias MatchedType = Wrapped? + + public var matcher: ParameterMatcher<Wrapped?> { + return ParameterMatcher<Wrapped?> { other in + switch (self, other) { + case (.none, .none): + return true + case (.some(let lhs), .some(let rhs)): + return lhs.matcher.matches(rhs) + default: + return false + } + } + } +} + +extension Optional: OptionalMatchable where Wrapped: OptionalMatchable, Wrapped.OptionalMatchedType == Wrapped { + public typealias OptionalMatchedType = Wrapped + + public var optionalMatcher: ParameterMatcher<Wrapped?> { + return ParameterMatcher<Wrapped?> { other in + switch (self, other) { + case (.none, .none): + return true + case (.some(let lhs), .some(let rhs)): + return lhs.optionalMatcher.matches(rhs) + default: + return false + } + } + } +} + +extension Matchable where Self: Equatable { + public var matcher: ParameterMatcher<Self> { + return equal(to: self) + } +} + +extension OptionalMatchable where OptionalMatchedType == Self, Self: Equatable { + public var optionalMatcher: ParameterMatcher<OptionalMatchedType?> { + return ParameterMatcher { other in + return Optional(self) == other + } + } +} + +extension Bool: Matchable {} +extension Bool: OptionalMatchable { + public typealias OptionalMatchedType = Bool +} + +extension String: Matchable {} +extension String: OptionalMatchable { + public typealias OptionalMatchedType = String +} + +extension Float: Matchable {} +extension Float: OptionalMatchable { + public typealias OptionalMatchedType = Float +} + +extension Double: Matchable {} +extension Double: OptionalMatchable { + public typealias OptionalMatchedType = Double +} + +extension Character: Matchable {} +extension Character: OptionalMatchable { + public typealias OptionalMatchedType = Character +} + +extension Int: Matchable {} +extension Int: OptionalMatchable { + public typealias OptionalMatchedType = Int +} + +extension Int8: Matchable {} +extension Int8: OptionalMatchable { + public typealias OptionalMatchedType = Int8 +} + +extension Int16: Matchable {} +extension Int16: OptionalMatchable { + public typealias OptionalMatchedType = Int16 +} + +extension Int32: Matchable {} +extension Int32: OptionalMatchable { + public typealias OptionalMatchedType = Int32 +} + +extension Int64: Matchable {} +extension Int64: OptionalMatchable { + public typealias OptionalMatchedType = Int64 +} + +extension UInt: Matchable {} +extension UInt: OptionalMatchable { + public typealias OptionalMatchedType = UInt +} + +extension UInt8: Matchable {} +extension UInt8: OptionalMatchable { + public typealias OptionalMatchedType = UInt8 +} + +extension UInt16: Matchable {} +extension UInt16: OptionalMatchable { + public typealias OptionalMatchedType = UInt16 +} + +extension UInt32: Matchable {} +extension UInt32: OptionalMatchable { + public typealias OptionalMatchedType = UInt32 +} + +extension UInt64: Matchable {} +extension UInt64: OptionalMatchable { + public typealias OptionalMatchedType = UInt64 +} diff --git a/Pods/Cuckoo/Source/Matching/ParameterMatcher.swift b/Pods/Cuckoo/Source/Matching/ParameterMatcher.swift new file mode 100644 index 0000000000000000000000000000000000000000..a361afde3726ad0e8c73ce89b82ea63e73ee18d8 --- /dev/null +++ b/Pods/Cuckoo/Source/Matching/ParameterMatcher.swift @@ -0,0 +1,46 @@ +// +// ParameterMatcher.swift +// Cuckoo +// +// Created by Filip Dolnik on 04.07.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +/// ParameterMatcher matches parameters of methods in stubbing and verification. +public struct ParameterMatcher<T>: Matchable { + private let matchesFunction: (T) -> Bool + + public init(matchesFunction: @escaping (T) -> Bool = { _ in true }) { + self.matchesFunction = matchesFunction + } + + public var matcher: ParameterMatcher<T> { + return self + } + + public func matches(_ input: T) -> Bool { + return matchesFunction(input) + } +} + +public protocol CuckooOptionalType { + associatedtype Wrapped + + static func from(optional: Optional<Wrapped>) -> Self +} + +extension Optional: CuckooOptionalType { + public static func from(optional: Optional<Wrapped>) -> Optional<Wrapped> { + return optional + } +} + +extension ParameterMatcher: OptionalMatchable where T: CuckooOptionalType { + public typealias OptionalMatchedType = T.Wrapped + + public var optionalMatcher: ParameterMatcher<T.Wrapped?> { + return ParameterMatcher<T.Wrapped?> { other in + self.matchesFunction(T.from(optional: other)) + } + } +} diff --git a/Pods/Cuckoo/Source/Matching/ParameterMatcherFunctions.swift b/Pods/Cuckoo/Source/Matching/ParameterMatcherFunctions.swift new file mode 100644 index 0000000000000000000000000000000000000000..c46f77a65242a687cb4c7122a36d3e9bf37a8f91 --- /dev/null +++ b/Pods/Cuckoo/Source/Matching/ParameterMatcherFunctions.swift @@ -0,0 +1,216 @@ +// +// ParameterMatcherFunctions.swift +// Cuckoo +// +// Created by Filip Dolnik on 04.07.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +/// Returns an equality matcher. +public func equal<T: Equatable>(to value: T) -> ParameterMatcher<T> { + return equal(to: value, equalWhen: ==) +} + +/// Returns an identity matcher. +@available(*, renamed: "sameInstance(as:)") +public func equal<T: AnyObject>(to value: T) -> ParameterMatcher<T> { + return equal(to: value, equalWhen: ===) +} + +/// Returns an equality matcher for Array<Equatable> (ordered) +public func equal<T: Equatable>(to array: [T]) -> ParameterMatcher<[T]> { + return equal(to: array, equalWhen: ==) +} + +/// Returns an equality matcher for Set<Equatable> +public func equal<T>(to set: Set<T>) -> ParameterMatcher<Set<T>> { + return equal(to: set, equalWhen: ==) +} + +/// Returns an equality matcher for Dictionary<Hashable, Equatable> +public func equal<K: Hashable, V: Equatable>(to dictionary: [K: V]) -> ParameterMatcher<[K: V]> { + return equal(to: dictionary, equalWhen: ==) +} + +/// Returns a matcher using the supplied function. +public func equal<T>(to value: T, equalWhen equalityFunction: @escaping (T, T) -> Bool) -> ParameterMatcher<T> { + return ParameterMatcher { + return equalityFunction(value, $0) + } +} + +/// Returns a matcher matching any Int value. +public func anyInt() -> ParameterMatcher<Int> { + return ParameterMatcher() +} + +/// Returns a matcher matching any String value. +public func anyString() -> ParameterMatcher<String> { + return ParameterMatcher() +} + +/// Returns a matcher matching any throwing closure. +public func anyThrowingClosure<OUT>() -> ParameterMatcher<() throws -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any throwing closure. +public func anyThrowingClosure<IN1, OUT>() -> ParameterMatcher<(IN1) throws -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any throwing closure. +public func anyThrowingClosure<IN1, IN2, OUT>() -> ParameterMatcher<(IN1, IN2) throws -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any throwing closure. +public func anyThrowingClosure<IN1, IN2, IN3, OUT>() -> ParameterMatcher<(IN1, IN2, IN3) throws -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any throwing closure. +public func anyThrowingClosure<IN1, IN2, IN3, IN4, OUT>() -> ParameterMatcher<(IN1, IN2, IN3, IN4) throws -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any throwing closure. +public func anyThrowingClosure<IN1, IN2, IN3, IN4, IN5, OUT>() -> ParameterMatcher<(IN1, IN2, IN3, IN4, IN5) throws -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any throwing closure. +public func anyThrowingClosure<IN1, IN2, IN3, IN4, IN5, IN6, OUT>() -> ParameterMatcher<(IN1, IN2, IN3, IN4, IN5, IN6) throws -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any throwing closure. +public func anyThrowingClosure<IN1, IN2, IN3, IN4, IN5, IN6, IN7, OUT>() -> ParameterMatcher<(IN1, IN2, IN3, IN4, IN5, IN6, IN7) throws -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any non-throwing closure. +public func anyClosure<OUT>() -> ParameterMatcher<() -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any non-throwing closure. +public func anyClosure<IN1, OUT>() -> ParameterMatcher<(IN1) -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any non-throwing closure. +public func anyClosure<IN1, IN2, OUT>() -> ParameterMatcher<(IN1, IN2) -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any non-throwing closure. +public func anyClosure<IN1, IN2, IN3, OUT>() -> ParameterMatcher<(IN1, IN2, IN3) -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any non-throwing closure. +public func anyClosure<IN1, IN2, IN3, IN4, OUT>() -> ParameterMatcher<(IN1, IN2, IN3, IN4) -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any non-throwing closure. +public func anyClosure<IN1, IN2, IN3, IN4, IN5, OUT>() -> ParameterMatcher<(IN1, IN2, IN3, IN4, IN5) -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any non-throwing closure. +public func anyClosure<IN1, IN2, IN3, IN4, IN5, IN6, OUT>() -> ParameterMatcher<(IN1, IN2, IN3, IN4, IN5, IN6) -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any non-throwing closure. +public func anyClosure<IN1, IN2, IN3, IN4, IN5, IN6, IN7, OUT>() -> ParameterMatcher<(IN1, IN2, IN3, IN4, IN5, IN6, IN7) -> OUT> { + return ParameterMatcher() +} + +/// Returns a matcher matching any T value or nil. +public func any<T>(_ type: T.Type = T.self) -> ParameterMatcher<T> { + return ParameterMatcher() +} + +/// Returns a matcher matching any T value or nil. +public func any<T>(_ type: T.Type = T.self) -> ParameterMatcher<T?> { + return ParameterMatcher() +} + +/// Returns an equality matcher. +public func equal<T: Equatable>(to value: T?) -> ParameterMatcher<T?> { + return equal(to: value, equalWhen: ==) +} + +/// Returns an identity matcher. +@available(*, renamed: "sameInstance(as:)") +public func equal<T: AnyObject>(to value: T?) -> ParameterMatcher<T?> { + return equal(to: value, equalWhen: ===) +} + +/// Returns an identity matcher. +public func sameInstance<T: AnyObject>(as object: T?) -> ParameterMatcher<T?> { + return equal(to: object, equalWhen: ===) +} + +/// Returns an identity matcher. +public func sameInstance<T: AnyObject>(as object: T) -> ParameterMatcher<T> { + return equal(to: object, equalWhen: ===) +} + +/// Returns a matcher using the supplied function. +public func equal<T>(to value: T?, equalWhen equalityFunction: @escaping (T?, T?) -> Bool) -> ParameterMatcher<T?> { + return ParameterMatcher { + return equalityFunction(value, $0) + } +} + +/// Returns a matcher matching any Int value. +public func anyInt() -> ParameterMatcher<Int?> { + return notNil() +} + +/// Returns a matcher matching any String value. +public func anyString() -> ParameterMatcher<String?> { + return notNil() +} + +/// Returns a matcher matching any closure. +public func anyClosure<IN, OUT>() -> ParameterMatcher<(((IN)) -> OUT)?> { + return notNil() +} + +public func anyOptionalThrowingClosure<IN, OUT>() -> ParameterMatcher<(((IN)) throws -> OUT)?> { + return notNil() +} + +/// Returns a matcher matching any non-nil value. +public func notNil<T>() -> ParameterMatcher<T?> { + return ParameterMatcher { + if case .none = $0 { + return false + } else { + return true + } + } +} + +/// Returns a matcher matching any nil value. +public func isNil<T>() -> ParameterMatcher<T?> { + return ParameterMatcher { + if case .none = $0 { + return true + } else { + return false + } + } +} + +/// Returns a matcher negating any matcher it's applied to. +public func not<T>(_ matcher: ParameterMatcher<T>) -> ParameterMatcher<T> { + return ParameterMatcher { value in + !matcher.matches(value) + } +} diff --git a/Pods/Cuckoo/Source/Matching/Set+matchers.swift b/Pods/Cuckoo/Source/Matching/Set+matchers.swift new file mode 100644 index 0000000000000000000000000000000000000000..c72b83503bed27367d35ab9cb2b511ff55b4c3ae --- /dev/null +++ b/Pods/Cuckoo/Source/Matching/Set+matchers.swift @@ -0,0 +1,16 @@ +// +// Set+matchers.swift +// Cuckoo +// +// Created by Matyáš Kříž on 04/09/2019. +// + +extension Set: Matchable where Element: Matchable, Element == Element.MatchedType { + public typealias MatchedType = Set<Element> + + public var matcher: ParameterMatcher<Set<Element>> { + return ParameterMatcher<Set<Element>> { other in + return self == other + } + } +} diff --git a/Pods/Cuckoo/Source/Mock/Mock.swift b/Pods/Cuckoo/Source/Mock/Mock.swift new file mode 100644 index 0000000000000000000000000000000000000000..cc6e873c27cde582513ffc6b2dd58209aca630d5 --- /dev/null +++ b/Pods/Cuckoo/Source/Mock/Mock.swift @@ -0,0 +1,72 @@ +// +// Mock.swift +// Cuckoo +// +// Created by Filip Dolnik on 29.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol HasMockManager { + var cuckoo_manager: MockManager { get } +} + +public protocol HasSuperclass { + static var cuckoo_hasSuperclass: Bool { get } +} + +public protocol Mock: HasMockManager, HasSuperclass { + associatedtype MocksType + associatedtype Stubbing: StubbingProxy + associatedtype Verification: VerificationProxy + + func getStubbingProxy() -> Stubbing + + func getVerificationProxy(_ callMatcher: CallMatcher, sourceLocation: SourceLocation) -> Verification + + func enableDefaultImplementation(_ stub: MocksType) +} + +public extension Mock { + func getStubbingProxy() -> Stubbing { + return Stubbing(manager: cuckoo_manager) + } + + func getVerificationProxy(_ callMatcher: CallMatcher, sourceLocation: SourceLocation) -> Verification { + return Verification(manager: cuckoo_manager, callMatcher: callMatcher, sourceLocation: sourceLocation) + } + + func withEnabledDefaultImplementation(_ stub: MocksType) -> Self { + enableDefaultImplementation(stub) + return self + } +} + +public protocol ProtocolMock: Mock { } + +public protocol ClassMock: Mock { + func enableSuperclassSpy() +} + +public extension ClassMock { + func enableSuperclassSpy() { + cuckoo_manager.enableSuperclassSpy() + } + + func withEnabledSuperclassSpy() -> Self { + enableSuperclassSpy() + return self + } +} + +public extension ClassMock { + static var cuckoo_hasSuperclass: Bool { + return true + } +} + +public extension ProtocolMock { + static var cuckoo_hasSuperclass: Bool { + return false + } +} + diff --git a/Pods/Cuckoo/Source/Mock/Mocked.swift b/Pods/Cuckoo/Source/Mock/Mocked.swift new file mode 100644 index 0000000000000000000000000000000000000000..14e6607b8085a9dc51149d84627e1eac3702f2f3 --- /dev/null +++ b/Pods/Cuckoo/Source/Mock/Mocked.swift @@ -0,0 +1,12 @@ +// +// Mocked.swift +// Cuckoo +// +// Created by Tadeas Kriz on 7/6/18. +// + +import Foundation + +public protocol Mocked { + associatedtype MockType: Mock +} diff --git a/Pods/Cuckoo/Source/Mock/StubbingProxy.swift b/Pods/Cuckoo/Source/Mock/StubbingProxy.swift new file mode 100644 index 0000000000000000000000000000000000000000..b82e262c258a4d8d6c726cf991f04701a9c48f85 --- /dev/null +++ b/Pods/Cuckoo/Source/Mock/StubbingProxy.swift @@ -0,0 +1,11 @@ +// +// StubbingProxy.swift +// Cuckoo +// +// Created by Filip Dolnik on 29.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol StubbingProxy { + init(manager: MockManager) +} diff --git a/Pods/Cuckoo/Source/Mock/VerificationProxy.swift b/Pods/Cuckoo/Source/Mock/VerificationProxy.swift new file mode 100644 index 0000000000000000000000000000000000000000..01587e95b639fe1c4f820819929e73f53c787e93 --- /dev/null +++ b/Pods/Cuckoo/Source/Mock/VerificationProxy.swift @@ -0,0 +1,11 @@ +// +// VerificationProxy.swift +// Cuckoo +// +// Created by Filip Dolnik on 29.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol VerificationProxy { + init(manager: MockManager, callMatcher: CallMatcher, sourceLocation: SourceLocation) +} diff --git a/Pods/Cuckoo/Source/MockManager.swift b/Pods/Cuckoo/Source/MockManager.swift new file mode 100644 index 0000000000000000000000000000000000000000..762ddd7476e11f641b57bb1e9b1a067ff6d12dfd --- /dev/null +++ b/Pods/Cuckoo/Source/MockManager.swift @@ -0,0 +1,245 @@ +// +// MockManager.swift +// Cuckoo +// +// Created by Filip Dolnik on 29.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +import XCTest + +#if !swift(>=4.1) +private extension Array { + func compactMap<O>(_ transform: (Element) -> O?) -> [O] { + return self.flatMap(transform) + } +} +#endif + +public class MockManager { + public static var fail: ((message: String, sourceLocation: SourceLocation)) -> () = { (arg) in let (message, sourceLocation) = arg; XCTFail(message, file: sourceLocation.file, line: sourceLocation.line) } + private var stubs: [Stub] = [] + private var stubCalls: [StubCall] = [] + private var unverifiedStubCallsIndexes: [Int] = [] + // TODO Add either enum or OptionSet for these behavior modifiers and add proper validation + private var isSuperclassSpyEnabled = false + private var isDefaultImplementationEnabled = false + + private let hasParent: Bool + + public init(hasParent: Bool) { + self.hasParent = hasParent + } + + private func callInternal<IN, OUT>(_ method: String, parameters: IN, escapingParameters: IN, superclassCall: () -> OUT, defaultCall: () -> OUT) -> OUT { + return callRethrowsInternal(method, parameters: parameters, escapingParameters: escapingParameters, superclassCall: superclassCall, defaultCall: defaultCall) + } + + private func callRethrowsInternal<IN, OUT>(_ method: String, parameters: IN, escapingParameters: IN, superclassCall: () throws -> OUT, defaultCall: () throws -> OUT) rethrows -> OUT { + let stubCall = ConcreteStubCall(method: method, parameters: escapingParameters) + stubCalls.append(stubCall) + unverifiedStubCallsIndexes.append(stubCalls.count - 1) + + if let stub = (stubs.filter { $0.method == method }.compactMap { $0 as? ConcreteStub<IN, OUT> }.filter { $0.parameterMatchers.reduce(true) { $0 && $1.matches(parameters) } }.first) { + if let action = stub.actions.first { + if stub.actions.count > 1 { + // Bug in Swift, this expression resolves as uncalled function + _ = stub.actions.removeFirst() + } + switch action { + case .callImplementation(let implementation): + return try DispatchQueue(label: "No-care?").sync(execute: { + return try implementation(parameters) + }) + case .returnValue(let value): + return value + case .throwError(let error): + return try DispatchQueue(label: "No-care?").sync(execute: { + throw error + }) + case .callRealImplementation where hasParent: + return try superclassCall() + default: + failAndCrash("No real implementation found for method `\(method)`. This is probably caused by stubbed object being a mock of a protocol.") + } + } else { + failAndCrash("Stubbing of method `\(method)` using parameters \(parameters) wasn't finished (missing thenReturn()).") + } + } else if isSuperclassSpyEnabled { + return try superclassCall() + } else if isDefaultImplementationEnabled { + return try defaultCall() + } else { + failAndCrash("No stub for method `\(method)` using parameters \(parameters).") + } + } + + private func callThrowsInternal<IN, OUT>(_ method: String, parameters: IN, escapingParameters: IN, superclassCall: () throws -> OUT, defaultCall: () throws -> OUT) throws -> OUT { + let stubCall = ConcreteStubCall(method: method, parameters: escapingParameters) + stubCalls.append(stubCall) + unverifiedStubCallsIndexes.append(stubCalls.count - 1) + + if let stub = (stubs.filter { $0.method == method }.compactMap { $0 as? ConcreteStub<IN, OUT> }.filter { $0.parameterMatchers.reduce(true) { $0 && $1.matches(parameters) } }.first) { + if let action = stub.actions.first { + if stub.actions.count > 1 { + // Bug in Swift, this expression resolves as uncalled function + _ = stub.actions.removeFirst() + } + switch action { + case .callImplementation(let implementation): + return try implementation(parameters) + case .returnValue(let value): + return value + case .throwError(let error): + throw error + case .callRealImplementation where hasParent: + return try superclassCall() + default: + failAndCrash("No real implementation found for method `\(method)`. This is probably caused by stubbed object being a mock of a protocol.") + } + } else { + failAndCrash("Stubbing of method `\(method)` using parameters \(parameters) wasn't finished (missing thenReturn()).") + } + } else if isSuperclassSpyEnabled { + return try superclassCall() + } else if isDefaultImplementationEnabled { + return try defaultCall() + } else { + failAndCrash("No stub for method `\(method)` using parameters \(parameters).") + } + } + + public func createStub<MOCK: ClassMock, IN, OUT>(for _: MOCK.Type, method: String, parameterMatchers: [ParameterMatcher<IN>]) -> ClassConcreteStub<IN, OUT> { + let stub = ClassConcreteStub<IN, OUT>(method: method, parameterMatchers: parameterMatchers) + stubs.insert(stub, at: 0) + return stub + } + + public func createStub<MOCK: ProtocolMock, IN, OUT>(for _: MOCK.Type, method: String, parameterMatchers: [ParameterMatcher<IN>]) -> ConcreteStub<IN, OUT> { + let stub = ConcreteStub<IN, OUT>(method: method, parameterMatchers: parameterMatchers) + stubs.insert(stub, at: 0) + return stub + } + + public func verify<IN, OUT>(_ method: String, callMatcher: CallMatcher, parameterMatchers: [ParameterMatcher<IN>], sourceLocation: SourceLocation) -> __DoNotUse<IN, OUT> { + var calls: [StubCall] = [] + var indexesToRemove: [Int] = [] + for (i, stubCall) in stubCalls.enumerated() { + if let stubCall = stubCall as? ConcreteStubCall<IN> , (parameterMatchers.reduce(stubCall.method == method) { $0 && $1.matches(stubCall.parameters) }) { + calls.append(stubCall) + indexesToRemove.append(i) + } + } + unverifiedStubCallsIndexes = unverifiedStubCallsIndexes.filter { !indexesToRemove.contains($0) } + + if callMatcher.matches(calls) == false { + let message = "Wanted \(callMatcher.name) but \(calls.count == 0 ? "not invoked" : "invoked \(calls.count) times")." + MockManager.fail((message, sourceLocation)) + } + return __DoNotUse() + } + + public func enableSuperclassSpy() { + guard stubCalls.isEmpty else { + failAndCrash("Enabling superclass spy is not allowed after stubbing! Please do that right after creating the mock.") + } + guard !isDefaultImplementationEnabled else { + failAndCrash("Enabling superclass spy is not allowed with the default stub implementation enabled.") + } + + isSuperclassSpyEnabled = true + } + + public func enableDefaultStubImplementation() { + guard stubCalls.isEmpty else { + failAndCrash("Enabling default stub implementation is not allowed after stubbing! Please do that right after creating the mock.") + } + guard !isSuperclassSpyEnabled else { + failAndCrash("Enabling default stub implementation is not allowed with superclass spy enabled.") + } + + isDefaultImplementationEnabled = true + } + + func reset() { + clearStubs() + clearInvocations() + } + + func clearStubs() { + stubs.removeAll() + } + + func clearInvocations() { + stubCalls.removeAll() + unverifiedStubCallsIndexes.removeAll() + } + + func verifyNoMoreInteractions(_ sourceLocation: SourceLocation) { + if unverifiedStubCallsIndexes.isEmpty == false { + let unverifiedCalls = unverifiedStubCallsIndexes.map { stubCalls[$0] }.map { call in + if let bracketIndex = call.method.range(of: "(")?.lowerBound { + let name = call.method[..<bracketIndex] + return name + call.parametersAsString + } else { + if call.method.hasSuffix("#set") { + return call.method + call.parametersAsString + } else { + return call.method + } + } + }.enumerated().map { "\($0 + 1). " + $1 }.joined(separator: "\n") + let message = "No more interactions wanted but some found:\n" + MockManager.fail((message + unverifiedCalls, sourceLocation)) + } + } + + private func failAndCrash(_ message: String, file: StaticString = #file, line: UInt = #line) -> Never { + MockManager.fail((message, (file, line))) + + #if _runtime(_ObjC) + NSException(name: .internalInconsistencyException, reason:message, userInfo: nil).raise() + #endif + + fatalError(message) + } +} + +extension MockManager { + public static func callOrCrash<T, OUT>(_ value: T?, call: (T) throws -> OUT) rethrows -> OUT { + guard let value = value else { return crashOnProtocolSuperclassCall() } + return try call(value) + } + + public static func crashOnProtocolSuperclassCall<OUT>() -> OUT { + fatalError("This should never get called. If it does, please report an issue to Cuckoo repository.") + } +} + +extension MockManager { + public func getter<T>(_ property: String, superclassCall: @autoclosure () -> T, defaultCall: @autoclosure () -> T) -> T { + return call(getterName(property), parameters: Void(), escapingParameters: Void(), superclassCall: superclassCall(), defaultCall: defaultCall()) + } + + public func setter<T>(_ property: String, value: T, superclassCall: @autoclosure () -> Void, defaultCall: @autoclosure () -> Void) { + return call(setterName(property), parameters: value, escapingParameters: value, superclassCall: superclassCall(), defaultCall: defaultCall()) + } +} + +extension MockManager { + public func call<IN, OUT>(_ method: String, parameters: IN, escapingParameters: IN, superclassCall: @autoclosure () -> OUT, defaultCall: @autoclosure () -> OUT) -> OUT { + return callInternal(method, parameters: parameters, escapingParameters: escapingParameters, superclassCall: superclassCall, defaultCall: defaultCall) + } +} + +extension MockManager { + public func callThrows<IN, OUT>(_ method: String, parameters: IN, escapingParameters: IN, superclassCall: @autoclosure () throws -> OUT, defaultCall: @autoclosure () throws -> OUT) throws -> OUT { + return try callThrowsInternal(method, parameters: parameters, escapingParameters: escapingParameters, superclassCall: superclassCall, defaultCall: defaultCall) + } +} + +extension MockManager { + public func callRethrows<IN, OUT>(_ method: String, parameters: IN, escapingParameters: IN, superclassCall: @autoclosure () throws -> OUT, defaultCall: @autoclosure () throws -> OUT) rethrows -> OUT { + return try callRethrowsInternal(method, parameters: parameters, escapingParameters: escapingParameters, superclassCall: superclassCall, defaultCall: defaultCall) + } +} diff --git a/Pods/Cuckoo/Source/Stubbing/Stub.swift b/Pods/Cuckoo/Source/Stubbing/Stub.swift new file mode 100644 index 0000000000000000000000000000000000000000..ceb8f6fcf0e4d8044c7190e589cc828d9c822c04 --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/Stub.swift @@ -0,0 +1,28 @@ +// +// Stub.swift +// Cuckoo +// +// Created by Filip Dolnik on 29.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol Stub { + var method: String { get } +} + +public class ConcreteStub<IN, OUT>: Stub { + public let method: String + let parameterMatchers: [ParameterMatcher<IN>] + var actions: [StubAction<IN, OUT>] = [] + + init(method: String, parameterMatchers: [ParameterMatcher<IN>]) { + self.method = method + self.parameterMatchers = parameterMatchers + } + + func appendAction(_ action: StubAction<IN, OUT>) { + actions.append(action) + } +} + +public class ClassConcreteStub<IN, OUT>: ConcreteStub<IN, OUT> { } diff --git a/Pods/Cuckoo/Source/Stubbing/StubAction.swift b/Pods/Cuckoo/Source/Stubbing/StubAction.swift new file mode 100644 index 0000000000000000000000000000000000000000..5951888e72511e555e93694d0996673fcb2f47cd --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/StubAction.swift @@ -0,0 +1,14 @@ +// +// StubAction.swift +// Cuckoo +// +// Created by Filip Dolnik on 29.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +enum StubAction<IN, OUT> { + case callImplementation((IN) throws -> OUT) + case returnValue(OUT) + case throwError(Error) + case callRealImplementation +} diff --git a/Pods/Cuckoo/Source/Stubbing/StubCall.swift b/Pods/Cuckoo/Source/Stubbing/StubCall.swift new file mode 100644 index 0000000000000000000000000000000000000000..153d3bebf787e75f083d2073273aaba2e1b3c2a2 --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/StubCall.swift @@ -0,0 +1,33 @@ +// +// StubCall.swift +// Cuckoo +// +// Created by Filip Dolnik on 29.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol StubCall { + var method: String { get } + var parametersAsString: String { get } +} + +public struct ConcreteStubCall<IN>: StubCall { + public let method: String + public let parameters: (IN) + + public var parametersAsString: String { + let string = String(describing: parameters) + if (string.range(of: ",") != nil && string.hasPrefix("(")) || string == "()" { + return string + } else { + // If only one parameter add brackets and quotes + let wrappedParameter = String(describing: (parameters, 0)) + return wrappedParameter[..<wrappedParameter.index(wrappedParameter.endIndex, offsetBy: -4)] + ")" + } + } + + public init(method: String, parameters: (IN)) { + self.method = method + self.parameters = parameters + } +} diff --git a/Pods/Cuckoo/Source/Stubbing/StubFunction/StubFunction.swift b/Pods/Cuckoo/Source/Stubbing/StubFunction/StubFunction.swift new file mode 100644 index 0000000000000000000000000000000000000000..13bc8748536abccacbf11f4a8d9e203d40f74792 --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/StubFunction/StubFunction.swift @@ -0,0 +1,27 @@ +// +// StubFunction.swift +// Cuckoo +// +// Created by Filip Dolnik on 29.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol StubFunction: StubFunctionThenTrait, StubFunctionThenReturnTrait { +} + +public struct ProtocolStubFunction<IN, OUT>: StubFunction { + public let stub: ConcreteStub<IN, OUT> + + public init(stub: ConcreteStub<IN, OUT>) { + self.stub = stub + } +} + +public struct ClassStubFunction<IN, OUT>: StubFunction, StubFunctionThenCallRealImplementationTrait { + public let stub: ConcreteStub<IN, OUT> + + public init(stub: ClassConcreteStub<IN, OUT>) { + self.stub = stub + } +} + diff --git a/Pods/Cuckoo/Source/Stubbing/StubFunction/StubNoReturnFunction.swift b/Pods/Cuckoo/Source/Stubbing/StubFunction/StubNoReturnFunction.swift new file mode 100644 index 0000000000000000000000000000000000000000..dccbc0a4194aabeb2c56664429534114ace621e8 --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/StubFunction/StubNoReturnFunction.swift @@ -0,0 +1,26 @@ +// +// StubNoReturnFunction.swift +// Cuckoo +// +// Created by Filip Dolnik on 27.06.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol StubNoReturnFunction: StubFunctionThenTrait, StubFunctionThenDoNothingTrait { +} + +public struct ProtocolStubNoReturnFunction<IN>: StubNoReturnFunction { + public let stub: ConcreteStub<IN, Void> + + public init(stub: ConcreteStub<IN, Void>) { + self.stub = stub + } +} + +public struct ClassStubNoReturnFunction<IN>: StubNoReturnFunction, StubFunctionThenCallRealImplementationTrait { + public let stub: ConcreteStub<IN, Void> + + public init(stub: ClassConcreteStub<IN, Void>) { + self.stub = stub + } +} diff --git a/Pods/Cuckoo/Source/Stubbing/StubFunction/StubNoReturnThrowingFunction.swift b/Pods/Cuckoo/Source/Stubbing/StubFunction/StubNoReturnThrowingFunction.swift new file mode 100644 index 0000000000000000000000000000000000000000..00e9cd93b91bacd0957b87970e386600baefb57c --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/StubFunction/StubNoReturnThrowingFunction.swift @@ -0,0 +1,26 @@ +// +// StubNoReturnThrowingFunction.swift +// Cuckoo +// +// Created by Filip Dolnik on 27.06.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol StubNoReturnThrowingFunction: StubFunctionThenTrait, StubFunctionThenDoNothingTrait, StubFunctionThenThrowTrait, StubFunctionThenThrowingTrait { +} + +public struct ProtocolStubNoReturnThrowingFunction<IN>: StubNoReturnThrowingFunction { + public let stub: ConcreteStub<IN, Void> + + public init(stub: ConcreteStub<IN, Void>) { + self.stub = stub + } +} + +public struct ClassStubNoReturnThrowingFunction<IN>: StubNoReturnThrowingFunction, StubFunctionThenCallRealImplementationTrait { + public let stub: ConcreteStub<IN, Void> + + public init(stub: ClassConcreteStub<IN, Void>) { + self.stub = stub + } +} diff --git a/Pods/Cuckoo/Source/Stubbing/StubFunction/StubThrowingFunction.swift b/Pods/Cuckoo/Source/Stubbing/StubFunction/StubThrowingFunction.swift new file mode 100644 index 0000000000000000000000000000000000000000..0e2cd96651dec76214e9d66e411593f9416a6aa8 --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/StubFunction/StubThrowingFunction.swift @@ -0,0 +1,26 @@ +// +// StubThrowingFunction.swift +// Cuckoo +// +// Created by Tadeas Kriz on 13/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol StubThrowingFunction: StubFunctionThenTrait, StubFunctionThenReturnTrait, StubFunctionThenThrowTrait, StubFunctionThenThrowingTrait { +} + +public struct ProtocolStubThrowingFunction<IN, OUT>: StubThrowingFunction { + public let stub: ConcreteStub<IN, OUT> + + public init(stub: ConcreteStub<IN, OUT>) { + self.stub = stub + } +} + +public struct ClassStubThrowingFunction<IN, OUT>: StubThrowingFunction, StubFunctionThenCallRealImplementationTrait { + public let stub: ConcreteStub<IN, OUT> + + public init(stub: ClassConcreteStub<IN, OUT>) { + self.stub = stub + } +} diff --git a/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/BaseStubFunctionTrait.swift b/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/BaseStubFunctionTrait.swift new file mode 100644 index 0000000000000000000000000000000000000000..ba0f1e8ff2bbbd74d8582fdbfabb2cc55c0d2809 --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/BaseStubFunctionTrait.swift @@ -0,0 +1,14 @@ +// +// BaseStubFunctionTrait.swift +// Cuckoo +// +// Created by Filip Dolnik on 27.06.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol BaseStubFunctionTrait { + associatedtype InputType + associatedtype OutputType + + var stub: ConcreteStub<InputType, OutputType> { get } +} diff --git a/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenCallRealImplementationTrait.swift b/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenCallRealImplementationTrait.swift new file mode 100644 index 0000000000000000000000000000000000000000..c44776e1856afbbb87da0418a7ef495ed5573aab --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenCallRealImplementationTrait.swift @@ -0,0 +1,20 @@ +// +// StubFunctionThenCallRealImplementationTrait.swift +// Cuckoo +// +// Created by Filip Dolnik on 27.06.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol StubFunctionThenCallRealImplementationTrait: BaseStubFunctionTrait { + /// Invokes real implementation when invoked. + func thenCallRealImplementation() -> Self +} + +public extension StubFunctionThenCallRealImplementationTrait { + @discardableResult + func thenCallRealImplementation() -> Self { + stub.appendAction(.callRealImplementation) + return self + } +} diff --git a/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenDoNothingTrait.swift b/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenDoNothingTrait.swift new file mode 100644 index 0000000000000000000000000000000000000000..85b0c2f9e080452b27826a93fd54b515f03abdf0 --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenDoNothingTrait.swift @@ -0,0 +1,20 @@ +// +// StubFunctionThenDoNothingTrait.swift +// Cuckoo +// +// Created by Filip Dolnik on 27.06.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol StubFunctionThenDoNothingTrait: BaseStubFunctionTrait { + /// Does nothing when invoked. + func thenDoNothing() -> Self +} + +public extension StubFunctionThenDoNothingTrait where OutputType == Void { + @discardableResult + func thenDoNothing() -> Self { + stub.appendAction(.returnValue(Void())) + return self + } +} diff --git a/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenReturnTrait.swift b/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenReturnTrait.swift new file mode 100644 index 0000000000000000000000000000000000000000..75a931bba05b9e98e47b5fc298dbf878ec4ad2fc --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenReturnTrait.swift @@ -0,0 +1,22 @@ +// +// StubFunctionThenReturnTrait.swift +// Cuckoo +// +// Created by Filip Dolnik on 27.06.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol StubFunctionThenReturnTrait: BaseStubFunctionTrait { + /// Returns `output` when invoked. + func thenReturn(_ output: OutputType, _ outputs: OutputType...) -> Self +} + +public extension StubFunctionThenReturnTrait { + @discardableResult + func thenReturn(_ output: OutputType, _ outputs: OutputType...) -> Self { + ([output] + outputs).forEach { output in + stub.appendAction(.returnValue(output)) + } + return self + } +} diff --git a/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenThrowTrait.swift b/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenThrowTrait.swift new file mode 100644 index 0000000000000000000000000000000000000000..7cd67447c0da9c3f4924fdc7ef0bcaf59dda75bf --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenThrowTrait.swift @@ -0,0 +1,22 @@ +// +// StubFunctionThenThrowTrait.swift +// Cuckoo +// +// Created by Filip Dolnik on 27.06.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol StubFunctionThenThrowTrait: BaseStubFunctionTrait { + /// Throws `error` when invoked. + func thenThrow(_ error: Error, _ errors: Error...) -> Self +} + +public extension StubFunctionThenThrowTrait { + @discardableResult + func thenThrow(_ error: Error, _ errors: Error...) -> Self { + ([error] + errors).forEach { error in + stub.appendAction(.throwError(error)) + } + return self + } +} diff --git a/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenThrowingTrait.swift b/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenThrowingTrait.swift new file mode 100644 index 0000000000000000000000000000000000000000..b9a5d9575dc45eac5ba35b300053b130ee92d730 --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenThrowingTrait.swift @@ -0,0 +1,19 @@ +// +// StubFunctionThenThrowingTrait.swift +// Cuckoo-iOS +// +// Created by Matyáš Kříž on 27/03/2019. +// + +public protocol StubFunctionThenThrowingTrait: BaseStubFunctionTrait { + /// Invokes throwing `implementation` when invoked. + func then(_ implementation: @escaping (InputType) throws -> OutputType) -> Self +} + +public extension StubFunctionThenThrowingTrait { + @discardableResult + func then(_ implementation: @escaping (InputType) throws -> OutputType) -> Self { + stub.appendAction(.callImplementation(implementation)) + return self + } +} diff --git a/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenTrait.swift b/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenTrait.swift new file mode 100644 index 0000000000000000000000000000000000000000..0bba141242cdab1b2ba4f5e4228ac8f712d4be82 --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/StubFunction/Trait/StubFunctionThenTrait.swift @@ -0,0 +1,20 @@ +// +// StubFunctionThenTrait.swift +// Cuckoo +// +// Created by Filip Dolnik on 27.06.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol StubFunctionThenTrait: BaseStubFunctionTrait { + /// Invokes `implementation` when invoked. + func then(_ implementation: @escaping (InputType) -> OutputType) -> Self +} + +public extension StubFunctionThenTrait { + @discardableResult + func then(_ implementation: @escaping (InputType) -> OutputType) -> Self { + stub.appendAction(.callImplementation(implementation)) + return self + } +} diff --git a/Pods/Cuckoo/Source/Stubbing/ToBeStubbedProperty/ToBeStubbedProperty.swift b/Pods/Cuckoo/Source/Stubbing/ToBeStubbedProperty/ToBeStubbedProperty.swift new file mode 100644 index 0000000000000000000000000000000000000000..fe51a5a886823636b2314aa8d0feefee30e79e6f --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/ToBeStubbedProperty/ToBeStubbedProperty.swift @@ -0,0 +1,99 @@ +// +// ToBeStubbedProperty.swift +// Cuckoo +// +// Created by Filip Dolnik on 29.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol ToBeStubbedProperty: ToBeStubbedReadOnlyProperty where GetterType.OutputType == SetterType.InputType { + associatedtype SetterType: StubNoReturnFunction + + func set<M: Matchable>(_ matcher: M) -> SetterType where M.MatchedType == SetterType.InputType +} + +public struct ProtocolToBeStubbedProperty<MOCK: ProtocolMock, T>: ToBeStubbedProperty { + private let manager: MockManager + private let name: String + + public var get: ProtocolStubFunction<Void, T> { + return ProtocolStubFunction(stub: + manager.createStub(for: MOCK.self, method: getterName(name), parameterMatchers: [])) + } + + public func set<M: Matchable>(_ matcher: M) -> ProtocolStubNoReturnFunction<T> where M.MatchedType == T { + return ProtocolStubNoReturnFunction(stub: + manager.createStub(for: MOCK.self, method: setterName(name), parameterMatchers: [matcher.matcher])) + } + + public init(manager: MockManager, name: String) { + self.manager = manager + self.name = name + } +} + +public struct ClassToBeStubbedProperty<MOCK: ClassMock, T>: ToBeStubbedProperty { + private let manager: MockManager + private let name: String + + public var get: ClassStubFunction<Void, T> { + return ClassStubFunction(stub: + manager.createStub(for: MOCK.self, method: getterName(name), parameterMatchers: [])) + } + + public func set<M: Matchable>(_ matcher: M) -> ClassStubNoReturnFunction<T> where M.MatchedType == T { + return ClassStubNoReturnFunction(stub: + manager.createStub(for: MOCK.self, method: setterName(name), parameterMatchers: [matcher.matcher])) + } + + public init(manager: MockManager, name: String) { + self.manager = manager + self.name = name + } +} + +public protocol ToBeStubbedOptionalProperty: ToBeStubbedReadOnlyProperty where GetterType.OutputType == SetterType.InputType { + associatedtype SetterType: StubNoReturnFunction + + func set<M: OptionalMatchable>(_ matcher: M) -> SetterType where Optional<M.OptionalMatchedType> == SetterType.InputType +} + +public struct ProtocolToBeStubbedOptionalProperty<MOCK: ProtocolMock, T>: ToBeStubbedOptionalProperty { + private let manager: MockManager + private let name: String + + public var get: ProtocolStubFunction<Void, T?> { + return ProtocolStubFunction(stub: + manager.createStub(for: MOCK.self, method: getterName(name), parameterMatchers: [])) + } + + public func set<M: OptionalMatchable>(_ matcher: M) -> ProtocolStubNoReturnFunction<T?> where M.OptionalMatchedType == T { + return ProtocolStubNoReturnFunction(stub: + manager.createStub(for: MOCK.self, method: setterName(name), parameterMatchers: [matcher.optionalMatcher])) + } + + public init(manager: MockManager, name: String) { + self.manager = manager + self.name = name + } +} + +public struct ClassToBeStubbedOptionalProperty<MOCK: ClassMock, T>: ToBeStubbedOptionalProperty { + private let manager: MockManager + private let name: String + + public var get: ClassStubFunction<Void, T?> { + return ClassStubFunction(stub: + manager.createStub(for: MOCK.self, method: getterName(name), parameterMatchers: [])) + } + + public func set<M: OptionalMatchable>(_ matcher: M) -> ClassStubNoReturnFunction<T?> where M.OptionalMatchedType == T { + return ClassStubNoReturnFunction(stub: + manager.createStub(for: MOCK.self, method: setterName(name), parameterMatchers: [matcher.optionalMatcher])) + } + + public init(manager: MockManager, name: String) { + self.manager = manager + self.name = name + } +} diff --git a/Pods/Cuckoo/Source/Stubbing/ToBeStubbedProperty/ToBeStubbedReadOnlyProperty.swift b/Pods/Cuckoo/Source/Stubbing/ToBeStubbedProperty/ToBeStubbedReadOnlyProperty.swift new file mode 100644 index 0000000000000000000000000000000000000000..58a28502c3a20669fbbf7ec779006c024b200424 --- /dev/null +++ b/Pods/Cuckoo/Source/Stubbing/ToBeStubbedProperty/ToBeStubbedReadOnlyProperty.swift @@ -0,0 +1,43 @@ +// +// ToBeStubbedReadOnlyProperty.swift +// Cuckoo +// +// Created by Filip Dolnik on 29.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public protocol ToBeStubbedReadOnlyProperty { + associatedtype GetterType: StubFunction + + var get: GetterType { get } +} + +public struct ProtocolToBeStubbedReadOnlyProperty<MOCK: ProtocolMock, T>: ToBeStubbedReadOnlyProperty { + private let manager: MockManager + private let name: String + + public var get: ProtocolStubFunction<Void, T> { + return ProtocolStubFunction(stub: + manager.createStub(for: MOCK.self, method: getterName(name), parameterMatchers: [])) + } + + public init(manager: MockManager, name: String) { + self.manager = manager + self.name = name + } +} + +public struct ClassToBeStubbedReadOnlyProperty<MOCK: ClassMock, T>: ToBeStubbedReadOnlyProperty { + private let manager: MockManager + private let name: String + + public var get: ClassStubFunction<Void, T> { + return ClassStubFunction(stub: + manager.createStub(for: MOCK.self, method: getterName(name), parameterMatchers: [])) + } + + public init(manager: MockManager, name: String) { + self.manager = manager + self.name = name + } +} diff --git a/Pods/Cuckoo/Source/Utils.swift b/Pods/Cuckoo/Source/Utils.swift new file mode 100644 index 0000000000000000000000000000000000000000..fb368bfa8fcc40cb158c16b1337ef2c5e7e9c9db --- /dev/null +++ b/Pods/Cuckoo/Source/Utils.swift @@ -0,0 +1,29 @@ +// +// Utils.swift +// Cuckoo +// +// Created by Tadeas Kriz on 13/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +internal func getterName(_ property: String) -> String { + return property + "#get" +} + +internal func setterName(_ property: String) -> String { + return property + "#set" +} + +public func wrap<M: Matchable, IN>(matchable: M, mapping: @escaping (IN) -> M.MatchedType) -> ParameterMatcher<IN> { + return ParameterMatcher { + return matchable.matcher.matches(mapping($0)) + } +} + +public func wrap<M: OptionalMatchable, IN, O>(matchable: M, mapping: @escaping (IN) -> M.OptionalMatchedType?) -> ParameterMatcher<IN> where M.OptionalMatchedType == O { + return ParameterMatcher { + return matchable.optionalMatcher.matches(mapping($0)) + } +} + +public typealias SourceLocation = (file: StaticString, line: UInt) diff --git a/Pods/Cuckoo/Source/Verification/ArgumentCaptor.swift b/Pods/Cuckoo/Source/Verification/ArgumentCaptor.swift new file mode 100644 index 0000000000000000000000000000000000000000..038040832d0e6c3b7560d5f5b764684e70054529 --- /dev/null +++ b/Pods/Cuckoo/Source/Verification/ArgumentCaptor.swift @@ -0,0 +1,30 @@ +// +// ArgumentCaptor.swift +// Cuckoo +// +// Created by Filip Dolnik on 29.06.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +// Can be used to capture arguments. It is recommended to use it only in verification and not stubbing. +public class ArgumentCaptor<T> { + + // Last captured argument if any. + public var value: T? { + return allValues.last + } + + // All captured arguments. + public private(set) var allValues: [T] = [] + + public init() { + } + + // Return parameter matcher which capture the argument. + public func capture() -> ParameterMatcher<T> { + return ParameterMatcher { + self.allValues.append($0) + return true + } + } +} diff --git a/Pods/Cuckoo/Source/Verification/VerifyProperty/VerifyProperty.swift b/Pods/Cuckoo/Source/Verification/VerifyProperty/VerifyProperty.swift new file mode 100644 index 0000000000000000000000000000000000000000..428f672b4d8125e58370e66aa0a843bfdd8dd7fb --- /dev/null +++ b/Pods/Cuckoo/Source/Verification/VerifyProperty/VerifyProperty.swift @@ -0,0 +1,55 @@ +// +// VerifyProperty.swift +// Cuckoo +// +// Created by Filip Dolnik on 29.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public struct VerifyProperty<T> { + private let manager: MockManager + private let name: String + private let callMatcher: CallMatcher + private let sourceLocation: SourceLocation + + @discardableResult + public func get() -> __DoNotUse<Void, T> { + return manager.verify(getterName(name), callMatcher: callMatcher, parameterMatchers: [] as [ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + @discardableResult + public func set<M: Matchable>(_ matcher: M) -> __DoNotUse<T, Void> where M.MatchedType == T { + return manager.verify(setterName(name), callMatcher: callMatcher, parameterMatchers: [matcher.matcher], sourceLocation: sourceLocation) + } + + public init(manager: MockManager, name: String, callMatcher: CallMatcher, sourceLocation: SourceLocation) { + self.manager = manager + self.name = name + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } +} + +public struct VerifyOptionalProperty<T> { + private let manager: MockManager + private let name: String + private let callMatcher: CallMatcher + private let sourceLocation: SourceLocation + + @discardableResult + public func get() -> __DoNotUse<Void, T> { + return manager.verify(getterName(name), callMatcher: callMatcher, parameterMatchers: [] as [ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + @discardableResult + public func set<M: OptionalMatchable>(_ matcher: M) -> __DoNotUse<T?, Void> where M.OptionalMatchedType == T { + return manager.verify(setterName(name), callMatcher: callMatcher, parameterMatchers: [matcher.optionalMatcher], sourceLocation: sourceLocation) + } + + public init(manager: MockManager, name: String, callMatcher: CallMatcher, sourceLocation: SourceLocation) { + self.manager = manager + self.name = name + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } +} diff --git a/Pods/Cuckoo/Source/Verification/VerifyProperty/VerifyReadOnlyProperty.swift b/Pods/Cuckoo/Source/Verification/VerifyProperty/VerifyReadOnlyProperty.swift new file mode 100644 index 0000000000000000000000000000000000000000..0aa7d43e88435da0ff2e21e5770c712cc044d58e --- /dev/null +++ b/Pods/Cuckoo/Source/Verification/VerifyProperty/VerifyReadOnlyProperty.swift @@ -0,0 +1,26 @@ +// +// VerifyReadOnlyProperty.swift +// Cuckoo +// +// Created by Filip Dolnik on 29.05.16. +// Copyright © 2016 Brightify. All rights reserved. +// + +public struct VerifyReadOnlyProperty<T> { + private let manager: MockManager + private let name: String + private let callMatcher: CallMatcher + private let sourceLocation: SourceLocation + + @discardableResult + public func get() -> __DoNotUse<Void, T> { + return manager.verify(getterName(name), callMatcher: callMatcher, parameterMatchers: [] as [ParameterMatcher<Void>], sourceLocation: sourceLocation) + } + + public init(manager: MockManager, name: String, callMatcher: CallMatcher, sourceLocation: SourceLocation) { + self.manager = manager + self.name = name + self.callMatcher = callMatcher + self.sourceLocation = sourceLocation + } +} diff --git a/Pods/Cuckoo/Source/Verification/__DoNotUse.swift b/Pods/Cuckoo/Source/Verification/__DoNotUse.swift new file mode 100644 index 0000000000000000000000000000000000000000..596f370641c345e82c02299a07580cc0600ae75a --- /dev/null +++ b/Pods/Cuckoo/Source/Verification/__DoNotUse.swift @@ -0,0 +1,10 @@ +// +// __DoNotUse.swift +// Cuckoo +// +// Created by Tadeas Kriz on 13/01/16. +// Copyright © 2016 Brightify. All rights reserved. +// + +/// Marker struct for use as a return type in verification. +public struct __DoNotUse<IN, OUT> { } diff --git a/Pods/Cuckoo/build_generator b/Pods/Cuckoo/build_generator new file mode 100755 index 0000000000000000000000000000000000000000..c407dc6069356795e3b937423c234582f8d0cebe --- /dev/null +++ b/Pods/Cuckoo/build_generator @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -e + +# getting the script directory: https://stackoverflow.com/a/246128 +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +pushd "${DIR}/Generator" +rm -rf .build +env -i PATH="$PATH" HOME="$HOME" swift build --configuration release --static-swift-stdlib +popd diff --git a/Pods/Cuckoo/cuckoo_generator b/Pods/Cuckoo/cuckoo_generator new file mode 100755 index 0000000000000000000000000000000000000000..e95d9c2cc86669c4bf2dd285132e247c84817a33 Binary files /dev/null and b/Pods/Cuckoo/cuckoo_generator differ diff --git a/Pods/Cuckoo/run b/Pods/Cuckoo/run new file mode 100755 index 0000000000000000000000000000000000000000..03f261d2cb13d1b4c6cfe314ba21c53b41066438 --- /dev/null +++ b/Pods/Cuckoo/run @@ -0,0 +1,112 @@ +#!/usr/bin/env bash + +SCRIPT_PATH="$(cd "$(dirname "$0")" && pwd)" +FILE_NAME="cuckoo_generator" +FILE_PATH="$SCRIPT_PATH/$FILE_NAME" +GREP_OPTIONS="" + +function perform_curl { + if [[ ! -z "$GITHUB_ACCESS_TOKEN" ]]; then + CURL_OPTIONS=(-H "Authorization: token $GITHUB_ACCESS_TOKEN") + fi + + DOWNLOAD_URL=$(curl "${CURL_OPTIONS[@]}" "$1" | grep -oe '"browser_download_url":\s*"[^" ]*"' | grep -oe 'http[^" ]*' | grep "$FILE_NAME" | head -1) + + if [[ -z "$DOWNLOAD_URL" ]]; then + echo "Error: Failed to fetch download URL for the Cuckoo Generator." + exit 1 + else + echo "Downloading Cuckoo Generator from URL: $DOWNLOAD_URL" + curl "${CURL_OPTIONS[@]}" -Lo "$FILE_PATH" "$DOWNLOAD_URL" + fi +} + +function download_generator { + if [[ "$1" = "latest" ]]; then + echo "Downloading latest version..." + perform_curl "https://api.github.com/repos/Brightify/Cuckoo/releases/latest" + else + echo "Downloading version $1..." + perform_curl "https://api.github.com/repos/Brightify/Cuckoo/releases/tags/$1" + fi + chmod +x "$FILE_NAME" +} + +function build_generator { + pushd "$SCRIPT_PATH" + if [[ ! -z "$1" ]]; then + download_generator "$1" + else + if [[ -d "$SCRIPT_PATH/Generator" ]]; then + echo "Building..." + ./build_generator + if [[ "$?" -ne 0 ]]; then + echo "Build seems to have failed for some reason. Please file an issue on GitHub." + exit 1 + fi + mv "$SCRIPT_PATH/Generator/.build/release/$FILE_NAME" "$FILE_PATH" + else + echo "Couldn't build. Generator source code not found. (expected in the 'Generator' directory)" + download_generator "$2" + fi + fi + popd +} + +echo "Script path: $SCRIPT_PATH" + +# parse arguments +POSITIONAL=() +while [[ $# -gt 0 ]] +do +case $1 in + -d|--download) + if [[ "$2" = "latest" ]]; then + DOWNLOAD="latest" + shift + else + DOWNLOAD=$(echo "$2" | grep -e "\d\d*\.\d\d*\.\d\d*") + if [[ ! -z $DOWNLOAD ]]; then + shift + else + DOWNLOAD="latest" + fi + fi + shift + ;; + + -c|--clean) + CLEAN=1 + echo "Performing clean build." + shift + ;; + + *) + POSITIONAL+=("$1") # save it in an array for later + shift + ;; +esac +done +set -- "${POSITIONAL[@]}" # restore positional parameters + +if [[ ! -e "$FILE_PATH" ]] || [[ ! -z "$CLEAN" ]]; then + echo "No Cuckoo Generator found." + build_generator "$DOWNLOAD" +fi + +INPUT_FILES="" +if [[ "$#" > 0 ]]; then + INPUT_FILES=$(printf '%q ' "$@") +fi + +if [[ -z "$SCRIPT_INPUT_FILE_COUNT" ]]; then + SCRIPT_INPUT_FILE_COUNT=0 +fi + +for (( i=0; i<"$SCRIPT_INPUT_FILE_COUNT"; i++ )) +do + INPUT_FILE="SCRIPT_INPUT_FILE_$i" + INPUT_FILES+=" $(printf '%q' "${!INPUT_FILE}")" +done + +echo $INPUT_FILES | xargs "$FILE_PATH" diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 78980ae3501605e44596d17081c0eb5fe64386ab..55ea3583f84da03a57acc3952462c1bc06f3c8d2 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -5,6 +5,9 @@ PODS: - AppAuth/Core (1.3.0) - AppAuth/ExternalUserAgent (1.3.0) - BZipCompression (1.0.2) + - Cuckoo (1.3.2): + - Cuckoo/Swift (= 1.3.2) + - Cuckoo/Swift (1.3.2) - FrameAccessor (1.3.2) - GTMAppAuth (1.0.0): - AppAuth/Core (~> 1.0) @@ -25,6 +28,7 @@ PODS: DEPENDENCIES: - AppAuth - BZipCompression + - Cuckoo - GTMAppAuth - KeychainAccess - mailcore2-ios (from `https://github.com/MailCore/mailcore2.git`, branch `master`) @@ -37,6 +41,7 @@ SPEC REPOS: trunk: - AppAuth - BZipCompression + - Cuckoo - FrameAccessor - GTMAppAuth - GTMSessionFetcher @@ -64,6 +69,7 @@ CHECKOUT OPTIONS: SPEC CHECKSUMS: AppAuth: 73574f3013a1e65b9601a3ddc8b3158cce68c09d BZipCompression: e0f96508e60eb93b5f5d4c7de1eb3dd0ac4f9ae9 + Cuckoo: 57f71c6616b6b08cd9fe27f803da056fb619ff3e FrameAccessor: 0f7ba6ce37be9a5d0302a27c731dca70af8d438b GTMAppAuth: 4deac854479704f348309e7b66189e604cf5e01e GTMSessionFetcher: cea130bbfe5a7edc8d06d3f0d17288c32ffe9925 @@ -74,6 +80,6 @@ SPEC CHECKSUMS: Travellib: 819ccc356d19fdaf6f0b3c89db069d34aa6c3ec9 VENTokenField: 5a19b838fb97f040e3d4c93f584b4adeaf3fc1ee -PODFILE CHECKSUM: 45a5974132c11f7d67770b26136f69bc87d99bec +PODFILE CHECKSUM: a0e2b9d269dae873c01f9b28257284bc7add6675 COCOAPODS: 1.9.0 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 403502b4736210b1fb2ef505bdf3f2bfca5bd1d2..77fe07b01de0f71cdb75b9f2136e89302d697fff 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -19,180 +19,217 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 00ED98E2BF6BC5F6BD8616333B71CBAF /* OIDErrorUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 9203FEFA2C3BDE7D313F707DDC5A4AEF /* OIDErrorUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 0277827FBDE9674CAF5D6DA3E3BE10BE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */; }; - 0441B3E976E5F55E22731AECFF0DBA88 /* Keychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB2D938FDA3C76F75226134BF4979479 /* Keychain.swift */; }; - 0519155BD70E7E30BE766196EF15F362 /* OIDExternalUserAgentCatalyst.m in Sources */ = {isa = PBXBuildFile; fileRef = FC1AB9AC5221A6F6931C343B1C498068 /* OIDExternalUserAgentCatalyst.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 07868A191DF65D93209DA3E2667A28AF /* GTMAppAuth-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CB1C03A5A2D1256E867129F172E82B60 /* GTMAppAuth-dummy.m */; }; - 08485C03156E3B593F5A289FAB60A64D /* OIDServiceDiscovery.m in Sources */ = {isa = PBXBuildFile; fileRef = 016072065A47B08930E7149640E8F4FA /* OIDServiceDiscovery.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 098C91EBE96180408FE9DEB2A2C5DD7D /* OIDIDToken.m in Sources */ = {isa = PBXBuildFile; fileRef = ABAC06D9A4AEE4870F66E68A898BBA82 /* OIDIDToken.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 0A7E38591E36220E41CF19F6D767BC7D /* OIDAuthorizationRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 933054D9A7159070442A0CEA1B73EC48 /* OIDAuthorizationRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0AD3CCB00F7675F1F5F2647F4F002D06 /* OIDClientMetadataParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = BE5F1DA905F115845996776D84B8FF47 /* OIDClientMetadataParameters.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0C29922FEB7AA207FDA70981C0598AC3 /* OIDExternalUserAgentCatalyst.h in Headers */ = {isa = PBXBuildFile; fileRef = 7738F675485A6F2C18B712ADDBD27A2E /* OIDExternalUserAgentCatalyst.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0C64685123BA1F367989EB38C867B387 /* OIDAuthorizationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = F10E4DB412C75E78AFB189C9C25785AB /* OIDAuthorizationResponse.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 107F60DF0C0A4A4C2F1DF8C192178392 /* OIDExternalUserAgentIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F42FEB9A389EF0952693B96AB86006E /* OIDExternalUserAgentIOS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1279A7D4AFD743EAE9C1A4E623AB4D07 /* OnboardingContentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F0D9DE892F23ECF085B82D721BE82319 /* OnboardingContentViewController.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 13F5AC8BF52E2FBBE4748CE92282CBF7 /* OIDIDToken.h in Headers */ = {isa = PBXBuildFile; fileRef = E554FE711888449EF53E83E9650DD098 /* OIDIDToken.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14064EC19074EE9BF32B01162E156BA8 /* OIDExternalUserAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = BDE7B71BBA04BF11760707D3FEC689A2 /* OIDExternalUserAgent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1468D8CC4C06C12B5F0E605782808EED /* Fingertips.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EAE894AE1E9FFD121747A63C5C17841 /* Fingertips.swift */; }; - 165E2AAA27EEC41B222D6955A1DA11D6 /* Travellib-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C4FFFE56168C80BC305D6A5034395B28 /* Travellib-dummy.m */; }; - 16DFE7FBCACF067650DA05FC1BE73686 /* OIDEndSessionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 554CA0274B71B1E15A8911D0C7F71C5C /* OIDEndSessionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 16F363AFF603D0F68FB40D82D3EB4CCB /* OIDServiceDiscovery.h in Headers */ = {isa = PBXBuildFile; fileRef = 70A76CF2E3098D1BC68B9BBE0E40B2CB /* OIDServiceDiscovery.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 00ED98E2BF6BC5F6BD8616333B71CBAF /* OIDErrorUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = CD2B9B8D717A06DA109133098F21EADF /* OIDErrorUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 01509AC61FF5C88DB5E7C2EC1A23867A /* Pods-enzevalos_iphone-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8FA5C77FCB32827825B3F195D9EBFF /* Pods-enzevalos_iphone-dummy.m */; }; + 0277827FBDE9674CAF5D6DA3E3BE10BE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00315874469411B38E4024828A4A4C3 /* Foundation.framework */; }; + 0441B3E976E5F55E22731AECFF0DBA88 /* Keychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E1CD8BD5AFA4254EA69F190A23EE768 /* Keychain.swift */; }; + 0519155BD70E7E30BE766196EF15F362 /* OIDExternalUserAgentCatalyst.m in Sources */ = {isa = PBXBuildFile; fileRef = 22A23C301ED9674E4A8ED2E5FFC36743 /* OIDExternalUserAgentCatalyst.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 05934B42EDD9F2B08AD10D438DD11FA9 /* ToBeStubbedProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD5F45794EC6F7EABC1CC6EC645D4F94 /* ToBeStubbedProperty.swift */; }; + 07868A191DF65D93209DA3E2667A28AF /* GTMAppAuth-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0751EA7F6DFA2C912C72A189ED7FB56D /* GTMAppAuth-dummy.m */; }; + 0819810A209662632EB478991DAD9EFD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00315874469411B38E4024828A4A4C3 /* Foundation.framework */; }; + 08485C03156E3B593F5A289FAB60A64D /* OIDServiceDiscovery.m in Sources */ = {isa = PBXBuildFile; fileRef = 48194220CF8A2022CE0B9B9540E9463F /* OIDServiceDiscovery.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 098C91EBE96180408FE9DEB2A2C5DD7D /* OIDIDToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 243426059A979572E45B8B7C303E9769 /* OIDIDToken.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 09EB593EF2C0E6670EDE7E28F706CC96 /* DefaultValueRegistry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 923CC5D1B4DCF5E2E91666531E442051 /* DefaultValueRegistry.swift */; }; + 0A7E38591E36220E41CF19F6D767BC7D /* OIDAuthorizationRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A80E28E4A56B2E4848C6158873D9F53B /* OIDAuthorizationRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0AD3CCB00F7675F1F5F2647F4F002D06 /* OIDClientMetadataParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = C1572F13FC72146DD497872DDDBDD4B3 /* OIDClientMetadataParameters.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0C29922FEB7AA207FDA70981C0598AC3 /* OIDExternalUserAgentCatalyst.h in Headers */ = {isa = PBXBuildFile; fileRef = BDE2B28359EBCA12CEEDC55580E04B00 /* OIDExternalUserAgentCatalyst.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0C64685123BA1F367989EB38C867B387 /* OIDAuthorizationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C637C9CD9FE9DDA7F6E5A6648A8805A8 /* OIDAuthorizationResponse.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 0CDD9C76DC7D159907B08D77221F8C27 /* ToBeStubbedReadOnlyProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB2B3C909D326BCA5CD4EA2CC43DA469 /* ToBeStubbedReadOnlyProperty.swift */; }; + 107F60DF0C0A4A4C2F1DF8C192178392 /* OIDExternalUserAgentIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = E8BB0E4496456DFED3924A03A8D30B90 /* OIDExternalUserAgentIOS.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1279A7D4AFD743EAE9C1A4E623AB4D07 /* OnboardingContentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C038FB2DF4A52AFDBAD7934AB908E104 /* OnboardingContentViewController.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 13F5AC8BF52E2FBBE4748CE92282CBF7 /* OIDIDToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 527A81C20F5296CAB524D7901B9B2F17 /* OIDIDToken.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14064EC19074EE9BF32B01162E156BA8 /* OIDExternalUserAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 96231D29A4220BC5232593AFF8DA8D6C /* OIDExternalUserAgent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1468D8CC4C06C12B5F0E605782808EED /* Fingertips.swift in Sources */ = {isa = PBXBuildFile; fileRef = 687F037F64F99721265F686D5A282FB6 /* Fingertips.swift */; }; + 165E2AAA27EEC41B222D6955A1DA11D6 /* Travellib-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F90C851DA8EEB78DA89C1A234538E426 /* Travellib-dummy.m */; }; + 16DFE7FBCACF067650DA05FC1BE73686 /* OIDEndSessionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B83487CC87B3A97D5B32F08046EAF02 /* OIDEndSessionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 16F363AFF603D0F68FB40D82D3EB4CCB /* OIDServiceDiscovery.h in Headers */ = {isa = PBXBuildFile; fileRef = 07AD4BB7C2A6405E45E18ECCD1E93D29 /* OIDServiceDiscovery.h */; settings = {ATTRIBUTES = (Public, ); }; }; 19ACC040B4DB64F63704D2D3E83C1D16 /* Pods-enzevalos_iphoneUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CEEE8AFC410D71BD3AF0448116EDB2B /* Pods-enzevalos_iphoneUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 19B49E9D25674FD49D6819A68C8B48D8 /* GTMSessionFetcherLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = 52313C74F1FA2A71711CF7C3176385DE /* GTMSessionFetcherLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1B4111CA3F20CBA0055B38B479F0D893 /* OIDRegistrationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E19C9E904D0BFA87A7B6EEC3242A0F7 /* OIDRegistrationResponse.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 1B64C10EBDDBD43A80F94E828A792236 /* OIDAuthorizationService+IOS.m in Sources */ = {isa = PBXBuildFile; fileRef = 561320071D216FA121C69E291F45FBC4 /* OIDAuthorizationService+IOS.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 1BEE7305B5FE38784BE7A330A2068722 /* OIDTokenResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = A5902427DB5BB132201F30B1CD99DE83 /* OIDTokenResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1C61400E88FC471BECD871E263FFA844 /* GTMSessionFetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AE6F30A58188AEAAB7B1D37DAD513A2 /* GTMSessionFetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1D342C5C91EDC363D428C0E6C36FE2BD /* OIDTokenRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = FAE12F41E2C284A754D442AF01C917CB /* OIDTokenRequest.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 1DB10B00F2A9106E0478CBBAAC1C1A06 /* OIDURLSessionProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 09DBB759DB57572B42F7B51E2E6255DF /* OIDURLSessionProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E211CDC2BAE7593D728F759EEC2F31B /* VENToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 482816C82337F85E7552A426F98291D6 /* VENToken.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 1EED830C3A30B34BEFB6955DDC058CCE /* OIDServiceConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 46BDC68A51B00FC49B4AEB7C99945976 /* OIDServiceConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1FB6D35FE5CBE63879DB3C5B19BC04F6 /* OIDEndSessionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C176456C5066793C11BF7EB6A7D428E8 /* OIDEndSessionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 20675EBAF2BF52C64AED4F67E55ADF6C /* OIDScopes.m in Sources */ = {isa = PBXBuildFile; fileRef = 38D116E4C6A1662008CB042B7CA55B0E /* OIDScopes.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 223934196751F58B95755FAFAB8998D0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */; }; - 243C0608B35874A4CAB88E3951BAD348 /* GTMReadMonitorInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = DB9164F2B86D1FAAD979FCB9C063818C /* GTMReadMonitorInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 257D6C324E94603DC4CF783F7EBB930D /* Travellib.h in Headers */ = {isa = PBXBuildFile; fileRef = C99562DA1BA3678AC5B40A4FA0662E9A /* Travellib.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 26C2EA7526DBA630B667D3CA43E98AFA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */; }; + 19B49E9D25674FD49D6819A68C8B48D8 /* GTMSessionFetcherLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = C8627BC341E0F44D308CC55404A4E594 /* GTMSessionFetcherLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1B4111CA3F20CBA0055B38B479F0D893 /* OIDRegistrationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C190BB01087AAE9DED10CB2BD6AA3DF /* OIDRegistrationResponse.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 1B64C10EBDDBD43A80F94E828A792236 /* OIDAuthorizationService+IOS.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E29593864817BC1F13489411243C9EE /* OIDAuthorizationService+IOS.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 1BEE7305B5FE38784BE7A330A2068722 /* OIDTokenResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = F31B4DC40404D8F7DC282F1893C8E00E /* OIDTokenResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C61400E88FC471BECD871E263FFA844 /* GTMSessionFetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = D10363976DDDD81BB53B16C7B2688A67 /* GTMSessionFetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1D342C5C91EDC363D428C0E6C36FE2BD /* OIDTokenRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E67C57D34C362A1FDD3E8BD24271AE2 /* OIDTokenRequest.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 1DB10B00F2A9106E0478CBBAAC1C1A06 /* OIDURLSessionProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FA018B86EB60FDBB0C08958F94741D7 /* OIDURLSessionProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E211CDC2BAE7593D728F759EEC2F31B /* VENToken.m in Sources */ = {isa = PBXBuildFile; fileRef = B396CE8883C617B94FE71985C6D33EE5 /* VENToken.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 1EED830C3A30B34BEFB6955DDC058CCE /* OIDServiceConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 15C6A6B73AB1BC2B96923A3A082049E7 /* OIDServiceConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1FB6D35FE5CBE63879DB3C5B19BC04F6 /* OIDEndSessionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C3B58F66285619CEB4EE2F1C89756CD7 /* OIDEndSessionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20675EBAF2BF52C64AED4F67E55ADF6C /* OIDScopes.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C9E17B1EA6E0883768F2B60C32C9129 /* OIDScopes.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 223934196751F58B95755FAFAB8998D0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00315874469411B38E4024828A4A4C3 /* Foundation.framework */; }; + 243C0608B35874A4CAB88E3951BAD348 /* GTMReadMonitorInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EB5BB3A09EC294392D2577706DFE5C9 /* GTMReadMonitorInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 257D6C324E94603DC4CF783F7EBB930D /* Travellib.h in Headers */ = {isa = PBXBuildFile; fileRef = A19BC50D5D9E2EB11744BA98C8EFCBBB /* Travellib.h */; settings = {ATTRIBUTES = (Public, ); }; }; 27A5D6EE40674AEAFC8431F8BE03F982 /* Pods-enzevalos_iphoneTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 05FED6C17D01D092149BADD934665237 /* Pods-enzevalos_iphoneTests-dummy.m */; }; - 2B3A92E67B1F57678F0C96DA40F463E1 /* Pods-enzevalos_iphone-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DB27841045A60F2B6D9F6931638805F /* Pods-enzevalos_iphone-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2B41BE7D82A019F8B48C69C456D70661 /* OIDTokenResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7DCBF585DFC4B11B8D68278ED69BBA /* OIDTokenResponse.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 2CBBDA861EBCCD698E1C9A8476F7E30D /* FrameAccessor-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E4D106EBB62B605C65BF8064C967930 /* FrameAccessor-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D56A3ED5FE2959E984D12CC08761F44 /* GTMSessionFetcher-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 674CE0F81C1A946D6ED46C72D6400D3B /* GTMSessionFetcher-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2E356B86DD5FA88E5BE3B79A77A6AFCC /* OIDFieldMapping.h in Headers */ = {isa = PBXBuildFile; fileRef = 63708C883348198F13D9B21F5598C091 /* OIDFieldMapping.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 34B8A9F977E96F7D39DDEF48038BCA4D /* GTMSessionFetcherLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = 20ECCD47795BCDA13A64FC9B51373208 /* GTMSessionFetcherLogging.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 382BDF70A64141016D0249262ECF58AF /* Traveler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BD11B794D0910529D4D3E9DAAEA5ABE /* Traveler.swift */; }; - 39DDFC3157A616235C548673C91887B0 /* GTMSessionUploadFetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 72AC19B11B05D953A9B5F507BD57C754 /* GTMSessionUploadFetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BA0FC4261A4A1C2E8DCB2483A78D587 /* OIDExternalUserAgentIOS.m in Sources */ = {isa = PBXBuildFile; fileRef = EFACF925EE2E92A1B6DD9BEA5857E5EA /* OIDExternalUserAgentIOS.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 3C8870E8F114DFDC6F6A8DFC2CC857DE /* QAKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B3E4D7EDA2A85AD6A8BE02F53C60B97 /* QAKit-dummy.m */; }; - 3ECCB4EBCB0084AE39250C64FAAE288F /* BZipCompression.h in Headers */ = {isa = PBXBuildFile; fileRef = 442DDB418F0A559D3ECF8D3FD5B8CB0C /* BZipCompression.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3F3030B9E794EFFF2A0BBE805DC949C7 /* OnboardingViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = BEDD0295DDFC4E913F8F17FC72BE9EAA /* OnboardingViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3FB1895B8612021D170E69808B1F210B /* OIDError.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C14EBE32FF71D7D0B8A1A70EE21DE87 /* OIDError.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 407EE03CA9F9DD9BA3787ADE26DED9D9 /* OIDFieldMapping.m in Sources */ = {isa = PBXBuildFile; fileRef = 706D4680DF0B5965684DB92C2108B0DB /* OIDFieldMapping.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 42A0943E03D240AE828EB94E8BBCE22A /* Fingertips+Window.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD928C79AEEBFD8A3CA7FF0E3C387269 /* Fingertips+Window.swift */; }; - 43BBFEA645B8A3376ED2FE83A987569C /* VENTokenField.h in Headers */ = {isa = PBXBuildFile; fileRef = CD8EA6643BF36EF31B907F5B23F154D6 /* VENTokenField.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 457616CD5124B14E6E5F25621C6C99B3 /* Onboard-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B250E0C471611B7897A2D7B327B8AF54 /* Onboard-dummy.m */; }; - 4609E25A2C08EDA3E3729934BC90DCDE /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 19636C711461DE4E287E9E7F9BD70B72 /* SafariServices.framework */; }; - 4AEB48FE18565A59266480250E7C3FEA /* KeychainAccess-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A9246F06F478B687C6D9256097D22798 /* KeychainAccess-dummy.m */; }; - 4BFAFA24E0C8F3F005D56A59ECDD06C6 /* GTMReadMonitorInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = F74BBD4765E72678BFB51DA9EE5F1205 /* GTMReadMonitorInputStream.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 4C81DE9C0ECC20F948AC7D14E50CA7AF /* GTMSessionFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C70D1D809477133E739575C6ABCFC5A /* GTMSessionFetcher.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 4CC4117128BC4E1D4246BF015C512D78 /* GTMGatherInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C125AC1C4E60C99F23511B122196D5B /* GTMGatherInputStream.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 4E03547F2FCFE772ACCDA5A0F2861A21 /* GTMAppAuth-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A906906ACD13737E1CD5F11DA4916911 /* GTMAppAuth-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F9A91152724853F307C36AF26766172 /* VENBackspaceTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = A2CFD121D00A58CF6248B0B67B4C21C1 /* VENBackspaceTextField.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 51C1006458452293B1E6825C3AD4AF5B /* VENTokenField.m in Sources */ = {isa = PBXBuildFile; fileRef = 16F05544154830B522FB28E7B036EC22 /* VENTokenField.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 520E7F7766657559532584A485C7A578 /* VENBackspaceTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = DB2B78E76F7C6629C53D6E81B2F229BC /* VENBackspaceTextField.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 524D673C47E9793748B26149C0B02A52 /* ScrollViewFrameAccessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 93700687B696D85BCA75AE80EE915AC3 /* ScrollViewFrameAccessor.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 527B5C1B1C9E916C516A73E93CA8BB62 /* GTMSessionFetcher.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E0B553A90A352C771F96BF70DC39A6FC /* GTMSessionFetcher.framework */; }; - 5720E1971A53C97C87612680BF75573C /* ViewFrameAccessor.m in Sources */ = {isa = PBXBuildFile; fileRef = D27799DC004ABE7A6128F1AECBD83CD7 /* ViewFrameAccessor.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 5ABE7986FA4797713C05E7C5E06F4FEC /* BZipCompression-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 337F80367D57E3819AF7BB951F33D86D /* BZipCompression-dummy.m */; }; - 5AE1053AE11E9708D364186601238FE9 /* OIDExternalUserAgentSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B5353496874780BF797D079DE53C8DF /* OIDExternalUserAgentSession.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5AFF655E9A397FA2C7AD463AAA8C53AA /* OIDURLQueryComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = E1FECE55F390618D69CA1ED1A06DB671 /* OIDURLQueryComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5CB803637A683814ECB5B4FC874F5993 /* VENTokenField-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F721AC3998A798DFED63370F80838ADD /* VENTokenField-dummy.m */; }; - 5D4BB578718CC33E5E14170F3E04B696 /* GTMAppAuth.h in Headers */ = {isa = PBXBuildFile; fileRef = C577D54F7871A6143550BD831FE2DE0C /* GTMAppAuth.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 61D9C8902B2B3C97CD30023D322B8BAB /* GTMSessionFetcherService.h in Headers */ = {isa = PBXBuildFile; fileRef = 134D6B77949CD568B51F418595305440 /* GTMSessionFetcherService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 63ABF913ADF9CD99CE45F6ED1C0896CD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */; }; - 68109C8DD904E22605812FE1C5DD5C7C /* OIDTokenUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 2790A34ED6899F5EA8940B5FE0B00FE7 /* OIDTokenUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 289773B79897998000B11B98A6870B7E /* CuckooFunctions.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB5D07F27A29B3600E6908942BB242B4 /* CuckooFunctions.swift */; }; + 29549D82829F35DCCB695A901459FC5F /* ArgumentCaptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D55DAFE845DCF43D4A0C029F5C00AB8D /* ArgumentCaptor.swift */; }; + 2B41BE7D82A019F8B48C69C456D70661 /* OIDTokenResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BA429DFF85D43D55FED909CC73F39E4 /* OIDTokenResponse.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 2CBBDA861EBCCD698E1C9A8476F7E30D /* FrameAccessor-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 85F5D6FFEDA1E30E9506AFDCDF5E0966 /* FrameAccessor-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2D56A3ED5FE2959E984D12CC08761F44 /* GTMSessionFetcher-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B5CB63AB634A44895C3952B72C2CBC8 /* GTMSessionFetcher-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2DBD05BF712364B05E22EDCA28D2615E /* Stub.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84F599F5B705576EAADB89D05A974323 /* Stub.swift */; }; + 2E1B0AC060EAA9E1BCE21C18F53542C5 /* StubFunctionThenCallRealImplementationTrait.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5CEB2B2F00C043803A334F01BE67A8E /* StubFunctionThenCallRealImplementationTrait.swift */; }; + 2E356B86DD5FA88E5BE3B79A77A6AFCC /* OIDFieldMapping.h in Headers */ = {isa = PBXBuildFile; fileRef = E1DDD7716E859043D3FC6BFA0BE6EADE /* OIDFieldMapping.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3106268F8316F5222052BFAF69C0622D /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 705422CFDAD1FA4D22E16EE08158FD35 /* XCTest.framework */; }; + 32E959D5213239CF0D84BD498775EBD9 /* StubNoReturnThrowingFunction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B384B192F9AD9232B8EE93DF9F3E4C8B /* StubNoReturnThrowingFunction.swift */; }; + 34B8A9F977E96F7D39DDEF48038BCA4D /* GTMSessionFetcherLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = 6090D495EFC3CA00AF405EF994B7C467 /* GTMSessionFetcherLogging.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 382BDF70A64141016D0249262ECF58AF /* Traveler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C070C653D373DE52170DDB177BC9BB7 /* Traveler.swift */; }; + 39DDFC3157A616235C548673C91887B0 /* GTMSessionUploadFetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 0207A04F8F7A878FA6A52B796E5782A3 /* GTMSessionUploadFetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3AF45799AE9E593A53E23EDF487DAF1B /* StubFunctionThenThrowingTrait.swift in Sources */ = {isa = PBXBuildFile; fileRef = 097317A151EF11ABA1DB263F59660077 /* StubFunctionThenThrowingTrait.swift */; }; + 3BA0FC4261A4A1C2E8DCB2483A78D587 /* OIDExternalUserAgentIOS.m in Sources */ = {isa = PBXBuildFile; fileRef = 1725A04C86652A82953A352C74D3C801 /* OIDExternalUserAgentIOS.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 3C8870E8F114DFDC6F6A8DFC2CC857DE /* QAKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 469BCDE5C0DA7C2FB4CFF856DC7929B6 /* QAKit-dummy.m */; }; + 3E46C65DF524C695EE4AEA5560D6AE6E /* Pods-enzevalos_iphone-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DB27841045A60F2B6D9F6931638805F /* Pods-enzevalos_iphone-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3ECCB4EBCB0084AE39250C64FAAE288F /* BZipCompression.h in Headers */ = {isa = PBXBuildFile; fileRef = 747DECACF006ED085F4C399389134625 /* BZipCompression.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3F3030B9E794EFFF2A0BBE805DC949C7 /* OnboardingViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BB14C4DA00AD3A53EB6A0FFA08846B9 /* OnboardingViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3FB1895B8612021D170E69808B1F210B /* OIDError.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED2898D6E531C41C0E487368F14A0CB /* OIDError.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 407EE03CA9F9DD9BA3787ADE26DED9D9 /* OIDFieldMapping.m in Sources */ = {isa = PBXBuildFile; fileRef = 63B10FA6C3A3B395B547876BF91719B7 /* OIDFieldMapping.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 42A0943E03D240AE828EB94E8BBCE22A /* Fingertips+Window.swift in Sources */ = {isa = PBXBuildFile; fileRef = E34E3B18DA0B2DF74509B745B7990004 /* Fingertips+Window.swift */; }; + 43BBFEA645B8A3376ED2FE83A987569C /* VENTokenField.h in Headers */ = {isa = PBXBuildFile; fileRef = 7315FEC668B7848A2C7044E00404AC6A /* VENTokenField.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 457616CD5124B14E6E5F25621C6C99B3 /* Onboard-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 75C09DB4587E49C59C9A787EDF639AAC /* Onboard-dummy.m */; }; + 4609E25A2C08EDA3E3729934BC90DCDE /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A58381CB09118CEC6F03E1B66D7051C /* SafariServices.framework */; }; + 4AEB48FE18565A59266480250E7C3FEA /* KeychainAccess-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5542169F691E5050732ADEF821CBD9F9 /* KeychainAccess-dummy.m */; }; + 4BFAFA24E0C8F3F005D56A59ECDD06C6 /* GTMReadMonitorInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AF62B6AA5F939CEE4310DA9FFD15695 /* GTMReadMonitorInputStream.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 4C81DE9C0ECC20F948AC7D14E50CA7AF /* GTMSessionFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 755706958E771FD2085D19DF83D7A289 /* GTMSessionFetcher.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 4CC4117128BC4E1D4246BF015C512D78 /* GTMGatherInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = ED822F1E8982AC5B1983E8BB47D2984A /* GTMGatherInputStream.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 4DC758B228965072C4F3EFA007802AF3 /* Matchable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657567CCFA7BA065F5FC91186906F829 /* Matchable.swift */; }; + 4E03547F2FCFE772ACCDA5A0F2861A21 /* GTMAppAuth-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CFF68B259F8554E3EDA78C5403D3214 /* GTMAppAuth-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4F9A91152724853F307C36AF26766172 /* VENBackspaceTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 314380F0A390219BB89B203F9BB04229 /* VENBackspaceTextField.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 51C1006458452293B1E6825C3AD4AF5B /* VENTokenField.m in Sources */ = {isa = PBXBuildFile; fileRef = C5F6C786B1B41478BF23B0109AAACBD2 /* VENTokenField.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 520E7F7766657559532584A485C7A578 /* VENBackspaceTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = DF22771BE8B3058FF80267C8F05AB407 /* VENBackspaceTextField.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 524D673C47E9793748B26149C0B02A52 /* ScrollViewFrameAccessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 27C703AE0AD959B9A4FCDAF6CCDB28CD /* ScrollViewFrameAccessor.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 527B5C1B1C9E916C516A73E93CA8BB62 /* GTMSessionFetcher.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 74970A1C026D191553C1562383409A9F /* GTMSessionFetcher.framework */; }; + 5720E1971A53C97C87612680BF75573C /* ViewFrameAccessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 39E474585CC3193BC8233801066574AF /* ViewFrameAccessor.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 57B06E9633457D580E37B0D2A27CF582 /* CallMatcherFunctions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B563EE9A8FA8791C3A46068933332CD /* CallMatcherFunctions.swift */; }; + 5ABE7986FA4797713C05E7C5E06F4FEC /* BZipCompression-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F37F625FCD2CA82E4476DAFA69CDC2 /* BZipCompression-dummy.m */; }; + 5AE1053AE11E9708D364186601238FE9 /* OIDExternalUserAgentSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 83AD136B5A2B5B4F38CB366488B86A9E /* OIDExternalUserAgentSession.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5AFF655E9A397FA2C7AD463AAA8C53AA /* OIDURLQueryComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = AAF9D8E3ED1ECA1F1D0BA2214C993267 /* OIDURLQueryComponent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5CB803637A683814ECB5B4FC874F5993 /* VENTokenField-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 829380389944E01CC8008B5281E3C350 /* VENTokenField-dummy.m */; }; + 5D4BB578718CC33E5E14170F3E04B696 /* GTMAppAuth.h in Headers */ = {isa = PBXBuildFile; fileRef = BF4247CAD7DB84810BCB9BBC742A8EDE /* GTMAppAuth.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6083C03F9B2DAAEB703217E632D07823 /* StubFunctionThenReturnTrait.swift in Sources */ = {isa = PBXBuildFile; fileRef = 559879B50DBE2EE91AADEAD3D9038A2A /* StubFunctionThenReturnTrait.swift */; }; + 612B3045C731B08436ABFE967B276D67 /* MockBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDC2295EB4E37FACE4504BBF99182969 /* MockBuilder.swift */; }; + 618EE464AF3F5AE0E9F55A68B5AE2599 /* ParameterMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FF8ED6665715871581165CB8FF421D1 /* ParameterMatcher.swift */; }; + 61D9C8902B2B3C97CD30023D322B8BAB /* GTMSessionFetcherService.h in Headers */ = {isa = PBXBuildFile; fileRef = B6FF3A86D88CEA574256E6539F72DD38 /* GTMSessionFetcherService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6300672DE2AF4F9C1330C31FDA807768 /* StubCall.swift in Sources */ = {isa = PBXBuildFile; fileRef = C994AAB934A4AA36DCC8CACD3B09A4FE /* StubCall.swift */; }; + 63ABF913ADF9CD99CE45F6ED1C0896CD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00315874469411B38E4024828A4A4C3 /* Foundation.framework */; }; + 6693FAABCE6379B8DE510FFD2E5C3BE9 /* VerifyProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63FAA15069F0BEC65AF59D612757B780 /* VerifyProperty.swift */; }; + 68109C8DD904E22605812FE1C5DD5C7C /* OIDTokenUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E8DBB02A15FE91A82848798F1D0F3A6 /* OIDTokenUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; 6849DC56E3123413B2518BCB3DA6C45D /* Pods-enzevalos_iphoneUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8896418F27195BE4E0C4393ECCD8BAF3 /* Pods-enzevalos_iphoneUITests-dummy.m */; }; - 6CCC497FE08F606E8BDEAE6372E143BD /* OIDError.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F7B312431BAE7D8D029378384B0E3DB /* OIDError.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6DE8534C3E7EC0DF67E131640136A39E /* GTMKeychain_iOS.m in Sources */ = {isa = PBXBuildFile; fileRef = 98B07AE2EB6344D4451D4A842191E69F /* GTMKeychain_iOS.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 6ED62EE668EA1BC7AF8A261F91B06397 /* GTMAppAuthFetcherAuthorization+Keychain.m in Sources */ = {isa = PBXBuildFile; fileRef = 31FF25875334920BA016972E8E24CE0E /* GTMAppAuthFetcherAuthorization+Keychain.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 6EF913EE430B7BE1F73E434E74C7B632 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */; }; - 7113AB5F4602AE206ADAD7A4D1947544 /* OIDDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 08708264FD12070B75BBC2ABFF77FB48 /* OIDDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 71BCEC30B9A618753E543ED8C606B9F8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */; }; - 7317447C71DFB7BDE8CCE78D2EACBE16 /* OIDErrorUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = C43518A8E482456DC1401BE54A29C754 /* OIDErrorUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 768E9F10B2F14F884A426141AB00518E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */; }; - 77F8771176D9BE429820216FFD687D1B /* AppAuth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84582BE4049BBD1F459F9198789E0602 /* AppAuth.framework */; }; - 7887F7AA5B1214BF90AA09CE6CC4AECC /* GTMAppAuthFetcherAuthorization+Keychain.h in Headers */ = {isa = PBXBuildFile; fileRef = 91E3D2FE38F402CDBFD63355B3597100 /* GTMAppAuthFetcherAuthorization+Keychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 78F4C27DB317E60B6CBF413BB799D2B8 /* GTMOAuth2KeychainCompatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 45AEF4CF5C9A42E36CDAEB8F05DB553D /* GTMOAuth2KeychainCompatibility.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 796C65298F1272A49806132A613F33A4 /* GTMAppAuthFetcherAuthorization.m in Sources */ = {isa = PBXBuildFile; fileRef = 5291F2E3185809EAD55951A61771A645 /* GTMAppAuthFetcherAuthorization.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 7A8383B54D525F6893CDBF99BCF32682 /* OIDExternalUserAgentRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C86D9121DA96DE9B567D22CCC313E4F1 /* OIDExternalUserAgentRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7ADABD2B23A6A9D09CE89993A0AD99A0 /* OnboardingContentViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E9D57BCD2A161503F77932D55EBE68BE /* OnboardingContentViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7DB587C2A6BD20FDF0B0DE8467E524B0 /* OIDClientMetadataParameters.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CE0DF45C3510006AAF35D82401E76A0 /* OIDClientMetadataParameters.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 7ED4A901D08A7E3920E976412F236617 /* OIDURLQueryComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 94592B63F8D8A1BE6894681463BAD489 /* OIDURLQueryComponent.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 7F99EA6887D99503660FCDF1DD7A3E04 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6886021395E6D8437B5579928B7D335E /* Security.framework */; }; - 800C47580C515349BF81194308E5AE34 /* OIDGrantTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = E551C472A033B2F059A6CF4C1FB377DA /* OIDGrantTypes.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 80DC580A74C68AB80B5A372544822331 /* OIDAuthorizationService.m in Sources */ = {isa = PBXBuildFile; fileRef = 16EBFA3B11A08EDAC85B03F08E2847F4 /* OIDAuthorizationService.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 811DA5D58EFCF7BC873FA3AA371A56F8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */; }; - 86CD47067DBEFB8F1C23653E76AF648A /* BZipCompression-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B2CFFF8D990949EC8D00785A9E6367FC /* BZipCompression-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 87A2AA12423B55AD7791A99D79534D46 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */; }; - 8884F39DF7D77F9D8735DFDB610825A3 /* OIDExternalUserAgentIOSCustomBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = B4D690F2A34DE0994D034B66BD7CA201 /* OIDExternalUserAgentIOSCustomBrowser.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 891BADF70C931D12AF1C3847CFDDC1F5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */; }; - 8953999C7727F2F912F6A737FD0FA0AC /* GTMGatherInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = A1F3B440039486FBAF2F3A9064CC8AD1 /* GTMGatherInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 89D6D723ACD5BA0456E71EFBAA1A447F /* OIDServiceConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 9126F7033BCF5914C8B3FC7EC50B9EB2 /* OIDServiceConfiguration.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 8C497719C7174DF3E283237A05FCCB6B /* OIDScopeUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E8FD10CEE192D4C3C129BEE5D0A3F2F8 /* OIDScopeUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8DD2342949A98F8B328CA82C88F1742D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */; }; - 8EC567570BD62CDAEE948689C1F43AF7 /* OIDRegistrationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AD52F42BC024633ECD042A68C058C8F /* OIDRegistrationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9068783404EFE28290DD88483377A618 /* OIDAuthorizationService.h in Headers */ = {isa = PBXBuildFile; fileRef = 024D68E96B040B50A1E969DE34351C16 /* OIDAuthorizationService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 935771162DF644301DCB001153BE1A4A /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6886021395E6D8437B5579928B7D335E /* Security.framework */; }; - 942404BDADA80A786184D83E4279118A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */; }; - 96B0498670F4E766EC375697D69ACFCD /* GTMSessionFetcherService.m in Sources */ = {isa = PBXBuildFile; fileRef = E62BDFB3D5A4FD5CB7EB634190B5A3FE /* GTMSessionFetcherService.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 97A4CB6762169EE2D67580ED8A09A65C /* OIDEndSessionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A523736F7B57D9E28D69B70DDD84907 /* OIDEndSessionResponse.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 97D061F73A9EC16D15AB779AD9AE7D22 /* OIDScopeUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 79D266FC44AFB762084C11B380D53A4A /* OIDScopeUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 99EB841C4273B8CC2B58DCCD3C520514 /* AppAuth-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FBE2915129ED5A5F54FDFAD91DD0DB7 /* AppAuth-dummy.m */; }; + 6CCC497FE08F606E8BDEAE6372E143BD /* OIDError.h in Headers */ = {isa = PBXBuildFile; fileRef = DFC9E1372EA6944A58FC3AC1325E50B0 /* OIDError.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6DE8534C3E7EC0DF67E131640136A39E /* GTMKeychain_iOS.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A0C0EAF5CA11CE80FA18D33A2492464 /* GTMKeychain_iOS.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 6ED62EE668EA1BC7AF8A261F91B06397 /* GTMAppAuthFetcherAuthorization+Keychain.m in Sources */ = {isa = PBXBuildFile; fileRef = C4CD52A7020A925EF953139F0E2D48D6 /* GTMAppAuthFetcherAuthorization+Keychain.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 6EF913EE430B7BE1F73E434E74C7B632 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00315874469411B38E4024828A4A4C3 /* Foundation.framework */; }; + 7039A51919788691D47C0C606F41DA0D /* Dictionary+matchers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 475B68A678CD68F47F967A093BF7DF96 /* Dictionary+matchers.swift */; }; + 7113AB5F4602AE206ADAD7A4D1947544 /* OIDDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = EF131DD05638F069B9A88386F0EA1014 /* OIDDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 71BCEC30B9A618753E543ED8C606B9F8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00315874469411B38E4024828A4A4C3 /* Foundation.framework */; }; + 7317447C71DFB7BDE8CCE78D2EACBE16 /* OIDErrorUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B41D5A28272AC5626D4883CA65B2C30 /* OIDErrorUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 768E9F10B2F14F884A426141AB00518E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00315874469411B38E4024828A4A4C3 /* Foundation.framework */; }; + 77F8771176D9BE429820216FFD687D1B /* AppAuth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA5B0C2414221D7DE536ACFBC0942FE6 /* AppAuth.framework */; }; + 7887F7AA5B1214BF90AA09CE6CC4AECC /* GTMAppAuthFetcherAuthorization+Keychain.h in Headers */ = {isa = PBXBuildFile; fileRef = B93DCDEE54941D1E92F6F48A8F8C9C5D /* GTMAppAuthFetcherAuthorization+Keychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 78F4C27DB317E60B6CBF413BB799D2B8 /* GTMOAuth2KeychainCompatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = C71B25884D361176E14A02FBA821FFC0 /* GTMOAuth2KeychainCompatibility.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 796C65298F1272A49806132A613F33A4 /* GTMAppAuthFetcherAuthorization.m in Sources */ = {isa = PBXBuildFile; fileRef = C4BE80E742C3FC43C80965F1D3858BD4 /* GTMAppAuthFetcherAuthorization.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 7A8383B54D525F6893CDBF99BCF32682 /* OIDExternalUserAgentRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 66D631D8F017387DCB6D31B02BF775C0 /* OIDExternalUserAgentRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7ADABD2B23A6A9D09CE89993A0AD99A0 /* OnboardingContentViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = EDB87FBB387B3997354493739ACBA506 /* OnboardingContentViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7B685C942F38136D467F6086D2A9C15D /* VerificationProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A5FD2239AF98C3506DDE39D1754BF60 /* VerificationProxy.swift */; }; + 7DB587C2A6BD20FDF0B0DE8467E524B0 /* OIDClientMetadataParameters.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EC66481ADD41C0E318E08C3E2668F77 /* OIDClientMetadataParameters.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 7ED4A901D08A7E3920E976412F236617 /* OIDURLQueryComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = 3032F8C910080F52807454CC58006ACB /* OIDURLQueryComponent.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 7F99EA6887D99503660FCDF1DD7A3E04 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35C3C2F568A40C6382DA00579A1847A6 /* Security.framework */; }; + 800C47580C515349BF81194308E5AE34 /* OIDGrantTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 347269A1E3C274AED04C05BC12E9743F /* OIDGrantTypes.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 80DC580A74C68AB80B5A372544822331 /* OIDAuthorizationService.m in Sources */ = {isa = PBXBuildFile; fileRef = 67D1AE11C49DE424E99F3D3DCD95048A /* OIDAuthorizationService.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 811DA5D58EFCF7BC873FA3AA371A56F8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00315874469411B38E4024828A4A4C3 /* Foundation.framework */; }; + 841D07E543F7645F467D90FDB8B3531C /* StubAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36285088FEA3AB79FA555A6B5B495C23 /* StubAction.swift */; }; + 86CD47067DBEFB8F1C23653E76AF648A /* BZipCompression-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EE1107C90994DDA2009B91EDF80F7F7C /* BZipCompression-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 87A2AA12423B55AD7791A99D79534D46 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00315874469411B38E4024828A4A4C3 /* Foundation.framework */; }; + 87E4BE420171E747C5E7558B64EF18B0 /* StubFunctionThenDoNothingTrait.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A44D6461EF8902029D25738C4F64081 /* StubFunctionThenDoNothingTrait.swift */; }; + 8884F39DF7D77F9D8735DFDB610825A3 /* OIDExternalUserAgentIOSCustomBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = C922F8C1F85078847370F3B8859AEE94 /* OIDExternalUserAgentIOSCustomBrowser.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 891BADF70C931D12AF1C3847CFDDC1F5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00315874469411B38E4024828A4A4C3 /* Foundation.framework */; }; + 8953999C7727F2F912F6A737FD0FA0AC /* GTMGatherInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 345EEE76521DFB84216BC31FFC52EC59 /* GTMGatherInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 89D6D723ACD5BA0456E71EFBAA1A447F /* OIDServiceConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 85E7FF350B0038A764C2927597B1BF95 /* OIDServiceConfiguration.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 8C497719C7174DF3E283237A05FCCB6B /* OIDScopeUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 365537CFFC07C7DD9ED8C6E17E23584D /* OIDScopeUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8DD2342949A98F8B328CA82C88F1742D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00315874469411B38E4024828A4A4C3 /* Foundation.framework */; }; + 8EC567570BD62CDAEE948689C1F43AF7 /* OIDRegistrationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 139FD01A03BDFB5A5A4DCF732EF2D8B5 /* OIDRegistrationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9068783404EFE28290DD88483377A618 /* OIDAuthorizationService.h in Headers */ = {isa = PBXBuildFile; fileRef = 53B21D2846157010A9ED4AFBEB967A43 /* OIDAuthorizationService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 935771162DF644301DCB001153BE1A4A /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35C3C2F568A40C6382DA00579A1847A6 /* Security.framework */; }; + 942404BDADA80A786184D83E4279118A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00315874469411B38E4024828A4A4C3 /* Foundation.framework */; }; + 96B0498670F4E766EC375697D69ACFCD /* GTMSessionFetcherService.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A6AC7C930015F4F04B077E0A4C445A2 /* GTMSessionFetcherService.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 97A4CB6762169EE2D67580ED8A09A65C /* OIDEndSessionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 653B355D41FE9EA98D3EF8B67E1105BA /* OIDEndSessionResponse.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 97D061F73A9EC16D15AB779AD9AE7D22 /* OIDScopeUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 4168A3C20FA04F19FFF7DED6C7D8C1BB /* OIDScopeUtilities.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 99EB841C4273B8CC2B58DCCD3C520514 /* AppAuth-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B1F63314EC50EAE1AF5E6795C524AFC3 /* AppAuth-dummy.m */; }; 9B1B793878BBA3CCD26B382F7C24812F /* Pods-enzevalos_iphoneTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 20DFD62DFBC7AF5CDE728ACFC0D81F4A /* Pods-enzevalos_iphoneTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9DA67409908A53D10B75D3684EEBB668 /* OIDRegistrationRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 583A1B91CF18CAF006139084BF33A0BB /* OIDRegistrationRequest.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 9EC4DC3F4A764364051BE6DB7FD72161 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */; }; - 9F935C6081CDDBE72FD9AA342B459EDF /* OIDGrantTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FF943D6DB5A7D2345FBDC483E8498EE /* OIDGrantTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A2CAA5D862BAEF4CB69AD58440BBF2A4 /* OIDResponseTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B4993842190EF59A3BF49DC79BA63A /* OIDResponseTypes.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - A3C394C6C598DFAC45199851B2FF5F97 /* GTMMIMEDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = E2DD78EDC2F3C595D8F73C4E6D912C67 /* GTMMIMEDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A40365580A23A144A23B5D5CD5903D8A /* OIDAuthorizationService+IOS.h in Headers */ = {isa = PBXBuildFile; fileRef = AADD951A708BC858B84DB0210212C4DE /* OIDAuthorizationService+IOS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A4C46EF76FD7B531CD9BC5D055F552A5 /* TravelError.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8CC398070B7319F0B84ABA7E783D46A /* TravelError.swift */; }; - A598CA3A479AC0DF478DCD71EB5C776A /* Onboard-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 06292A2CC8A3AB950AEF9311615EDE17 /* Onboard-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A678B41C5C406E11E3ED845D34FE5195 /* VENToken.xib in Resources */ = {isa = PBXBuildFile; fileRef = 99C857B6AF7EAD9858C11512B2F9B225 /* VENToken.xib */; }; - A74DD69D2B08CEA8A75B91C44D062544 /* ScrollViewFrameAccessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CFAC0D5CE1A58925290E73AB2D69442 /* ScrollViewFrameAccessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ABB7DFC525B809F8A11A927EA076D083 /* OIDAuthState+IOS.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DEC71CE2220E1C69D9270533208974E /* OIDAuthState+IOS.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - AC8E8C869F03F07CB4E0018D956F8386 /* GTMOAuth2KeychainCompatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 73F0A3AC6960A027601A8C2305A1C02C /* GTMOAuth2KeychainCompatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AE26AD92C5D98102C9795EE338FE1A5A /* OIDAuthorizationRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C22EA01DDF23B4AFFB323B0D0D21855 /* OIDAuthorizationRequest.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - B19E886F07ACEDF8A0A737C5EEBE3670 /* QAKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 664A033A45B8EAC46704878582565791 /* QAKit.swift */; }; - B49FB683497D1A987ABA277FFAD6BF16 /* OIDAuthState.h in Headers */ = {isa = PBXBuildFile; fileRef = 9665515A5B5A27477428D0316E98E9F8 /* OIDAuthState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B66DAAD2B63E8A9B63CDCAB09DD37F9B /* OIDAuthState+IOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 926E13353CAC7D9D73102498530CD61B /* OIDAuthState+IOS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BAEF06F222467B7C574B68147B4E37FC /* FrameAccessor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C28139F98A7FAD1E2A12850FA1BE23A9 /* FrameAccessor.framework */; }; - BDFEC63E56251CD07E52202DCE4C0AD6 /* FrameAccessor-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E52E1947969F3FBC0FBDD3CE45F07174 /* FrameAccessor-dummy.m */; }; - BF588BB40FADB1F474BB6D2BB22CAAE1 /* GTMAppAuthFetcherAuthorization.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BB5031D6FA19D76C392F5E139223D4B /* GTMAppAuthFetcherAuthorization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C20BEB8EEE529B9F62B871D411B16B41 /* Crypto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 727C85C0A21720B2F8CE9B43352F10D6 /* Crypto.swift */; }; - C2AABCD1F39FCA174A0C33D19E160BBF /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBA50778C5F4897E2B74B4B4DC358655 /* SystemConfiguration.framework */; }; - C5BC366213B947C853164DB2E74E86D2 /* GTMMIMEDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 685E292D51DC7C13298D72F10C803BAD /* GTMMIMEDocument.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - C7B060C685B89380D5553416DE5556CF /* OIDAuthState.m in Sources */ = {isa = PBXBuildFile; fileRef = AB81F20B3CB439B5ACC45D9ECACA5E31 /* OIDAuthState.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - C8F6A45D49E8CCF89555EE53179EBBBD /* OIDAuthorizationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B972C8290A52DF4BF07B6F759EBE1590 /* OIDAuthorizationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CB0590FD92943D903C814C08C370D6D6 /* BZipCompression.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EB683BB2AA3569F817AF790D9133C5D /* BZipCompression.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - CC39BCACA63BB097B6EA7D3A07400F1B /* GTMSessionFetcher-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 313DEC27F992FDD17F8E86E2B5A58923 /* GTMSessionFetcher-dummy.m */; }; - CCBDE0AAF93886F3154F5EB03CEFA4E7 /* OIDEndSessionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = EBC184479225AF1397DF700DCED24A10 /* OIDEndSessionRequest.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - CD86CFCB00FA354A6CF3BDCAF8C3CA96 /* OIDTokenRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CDB2547DE6C745203D031BE321530CE /* OIDTokenRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CEDD8C544346EE9941B5FFEE658952CA /* OIDExternalUserAgentIOSCustomBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = B0BFDE0683C9972CFD6BBD0047434497 /* OIDExternalUserAgentIOSCustomBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0C397B5DCDEB511EAD31EE0AE443C62 /* Pods-TravellibTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E616EFDE253E4411EA7690E14E9D1425 /* Pods-TravellibTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D55D0D62CAD8B19C5438B808A6B26D74 /* VENToken.h in Headers */ = {isa = PBXBuildFile; fileRef = AFD68BE9B27FBB532F465EEB42BE3449 /* VENToken.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA9F10D220701581FEC1BE123AE71FC1 /* OIDURLSessionProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = F199C9DFD63905BC6A82986057059E51 /* OIDURLSessionProvider.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - DC14FFC0E82FF83787DE33937F5DAB59 /* VENTokenField-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 52DFB5F177A897AC6481C543C289A916 /* VENTokenField-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DC4A35071C6DE036FFF877C65724C770 /* Pods-enzevalos_iphone-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8FA5C77FCB32827825B3F195D9EBFF /* Pods-enzevalos_iphone-dummy.m */; }; - DDE7E38354F65BADA399DA4478C917A0 /* Travellib-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E314D57BA388CCAC0FE2A41BC3E3F4C6 /* Travellib-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E4329E15870F9E2E49BE4E378502E84E /* OIDTokenUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 17C7C58BDBF1D79C63BE002F72771CAA /* OIDTokenUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E4420DBF08343EA2886691A140BF7C3E /* GTMKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = 501FDBAD335B4334A1D655D395BFF200 /* GTMKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E836563994D862411E69AF84FA387042 /* Pods-Travellib-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DEFE965A33DC027B4B983026F47001A3 /* Pods-Travellib-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E9B107A58E332DC64E2E5611413EE32C /* ViewFrameAccessor.h in Headers */ = {isa = PBXBuildFile; fileRef = C9C8F1E4267520CC27ECE0FDECCF77B7 /* ViewFrameAccessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB16EC4F591291A728DDA8CC8BDA536C /* OnboardingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 64EA1EF50878DB21015C7FA2B70C3ED4 /* OnboardingViewController.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - EE191018EF34395C61D30D78FED87E45 /* AppAuthCore.h in Headers */ = {isa = PBXBuildFile; fileRef = C9A576D63A7B9AB4B2A178CDC285FAB5 /* AppAuthCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EEADFC5C1C5EC6E3E20506B8E069931D /* KeychainAccess-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D25AF28995F6FB9047C54A3376B8AB1 /* KeychainAccess-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EF92363675B8414D14801D29A288FA31 /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 19636C711461DE4E287E9E7F9BD70B72 /* SafariServices.framework */; }; - F030AF77D89DB25F0F2D500F3691D749 /* OIDResponseTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = C73911EDD27B150B6D062F03B141FBD2 /* OIDResponseTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F258EBEBE5D736C874C4E5B3345A5728 /* OIDScopes.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A7ADEE71BB5F21FE2D9F3A28957A637 /* OIDScopes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F3D2632F5565AFA96A15FBA9EAFFF410 /* AppAuth-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 418212F81A738500A487ACEE9DD72BEE /* AppAuth-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F62E62CD2E65A2D5A88E03C1CF9290CB /* GTMSessionUploadFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C10EF169100A20297C0CD50F85DB61 /* GTMSessionUploadFetcher.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - F677A4A964B9095056DA905477CE4F3C /* AppAuth.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E6E505C2A5264A1870E1F465F15EA9E /* AppAuth.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F86692D49CC0BF51B5B155042CA99CB8 /* FrameAccessor.h in Headers */ = {isa = PBXBuildFile; fileRef = AE4CDD17B693FE84072ACE8447C5DC1A /* FrameAccessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F955AE83D6B49EE3877AF48E641CE6B3 /* OIDRegistrationRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 860FB3AF8682DBDAB7C48E1D26837D0A /* OIDRegistrationRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F9B2C365EDD514D7CE43D1769D015647 /* OIDAuthStateChangeDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = A834FAF29081436D270324AB22716550 /* OIDAuthStateChangeDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FB67CAAD5A3A3347E885C81FACBEB8B9 /* OIDAuthStateErrorDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 12A2BA8DF42DD2BA3018E877AE50EA2D /* OIDAuthStateErrorDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE9159955E7A9AF4DBE0EA973C7003DC /* QAKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 98B23B96E413EE81FAC392ABA9C15018 /* QAKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9CC9B1068E881FD2E93B835ADB271D65 /* ThreadLocal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43152F329B447AA08FD20CDB4AB92E3B /* ThreadLocal.swift */; }; + 9DA67409908A53D10B75D3684EEBB668 /* OIDRegistrationRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = E0C942CAFA24CDCF9D49FB0DDCC3CB22 /* OIDRegistrationRequest.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 9EC4DC3F4A764364051BE6DB7FD72161 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00315874469411B38E4024828A4A4C3 /* Foundation.framework */; }; + 9F935C6081CDDBE72FD9AA342B459EDF /* OIDGrantTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 52CF8E026DE9FF9B29B9603BBE0C79CE /* OIDGrantTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A2CAA5D862BAEF4CB69AD58440BBF2A4 /* OIDResponseTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5F32072334132027323E26BE4FC849 /* OIDResponseTypes.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + A3C394C6C598DFAC45199851B2FF5F97 /* GTMMIMEDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = F7FCA8C6F0A68D69E74BB4951690DD8C /* GTMMIMEDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A402A1B0DA338F5963E3EC8DB2BE2AC0 /* VerifyReadOnlyProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = E04A95A7F6A6114BDF0941C481A21954 /* VerifyReadOnlyProperty.swift */; }; + A40365580A23A144A23B5D5CD5903D8A /* OIDAuthorizationService+IOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 49BE3CE5323AC76CF52141EEA567F3E2 /* OIDAuthorizationService+IOS.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A4C46EF76FD7B531CD9BC5D055F552A5 /* TravelError.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF1546D4A3293015A0912FCECC34E745 /* TravelError.swift */; }; + A598CA3A479AC0DF478DCD71EB5C776A /* Onboard-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 84C83FCF999782BC4EC835058107AF07 /* Onboard-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A678B41C5C406E11E3ED845D34FE5195 /* VENToken.xib in Resources */ = {isa = PBXBuildFile; fileRef = C0E57F4C20CCA5B495F092E0FEC89777 /* VENToken.xib */; }; + A74DD69D2B08CEA8A75B91C44D062544 /* ScrollViewFrameAccessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F49EB21FD2096A4B25FBE8254018D85 /* ScrollViewFrameAccessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AB1BFC3B19F8BAB981AC200026D88452 /* __DoNotUse.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5B95948C0D9D565E9BA9188E3FC5541 /* __DoNotUse.swift */; }; + ABB7DFC525B809F8A11A927EA076D083 /* OIDAuthState+IOS.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AB50EE3821C45FC7941B426BEF76BAC /* OIDAuthState+IOS.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + AC8E8C869F03F07CB4E0018D956F8386 /* GTMOAuth2KeychainCompatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 26E10373A0C2E2968A6872CD4AB4BE0C /* GTMOAuth2KeychainCompatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AD148E9649E649860DD978E7387D5166 /* BaseStubFunctionTrait.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92359912058C21BB229129E9C4079C6B /* BaseStubFunctionTrait.swift */; }; + AE26AD92C5D98102C9795EE338FE1A5A /* OIDAuthorizationRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F26E27305241ED2941C6F13F5DB8E5C /* OIDAuthorizationRequest.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + B19E886F07ACEDF8A0A737C5EEBE3670 /* QAKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = B470C3E6902CEC3A4F1C64CCE07542A9 /* QAKit.swift */; }; + B1A909E5DEBDC7D4843CD39E83749BA0 /* StubFunctionThenTrait.swift in Sources */ = {isa = PBXBuildFile; fileRef = 320F92CAB959E89115F46F6BB9B76A26 /* StubFunctionThenTrait.swift */; }; + B49FB683497D1A987ABA277FFAD6BF16 /* OIDAuthState.h in Headers */ = {isa = PBXBuildFile; fileRef = 09C49ACA6AEC891FAF5131866B971D01 /* OIDAuthState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B4C70F5E8C02F97124ABF4E94CFE048C /* Mock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07CB395E586DFFCDE2F9AF0B60CCA012 /* Mock.swift */; }; + B66DAAD2B63E8A9B63CDCAB09DD37F9B /* OIDAuthState+IOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 59FB8AEB9478D2AAEBE6C24309E5C78A /* OIDAuthState+IOS.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B96355A950B52767BDFCB3404D02EFC8 /* Cuckoo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F95655CEBB3CE8804414EA78BC0F1FD /* Cuckoo-dummy.m */; }; + BAEF06F222467B7C574B68147B4E37FC /* FrameAccessor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 998D3EAB92332CA9510FEAFC8E3C1B6D /* FrameAccessor.framework */; }; + BDAFB69C4408D1AA1D95F62F5F6F376E /* Mocked.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F9234787F8A74FA5A90E5855229390B /* Mocked.swift */; }; + BDFEC63E56251CD07E52202DCE4C0AD6 /* FrameAccessor-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 62594AD63335DE71576A831C8A9620B5 /* FrameAccessor-dummy.m */; }; + BF00A9938111A311A8E0B9DE837840DB /* CreateMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9ECBF6AC068DE5078E9682FECA57C3E /* CreateMock.swift */; }; + BF588BB40FADB1F474BB6D2BB22CAAE1 /* GTMAppAuthFetcherAuthorization.h in Headers */ = {isa = PBXBuildFile; fileRef = ED70B322D881C2664B6FC7467FE730A7 /* GTMAppAuthFetcherAuthorization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C1DBB5B6040C8DE1BB6098FD85F57FAB /* Array+matchers.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2C802FC2C178869568A00413840F245 /* Array+matchers.swift */; }; + C20BEB8EEE529B9F62B871D411B16B41 /* Crypto.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8B3E6A10CB94B0990C0B26685DB16A9 /* Crypto.swift */; }; + C2AABCD1F39FCA174A0C33D19E160BBF /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CDE051B81579E647ACB7396207C47CCF /* SystemConfiguration.framework */; }; + C4ABE147DE603541B6899582EDF1B7D8 /* MockManager+preconfigured.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FAD3CF4575E602DEF370ADC711DDD44 /* MockManager+preconfigured.swift */; }; + C5BC366213B947C853164DB2E74E86D2 /* GTMMIMEDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 81FE771C8968B27E0D873AC45823F05D /* GTMMIMEDocument.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + C7B060C685B89380D5553416DE5556CF /* OIDAuthState.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A0817CBC06EFEABB68355EC44490F72 /* OIDAuthState.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + C8F6A45D49E8CCF89555EE53179EBBBD /* OIDAuthorizationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 91F596C78936385A056D7090CFB8DA20 /* OIDAuthorizationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C9812DB34DB8CB7B2FAEAB9278EABB77 /* Cuckoo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 74133C2E3526746F35E8EFACAE49CC6B /* Cuckoo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CABF151B8611FA9937627F1DDFF71BC4 /* StubFunctionThenThrowTrait.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE2E4F97BB341963D4EB22B435F1232 /* StubFunctionThenThrowTrait.swift */; }; + CB0590FD92943D903C814C08C370D6D6 /* BZipCompression.m in Sources */ = {isa = PBXBuildFile; fileRef = B117CAF8A5792B59CCD8D90E83197CC5 /* BZipCompression.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + CC39BCACA63BB097B6EA7D3A07400F1B /* GTMSessionFetcher-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 169BBEAEA30F2F9685C97A4DB1CF9188 /* GTMSessionFetcher-dummy.m */; }; + CCBDE0AAF93886F3154F5EB03CEFA4E7 /* OIDEndSessionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 438AA5F4754304505C055236FAD62F25 /* OIDEndSessionRequest.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + CD86CFCB00FA354A6CF3BDCAF8C3CA96 /* OIDTokenRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 624C29E8DDE17C865AF115A0C690817E /* OIDTokenRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CED9EC4A77DA392DF2764B2780FFF124 /* StubNoReturnFunction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0232267B03E13A411C62417144023E55 /* StubNoReturnFunction.swift */; }; + CEDD8C544346EE9941B5FFEE658952CA /* OIDExternalUserAgentIOSCustomBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = 70CCBF839DCE8A27640D8573F4FA3954 /* OIDExternalUserAgentIOSCustomBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CFCED42013D268A10D0E7D5441FF70A9 /* StubFunction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8AA461A7AA2F3CBBEB7B20A1FAC6126 /* StubFunction.swift */; }; + D0C397B5DCDEB511EAD31EE0AE443C62 /* Pods-TravellibTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F6D8B19D8C5744CACA7ABECBBA5111A /* Pods-TravellibTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D1956E389CE6A7E6BF64A8ED72008C46 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95BCC88A6CEBF4FA88ED7EC7EEA1A1A7 /* Utils.swift */; }; + D55D0D62CAD8B19C5438B808A6B26D74 /* VENToken.h in Headers */ = {isa = PBXBuildFile; fileRef = EC158505A9A6D4B18E5582FB88817EFA /* VENToken.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA9F10D220701581FEC1BE123AE71FC1 /* OIDURLSessionProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 7576FADDB817996F997686AE7089CB71 /* OIDURLSessionProvider.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + DC14FFC0E82FF83787DE33937F5DAB59 /* VENTokenField-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DCD8DAC575C7938E3289D3683644D52B /* VENTokenField-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DCC8F44280CF1048E9AF09204FE96BDC /* StubbingProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7817D71CF7694DF2D64A276F4D43F5B2 /* StubbingProxy.swift */; }; + DDE7E38354F65BADA399DA4478C917A0 /* Travellib-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 09895DAB4C22B29B6DBD3FA45D14676A /* Travellib-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4329E15870F9E2E49BE4E378502E84E /* OIDTokenUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DCD1826FB236B7FEB93AF1365B84B06 /* OIDTokenUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4420DBF08343EA2886691A140BF7C3E /* GTMKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5E48AD306D9850ED10270B8F7D29DF /* GTMKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E7BEFDFE8BF28D208B1B84DB46DDF603 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00315874469411B38E4024828A4A4C3 /* Foundation.framework */; }; + E836563994D862411E69AF84FA387042 /* Pods-Travellib-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B0B950386EC5C6E075A20EA1866958E /* Pods-Travellib-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E9B107A58E332DC64E2E5611413EE32C /* ViewFrameAccessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 08E6381D5B2D3AF668225FC3BA869F14 /* ViewFrameAccessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E9F49F230D327FEAD9D2BF1A936C485A /* ParameterMatcherFunctions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1D76C40C8C07EFE6DB52901A0E39BC5 /* ParameterMatcherFunctions.swift */; }; + EB16EC4F591291A728DDA8CC8BDA536C /* OnboardingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AD373A117913006E701AAF31254866C6 /* OnboardingViewController.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + ECA7DD07597E971B856781E3697E786C /* CallMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 853883B64771E69F9C1B8127BB14D705 /* CallMatcher.swift */; }; + EE191018EF34395C61D30D78FED87E45 /* AppAuthCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C7CC42F7EEC4B1E0C06C4BDFFD2FFAF /* AppAuthCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EEADFC5C1C5EC6E3E20506B8E069931D /* KeychainAccess-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 70C3E4E7BCB2907D86C480BCEF0A6C41 /* KeychainAccess-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EF92363675B8414D14801D29A288FA31 /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A58381CB09118CEC6F03E1B66D7051C /* SafariServices.framework */; }; + F030AF77D89DB25F0F2D500F3691D749 /* OIDResponseTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B009C0B74A53FEA08024ED7CCE17993 /* OIDResponseTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F258EBEBE5D736C874C4E5B3345A5728 /* OIDScopes.h in Headers */ = {isa = PBXBuildFile; fileRef = FC6184A03E08837DB914B621DE9B51BB /* OIDScopes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F33C6542E82CBE64D8AAAA442D404F4E /* StubThrowingFunction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68962DB155D3E7445780C69894ACEC7A /* StubThrowingFunction.swift */; }; + F3D2632F5565AFA96A15FBA9EAFFF410 /* AppAuth-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D457A22F09062BA57C2F5CBEFCDE3D72 /* AppAuth-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F62E62CD2E65A2D5A88E03C1CF9290CB /* GTMSessionUploadFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 166AD5FD977A155699E3332F5C662659 /* GTMSessionUploadFetcher.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + F677A4A964B9095056DA905477CE4F3C /* AppAuth.h in Headers */ = {isa = PBXBuildFile; fileRef = 80E26D1326AF7D9C0DB8C23D76A97E9A /* AppAuth.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F86692D49CC0BF51B5B155042CA99CB8 /* FrameAccessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 388CE4AD3BD4E8EDDE21FB7BB28DED26 /* FrameAccessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F955AE83D6B49EE3877AF48E641CE6B3 /* OIDRegistrationRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A3D35505DBB4AAACE5857DC9F10EEE6 /* OIDRegistrationRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F9B2C365EDD514D7CE43D1769D015647 /* OIDAuthStateChangeDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = CFACE17BA9A28C26738FF95C377C3A4E /* OIDAuthStateChangeDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FB67CAAD5A3A3347E885C81FACBEB8B9 /* OIDAuthStateErrorDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = F1DC9A732540D7564AFBF6FB8131AF08 /* OIDAuthStateErrorDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FD1167035FB07F9AAE0088B0885F1470 /* Set+matchers.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3FB5AE7D066EE4004BC0165A885E082 /* Set+matchers.swift */; }; + FE9159955E7A9AF4DBE0EA973C7003DC /* QAKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4622ABCBB05EE771427C0989FDE87679 /* QAKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FED8036E5F19A9642F17D56474CA83BF /* MockManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77DE93713E4C32DD4DD6A28E956DC2A /* MockManager.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 01CA0AA38DFBBBC6DF95ED8B14471740 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = E915BD679D93238880336D7A0655B4C7; - remoteInfo = QAKit; - }; 0EDCF38BA44E7804550420B1923AE7C0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; @@ -200,26 +237,26 @@ remoteGlobalIDString = 5C642AA10FB29936669CC269F42079C6; remoteInfo = AppAuth; }; - 14DFCAF41D45E288F2BFD4712F140C11 /* PBXContainerItemProxy */ = { + 1E4315630F4F741C24BFA140DB847FF3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = D8BE8EF935A44D2EEBE70961953F85F7; - remoteInfo = Onboard; + remoteGlobalIDString = 8627999EF1D5E93E13DAFF580DA8CDCF; + remoteInfo = GTMAppAuth; }; - 150304EAEA558AB907FEF7B7865ABF80 /* PBXContainerItemProxy */ = { + 33756517C2EA7D3DD27B38F8EB5E459A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 6D66475B9896599606F4FA421597859F; - remoteInfo = BZipCompression; + remoteGlobalIDString = 615C831BCE925ED486B225B87E44926D; + remoteInfo = KeychainAccess; }; - 3D238803C7F73444E7B8F4E1035ED9A3 /* PBXContainerItemProxy */ = { + 402F351E5206E9D3B7BBC079DC57AABD /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 615C831BCE925ED486B225B87E44926D; - remoteInfo = KeychainAccess; + remoteGlobalIDString = 5C642AA10FB29936669CC269F42079C6; + remoteInfo = AppAuth; }; 4692950B52FF57150FD1F7717B82FEA3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -228,40 +265,33 @@ remoteGlobalIDString = 0A54238D437A783E8B7D6105975DE6ED; remoteInfo = FrameAccessor; }; - 59E9B9D1204517FBA843E11F638AFA89 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5C642AA10FB29936669CC269F42079C6; - remoteInfo = AppAuth; - }; - 6D112A984EB1F701A151E45A9D04CB7C /* PBXContainerItemProxy */ = { + 5C6FA9953916487D46D40452EC6FF4F5 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 54C57F7F7FECB59C7FC4368C602667B3; remoteInfo = "mailcore2-ios"; }; - 7F927DA46BE5CD434DCE5176EB445F3F /* PBXContainerItemProxy */ = { + 61B05684F2F2B4F20CEEB9E0E7BADC27 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = ABDEC990A869B1916D7E37F2E6EBB97D; - remoteInfo = Travellib; + remoteGlobalIDString = D8BE8EF935A44D2EEBE70961953F85F7; + remoteInfo = Onboard; }; - 934BBF68E8F7F0B884DAA68E304E3659 /* PBXContainerItemProxy */ = { + 67B4CEFC4F15EC9EAA5414189903BB16 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 00C3E3A836461DED0744361F2041AD3E; - remoteInfo = VENTokenField; + remoteGlobalIDString = CFCA8CA494372A14108299CE150648B8; + remoteInfo = Cuckoo; }; - 9E606D66BCDE17966CA8AE130F54A913 /* PBXContainerItemProxy */ = { + 8F974F250D5D00042FC3639D44484154 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = D676E21115185671D7258A56944ABE98; - remoteInfo = GTMSessionFetcher; + remoteGlobalIDString = E915BD679D93238880336D7A0655B4C7; + remoteInfo = QAKit; }; A720C631E1946701F927ADC25CF2A59E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -270,12 +300,12 @@ remoteGlobalIDString = D676E21115185671D7258A56944ABE98; remoteInfo = GTMSessionFetcher; }; - C18944E632201054A9D2CA2B5B40677A /* PBXContainerItemProxy */ = { + C033F75BB4F50C044046B85F9C27B26A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 0A54238D437A783E8B7D6105975DE6ED; - remoteInfo = FrameAccessor; + remoteGlobalIDString = ABDEC990A869B1916D7E37F2E6EBB97D; + remoteInfo = Travellib; }; D1BAA1C2A4DF46CC2B41E0452F3E2CBE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -284,251 +314,321 @@ remoteGlobalIDString = CAD7DA284C4255B7575F137B771245E9; remoteInfo = "Pods-enzevalos_iphone"; }; - F30F32A4485DCB8A066333820F819096 /* PBXContainerItemProxy */ = { + D5DC0A7F66DA85249374AF39FC8EED0D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 8627999EF1D5E93E13DAFF580DA8CDCF; - remoteInfo = GTMAppAuth; + remoteGlobalIDString = 6D66475B9896599606F4FA421597859F; + remoteInfo = BZipCompression; + }; + E6CC7E3E588FF51A572E602F3374C1EE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0A54238D437A783E8B7D6105975DE6ED; + remoteInfo = FrameAccessor; + }; + E8291BC9F71C7E376D29BD84C4D07091 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = D676E21115185671D7258A56944ABE98; + remoteInfo = GTMSessionFetcher; + }; + F8700FD31331D848437E89EF0ACF352A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 00C3E3A836461DED0744361F2041AD3E; + remoteInfo = VENTokenField; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 016072065A47B08930E7149640E8F4FA /* OIDServiceDiscovery.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDServiceDiscovery.m; path = Source/OIDServiceDiscovery.m; sourceTree = "<group>"; }; - 024D68E96B040B50A1E969DE34351C16 /* OIDAuthorizationService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDAuthorizationService.h; path = Source/OIDAuthorizationService.h; sourceTree = "<group>"; }; - 04B7B0AD20FAEAA7833E0880BADACD82 /* VENTokenField.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = VENTokenField.debug.xcconfig; sourceTree = "<group>"; }; + 0207A04F8F7A878FA6A52B796E5782A3 /* GTMSessionUploadFetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionUploadFetcher.h; path = Source/GTMSessionUploadFetcher.h; sourceTree = "<group>"; }; + 021E67B562D7298EFE4605B5F3D9B785 /* Onboard.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Onboard.modulemap; sourceTree = "<group>"; }; + 0232267B03E13A411C62417144023E55 /* StubNoReturnFunction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StubNoReturnFunction.swift; path = Source/Stubbing/StubFunction/StubNoReturnFunction.swift; sourceTree = "<group>"; }; 05FED6C17D01D092149BADD934665237 /* Pods-enzevalos_iphoneTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-enzevalos_iphoneTests-dummy.m"; sourceTree = "<group>"; }; - 06292A2CC8A3AB950AEF9311615EDE17 /* Onboard-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Onboard-umbrella.h"; sourceTree = "<group>"; }; - 06EFA7A63BC474AFD47190B7E72374E2 /* KeychainAccess.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = KeychainAccess.modulemap; sourceTree = "<group>"; }; + 06BBD3298EFC08D95EEFE526BDDCDBD1 /* Cuckoo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Cuckoo.framework; path = Cuckoo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0751EA7F6DFA2C912C72A189ED7FB56D /* GTMAppAuth-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GTMAppAuth-dummy.m"; sourceTree = "<group>"; }; + 07AD4BB7C2A6405E45E18ECCD1E93D29 /* OIDServiceDiscovery.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDServiceDiscovery.h; path = Source/OIDServiceDiscovery.h; sourceTree = "<group>"; }; + 07CB395E586DFFCDE2F9AF0B60CCA012 /* Mock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Mock.swift; path = Source/Mock/Mock.swift; sourceTree = "<group>"; }; + 08040A8BC025410DAFC476884EDC3A2E /* Cuckoo-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Cuckoo-prefix.pch"; sourceTree = "<group>"; }; 080B1BA6FEA32955EC667A76D14E6B97 /* QAKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = QAKit.framework; path = QAKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 08708264FD12070B75BBC2ABFF77FB48 /* OIDDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDDefines.h; path = Source/OIDDefines.h; sourceTree = "<group>"; }; + 08E6381D5B2D3AF668225FC3BA869F14 /* ViewFrameAccessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ViewFrameAccessor.h; path = FrameAccessor/ViewFrameAccessor.h; sourceTree = "<group>"; }; 092EABC3645C368907672EF589871A0F /* BZipCompression.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = BZipCompression.framework; path = BZipCompression.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 09DBB759DB57572B42F7B51E2E6255DF /* OIDURLSessionProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDURLSessionProvider.h; path = Source/OIDURLSessionProvider.h; sourceTree = "<group>"; }; - 119A4DF2DBE9891410F92D659FB03661 /* FrameAccessor.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FrameAccessor.modulemap; sourceTree = "<group>"; }; - 12A2BA8DF42DD2BA3018E877AE50EA2D /* OIDAuthStateErrorDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDAuthStateErrorDelegate.h; path = Source/OIDAuthStateErrorDelegate.h; sourceTree = "<group>"; }; - 134D6B77949CD568B51F418595305440 /* GTMSessionFetcherService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionFetcherService.h; path = Source/GTMSessionFetcherService.h; sourceTree = "<group>"; }; - 16EBFA3B11A08EDAC85B03F08E2847F4 /* OIDAuthorizationService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDAuthorizationService.m; path = Source/OIDAuthorizationService.m; sourceTree = "<group>"; }; - 16F05544154830B522FB28E7B036EC22 /* VENTokenField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VENTokenField.m; path = VENTokenField/VENTokenField.m; sourceTree = "<group>"; }; - 17C7C58BDBF1D79C63BE002F72771CAA /* OIDTokenUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDTokenUtilities.h; path = Source/OIDTokenUtilities.h; sourceTree = "<group>"; }; - 19636C711461DE4E287E9E7F9BD70B72 /* SafariServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SafariServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/SafariServices.framework; sourceTree = DEVELOPER_DIR; }; - 1AE6F30A58188AEAAB7B1D37DAD513A2 /* GTMSessionFetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionFetcher.h; path = Source/GTMSessionFetcher.h; sourceTree = "<group>"; }; - 1C70D1D809477133E739575C6ABCFC5A /* GTMSessionFetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionFetcher.m; path = Source/GTMSessionFetcher.m; sourceTree = "<group>"; }; + 093A209DDF4602E0613666C9929F0FDD /* AppAuth-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AppAuth-prefix.pch"; sourceTree = "<group>"; }; + 097317A151EF11ABA1DB263F59660077 /* StubFunctionThenThrowingTrait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StubFunctionThenThrowingTrait.swift; path = Source/Stubbing/StubFunction/Trait/StubFunctionThenThrowingTrait.swift; sourceTree = "<group>"; }; + 09895DAB4C22B29B6DBD3FA45D14676A /* Travellib-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Travellib-umbrella.h"; sourceTree = "<group>"; }; + 09C49ACA6AEC891FAF5131866B971D01 /* OIDAuthState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDAuthState.h; path = Source/OIDAuthState.h; sourceTree = "<group>"; }; + 0A3D35505DBB4AAACE5857DC9F10EEE6 /* OIDRegistrationRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDRegistrationRequest.h; path = Source/OIDRegistrationRequest.h; sourceTree = "<group>"; }; + 0A4A0B4F19EA6E5ED12296A8CE19FF0B /* QAKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "QAKit-Info.plist"; sourceTree = "<group>"; }; + 0C070C653D373DE52170DDB177BC9BB7 /* Traveler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Traveler.swift; path = Travellib/Travellib/Traveler.swift; sourceTree = "<group>"; }; + 0C9E17B1EA6E0883768F2B60C32C9129 /* OIDScopes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDScopes.m; path = Source/OIDScopes.m; sourceTree = "<group>"; }; + 0CC12D2FDB716E1F0838DB883B32F100 /* BZipCompression.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BZipCompression.debug.xcconfig; sourceTree = "<group>"; }; + 0D307E7FDF6CA5D2C95A61ED8734DA59 /* GTMAppAuth.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GTMAppAuth.release.xcconfig; sourceTree = "<group>"; }; + 0E1CD8BD5AFA4254EA69F190A23EE768 /* Keychain.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Keychain.swift; path = Lib/KeychainAccess/Keychain.swift; sourceTree = "<group>"; }; + 0EC66481ADD41C0E318E08C3E2668F77 /* OIDClientMetadataParameters.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDClientMetadataParameters.m; path = Source/OIDClientMetadataParameters.m; sourceTree = "<group>"; }; + 0F49EB21FD2096A4B25FBE8254018D85 /* ScrollViewFrameAccessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ScrollViewFrameAccessor.h; path = FrameAccessor/ScrollViewFrameAccessor.h; sourceTree = "<group>"; }; + 0F9234787F8A74FA5A90E5855229390B /* Mocked.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Mocked.swift; path = Source/Mock/Mocked.swift; sourceTree = "<group>"; }; + 139FD01A03BDFB5A5A4DCF732EF2D8B5 /* OIDRegistrationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDRegistrationResponse.h; path = Source/OIDRegistrationResponse.h; sourceTree = "<group>"; }; + 15C6A6B73AB1BC2B96923A3A082049E7 /* OIDServiceConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDServiceConfiguration.h; path = Source/OIDServiceConfiguration.h; sourceTree = "<group>"; }; + 166AD5FD977A155699E3332F5C662659 /* GTMSessionUploadFetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionUploadFetcher.m; path = Source/GTMSessionUploadFetcher.m; sourceTree = "<group>"; }; + 169BBEAEA30F2F9685C97A4DB1CF9188 /* GTMSessionFetcher-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GTMSessionFetcher-dummy.m"; sourceTree = "<group>"; }; + 1725A04C86652A82953A352C74D3C801 /* OIDExternalUserAgentIOS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDExternalUserAgentIOS.m; path = Source/iOS/OIDExternalUserAgentIOS.m; sourceTree = "<group>"; }; + 180B17AA87559164002CD90F2B41E0DD /* GTMSessionFetcher.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GTMSessionFetcher.release.xcconfig; sourceTree = "<group>"; }; + 1A6AC7C930015F4F04B077E0A4C445A2 /* GTMSessionFetcherService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionFetcherService.m; path = Source/GTMSessionFetcherService.m; sourceTree = "<group>"; }; + 1B5CB63AB634A44895C3952B72C2CBC8 /* GTMSessionFetcher-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GTMSessionFetcher-umbrella.h"; sourceTree = "<group>"; }; + 1BB14C4DA00AD3A53EB6A0FFA08846B9 /* OnboardingViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OnboardingViewController.h; path = Source/OnboardingViewController.h; sourceTree = "<group>"; }; 1C8FA5C77FCB32827825B3F195D9EBFF /* Pods-enzevalos_iphone-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-enzevalos_iphone-dummy.m"; sourceTree = "<group>"; }; - 1C992F4D8DF8229F4BC6B3A62072BCEE /* Travellib.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Travellib.release.xcconfig; sourceTree = "<group>"; }; - 1EB683BB2AA3569F817AF790D9133C5D /* BZipCompression.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BZipCompression.m; path = Code/BZipCompression.m; sourceTree = "<group>"; }; - 1FBE2915129ED5A5F54FDFAD91DD0DB7 /* AppAuth-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AppAuth-dummy.m"; sourceTree = "<group>"; }; - 1FF943D6DB5A7D2345FBDC483E8498EE /* OIDGrantTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDGrantTypes.h; path = Source/OIDGrantTypes.h; sourceTree = "<group>"; }; + 1E5E48AD306D9850ED10270B8F7D29DF /* GTMKeychain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMKeychain.h; path = Source/GTMKeychain.h; sourceTree = "<group>"; }; + 1E5F32072334132027323E26BE4FC849 /* OIDResponseTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDResponseTypes.m; path = Source/OIDResponseTypes.m; sourceTree = "<group>"; }; + 208600C1EA04661F87537436F1F271A4 /* Cuckoo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Cuckoo.release.xcconfig; sourceTree = "<group>"; }; 20DFD62DFBC7AF5CDE728ACFC0D81F4A /* Pods-enzevalos_iphoneTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-enzevalos_iphoneTests-umbrella.h"; sourceTree = "<group>"; }; - 20ECCD47795BCDA13A64FC9B51373208 /* GTMSessionFetcherLogging.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionFetcherLogging.m; path = Source/GTMSessionFetcherLogging.m; sourceTree = "<group>"; }; - 223D5F3DCB9FF9C2B170CC1C5A772846 /* GTMAppAuth-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "GTMAppAuth-Info.plist"; sourceTree = "<group>"; }; - 228BDC3D990FC8D5B9F6E4E0B32757BD /* GTMSessionFetcher.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = GTMSessionFetcher.modulemap; sourceTree = "<group>"; }; - 22DAEA671AA3A365D00C113BF25E6AAD /* QAKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = QAKit.modulemap; sourceTree = "<group>"; }; - 2790A34ED6899F5EA8940B5FE0B00FE7 /* OIDTokenUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDTokenUtilities.m; path = Source/OIDTokenUtilities.m; sourceTree = "<group>"; }; - 2B260999F9D21E3AD138BF46EB76C174 /* AppAuth.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AppAuth.debug.xcconfig; sourceTree = "<group>"; }; - 2B3E4D7EDA2A85AD6A8BE02F53C60B97 /* QAKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "QAKit-dummy.m"; sourceTree = "<group>"; }; + 2229D23E01E3C71F9E857FBBD8B3ED40 /* BZipCompression-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "BZipCompression-Info.plist"; sourceTree = "<group>"; }; + 22A23C301ED9674E4A8ED2E5FFC36743 /* OIDExternalUserAgentCatalyst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDExternalUserAgentCatalyst.m; path = Source/iOS/OIDExternalUserAgentCatalyst.m; sourceTree = "<group>"; }; + 237B6D38A08197A6F4096468C1EBAD4A /* Travellib.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Travellib.release.xcconfig; sourceTree = "<group>"; }; + 243426059A979572E45B8B7C303E9769 /* OIDIDToken.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDIDToken.m; path = Source/OIDIDToken.m; sourceTree = "<group>"; }; + 26E10373A0C2E2968A6872CD4AB4BE0C /* GTMOAuth2KeychainCompatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMOAuth2KeychainCompatibility.h; path = Source/GTMOAuth2KeychainCompatibility/GTMOAuth2KeychainCompatibility.h; sourceTree = "<group>"; }; + 27C703AE0AD959B9A4FCDAF6CCDB28CD /* ScrollViewFrameAccessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ScrollViewFrameAccessor.m; path = FrameAccessor/ScrollViewFrameAccessor.m; sourceTree = "<group>"; }; 2C6738C4B96A27257AE37ABE4EF77456 /* Pods-enzevalos_iphoneUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-enzevalos_iphoneUITests.release.xcconfig"; sourceTree = "<group>"; }; - 2E3DE85C96F5CF7C7B5BCC0FDEDB44C7 /* KeychainAccess.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KeychainAccess.debug.xcconfig; sourceTree = "<group>"; }; - 2E487A1F4DAEFF649C742AF61741B4AB /* AppAuth-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AppAuth-prefix.pch"; sourceTree = "<group>"; }; - 313DEC27F992FDD17F8E86E2B5A58923 /* GTMSessionFetcher-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GTMSessionFetcher-dummy.m"; sourceTree = "<group>"; }; - 31FF25875334920BA016972E8E24CE0E /* GTMAppAuthFetcherAuthorization+Keychain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "GTMAppAuthFetcherAuthorization+Keychain.m"; path = "Source/GTMAppAuthFetcherAuthorization+Keychain.m"; sourceTree = "<group>"; }; - 337F80367D57E3819AF7BB951F33D86D /* BZipCompression-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BZipCompression-dummy.m"; sourceTree = "<group>"; }; - 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 2CAC89B1DE8370DA1F5378E92CB06ADB /* KeychainAccess-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "KeychainAccess-Info.plist"; sourceTree = "<group>"; }; + 2FF8ED6665715871581165CB8FF421D1 /* ParameterMatcher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterMatcher.swift; path = Source/Matching/ParameterMatcher.swift; sourceTree = "<group>"; }; + 3032F8C910080F52807454CC58006ACB /* OIDURLQueryComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDURLQueryComponent.m; path = Source/OIDURLQueryComponent.m; sourceTree = "<group>"; }; + 30F25CBB4B6B4D3F0E8263FA19D68E71 /* BZipCompression-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BZipCompression-prefix.pch"; sourceTree = "<group>"; }; + 314380F0A390219BB89B203F9BB04229 /* VENBackspaceTextField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VENBackspaceTextField.m; path = VENTokenField/VENBackspaceTextField.m; sourceTree = "<group>"; }; + 320F92CAB959E89115F46F6BB9B76A26 /* StubFunctionThenTrait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StubFunctionThenTrait.swift; path = Source/Stubbing/StubFunction/Trait/StubFunctionThenTrait.swift; sourceTree = "<group>"; }; + 32BCD4F7E3C7EE8846EBB9A35F5A2757 /* Travellib.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Travellib.debug.xcconfig; sourceTree = "<group>"; }; + 345EEE76521DFB84216BC31FFC52EC59 /* GTMGatherInputStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMGatherInputStream.h; path = Source/GTMGatherInputStream.h; sourceTree = "<group>"; }; + 347269A1E3C274AED04C05BC12E9743F /* OIDGrantTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDGrantTypes.m; path = Source/OIDGrantTypes.m; sourceTree = "<group>"; }; 347AEC88140ECBC23DEBD518615949E9 /* Pods-enzevalos_iphoneTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-enzevalos_iphoneTests.release.xcconfig"; sourceTree = "<group>"; }; - 38D116E4C6A1662008CB042B7CA55B0E /* OIDScopes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDScopes.m; path = Source/OIDScopes.m; sourceTree = "<group>"; }; - 3A7ADEE71BB5F21FE2D9F3A28957A637 /* OIDScopes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDScopes.h; path = Source/OIDScopes.h; sourceTree = "<group>"; }; - 3C22EA01DDF23B4AFFB323B0D0D21855 /* OIDAuthorizationRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDAuthorizationRequest.m; path = Source/OIDAuthorizationRequest.m; sourceTree = "<group>"; }; - 3C7DCBF585DFC4B11B8D68278ED69BBA /* OIDTokenResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDTokenResponse.m; path = Source/OIDTokenResponse.m; sourceTree = "<group>"; }; + 34F37F625FCD2CA82E4476DAFA69CDC2 /* BZipCompression-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BZipCompression-dummy.m"; sourceTree = "<group>"; }; + 35C3C2F568A40C6382DA00579A1847A6 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; + 36285088FEA3AB79FA555A6B5B495C23 /* StubAction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StubAction.swift; path = Source/Stubbing/StubAction.swift; sourceTree = "<group>"; }; + 365537CFFC07C7DD9ED8C6E17E23584D /* OIDScopeUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDScopeUtilities.h; path = Source/OIDScopeUtilities.h; sourceTree = "<group>"; }; + 376EEBE9FC5D5274FDE0FC7349C31628 /* AppAuth.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AppAuth.debug.xcconfig; sourceTree = "<group>"; }; + 388CE4AD3BD4E8EDDE21FB7BB28DED26 /* FrameAccessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FrameAccessor.h; path = FrameAccessor/FrameAccessor.h; sourceTree = "<group>"; }; + 397CEE3D01B8A15AD581D3D4C8F17BCA /* AppAuth.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AppAuth.modulemap; sourceTree = "<group>"; }; + 39E474585CC3193BC8233801066574AF /* ViewFrameAccessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ViewFrameAccessor.m; path = FrameAccessor/ViewFrameAccessor.m; sourceTree = "<group>"; }; + 3A0817CBC06EFEABB68355EC44490F72 /* OIDAuthState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDAuthState.m; path = Source/OIDAuthState.m; sourceTree = "<group>"; }; + 3A21F4568E7B4C633EDC151FD18B5658 /* FrameAccessor-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FrameAccessor-prefix.pch"; sourceTree = "<group>"; }; + 3B0B950386EC5C6E075A20EA1866958E /* Pods-Travellib-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-Travellib-umbrella.h"; path = "Travellib/Pods/Target Support Files/Pods-Travellib/Pods-Travellib-umbrella.h"; sourceTree = "<group>"; }; + 3BA429DFF85D43D55FED909CC73F39E4 /* OIDTokenResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDTokenResponse.m; path = Source/OIDTokenResponse.m; sourceTree = "<group>"; }; + 3C7CC42F7EEC4B1E0C06C4BDFFD2FFAF /* AppAuthCore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AppAuthCore.h; path = Source/AppAuthCore.h; sourceTree = "<group>"; }; 3CEEE8AFC410D71BD3AF0448116EDB2B /* Pods-enzevalos_iphoneUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-enzevalos_iphoneUITests-umbrella.h"; sourceTree = "<group>"; }; - 3CFAC0D5CE1A58925290E73AB2D69442 /* ScrollViewFrameAccessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ScrollViewFrameAccessor.h; path = FrameAccessor/ScrollViewFrameAccessor.h; sourceTree = "<group>"; }; 3D8C23A1D3C00C7FE8EBA32D5E936B56 /* Pods-enzevalos_iphoneUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-enzevalos_iphoneUITests.debug.xcconfig"; sourceTree = "<group>"; }; - 3E4D106EBB62B605C65BF8064C967930 /* FrameAccessor-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FrameAccessor-umbrella.h"; sourceTree = "<group>"; }; + 3F6D8B19D8C5744CACA7ABECBBA5111A /* Pods-TravellibTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-TravellibTests-umbrella.h"; path = "Travellib/Pods/Target Support Files/Pods-TravellibTests/Pods-TravellibTests-umbrella.h"; sourceTree = "<group>"; }; + 3F95655CEBB3CE8804414EA78BC0F1FD /* Cuckoo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Cuckoo-dummy.m"; sourceTree = "<group>"; }; + 3FA018B86EB60FDBB0C08958F94741D7 /* OIDURLSessionProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDURLSessionProvider.h; path = Source/OIDURLSessionProvider.h; sourceTree = "<group>"; }; 3FD1B4C1246D643E9476438C28048FA8 /* AppAuth.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = AppAuth.framework; path = AppAuth.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 418212F81A738500A487ACEE9DD72BEE /* AppAuth-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AppAuth-umbrella.h"; sourceTree = "<group>"; }; - 41B249081C191DCEC7303A2BEDC662E6 /* QAKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = QAKit.debug.xcconfig; sourceTree = "<group>"; }; - 442DDB418F0A559D3ECF8D3FD5B8CB0C /* BZipCompression.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BZipCompression.h; path = Code/BZipCompression.h; sourceTree = "<group>"; }; - 450AB89DE7AEDF84590DC29D920ECF49 /* GTMSessionFetcher.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GTMSessionFetcher.debug.xcconfig; sourceTree = "<group>"; }; - 45AEF4CF5C9A42E36CDAEB8F05DB553D /* GTMOAuth2KeychainCompatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMOAuth2KeychainCompatibility.m; path = Source/GTMOAuth2KeychainCompatibility/GTMOAuth2KeychainCompatibility.m; sourceTree = "<group>"; }; - 46BDC68A51B00FC49B4AEB7C99945976 /* OIDServiceConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDServiceConfiguration.h; path = Source/OIDServiceConfiguration.h; sourceTree = "<group>"; }; - 482816C82337F85E7552A426F98291D6 /* VENToken.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VENToken.m; path = VENTokenField/VENToken.m; sourceTree = "<group>"; }; - 4A3738B0B162BA815693986DC1E5713D /* Onboard.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Onboard.modulemap; sourceTree = "<group>"; }; - 4A42FD0A298D1863B910C67804BFC1A2 /* GTMAppAuth.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GTMAppAuth.debug.xcconfig; sourceTree = "<group>"; }; + 3FEC086140004F32C52903A239FDC43A /* FrameAccessor.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FrameAccessor.debug.xcconfig; sourceTree = "<group>"; }; + 4168A3C20FA04F19FFF7DED6C7D8C1BB /* OIDScopeUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDScopeUtilities.m; path = Source/OIDScopeUtilities.m; sourceTree = "<group>"; }; + 43152F329B447AA08FD20CDB4AB92E3B /* ThreadLocal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThreadLocal.swift; path = Source/Initialization/ThreadLocal.swift; sourceTree = "<group>"; }; + 438AA5F4754304505C055236FAD62F25 /* OIDEndSessionRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDEndSessionRequest.m; path = Source/OIDEndSessionRequest.m; sourceTree = "<group>"; }; + 4622ABCBB05EE771427C0989FDE87679 /* QAKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "QAKit-umbrella.h"; sourceTree = "<group>"; }; + 465A62453455471A9E9FEFB5422B010D /* AppAuth-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "AppAuth-Info.plist"; sourceTree = "<group>"; }; + 469BCDE5C0DA7C2FB4CFF856DC7929B6 /* QAKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "QAKit-dummy.m"; sourceTree = "<group>"; }; + 475B68A678CD68F47F967A093BF7DF96 /* Dictionary+matchers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Dictionary+matchers.swift"; path = "Source/Matching/Dictionary+matchers.swift"; sourceTree = "<group>"; }; + 48194220CF8A2022CE0B9B9540E9463F /* OIDServiceDiscovery.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDServiceDiscovery.m; path = Source/OIDServiceDiscovery.m; sourceTree = "<group>"; }; + 494206AA2AE6F4F00DC19EC1B7DCE96E /* VENTokenField-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VENTokenField-prefix.pch"; sourceTree = "<group>"; }; + 49BE3CE5323AC76CF52141EEA567F3E2 /* OIDAuthorizationService+IOS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "OIDAuthorizationService+IOS.h"; path = "Source/iOS/OIDAuthorizationService+IOS.h"; sourceTree = "<group>"; }; 4B413EE3781ADFF37E1D07CCA4199DFB /* Onboard.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Onboard.framework; path = Onboard.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4B73844D52E3313AA8A99F54FD2E75D7 /* AppAuth.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AppAuth.release.xcconfig; sourceTree = "<group>"; }; - 4C47BAD7F73346C00D884B6C2DD9F20D /* Travellib.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Travellib.modulemap; sourceTree = "<group>"; }; - 4D25AF28995F6FB9047C54A3376B8AB1 /* KeychainAccess-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KeychainAccess-umbrella.h"; sourceTree = "<group>"; }; 4D6AC0604C08E1C04F6D5BA20CFCC7C3 /* VENTokenField.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = VENTokenField.framework; path = VENTokenField.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4D9DA68EA9D3168E86D3E1A4D28B3886 /* QAKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "QAKit-Info.plist"; sourceTree = "<group>"; }; - 4DEC71CE2220E1C69D9270533208974E /* OIDAuthState+IOS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "OIDAuthState+IOS.m"; path = "Source/iOS/OIDAuthState+IOS.m"; sourceTree = "<group>"; }; + 4ED2898D6E531C41C0E487368F14A0CB /* OIDError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDError.m; path = Source/OIDError.m; sourceTree = "<group>"; }; 4FE8415011C354920313C5826C722EFD /* Pods_enzevalos_iphoneTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_enzevalos_iphoneTests.framework; path = "Pods-enzevalos_iphoneTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 501FDBAD335B4334A1D655D395BFF200 /* GTMKeychain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMKeychain.h; path = Source/GTMKeychain.h; sourceTree = "<group>"; }; - 52313C74F1FA2A71711CF7C3176385DE /* GTMSessionFetcherLogging.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionFetcherLogging.h; path = Source/GTMSessionFetcherLogging.h; sourceTree = "<group>"; }; - 5291F2E3185809EAD55951A61771A645 /* GTMAppAuthFetcherAuthorization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMAppAuthFetcherAuthorization.m; path = Source/GTMAppAuthFetcherAuthorization.m; sourceTree = "<group>"; }; - 52DFB5F177A897AC6481C543C289A916 /* VENTokenField-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VENTokenField-umbrella.h"; sourceTree = "<group>"; }; + 527A81C20F5296CAB524D7901B9B2F17 /* OIDIDToken.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDIDToken.h; path = Source/OIDIDToken.h; sourceTree = "<group>"; }; + 52CF8E026DE9FF9B29B9603BBE0C79CE /* OIDGrantTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDGrantTypes.h; path = Source/OIDGrantTypes.h; sourceTree = "<group>"; }; 52FA53A1CE998BA6FC3C0B201C99F229 /* Pods-enzevalos_iphone.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-enzevalos_iphone.debug.xcconfig"; sourceTree = "<group>"; }; - 5366B9393E990E2B83C2D3CA9BCFEA10 /* VENTokenField.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = VENTokenField.modulemap; sourceTree = "<group>"; }; - 554CA0274B71B1E15A8911D0C7F71C5C /* OIDEndSessionRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDEndSessionRequest.h; path = Source/OIDEndSessionRequest.h; sourceTree = "<group>"; }; - 561320071D216FA121C69E291F45FBC4 /* OIDAuthorizationService+IOS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "OIDAuthorizationService+IOS.m"; path = "Source/iOS/OIDAuthorizationService+IOS.m"; sourceTree = "<group>"; }; - 57A92A85D12D7890DA0A29768F172386 /* GTMSessionFetcher-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "GTMSessionFetcher-Info.plist"; sourceTree = "<group>"; }; - 583A1B91CF18CAF006139084BF33A0BB /* OIDRegistrationRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDRegistrationRequest.m; path = Source/OIDRegistrationRequest.m; sourceTree = "<group>"; }; - 5A523736F7B57D9E28D69B70DDD84907 /* OIDEndSessionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDEndSessionResponse.m; path = Source/OIDEndSessionResponse.m; sourceTree = "<group>"; }; + 53B21D2846157010A9ED4AFBEB967A43 /* OIDAuthorizationService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDAuthorizationService.h; path = Source/OIDAuthorizationService.h; sourceTree = "<group>"; }; + 5542169F691E5050732ADEF821CBD9F9 /* KeychainAccess-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "KeychainAccess-dummy.m"; sourceTree = "<group>"; }; + 559879B50DBE2EE91AADEAD3D9038A2A /* StubFunctionThenReturnTrait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StubFunctionThenReturnTrait.swift; path = Source/Stubbing/StubFunction/Trait/StubFunctionThenReturnTrait.swift; sourceTree = "<group>"; }; + 59FB8AEB9478D2AAEBE6C24309E5C78A /* OIDAuthState+IOS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "OIDAuthState+IOS.h"; path = "Source/iOS/OIDAuthState+IOS.h"; sourceTree = "<group>"; }; + 5A2C8C9A38CC6F06F52A2DA07D77A075 /* GTMAppAuth-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "GTMAppAuth-Info.plist"; sourceTree = "<group>"; }; + 5A44D6461EF8902029D25738C4F64081 /* StubFunctionThenDoNothingTrait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StubFunctionThenDoNothingTrait.swift; path = Source/Stubbing/StubFunction/Trait/StubFunctionThenDoNothingTrait.swift; sourceTree = "<group>"; }; + 5A58381CB09118CEC6F03E1B66D7051C /* SafariServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SafariServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/SafariServices.framework; sourceTree = DEVELOPER_DIR; }; 5A6059C53A5B8B3C4FC427EEFBE1452B /* Pods-enzevalos_iphoneUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-enzevalos_iphoneUITests-acknowledgements.plist"; sourceTree = "<group>"; }; - 5B5353496874780BF797D079DE53C8DF /* OIDExternalUserAgentSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDExternalUserAgentSession.h; path = Source/OIDExternalUserAgentSession.h; sourceTree = "<group>"; }; - 5E19C9E904D0BFA87A7B6EEC3242A0F7 /* OIDRegistrationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDRegistrationResponse.m; path = Source/OIDRegistrationResponse.m; sourceTree = "<group>"; }; - 63708C883348198F13D9B21F5598C091 /* OIDFieldMapping.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDFieldMapping.h; path = Source/OIDFieldMapping.h; sourceTree = "<group>"; }; - 64EA1EF50878DB21015C7FA2B70C3ED4 /* OnboardingViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OnboardingViewController.m; path = Source/OnboardingViewController.m; sourceTree = "<group>"; }; + 5AB50EE3821C45FC7941B426BEF76BAC /* OIDAuthState+IOS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "OIDAuthState+IOS.m"; path = "Source/iOS/OIDAuthState+IOS.m"; sourceTree = "<group>"; }; + 5AC7561D19F7D96C053C015C3DB7F1C0 /* Cuckoo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Cuckoo.debug.xcconfig; sourceTree = "<group>"; }; + 5B563EE9A8FA8791C3A46068933332CD /* CallMatcherFunctions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CallMatcherFunctions.swift; path = Source/Matching/CallMatcherFunctions.swift; sourceTree = "<group>"; }; + 5B83487CC87B3A97D5B32F08046EAF02 /* OIDEndSessionRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDEndSessionRequest.h; path = Source/OIDEndSessionRequest.h; sourceTree = "<group>"; }; + 5C568BCABCBFA12E70C2AA78DACABF7D /* VENTokenField.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = VENTokenField.debug.xcconfig; sourceTree = "<group>"; }; + 5EB5BB3A09EC294392D2577706DFE5C9 /* GTMReadMonitorInputStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMReadMonitorInputStream.h; path = Source/GTMReadMonitorInputStream.h; sourceTree = "<group>"; }; + 6090D495EFC3CA00AF405EF994B7C467 /* GTMSessionFetcherLogging.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionFetcherLogging.m; path = Source/GTMSessionFetcherLogging.m; sourceTree = "<group>"; }; + 6179196A0C9D385EA6C293B1DB8F7105 /* GTMAppAuth.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = GTMAppAuth.modulemap; sourceTree = "<group>"; }; + 618FA7D635FD8B32EF43673293CC1129 /* GTMSessionFetcher.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = GTMSessionFetcher.modulemap; sourceTree = "<group>"; }; + 624C29E8DDE17C865AF115A0C690817E /* OIDTokenRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDTokenRequest.h; path = Source/OIDTokenRequest.h; sourceTree = "<group>"; }; + 62594AD63335DE71576A831C8A9620B5 /* FrameAccessor-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FrameAccessor-dummy.m"; sourceTree = "<group>"; }; + 63B10FA6C3A3B395B547876BF91719B7 /* OIDFieldMapping.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDFieldMapping.m; path = Source/OIDFieldMapping.m; sourceTree = "<group>"; }; + 63FAA15069F0BEC65AF59D612757B780 /* VerifyProperty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VerifyProperty.swift; path = Source/Verification/VerifyProperty/VerifyProperty.swift; sourceTree = "<group>"; }; + 644840CFFFC92B200B03A67C55B92674 /* Travellib-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Travellib-prefix.pch"; sourceTree = "<group>"; }; + 653B355D41FE9EA98D3EF8B67E1105BA /* OIDEndSessionResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDEndSessionResponse.m; path = Source/OIDEndSessionResponse.m; sourceTree = "<group>"; }; 654A2387519004CC2FADFC336A1DFD26 /* Pods-enzevalos_iphoneUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-enzevalos_iphoneUITests-Info.plist"; sourceTree = "<group>"; }; - 664A033A45B8EAC46704878582565791 /* QAKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QAKit.swift; path = QAKit/Source/QAKit.swift; sourceTree = "<group>"; }; - 674CE0F81C1A946D6ED46C72D6400D3B /* GTMSessionFetcher-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GTMSessionFetcher-umbrella.h"; sourceTree = "<group>"; }; - 67E5945DA182D157FC3A6728272F23B5 /* Travellib-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Travellib-Info.plist"; sourceTree = "<group>"; }; - 685E292D51DC7C13298D72F10C803BAD /* GTMMIMEDocument.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMMIMEDocument.m; path = Source/GTMMIMEDocument.m; sourceTree = "<group>"; }; - 6886021395E6D8437B5579928B7D335E /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; + 657567CCFA7BA065F5FC91186906F829 /* Matchable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Matchable.swift; path = Source/Matching/Matchable.swift; sourceTree = "<group>"; }; + 65AB0C30DDFBA8C7793BF43FE896259A /* QAKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = QAKit.debug.xcconfig; sourceTree = "<group>"; }; + 66D631D8F017387DCB6D31B02BF775C0 /* OIDExternalUserAgentRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDExternalUserAgentRequest.h; path = Source/OIDExternalUserAgentRequest.h; sourceTree = "<group>"; }; + 67D1AE11C49DE424E99F3D3DCD95048A /* OIDAuthorizationService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDAuthorizationService.m; path = Source/OIDAuthorizationService.m; sourceTree = "<group>"; }; + 687F037F64F99721265F686D5A282FB6 /* Fingertips.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fingertips.swift; path = QAKit/Source/Fingertips.swift; sourceTree = "<group>"; }; + 68962DB155D3E7445780C69894ACEC7A /* StubThrowingFunction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StubThrowingFunction.swift; path = Source/Stubbing/StubFunction/StubThrowingFunction.swift; sourceTree = "<group>"; }; 68CEDFD240850156A68030B0D4140F89 /* Pods-enzevalos_iphone-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-enzevalos_iphone-Info.plist"; sourceTree = "<group>"; }; - 6AD52F42BC024633ECD042A68C058C8F /* OIDRegistrationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDRegistrationResponse.h; path = Source/OIDRegistrationResponse.h; sourceTree = "<group>"; }; - 6B5863A0BF13B3BF7E4BCA31F60A844A /* VENTokenField-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VENTokenField-prefix.pch"; sourceTree = "<group>"; }; - 6C125AC1C4E60C99F23511B122196D5B /* GTMGatherInputStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMGatherInputStream.m; path = Source/GTMGatherInputStream.m; sourceTree = "<group>"; }; - 6C14EBE32FF71D7D0B8A1A70EE21DE87 /* OIDError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDError.m; path = Source/OIDError.m; sourceTree = "<group>"; }; - 6CE0DF45C3510006AAF35D82401E76A0 /* OIDClientMetadataParameters.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDClientMetadataParameters.m; path = Source/OIDClientMetadataParameters.m; sourceTree = "<group>"; }; - 6F42FEB9A389EF0952693B96AB86006E /* OIDExternalUserAgentIOS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDExternalUserAgentIOS.h; path = Source/iOS/OIDExternalUserAgentIOS.h; sourceTree = "<group>"; }; + 6977490AB913F3F6B40FF2DE497173F9 /* Cuckoo-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Cuckoo-Info.plist"; sourceTree = "<group>"; }; + 6C5EDFF2BC9F23B806E1A30E349B7C4F /* Onboard-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Onboard-prefix.pch"; sourceTree = "<group>"; }; + 6D15F8177B9F9AD086BB5649024A1CF2 /* Travellib-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Travellib-Info.plist"; sourceTree = "<group>"; }; + 6DCD1826FB236B7FEB93AF1365B84B06 /* OIDTokenUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDTokenUtilities.h; path = Source/OIDTokenUtilities.h; sourceTree = "<group>"; }; 6FD122EA0AB9AB2A8FFA5F676C795DF0 /* GTMAppAuth.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = GTMAppAuth.framework; path = GTMAppAuth.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 706D4680DF0B5965684DB92C2108B0DB /* OIDFieldMapping.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDFieldMapping.m; path = Source/OIDFieldMapping.m; sourceTree = "<group>"; }; - 70A76CF2E3098D1BC68B9BBE0E40B2CB /* OIDServiceDiscovery.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDServiceDiscovery.h; path = Source/OIDServiceDiscovery.h; sourceTree = "<group>"; }; - 727C85C0A21720B2F8CE9B43352F10D6 /* Crypto.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Crypto.swift; path = Travellib/Travellib/Crypto.swift; sourceTree = "<group>"; }; - 72AC19B11B05D953A9B5F507BD57C754 /* GTMSessionUploadFetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionUploadFetcher.h; path = Source/GTMSessionUploadFetcher.h; sourceTree = "<group>"; }; - 73F0A3AC6960A027601A8C2305A1C02C /* GTMOAuth2KeychainCompatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMOAuth2KeychainCompatibility.h; path = Source/GTMOAuth2KeychainCompatibility/GTMOAuth2KeychainCompatibility.h; sourceTree = "<group>"; }; - 7738F675485A6F2C18B712ADDBD27A2E /* OIDExternalUserAgentCatalyst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDExternalUserAgentCatalyst.h; path = Source/iOS/OIDExternalUserAgentCatalyst.h; sourceTree = "<group>"; }; - 7841F5112312FF2E8EA55912AFD57998 /* Travellib-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Travellib-prefix.pch"; sourceTree = "<group>"; }; - 79D266FC44AFB762084C11B380D53A4A /* OIDScopeUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDScopeUtilities.m; path = Source/OIDScopeUtilities.m; sourceTree = "<group>"; }; - 7BB5031D6FA19D76C392F5E139223D4B /* GTMAppAuthFetcherAuthorization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMAppAuthFetcherAuthorization.h; path = Source/GTMAppAuthFetcherAuthorization.h; sourceTree = "<group>"; }; - 7C17204593CCCD8B803CBED5C3FBD5B4 /* Onboard.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Onboard.release.xcconfig; sourceTree = "<group>"; }; + 705422CFDAD1FA4D22E16EE08158FD35 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + 70C3E4E7BCB2907D86C480BCEF0A6C41 /* KeychainAccess-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KeychainAccess-umbrella.h"; sourceTree = "<group>"; }; + 70CCBF839DCE8A27640D8573F4FA3954 /* OIDExternalUserAgentIOSCustomBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDExternalUserAgentIOSCustomBrowser.h; path = Source/iOS/OIDExternalUserAgentIOSCustomBrowser.h; sourceTree = "<group>"; }; + 7315FEC668B7848A2C7044E00404AC6A /* VENTokenField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VENTokenField.h; path = VENTokenField/VENTokenField.h; sourceTree = "<group>"; }; + 74133C2E3526746F35E8EFACAE49CC6B /* Cuckoo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Cuckoo-umbrella.h"; sourceTree = "<group>"; }; + 747DECACF006ED085F4C399389134625 /* BZipCompression.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BZipCompression.h; path = Code/BZipCompression.h; sourceTree = "<group>"; }; + 74970A1C026D191553C1562383409A9F /* GTMSessionFetcher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = GTMSessionFetcher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 755706958E771FD2085D19DF83D7A289 /* GTMSessionFetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionFetcher.m; path = Source/GTMSessionFetcher.m; sourceTree = "<group>"; }; + 7576FADDB817996F997686AE7089CB71 /* OIDURLSessionProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDURLSessionProvider.m; path = Source/OIDURLSessionProvider.m; sourceTree = "<group>"; }; + 75C09DB4587E49C59C9A787EDF639AAC /* Onboard-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Onboard-dummy.m"; sourceTree = "<group>"; }; + 76F2C848D2DE7E15AE6A16117D1FD1C5 /* GTMAppAuth-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GTMAppAuth-prefix.pch"; sourceTree = "<group>"; }; + 77721C328992B0CA7C6A9E07CDB243B4 /* FrameAccessor.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FrameAccessor.release.xcconfig; sourceTree = "<group>"; }; + 7817D71CF7694DF2D64A276F4D43F5B2 /* StubbingProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StubbingProxy.swift; path = Source/Mock/StubbingProxy.swift; sourceTree = "<group>"; }; + 7A5FD2239AF98C3506DDE39D1754BF60 /* VerificationProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VerificationProxy.swift; path = Source/Mock/VerificationProxy.swift; sourceTree = "<group>"; }; + 7AF62B6AA5F939CEE4310DA9FFD15695 /* GTMReadMonitorInputStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMReadMonitorInputStream.m; path = Source/GTMReadMonitorInputStream.m; sourceTree = "<group>"; }; + 7BDEBD7D700E90A724AE06C345F02CA4 /* VENTokenField.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = VENTokenField.modulemap; sourceTree = "<group>"; }; + 7C190BB01087AAE9DED10CB2BD6AA3DF /* OIDRegistrationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDRegistrationResponse.m; path = Source/OIDRegistrationResponse.m; sourceTree = "<group>"; }; 7CF1F59EF596B56D0362FE32377008D6 /* Pods-enzevalos_iphoneUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-enzevalos_iphoneUITests-acknowledgements.markdown"; sourceTree = "<group>"; }; 7DB27841045A60F2B6D9F6931638805F /* Pods-enzevalos_iphone-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-enzevalos_iphone-umbrella.h"; sourceTree = "<group>"; }; + 7E67C57D34C362A1FDD3E8BD24271AE2 /* OIDTokenRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDTokenRequest.m; path = Source/OIDTokenRequest.m; sourceTree = "<group>"; }; 7E681098E4CFA1E5ED411A3595AA08CD /* Pods-enzevalos_iphoneTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-enzevalos_iphoneTests-Info.plist"; sourceTree = "<group>"; }; + 7FAD3CF4575E602DEF370ADC711DDD44 /* MockManager+preconfigured.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "MockManager+preconfigured.swift"; path = "Source/Initialization/MockManager+preconfigured.swift"; sourceTree = "<group>"; }; 809143EDE4C9CEA635F559707E5441D1 /* Pods-enzevalos_iphone-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-enzevalos_iphone-acknowledgements.markdown"; sourceTree = "<group>"; }; - 84582BE4049BBD1F459F9198789E0602 /* AppAuth.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AppAuth.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 855DF2671EE5D06C9008206BD9BB5F66 /* Onboard-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Onboard-Info.plist"; sourceTree = "<group>"; }; - 860FB3AF8682DBDAB7C48E1D26837D0A /* OIDRegistrationRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDRegistrationRequest.h; path = Source/OIDRegistrationRequest.h; sourceTree = "<group>"; }; + 80E26D1326AF7D9C0DB8C23D76A97E9A /* AppAuth.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AppAuth.h; path = Source/AppAuth.h; sourceTree = "<group>"; }; + 81FE771C8968B27E0D873AC45823F05D /* GTMMIMEDocument.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMMIMEDocument.m; path = Source/GTMMIMEDocument.m; sourceTree = "<group>"; }; + 829380389944E01CC8008B5281E3C350 /* VENTokenField-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "VENTokenField-dummy.m"; sourceTree = "<group>"; }; + 83AD136B5A2B5B4F38CB366488B86A9E /* OIDExternalUserAgentSession.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDExternalUserAgentSession.h; path = Source/OIDExternalUserAgentSession.h; sourceTree = "<group>"; }; + 84C83FCF999782BC4EC835058107AF07 /* Onboard-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Onboard-umbrella.h"; sourceTree = "<group>"; }; + 84F599F5B705576EAADB89D05A974323 /* Stub.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Stub.swift; path = Source/Stubbing/Stub.swift; sourceTree = "<group>"; }; + 853883B64771E69F9C1B8127BB14D705 /* CallMatcher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CallMatcher.swift; path = Source/Matching/CallMatcher.swift; sourceTree = "<group>"; }; + 85E7FF350B0038A764C2927597B1BF95 /* OIDServiceConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDServiceConfiguration.m; path = Source/OIDServiceConfiguration.m; sourceTree = "<group>"; }; + 85F5D6FFEDA1E30E9506AFDCDF5E0966 /* FrameAccessor-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FrameAccessor-umbrella.h"; sourceTree = "<group>"; }; + 86542D03BEE6B66F00ED983DD9F769A7 /* FrameAccessor.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FrameAccessor.modulemap; sourceTree = "<group>"; }; 8896418F27195BE4E0C4393ECCD8BAF3 /* Pods-enzevalos_iphoneUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-enzevalos_iphoneUITests-dummy.m"; sourceTree = "<group>"; }; - 88C10EF169100A20297C0CD50F85DB61 /* GTMSessionUploadFetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionUploadFetcher.m; path = Source/GTMSessionUploadFetcher.m; sourceTree = "<group>"; }; 891E56A5D0C6D395591C342A500C596F /* Pods-enzevalos_iphone-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-enzevalos_iphone-acknowledgements.plist"; sourceTree = "<group>"; }; - 8BDA54B38E28861E47F894A4B9478C2E /* BZipCompression-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "BZipCompression-Info.plist"; sourceTree = "<group>"; }; - 8CDB2547DE6C745203D031BE321530CE /* OIDTokenRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDTokenRequest.h; path = Source/OIDTokenRequest.h; sourceTree = "<group>"; }; - 8F7B312431BAE7D8D029378384B0E3DB /* OIDError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDError.h; path = Source/OIDError.h; sourceTree = "<group>"; }; - 9126F7033BCF5914C8B3FC7EC50B9EB2 /* OIDServiceConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDServiceConfiguration.m; path = Source/OIDServiceConfiguration.m; sourceTree = "<group>"; }; - 913C2A08E8A40EFEA31A30DEB0772E23 /* mailcore2-ios.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "mailcore2-ios.debug.xcconfig"; sourceTree = "<group>"; }; - 91E3D2FE38F402CDBFD63355B3597100 /* GTMAppAuthFetcherAuthorization+Keychain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "GTMAppAuthFetcherAuthorization+Keychain.h"; path = "Source/GTMAppAuthFetcherAuthorization+Keychain.h"; sourceTree = "<group>"; }; - 920302CA35D8015EAE8568564789286E /* libMailCore-ios.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = "libMailCore-ios.a"; path = "cocoapods-build/lib/libMailCore-ios.a"; sourceTree = "<group>"; }; - 9203FEFA2C3BDE7D313F707DDC5A4AEF /* OIDErrorUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDErrorUtilities.m; path = Source/OIDErrorUtilities.m; sourceTree = "<group>"; }; - 926E13353CAC7D9D73102498530CD61B /* OIDAuthState+IOS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "OIDAuthState+IOS.h"; path = "Source/iOS/OIDAuthState+IOS.h"; sourceTree = "<group>"; }; - 933054D9A7159070442A0CEA1B73EC48 /* OIDAuthorizationRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDAuthorizationRequest.h; path = Source/OIDAuthorizationRequest.h; sourceTree = "<group>"; }; - 93700687B696D85BCA75AE80EE915AC3 /* ScrollViewFrameAccessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ScrollViewFrameAccessor.m; path = FrameAccessor/ScrollViewFrameAccessor.m; sourceTree = "<group>"; }; - 94592B63F8D8A1BE6894681463BAD489 /* OIDURLQueryComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDURLQueryComponent.m; path = Source/OIDURLQueryComponent.m; sourceTree = "<group>"; }; - 9665515A5B5A27477428D0316E98E9F8 /* OIDAuthState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDAuthState.h; path = Source/OIDAuthState.h; sourceTree = "<group>"; }; - 970495D0A551E6CD31E0E28CDB6EC85E /* QAKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "QAKit-prefix.pch"; sourceTree = "<group>"; }; - 976379DA8C7C64823DD1A8C704D39603 /* BZipCompression.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = BZipCompression.modulemap; sourceTree = "<group>"; }; - 98B07AE2EB6344D4451D4A842191E69F /* GTMKeychain_iOS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMKeychain_iOS.m; path = Source/iOS/GTMKeychain_iOS.m; sourceTree = "<group>"; }; - 98B23B96E413EE81FAC392ABA9C15018 /* QAKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "QAKit-umbrella.h"; sourceTree = "<group>"; }; - 9985A41A56D6AF95950A96B2B53F4537 /* FrameAccessor.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FrameAccessor.debug.xcconfig; sourceTree = "<group>"; }; - 99C857B6AF7EAD9858C11512B2F9B225 /* VENToken.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; name = VENToken.xib; path = VENTokenField/VENToken.xib; sourceTree = "<group>"; }; - 9BD11B794D0910529D4D3E9DAAEA5ABE /* Traveler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Traveler.swift; path = Travellib/Travellib/Traveler.swift; sourceTree = "<group>"; }; - 9C4CF9B2AEB30E7AD1B546CB4FC7082B /* GTMSessionFetcher-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GTMSessionFetcher-prefix.pch"; sourceTree = "<group>"; }; + 8A42F2921E2AFAFB8FBBC802FBD0F6DD /* KeychainAccess.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KeychainAccess.release.xcconfig; sourceTree = "<group>"; }; + 8B41D5A28272AC5626D4883CA65B2C30 /* OIDErrorUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDErrorUtilities.h; path = Source/OIDErrorUtilities.h; sourceTree = "<group>"; }; + 8E8DBB02A15FE91A82848798F1D0F3A6 /* OIDTokenUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDTokenUtilities.m; path = Source/OIDTokenUtilities.m; sourceTree = "<group>"; }; + 8ED911403AC5CBBA4BA13648897F91FD /* BZipCompression.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BZipCompression.release.xcconfig; sourceTree = "<group>"; }; + 91F596C78936385A056D7090CFB8DA20 /* OIDAuthorizationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDAuthorizationResponse.h; path = Source/OIDAuthorizationResponse.h; sourceTree = "<group>"; }; + 92359912058C21BB229129E9C4079C6B /* BaseStubFunctionTrait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BaseStubFunctionTrait.swift; path = Source/Stubbing/StubFunction/Trait/BaseStubFunctionTrait.swift; sourceTree = "<group>"; }; + 923CC5D1B4DCF5E2E91666531E442051 /* DefaultValueRegistry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DefaultValueRegistry.swift; path = Source/DefaultValueRegistry.swift; sourceTree = "<group>"; }; + 9288911B811C4CB554B62751E75942EA /* Travellib.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Travellib.modulemap; sourceTree = "<group>"; }; + 95BCC88A6CEBF4FA88ED7EC7EEA1A1A7 /* Utils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Utils.swift; path = Source/Utils.swift; sourceTree = "<group>"; }; + 96231D29A4220BC5232593AFF8DA8D6C /* OIDExternalUserAgent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDExternalUserAgent.h; path = Source/OIDExternalUserAgent.h; sourceTree = "<group>"; }; + 998D3EAB92332CA9510FEAFC8E3C1B6D /* FrameAccessor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FrameAccessor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9A0C0EAF5CA11CE80FA18D33A2492464 /* GTMKeychain_iOS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMKeychain_iOS.m; path = Source/iOS/GTMKeychain_iOS.m; sourceTree = "<group>"; }; + 9B009C0B74A53FEA08024ED7CCE17993 /* OIDResponseTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDResponseTypes.h; path = Source/OIDResponseTypes.h; sourceTree = "<group>"; }; + 9BBBD8036206D91D13468D19BA6E1658 /* GTMSessionFetcher.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GTMSessionFetcher.debug.xcconfig; sourceTree = "<group>"; }; + 9CFF68B259F8554E3EDA78C5403D3214 /* GTMAppAuth-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GTMAppAuth-umbrella.h"; sourceTree = "<group>"; }; 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; }; - 9E6E505C2A5264A1870E1F465F15EA9E /* AppAuth.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AppAuth.h; path = Source/AppAuth.h; sourceTree = "<group>"; }; + 9E29593864817BC1F13489411243C9EE /* OIDAuthorizationService+IOS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "OIDAuthorizationService+IOS.m"; path = "Source/iOS/OIDAuthorizationService+IOS.m"; sourceTree = "<group>"; }; 9E8BE2DBB49274C02787F745F8748547 /* Pods-enzevalos_iphone.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-enzevalos_iphone.modulemap"; sourceTree = "<group>"; }; - 9EAE894AE1E9FFD121747A63C5C17841 /* Fingertips.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Fingertips.swift; path = QAKit/Source/Fingertips.swift; sourceTree = "<group>"; }; - A1F3B440039486FBAF2F3A9064CC8AD1 /* GTMGatherInputStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMGatherInputStream.h; path = Source/GTMGatherInputStream.h; sourceTree = "<group>"; }; + 9F26E27305241ED2941C6F13F5DB8E5C /* OIDAuthorizationRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDAuthorizationRequest.m; path = Source/OIDAuthorizationRequest.m; sourceTree = "<group>"; }; + A19BC50D5D9E2EB11744BA98C8EFCBBB /* Travellib.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Travellib.h; path = Travellib/Travellib/Travellib.h; sourceTree = "<group>"; }; A2022DA95F26221C30E1091095D24C1B /* FrameAccessor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FrameAccessor.framework; path = FrameAccessor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A2CFD121D00A58CF6248B0B67B4C21C1 /* VENBackspaceTextField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VENBackspaceTextField.m; path = VENTokenField/VENBackspaceTextField.m; sourceTree = "<group>"; }; A3124C7C8F275318C62F2EBB014B3AFE /* Pods-enzevalos_iphone.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-enzevalos_iphone.release.xcconfig"; sourceTree = "<group>"; }; - A35CFF5FF84EBCF46F16D1F4118539F8 /* FrameAccessor.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FrameAccessor.release.xcconfig; sourceTree = "<group>"; }; A3F9C7E13AE70CD1367ACF3422C96AF8 /* Pods-enzevalos_iphoneTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-enzevalos_iphoneTests.debug.xcconfig"; sourceTree = "<group>"; }; - A4989C8A51D6C23AB155FCB5FC690AD5 /* FrameAccessor-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FrameAccessor-Info.plist"; sourceTree = "<group>"; }; - A5902427DB5BB132201F30B1CD99DE83 /* OIDTokenResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDTokenResponse.h; path = Source/OIDTokenResponse.h; sourceTree = "<group>"; }; - A834FAF29081436D270324AB22716550 /* OIDAuthStateChangeDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDAuthStateChangeDelegate.h; path = Source/OIDAuthStateChangeDelegate.h; sourceTree = "<group>"; }; - A906906ACD13737E1CD5F11DA4916911 /* GTMAppAuth-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GTMAppAuth-umbrella.h"; sourceTree = "<group>"; }; - A9246F06F478B687C6D9256097D22798 /* KeychainAccess-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "KeychainAccess-dummy.m"; sourceTree = "<group>"; }; - A9B4993842190EF59A3BF49DC79BA63A /* OIDResponseTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDResponseTypes.m; path = Source/OIDResponseTypes.m; sourceTree = "<group>"; }; - AADD951A708BC858B84DB0210212C4DE /* OIDAuthorizationService+IOS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "OIDAuthorizationService+IOS.h"; path = "Source/iOS/OIDAuthorizationService+IOS.h"; sourceTree = "<group>"; }; - AB2D938FDA3C76F75226134BF4979479 /* Keychain.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Keychain.swift; path = Lib/KeychainAccess/Keychain.swift; sourceTree = "<group>"; }; - AB81F20B3CB439B5ACC45D9ECACA5E31 /* OIDAuthState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDAuthState.m; path = Source/OIDAuthState.m; sourceTree = "<group>"; }; + A74E61CB0CAC32344E4087E5E3990F73 /* GTMSessionFetcher-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GTMSessionFetcher-prefix.pch"; sourceTree = "<group>"; }; + A77DE93713E4C32DD4DD6A28E956DC2A /* MockManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MockManager.swift; path = Source/MockManager.swift; sourceTree = "<group>"; }; + A80E28E4A56B2E4848C6158873D9F53B /* OIDAuthorizationRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDAuthorizationRequest.h; path = Source/OIDAuthorizationRequest.h; sourceTree = "<group>"; }; + AA2309D8D2DB6703AF98F0E0008EA264 /* KeychainAccess.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KeychainAccess.debug.xcconfig; sourceTree = "<group>"; }; + AAF9D8E3ED1ECA1F1D0BA2214C993267 /* OIDURLQueryComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDURLQueryComponent.h; path = Source/OIDURLQueryComponent.h; sourceTree = "<group>"; }; + AB2B3C909D326BCA5CD4EA2CC43DA469 /* ToBeStubbedReadOnlyProperty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ToBeStubbedReadOnlyProperty.swift; path = Source/Stubbing/ToBeStubbedProperty/ToBeStubbedReadOnlyProperty.swift; sourceTree = "<group>"; }; + AB5D07F27A29B3600E6908942BB242B4 /* CuckooFunctions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CuckooFunctions.swift; path = Source/CuckooFunctions.swift; sourceTree = "<group>"; }; ABA3EEB4D2AE726FD650C09044A8C19D /* Pods_enzevalos_iphoneUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_enzevalos_iphoneUITests.framework; path = "Pods-enzevalos_iphoneUITests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - ABAC06D9A4AEE4870F66E68A898BBA82 /* OIDIDToken.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDIDToken.m; path = Source/OIDIDToken.m; sourceTree = "<group>"; }; - AD928C79AEEBFD8A3CA7FF0E3C387269 /* Fingertips+Window.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Fingertips+Window.swift"; path = "QAKit/Source/Fingertips+Window.swift"; sourceTree = "<group>"; }; - AE4CDD17B693FE84072ACE8447C5DC1A /* FrameAccessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FrameAccessor.h; path = FrameAccessor/FrameAccessor.h; sourceTree = "<group>"; }; - AFD68BE9B27FBB532F465EEB42BE3449 /* VENToken.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VENToken.h; path = VENTokenField/VENToken.h; sourceTree = "<group>"; }; - B0BFDE0683C9972CFD6BBD0047434497 /* OIDExternalUserAgentIOSCustomBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDExternalUserAgentIOSCustomBrowser.h; path = Source/iOS/OIDExternalUserAgentIOSCustomBrowser.h; sourceTree = "<group>"; }; - B250E0C471611B7897A2D7B327B8AF54 /* Onboard-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Onboard-dummy.m"; sourceTree = "<group>"; }; - B2CFFF8D990949EC8D00785A9E6367FC /* BZipCompression-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BZipCompression-umbrella.h"; sourceTree = "<group>"; }; - B4D690F2A34DE0994D034B66BD7CA201 /* OIDExternalUserAgentIOSCustomBrowser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDExternalUserAgentIOSCustomBrowser.m; path = Source/iOS/OIDExternalUserAgentIOSCustomBrowser.m; sourceTree = "<group>"; }; - B6685808CB9E5D53B6E5A8DCC6E0586C /* GTMAppAuth.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = GTMAppAuth.modulemap; sourceTree = "<group>"; }; - B8B7528A265FB06861FAC5A3411A5B9B /* Travellib.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Travellib.debug.xcconfig; sourceTree = "<group>"; }; - B972C8290A52DF4BF07B6F759EBE1590 /* OIDAuthorizationResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDAuthorizationResponse.h; path = Source/OIDAuthorizationResponse.h; sourceTree = "<group>"; }; - B9EDE74A44854A0A7AE179F531D9A3B5 /* BZipCompression.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BZipCompression.release.xcconfig; sourceTree = "<group>"; }; + AC53180E9D36F34579A9D6DA94B5C3FA /* FrameAccessor-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FrameAccessor-Info.plist"; sourceTree = "<group>"; }; + AD373A117913006E701AAF31254866C6 /* OnboardingViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OnboardingViewController.m; path = Source/OnboardingViewController.m; sourceTree = "<group>"; }; + AD57CA19F9476FCCBAC12099EE0864C0 /* libMailCore-ios.a */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = archive.ar; name = "libMailCore-ios.a"; path = "cocoapods-build/lib/libMailCore-ios.a"; sourceTree = "<group>"; }; + ADC3561BACA1FA5272F93F7FFBC26A41 /* KeychainAccess-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KeychainAccess-prefix.pch"; sourceTree = "<group>"; }; + AF1546D4A3293015A0912FCECC34E745 /* TravelError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TravelError.swift; path = Travellib/Travellib/TravelError.swift; sourceTree = "<group>"; }; + B117CAF8A5792B59CCD8D90E83197CC5 /* BZipCompression.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BZipCompression.m; path = Code/BZipCompression.m; sourceTree = "<group>"; }; + B1D76C40C8C07EFE6DB52901A0E39BC5 /* ParameterMatcherFunctions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterMatcherFunctions.swift; path = Source/Matching/ParameterMatcherFunctions.swift; sourceTree = "<group>"; }; + B1F63314EC50EAE1AF5E6795C524AFC3 /* AppAuth-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AppAuth-dummy.m"; sourceTree = "<group>"; }; + B384B192F9AD9232B8EE93DF9F3E4C8B /* StubNoReturnThrowingFunction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StubNoReturnThrowingFunction.swift; path = Source/Stubbing/StubFunction/StubNoReturnThrowingFunction.swift; sourceTree = "<group>"; }; + B396CE8883C617B94FE71985C6D33EE5 /* VENToken.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VENToken.m; path = VENTokenField/VENToken.m; sourceTree = "<group>"; }; + B3FB5AE7D066EE4004BC0165A885E082 /* Set+matchers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Set+matchers.swift"; path = "Source/Matching/Set+matchers.swift"; sourceTree = "<group>"; }; + B470C3E6902CEC3A4F1C64CCE07542A9 /* QAKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QAKit.swift; path = QAKit/Source/QAKit.swift; sourceTree = "<group>"; }; + B6FF3A86D88CEA574256E6539F72DD38 /* GTMSessionFetcherService.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionFetcherService.h; path = Source/GTMSessionFetcherService.h; sourceTree = "<group>"; }; + B8AA461A7AA2F3CBBEB7B20A1FAC6126 /* StubFunction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StubFunction.swift; path = Source/Stubbing/StubFunction/StubFunction.swift; sourceTree = "<group>"; }; + B93DCDEE54941D1E92F6F48A8F8C9C5D /* GTMAppAuthFetcherAuthorization+Keychain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "GTMAppAuthFetcherAuthorization+Keychain.h"; path = "Source/GTMAppAuthFetcherAuthorization+Keychain.h"; sourceTree = "<group>"; }; + B9726AC97C04330A8D1F7037F493E23B /* AppAuth.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AppAuth.release.xcconfig; sourceTree = "<group>"; }; BB08CB628D6BCF30F8BEEFA17FF582F5 /* Pods-enzevalos_iphoneTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-enzevalos_iphoneTests-acknowledgements.markdown"; sourceTree = "<group>"; }; - BB30BBB298DDC78F9A54F70337C80D9C /* QAKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = QAKit.release.xcconfig; sourceTree = "<group>"; }; + BBE2E4F97BB341963D4EB22B435F1232 /* StubFunctionThenThrowTrait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StubFunctionThenThrowTrait.swift; path = Source/Stubbing/StubFunction/Trait/StubFunctionThenThrowTrait.swift; sourceTree = "<group>"; }; BD0F1FC16913E056EA1170E8983A3A1E /* Pods-enzevalos_iphone-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-enzevalos_iphone-frameworks.sh"; sourceTree = "<group>"; }; - BDE7B71BBA04BF11760707D3FEC689A2 /* OIDExternalUserAgent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDExternalUserAgent.h; path = Source/OIDExternalUserAgent.h; sourceTree = "<group>"; }; - BE4068A42CC70AF9E7F42CE14064A183 /* AppAuth-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "AppAuth-Info.plist"; sourceTree = "<group>"; }; - BE5F1DA905F115845996776D84B8FF47 /* OIDClientMetadataParameters.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDClientMetadataParameters.h; path = Source/OIDClientMetadataParameters.h; sourceTree = "<group>"; }; - BEDD0295DDFC4E913F8F17FC72BE9EAA /* OnboardingViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OnboardingViewController.h; path = Source/OnboardingViewController.h; sourceTree = "<group>"; }; - C176456C5066793C11BF7EB6A7D428E8 /* OIDEndSessionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDEndSessionResponse.h; path = Source/OIDEndSessionResponse.h; sourceTree = "<group>"; }; + BDDC7FD46A5055433B61E8DA26496349 /* GTMAppAuth.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GTMAppAuth.debug.xcconfig; sourceTree = "<group>"; }; + BDE2B28359EBCA12CEEDC55580E04B00 /* OIDExternalUserAgentCatalyst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDExternalUserAgentCatalyst.h; path = Source/iOS/OIDExternalUserAgentCatalyst.h; sourceTree = "<group>"; }; + BEECB06219BCF4001561782FAFAB3157 /* mailcore2-ios.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "mailcore2-ios.release.xcconfig"; sourceTree = "<group>"; }; + BF4247CAD7DB84810BCB9BBC742A8EDE /* GTMAppAuth.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMAppAuth.h; path = Source/GTMAppAuth.h; sourceTree = "<group>"; }; + C038FB2DF4A52AFDBAD7934AB908E104 /* OnboardingContentViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OnboardingContentViewController.m; path = Source/OnboardingContentViewController.m; sourceTree = "<group>"; }; + C0E57F4C20CCA5B495F092E0FEC89777 /* VENToken.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; name = VENToken.xib; path = VENTokenField/VENToken.xib; sourceTree = "<group>"; }; + C1572F13FC72146DD497872DDDBDD4B3 /* OIDClientMetadataParameters.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDClientMetadataParameters.h; path = Source/OIDClientMetadataParameters.h; sourceTree = "<group>"; }; C1998E0D8085221AD87F89B614C10E52 /* GTMSessionFetcher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = GTMSessionFetcher.framework; path = GTMSessionFetcher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C28139F98A7FAD1E2A12850FA1BE23A9 /* FrameAccessor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FrameAccessor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C3144F1F0957E634D5E9BC9B3F217C42 /* KeychainAccess-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KeychainAccess-prefix.pch"; sourceTree = "<group>"; }; - C43518A8E482456DC1401BE54A29C754 /* OIDErrorUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDErrorUtilities.h; path = Source/OIDErrorUtilities.h; sourceTree = "<group>"; }; - C4FFFE56168C80BC305D6A5034395B28 /* Travellib-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Travellib-dummy.m"; sourceTree = "<group>"; }; - C542A2901A4A13BD07436D4E6A2C5678 /* GTMAppAuth-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GTMAppAuth-prefix.pch"; sourceTree = "<group>"; }; - C577D54F7871A6143550BD831FE2DE0C /* GTMAppAuth.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMAppAuth.h; path = Source/GTMAppAuth.h; sourceTree = "<group>"; }; - C73911EDD27B150B6D062F03B141FBD2 /* OIDResponseTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDResponseTypes.h; path = Source/OIDResponseTypes.h; sourceTree = "<group>"; }; - C86D9121DA96DE9B567D22CCC313E4F1 /* OIDExternalUserAgentRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDExternalUserAgentRequest.h; path = Source/OIDExternalUserAgentRequest.h; sourceTree = "<group>"; }; - C99562DA1BA3678AC5B40A4FA0662E9A /* Travellib.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Travellib.h; path = Travellib/Travellib/Travellib.h; sourceTree = "<group>"; }; - C9A576D63A7B9AB4B2A178CDC285FAB5 /* AppAuthCore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AppAuthCore.h; path = Source/AppAuthCore.h; sourceTree = "<group>"; }; - C9C8F1E4267520CC27ECE0FDECCF77B7 /* ViewFrameAccessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ViewFrameAccessor.h; path = FrameAccessor/ViewFrameAccessor.h; sourceTree = "<group>"; }; - CB1C03A5A2D1256E867129F172E82B60 /* GTMAppAuth-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GTMAppAuth-dummy.m"; sourceTree = "<group>"; }; + C3B58F66285619CEB4EE2F1C89756CD7 /* OIDEndSessionResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDEndSessionResponse.h; path = Source/OIDEndSessionResponse.h; sourceTree = "<group>"; }; + C4BE80E742C3FC43C80965F1D3858BD4 /* GTMAppAuthFetcherAuthorization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMAppAuthFetcherAuthorization.m; path = Source/GTMAppAuthFetcherAuthorization.m; sourceTree = "<group>"; }; + C4CD52A7020A925EF953139F0E2D48D6 /* GTMAppAuthFetcherAuthorization+Keychain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "GTMAppAuthFetcherAuthorization+Keychain.m"; path = "Source/GTMAppAuthFetcherAuthorization+Keychain.m"; sourceTree = "<group>"; }; + C5B95948C0D9D565E9BA9188E3FC5541 /* __DoNotUse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = __DoNotUse.swift; path = Source/Verification/__DoNotUse.swift; sourceTree = "<group>"; }; + C5D0D686474A5A32A12DFA6E3F97F566 /* QAKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = QAKit.release.xcconfig; sourceTree = "<group>"; }; + C5F6C786B1B41478BF23B0109AAACBD2 /* VENTokenField.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VENTokenField.m; path = VENTokenField/VENTokenField.m; sourceTree = "<group>"; }; + C637C9CD9FE9DDA7F6E5A6648A8805A8 /* OIDAuthorizationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDAuthorizationResponse.m; path = Source/OIDAuthorizationResponse.m; sourceTree = "<group>"; }; + C71B25884D361176E14A02FBA821FFC0 /* GTMOAuth2KeychainCompatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMOAuth2KeychainCompatibility.m; path = Source/GTMOAuth2KeychainCompatibility/GTMOAuth2KeychainCompatibility.m; sourceTree = "<group>"; }; + C8627BC341E0F44D308CC55404A4E594 /* GTMSessionFetcherLogging.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionFetcherLogging.h; path = Source/GTMSessionFetcherLogging.h; sourceTree = "<group>"; }; + C922F8C1F85078847370F3B8859AEE94 /* OIDExternalUserAgentIOSCustomBrowser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDExternalUserAgentIOSCustomBrowser.m; path = Source/iOS/OIDExternalUserAgentIOSCustomBrowser.m; sourceTree = "<group>"; }; + C994AAB934A4AA36DCC8CACD3B09A4FE /* StubCall.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StubCall.swift; path = Source/Stubbing/StubCall.swift; sourceTree = "<group>"; }; + CA5B0C2414221D7DE536ACFBC0942FE6 /* AppAuth.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AppAuth.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CBD42F4ADF4E8040EE69892EED6FE2A6 /* Pods_enzevalos_iphone.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_enzevalos_iphone.framework; path = "Pods-enzevalos_iphone.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - CD8EA6643BF36EF31B907F5B23F154D6 /* VENTokenField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VENTokenField.h; path = VENTokenField/VENTokenField.h; sourceTree = "<group>"; }; + CD2B9B8D717A06DA109133098F21EADF /* OIDErrorUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDErrorUtilities.m; path = Source/OIDErrorUtilities.m; sourceTree = "<group>"; }; + CDDA7E8AB9E79EC0B3EEAD5AA9E8FF5A /* Onboard.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Onboard.release.xcconfig; sourceTree = "<group>"; }; + CDE051B81579E647ACB7396207C47CCF /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; + CFACE17BA9A28C26738FF95C377C3A4E /* OIDAuthStateChangeDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDAuthStateChangeDelegate.h; path = Source/OIDAuthStateChangeDelegate.h; sourceTree = "<group>"; }; + D00315874469411B38E4024828A4A4C3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + D10363976DDDD81BB53B16C7B2688A67 /* GTMSessionFetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMSessionFetcher.h; path = Source/GTMSessionFetcher.h; sourceTree = "<group>"; }; D19650D141FF0C31089440A2351C3158 /* Pods-enzevalos_iphoneTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-enzevalos_iphoneTests.modulemap"; sourceTree = "<group>"; }; - D27799DC004ABE7A6128F1AECBD83CD7 /* ViewFrameAccessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ViewFrameAccessor.m; path = FrameAccessor/ViewFrameAccessor.m; sourceTree = "<group>"; }; + D2169B84D7C975F0CD8A96EAAF4F43F3 /* Onboard-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Onboard-Info.plist"; sourceTree = "<group>"; }; + D457A22F09062BA57C2F5CBEFCDE3D72 /* AppAuth-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AppAuth-umbrella.h"; sourceTree = "<group>"; }; + D55DAFE845DCF43D4A0C029F5C00AB8D /* ArgumentCaptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ArgumentCaptor.swift; path = Source/Verification/ArgumentCaptor.swift; sourceTree = "<group>"; }; D55FB6F423DC5C04A73313CE4913EF48 /* Pods-enzevalos_iphoneTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-enzevalos_iphoneTests-acknowledgements.plist"; sourceTree = "<group>"; }; - D8B668A1953CBA5B254780BCF948E190 /* KeychainAccess-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "KeychainAccess-Info.plist"; sourceTree = "<group>"; }; - D8CC398070B7319F0B84ABA7E783D46A /* TravelError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TravelError.swift; path = Travellib/Travellib/TravelError.swift; sourceTree = "<group>"; }; - D9DD1D33BBE91118DE83FEE1BD6CBCE9 /* Onboard.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Onboard.debug.xcconfig; sourceTree = "<group>"; }; - DB2B78E76F7C6629C53D6E81B2F229BC /* VENBackspaceTextField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VENBackspaceTextField.h; path = VENTokenField/VENBackspaceTextField.h; sourceTree = "<group>"; }; - DB9164F2B86D1FAAD979FCB9C063818C /* GTMReadMonitorInputStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMReadMonitorInputStream.h; path = Source/GTMReadMonitorInputStream.h; sourceTree = "<group>"; }; - DECD64F21FE4142C01E056382EAE1862 /* GTMSessionFetcher.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GTMSessionFetcher.release.xcconfig; sourceTree = "<group>"; }; - DEFE965A33DC027B4B983026F47001A3 /* Pods-Travellib-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-Travellib-umbrella.h"; path = "Travellib/Pods/Target Support Files/Pods-Travellib/Pods-Travellib-umbrella.h"; sourceTree = "<group>"; }; - E0B553A90A352C771F96BF70DC39A6FC /* GTMSessionFetcher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = GTMSessionFetcher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E1FECE55F390618D69CA1ED1A06DB671 /* OIDURLQueryComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDURLQueryComponent.h; path = Source/OIDURLQueryComponent.h; sourceTree = "<group>"; }; - E2DD78EDC2F3C595D8F73C4E6D912C67 /* GTMMIMEDocument.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMMIMEDocument.h; path = Source/GTMMIMEDocument.h; sourceTree = "<group>"; }; - E314D57BA388CCAC0FE2A41BC3E3F4C6 /* Travellib-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Travellib-umbrella.h"; sourceTree = "<group>"; }; - E52E1947969F3FBC0FBDD3CE45F07174 /* FrameAccessor-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FrameAccessor-dummy.m"; sourceTree = "<group>"; }; - E551C472A033B2F059A6CF4C1FB377DA /* OIDGrantTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDGrantTypes.m; path = Source/OIDGrantTypes.m; sourceTree = "<group>"; }; - E554FE711888449EF53E83E9650DD098 /* OIDIDToken.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDIDToken.h; path = Source/OIDIDToken.h; sourceTree = "<group>"; }; + D5FAB51C490A63080D8FA2C2CF7A3375 /* GTMSessionFetcher-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "GTMSessionFetcher-Info.plist"; sourceTree = "<group>"; }; + DCD8DAC575C7938E3289D3683644D52B /* VENTokenField-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "VENTokenField-umbrella.h"; sourceTree = "<group>"; }; + DDC2295EB4E37FACE4504BBF99182969 /* MockBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MockBuilder.swift; path = Source/Initialization/MockBuilder.swift; sourceTree = "<group>"; }; + DF22771BE8B3058FF80267C8F05AB407 /* VENBackspaceTextField.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VENBackspaceTextField.h; path = VENTokenField/VENBackspaceTextField.h; sourceTree = "<group>"; }; + DFC9E1372EA6944A58FC3AC1325E50B0 /* OIDError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDError.h; path = Source/OIDError.h; sourceTree = "<group>"; }; + E04A95A7F6A6114BDF0941C481A21954 /* VerifyReadOnlyProperty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = VerifyReadOnlyProperty.swift; path = Source/Verification/VerifyProperty/VerifyReadOnlyProperty.swift; sourceTree = "<group>"; }; + E0C942CAFA24CDCF9D49FB0DDCC3CB22 /* OIDRegistrationRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDRegistrationRequest.m; path = Source/OIDRegistrationRequest.m; sourceTree = "<group>"; }; + E11AD3BB58CF4D093A645D0348B07B4F /* mailcore2-ios.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "mailcore2-ios.debug.xcconfig"; sourceTree = "<group>"; }; + E1DDD7716E859043D3FC6BFA0BE6EADE /* OIDFieldMapping.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDFieldMapping.h; path = Source/OIDFieldMapping.h; sourceTree = "<group>"; }; + E1F8CB326758E770B51E4D8ECE2A2629 /* BZipCompression.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = BZipCompression.modulemap; sourceTree = "<group>"; }; + E2C802FC2C178869568A00413840F245 /* Array+matchers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Array+matchers.swift"; path = "Source/Matching/Array+matchers.swift"; sourceTree = "<group>"; }; + E34E3B18DA0B2DF74509B745B7990004 /* Fingertips+Window.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Fingertips+Window.swift"; path = "QAKit/Source/Fingertips+Window.swift"; sourceTree = "<group>"; }; E5F51B1DAD06BCC5473C54525FDCED92 /* Pods-enzevalos_iphoneUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-enzevalos_iphoneUITests.modulemap"; sourceTree = "<group>"; }; - E616EFDE253E4411EA7690E14E9D1425 /* Pods-TravellibTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-TravellibTests-umbrella.h"; path = "Travellib/Pods/Target Support Files/Pods-TravellibTests/Pods-TravellibTests-umbrella.h"; sourceTree = "<group>"; }; - E62BDFB3D5A4FD5CB7EB634190B5A3FE /* GTMSessionFetcherService.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMSessionFetcherService.m; path = Source/GTMSessionFetcherService.m; sourceTree = "<group>"; }; + E8B3E6A10CB94B0990C0B26685DB16A9 /* Crypto.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Crypto.swift; path = Travellib/Travellib/Crypto.swift; sourceTree = "<group>"; }; + E8BB0E4496456DFED3924A03A8D30B90 /* OIDExternalUserAgentIOS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDExternalUserAgentIOS.h; path = Source/iOS/OIDExternalUserAgentIOS.h; sourceTree = "<group>"; }; + E8BD61ADF352E05FED80ECBD43FEE68B /* VENTokenField.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = VENTokenField.release.xcconfig; sourceTree = "<group>"; }; E8EE7F078656FABB8F6821D10FF994BB /* KeychainAccess.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = KeychainAccess.framework; path = KeychainAccess.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E8FD10CEE192D4C3C129BEE5D0A3F2F8 /* OIDScopeUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDScopeUtilities.h; path = Source/OIDScopeUtilities.h; sourceTree = "<group>"; }; - E9D57BCD2A161503F77932D55EBE68BE /* OnboardingContentViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OnboardingContentViewController.h; path = Source/OnboardingContentViewController.h; sourceTree = "<group>"; }; - EAE9763875F6F749AD21437303FECB3E /* Onboard-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Onboard-prefix.pch"; sourceTree = "<group>"; }; - EBA50778C5F4897E2B74B4B4DC358655 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; - EBC184479225AF1397DF700DCED24A10 /* OIDEndSessionRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDEndSessionRequest.m; path = Source/OIDEndSessionRequest.m; sourceTree = "<group>"; }; - EC9D0F398B2C23A29B8D46574490B418 /* BZipCompression-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BZipCompression-prefix.pch"; sourceTree = "<group>"; }; - EFACF925EE2E92A1B6DD9BEA5857E5EA /* OIDExternalUserAgentIOS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDExternalUserAgentIOS.m; path = Source/iOS/OIDExternalUserAgentIOS.m; sourceTree = "<group>"; }; - F0000118A9BFF111DD4DECFFC9E4B86D /* VENTokenField-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "VENTokenField-Info.plist"; sourceTree = "<group>"; }; - F0D9DE892F23ECF085B82D721BE82319 /* OnboardingContentViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OnboardingContentViewController.m; path = Source/OnboardingContentViewController.m; sourceTree = "<group>"; }; - F10E4DB412C75E78AFB189C9C25785AB /* OIDAuthorizationResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDAuthorizationResponse.m; path = Source/OIDAuthorizationResponse.m; sourceTree = "<group>"; }; - F199C9DFD63905BC6A82986057059E51 /* OIDURLSessionProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDURLSessionProvider.m; path = Source/OIDURLSessionProvider.m; sourceTree = "<group>"; }; - F1FEB229DC57ABAD3E1E2AF03089FD87 /* KeychainAccess.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KeychainAccess.release.xcconfig; sourceTree = "<group>"; }; - F36971D3760EDCB10A95761A158C544E /* BZipCompression.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BZipCompression.debug.xcconfig; sourceTree = "<group>"; }; - F419332D750E13E8F4EA99B7529024D7 /* AppAuth.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = AppAuth.modulemap; sourceTree = "<group>"; }; - F4CE1103075C24BA0E27C50AA217ADFE /* VENTokenField.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = VENTokenField.release.xcconfig; sourceTree = "<group>"; }; - F721AC3998A798DFED63370F80838ADD /* VENTokenField-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "VENTokenField-dummy.m"; sourceTree = "<group>"; }; - F74BBD4765E72678BFB51DA9EE5F1205 /* GTMReadMonitorInputStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMReadMonitorInputStream.m; path = Source/GTMReadMonitorInputStream.m; sourceTree = "<group>"; }; - FA05F0ABA070EE62F19DD0D6BF937153 /* GTMAppAuth.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GTMAppAuth.release.xcconfig; sourceTree = "<group>"; }; - FAE12F41E2C284A754D442AF01C917CB /* OIDTokenRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDTokenRequest.m; path = Source/OIDTokenRequest.m; sourceTree = "<group>"; }; - FAF92FF5DCCD3D9CA4BC3023BC09EDF1 /* mailcore2-ios.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "mailcore2-ios.release.xcconfig"; sourceTree = "<group>"; }; - FC1AB9AC5221A6F6931C343B1C498068 /* OIDExternalUserAgentCatalyst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OIDExternalUserAgentCatalyst.m; path = Source/iOS/OIDExternalUserAgentCatalyst.m; sourceTree = "<group>"; }; - FC480D4CE90D299E295C6765D06E2222 /* FrameAccessor-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FrameAccessor-prefix.pch"; sourceTree = "<group>"; }; + E9ECBF6AC068DE5078E9682FECA57C3E /* CreateMock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CreateMock.swift; path = Source/Initialization/CreateMock.swift; sourceTree = "<group>"; }; + EB960C9F46FAE3D79FC0E699753E4F83 /* QAKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "QAKit-prefix.pch"; sourceTree = "<group>"; }; + EC158505A9A6D4B18E5582FB88817EFA /* VENToken.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VENToken.h; path = VENTokenField/VENToken.h; sourceTree = "<group>"; }; + ED70B322D881C2664B6FC7467FE730A7 /* GTMAppAuthFetcherAuthorization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMAppAuthFetcherAuthorization.h; path = Source/GTMAppAuthFetcherAuthorization.h; sourceTree = "<group>"; }; + ED822F1E8982AC5B1983E8BB47D2984A /* GTMGatherInputStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GTMGatherInputStream.m; path = Source/GTMGatherInputStream.m; sourceTree = "<group>"; }; + EDB87FBB387B3997354493739ACBA506 /* OnboardingContentViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OnboardingContentViewController.h; path = Source/OnboardingContentViewController.h; sourceTree = "<group>"; }; + EE1107C90994DDA2009B91EDF80F7F7C /* BZipCompression-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BZipCompression-umbrella.h"; sourceTree = "<group>"; }; + EE711CF52AE8D5DC314989E8F2187DAA /* QAKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = QAKit.modulemap; sourceTree = "<group>"; }; + EF131DD05638F069B9A88386F0EA1014 /* OIDDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDDefines.h; path = Source/OIDDefines.h; sourceTree = "<group>"; }; + F1DC9A732540D7564AFBF6FB8131AF08 /* OIDAuthStateErrorDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDAuthStateErrorDelegate.h; path = Source/OIDAuthStateErrorDelegate.h; sourceTree = "<group>"; }; + F31B4DC40404D8F7DC282F1893C8E00E /* OIDTokenResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDTokenResponse.h; path = Source/OIDTokenResponse.h; sourceTree = "<group>"; }; + F5CEB2B2F00C043803A334F01BE67A8E /* StubFunctionThenCallRealImplementationTrait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StubFunctionThenCallRealImplementationTrait.swift; path = Source/Stubbing/StubFunction/Trait/StubFunctionThenCallRealImplementationTrait.swift; sourceTree = "<group>"; }; + F620336CA6DE84D167C3262BEFF5E22C /* KeychainAccess.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = KeychainAccess.modulemap; sourceTree = "<group>"; }; + F7FCA8C6F0A68D69E74BB4951690DD8C /* GTMMIMEDocument.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GTMMIMEDocument.h; path = Source/GTMMIMEDocument.h; sourceTree = "<group>"; }; + F90C851DA8EEB78DA89C1A234538E426 /* Travellib-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Travellib-dummy.m"; sourceTree = "<group>"; }; + F94A93CEE2EF3BD221E0998238C5BE0F /* Onboard.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Onboard.debug.xcconfig; sourceTree = "<group>"; }; + F97C692573F74AC2B105210E9AE8222A /* VENTokenField-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "VENTokenField-Info.plist"; sourceTree = "<group>"; }; + FBCF008ED7FF46CADD33A9CA00DF48CC /* Cuckoo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Cuckoo.modulemap; sourceTree = "<group>"; }; + FC6184A03E08837DB914B621DE9B51BB /* OIDScopes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OIDScopes.h; path = Source/OIDScopes.h; sourceTree = "<group>"; }; + FD5F45794EC6F7EABC1CC6EC645D4F94 /* ToBeStubbedProperty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ToBeStubbedProperty.swift; path = Source/Stubbing/ToBeStubbedProperty/ToBeStubbedProperty.swift; sourceTree = "<group>"; }; FE308C8C832ACD98DA3ACD9AFCB12E15 /* Travellib.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Travellib.framework; path = Travellib.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -571,14 +671,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 39B2E18C85FCFA82D8B521BCE1639DA8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 26C2EA7526DBA630B667D3CA43E98AFA /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 410D155C946D0F5DA64257333D96F9F7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -629,6 +721,23 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + C4857EFB275084595F894F52AE20C7A0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0819810A209662632EB478991DAD9EFD /* Foundation.framework in Frameworks */, + 3106268F8316F5222052BFAF69C0622D /* XCTest.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C9149224623536900E68725350CE1D72 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E7BEFDFE8BF28D208B1B84DB46DDF603 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; CB089C0756E8E1AD121EB64C55205CDD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -648,54 +757,79 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0563A0C5E4444C5C718E806B141DC5BE /* Support Files */ = { + 0CE9F45892A84D5AEC2B98B09F1B8C35 /* iOS */ = { + isa = PBXGroup; + children = ( + D00315874469411B38E4024828A4A4C3 /* Foundation.framework */, + 5A58381CB09118CEC6F03E1B66D7051C /* SafariServices.framework */, + 35C3C2F568A40C6382DA00579A1847A6 /* Security.framework */, + CDE051B81579E647ACB7396207C47CCF /* SystemConfiguration.framework */, + 705422CFDAD1FA4D22E16EE08158FD35 /* XCTest.framework */, + ); + name = iOS; + sourceTree = "<group>"; + }; + 19773EFC32DB573CB20EC27309571296 /* Support Files */ = { isa = PBXGroup; children = ( - F419332D750E13E8F4EA99B7529024D7 /* AppAuth.modulemap */, - 1FBE2915129ED5A5F54FDFAD91DD0DB7 /* AppAuth-dummy.m */, - BE4068A42CC70AF9E7F42CE14064A183 /* AppAuth-Info.plist */, - 2E487A1F4DAEFF649C742AF61741B4AB /* AppAuth-prefix.pch */, - 418212F81A738500A487ACEE9DD72BEE /* AppAuth-umbrella.h */, - 2B260999F9D21E3AD138BF46EB76C174 /* AppAuth.debug.xcconfig */, - 4B73844D52E3313AA8A99F54FD2E75D7 /* AppAuth.release.xcconfig */, + 6179196A0C9D385EA6C293B1DB8F7105 /* GTMAppAuth.modulemap */, + 0751EA7F6DFA2C912C72A189ED7FB56D /* GTMAppAuth-dummy.m */, + 5A2C8C9A38CC6F06F52A2DA07D77A075 /* GTMAppAuth-Info.plist */, + 76F2C848D2DE7E15AE6A16117D1FD1C5 /* GTMAppAuth-prefix.pch */, + 9CFF68B259F8554E3EDA78C5403D3214 /* GTMAppAuth-umbrella.h */, + BDDC7FD46A5055433B61E8DA26496349 /* GTMAppAuth.debug.xcconfig */, + 0D307E7FDF6CA5D2C95A61ED8734DA59 /* GTMAppAuth.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/AppAuth"; + path = "../Target Support Files/GTMAppAuth"; sourceTree = "<group>"; }; - 1010977FB900ADBFDE5E8854F2CF8A7E /* Travellib */ = { + 229C0262A15A529FFCBC2A0BEE131828 /* ExternalUserAgent */ = { isa = PBXGroup; children = ( - 727C85C0A21720B2F8CE9B43352F10D6 /* Crypto.swift */, - DEFE965A33DC027B4B983026F47001A3 /* Pods-Travellib-umbrella.h */, - E616EFDE253E4411EA7690E14E9D1425 /* Pods-TravellibTests-umbrella.h */, - 9BD11B794D0910529D4D3E9DAAEA5ABE /* Traveler.swift */, - D8CC398070B7319F0B84ABA7E783D46A /* TravelError.swift */, - C99562DA1BA3678AC5B40A4FA0662E9A /* Travellib.h */, - C19B7CB2D757F07D9D1AF9C24EEB2AF2 /* Support Files */, + 80E26D1326AF7D9C0DB8C23D76A97E9A /* AppAuth.h */, + 49BE3CE5323AC76CF52141EEA567F3E2 /* OIDAuthorizationService+IOS.h */, + 9E29593864817BC1F13489411243C9EE /* OIDAuthorizationService+IOS.m */, + 59FB8AEB9478D2AAEBE6C24309E5C78A /* OIDAuthState+IOS.h */, + 5AB50EE3821C45FC7941B426BEF76BAC /* OIDAuthState+IOS.m */, + BDE2B28359EBCA12CEEDC55580E04B00 /* OIDExternalUserAgentCatalyst.h */, + 22A23C301ED9674E4A8ED2E5FFC36743 /* OIDExternalUserAgentCatalyst.m */, + E8BB0E4496456DFED3924A03A8D30B90 /* OIDExternalUserAgentIOS.h */, + 1725A04C86652A82953A352C74D3C801 /* OIDExternalUserAgentIOS.m */, + 70CCBF839DCE8A27640D8573F4FA3954 /* OIDExternalUserAgentIOSCustomBrowser.h */, + C922F8C1F85078847370F3B8859AEE94 /* OIDExternalUserAgentIOSCustomBrowser.m */, ); - name = Travellib; - path = Travellib; + name = ExternalUserAgent; sourceTree = "<group>"; }; - 219D4549695F810E181A2AFDCD8E1140 /* Full */ = { + 2DD89271C70762E4E6F0F15284EBBA7C /* FrameAccessor */ = { isa = PBXGroup; children = ( - A1F3B440039486FBAF2F3A9064CC8AD1 /* GTMGatherInputStream.h */, - 6C125AC1C4E60C99F23511B122196D5B /* GTMGatherInputStream.m */, - E2DD78EDC2F3C595D8F73C4E6D912C67 /* GTMMIMEDocument.h */, - 685E292D51DC7C13298D72F10C803BAD /* GTMMIMEDocument.m */, - DB9164F2B86D1FAAD979FCB9C063818C /* GTMReadMonitorInputStream.h */, - F74BBD4765E72678BFB51DA9EE5F1205 /* GTMReadMonitorInputStream.m */, + 388CE4AD3BD4E8EDDE21FB7BB28DED26 /* FrameAccessor.h */, + 0F49EB21FD2096A4B25FBE8254018D85 /* ScrollViewFrameAccessor.h */, + 27C703AE0AD959B9A4FCDAF6CCDB28CD /* ScrollViewFrameAccessor.m */, + 08E6381D5B2D3AF668225FC3BA869F14 /* ViewFrameAccessor.h */, + 39E474585CC3193BC8233801066574AF /* ViewFrameAccessor.m */, + 92C256FA28771968E41CEE4ACDBD4C5B /* Support Files */, ); - name = Full; + name = FrameAccessor; + path = FrameAccessor; sourceTree = "<group>"; }; - 21F3B14DD9DDBC3EA4E49859E284093A /* Products */ = { + 2E067B46F87C745451FC127F2B943787 /* Frameworks */ = { + isa = PBXGroup; + children = ( + AD57CA19F9476FCCBAC12099EE0864C0 /* libMailCore-ios.a */, + ); + name = Frameworks; + sourceTree = "<group>"; + }; + 32102967FFA630837362F53D31EF5DFF /* Products */ = { isa = PBXGroup; children = ( 3FD1B4C1246D643E9476438C28048FA8 /* AppAuth.framework */, 092EABC3645C368907672EF589871A0F /* BZipCompression.framework */, + 06BBD3298EFC08D95EEFE526BDDCDBD1 /* Cuckoo.framework */, A2022DA95F26221C30E1091095D24C1B /* FrameAccessor.framework */, 6FD122EA0AB9AB2A8FFA5F676C795DF0 /* GTMAppAuth.framework */, C1998E0D8085221AD87F89B614C10E52 /* GTMSessionFetcher.framework */, @@ -711,105 +845,71 @@ name = Products; sourceTree = "<group>"; }; - 22E919273CED79BF54AEF8FD91C7E6A1 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 920302CA35D8015EAE8568564789286E /* libMailCore-ios.a */, - ); - name = Frameworks; - sourceTree = "<group>"; - }; - 236114726EDEB6AC2BC1FD0C86F8D899 /* Support Files */ = { - isa = PBXGroup; - children = ( - B6685808CB9E5D53B6E5A8DCC6E0586C /* GTMAppAuth.modulemap */, - CB1C03A5A2D1256E867129F172E82B60 /* GTMAppAuth-dummy.m */, - 223D5F3DCB9FF9C2B170CC1C5A772846 /* GTMAppAuth-Info.plist */, - C542A2901A4A13BD07436D4E6A2C5678 /* GTMAppAuth-prefix.pch */, - A906906ACD13737E1CD5F11DA4916911 /* GTMAppAuth-umbrella.h */, - 4A42FD0A298D1863B910C67804BFC1A2 /* GTMAppAuth.debug.xcconfig */, - FA05F0ABA070EE62F19DD0D6BF937153 /* GTMAppAuth.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/GTMAppAuth"; - sourceTree = "<group>"; - }; - 2A6EAA245ADBC340E80DC11B7D49E248 /* Support Files */ = { + 3369A1DDFCDF559650BE2341B453C594 /* KeychainAccess */ = { isa = PBXGroup; children = ( - 228BDC3D990FC8D5B9F6E4E0B32757BD /* GTMSessionFetcher.modulemap */, - 313DEC27F992FDD17F8E86E2B5A58923 /* GTMSessionFetcher-dummy.m */, - 57A92A85D12D7890DA0A29768F172386 /* GTMSessionFetcher-Info.plist */, - 9C4CF9B2AEB30E7AD1B546CB4FC7082B /* GTMSessionFetcher-prefix.pch */, - 674CE0F81C1A946D6ED46C72D6400D3B /* GTMSessionFetcher-umbrella.h */, - 450AB89DE7AEDF84590DC29D920ECF49 /* GTMSessionFetcher.debug.xcconfig */, - DECD64F21FE4142C01E056382EAE1862 /* GTMSessionFetcher.release.xcconfig */, + 0E1CD8BD5AFA4254EA69F190A23EE768 /* Keychain.swift */, + A19B0315E48166C977EEC625AAA35A69 /* Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/GTMSessionFetcher"; + name = KeychainAccess; + path = KeychainAccess; sourceTree = "<group>"; }; - 2C72E87E63AA815A290536D107E6973B /* GTMAppAuth */ = { + 35F7F64B43E6F86EF677361BA7E4B90F /* GTMSessionFetcher */ = { isa = PBXGroup; children = ( - C577D54F7871A6143550BD831FE2DE0C /* GTMAppAuth.h */, - 7BB5031D6FA19D76C392F5E139223D4B /* GTMAppAuthFetcherAuthorization.h */, - 5291F2E3185809EAD55951A61771A645 /* GTMAppAuthFetcherAuthorization.m */, - 91E3D2FE38F402CDBFD63355B3597100 /* GTMAppAuthFetcherAuthorization+Keychain.h */, - 31FF25875334920BA016972E8E24CE0E /* GTMAppAuthFetcherAuthorization+Keychain.m */, - 501FDBAD335B4334A1D655D395BFF200 /* GTMKeychain.h */, - 98B07AE2EB6344D4451D4A842191E69F /* GTMKeychain_iOS.m */, - 73F0A3AC6960A027601A8C2305A1C02C /* GTMOAuth2KeychainCompatibility.h */, - 45AEF4CF5C9A42E36CDAEB8F05DB553D /* GTMOAuth2KeychainCompatibility.m */, - 236114726EDEB6AC2BC1FD0C86F8D899 /* Support Files */, + 43EE6E670A8ACF8099A8F57B0A844C4A /* Core */, + 6BB5D3E89056EBB3E0E227353C1863B5 /* Full */, + 4CE5AB8E41DA232DD87B1B3A00260F38 /* Support Files */, ); - name = GTMAppAuth; - path = GTMAppAuth; + name = GTMSessionFetcher; + path = GTMSessionFetcher; sourceTree = "<group>"; }; - 2EA9A0A37EEF6834A14E41CDF90D6A0B /* Support Files */ = { + 4169E19EFEDC05B30742361F24A082E1 /* VENTokenField */ = { isa = PBXGroup; children = ( - 4A3738B0B162BA815693986DC1E5713D /* Onboard.modulemap */, - B250E0C471611B7897A2D7B327B8AF54 /* Onboard-dummy.m */, - 855DF2671EE5D06C9008206BD9BB5F66 /* Onboard-Info.plist */, - EAE9763875F6F749AD21437303FECB3E /* Onboard-prefix.pch */, - 06292A2CC8A3AB950AEF9311615EDE17 /* Onboard-umbrella.h */, - D9DD1D33BBE91118DE83FEE1BD6CBCE9 /* Onboard.debug.xcconfig */, - 7C17204593CCCD8B803CBED5C3FBD5B4 /* Onboard.release.xcconfig */, + DF22771BE8B3058FF80267C8F05AB407 /* VENBackspaceTextField.h */, + 314380F0A390219BB89B203F9BB04229 /* VENBackspaceTextField.m */, + EC158505A9A6D4B18E5582FB88817EFA /* VENToken.h */, + B396CE8883C617B94FE71985C6D33EE5 /* VENToken.m */, + 7315FEC668B7848A2C7044E00404AC6A /* VENTokenField.h */, + C5F6C786B1B41478BF23B0109AAACBD2 /* VENTokenField.m */, + F385AC508B8C48AF7EB0F9DD2E39F2E8 /* Resources */, + 9D0CDAD0E7EFE965B204BF529127C04C /* Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/Onboard"; + name = VENTokenField; + path = VENTokenField; sourceTree = "<group>"; }; - 45F243CEADD644F99B866C49D6220004 /* Core */ = { + 43EE6E670A8ACF8099A8F57B0A844C4A /* Core */ = { isa = PBXGroup; children = ( - 1AE6F30A58188AEAAB7B1D37DAD513A2 /* GTMSessionFetcher.h */, - 1C70D1D809477133E739575C6ABCFC5A /* GTMSessionFetcher.m */, - 52313C74F1FA2A71711CF7C3176385DE /* GTMSessionFetcherLogging.h */, - 20ECCD47795BCDA13A64FC9B51373208 /* GTMSessionFetcherLogging.m */, - 134D6B77949CD568B51F418595305440 /* GTMSessionFetcherService.h */, - E62BDFB3D5A4FD5CB7EB634190B5A3FE /* GTMSessionFetcherService.m */, - 72AC19B11B05D953A9B5F507BD57C754 /* GTMSessionUploadFetcher.h */, - 88C10EF169100A20297C0CD50F85DB61 /* GTMSessionUploadFetcher.m */, + D10363976DDDD81BB53B16C7B2688A67 /* GTMSessionFetcher.h */, + 755706958E771FD2085D19DF83D7A289 /* GTMSessionFetcher.m */, + C8627BC341E0F44D308CC55404A4E594 /* GTMSessionFetcherLogging.h */, + 6090D495EFC3CA00AF405EF994B7C467 /* GTMSessionFetcherLogging.m */, + B6FF3A86D88CEA574256E6539F72DD38 /* GTMSessionFetcherService.h */, + 1A6AC7C930015F4F04B077E0A4C445A2 /* GTMSessionFetcherService.m */, + 0207A04F8F7A878FA6A52B796E5782A3 /* GTMSessionUploadFetcher.h */, + 166AD5FD977A155699E3332F5C662659 /* GTMSessionUploadFetcher.m */, ); name = Core; sourceTree = "<group>"; }; - 499F184032A0B72A64990C5BBD416CAB /* Support Files */ = { + 4CE5AB8E41DA232DD87B1B3A00260F38 /* Support Files */ = { isa = PBXGroup; children = ( - 22DAEA671AA3A365D00C113BF25E6AAD /* QAKit.modulemap */, - 2B3E4D7EDA2A85AD6A8BE02F53C60B97 /* QAKit-dummy.m */, - 4D9DA68EA9D3168E86D3E1A4D28B3886 /* QAKit-Info.plist */, - 970495D0A551E6CD31E0E28CDB6EC85E /* QAKit-prefix.pch */, - 98B23B96E413EE81FAC392ABA9C15018 /* QAKit-umbrella.h */, - 41B249081C191DCEC7303A2BEDC662E6 /* QAKit.debug.xcconfig */, - BB30BBB298DDC78F9A54F70337C80D9C /* QAKit.release.xcconfig */, + 618FA7D635FD8B32EF43673293CC1129 /* GTMSessionFetcher.modulemap */, + 169BBEAEA30F2F9685C97A4DB1CF9188 /* GTMSessionFetcher-dummy.m */, + D5FAB51C490A63080D8FA2C2CF7A3375 /* GTMSessionFetcher-Info.plist */, + A74E61CB0CAC32344E4087E5E3990F73 /* GTMSessionFetcher-prefix.pch */, + 1B5CB63AB634A44895C3952B72C2CBC8 /* GTMSessionFetcher-umbrella.h */, + 9BBBD8036206D91D13468D19BA6E1658 /* GTMSessionFetcher.debug.xcconfig */, + 180B17AA87559164002CD90F2B41E0DD /* GTMSessionFetcher.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/QAKit"; + path = "../Target Support Files/GTMSessionFetcher"; sourceTree = "<group>"; }; 51F1E7BDF23373D0F0021AF121BAB909 /* Pods-enzevalos_iphoneUITests */ = { @@ -828,6 +928,16 @@ path = "Target Support Files/Pods-enzevalos_iphoneUITests"; sourceTree = "<group>"; }; + 54DF9F9EC2CCE341F97C1DF09EEC121A /* Cuckoo */ = { + isa = PBXGroup; + children = ( + 977DA57A15DA07E5B3B1B2747E5C8C68 /* Support Files */, + ED0232E6A0B920FAFB875FCF4992904B /* Swift */, + ); + name = Cuckoo; + path = Cuckoo; + sourceTree = "<group>"; + }; 5B664A16CB8BDAAC3861E21B02DC02DD /* Targets Support Files */ = { isa = PBXGroup; children = ( @@ -838,126 +948,95 @@ name = "Targets Support Files"; sourceTree = "<group>"; }; - 64EA163CF39566C50E55A515F9C3E611 /* Support Files */ = { + 5E280E3A1888A71C405E4ECE7F7B91F5 /* BZipCompression */ = { isa = PBXGroup; children = ( - 06EFA7A63BC474AFD47190B7E72374E2 /* KeychainAccess.modulemap */, - A9246F06F478B687C6D9256097D22798 /* KeychainAccess-dummy.m */, - D8B668A1953CBA5B254780BCF948E190 /* KeychainAccess-Info.plist */, - C3144F1F0957E634D5E9BC9B3F217C42 /* KeychainAccess-prefix.pch */, - 4D25AF28995F6FB9047C54A3376B8AB1 /* KeychainAccess-umbrella.h */, - 2E3DE85C96F5CF7C7B5BCC0FDEDB44C7 /* KeychainAccess.debug.xcconfig */, - F1FEB229DC57ABAD3E1E2AF03089FD87 /* KeychainAccess.release.xcconfig */, + 747DECACF006ED085F4C399389134625 /* BZipCompression.h */, + B117CAF8A5792B59CCD8D90E83197CC5 /* BZipCompression.m */, + E950303A943DF2F1CEC04B455590F4C6 /* Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/KeychainAccess"; + name = BZipCompression; + path = BZipCompression; sourceTree = "<group>"; }; - 653F8C96A01ADBA02B7F7F331B7D58C4 /* Support Files */ = { + 65FFC5E07C422987394A4314FFFE0C29 /* Pods */ = { isa = PBXGroup; children = ( - 976379DA8C7C64823DD1A8C704D39603 /* BZipCompression.modulemap */, - 337F80367D57E3819AF7BB951F33D86D /* BZipCompression-dummy.m */, - 8BDA54B38E28861E47F894A4B9478C2E /* BZipCompression-Info.plist */, - EC9D0F398B2C23A29B8D46574490B418 /* BZipCompression-prefix.pch */, - B2CFFF8D990949EC8D00785A9E6367FC /* BZipCompression-umbrella.h */, - F36971D3760EDCB10A95761A158C544E /* BZipCompression.debug.xcconfig */, - B9EDE74A44854A0A7AE179F531D9A3B5 /* BZipCompression.release.xcconfig */, + D1D794A4A809DE2AE60D4D293CFA5C22 /* AppAuth */, + 5E280E3A1888A71C405E4ECE7F7B91F5 /* BZipCompression */, + 54DF9F9EC2CCE341F97C1DF09EEC121A /* Cuckoo */, + 2DD89271C70762E4E6F0F15284EBBA7C /* FrameAccessor */, + 6E9BC484625A3EA959D3D1922C170099 /* GTMAppAuth */, + 35F7F64B43E6F86EF677361BA7E4B90F /* GTMSessionFetcher */, + 3369A1DDFCDF559650BE2341B453C594 /* KeychainAccess */, + AE611E25CC94D0AE97EC2E93A3D40668 /* mailcore2-ios */, + E3B288AC0A31828901BD47A5806293EF /* Onboard */, + F8A5B11C5BB4459F0173B1E8AD171529 /* QAKit */, + A9B7FDBF3EE53286F66E7F0307F632D5 /* Travellib */, + 4169E19EFEDC05B30742361F24A082E1 /* VENTokenField */, ); - name = "Support Files"; - path = "../Target Support Files/BZipCompression"; + name = Pods; sourceTree = "<group>"; }; - 69242FEFD9223BCAC50A8205864D52FA /* Support Files */ = { + 6BB5D3E89056EBB3E0E227353C1863B5 /* Full */ = { isa = PBXGroup; children = ( - 913C2A08E8A40EFEA31A30DEB0772E23 /* mailcore2-ios.debug.xcconfig */, - FAF92FF5DCCD3D9CA4BC3023BC09EDF1 /* mailcore2-ios.release.xcconfig */, + 345EEE76521DFB84216BC31FFC52EC59 /* GTMGatherInputStream.h */, + ED822F1E8982AC5B1983E8BB47D2984A /* GTMGatherInputStream.m */, + F7FCA8C6F0A68D69E74BB4951690DD8C /* GTMMIMEDocument.h */, + 81FE771C8968B27E0D873AC45823F05D /* GTMMIMEDocument.m */, + 5EB5BB3A09EC294392D2577706DFE5C9 /* GTMReadMonitorInputStream.h */, + 7AF62B6AA5F939CEE4310DA9FFD15695 /* GTMReadMonitorInputStream.m */, ); - name = "Support Files"; - path = "../Target Support Files/mailcore2-ios"; + name = Full; sourceTree = "<group>"; }; - 6DCC36712746F890B3BDFBBF410B0D35 /* Core */ = { + 6E9BC484625A3EA959D3D1922C170099 /* GTMAppAuth */ = { isa = PBXGroup; children = ( - C9A576D63A7B9AB4B2A178CDC285FAB5 /* AppAuthCore.h */, - 933054D9A7159070442A0CEA1B73EC48 /* OIDAuthorizationRequest.h */, - 3C22EA01DDF23B4AFFB323B0D0D21855 /* OIDAuthorizationRequest.m */, - B972C8290A52DF4BF07B6F759EBE1590 /* OIDAuthorizationResponse.h */, - F10E4DB412C75E78AFB189C9C25785AB /* OIDAuthorizationResponse.m */, - 024D68E96B040B50A1E969DE34351C16 /* OIDAuthorizationService.h */, - 16EBFA3B11A08EDAC85B03F08E2847F4 /* OIDAuthorizationService.m */, - 9665515A5B5A27477428D0316E98E9F8 /* OIDAuthState.h */, - AB81F20B3CB439B5ACC45D9ECACA5E31 /* OIDAuthState.m */, - A834FAF29081436D270324AB22716550 /* OIDAuthStateChangeDelegate.h */, - 12A2BA8DF42DD2BA3018E877AE50EA2D /* OIDAuthStateErrorDelegate.h */, - BE5F1DA905F115845996776D84B8FF47 /* OIDClientMetadataParameters.h */, - 6CE0DF45C3510006AAF35D82401E76A0 /* OIDClientMetadataParameters.m */, - 08708264FD12070B75BBC2ABFF77FB48 /* OIDDefines.h */, - 554CA0274B71B1E15A8911D0C7F71C5C /* OIDEndSessionRequest.h */, - EBC184479225AF1397DF700DCED24A10 /* OIDEndSessionRequest.m */, - C176456C5066793C11BF7EB6A7D428E8 /* OIDEndSessionResponse.h */, - 5A523736F7B57D9E28D69B70DDD84907 /* OIDEndSessionResponse.m */, - 8F7B312431BAE7D8D029378384B0E3DB /* OIDError.h */, - 6C14EBE32FF71D7D0B8A1A70EE21DE87 /* OIDError.m */, - C43518A8E482456DC1401BE54A29C754 /* OIDErrorUtilities.h */, - 9203FEFA2C3BDE7D313F707DDC5A4AEF /* OIDErrorUtilities.m */, - BDE7B71BBA04BF11760707D3FEC689A2 /* OIDExternalUserAgent.h */, - C86D9121DA96DE9B567D22CCC313E4F1 /* OIDExternalUserAgentRequest.h */, - 5B5353496874780BF797D079DE53C8DF /* OIDExternalUserAgentSession.h */, - 63708C883348198F13D9B21F5598C091 /* OIDFieldMapping.h */, - 706D4680DF0B5965684DB92C2108B0DB /* OIDFieldMapping.m */, - 1FF943D6DB5A7D2345FBDC483E8498EE /* OIDGrantTypes.h */, - E551C472A033B2F059A6CF4C1FB377DA /* OIDGrantTypes.m */, - E554FE711888449EF53E83E9650DD098 /* OIDIDToken.h */, - ABAC06D9A4AEE4870F66E68A898BBA82 /* OIDIDToken.m */, - 860FB3AF8682DBDAB7C48E1D26837D0A /* OIDRegistrationRequest.h */, - 583A1B91CF18CAF006139084BF33A0BB /* OIDRegistrationRequest.m */, - 6AD52F42BC024633ECD042A68C058C8F /* OIDRegistrationResponse.h */, - 5E19C9E904D0BFA87A7B6EEC3242A0F7 /* OIDRegistrationResponse.m */, - C73911EDD27B150B6D062F03B141FBD2 /* OIDResponseTypes.h */, - A9B4993842190EF59A3BF49DC79BA63A /* OIDResponseTypes.m */, - 3A7ADEE71BB5F21FE2D9F3A28957A637 /* OIDScopes.h */, - 38D116E4C6A1662008CB042B7CA55B0E /* OIDScopes.m */, - E8FD10CEE192D4C3C129BEE5D0A3F2F8 /* OIDScopeUtilities.h */, - 79D266FC44AFB762084C11B380D53A4A /* OIDScopeUtilities.m */, - 46BDC68A51B00FC49B4AEB7C99945976 /* OIDServiceConfiguration.h */, - 9126F7033BCF5914C8B3FC7EC50B9EB2 /* OIDServiceConfiguration.m */, - 70A76CF2E3098D1BC68B9BBE0E40B2CB /* OIDServiceDiscovery.h */, - 016072065A47B08930E7149640E8F4FA /* OIDServiceDiscovery.m */, - 8CDB2547DE6C745203D031BE321530CE /* OIDTokenRequest.h */, - FAE12F41E2C284A754D442AF01C917CB /* OIDTokenRequest.m */, - A5902427DB5BB132201F30B1CD99DE83 /* OIDTokenResponse.h */, - 3C7DCBF585DFC4B11B8D68278ED69BBA /* OIDTokenResponse.m */, - 17C7C58BDBF1D79C63BE002F72771CAA /* OIDTokenUtilities.h */, - 2790A34ED6899F5EA8940B5FE0B00FE7 /* OIDTokenUtilities.m */, - E1FECE55F390618D69CA1ED1A06DB671 /* OIDURLQueryComponent.h */, - 94592B63F8D8A1BE6894681463BAD489 /* OIDURLQueryComponent.m */, - 09DBB759DB57572B42F7B51E2E6255DF /* OIDURLSessionProvider.h */, - F199C9DFD63905BC6A82986057059E51 /* OIDURLSessionProvider.m */, + BF4247CAD7DB84810BCB9BBC742A8EDE /* GTMAppAuth.h */, + ED70B322D881C2664B6FC7467FE730A7 /* GTMAppAuthFetcherAuthorization.h */, + C4BE80E742C3FC43C80965F1D3858BD4 /* GTMAppAuthFetcherAuthorization.m */, + B93DCDEE54941D1E92F6F48A8F8C9C5D /* GTMAppAuthFetcherAuthorization+Keychain.h */, + C4CD52A7020A925EF953139F0E2D48D6 /* GTMAppAuthFetcherAuthorization+Keychain.m */, + 1E5E48AD306D9850ED10270B8F7D29DF /* GTMKeychain.h */, + 9A0C0EAF5CA11CE80FA18D33A2492464 /* GTMKeychain_iOS.m */, + 26E10373A0C2E2968A6872CD4AB4BE0C /* GTMOAuth2KeychainCompatibility.h */, + C71B25884D361176E14A02FBA821FFC0 /* GTMOAuth2KeychainCompatibility.m */, + 19773EFC32DB573CB20EC27309571296 /* Support Files */, ); - name = Core; + name = GTMAppAuth; + path = GTMAppAuth; sourceTree = "<group>"; }; - 70809D80DA58CBD79D81A6E72F4B0429 /* QAKit */ = { + 7294AE23222039ECEF622AF71690461C /* Support Files */ = { isa = PBXGroup; children = ( - 9EAE894AE1E9FFD121747A63C5C17841 /* Fingertips.swift */, - AD928C79AEEBFD8A3CA7FF0E3C387269 /* Fingertips+Window.swift */, - 664A033A45B8EAC46704878582565791 /* QAKit.swift */, - 499F184032A0B72A64990C5BBD416CAB /* Support Files */, + 021E67B562D7298EFE4605B5F3D9B785 /* Onboard.modulemap */, + 75C09DB4587E49C59C9A787EDF639AAC /* Onboard-dummy.m */, + D2169B84D7C975F0CD8A96EAAF4F43F3 /* Onboard-Info.plist */, + 6C5EDFF2BC9F23B806E1A30E349B7C4F /* Onboard-prefix.pch */, + 84C83FCF999782BC4EC835058107AF07 /* Onboard-umbrella.h */, + F94A93CEE2EF3BD221E0998238C5BE0F /* Onboard.debug.xcconfig */, + CDDA7E8AB9E79EC0B3EEAD5AA9E8FF5A /* Onboard.release.xcconfig */, ); - name = QAKit; - path = QAKit; + name = "Support Files"; + path = "../Target Support Files/Onboard"; sourceTree = "<group>"; }; - 765B226F1D6B9FF2FF830258E85E7C1B /* Resources */ = { + 72FD3387CE8FEBC009174E77F9F20057 /* Support Files */ = { isa = PBXGroup; children = ( - 99C857B6AF7EAD9858C11512B2F9B225 /* VENToken.xib */, + EE711CF52AE8D5DC314989E8F2187DAA /* QAKit.modulemap */, + 469BCDE5C0DA7C2FB4CFF856DC7929B6 /* QAKit-dummy.m */, + 0A4A0B4F19EA6E5ED12296A8CE19FF0B /* QAKit-Info.plist */, + EB960C9F46FAE3D79FC0E699753E4F83 /* QAKit-prefix.pch */, + 4622ABCBB05EE771427C0989FDE87679 /* QAKit-umbrella.h */, + 65AB0C30DDFBA8C7793BF43FE896259A /* QAKit.debug.xcconfig */, + C5D0D686474A5A32A12DFA6E3F97F566 /* QAKit.release.xcconfig */, ); - name = Resources; + name = "Support Files"; + path = "../Target Support Files/QAKit"; sourceTree = "<group>"; }; 77AA20A4FF3755AA8456116C9CCF18EB /* Pods-enzevalos_iphoneTests */ = { @@ -976,165 +1055,237 @@ path = "Target Support Files/Pods-enzevalos_iphoneTests"; sourceTree = "<group>"; }; - 7F01C2F03F8B9F6E4A4D35E5A09CF5FD /* GTMSessionFetcher */ = { + 79A884F8796269143EB989FAD0B9467A /* Frameworks */ = { isa = PBXGroup; children = ( - 45F243CEADD644F99B866C49D6220004 /* Core */, - 219D4549695F810E181A2AFDCD8E1140 /* Full */, - 2A6EAA245ADBC340E80DC11B7D49E248 /* Support Files */, + CA5B0C2414221D7DE536ACFBC0942FE6 /* AppAuth.framework */, + 998D3EAB92332CA9510FEAFC8E3C1B6D /* FrameAccessor.framework */, + 74970A1C026D191553C1562383409A9F /* GTMSessionFetcher.framework */, + 0CE9F45892A84D5AEC2B98B09F1B8C35 /* iOS */, ); - name = GTMSessionFetcher; - path = GTMSessionFetcher; + name = Frameworks; sourceTree = "<group>"; }; - 7F9EA83D7A1F753B4A9EA07BAE819230 /* Support Files */ = { + 8FEED844774B34E109F206E656B2A802 /* Core */ = { isa = PBXGroup; children = ( - 5366B9393E990E2B83C2D3CA9BCFEA10 /* VENTokenField.modulemap */, - F721AC3998A798DFED63370F80838ADD /* VENTokenField-dummy.m */, - F0000118A9BFF111DD4DECFFC9E4B86D /* VENTokenField-Info.plist */, - 6B5863A0BF13B3BF7E4BCA31F60A844A /* VENTokenField-prefix.pch */, - 52DFB5F177A897AC6481C543C289A916 /* VENTokenField-umbrella.h */, - 04B7B0AD20FAEAA7833E0880BADACD82 /* VENTokenField.debug.xcconfig */, - F4CE1103075C24BA0E27C50AA217ADFE /* VENTokenField.release.xcconfig */, + 3C7CC42F7EEC4B1E0C06C4BDFFD2FFAF /* AppAuthCore.h */, + A80E28E4A56B2E4848C6158873D9F53B /* OIDAuthorizationRequest.h */, + 9F26E27305241ED2941C6F13F5DB8E5C /* OIDAuthorizationRequest.m */, + 91F596C78936385A056D7090CFB8DA20 /* OIDAuthorizationResponse.h */, + C637C9CD9FE9DDA7F6E5A6648A8805A8 /* OIDAuthorizationResponse.m */, + 53B21D2846157010A9ED4AFBEB967A43 /* OIDAuthorizationService.h */, + 67D1AE11C49DE424E99F3D3DCD95048A /* OIDAuthorizationService.m */, + 09C49ACA6AEC891FAF5131866B971D01 /* OIDAuthState.h */, + 3A0817CBC06EFEABB68355EC44490F72 /* OIDAuthState.m */, + CFACE17BA9A28C26738FF95C377C3A4E /* OIDAuthStateChangeDelegate.h */, + F1DC9A732540D7564AFBF6FB8131AF08 /* OIDAuthStateErrorDelegate.h */, + C1572F13FC72146DD497872DDDBDD4B3 /* OIDClientMetadataParameters.h */, + 0EC66481ADD41C0E318E08C3E2668F77 /* OIDClientMetadataParameters.m */, + EF131DD05638F069B9A88386F0EA1014 /* OIDDefines.h */, + 5B83487CC87B3A97D5B32F08046EAF02 /* OIDEndSessionRequest.h */, + 438AA5F4754304505C055236FAD62F25 /* OIDEndSessionRequest.m */, + C3B58F66285619CEB4EE2F1C89756CD7 /* OIDEndSessionResponse.h */, + 653B355D41FE9EA98D3EF8B67E1105BA /* OIDEndSessionResponse.m */, + DFC9E1372EA6944A58FC3AC1325E50B0 /* OIDError.h */, + 4ED2898D6E531C41C0E487368F14A0CB /* OIDError.m */, + 8B41D5A28272AC5626D4883CA65B2C30 /* OIDErrorUtilities.h */, + CD2B9B8D717A06DA109133098F21EADF /* OIDErrorUtilities.m */, + 96231D29A4220BC5232593AFF8DA8D6C /* OIDExternalUserAgent.h */, + 66D631D8F017387DCB6D31B02BF775C0 /* OIDExternalUserAgentRequest.h */, + 83AD136B5A2B5B4F38CB366488B86A9E /* OIDExternalUserAgentSession.h */, + E1DDD7716E859043D3FC6BFA0BE6EADE /* OIDFieldMapping.h */, + 63B10FA6C3A3B395B547876BF91719B7 /* OIDFieldMapping.m */, + 52CF8E026DE9FF9B29B9603BBE0C79CE /* OIDGrantTypes.h */, + 347269A1E3C274AED04C05BC12E9743F /* OIDGrantTypes.m */, + 527A81C20F5296CAB524D7901B9B2F17 /* OIDIDToken.h */, + 243426059A979572E45B8B7C303E9769 /* OIDIDToken.m */, + 0A3D35505DBB4AAACE5857DC9F10EEE6 /* OIDRegistrationRequest.h */, + E0C942CAFA24CDCF9D49FB0DDCC3CB22 /* OIDRegistrationRequest.m */, + 139FD01A03BDFB5A5A4DCF732EF2D8B5 /* OIDRegistrationResponse.h */, + 7C190BB01087AAE9DED10CB2BD6AA3DF /* OIDRegistrationResponse.m */, + 9B009C0B74A53FEA08024ED7CCE17993 /* OIDResponseTypes.h */, + 1E5F32072334132027323E26BE4FC849 /* OIDResponseTypes.m */, + FC6184A03E08837DB914B621DE9B51BB /* OIDScopes.h */, + 0C9E17B1EA6E0883768F2B60C32C9129 /* OIDScopes.m */, + 365537CFFC07C7DD9ED8C6E17E23584D /* OIDScopeUtilities.h */, + 4168A3C20FA04F19FFF7DED6C7D8C1BB /* OIDScopeUtilities.m */, + 15C6A6B73AB1BC2B96923A3A082049E7 /* OIDServiceConfiguration.h */, + 85E7FF350B0038A764C2927597B1BF95 /* OIDServiceConfiguration.m */, + 07AD4BB7C2A6405E45E18ECCD1E93D29 /* OIDServiceDiscovery.h */, + 48194220CF8A2022CE0B9B9540E9463F /* OIDServiceDiscovery.m */, + 624C29E8DDE17C865AF115A0C690817E /* OIDTokenRequest.h */, + 7E67C57D34C362A1FDD3E8BD24271AE2 /* OIDTokenRequest.m */, + F31B4DC40404D8F7DC282F1893C8E00E /* OIDTokenResponse.h */, + 3BA429DFF85D43D55FED909CC73F39E4 /* OIDTokenResponse.m */, + 6DCD1826FB236B7FEB93AF1365B84B06 /* OIDTokenUtilities.h */, + 8E8DBB02A15FE91A82848798F1D0F3A6 /* OIDTokenUtilities.m */, + AAF9D8E3ED1ECA1F1D0BA2214C993267 /* OIDURLQueryComponent.h */, + 3032F8C910080F52807454CC58006ACB /* OIDURLQueryComponent.m */, + 3FA018B86EB60FDBB0C08958F94741D7 /* OIDURLSessionProvider.h */, + 7576FADDB817996F997686AE7089CB71 /* OIDURLSessionProvider.m */, + ); + name = Core; + sourceTree = "<group>"; + }; + 92C256FA28771968E41CEE4ACDBD4C5B /* Support Files */ = { + isa = PBXGroup; + children = ( + 86542D03BEE6B66F00ED983DD9F769A7 /* FrameAccessor.modulemap */, + 62594AD63335DE71576A831C8A9620B5 /* FrameAccessor-dummy.m */, + AC53180E9D36F34579A9D6DA94B5C3FA /* FrameAccessor-Info.plist */, + 3A21F4568E7B4C633EDC151FD18B5658 /* FrameAccessor-prefix.pch */, + 85F5D6FFEDA1E30E9506AFDCDF5E0966 /* FrameAccessor-umbrella.h */, + 3FEC086140004F32C52903A239FDC43A /* FrameAccessor.debug.xcconfig */, + 77721C328992B0CA7C6A9E07CDB243B4 /* FrameAccessor.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/VENTokenField"; + path = "../Target Support Files/FrameAccessor"; sourceTree = "<group>"; }; - 811F311B46BEAE3E4B7745F60AE33126 /* FrameAccessor */ = { + 977DA57A15DA07E5B3B1B2747E5C8C68 /* Support Files */ = { isa = PBXGroup; children = ( - AE4CDD17B693FE84072ACE8447C5DC1A /* FrameAccessor.h */, - 3CFAC0D5CE1A58925290E73AB2D69442 /* ScrollViewFrameAccessor.h */, - 93700687B696D85BCA75AE80EE915AC3 /* ScrollViewFrameAccessor.m */, - C9C8F1E4267520CC27ECE0FDECCF77B7 /* ViewFrameAccessor.h */, - D27799DC004ABE7A6128F1AECBD83CD7 /* ViewFrameAccessor.m */, - EB243D52EEE0940B88FA9331A61DDC52 /* Support Files */, + FBCF008ED7FF46CADD33A9CA00DF48CC /* Cuckoo.modulemap */, + 3F95655CEBB3CE8804414EA78BC0F1FD /* Cuckoo-dummy.m */, + 6977490AB913F3F6B40FF2DE497173F9 /* Cuckoo-Info.plist */, + 08040A8BC025410DAFC476884EDC3A2E /* Cuckoo-prefix.pch */, + 74133C2E3526746F35E8EFACAE49CC6B /* Cuckoo-umbrella.h */, + 5AC7561D19F7D96C053C015C3DB7F1C0 /* Cuckoo.debug.xcconfig */, + 208600C1EA04661F87537436F1F271A4 /* Cuckoo.release.xcconfig */, ); - name = FrameAccessor; - path = FrameAccessor; + name = "Support Files"; + path = "../Target Support Files/Cuckoo"; sourceTree = "<group>"; }; - 8A7D22CC943F35E6E53F27B92DC38E03 /* Onboard */ = { + 9D0CDAD0E7EFE965B204BF529127C04C /* Support Files */ = { isa = PBXGroup; children = ( - E9D57BCD2A161503F77932D55EBE68BE /* OnboardingContentViewController.h */, - F0D9DE892F23ECF085B82D721BE82319 /* OnboardingContentViewController.m */, - BEDD0295DDFC4E913F8F17FC72BE9EAA /* OnboardingViewController.h */, - 64EA1EF50878DB21015C7FA2B70C3ED4 /* OnboardingViewController.m */, - 2EA9A0A37EEF6834A14E41CDF90D6A0B /* Support Files */, + 7BDEBD7D700E90A724AE06C345F02CA4 /* VENTokenField.modulemap */, + 829380389944E01CC8008B5281E3C350 /* VENTokenField-dummy.m */, + F97C692573F74AC2B105210E9AE8222A /* VENTokenField-Info.plist */, + 494206AA2AE6F4F00DC19EC1B7DCE96E /* VENTokenField-prefix.pch */, + DCD8DAC575C7938E3289D3683644D52B /* VENTokenField-umbrella.h */, + 5C568BCABCBFA12E70C2AA78DACABF7D /* VENTokenField.debug.xcconfig */, + E8BD61ADF352E05FED80ECBD43FEE68B /* VENTokenField.release.xcconfig */, ); - name = Onboard; - path = Onboard; + name = "Support Files"; + path = "../Target Support Files/VENTokenField"; sourceTree = "<group>"; }; - 922F04CAA2F89D9BCE68325F020E30BB /* mailcore2-ios */ = { + A19B0315E48166C977EEC625AAA35A69 /* Support Files */ = { isa = PBXGroup; children = ( - 22E919273CED79BF54AEF8FD91C7E6A1 /* Frameworks */, - 69242FEFD9223BCAC50A8205864D52FA /* Support Files */, + F620336CA6DE84D167C3262BEFF5E22C /* KeychainAccess.modulemap */, + 5542169F691E5050732ADEF821CBD9F9 /* KeychainAccess-dummy.m */, + 2CAC89B1DE8370DA1F5378E92CB06ADB /* KeychainAccess-Info.plist */, + ADC3561BACA1FA5272F93F7FFBC26A41 /* KeychainAccess-prefix.pch */, + 70C3E4E7BCB2907D86C480BCEF0A6C41 /* KeychainAccess-umbrella.h */, + AA2309D8D2DB6703AF98F0E0008EA264 /* KeychainAccess.debug.xcconfig */, + 8A42F2921E2AFAFB8FBBC802FBD0F6DD /* KeychainAccess.release.xcconfig */, ); - name = "mailcore2-ios"; - path = "mailcore2-ios"; + name = "Support Files"; + path = "../Target Support Files/KeychainAccess"; sourceTree = "<group>"; }; - 9A52DAA325C4DF6435180CDF6B6C6A6B /* Pods */ = { + A9B7FDBF3EE53286F66E7F0307F632D5 /* Travellib */ = { isa = PBXGroup; children = ( - A4D87830D88F937DFF6B503CDC39E47F /* AppAuth */, - D437A869D95D1D55E1CAAF6B6FB803E3 /* BZipCompression */, - 811F311B46BEAE3E4B7745F60AE33126 /* FrameAccessor */, - 2C72E87E63AA815A290536D107E6973B /* GTMAppAuth */, - 7F01C2F03F8B9F6E4A4D35E5A09CF5FD /* GTMSessionFetcher */, - BC968D8EB120E5D980E66EADC4580E71 /* KeychainAccess */, - 922F04CAA2F89D9BCE68325F020E30BB /* mailcore2-ios */, - 8A7D22CC943F35E6E53F27B92DC38E03 /* Onboard */, - 70809D80DA58CBD79D81A6E72F4B0429 /* QAKit */, - 1010977FB900ADBFDE5E8854F2CF8A7E /* Travellib */, - FB9C9941768919038EFC4D50DFC431C6 /* VENTokenField */, + E8B3E6A10CB94B0990C0B26685DB16A9 /* Crypto.swift */, + 3B0B950386EC5C6E075A20EA1866958E /* Pods-Travellib-umbrella.h */, + 3F6D8B19D8C5744CACA7ABECBBA5111A /* Pods-TravellibTests-umbrella.h */, + 0C070C653D373DE52170DDB177BC9BB7 /* Traveler.swift */, + AF1546D4A3293015A0912FCECC34E745 /* TravelError.swift */, + A19BC50D5D9E2EB11744BA98C8EFCBBB /* Travellib.h */, + BBEA345F3A778DC1F0AD0678900EE796 /* Support Files */, ); - name = Pods; + name = Travellib; + path = Travellib; sourceTree = "<group>"; }; - A4D87830D88F937DFF6B503CDC39E47F /* AppAuth */ = { + AE611E25CC94D0AE97EC2E93A3D40668 /* mailcore2-ios */ = { isa = PBXGroup; children = ( - 6DCC36712746F890B3BDFBBF410B0D35 /* Core */, - EA3C05F26ADCFE5E1AB10E1AC17D92A3 /* ExternalUserAgent */, - 0563A0C5E4444C5C718E806B141DC5BE /* Support Files */, + 2E067B46F87C745451FC127F2B943787 /* Frameworks */, + C2548908A4C72050C80C7931B460B0C0 /* Support Files */, ); - name = AppAuth; - path = AppAuth; + name = "mailcore2-ios"; + path = "mailcore2-ios"; sourceTree = "<group>"; }; - AC044D97B8AA799186D6AAE28547C743 /* iOS */ = { + BBEA345F3A778DC1F0AD0678900EE796 /* Support Files */ = { isa = PBXGroup; children = ( - 33FD9BC2BFF958E6A9F735D987247F7E /* Foundation.framework */, - 19636C711461DE4E287E9E7F9BD70B72 /* SafariServices.framework */, - 6886021395E6D8437B5579928B7D335E /* Security.framework */, - EBA50778C5F4897E2B74B4B4DC358655 /* SystemConfiguration.framework */, + 9288911B811C4CB554B62751E75942EA /* Travellib.modulemap */, + F90C851DA8EEB78DA89C1A234538E426 /* Travellib-dummy.m */, + 6D15F8177B9F9AD086BB5649024A1CF2 /* Travellib-Info.plist */, + 644840CFFFC92B200B03A67C55B92674 /* Travellib-prefix.pch */, + 09895DAB4C22B29B6DBD3FA45D14676A /* Travellib-umbrella.h */, + 32BCD4F7E3C7EE8846EBB9A35F5A2757 /* Travellib.debug.xcconfig */, + 237B6D38A08197A6F4096468C1EBAD4A /* Travellib.release.xcconfig */, ); - name = iOS; + name = "Support Files"; + path = "../Target Support Files/Travellib"; sourceTree = "<group>"; }; - BC968D8EB120E5D980E66EADC4580E71 /* KeychainAccess */ = { + C08744EA134B3B6B247DD62BE180907B /* Support Files */ = { isa = PBXGroup; children = ( - AB2D938FDA3C76F75226134BF4979479 /* Keychain.swift */, - 64EA163CF39566C50E55A515F9C3E611 /* Support Files */, + 397CEE3D01B8A15AD581D3D4C8F17BCA /* AppAuth.modulemap */, + B1F63314EC50EAE1AF5E6795C524AFC3 /* AppAuth-dummy.m */, + 465A62453455471A9E9FEFB5422B010D /* AppAuth-Info.plist */, + 093A209DDF4602E0613666C9929F0FDD /* AppAuth-prefix.pch */, + D457A22F09062BA57C2F5CBEFCDE3D72 /* AppAuth-umbrella.h */, + 376EEBE9FC5D5274FDE0FC7349C31628 /* AppAuth.debug.xcconfig */, + B9726AC97C04330A8D1F7037F493E23B /* AppAuth.release.xcconfig */, ); - name = KeychainAccess; - path = KeychainAccess; + name = "Support Files"; + path = "../Target Support Files/AppAuth"; sourceTree = "<group>"; }; - C19B7CB2D757F07D9D1AF9C24EEB2AF2 /* Support Files */ = { + C2548908A4C72050C80C7931B460B0C0 /* Support Files */ = { isa = PBXGroup; children = ( - 4C47BAD7F73346C00D884B6C2DD9F20D /* Travellib.modulemap */, - C4FFFE56168C80BC305D6A5034395B28 /* Travellib-dummy.m */, - 67E5945DA182D157FC3A6728272F23B5 /* Travellib-Info.plist */, - 7841F5112312FF2E8EA55912AFD57998 /* Travellib-prefix.pch */, - E314D57BA388CCAC0FE2A41BC3E3F4C6 /* Travellib-umbrella.h */, - B8B7528A265FB06861FAC5A3411A5B9B /* Travellib.debug.xcconfig */, - 1C992F4D8DF8229F4BC6B3A62072BCEE /* Travellib.release.xcconfig */, + E11AD3BB58CF4D093A645D0348B07B4F /* mailcore2-ios.debug.xcconfig */, + BEECB06219BCF4001561782FAFAB3157 /* mailcore2-ios.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/Travellib"; + path = "../Target Support Files/mailcore2-ios"; sourceTree = "<group>"; }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - D7CD322FEA06ABD938B3967AC0E73BF8 /* Frameworks */, - 9A52DAA325C4DF6435180CDF6B6C6A6B /* Pods */, - 21F3B14DD9DDBC3EA4E49859E284093A /* Products */, + 79A884F8796269143EB989FAD0B9467A /* Frameworks */, + 65FFC5E07C422987394A4314FFFE0C29 /* Pods */, + 32102967FFA630837362F53D31EF5DFF /* Products */, 5B664A16CB8BDAAC3861E21B02DC02DD /* Targets Support Files */, ); sourceTree = "<group>"; }; - D437A869D95D1D55E1CAAF6B6FB803E3 /* BZipCompression */ = { + D1D794A4A809DE2AE60D4D293CFA5C22 /* AppAuth */ = { isa = PBXGroup; children = ( - 442DDB418F0A559D3ECF8D3FD5B8CB0C /* BZipCompression.h */, - 1EB683BB2AA3569F817AF790D9133C5D /* BZipCompression.m */, - 653F8C96A01ADBA02B7F7F331B7D58C4 /* Support Files */, + 8FEED844774B34E109F206E656B2A802 /* Core */, + 229C0262A15A529FFCBC2A0BEE131828 /* ExternalUserAgent */, + C08744EA134B3B6B247DD62BE180907B /* Support Files */, ); - name = BZipCompression; - path = BZipCompression; + name = AppAuth; + path = AppAuth; sourceTree = "<group>"; }; - D7CD322FEA06ABD938B3967AC0E73BF8 /* Frameworks */ = { + E3B288AC0A31828901BD47A5806293EF /* Onboard */ = { isa = PBXGroup; children = ( - 84582BE4049BBD1F459F9198789E0602 /* AppAuth.framework */, - C28139F98A7FAD1E2A12850FA1BE23A9 /* FrameAccessor.framework */, - E0B553A90A352C771F96BF70DC39A6FC /* GTMSessionFetcher.framework */, - AC044D97B8AA799186D6AAE28547C743 /* iOS */, + EDB87FBB387B3997354493739ACBA506 /* OnboardingContentViewController.h */, + C038FB2DF4A52AFDBAD7934AB908E104 /* OnboardingContentViewController.m */, + 1BB14C4DA00AD3A53EB6A0FFA08846B9 /* OnboardingViewController.h */, + AD373A117913006E701AAF31254866C6 /* OnboardingViewController.m */, + 7294AE23222039ECEF622AF71690461C /* Support Files */, ); - name = Frameworks; + name = Onboard; + path = Onboard; sourceTree = "<group>"; }; E69837D7252F1A43BBAC5405165EEB2C /* Pods-enzevalos_iphone */ = { @@ -1154,53 +1305,86 @@ path = "Target Support Files/Pods-enzevalos_iphone"; sourceTree = "<group>"; }; - EA3C05F26ADCFE5E1AB10E1AC17D92A3 /* ExternalUserAgent */ = { + E950303A943DF2F1CEC04B455590F4C6 /* Support Files */ = { isa = PBXGroup; children = ( - 9E6E505C2A5264A1870E1F465F15EA9E /* AppAuth.h */, - AADD951A708BC858B84DB0210212C4DE /* OIDAuthorizationService+IOS.h */, - 561320071D216FA121C69E291F45FBC4 /* OIDAuthorizationService+IOS.m */, - 926E13353CAC7D9D73102498530CD61B /* OIDAuthState+IOS.h */, - 4DEC71CE2220E1C69D9270533208974E /* OIDAuthState+IOS.m */, - 7738F675485A6F2C18B712ADDBD27A2E /* OIDExternalUserAgentCatalyst.h */, - FC1AB9AC5221A6F6931C343B1C498068 /* OIDExternalUserAgentCatalyst.m */, - 6F42FEB9A389EF0952693B96AB86006E /* OIDExternalUserAgentIOS.h */, - EFACF925EE2E92A1B6DD9BEA5857E5EA /* OIDExternalUserAgentIOS.m */, - B0BFDE0683C9972CFD6BBD0047434497 /* OIDExternalUserAgentIOSCustomBrowser.h */, - B4D690F2A34DE0994D034B66BD7CA201 /* OIDExternalUserAgentIOSCustomBrowser.m */, + E1F8CB326758E770B51E4D8ECE2A2629 /* BZipCompression.modulemap */, + 34F37F625FCD2CA82E4476DAFA69CDC2 /* BZipCompression-dummy.m */, + 2229D23E01E3C71F9E857FBBD8B3ED40 /* BZipCompression-Info.plist */, + 30F25CBB4B6B4D3F0E8263FA19D68E71 /* BZipCompression-prefix.pch */, + EE1107C90994DDA2009B91EDF80F7F7C /* BZipCompression-umbrella.h */, + 0CC12D2FDB716E1F0838DB883B32F100 /* BZipCompression.debug.xcconfig */, + 8ED911403AC5CBBA4BA13648897F91FD /* BZipCompression.release.xcconfig */, ); - name = ExternalUserAgent; + name = "Support Files"; + path = "../Target Support Files/BZipCompression"; sourceTree = "<group>"; }; - EB243D52EEE0940B88FA9331A61DDC52 /* Support Files */ = { + ED0232E6A0B920FAFB875FCF4992904B /* Swift */ = { isa = PBXGroup; children = ( - 119A4DF2DBE9891410F92D659FB03661 /* FrameAccessor.modulemap */, - E52E1947969F3FBC0FBDD3CE45F07174 /* FrameAccessor-dummy.m */, - A4989C8A51D6C23AB155FCB5FC690AD5 /* FrameAccessor-Info.plist */, - FC480D4CE90D299E295C6765D06E2222 /* FrameAccessor-prefix.pch */, - 3E4D106EBB62B605C65BF8064C967930 /* FrameAccessor-umbrella.h */, - 9985A41A56D6AF95950A96B2B53F4537 /* FrameAccessor.debug.xcconfig */, - A35CFF5FF84EBCF46F16D1F4118539F8 /* FrameAccessor.release.xcconfig */, + C5B95948C0D9D565E9BA9188E3FC5541 /* __DoNotUse.swift */, + D55DAFE845DCF43D4A0C029F5C00AB8D /* ArgumentCaptor.swift */, + E2C802FC2C178869568A00413840F245 /* Array+matchers.swift */, + 92359912058C21BB229129E9C4079C6B /* BaseStubFunctionTrait.swift */, + 853883B64771E69F9C1B8127BB14D705 /* CallMatcher.swift */, + 5B563EE9A8FA8791C3A46068933332CD /* CallMatcherFunctions.swift */, + E9ECBF6AC068DE5078E9682FECA57C3E /* CreateMock.swift */, + AB5D07F27A29B3600E6908942BB242B4 /* CuckooFunctions.swift */, + 923CC5D1B4DCF5E2E91666531E442051 /* DefaultValueRegistry.swift */, + 475B68A678CD68F47F967A093BF7DF96 /* Dictionary+matchers.swift */, + 657567CCFA7BA065F5FC91186906F829 /* Matchable.swift */, + 07CB395E586DFFCDE2F9AF0B60CCA012 /* Mock.swift */, + DDC2295EB4E37FACE4504BBF99182969 /* MockBuilder.swift */, + 0F9234787F8A74FA5A90E5855229390B /* Mocked.swift */, + A77DE93713E4C32DD4DD6A28E956DC2A /* MockManager.swift */, + 7FAD3CF4575E602DEF370ADC711DDD44 /* MockManager+preconfigured.swift */, + 2FF8ED6665715871581165CB8FF421D1 /* ParameterMatcher.swift */, + B1D76C40C8C07EFE6DB52901A0E39BC5 /* ParameterMatcherFunctions.swift */, + B3FB5AE7D066EE4004BC0165A885E082 /* Set+matchers.swift */, + 84F599F5B705576EAADB89D05A974323 /* Stub.swift */, + 36285088FEA3AB79FA555A6B5B495C23 /* StubAction.swift */, + 7817D71CF7694DF2D64A276F4D43F5B2 /* StubbingProxy.swift */, + C994AAB934A4AA36DCC8CACD3B09A4FE /* StubCall.swift */, + B8AA461A7AA2F3CBBEB7B20A1FAC6126 /* StubFunction.swift */, + F5CEB2B2F00C043803A334F01BE67A8E /* StubFunctionThenCallRealImplementationTrait.swift */, + 5A44D6461EF8902029D25738C4F64081 /* StubFunctionThenDoNothingTrait.swift */, + 559879B50DBE2EE91AADEAD3D9038A2A /* StubFunctionThenReturnTrait.swift */, + 097317A151EF11ABA1DB263F59660077 /* StubFunctionThenThrowingTrait.swift */, + BBE2E4F97BB341963D4EB22B435F1232 /* StubFunctionThenThrowTrait.swift */, + 320F92CAB959E89115F46F6BB9B76A26 /* StubFunctionThenTrait.swift */, + 0232267B03E13A411C62417144023E55 /* StubNoReturnFunction.swift */, + B384B192F9AD9232B8EE93DF9F3E4C8B /* StubNoReturnThrowingFunction.swift */, + 68962DB155D3E7445780C69894ACEC7A /* StubThrowingFunction.swift */, + 43152F329B447AA08FD20CDB4AB92E3B /* ThreadLocal.swift */, + FD5F45794EC6F7EABC1CC6EC645D4F94 /* ToBeStubbedProperty.swift */, + AB2B3C909D326BCA5CD4EA2CC43DA469 /* ToBeStubbedReadOnlyProperty.swift */, + 95BCC88A6CEBF4FA88ED7EC7EEA1A1A7 /* Utils.swift */, + 7A5FD2239AF98C3506DDE39D1754BF60 /* VerificationProxy.swift */, + 63FAA15069F0BEC65AF59D612757B780 /* VerifyProperty.swift */, + E04A95A7F6A6114BDF0941C481A21954 /* VerifyReadOnlyProperty.swift */, + ); + name = Swift; + sourceTree = "<group>"; + }; + F385AC508B8C48AF7EB0F9DD2E39F2E8 /* Resources */ = { + isa = PBXGroup; + children = ( + C0E57F4C20CCA5B495F092E0FEC89777 /* VENToken.xib */, ); - name = "Support Files"; - path = "../Target Support Files/FrameAccessor"; + name = Resources; sourceTree = "<group>"; }; - FB9C9941768919038EFC4D50DFC431C6 /* VENTokenField */ = { + F8A5B11C5BB4459F0173B1E8AD171529 /* QAKit */ = { isa = PBXGroup; children = ( - DB2B78E76F7C6629C53D6E81B2F229BC /* VENBackspaceTextField.h */, - A2CFD121D00A58CF6248B0B67B4C21C1 /* VENBackspaceTextField.m */, - AFD68BE9B27FBB532F465EEB42BE3449 /* VENToken.h */, - 482816C82337F85E7552A426F98291D6 /* VENToken.m */, - CD8EA6643BF36EF31B907F5B23F154D6 /* VENTokenField.h */, - 16F05544154830B522FB28E7B036EC22 /* VENTokenField.m */, - 765B226F1D6B9FF2FF830258E85E7C1B /* Resources */, - 7F9EA83D7A1F753B4A9EA07BAE819230 /* Support Files */, + 687F037F64F99721265F686D5A282FB6 /* Fingertips.swift */, + E34E3B18DA0B2DF74509B745B7990004 /* Fingertips+Window.swift */, + B470C3E6902CEC3A4F1C64CCE07542A9 /* QAKit.swift */, + 72FD3387CE8FEBC009174E77F9F20057 /* Support Files */, ); - name = VENTokenField; - path = VENTokenField; + name = QAKit; + path = QAKit; sourceTree = "<group>"; }; /* End PBXGroup section */ @@ -1245,6 +1429,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 5E91C56A167DDA4C1B3B21F73F15F81F /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 3E46C65DF524C695EE4AEA5560D6AE6E /* Pods-enzevalos_iphone-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 67A8BE506AD530BA98E9E7DD5FFF43AA /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -1344,14 +1536,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C9CA14AFBDE0093CC2B11FAAFB76CED5 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 2B3A92E67B1F57678F0C96DA40F463E1 /* Pods-enzevalos_iphone-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; D9B9A62886F27C012671476E409836B6 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -1371,6 +1555,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + FAD94F9D8C8F6929527A06E53FBEC27D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + C9812DB34DB8CB7B2FAEAB9278EABB77 /* Cuckoo-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ @@ -1525,33 +1717,52 @@ }; CAD7DA284C4255B7575F137B771245E9 /* Pods-enzevalos_iphone */ = { isa = PBXNativeTarget; - buildConfigurationList = 5400445D54755BB1A4C0A88851E609DB /* Build configuration list for PBXNativeTarget "Pods-enzevalos_iphone" */; + buildConfigurationList = DBF011188BD25CBECBE0EA3373801394 /* Build configuration list for PBXNativeTarget "Pods-enzevalos_iphone" */; buildPhases = ( - C9CA14AFBDE0093CC2B11FAAFB76CED5 /* Headers */, - 80CB83147C96C29F250B2C77748218A7 /* Sources */, - 39B2E18C85FCFA82D8B521BCE1639DA8 /* Frameworks */, - 5876173CDAE7877C307F91961A59FD91 /* Resources */, + 5E91C56A167DDA4C1B3B21F73F15F81F /* Headers */, + 11C0969733088F1283CA1242624C701C /* Sources */, + C9149224623536900E68725350CE1D72 /* Frameworks */, + 427E8C2E093792B228980E01C92E501D /* Resources */, ); buildRules = ( ); dependencies = ( - 4C993D02A5B5C55207CED2B2CE642499 /* PBXTargetDependency */, - 150005A7071BC5C4A1F1546C71AD3693 /* PBXTargetDependency */, - 36D22D19A8213BA543EC9BE143673B05 /* PBXTargetDependency */, - B4D0DF5BB365BD80097A55DD226B5582 /* PBXTargetDependency */, - DCD56D8648B7D9AB39D5FFA8975E2ABE /* PBXTargetDependency */, - B8DA41553C9A2D28B0DB68E309F5F125 /* PBXTargetDependency */, - C1B746100700F8AA3C394CF3808EC2DA /* PBXTargetDependency */, - 59E078B2D18A143C4AF2E44122E60DDB /* PBXTargetDependency */, - 920C041020CC5BC81B86124E9ADD03D2 /* PBXTargetDependency */, - 378D840354F355161B1E23E8DE20DBC1 /* PBXTargetDependency */, - E4B45D17B38000EEECDF73FBDEA10E5A /* PBXTargetDependency */, + A169E388F0FEA742E04D1E15291300A3 /* PBXTargetDependency */, + 9EAF3AC0590B8C7A42EDF4D4C6EF628E /* PBXTargetDependency */, + 8FB73EF8C2DBB7002D0915296AAD42E4 /* PBXTargetDependency */, + BB28AF70B9EF80DBC87755DDAFF9356D /* PBXTargetDependency */, + 3818739B3269A3B78DBD840BB7B2488B /* PBXTargetDependency */, + 379F3B8893C6FD5F1540E5A81DB86446 /* PBXTargetDependency */, + 627FA81A845A350D674ED1DFFB31DCFE /* PBXTargetDependency */, + 491E9555B25BCEFF27E133CB42C53E8A /* PBXTargetDependency */, + 85BCA4440A00C8DF80F04A4C9F163A45 /* PBXTargetDependency */, + 1DC28961099F53E248A133C723807CC3 /* PBXTargetDependency */, + F968143C299A64FED29101EB4E74A7E5 /* PBXTargetDependency */, + DE32825E116FB9FD2D331710DB42889B /* PBXTargetDependency */, ); name = "Pods-enzevalos_iphone"; productName = "Pods-enzevalos_iphone"; productReference = CBD42F4ADF4E8040EE69892EED6FE2A6 /* Pods_enzevalos_iphone.framework */; productType = "com.apple.product-type.framework"; }; + CFCA8CA494372A14108299CE150648B8 /* Cuckoo */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3D38FAA418EFB9F320E945497E52B6D8 /* Build configuration list for PBXNativeTarget "Cuckoo" */; + buildPhases = ( + FAD94F9D8C8F6929527A06E53FBEC27D /* Headers */, + 818FC399033D92B46908D43BE29AF3B2 /* Sources */, + C4857EFB275084595F894F52AE20C7A0 /* Frameworks */, + 784AA05280F981F68626640881B83041 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Cuckoo; + productName = Cuckoo; + productReference = 06BBD3298EFC08D95EEFE526BDDCDBD1 /* Cuckoo.framework */; + productType = "com.apple.product-type.framework"; + }; D676E21115185671D7258A56944ABE98 /* GTMSessionFetcher */ = { isa = PBXNativeTarget; buildConfigurationList = 42C7BA3B903A64485E1086C189729A31 /* Build configuration list for PBXNativeTarget "GTMSessionFetcher" */; @@ -1642,12 +1853,13 @@ Base, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = 21F3B14DD9DDBC3EA4E49859E284093A /* Products */; + productRefGroup = 32102967FFA630837362F53D31EF5DFF /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 5C642AA10FB29936669CC269F42079C6 /* AppAuth */, 6D66475B9896599606F4FA421597859F /* BZipCompression */, + CFCA8CA494372A14108299CE150648B8 /* Cuckoo */, 0A54238D437A783E8B7D6105975DE6ED /* FrameAccessor */, 8627999EF1D5E93E13DAFF580DA8CDCF /* GTMAppAuth */, D676E21115185671D7258A56944ABE98 /* GTMSessionFetcher */, @@ -1680,7 +1892,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 5876173CDAE7877C307F91961A59FD91 /* Resources */ = { + 427E8C2E093792B228980E01C92E501D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -1701,6 +1913,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 784AA05280F981F68626640881B83041 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 789D540271448693859C5D41E90A58D6 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -1783,6 +2002,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 11C0969733088F1283CA1242624C701C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 01509AC61FF5C88DB5E7C2EC1A23867A /* Pods-enzevalos_iphone-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 243A64BF17D685BA087ED04DF551C179 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1871,11 +2098,51 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 80CB83147C96C29F250B2C77748218A7 /* Sources */ = { + 818FC399033D92B46908D43BE29AF3B2 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - DC4A35071C6DE036FFF877C65724C770 /* Pods-enzevalos_iphone-dummy.m in Sources */, + AB1BFC3B19F8BAB981AC200026D88452 /* __DoNotUse.swift in Sources */, + 29549D82829F35DCCB695A901459FC5F /* ArgumentCaptor.swift in Sources */, + C1DBB5B6040C8DE1BB6098FD85F57FAB /* Array+matchers.swift in Sources */, + AD148E9649E649860DD978E7387D5166 /* BaseStubFunctionTrait.swift in Sources */, + ECA7DD07597E971B856781E3697E786C /* CallMatcher.swift in Sources */, + 57B06E9633457D580E37B0D2A27CF582 /* CallMatcherFunctions.swift in Sources */, + BF00A9938111A311A8E0B9DE837840DB /* CreateMock.swift in Sources */, + B96355A950B52767BDFCB3404D02EFC8 /* Cuckoo-dummy.m in Sources */, + 289773B79897998000B11B98A6870B7E /* CuckooFunctions.swift in Sources */, + 09EB593EF2C0E6670EDE7E28F706CC96 /* DefaultValueRegistry.swift in Sources */, + 7039A51919788691D47C0C606F41DA0D /* Dictionary+matchers.swift in Sources */, + 4DC758B228965072C4F3EFA007802AF3 /* Matchable.swift in Sources */, + B4C70F5E8C02F97124ABF4E94CFE048C /* Mock.swift in Sources */, + 612B3045C731B08436ABFE967B276D67 /* MockBuilder.swift in Sources */, + BDAFB69C4408D1AA1D95F62F5F6F376E /* Mocked.swift in Sources */, + C4ABE147DE603541B6899582EDF1B7D8 /* MockManager+preconfigured.swift in Sources */, + FED8036E5F19A9642F17D56474CA83BF /* MockManager.swift in Sources */, + 618EE464AF3F5AE0E9F55A68B5AE2599 /* ParameterMatcher.swift in Sources */, + E9F49F230D327FEAD9D2BF1A936C485A /* ParameterMatcherFunctions.swift in Sources */, + FD1167035FB07F9AAE0088B0885F1470 /* Set+matchers.swift in Sources */, + 2DBD05BF712364B05E22EDCA28D2615E /* Stub.swift in Sources */, + 841D07E543F7645F467D90FDB8B3531C /* StubAction.swift in Sources */, + DCC8F44280CF1048E9AF09204FE96BDC /* StubbingProxy.swift in Sources */, + 6300672DE2AF4F9C1330C31FDA807768 /* StubCall.swift in Sources */, + CFCED42013D268A10D0E7D5441FF70A9 /* StubFunction.swift in Sources */, + 2E1B0AC060EAA9E1BCE21C18F53542C5 /* StubFunctionThenCallRealImplementationTrait.swift in Sources */, + 87E4BE420171E747C5E7558B64EF18B0 /* StubFunctionThenDoNothingTrait.swift in Sources */, + 6083C03F9B2DAAEB703217E632D07823 /* StubFunctionThenReturnTrait.swift in Sources */, + 3AF45799AE9E593A53E23EDF487DAF1B /* StubFunctionThenThrowingTrait.swift in Sources */, + CABF151B8611FA9937627F1DDFF71BC4 /* StubFunctionThenThrowTrait.swift in Sources */, + B1A909E5DEBDC7D4843CD39E83749BA0 /* StubFunctionThenTrait.swift in Sources */, + CED9EC4A77DA392DF2764B2780FFF124 /* StubNoReturnFunction.swift in Sources */, + 32E959D5213239CF0D84BD498775EBD9 /* StubNoReturnThrowingFunction.swift in Sources */, + F33C6542E82CBE64D8AAAA442D404F4E /* StubThrowingFunction.swift in Sources */, + 9CC9B1068E881FD2E93B835ADB271D65 /* ThreadLocal.swift in Sources */, + 05934B42EDD9F2B08AD10D438DD11FA9 /* ToBeStubbedProperty.swift in Sources */, + 0CDD9C76DC7D159907B08D77221F8C27 /* ToBeStubbedReadOnlyProperty.swift in Sources */, + D1956E389CE6A7E6BF64A8ED72008C46 /* Utils.swift in Sources */, + 7B685C942F38136D467F6086D2A9C15D /* VerificationProxy.swift in Sources */, + 6693FAABCE6379B8DE510FFD2E5C3BE9 /* VerifyProperty.swift in Sources */, + A402A1B0DA338F5963E3EC8DB2BE2AC0 /* VerifyReadOnlyProperty.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1935,11 +2202,11 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 150005A7071BC5C4A1F1546C71AD3693 /* PBXTargetDependency */ = { + 1DC28961099F53E248A133C723807CC3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = BZipCompression; - target = 6D66475B9896599606F4FA421597859F /* BZipCompression */; - targetProxy = 150304EAEA558AB907FEF7B7865ABF80 /* PBXContainerItemProxy */; + name = Travellib; + target = ABDEC990A869B1916D7E37F2E6EBB97D /* Travellib */; + targetProxy = C033F75BB4F50C044046B85F9C27B26A /* PBXContainerItemProxy */; }; 359F6EDD76137B81044E0AFD2E99782A /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -1947,29 +2214,23 @@ target = 5C642AA10FB29936669CC269F42079C6 /* AppAuth */; targetProxy = 0EDCF38BA44E7804550420B1923AE7C0 /* PBXContainerItemProxy */; }; - 36D22D19A8213BA543EC9BE143673B05 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FrameAccessor; - target = 0A54238D437A783E8B7D6105975DE6ED /* FrameAccessor */; - targetProxy = C18944E632201054A9D2CA2B5B40677A /* PBXContainerItemProxy */; - }; - 378D840354F355161B1E23E8DE20DBC1 /* PBXTargetDependency */ = { + 379F3B8893C6FD5F1540E5A81DB86446 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = VENTokenField; - target = 00C3E3A836461DED0744361F2041AD3E /* VENTokenField */; - targetProxy = 934BBF68E8F7F0B884DAA68E304E3659 /* PBXContainerItemProxy */; + name = GTMSessionFetcher; + target = D676E21115185671D7258A56944ABE98 /* GTMSessionFetcher */; + targetProxy = E8291BC9F71C7E376D29BD84C4D07091 /* PBXContainerItemProxy */; }; - 4C993D02A5B5C55207CED2B2CE642499 /* PBXTargetDependency */ = { + 3818739B3269A3B78DBD840BB7B2488B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = AppAuth; - target = 5C642AA10FB29936669CC269F42079C6 /* AppAuth */; - targetProxy = 59E9B9D1204517FBA843E11F638AFA89 /* PBXContainerItemProxy */; + name = GTMAppAuth; + target = 8627999EF1D5E93E13DAFF580DA8CDCF /* GTMAppAuth */; + targetProxy = 1E4315630F4F741C24BFA140DB847FF3 /* PBXContainerItemProxy */; }; - 59E078B2D18A143C4AF2E44122E60DDB /* PBXTargetDependency */ = { + 491E9555B25BCEFF27E133CB42C53E8A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = QAKit; - target = E915BD679D93238880336D7A0655B4C7 /* QAKit */; - targetProxy = 01CA0AA38DFBBBC6DF95ED8B14471740 /* PBXContainerItemProxy */; + name = Onboard; + target = D8BE8EF935A44D2EEBE70961953F85F7 /* Onboard */; + targetProxy = 61B05684F2F2B4F20CEEB9E0E7BADC27 /* PBXContainerItemProxy */; }; 5E3E256C3D0A9AEAE8B09B95C56FE90A /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -1977,47 +2238,53 @@ target = CAD7DA284C4255B7575F137B771245E9 /* Pods-enzevalos_iphone */; targetProxy = D1BAA1C2A4DF46CC2B41E0452F3E2CBE /* PBXContainerItemProxy */; }; - 920C041020CC5BC81B86124E9ADD03D2 /* PBXTargetDependency */ = { + 627FA81A845A350D674ED1DFFB31DCFE /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = Travellib; - target = ABDEC990A869B1916D7E37F2E6EBB97D /* Travellib */; - targetProxy = 7F927DA46BE5CD434DCE5176EB445F3F /* PBXContainerItemProxy */; + name = KeychainAccess; + target = 615C831BCE925ED486B225B87E44926D /* KeychainAccess */; + targetProxy = 33756517C2EA7D3DD27B38F8EB5E459A /* PBXContainerItemProxy */; }; - B4D0DF5BB365BD80097A55DD226B5582 /* PBXTargetDependency */ = { + 85BCA4440A00C8DF80F04A4C9F163A45 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = GTMAppAuth; - target = 8627999EF1D5E93E13DAFF580DA8CDCF /* GTMAppAuth */; - targetProxy = F30F32A4485DCB8A066333820F819096 /* PBXContainerItemProxy */; + name = QAKit; + target = E915BD679D93238880336D7A0655B4C7 /* QAKit */; + targetProxy = 8F974F250D5D00042FC3639D44484154 /* PBXContainerItemProxy */; }; - B8DA41553C9A2D28B0DB68E309F5F125 /* PBXTargetDependency */ = { + 8FB73EF8C2DBB7002D0915296AAD42E4 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = KeychainAccess; - target = 615C831BCE925ED486B225B87E44926D /* KeychainAccess */; - targetProxy = 3D238803C7F73444E7B8F4E1035ED9A3 /* PBXContainerItemProxy */; + name = Cuckoo; + target = CFCA8CA494372A14108299CE150648B8 /* Cuckoo */; + targetProxy = 67B4CEFC4F15EC9EAA5414189903BB16 /* PBXContainerItemProxy */; }; - C1B746100700F8AA3C394CF3808EC2DA /* PBXTargetDependency */ = { + 9EAF3AC0590B8C7A42EDF4D4C6EF628E /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = Onboard; - target = D8BE8EF935A44D2EEBE70961953F85F7 /* Onboard */; - targetProxy = 14DFCAF41D45E288F2BFD4712F140C11 /* PBXContainerItemProxy */; + name = BZipCompression; + target = 6D66475B9896599606F4FA421597859F /* BZipCompression */; + targetProxy = D5DC0A7F66DA85249374AF39FC8EED0D /* PBXContainerItemProxy */; }; - DCD56D8648B7D9AB39D5FFA8975E2ABE /* PBXTargetDependency */ = { + A169E388F0FEA742E04D1E15291300A3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = GTMSessionFetcher; - target = D676E21115185671D7258A56944ABE98 /* GTMSessionFetcher */; - targetProxy = 9E606D66BCDE17966CA8AE130F54A913 /* PBXContainerItemProxy */; + name = AppAuth; + target = 5C642AA10FB29936669CC269F42079C6 /* AppAuth */; + targetProxy = 402F351E5206E9D3B7BBC079DC57AABD /* PBXContainerItemProxy */; }; - DFC8845BF19CCEC73CFD2661D0FD1949 /* PBXTargetDependency */ = { + BB28AF70B9EF80DBC87755DDAFF9356D /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = FrameAccessor; target = 0A54238D437A783E8B7D6105975DE6ED /* FrameAccessor */; - targetProxy = 4692950B52FF57150FD1F7717B82FEA3 /* PBXContainerItemProxy */; + targetProxy = E6CC7E3E588FF51A572E602F3374C1EE /* PBXContainerItemProxy */; }; - E4B45D17B38000EEECDF73FBDEA10E5A /* PBXTargetDependency */ = { + DE32825E116FB9FD2D331710DB42889B /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "mailcore2-ios"; target = 54C57F7F7FECB59C7FC4368C602667B3 /* mailcore2-ios */; - targetProxy = 6D112A984EB1F701A151E45A9D04CB7C /* PBXContainerItemProxy */; + targetProxy = 5C6FA9953916487D46D40452EC6FF4F5 /* PBXContainerItemProxy */; + }; + DFC8845BF19CCEC73CFD2661D0FD1949 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FrameAccessor; + target = 0A54238D437A783E8B7D6105975DE6ED /* FrameAccessor */; + targetProxy = 4692950B52FF57150FD1F7717B82FEA3 /* PBXContainerItemProxy */; }; EF9A8E7636B6024678594EDD08A976BC /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -2025,12 +2292,18 @@ target = D676E21115185671D7258A56944ABE98 /* GTMSessionFetcher */; targetProxy = A720C631E1946701F927ADC25CF2A59E /* PBXContainerItemProxy */; }; + F968143C299A64FED29101EB4E74A7E5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = VENTokenField; + target = 00C3E3A836461DED0744361F2041AD3E /* VENTokenField */; + targetProxy = F8700FD31331D848437E89EF0ACF352A /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ 0EFD4BD48160F40F3EE3D90F31FEE3BB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4A42FD0A298D1863B910C67804BFC1A2 /* GTMAppAuth.debug.xcconfig */; + baseConfigurationReference = BDDC7FD46A5055433B61E8DA26496349 /* GTMAppAuth.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2092,9 +2365,41 @@ }; name = Debug; }; + 157B8F4EBF6464E8E3EA3736F1B2DBB0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 208600C1EA04661F87537436F1F271A4 /* Cuckoo.release.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "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/Cuckoo/Cuckoo-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Cuckoo/Cuckoo-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/Cuckoo/Cuckoo.modulemap"; + PRODUCT_MODULE_NAME = Cuckoo; + PRODUCT_NAME = Cuckoo; + 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; + }; 215D9ECD9AB924414F3976F1F3B1648B /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 04B7B0AD20FAEAA7833E0880BADACD82 /* VENTokenField.debug.xcconfig */; + baseConfigurationReference = 5C568BCABCBFA12E70C2AA78DACABF7D /* VENTokenField.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2123,9 +2428,43 @@ }; name = Debug; }; + 2A98456122D7D398DC5D0C09D804FC58 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A3124C7C8F275318C62F2EBB014B3AFE /* Pods-enzevalos_iphone.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CODE_SIGN_IDENTITY = ""; + "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-enzevalos_iphone/Pods-enzevalos_iphone-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone.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; + }; 2D4F131D012BEB7D41559F457CFD7CCE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DECD64F21FE4142C01E056382EAE1862 /* GTMSessionFetcher.release.xcconfig */; + baseConfigurationReference = 180B17AA87559164002CD90F2B41E0DD /* GTMSessionFetcher.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2157,7 +2496,7 @@ }; 3B2358BEFC66F3E06A47D54B68418743 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 41B249081C191DCEC7303A2BEDC662E6 /* QAKit.debug.xcconfig */; + baseConfigurationReference = 65AB0C30DDFBA8C7793BF43FE896259A /* QAKit.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2188,7 +2527,7 @@ }; 3BFB49A0C652DF4A91F6D35EE641F051 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2B260999F9D21E3AD138BF46EB76C174 /* AppAuth.debug.xcconfig */; + baseConfigurationReference = 376EEBE9FC5D5274FDE0FC7349C31628 /* AppAuth.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2217,9 +2556,9 @@ }; name = Debug; }; - 4BCFA52D8FA99684BCD5CBDEDE376370 /* Release */ = { + 5938F708EFFD356EAAD412E5B0823A0C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A3124C7C8F275318C62F2EBB014B3AFE /* Pods-enzevalos_iphone.release.xcconfig */; + baseConfigurationReference = 52FA53A1CE998BA6FC3C0B201C99F229 /* Pods-enzevalos_iphone.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; @@ -2245,15 +2584,14 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; 5A5604B3B47216A9E5C172C2ED2B0BA5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B9EDE74A44854A0A7AE179F531D9A3B5 /* BZipCompression.release.xcconfig */; + baseConfigurationReference = 8ED911403AC5CBBA4BA13648897F91FD /* BZipCompression.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2285,7 +2623,7 @@ }; 629537C6781B20147322BE344B8C9A9C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F36971D3760EDCB10A95761A158C544E /* BZipCompression.debug.xcconfig */; + baseConfigurationReference = 0CC12D2FDB716E1F0838DB883B32F100 /* BZipCompression.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2383,7 +2721,7 @@ }; 7CEA1D922FA9A441F582E156F1DC5F7E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7C17204593CCCD8B803CBED5C3FBD5B4 /* Onboard.release.xcconfig */; + baseConfigurationReference = CDDA7E8AB9E79EC0B3EEAD5AA9E8FF5A /* Onboard.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2415,7 +2753,7 @@ }; 828029E078A1E72E6F7D4423FD670C50 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F4CE1103075C24BA0E27C50AA217ADFE /* VENTokenField.release.xcconfig */; + baseConfigurationReference = E8BD61ADF352E05FED80ECBD43FEE68B /* VENTokenField.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2445,42 +2783,9 @@ }; name = Release; }; - 8399910CF7658AA80D697976916FC77F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 52FA53A1CE998BA6FC3C0B201C99F229 /* Pods-enzevalos_iphone.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CODE_SIGN_IDENTITY = ""; - "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-enzevalos_iphone/Pods-enzevalos_iphone-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone.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; - }; 872A0890445B9B65142E2A4FEC1B9B81 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D9DD1D33BBE91118DE83FEE1BD6CBCE9 /* Onboard.debug.xcconfig */; + baseConfigurationReference = F94A93CEE2EF3BD221E0998238C5BE0F /* Onboard.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2511,7 +2816,7 @@ }; 90F1CFFDECF6B9C7E7C7C568778E2DF7 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B8B7528A265FB06861FAC5A3411A5B9B /* Travellib.debug.xcconfig */; + baseConfigurationReference = 32BCD4F7E3C7EE8846EBB9A35F5A2757 /* Travellib.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2542,7 +2847,7 @@ }; 936111063AA0625F1CBA3FBFF1CC9D7E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9985A41A56D6AF95950A96B2B53F4537 /* FrameAccessor.debug.xcconfig */; + baseConfigurationReference = 3FEC086140004F32C52903A239FDC43A /* FrameAccessor.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2573,7 +2878,7 @@ }; 9D8447784477E8922A7D86AAF264CAC1 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FA05F0ABA070EE62F19DD0D6BF937153 /* GTMAppAuth.release.xcconfig */; + baseConfigurationReference = 0D307E7FDF6CA5D2C95A61ED8734DA59 /* GTMAppAuth.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2605,7 +2910,7 @@ }; A1D46061F9AB05E74A44DCF5B3150C16 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F1FEB229DC57ABAD3E1E2AF03089FD87 /* KeychainAccess.release.xcconfig */; + baseConfigurationReference = 8A42F2921E2AFAFB8FBBC802FBD0F6DD /* KeychainAccess.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2761,7 +3066,7 @@ }; B9C93E288E4E87C134A6A867F9780421 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FAF92FF5DCCD3D9CA4BC3023BC09EDF1 /* mailcore2-ios.release.xcconfig */; + baseConfigurationReference = BEECB06219BCF4001561782FAFAB3157 /* mailcore2-ios.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -2775,7 +3080,7 @@ }; BC5F1B49B7AE52C8A4480BCE9A0C11BB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 913C2A08E8A40EFEA31A30DEB0772E23 /* mailcore2-ios.debug.xcconfig */; + baseConfigurationReference = E11AD3BB58CF4D093A645D0348B07B4F /* mailcore2-ios.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -2788,7 +3093,7 @@ }; BE5933F4A8D7DB72F2BB09B8A8DA6A90 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BB30BBB298DDC78F9A54F70337C80D9C /* QAKit.release.xcconfig */; + baseConfigurationReference = C5D0D686474A5A32A12DFA6E3F97F566 /* QAKit.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2854,7 +3159,7 @@ }; C73AD503AEFF4C5DD1901708DC6D9640 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 450AB89DE7AEDF84590DC29D920ECF49 /* GTMSessionFetcher.debug.xcconfig */; + baseConfigurationReference = 9BBBD8036206D91D13468D19BA6E1658 /* GTMSessionFetcher.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2885,7 +3190,7 @@ }; CEED3BE9D9BBFC1B5BE09AA928ADAB77 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4B73844D52E3313AA8A99F54FD2E75D7 /* AppAuth.release.xcconfig */; + baseConfigurationReference = B9726AC97C04330A8D1F7037F493E23B /* AppAuth.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2917,7 +3222,7 @@ }; D146338567A06DADFBEB4583A4997593 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A35CFF5FF84EBCF46F16D1F4118539F8 /* FrameAccessor.release.xcconfig */; + baseConfigurationReference = 77721C328992B0CA7C6A9E07CDB243B4 /* FrameAccessor.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2947,9 +3252,40 @@ }; name = Release; }; + D6112C9DC0256EBE73A8C83B6BF55967 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5AC7561D19F7D96C053C015C3DB7F1C0 /* Cuckoo.debug.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "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/Cuckoo/Cuckoo-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Cuckoo/Cuckoo-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/Cuckoo/Cuckoo.modulemap"; + PRODUCT_MODULE_NAME = Cuckoo; + PRODUCT_NAME = Cuckoo; + 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; + }; DEB8E3370A0E0579DAB70D0FF2444BCB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2E3DE85C96F5CF7C7B5BCC0FDEDB44C7 /* KeychainAccess.debug.xcconfig */; + baseConfigurationReference = AA2309D8D2DB6703AF98F0E0008EA264 /* KeychainAccess.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2980,7 +3316,7 @@ }; EDF912A9A4EA2D1211D599FAE267881A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1C992F4D8DF8229F4BC6B3A62072BCEE /* Travellib.release.xcconfig */; + baseConfigurationReference = 237B6D38A08197A6F4096468C1EBAD4A /* Travellib.release.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -3049,6 +3385,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 3D38FAA418EFB9F320E945497E52B6D8 /* Build configuration list for PBXNativeTarget "Cuckoo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D6112C9DC0256EBE73A8C83B6BF55967 /* Debug */, + 157B8F4EBF6464E8E3EA3736F1B2DBB0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 42C7BA3B903A64485E1086C189729A31 /* Build configuration list for PBXNativeTarget "GTMSessionFetcher" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -3085,15 +3430,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 5400445D54755BB1A4C0A88851E609DB /* Build configuration list for PBXNativeTarget "Pods-enzevalos_iphone" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8399910CF7658AA80D697976916FC77F /* Debug */, - 4BCFA52D8FA99684BCD5CBDEDE376370 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 5D802BB89664A569AC1BEABF1482AB56 /* Build configuration list for PBXNativeTarget "FrameAccessor" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -3130,6 +3466,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + DBF011188BD25CBECBE0EA3373801394 /* Build configuration list for PBXNativeTarget "Pods-enzevalos_iphone" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5938F708EFFD356EAAD412E5B0823A0C /* Debug */, + 2A98456122D7D398DC5D0C09D804FC58 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; E637A84A7F4854AAD05F4EB81DAA186E /* Build configuration list for PBXNativeTarget "QAKit" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Pods/Target Support Files/Cuckoo/Cuckoo-Info.plist b/Pods/Target Support Files/Cuckoo/Cuckoo-Info.plist new file mode 100644 index 0000000000000000000000000000000000000000..6c1d64f1e555477533cd0498b7e92aae881623c0 --- /dev/null +++ b/Pods/Target Support Files/Cuckoo/Cuckoo-Info.plist @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleExecutable</key> + <string>${EXECUTABLE_NAME}</string> + <key>CFBundleIdentifier</key> + <string>${PRODUCT_BUNDLE_IDENTIFIER}</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>${PRODUCT_NAME}</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleShortVersionString</key> + <string>1.3.2</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>${CURRENT_PROJECT_VERSION}</string> + <key>NSPrincipalClass</key> + <string></string> +</dict> +</plist> diff --git a/Pods/Target Support Files/Cuckoo/Cuckoo-dummy.m b/Pods/Target Support Files/Cuckoo/Cuckoo-dummy.m new file mode 100644 index 0000000000000000000000000000000000000000..21cd655e29d2a73e29108205bca0bc4f3f8f00f4 --- /dev/null +++ b/Pods/Target Support Files/Cuckoo/Cuckoo-dummy.m @@ -0,0 +1,5 @@ +#import <Foundation/Foundation.h> +@interface PodsDummy_Cuckoo : NSObject +@end +@implementation PodsDummy_Cuckoo +@end diff --git a/Pods/Target Support Files/Cuckoo/Cuckoo-prefix.pch b/Pods/Target Support Files/Cuckoo/Cuckoo-prefix.pch new file mode 100644 index 0000000000000000000000000000000000000000..beb2a2441835aeaf9ee2ba30c557a8f2b6e4363f --- /dev/null +++ b/Pods/Target Support Files/Cuckoo/Cuckoo-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import <UIKit/UIKit.h> +#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/Cuckoo/Cuckoo-umbrella.h b/Pods/Target Support Files/Cuckoo/Cuckoo-umbrella.h new file mode 100644 index 0000000000000000000000000000000000000000..b71f16e84a0e6a9978cd604522ea944a1eb3a4b5 --- /dev/null +++ b/Pods/Target Support Files/Cuckoo/Cuckoo-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import <UIKit/UIKit.h> +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double CuckooVersionNumber; +FOUNDATION_EXPORT const unsigned char CuckooVersionString[]; + diff --git a/Pods/Target Support Files/Cuckoo/Cuckoo.debug.xcconfig b/Pods/Target Support Files/Cuckoo/Cuckoo.debug.xcconfig new file mode 100644 index 0000000000000000000000000000000000000000..92443680fb32a625dc08da620cb6b67fcab04dae --- /dev/null +++ b/Pods/Target Support Files/Cuckoo/Cuckoo.debug.xcconfig @@ -0,0 +1,47 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Cuckoo +ENABLE_BITCODE = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +OTHER_LDFLAGS = $(inherited) -weak-lswiftXCTest -framework "Foundation" -framework "XCTest" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/Cuckoo +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +SWIFT_INCLUDE_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +SWIFT_REFLECTION_METADATA_LEVEL = none +SYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Cuckoo/Cuckoo.modulemap b/Pods/Target Support Files/Cuckoo/Cuckoo.modulemap new file mode 100644 index 0000000000000000000000000000000000000000..63d5aa43c77479f0a52e057b56d6650c2a9a8419 --- /dev/null +++ b/Pods/Target Support Files/Cuckoo/Cuckoo.modulemap @@ -0,0 +1,6 @@ +framework module Cuckoo { + umbrella header "Cuckoo-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Cuckoo/Cuckoo.release.xcconfig b/Pods/Target Support Files/Cuckoo/Cuckoo.release.xcconfig new file mode 100644 index 0000000000000000000000000000000000000000..92443680fb32a625dc08da620cb6b67fcab04dae --- /dev/null +++ b/Pods/Target Support Files/Cuckoo/Cuckoo.release.xcconfig @@ -0,0 +1,47 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Cuckoo +ENABLE_BITCODE = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +OTHER_LDFLAGS = $(inherited) -weak-lswiftXCTest -framework "Foundation" -framework "XCTest" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/Cuckoo +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +SWIFT_INCLUDE_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +SWIFT_REFLECTION_METADATA_LEVEL = none +SYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone-acknowledgements.markdown b/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone-acknowledgements.markdown index 3ecbcdc38d5da8663e3f18ac0f4416e0a2ed8e08..c95f20282741d8c327d8913676d154ccd5423c5f 100644 --- a/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone-acknowledgements.markdown @@ -402,6 +402,31 @@ third-party archives. limitations under the License. +## Cuckoo + +The MIT License (MIT) + +Copyright (c) 2016 Brightify.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. + + ## FrameAccessor Copyright (c) 2012 Alexey Denisov diff --git a/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone-acknowledgements.plist b/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone-acknowledgements.plist index d355d4e85430fab7b5899d0fff297fec534a6ce7..4965e6f4c68ffa3c00dbc86a5c9b77a9261d4de6 100644 --- a/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone-acknowledgements.plist +++ b/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone-acknowledgements.plist @@ -425,6 +425,37 @@ third-party archives. <key>Type</key> <string>PSGroupSpecifier</string> </dict> + <dict> + <key>FooterText</key> + <string>The MIT License (MIT) + +Copyright (c) 2016 Brightify.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. +</string> + <key>License</key> + <string>MIT</string> + <key>Title</key> + <string>Cuckoo</string> + <key>Type</key> + <string>PSGroupSpecifier</string> + </dict> <dict> <key>FooterText</key> <string>Copyright (c) 2012 Alexey Denisov diff --git a/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone-frameworks.sh b/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone-frameworks.sh index 69d006519fd71e338ceecfd5c321a420525b0de4..77508ce1a435c651d59b66a327c082bd41004c22 100755 --- a/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone-frameworks.sh +++ b/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone-frameworks.sh @@ -199,6 +199,7 @@ fi if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/AppAuth/AppAuth.framework" install_framework "${BUILT_PRODUCTS_DIR}/BZipCompression/BZipCompression.framework" + install_framework "${BUILT_PRODUCTS_DIR}/Cuckoo/Cuckoo.framework" install_framework "${BUILT_PRODUCTS_DIR}/FrameAccessor/FrameAccessor.framework" install_framework "${BUILT_PRODUCTS_DIR}/GTMAppAuth/GTMAppAuth.framework" install_framework "${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework" @@ -211,6 +212,7 @@ fi if [[ "$CONFIGURATION" == "Release" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/AppAuth/AppAuth.framework" install_framework "${BUILT_PRODUCTS_DIR}/BZipCompression/BZipCompression.framework" + install_framework "${BUILT_PRODUCTS_DIR}/Cuckoo/Cuckoo.framework" install_framework "${BUILT_PRODUCTS_DIR}/FrameAccessor/FrameAccessor.framework" install_framework "${BUILT_PRODUCTS_DIR}/GTMAppAuth/GTMAppAuth.framework" install_framework "${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework" diff --git a/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone.debug.xcconfig b/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone.debug.xcconfig index 7f3d977fc5f8fce038c650f6925303e6fa463196..ba41cf2a9df7425675b8e0d35458f03f80e5fc0a 100644 --- a/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone.debug.xcconfig +++ b/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone.debug.xcconfig @@ -1,11 +1,41 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField" +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression" "${PODS_CONFIGURATION_BUILD_DIR}/Cuckoo" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth/AppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression/BZipCompression.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor/FrameAccessor.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth/GTMAppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess/KeychainAccess.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard/Onboard.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit/QAKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib/Travellib.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField/VENTokenField.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/mailcore2-ios" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth/AppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression/BZipCompression.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Cuckoo/Cuckoo.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor/FrameAccessor.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth/GTMAppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess/KeychainAccess.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard/Onboard.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit/QAKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib/Travellib.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField/VENTokenField.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/mailcore2-ios" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/mailcore2-ios/cocoapods-build/lib" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth/AppAuth.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression/BZipCompression.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor/FrameAccessor.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth/GTMAppAuth.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess/KeychainAccess.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Onboard/Onboard.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/QAKit/QAKit.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Travellib/Travellib.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField/VENTokenField.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/mailcore2-ios" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Onboard" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/QAKit" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Travellib" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField" -OTHER_LDFLAGS = $(inherited) -ObjC -l"MailCore-ios" -l"bz2" -l"c++" -l"iconv" -l"resolv" -l"xml2" -l"z" -framework "AppAuth" -framework "BZipCompression" -framework "FrameAccessor" -framework "GTMAppAuth" -framework "GTMSessionFetcher" -framework "KeychainAccess" -framework "Onboard" -framework "QAKit" -framework "SafariServices" -framework "Security" -framework "SystemConfiguration" -framework "Travellib" -framework "VENTokenField" -weak_framework "AuthenticationServices" +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth/AppAuth.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression/BZipCompression.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Cuckoo/Cuckoo.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor/FrameAccessor.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth/GTMAppAuth.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess/KeychainAccess.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Onboard/Onboard.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/QAKit/QAKit.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Travellib/Travellib.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField/VENTokenField.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/mailcore2-ios" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression" -iframework "$(PLATFORM_DIR)/Developer/Library/Frameworks" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Cuckoo" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Onboard" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/QAKit" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Travellib" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField" +OTHER_LDFLAGS = $(inherited) -ObjC -l"MailCore-ios" -l"bz2" -l"c++" -l"iconv" -l"resolv" -l"xml2" -l"z" -framework "AppAuth" -framework "BZipCompression" -framework "Cuckoo" -framework "Foundation" -framework "FrameAccessor" -framework "GTMAppAuth" -framework "GTMSessionFetcher" -framework "KeychainAccess" -framework "Onboard" -framework "QAKit" -framework "SafariServices" -framework "Security" -framework "SystemConfiguration" -framework "Travellib" -framework "VENTokenField" -framework "XCTest" -weak_framework "AuthenticationServices" 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-enzevalos_iphone/Pods-enzevalos_iphone.release.xcconfig b/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone.release.xcconfig index 7f3d977fc5f8fce038c650f6925303e6fa463196..ba41cf2a9df7425675b8e0d35458f03f80e5fc0a 100644 --- a/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone.release.xcconfig +++ b/Pods/Target Support Files/Pods-enzevalos_iphone/Pods-enzevalos_iphone.release.xcconfig @@ -1,11 +1,41 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField" +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression" "${PODS_CONFIGURATION_BUILD_DIR}/Cuckoo" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth/AppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression/BZipCompression.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor/FrameAccessor.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth/GTMAppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess/KeychainAccess.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard/Onboard.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit/QAKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib/Travellib.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField/VENTokenField.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/mailcore2-ios" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth/AppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression/BZipCompression.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Cuckoo/Cuckoo.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor/FrameAccessor.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth/GTMAppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess/KeychainAccess.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard/Onboard.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit/QAKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib/Travellib.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField/VENTokenField.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/mailcore2-ios" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/mailcore2-ios/cocoapods-build/lib" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth/AppAuth.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression/BZipCompression.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor/FrameAccessor.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth/GTMAppAuth.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess/KeychainAccess.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Onboard/Onboard.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/QAKit/QAKit.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Travellib/Travellib.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField/VENTokenField.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/mailcore2-ios" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Onboard" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/QAKit" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Travellib" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField" -OTHER_LDFLAGS = $(inherited) -ObjC -l"MailCore-ios" -l"bz2" -l"c++" -l"iconv" -l"resolv" -l"xml2" -l"z" -framework "AppAuth" -framework "BZipCompression" -framework "FrameAccessor" -framework "GTMAppAuth" -framework "GTMSessionFetcher" -framework "KeychainAccess" -framework "Onboard" -framework "QAKit" -framework "SafariServices" -framework "Security" -framework "SystemConfiguration" -framework "Travellib" -framework "VENTokenField" -weak_framework "AuthenticationServices" +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth/AppAuth.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression/BZipCompression.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Cuckoo/Cuckoo.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor/FrameAccessor.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth/GTMAppAuth.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess/KeychainAccess.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Onboard/Onboard.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/QAKit/QAKit.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Travellib/Travellib.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField/VENTokenField.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/mailcore2-ios" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression" -iframework "$(PLATFORM_DIR)/Developer/Library/Frameworks" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Cuckoo" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Onboard" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/QAKit" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Travellib" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField" +OTHER_LDFLAGS = $(inherited) -ObjC -l"MailCore-ios" -l"bz2" -l"c++" -l"iconv" -l"resolv" -l"xml2" -l"z" -framework "AppAuth" -framework "BZipCompression" -framework "Cuckoo" -framework "Foundation" -framework "FrameAccessor" -framework "GTMAppAuth" -framework "GTMSessionFetcher" -framework "KeychainAccess" -framework "Onboard" -framework "QAKit" -framework "SafariServices" -framework "Security" -framework "SystemConfiguration" -framework "Travellib" -framework "VENTokenField" -framework "XCTest" -weak_framework "AuthenticationServices" 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-enzevalos_iphoneTests/Pods-enzevalos_iphoneTests.debug.xcconfig b/Pods/Target Support Files/Pods-enzevalos_iphoneTests/Pods-enzevalos_iphoneTests.debug.xcconfig index acff0a42542ea3b206df829a6c3e79af7528e7d0..83399c449b76153ff39b155f9a0d7151e923bee4 100644 --- a/Pods/Target Support Files/Pods-enzevalos_iphoneTests/Pods-enzevalos_iphoneTests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-enzevalos_iphoneTests/Pods-enzevalos_iphoneTests.debug.xcconfig @@ -1,7 +1,37 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField" +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression" "${PODS_CONFIGURATION_BUILD_DIR}/Cuckoo" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth/AppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression/BZipCompression.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor/FrameAccessor.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth/GTMAppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess/KeychainAccess.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard/Onboard.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit/QAKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib/Travellib.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField/VENTokenField.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/mailcore2-ios" -OTHER_LDFLAGS = $(inherited) -l"bz2" -l"c++" -l"iconv" -l"resolv" -l"xml2" -l"z" -framework "AppAuth" -framework "BZipCompression" -framework "FrameAccessor" -framework "GTMAppAuth" -framework "GTMSessionFetcher" -framework "KeychainAccess" -framework "Onboard" -framework "QAKit" -framework "SafariServices" -framework "Security" -framework "SystemConfiguration" -framework "Travellib" -framework "VENTokenField" -weak_framework "AuthenticationServices" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth/AppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression/BZipCompression.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Cuckoo/Cuckoo.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor/FrameAccessor.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth/GTMAppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess/KeychainAccess.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard/Onboard.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit/QAKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib/Travellib.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField/VENTokenField.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/mailcore2-ios" +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +OTHER_LDFLAGS = $(inherited) -l"bz2" -l"c++" -l"iconv" -l"resolv" -l"xml2" -l"z" -framework "AppAuth" -framework "BZipCompression" -framework "Cuckoo" -framework "Foundation" -framework "FrameAccessor" -framework "GTMAppAuth" -framework "GTMSessionFetcher" -framework "KeychainAccess" -framework "Onboard" -framework "QAKit" -framework "SafariServices" -framework "Security" -framework "SystemConfiguration" -framework "Travellib" -framework "VENTokenField" -framework "XCTest" -weak_framework "AuthenticationServices" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/../enzevalos_iphone_workspace diff --git a/Pods/Target Support Files/Pods-enzevalos_iphoneTests/Pods-enzevalos_iphoneTests.release.xcconfig b/Pods/Target Support Files/Pods-enzevalos_iphoneTests/Pods-enzevalos_iphoneTests.release.xcconfig index acff0a42542ea3b206df829a6c3e79af7528e7d0..83399c449b76153ff39b155f9a0d7151e923bee4 100644 --- a/Pods/Target Support Files/Pods-enzevalos_iphoneTests/Pods-enzevalos_iphoneTests.release.xcconfig +++ b/Pods/Target Support Files/Pods-enzevalos_iphoneTests/Pods-enzevalos_iphoneTests.release.xcconfig @@ -1,7 +1,37 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField" +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression" "${PODS_CONFIGURATION_BUILD_DIR}/Cuckoo" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth/AppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression/BZipCompression.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor/FrameAccessor.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth/GTMAppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess/KeychainAccess.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard/Onboard.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit/QAKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib/Travellib.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField/VENTokenField.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/mailcore2-ios" -OTHER_LDFLAGS = $(inherited) -l"bz2" -l"c++" -l"iconv" -l"resolv" -l"xml2" -l"z" -framework "AppAuth" -framework "BZipCompression" -framework "FrameAccessor" -framework "GTMAppAuth" -framework "GTMSessionFetcher" -framework "KeychainAccess" -framework "Onboard" -framework "QAKit" -framework "SafariServices" -framework "Security" -framework "SystemConfiguration" -framework "Travellib" -framework "VENTokenField" -weak_framework "AuthenticationServices" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth/AppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/BZipCompression/BZipCompression.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Cuckoo/Cuckoo.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FrameAccessor/FrameAccessor.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth/GTMAppAuth.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/KeychainAccess/KeychainAccess.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Onboard/Onboard.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/QAKit/QAKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Travellib/Travellib.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/VENTokenField/VENTokenField.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/mailcore2-ios" +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos10.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos11.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos12.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos8.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.0] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.1] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.2] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.3] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.4] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +LIBRARY_SEARCH_PATHS[sdk=iphoneos9.5] = $(inherited) $(TOOLCHAIN_DIR)/usr/lib/swift-$(SWIFT_VERSION)/$(PLATFORM_NAME) +OTHER_LDFLAGS = $(inherited) -l"bz2" -l"c++" -l"iconv" -l"resolv" -l"xml2" -l"z" -framework "AppAuth" -framework "BZipCompression" -framework "Cuckoo" -framework "Foundation" -framework "FrameAccessor" -framework "GTMAppAuth" -framework "GTMSessionFetcher" -framework "KeychainAccess" -framework "Onboard" -framework "QAKit" -framework "SafariServices" -framework "Security" -framework "SystemConfiguration" -framework "Travellib" -framework "VENTokenField" -framework "XCTest" -weak_framework "AuthenticationServices" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/../enzevalos_iphone_workspace