diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..200d8f7 --- /dev/null +++ b/Podfile @@ -0,0 +1,17 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + +target 'repo-browser' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for repo-browser + pod 'GithubAPI' + pod 'FontAwesome.swift', '~> 1.7' + + target 'repo-browserTests' do + inherit! :search_paths + # Pods for testing + end + +end diff --git a/Podfile.lock b/Podfile.lock new file mode 100644 index 0000000..b95beac --- /dev/null +++ b/Podfile.lock @@ -0,0 +1,24 @@ +PODS: + - BaseAPI (0.1.5) + - FontAwesome.swift (1.7.1) + - GithubAPI (0.0.6): + - BaseAPI + +DEPENDENCIES: + - FontAwesome.swift (~> 1.7) + - GithubAPI + +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - BaseAPI + - FontAwesome.swift + - GithubAPI + +SPEC CHECKSUMS: + BaseAPI: 9248feed65933cd20283514e7a9917ecba1b69c0 + FontAwesome.swift: 8d9792fa2d2347055da35bd97752b3960bd75952 + GithubAPI: bc5bfd90489f5138a8d1e00003b18abe31579eb0 + +PODFILE CHECKSUM: eef7fefc5996c7f6fe77a452e2eef6c7a1ec6426 + +COCOAPODS: 1.7.1 diff --git a/Pods/BaseAPI/BaseAPI/Classes/BaseAPI.swift b/Pods/BaseAPI/BaseAPI/Classes/BaseAPI.swift new file mode 100644 index 0000000..43e92d9 --- /dev/null +++ b/Pods/BaseAPI/BaseAPI/Classes/BaseAPI.swift @@ -0,0 +1,151 @@ +// +// BaseAPI.swift +// BaseAPI +// +// Created by Serhii Londar on 12/8/17. +// + +import Foundation + +public typealias BaseAPICompletion = (Data?, URLResponse?, Error?) -> Swift.Void +public typealias BaseAPIResult = SynchronousDataTaskResult +open class BaseAPI { + var session: URLSession + + public init() { + self.session = URLSession(configuration: URLSessionConfiguration.default) + } + + public init(session: URLSession) { + self.session = session + } + + public func get(url: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, completion: @escaping BaseAPICompletion) { + let request = Request(url: url, method: .GET, parameters: parameters, headers: headers, body: nil) + let buildRequest = request.request() + if let urlRequest = buildRequest.request { + let task = session.dataTask(with: urlRequest, completionHandler: completion) + task.resume() + } else { + completion(nil, nil, buildRequest.error) + } + } + + public func get(url: String, parameters: [String : String]? = nil, headers: [String: String]? = nil) -> BaseAPIResult { + let request = Request(url: url, method: .GET, parameters: parameters, headers: headers, body: nil) + let buildRequest = request.request() + if let urlRequest = buildRequest.request { + return session.synchronousDataTask(request: urlRequest) + } else { + return (nil, nil, buildRequest.error) + } + } + + public func head(url: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, completion: @escaping BaseAPICompletion) { + let request = Request(url: url, method: .HEAD, parameters: parameters, headers: headers, body: nil) + let buildRequest = request.request() + if let urlRequest = buildRequest.request { + let task = session.dataTask(with: urlRequest, completionHandler: completion) + task.resume() + } else { + completion(nil, nil, buildRequest.error) + } + } + + public func head(url: String, parameters: [String : String]? = nil, headers: [String: String]? = nil) -> BaseAPIResult { + let request = Request(url: url, method: .HEAD, parameters: parameters, headers: headers, body: nil) + let buildRequest = request.request() + if let urlRequest = buildRequest.request { + return session.synchronousDataTask(request: urlRequest) + } else { + return (nil, nil, buildRequest.error) + } + } + + public func post(url: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, body: Data?, completion: @escaping BaseAPICompletion) { + let request = Request(url: url, method: .POST, parameters: parameters, headers: headers, body: body) + let buildRequest = request.request() + if let urlRequest = buildRequest.request { + let task = session.dataTask(with: urlRequest, completionHandler: completion) + task.resume() + } else { + completion(nil, nil, buildRequest.error) + } + } + + public func post(url: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, body: Data?) -> BaseAPIResult { + let request = Request(url: url, method: .POST, parameters: parameters, headers: headers, body: body) + let buildRequest = request.request() + if let urlRequest = buildRequest.request { + return session.synchronousDataTask(request: urlRequest) + } else { + return (nil, nil, buildRequest.error) + } + } + + + public func patch(url: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, body: Data?, completion: @escaping BaseAPICompletion) { + let request = Request(url: url, method: .PATCH, parameters: parameters, headers: headers, body: body) + let buildRequest = request.request() + if let urlRequest = buildRequest.request { + let task = session.dataTask(with: urlRequest, completionHandler: completion) + task.resume() + } else { + completion(nil, nil, buildRequest.error) + } + } + + public func patch(url: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, body: Data?) -> BaseAPIResult { + let request = Request(url: url, method: .PATCH, parameters: parameters, headers: headers, body: body) + let buildRequest = request.request() + if let urlRequest = buildRequest.request { + return session.synchronousDataTask(request: urlRequest) + } else { + return (nil, nil, buildRequest.error) + } + } + + + public func put(url: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, body: Data?, completion: @escaping BaseAPICompletion) { + let request = Request(url: url, method: .PUT, parameters: parameters, headers: headers, body: body) + let buildRequest = request.request() + if let urlRequest = buildRequest.request { + let task = session.dataTask(with: urlRequest, completionHandler: completion) + task.resume() + } else { + completion(nil, nil, buildRequest.error) + } + } + + public func put(url: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, body: Data?) -> BaseAPIResult { + let request = Request(url: url, method: .PUT, parameters: parameters, headers: headers, body: body) + let buildRequest = request.request() + if let urlRequest = buildRequest.request { + return session.synchronousDataTask(request: urlRequest) + } else { + return (nil, nil, buildRequest.error) + } + } + + public func delete(url: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, body: Data? = nil, completion: @escaping BaseAPICompletion) { + let request = Request(url: url, method: .DELETE, parameters: parameters, headers: headers, body: body) + let buildRequest = request.request() + if let urlRequest = buildRequest.request { + let task = session.dataTask(with: urlRequest, completionHandler: completion) + task.resume() + } else { + completion(nil, nil, buildRequest.error) + } + } + + + public func delete(url: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, body: Data? = nil) -> BaseAPIResult { + let request = Request(url: url, method: .DELETE, parameters: parameters, headers: headers, body: body) + let buildRequest = request.request() + if let urlRequest = buildRequest.request { + return session.synchronousDataTask(request: urlRequest) + } else { + return (nil, nil, buildRequest.error) + } + } +} diff --git a/Pods/BaseAPI/BaseAPI/Classes/Extensions/CharacterSet.swift b/Pods/BaseAPI/BaseAPI/Classes/Extensions/CharacterSet.swift new file mode 100644 index 0000000..af8e9cb --- /dev/null +++ b/Pods/BaseAPI/BaseAPI/Classes/Extensions/CharacterSet.swift @@ -0,0 +1,18 @@ +// +// File.swift +// BaseAPI +// +// Created by Serhii Londar on 1/5/18. +// + +import Foundation + +extension CharacterSet { + static func BaseAPI_URLQueryAllowedCharacterSet() -> CharacterSet { + let generalDelimitersToEncode = ":#[]@" + let subDelimitersToEncode = "!$&'()*+,;=" + var allowedCharacterSet = CharacterSet.urlQueryAllowed + allowedCharacterSet.remove(charactersIn: generalDelimitersToEncode + subDelimitersToEncode) + return allowedCharacterSet + } +} diff --git a/Pods/BaseAPI/BaseAPI/Classes/Extensions/String.swift b/Pods/BaseAPI/BaseAPI/Classes/Extensions/String.swift new file mode 100644 index 0000000..3c2342f --- /dev/null +++ b/Pods/BaseAPI/BaseAPI/Classes/Extensions/String.swift @@ -0,0 +1,12 @@ +// +// String.swift +// BaseAPI +// +// Created by Serhii Londar on 1/5/18. +// + +import Foundation + +extension String: Error { + +} diff --git a/Pods/BaseAPI/BaseAPI/Classes/Extensions/URLSession.swift b/Pods/BaseAPI/BaseAPI/Classes/Extensions/URLSession.swift new file mode 100644 index 0000000..8a7be2e --- /dev/null +++ b/Pods/BaseAPI/BaseAPI/Classes/Extensions/URLSession.swift @@ -0,0 +1,55 @@ +// +// URLSession.swift +// BaseAPI +// +// Created by Serhii Londar on 8/22/17. +// +// + +import Foundation +import Dispatch + +public typealias SynchronousDataTaskResult = (data: Data?, response: URLResponse?, error: Error?) + +extension URLSession { + public func synchronousDataTask(request: URLRequest) -> SynchronousDataTaskResult { + var data: Data? + var response: URLResponse? + var error: Error? + + let semaphore = DispatchSemaphore(value: 0) + + let dataTask = self.dataTask(with: request) { (rData, rResponse, eError) in + data = rData + response = rResponse + error = eError + semaphore.signal() + } + dataTask.resume() + + _ = semaphore.wait(timeout: .distantFuture) + + return (data, response, error) + } + + public func synchronousDataTask(url: URL) -> SynchronousDataTaskResult { + var data: Data? + var response: URLResponse? + var error: Error? + + let semaphore = DispatchSemaphore(value: 0) + + let dataTask = self.dataTask(with: url) { + data = $0 + response = $1 + error = $2 + + semaphore.signal() + } + dataTask.resume() + + _ = semaphore.wait(timeout: .distantFuture) + + return (data, response, error) + } +} diff --git a/Pods/BaseAPI/BaseAPI/Classes/Request.swift b/Pods/BaseAPI/BaseAPI/Classes/Request.swift new file mode 100644 index 0000000..56ea08b --- /dev/null +++ b/Pods/BaseAPI/BaseAPI/Classes/Request.swift @@ -0,0 +1,59 @@ +// +// Request.swift +// BaseAPI +// +// Created by Serhii Londar on 1/5/18. +// + +import Foundation + +public class Request { + public var url: String + public var method: RequestMethod + public var parameters: [String : String]? + public var headers: [String : String]? + public var body: Data? + + public init(url: String, method: RequestMethod, parameters: [String : String]? = nil, headers: [String : String]? = nil, body: Data? = nil) { + self.url = url + self.method = method + self.parameters = parameters + self.headers = headers + self.body = body + } + + public func request() -> (request: URLRequest?, error: Error?) { + let url = URL(string: self.urlWithParameters()) + if let url = url { + var request = URLRequest(url: url) + if let headers = headers { + for headerKey in headers.keys { + request.addValue(headers[headerKey]!, forHTTPHeaderField: headerKey) + } + } + request.httpMethod = method.rawValue + request.httpBody = body + return (request, nil) + } else { + return (nil, "Unable to create URL") + } + } + + func urlWithParameters() -> String { + var retUrl = url + if let parameters = parameters { + if parameters.count > 0 { + retUrl.append("?") + parameters.keys.forEach { + guard let value = parameters[$0] else { return } + let escapedValue = value.addingPercentEncoding(withAllowedCharacters: CharacterSet.BaseAPI_URLQueryAllowedCharacterSet()) + if let escapedValue = escapedValue { + retUrl.append("\($0)=\(escapedValue)&") + } + } + retUrl.removeLast() + } + } + return retUrl + } +} diff --git a/Pods/BaseAPI/BaseAPI/Classes/RequestHeaderFields.swift b/Pods/BaseAPI/BaseAPI/Classes/RequestHeaderFields.swift new file mode 100644 index 0000000..2753e4d --- /dev/null +++ b/Pods/BaseAPI/BaseAPI/Classes/RequestHeaderFields.swift @@ -0,0 +1,29 @@ +// +// RequestHeaderFields.swift +// BaseAPI +// +// Created by Serhii Londar on 1/5/18. +// + +import Foundation + +public enum RequestHeaderFields: String { + case acceptCharset = "Accept-Charset" + case acceptEncoding = "Accept-Encoding" + case acceptLanguage = "Accept-Language" + case authorization = "Authorization" + case expect = "Expect" + case from = "From" + case host = "Host" + case ifMatch = "If-Match" + case ifModifiedSince = "If-Modified-Since" + case ifNoneMatch = "If-None-Match" + case ifRange = "If-Range" + case ifUnmodifiedSince = "If-Unmodified-Since" + case maxForwards = "Max-Forwards" + case proxyAuthorization = "Proxy-Authorization" + case range = "Range" + case referer = "Referer" + case te = "TE" + case userAgent = "User-Agent" +} diff --git a/Pods/BaseAPI/BaseAPI/Classes/RequestMethod.swift b/Pods/BaseAPI/BaseAPI/Classes/RequestMethod.swift new file mode 100644 index 0000000..82857c6 --- /dev/null +++ b/Pods/BaseAPI/BaseAPI/Classes/RequestMethod.swift @@ -0,0 +1,20 @@ +// +// RequestMethod.swift +// BaseAPI +// +// Created by Serhii Londar on 1/5/18. +// + +import Foundation + +public enum RequestMethod: String { + case OPTIONS + case GET + case HEAD + case POST + case PATCH + case PUT + case DELETE + case TRACE + case CONNECT +} diff --git a/Pods/BaseAPI/LICENSE b/Pods/BaseAPI/LICENSE new file mode 100644 index 0000000..d18b338 --- /dev/null +++ b/Pods/BaseAPI/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2018 serhii-londar + +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/BaseAPI/README.md b/Pods/BaseAPI/README.md new file mode 100644 index 0000000..dd8a46d --- /dev/null +++ b/Pods/BaseAPI/README.md @@ -0,0 +1,31 @@ +# BaseAPI + +[![CI Status](http://img.shields.io/travis/serhii-londar/BaseAPI.svg?style=flat)](https://travis-ci.org/serhii-londar/BaseAPI) +[![Version](https://img.shields.io/cocoapods/v/BaseAPI.svg?style=flat)](http://cocoapods.org/pods/BaseAPI) +[![License](https://img.shields.io/cocoapods/l/BaseAPI.svg?style=flat)](http://cocoapods.org/pods/BaseAPI) +[![Platform](https://img.shields.io/cocoapods/p/BaseAPI.svg?style=flat)](http://cocoapods.org/pods/BaseAPI) + +BaseAPI is a small Swift library which helps you to implement any REST API. The main goal is to simplify sending HTTP request and receiving response. + +## Example + +To run the example project, clone the repo, and run `pod install` from the Example directory first. + +## Requirements + +## Installation + +BaseAPI is available through [CocoaPods](http://cocoapods.org). To install +it, simply add the following line to your Podfile: + +```ruby +pod 'BaseAPI' +``` + +## Author + +serhii-londar, serhii.londar@gmail.com + +## License + +BaseAPI is available under the MIT license. See the LICENSE file for more info. diff --git a/Pods/FontAwesome.swift/FontAwesome/Enum.swift b/Pods/FontAwesome.swift/FontAwesome/Enum.swift new file mode 100644 index 0000000..f7b1fa2 --- /dev/null +++ b/Pods/FontAwesome.swift/FontAwesome/Enum.swift @@ -0,0 +1,3630 @@ +// Enum.swift +// +// Copyright (c) 2014-present FontAwesome.swift contributors +// +// 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. + +// DO NOT EDIT! This file is auto-generated. To regenerate it, update +// Font-Awesome submodule and run `./codegen.swift`. + +/// An enumaration of FontAwesome icon names. +// swiftlint:disable file_length type_body_length +public enum FontAwesome: String { + case fiveHundredPixels = "\u{f26e}" + case accessibleIcon = "\u{f368}" + case accusoft = "\u{f369}" + case acquisitionsIncorporated = "\u{f6af}" + case ad = "\u{f641}" + case addressBook = "\u{f2b9}" + case addressCard = "\u{f2bb}" + case adjust = "\u{f042}" + case adn = "\u{f170}" + case adobe = "\u{f778}" + case adversal = "\u{f36a}" + case affiliatetheme = "\u{f36b}" + case airFreshener = "\u{f5d0}" + case airbnb = "\u{f834}" + case algolia = "\u{f36c}" + case alignCenter = "\u{f037}" + case alignJustify = "\u{f039}" + case alignLeft = "\u{f036}" + case alignRight = "\u{f038}" + case alipay = "\u{f642}" + case allergies = "\u{f461}" + case amazon = "\u{f270}" + case amazonPay = "\u{f42c}" + case ambulance = "\u{f0f9}" + case americanSignLanguageInterpreting = "\u{f2a3}" + case amilia = "\u{f36d}" + case anchor = "\u{f13d}" + case android = "\u{f17b}" + case angellist = "\u{f209}" + case angleDoubleDown = "\u{f103}" + case angleDoubleLeft = "\u{f100}" + case angleDoubleRight = "\u{f101}" + case angleDoubleUp = "\u{f102}" + case angleDown = "\u{f107}" + case angleLeft = "\u{f104}" + case angleRight = "\u{f105}" + case angleUp = "\u{f106}" + case angry = "\u{f556}" + case angrycreative = "\u{f36e}" + case angular = "\u{f420}" + case ankh = "\u{f644}" + case appStore = "\u{f36f}" + case appStoreIos = "\u{f370}" + case apper = "\u{f371}" + case apple = "\u{f179}" + case appleAlt = "\u{f5d1}" + case applePay = "\u{f415}" + case archive = "\u{f187}" + case archway = "\u{f557}" + case arrowAltCircleDown = "\u{f358}" + case arrowAltCircleLeft = "\u{f359}" + case arrowAltCircleRight = "\u{f35a}" + case arrowAltCircleUp = "\u{f35b}" + case arrowCircleDown = "\u{f0ab}" + case arrowCircleLeft = "\u{f0a8}" + case arrowCircleRight = "\u{f0a9}" + case arrowCircleUp = "\u{f0aa}" + case arrowDown = "\u{f063}" + case arrowLeft = "\u{f060}" + case arrowRight = "\u{f061}" + case arrowUp = "\u{f062}" + case arrowsAlt = "\u{f0b2}" + case arrowsAltH = "\u{f337}" + case arrowsAltV = "\u{f338}" + case artstation = "\u{f77a}" + case assistiveListeningSystems = "\u{f2a2}" + case asterisk = "\u{f069}" + case asymmetrik = "\u{f372}" + case at = "\u{f1fa}" + case atlas = "\u{f558}" + case atlassian = "\u{f77b}" + case atom = "\u{f5d2}" + case audible = "\u{f373}" + case audioDescription = "\u{f29e}" + case autoprefixer = "\u{f41c}" + case avianex = "\u{f374}" + case aviato = "\u{f421}" + case award = "\u{f559}" + case aws = "\u{f375}" + case baby = "\u{f77c}" + case babyCarriage = "\u{f77d}" + case backspace = "\u{f55a}" + case backward = "\u{f04a}" + case bacon = "\u{f7e5}" + case balanceScale = "\u{f24e}" + case ban = "\u{f05e}" + case bandAid = "\u{f462}" + case bandcamp = "\u{f2d5}" + case barcode = "\u{f02a}" + case bars = "\u{f0c9}" + case baseballBall = "\u{f433}" + case basketballBall = "\u{f434}" + case bath = "\u{f2cd}" + case batteryEmpty = "\u{f244}" + case batteryFull = "\u{f240}" + case batteryHalf = "\u{f242}" + case batteryQuarter = "\u{f243}" + case batteryThreeQuarters = "\u{f241}" + case battleNet = "\u{f835}" + case bed = "\u{f236}" + case beer = "\u{f0fc}" + case behance = "\u{f1b4}" + case behanceSquare = "\u{f1b5}" + case bell = "\u{f0f3}" + case bellSlash = "\u{f1f6}" + case bezierCurve = "\u{f55b}" + case bible = "\u{f647}" + case bicycle = "\u{f206}" + case bimobject = "\u{f378}" + case binoculars = "\u{f1e5}" + case biohazard = "\u{f780}" + case birthdayCake = "\u{f1fd}" + case bitbucket = "\u{f171}" + case bitcoin = "\u{f379}" + case bity = "\u{f37a}" + case blackTie = "\u{f27e}" + case blackberry = "\u{f37b}" + case blender = "\u{f517}" + case blenderPhone = "\u{f6b6}" + case blind = "\u{f29d}" + case blog = "\u{f781}" + case blogger = "\u{f37c}" + case bloggerB = "\u{f37d}" + case bluetooth = "\u{f293}" + case bluetoothB = "\u{f294}" + case bold = "\u{f032}" + case bolt = "\u{f0e7}" + case bomb = "\u{f1e2}" + case bone = "\u{f5d7}" + case bong = "\u{f55c}" + case book = "\u{f02d}" + case bookDead = "\u{f6b7}" + case bookMedical = "\u{f7e6}" + case bookOpen = "\u{f518}" + case bookReader = "\u{f5da}" + case bookmark = "\u{f02e}" + case bootstrap = "\u{f836}" + case bowlingBall = "\u{f436}" + case box = "\u{f466}" + case boxOpen = "\u{f49e}" + case boxes = "\u{f468}" + case braille = "\u{f2a1}" + case brain = "\u{f5dc}" + case breadSlice = "\u{f7ec}" + case briefcase = "\u{f0b1}" + case briefcaseMedical = "\u{f469}" + case broadcastTower = "\u{f519}" + case broom = "\u{f51a}" + case brush = "\u{f55d}" + case btc = "\u{f15a}" + case buffer = "\u{f837}" + case bug = "\u{f188}" + case building = "\u{f1ad}" + case bullhorn = "\u{f0a1}" + case bullseye = "\u{f140}" + case burn = "\u{f46a}" + case buromobelexperte = "\u{f37f}" + case bus = "\u{f207}" + case busAlt = "\u{f55e}" + case businessTime = "\u{f64a}" + case buysellads = "\u{f20d}" + case calculator = "\u{f1ec}" + case calendar = "\u{f133}" + case calendarAlt = "\u{f073}" + case calendarCheck = "\u{f274}" + case calendarDay = "\u{f783}" + case calendarMinus = "\u{f272}" + case calendarPlus = "\u{f271}" + case calendarTimes = "\u{f273}" + case calendarWeek = "\u{f784}" + case camera = "\u{f030}" + case cameraRetro = "\u{f083}" + case campground = "\u{f6bb}" + case canadianMapleLeaf = "\u{f785}" + case candyCane = "\u{f786}" + case cannabis = "\u{f55f}" + case capsules = "\u{f46b}" + case car = "\u{f1b9}" + case carAlt = "\u{f5de}" + case carBattery = "\u{f5df}" + case carCrash = "\u{f5e1}" + case carSide = "\u{f5e4}" + case caretDown = "\u{f0d7}" + case caretLeft = "\u{f0d9}" + case caretRight = "\u{f0da}" + case caretSquareDown = "\u{f150}" + case caretSquareLeft = "\u{f191}" + case caretSquareRight = "\u{f152}" + case caretSquareUp = "\u{f151}" + case caretUp = "\u{f0d8}" + case carrot = "\u{f787}" + case cartArrowDown = "\u{f218}" + case cartPlus = "\u{f217}" + case cashRegister = "\u{f788}" + case cat = "\u{f6be}" + case ccAmazonPay = "\u{f42d}" + case ccAmex = "\u{f1f3}" + case ccApplePay = "\u{f416}" + case ccDinersClub = "\u{f24c}" + case ccDiscover = "\u{f1f2}" + case ccJcb = "\u{f24b}" + case ccMastercard = "\u{f1f1}" + case ccPaypal = "\u{f1f4}" + case ccStripe = "\u{f1f5}" + case ccVisa = "\u{f1f0}" + case centercode = "\u{f380}" + case centos = "\u{f789}" + case certificate = "\u{f0a3}" + case chair = "\u{f6c0}" + case chalkboard = "\u{f51b}" + case chalkboardTeacher = "\u{f51c}" + case chargingStation = "\u{f5e7}" + case chartArea = "\u{f1fe}" + case chartBar = "\u{f080}" + case chartLine = "\u{f201}" + case chartPie = "\u{f200}" + case check = "\u{f00c}" + case checkCircle = "\u{f058}" + case checkDouble = "\u{f560}" + case checkSquare = "\u{f14a}" + case cheese = "\u{f7ef}" + case chess = "\u{f439}" + case chessBishop = "\u{f43a}" + case chessBoard = "\u{f43c}" + case chessKing = "\u{f43f}" + case chessKnight = "\u{f441}" + case chessPawn = "\u{f443}" + case chessQueen = "\u{f445}" + case chessRook = "\u{f447}" + case chevronCircleDown = "\u{f13a}" + case chevronCircleLeft = "\u{f137}" + case chevronCircleRight = "\u{f138}" + case chevronCircleUp = "\u{f139}" + case chevronDown = "\u{f078}" + case chevronLeft = "\u{f053}" + case chevronRight = "\u{f054}" + case chevronUp = "\u{f077}" + case child = "\u{f1ae}" + case chrome = "\u{f268}" + case chromecast = "\u{f838}" + case church = "\u{f51d}" + case circle = "\u{f111}" + case circleNotch = "\u{f1ce}" + case city = "\u{f64f}" + case clinicMedical = "\u{f7f2}" + case clipboard = "\u{f328}" + case clipboardCheck = "\u{f46c}" + case clipboardList = "\u{f46d}" + case clock = "\u{f017}" + case clone = "\u{f24d}" + case closedCaptioning = "\u{f20a}" + case cloud = "\u{f0c2}" + case cloudDownloadAlt = "\u{f381}" + case cloudMeatball = "\u{f73b}" + case cloudMoon = "\u{f6c3}" + case cloudMoonRain = "\u{f73c}" + case cloudRain = "\u{f73d}" + case cloudShowersHeavy = "\u{f740}" + case cloudSun = "\u{f6c4}" + case cloudSunRain = "\u{f743}" + case cloudUploadAlt = "\u{f382}" + case cloudscale = "\u{f383}" + case cloudsmith = "\u{f384}" + case cloudversify = "\u{f385}" + case cocktail = "\u{f561}" + case code = "\u{f121}" + case codeBranch = "\u{f126}" + case codepen = "\u{f1cb}" + case codiepie = "\u{f284}" + case coffee = "\u{f0f4}" + case cog = "\u{f013}" + case cogs = "\u{f085}" + case coins = "\u{f51e}" + case columns = "\u{f0db}" + case comment = "\u{f075}" + case commentAlt = "\u{f27a}" + case commentDollar = "\u{f651}" + case commentDots = "\u{f4ad}" + case commentMedical = "\u{f7f5}" + case commentSlash = "\u{f4b3}" + case comments = "\u{f086}" + case commentsDollar = "\u{f653}" + case compactDisc = "\u{f51f}" + case compass = "\u{f14e}" + case compress = "\u{f066}" + case compressArrowsAlt = "\u{f78c}" + case conciergeBell = "\u{f562}" + case confluence = "\u{f78d}" + case connectdevelop = "\u{f20e}" + case contao = "\u{f26d}" + case cookie = "\u{f563}" + case cookieBite = "\u{f564}" + case copy = "\u{f0c5}" + case copyright = "\u{f1f9}" + case couch = "\u{f4b8}" + case cpanel = "\u{f388}" + case creativeCommons = "\u{f25e}" + case creativeCommonsBy = "\u{f4e7}" + case creativeCommonsNc = "\u{f4e8}" + case creativeCommonsNcEu = "\u{f4e9}" + case creativeCommonsNcJp = "\u{f4ea}" + case creativeCommonsNd = "\u{f4eb}" + case creativeCommonsPd = "\u{f4ec}" + case creativeCommonsPdAlt = "\u{f4ed}" + case creativeCommonsRemix = "\u{f4ee}" + case creativeCommonsSa = "\u{f4ef}" + case creativeCommonsSampling = "\u{f4f0}" + case creativeCommonsSamplingPlus = "\u{f4f1}" + case creativeCommonsShare = "\u{f4f2}" + case creativeCommonsZero = "\u{f4f3}" + case creditCard = "\u{f09d}" + case criticalRole = "\u{f6c9}" + case crop = "\u{f125}" + case cropAlt = "\u{f565}" + case cross = "\u{f654}" + case crosshairs = "\u{f05b}" + case crow = "\u{f520}" + case crown = "\u{f521}" + case crutch = "\u{f7f7}" + case css3 = "\u{f13c}" + case css3Alt = "\u{f38b}" + case cube = "\u{f1b2}" + case cubes = "\u{f1b3}" + case cut = "\u{f0c4}" + case cuttlefish = "\u{f38c}" + case dAndD = "\u{f38d}" + case dAndDBeyond = "\u{f6ca}" + case dashcube = "\u{f210}" + case database = "\u{f1c0}" + case deaf = "\u{f2a4}" + case delicious = "\u{f1a5}" + case democrat = "\u{f747}" + case deploydog = "\u{f38e}" + case deskpro = "\u{f38f}" + case desktop = "\u{f108}" + case dev = "\u{f6cc}" + case deviantart = "\u{f1bd}" + case dharmachakra = "\u{f655}" + case dhl = "\u{f790}" + case diagnoses = "\u{f470}" + case diaspora = "\u{f791}" + case dice = "\u{f522}" + case diceD20 = "\u{f6cf}" + case diceD6 = "\u{f6d1}" + case diceFive = "\u{f523}" + case diceFour = "\u{f524}" + case diceOne = "\u{f525}" + case diceSix = "\u{f526}" + case diceThree = "\u{f527}" + case diceTwo = "\u{f528}" + case digg = "\u{f1a6}" + case digitalOcean = "\u{f391}" + case digitalTachograph = "\u{f566}" + case directions = "\u{f5eb}" + case discord = "\u{f392}" + case discourse = "\u{f393}" + case divide = "\u{f529}" + case dizzy = "\u{f567}" + case dna = "\u{f471}" + case dochub = "\u{f394}" + case docker = "\u{f395}" + case dog = "\u{f6d3}" + case dollarSign = "\u{f155}" + case dolly = "\u{f472}" + case dollyFlatbed = "\u{f474}" + case donate = "\u{f4b9}" + case doorClosed = "\u{f52a}" + case doorOpen = "\u{f52b}" + case dotCircle = "\u{f192}" + case dove = "\u{f4ba}" + case download = "\u{f019}" + case draft2digital = "\u{f396}" + case draftingCompass = "\u{f568}" + case dragon = "\u{f6d5}" + case drawPolygon = "\u{f5ee}" + case dribbble = "\u{f17d}" + case dribbbleSquare = "\u{f397}" + case dropbox = "\u{f16b}" + case drum = "\u{f569}" + case drumSteelpan = "\u{f56a}" + case drumstickBite = "\u{f6d7}" + case drupal = "\u{f1a9}" + case dumbbell = "\u{f44b}" + case dumpster = "\u{f793}" + case dumpsterFire = "\u{f794}" + case dungeon = "\u{f6d9}" + case dyalog = "\u{f399}" + case earlybirds = "\u{f39a}" + case ebay = "\u{f4f4}" + case edge = "\u{f282}" + case edit = "\u{f044}" + case egg = "\u{f7fb}" + case eject = "\u{f052}" + case elementor = "\u{f430}" + case ellipsisH = "\u{f141}" + case ellipsisV = "\u{f142}" + case ello = "\u{f5f1}" + case ember = "\u{f423}" + case empire = "\u{f1d1}" + case envelope = "\u{f0e0}" + case envelopeOpen = "\u{f2b6}" + case envelopeOpenText = "\u{f658}" + case envelopeSquare = "\u{f199}" + case envira = "\u{f299}" + case equals = "\u{f52c}" + case eraser = "\u{f12d}" + case erlang = "\u{f39d}" + case ethereum = "\u{f42e}" + case ethernet = "\u{f796}" + case etsy = "\u{f2d7}" + case euroSign = "\u{f153}" + case evernote = "\u{f839}" + case exchangeAlt = "\u{f362}" + case exclamation = "\u{f12a}" + case exclamationCircle = "\u{f06a}" + case exclamationTriangle = "\u{f071}" + case expand = "\u{f065}" + case expandArrowsAlt = "\u{f31e}" + case expeditedssl = "\u{f23e}" + case externalLinkAlt = "\u{f35d}" + case externalLinkSquareAlt = "\u{f360}" + case eye = "\u{f06e}" + case eyeDropper = "\u{f1fb}" + case eyeSlash = "\u{f070}" + case facebook = "\u{f09a}" + case facebookF = "\u{f39e}" + case facebookMessenger = "\u{f39f}" + case facebookSquare = "\u{f082}" + case fantasyFlightGames = "\u{f6dc}" + case fastBackward = "\u{f049}" + case fastForward = "\u{f050}" + case fax = "\u{f1ac}" + case feather = "\u{f52d}" + case featherAlt = "\u{f56b}" + case fedex = "\u{f797}" + case fedora = "\u{f798}" + case female = "\u{f182}" + case fighterJet = "\u{f0fb}" + case figma = "\u{f799}" + case file = "\u{f15b}" + case fileAlt = "\u{f15c}" + case fileArchive = "\u{f1c6}" + case fileAudio = "\u{f1c7}" + case fileCode = "\u{f1c9}" + case fileContract = "\u{f56c}" + case fileCsv = "\u{f6dd}" + case fileDownload = "\u{f56d}" + case fileExcel = "\u{f1c3}" + case fileExport = "\u{f56e}" + case fileImage = "\u{f1c5}" + case fileImport = "\u{f56f}" + case fileInvoice = "\u{f570}" + case fileInvoiceDollar = "\u{f571}" + case fileMedical = "\u{f477}" + case fileMedicalAlt = "\u{f478}" + case filePdf = "\u{f1c1}" + case filePowerpoint = "\u{f1c4}" + case filePrescription = "\u{f572}" + case fileSignature = "\u{f573}" + case fileUpload = "\u{f574}" + case fileVideo = "\u{f1c8}" + case fileWord = "\u{f1c2}" + case fill = "\u{f575}" + case fillDrip = "\u{f576}" + case film = "\u{f008}" + case filter = "\u{f0b0}" + case fingerprint = "\u{f577}" + case fire = "\u{f06d}" + case fireAlt = "\u{f7e4}" + case fireExtinguisher = "\u{f134}" + case firefox = "\u{f269}" + case firstAid = "\u{f479}" + case firstOrder = "\u{f2b0}" + case firstOrderAlt = "\u{f50a}" + case firstdraft = "\u{f3a1}" + case fish = "\u{f578}" + case fistRaised = "\u{f6de}" + case flag = "\u{f024}" + case flagCheckered = "\u{f11e}" + case flagUsa = "\u{f74d}" + case flask = "\u{f0c3}" + case flickr = "\u{f16e}" + case flipboard = "\u{f44d}" + case flushed = "\u{f579}" + case fly = "\u{f417}" + case folder = "\u{f07b}" + case folderMinus = "\u{f65d}" + case folderOpen = "\u{f07c}" + case folderPlus = "\u{f65e}" + case font = "\u{f031}" + case fontAwesome = "\u{f2b4}" + case fontAwesomeAlt = "\u{f35c}" + case fontAwesomeFlag = "\u{f425}" + case fontAwesomeLogoFull = "\u{f4e6}" + case fonticons = "\u{f280}" + case fonticonsFi = "\u{f3a2}" + case footballBall = "\u{f44e}" + case fortAwesome = "\u{f286}" + case fortAwesomeAlt = "\u{f3a3}" + case forumbee = "\u{f211}" + case forward = "\u{f04e}" + case foursquare = "\u{f180}" + case freeCodeCamp = "\u{f2c5}" + case freebsd = "\u{f3a4}" + case frog = "\u{f52e}" + case frown = "\u{f119}" + case frownOpen = "\u{f57a}" + case fulcrum = "\u{f50b}" + case funnelDollar = "\u{f662}" + case futbol = "\u{f1e3}" + case galacticRepublic = "\u{f50c}" + case galacticSenate = "\u{f50d}" + case gamepad = "\u{f11b}" + case gasPump = "\u{f52f}" + case gavel = "\u{f0e3}" + case gem = "\u{f3a5}" + case genderless = "\u{f22d}" + case getPocket = "\u{f265}" + case gg = "\u{f260}" + case ggCircle = "\u{f261}" + case ghost = "\u{f6e2}" + case gift = "\u{f06b}" + case gifts = "\u{f79c}" + case git = "\u{f1d3}" + case gitAlt = "\u{f841}" + case gitSquare = "\u{f1d2}" + case github = "\u{f09b}" + case githubAlt = "\u{f113}" + case githubSquare = "\u{f092}" + case gitkraken = "\u{f3a6}" + case gitlab = "\u{f296}" + case gitter = "\u{f426}" + case glassCheers = "\u{f79f}" + case glassMartini = "\u{f000}" + case glassMartiniAlt = "\u{f57b}" + case glassWhiskey = "\u{f7a0}" + case glasses = "\u{f530}" + case glide = "\u{f2a5}" + case glideG = "\u{f2a6}" + case globe = "\u{f0ac}" + case globeAfrica = "\u{f57c}" + case globeAmericas = "\u{f57d}" + case globeAsia = "\u{f57e}" + case globeEurope = "\u{f7a2}" + case gofore = "\u{f3a7}" + case golfBall = "\u{f450}" + case goodreads = "\u{f3a8}" + case goodreadsG = "\u{f3a9}" + case google = "\u{f1a0}" + case googleDrive = "\u{f3aa}" + case googlePlay = "\u{f3ab}" + case googlePlus = "\u{f2b3}" + case googlePlusG = "\u{f0d5}" + case googlePlusSquare = "\u{f0d4}" + case googleWallet = "\u{f1ee}" + case gopuram = "\u{f664}" + case graduationCap = "\u{f19d}" + case gratipay = "\u{f184}" + case grav = "\u{f2d6}" + case greaterThan = "\u{f531}" + case greaterThanEqual = "\u{f532}" + case grimace = "\u{f57f}" + case grin = "\u{f580}" + case grinAlt = "\u{f581}" + case grinBeam = "\u{f582}" + case grinBeamSweat = "\u{f583}" + case grinHearts = "\u{f584}" + case grinSquint = "\u{f585}" + case grinSquintTears = "\u{f586}" + case grinStars = "\u{f587}" + case grinTears = "\u{f588}" + case grinTongue = "\u{f589}" + case grinTongueSquint = "\u{f58a}" + case grinTongueWink = "\u{f58b}" + case grinWink = "\u{f58c}" + case gripHorizontal = "\u{f58d}" + case gripLines = "\u{f7a4}" + case gripLinesVertical = "\u{f7a5}" + case gripVertical = "\u{f58e}" + case gripfire = "\u{f3ac}" + case grunt = "\u{f3ad}" + case guitar = "\u{f7a6}" + case gulp = "\u{f3ae}" + case hSquare = "\u{f0fd}" + case hackerNews = "\u{f1d4}" + case hackerNewsSquare = "\u{f3af}" + case hackerrank = "\u{f5f7}" + case hamburger = "\u{f805}" + case hammer = "\u{f6e3}" + case hamsa = "\u{f665}" + case handHolding = "\u{f4bd}" + case handHoldingHeart = "\u{f4be}" + case handHoldingUsd = "\u{f4c0}" + case handLizard = "\u{f258}" + case handMiddleFinger = "\u{f806}" + case handPaper = "\u{f256}" + case handPeace = "\u{f25b}" + case handPointDown = "\u{f0a7}" + case handPointLeft = "\u{f0a5}" + case handPointRight = "\u{f0a4}" + case handPointUp = "\u{f0a6}" + case handPointer = "\u{f25a}" + case handRock = "\u{f255}" + case handScissors = "\u{f257}" + case handSpock = "\u{f259}" + case hands = "\u{f4c2}" + case handsHelping = "\u{f4c4}" + case handshake = "\u{f2b5}" + case hanukiah = "\u{f6e6}" + case hardHat = "\u{f807}" + case hashtag = "\u{f292}" + case hatWizard = "\u{f6e8}" + case haykal = "\u{f666}" + case hdd = "\u{f0a0}" + case heading = "\u{f1dc}" + case headphones = "\u{f025}" + case headphonesAlt = "\u{f58f}" + case headset = "\u{f590}" + case heart = "\u{f004}" + case heartBroken = "\u{f7a9}" + case heartbeat = "\u{f21e}" + case helicopter = "\u{f533}" + case highlighter = "\u{f591}" + case hiking = "\u{f6ec}" + case hippo = "\u{f6ed}" + case hips = "\u{f452}" + case hireAHelper = "\u{f3b0}" + case history = "\u{f1da}" + case hockeyPuck = "\u{f453}" + case hollyBerry = "\u{f7aa}" + case home = "\u{f015}" + case hooli = "\u{f427}" + case hornbill = "\u{f592}" + case horse = "\u{f6f0}" + case horseHead = "\u{f7ab}" + case hospital = "\u{f0f8}" + case hospitalAlt = "\u{f47d}" + case hospitalSymbol = "\u{f47e}" + case hotTub = "\u{f593}" + case hotdog = "\u{f80f}" + case hotel = "\u{f594}" + case hotjar = "\u{f3b1}" + case hourglass = "\u{f254}" + case hourglassEnd = "\u{f253}" + case hourglassHalf = "\u{f252}" + case hourglassStart = "\u{f251}" + case houseDamage = "\u{f6f1}" + case houzz = "\u{f27c}" + case hryvnia = "\u{f6f2}" + case html5 = "\u{f13b}" + case hubspot = "\u{f3b2}" + case iCursor = "\u{f246}" + case iceCream = "\u{f810}" + case icicles = "\u{f7ad}" + case idBadge = "\u{f2c1}" + case idCard = "\u{f2c2}" + case idCardAlt = "\u{f47f}" + case igloo = "\u{f7ae}" + case image = "\u{f03e}" + case images = "\u{f302}" + case imdb = "\u{f2d8}" + case inbox = "\u{f01c}" + case indent = "\u{f03c}" + case industry = "\u{f275}" + case infinity = "\u{f534}" + case info = "\u{f129}" + case infoCircle = "\u{f05a}" + case instagram = "\u{f16d}" + case intercom = "\u{f7af}" + case internetExplorer = "\u{f26b}" + case invision = "\u{f7b0}" + case ioxhost = "\u{f208}" + case italic = "\u{f033}" + case itchIo = "\u{f83a}" + case itunes = "\u{f3b4}" + case itunesNote = "\u{f3b5}" + case java = "\u{f4e4}" + case jedi = "\u{f669}" + case jediOrder = "\u{f50e}" + case jenkins = "\u{f3b6}" + case jira = "\u{f7b1}" + case joget = "\u{f3b7}" + case joint = "\u{f595}" + case joomla = "\u{f1aa}" + case journalWhills = "\u{f66a}" + case js = "\u{f3b8}" + case jsSquare = "\u{f3b9}" + case jsfiddle = "\u{f1cc}" + case kaaba = "\u{f66b}" + case kaggle = "\u{f5fa}" + case key = "\u{f084}" + case keybase = "\u{f4f5}" + case keyboard = "\u{f11c}" + case keycdn = "\u{f3ba}" + case khanda = "\u{f66d}" + case kickstarter = "\u{f3bb}" + case kickstarterK = "\u{f3bc}" + case kiss = "\u{f596}" + case kissBeam = "\u{f597}" + case kissWinkHeart = "\u{f598}" + case kiwiBird = "\u{f535}" + case korvue = "\u{f42f}" + case landmark = "\u{f66f}" + case language = "\u{f1ab}" + case laptop = "\u{f109}" + case laptopCode = "\u{f5fc}" + case laptopMedical = "\u{f812}" + case laravel = "\u{f3bd}" + case lastfm = "\u{f202}" + case lastfmSquare = "\u{f203}" + case laugh = "\u{f599}" + case laughBeam = "\u{f59a}" + case laughSquint = "\u{f59b}" + case laughWink = "\u{f59c}" + case layerGroup = "\u{f5fd}" + case leaf = "\u{f06c}" + case leanpub = "\u{f212}" + case lemon = "\u{f094}" + case less = "\u{f41d}" + case lessThan = "\u{f536}" + case lessThanEqual = "\u{f537}" + case levelDownAlt = "\u{f3be}" + case levelUpAlt = "\u{f3bf}" + case lifeRing = "\u{f1cd}" + case lightbulb = "\u{f0eb}" + case line = "\u{f3c0}" + case link = "\u{f0c1}" + case linkedin = "\u{f08c}" + case linkedinIn = "\u{f0e1}" + case linode = "\u{f2b8}" + case linux = "\u{f17c}" + case liraSign = "\u{f195}" + case list = "\u{f03a}" + case listAlt = "\u{f022}" + case listOl = "\u{f0cb}" + case listUl = "\u{f0ca}" + case locationArrow = "\u{f124}" + case lock = "\u{f023}" + case lockOpen = "\u{f3c1}" + case longArrowAltDown = "\u{f309}" + case longArrowAltLeft = "\u{f30a}" + case longArrowAltRight = "\u{f30b}" + case longArrowAltUp = "\u{f30c}" + case lowVision = "\u{f2a8}" + case luggageCart = "\u{f59d}" + case lyft = "\u{f3c3}" + case magento = "\u{f3c4}" + case magic = "\u{f0d0}" + case magnet = "\u{f076}" + case mailBulk = "\u{f674}" + case mailchimp = "\u{f59e}" + case male = "\u{f183}" + case mandalorian = "\u{f50f}" + case map = "\u{f279}" + case mapMarked = "\u{f59f}" + case mapMarkedAlt = "\u{f5a0}" + case mapMarker = "\u{f041}" + case mapMarkerAlt = "\u{f3c5}" + case mapPin = "\u{f276}" + case mapSigns = "\u{f277}" + case markdown = "\u{f60f}" + case marker = "\u{f5a1}" + case mars = "\u{f222}" + case marsDouble = "\u{f227}" + case marsStroke = "\u{f229}" + case marsStrokeH = "\u{f22b}" + case marsStrokeV = "\u{f22a}" + case mask = "\u{f6fa}" + case mastodon = "\u{f4f6}" + case maxcdn = "\u{f136}" + case medal = "\u{f5a2}" + case medapps = "\u{f3c6}" + case medium = "\u{f23a}" + case mediumM = "\u{f3c7}" + case medkit = "\u{f0fa}" + case medrt = "\u{f3c8}" + case meetup = "\u{f2e0}" + case megaport = "\u{f5a3}" + case meh = "\u{f11a}" + case mehBlank = "\u{f5a4}" + case mehRollingEyes = "\u{f5a5}" + case memory = "\u{f538}" + case mendeley = "\u{f7b3}" + case menorah = "\u{f676}" + case mercury = "\u{f223}" + case meteor = "\u{f753}" + case microchip = "\u{f2db}" + case microphone = "\u{f130}" + case microphoneAlt = "\u{f3c9}" + case microphoneAltSlash = "\u{f539}" + case microphoneSlash = "\u{f131}" + case microscope = "\u{f610}" + case microsoft = "\u{f3ca}" + case minus = "\u{f068}" + case minusCircle = "\u{f056}" + case minusSquare = "\u{f146}" + case mitten = "\u{f7b5}" + case mix = "\u{f3cb}" + case mixcloud = "\u{f289}" + case mizuni = "\u{f3cc}" + case mobile = "\u{f10b}" + case mobileAlt = "\u{f3cd}" + case modx = "\u{f285}" + case monero = "\u{f3d0}" + case moneyBill = "\u{f0d6}" + case moneyBillAlt = "\u{f3d1}" + case moneyBillWave = "\u{f53a}" + case moneyBillWaveAlt = "\u{f53b}" + case moneyCheck = "\u{f53c}" + case moneyCheckAlt = "\u{f53d}" + case monument = "\u{f5a6}" + case moon = "\u{f186}" + case mortarPestle = "\u{f5a7}" + case mosque = "\u{f678}" + case motorcycle = "\u{f21c}" + case mountain = "\u{f6fc}" + case mousePointer = "\u{f245}" + case mugHot = "\u{f7b6}" + case music = "\u{f001}" + case napster = "\u{f3d2}" + case neos = "\u{f612}" + case networkWired = "\u{f6ff}" + case neuter = "\u{f22c}" + case newspaper = "\u{f1ea}" + case nimblr = "\u{f5a8}" + case nintendoSwitch = "\u{f418}" + case node = "\u{f419}" + case nodeJs = "\u{f3d3}" + case notEqual = "\u{f53e}" + case notesMedical = "\u{f481}" + case npm = "\u{f3d4}" + case ns8 = "\u{f3d5}" + case nutritionix = "\u{f3d6}" + case objectGroup = "\u{f247}" + case objectUngroup = "\u{f248}" + case odnoklassniki = "\u{f263}" + case odnoklassnikiSquare = "\u{f264}" + case oilCan = "\u{f613}" + case oldRepublic = "\u{f510}" + case om = "\u{f679}" + case opencart = "\u{f23d}" + case openid = "\u{f19b}" + case opera = "\u{f26a}" + case optinMonster = "\u{f23c}" + case osi = "\u{f41a}" + case otter = "\u{f700}" + case outdent = "\u{f03b}" + case page4 = "\u{f3d7}" + case pagelines = "\u{f18c}" + case pager = "\u{f815}" + case paintBrush = "\u{f1fc}" + case paintRoller = "\u{f5aa}" + case palette = "\u{f53f}" + case palfed = "\u{f3d8}" + case pallet = "\u{f482}" + case paperPlane = "\u{f1d8}" + case paperclip = "\u{f0c6}" + case parachuteBox = "\u{f4cd}" + case paragraph = "\u{f1dd}" + case parking = "\u{f540}" + case passport = "\u{f5ab}" + case pastafarianism = "\u{f67b}" + case paste = "\u{f0ea}" + case patreon = "\u{f3d9}" + case pause = "\u{f04c}" + case pauseCircle = "\u{f28b}" + case paw = "\u{f1b0}" + case paypal = "\u{f1ed}" + case peace = "\u{f67c}" + case pen = "\u{f304}" + case penAlt = "\u{f305}" + case penFancy = "\u{f5ac}" + case penNib = "\u{f5ad}" + case penSquare = "\u{f14b}" + case pencilAlt = "\u{f303}" + case pencilRuler = "\u{f5ae}" + case pennyArcade = "\u{f704}" + case peopleCarry = "\u{f4ce}" + case pepperHot = "\u{f816}" + case percent = "\u{f295}" + case percentage = "\u{f541}" + case periscope = "\u{f3da}" + case personBooth = "\u{f756}" + case phabricator = "\u{f3db}" + case phoenixFramework = "\u{f3dc}" + case phoenixSquadron = "\u{f511}" + case phone = "\u{f095}" + case phoneSlash = "\u{f3dd}" + case phoneSquare = "\u{f098}" + case phoneVolume = "\u{f2a0}" + case php = "\u{f457}" + case piedPiper = "\u{f2ae}" + case piedPiperAlt = "\u{f1a8}" + case piedPiperHat = "\u{f4e5}" + case piedPiperPp = "\u{f1a7}" + case piggyBank = "\u{f4d3}" + case pills = "\u{f484}" + case pinterest = "\u{f0d2}" + case pinterestP = "\u{f231}" + case pinterestSquare = "\u{f0d3}" + case pizzaSlice = "\u{f818}" + case placeOfWorship = "\u{f67f}" + case plane = "\u{f072}" + case planeArrival = "\u{f5af}" + case planeDeparture = "\u{f5b0}" + case play = "\u{f04b}" + case playCircle = "\u{f144}" + case playstation = "\u{f3df}" + case plug = "\u{f1e6}" + case plus = "\u{f067}" + case plusCircle = "\u{f055}" + case plusSquare = "\u{f0fe}" + case podcast = "\u{f2ce}" + case poll = "\u{f681}" + case pollH = "\u{f682}" + case poo = "\u{f2fe}" + case pooStorm = "\u{f75a}" + case poop = "\u{f619}" + case portrait = "\u{f3e0}" + case poundSign = "\u{f154}" + case powerOff = "\u{f011}" + case pray = "\u{f683}" + case prayingHands = "\u{f684}" + case prescription = "\u{f5b1}" + case prescriptionBottle = "\u{f485}" + case prescriptionBottleAlt = "\u{f486}" + case print = "\u{f02f}" + case procedures = "\u{f487}" + case productHunt = "\u{f288}" + case projectDiagram = "\u{f542}" + case pushed = "\u{f3e1}" + case puzzlePiece = "\u{f12e}" + case python = "\u{f3e2}" + case qq = "\u{f1d6}" + case qrcode = "\u{f029}" + case question = "\u{f128}" + case questionCircle = "\u{f059}" + case quidditch = "\u{f458}" + case quinscape = "\u{f459}" + case quora = "\u{f2c4}" + case quoteLeft = "\u{f10d}" + case quoteRight = "\u{f10e}" + case quran = "\u{f687}" + case rProject = "\u{f4f7}" + case radiation = "\u{f7b9}" + case radiationAlt = "\u{f7ba}" + case rainbow = "\u{f75b}" + case random = "\u{f074}" + case raspberryPi = "\u{f7bb}" + case ravelry = "\u{f2d9}" + case react = "\u{f41b}" + case reacteurope = "\u{f75d}" + case readme = "\u{f4d5}" + case rebel = "\u{f1d0}" + case receipt = "\u{f543}" + case recycle = "\u{f1b8}" + case redRiver = "\u{f3e3}" + case reddit = "\u{f1a1}" + case redditAlien = "\u{f281}" + case redditSquare = "\u{f1a2}" + case redhat = "\u{f7bc}" + case redo = "\u{f01e}" + case redoAlt = "\u{f2f9}" + case registered = "\u{f25d}" + case renren = "\u{f18b}" + case reply = "\u{f3e5}" + case replyAll = "\u{f122}" + case replyd = "\u{f3e6}" + case republican = "\u{f75e}" + case researchgate = "\u{f4f8}" + case resolving = "\u{f3e7}" + case restroom = "\u{f7bd}" + case retweet = "\u{f079}" + case rev = "\u{f5b2}" + case ribbon = "\u{f4d6}" + case ring = "\u{f70b}" + case road = "\u{f018}" + case robot = "\u{f544}" + case rocket = "\u{f135}" + case rocketchat = "\u{f3e8}" + case rockrms = "\u{f3e9}" + case route = "\u{f4d7}" + case rss = "\u{f09e}" + case rssSquare = "\u{f143}" + case rubleSign = "\u{f158}" + case ruler = "\u{f545}" + case rulerCombined = "\u{f546}" + case rulerHorizontal = "\u{f547}" + case rulerVertical = "\u{f548}" + case running = "\u{f70c}" + case rupeeSign = "\u{f156}" + case sadCry = "\u{f5b3}" + case sadTear = "\u{f5b4}" + case safari = "\u{f267}" + case salesforce = "\u{f83b}" + case sass = "\u{f41e}" + case satellite = "\u{f7bf}" + case satelliteDish = "\u{f7c0}" + case save = "\u{f0c7}" + case schlix = "\u{f3ea}" + case school = "\u{f549}" + case screwdriver = "\u{f54a}" + case scribd = "\u{f28a}" + case scroll = "\u{f70e}" + case sdCard = "\u{f7c2}" + case search = "\u{f002}" + case searchDollar = "\u{f688}" + case searchLocation = "\u{f689}" + case searchMinus = "\u{f010}" + case searchPlus = "\u{f00e}" + case searchengin = "\u{f3eb}" + case seedling = "\u{f4d8}" + case sellcast = "\u{f2da}" + case sellsy = "\u{f213}" + case server = "\u{f233}" + case servicestack = "\u{f3ec}" + case shapes = "\u{f61f}" + case share = "\u{f064}" + case shareAlt = "\u{f1e0}" + case shareAltSquare = "\u{f1e1}" + case shareSquare = "\u{f14d}" + case shekelSign = "\u{f20b}" + case shieldAlt = "\u{f3ed}" + case ship = "\u{f21a}" + case shippingFast = "\u{f48b}" + case shirtsinbulk = "\u{f214}" + case shoePrints = "\u{f54b}" + case shoppingBag = "\u{f290}" + case shoppingBasket = "\u{f291}" + case shoppingCart = "\u{f07a}" + case shopware = "\u{f5b5}" + case shower = "\u{f2cc}" + case shuttleVan = "\u{f5b6}" + case sign = "\u{f4d9}" + case signInAlt = "\u{f2f6}" + case signLanguage = "\u{f2a7}" + case signOutAlt = "\u{f2f5}" + case signal = "\u{f012}" + case signature = "\u{f5b7}" + case simCard = "\u{f7c4}" + case simplybuilt = "\u{f215}" + case sistrix = "\u{f3ee}" + case sitemap = "\u{f0e8}" + case sith = "\u{f512}" + case skating = "\u{f7c5}" + case sketch = "\u{f7c6}" + case skiing = "\u{f7c9}" + case skiingNordic = "\u{f7ca}" + case skull = "\u{f54c}" + case skullCrossbones = "\u{f714}" + case skyatlas = "\u{f216}" + case skype = "\u{f17e}" + case slack = "\u{f198}" + case slackHash = "\u{f3ef}" + case slash = "\u{f715}" + case sleigh = "\u{f7cc}" + case slidersH = "\u{f1de}" + case slideshare = "\u{f1e7}" + case smile = "\u{f118}" + case smileBeam = "\u{f5b8}" + case smileWink = "\u{f4da}" + case smog = "\u{f75f}" + case smoking = "\u{f48d}" + case smokingBan = "\u{f54d}" + case sms = "\u{f7cd}" + case snapchat = "\u{f2ab}" + case snapchatGhost = "\u{f2ac}" + case snapchatSquare = "\u{f2ad}" + case snowboarding = "\u{f7ce}" + case snowflake = "\u{f2dc}" + case snowman = "\u{f7d0}" + case snowplow = "\u{f7d2}" + case socks = "\u{f696}" + case solarPanel = "\u{f5ba}" + case sort = "\u{f0dc}" + case sortAlphaDown = "\u{f15d}" + case sortAlphaUp = "\u{f15e}" + case sortAmountDown = "\u{f160}" + case sortAmountUp = "\u{f161}" + case sortDown = "\u{f0dd}" + case sortNumericDown = "\u{f162}" + case sortNumericUp = "\u{f163}" + case sortUp = "\u{f0de}" + case soundcloud = "\u{f1be}" + case sourcetree = "\u{f7d3}" + case spa = "\u{f5bb}" + case spaceShuttle = "\u{f197}" + case speakap = "\u{f3f3}" + case speakerDeck = "\u{f83c}" + case spider = "\u{f717}" + case spinner = "\u{f110}" + case splotch = "\u{f5bc}" + case spotify = "\u{f1bc}" + case sprayCan = "\u{f5bd}" + case square = "\u{f0c8}" + case squareFull = "\u{f45c}" + case squareRootAlt = "\u{f698}" + case squarespace = "\u{f5be}" + case stackExchange = "\u{f18d}" + case stackOverflow = "\u{f16c}" + case stackpath = "\u{f842}" + case stamp = "\u{f5bf}" + case star = "\u{f005}" + case starAndCrescent = "\u{f699}" + case starHalf = "\u{f089}" + case starHalfAlt = "\u{f5c0}" + case starOfDavid = "\u{f69a}" + case starOfLife = "\u{f621}" + case staylinked = "\u{f3f5}" + case steam = "\u{f1b6}" + case steamSquare = "\u{f1b7}" + case steamSymbol = "\u{f3f6}" + case stepBackward = "\u{f048}" + case stepForward = "\u{f051}" + case stethoscope = "\u{f0f1}" + case stickerMule = "\u{f3f7}" + case stickyNote = "\u{f249}" + case stop = "\u{f04d}" + case stopCircle = "\u{f28d}" + case stopwatch = "\u{f2f2}" + case store = "\u{f54e}" + case storeAlt = "\u{f54f}" + case strava = "\u{f428}" + case stream = "\u{f550}" + case streetView = "\u{f21d}" + case strikethrough = "\u{f0cc}" + case stripe = "\u{f429}" + case stripeS = "\u{f42a}" + case stroopwafel = "\u{f551}" + case studiovinari = "\u{f3f8}" + case stumbleupon = "\u{f1a4}" + case stumbleuponCircle = "\u{f1a3}" + case `subscript` = "\u{f12c}" + case subway = "\u{f239}" + case suitcase = "\u{f0f2}" + case suitcaseRolling = "\u{f5c1}" + case sun = "\u{f185}" + case superpowers = "\u{f2dd}" + case superscript = "\u{f12b}" + case supple = "\u{f3f9}" + case surprise = "\u{f5c2}" + case suse = "\u{f7d6}" + case swatchbook = "\u{f5c3}" + case swimmer = "\u{f5c4}" + case swimmingPool = "\u{f5c5}" + case symfony = "\u{f83d}" + case synagogue = "\u{f69b}" + case sync = "\u{f021}" + case syncAlt = "\u{f2f1}" + case syringe = "\u{f48e}" + case table = "\u{f0ce}" + case tableTennis = "\u{f45d}" + case tablet = "\u{f10a}" + case tabletAlt = "\u{f3fa}" + case tablets = "\u{f490}" + case tachometerAlt = "\u{f3fd}" + case tag = "\u{f02b}" + case tags = "\u{f02c}" + case tape = "\u{f4db}" + case tasks = "\u{f0ae}" + case taxi = "\u{f1ba}" + case teamspeak = "\u{f4f9}" + case teeth = "\u{f62e}" + case teethOpen = "\u{f62f}" + case telegram = "\u{f2c6}" + case telegramPlane = "\u{f3fe}" + case temperatureHigh = "\u{f769}" + case temperatureLow = "\u{f76b}" + case tencentWeibo = "\u{f1d5}" + case tenge = "\u{f7d7}" + case terminal = "\u{f120}" + case textHeight = "\u{f034}" + case textWidth = "\u{f035}" + case th = "\u{f00a}" + case thLarge = "\u{f009}" + case thList = "\u{f00b}" + case theRedYeti = "\u{f69d}" + case theaterMasks = "\u{f630}" + case themeco = "\u{f5c6}" + case themeisle = "\u{f2b2}" + case thermometer = "\u{f491}" + case thermometerEmpty = "\u{f2cb}" + case thermometerFull = "\u{f2c7}" + case thermometerHalf = "\u{f2c9}" + case thermometerQuarter = "\u{f2ca}" + case thermometerThreeQuarters = "\u{f2c8}" + case thinkPeaks = "\u{f731}" + case thumbsDown = "\u{f165}" + case thumbsUp = "\u{f164}" + case thumbtack = "\u{f08d}" + case ticketAlt = "\u{f3ff}" + case times = "\u{f00d}" + case timesCircle = "\u{f057}" + case tint = "\u{f043}" + case tintSlash = "\u{f5c7}" + case tired = "\u{f5c8}" + case toggleOff = "\u{f204}" + case toggleOn = "\u{f205}" + case toilet = "\u{f7d8}" + case toiletPaper = "\u{f71e}" + case toolbox = "\u{f552}" + case tools = "\u{f7d9}" + case tooth = "\u{f5c9}" + case torah = "\u{f6a0}" + case toriiGate = "\u{f6a1}" + case tractor = "\u{f722}" + case tradeFederation = "\u{f513}" + case trademark = "\u{f25c}" + case trafficLight = "\u{f637}" + case train = "\u{f238}" + case tram = "\u{f7da}" + case transgender = "\u{f224}" + case transgenderAlt = "\u{f225}" + case trash = "\u{f1f8}" + case trashAlt = "\u{f2ed}" + case trashRestore = "\u{f829}" + case trashRestoreAlt = "\u{f82a}" + case tree = "\u{f1bb}" + case trello = "\u{f181}" + case tripadvisor = "\u{f262}" + case trophy = "\u{f091}" + case truck = "\u{f0d1}" + case truckLoading = "\u{f4de}" + case truckMonster = "\u{f63b}" + case truckMoving = "\u{f4df}" + case truckPickup = "\u{f63c}" + case tshirt = "\u{f553}" + case tty = "\u{f1e4}" + case tumblr = "\u{f173}" + case tumblrSquare = "\u{f174}" + case tv = "\u{f26c}" + case twitch = "\u{f1e8}" + case twitter = "\u{f099}" + case twitterSquare = "\u{f081}" + case typo3 = "\u{f42b}" + case uber = "\u{f402}" + case ubuntu = "\u{f7df}" + case uikit = "\u{f403}" + case umbrella = "\u{f0e9}" + case umbrellaBeach = "\u{f5ca}" + case underline = "\u{f0cd}" + case undo = "\u{f0e2}" + case undoAlt = "\u{f2ea}" + case uniregistry = "\u{f404}" + case universalAccess = "\u{f29a}" + case university = "\u{f19c}" + case unlink = "\u{f127}" + case unlock = "\u{f09c}" + case unlockAlt = "\u{f13e}" + case untappd = "\u{f405}" + case upload = "\u{f093}" + case ups = "\u{f7e0}" + case usb = "\u{f287}" + case user = "\u{f007}" + case userAlt = "\u{f406}" + case userAltSlash = "\u{f4fa}" + case userAstronaut = "\u{f4fb}" + case userCheck = "\u{f4fc}" + case userCircle = "\u{f2bd}" + case userClock = "\u{f4fd}" + case userCog = "\u{f4fe}" + case userEdit = "\u{f4ff}" + case userFriends = "\u{f500}" + case userGraduate = "\u{f501}" + case userInjured = "\u{f728}" + case userLock = "\u{f502}" + case userMd = "\u{f0f0}" + case userMinus = "\u{f503}" + case userNinja = "\u{f504}" + case userNurse = "\u{f82f}" + case userPlus = "\u{f234}" + case userSecret = "\u{f21b}" + case userShield = "\u{f505}" + case userSlash = "\u{f506}" + case userTag = "\u{f507}" + case userTie = "\u{f508}" + case userTimes = "\u{f235}" + case users = "\u{f0c0}" + case usersCog = "\u{f509}" + case usps = "\u{f7e1}" + case ussunnah = "\u{f407}" + case utensilSpoon = "\u{f2e5}" + case utensils = "\u{f2e7}" + case vaadin = "\u{f408}" + case vectorSquare = "\u{f5cb}" + case venus = "\u{f221}" + case venusDouble = "\u{f226}" + case venusMars = "\u{f228}" + case viacoin = "\u{f237}" + case viadeo = "\u{f2a9}" + case viadeoSquare = "\u{f2aa}" + case vial = "\u{f492}" + case vials = "\u{f493}" + case viber = "\u{f409}" + case video = "\u{f03d}" + case videoSlash = "\u{f4e2}" + case vihara = "\u{f6a7}" + case vimeo = "\u{f40a}" + case vimeoSquare = "\u{f194}" + case vimeoV = "\u{f27d}" + case vine = "\u{f1ca}" + case vk = "\u{f189}" + case vnv = "\u{f40b}" + case volleyballBall = "\u{f45f}" + case volumeDown = "\u{f027}" + case volumeMute = "\u{f6a9}" + case volumeOff = "\u{f026}" + case volumeUp = "\u{f028}" + case voteYea = "\u{f772}" + case vrCardboard = "\u{f729}" + case vuejs = "\u{f41f}" + case walking = "\u{f554}" + case wallet = "\u{f555}" + case warehouse = "\u{f494}" + case water = "\u{f773}" + case waveSquare = "\u{f83e}" + case waze = "\u{f83f}" + case weebly = "\u{f5cc}" + case weibo = "\u{f18a}" + case weight = "\u{f496}" + case weightHanging = "\u{f5cd}" + case weixin = "\u{f1d7}" + case whatsapp = "\u{f232}" + case whatsappSquare = "\u{f40c}" + case wheelchair = "\u{f193}" + case whmcs = "\u{f40d}" + case wifi = "\u{f1eb}" + case wikipediaW = "\u{f266}" + case wind = "\u{f72e}" + case windowClose = "\u{f410}" + case windowMaximize = "\u{f2d0}" + case windowMinimize = "\u{f2d1}" + case windowRestore = "\u{f2d2}" + case windows = "\u{f17a}" + case wineBottle = "\u{f72f}" + case wineGlass = "\u{f4e3}" + case wineGlassAlt = "\u{f5ce}" + case wix = "\u{f5cf}" + case wizardsOfTheCoast = "\u{f730}" + case wolfPackBattalion = "\u{f514}" + case wonSign = "\u{f159}" + case wordpress = "\u{f19a}" + case wordpressSimple = "\u{f411}" + case wpbeginner = "\u{f297}" + case wpexplorer = "\u{f2de}" + case wpforms = "\u{f298}" + case wpressr = "\u{f3e4}" + case wrench = "\u{f0ad}" + case xRay = "\u{f497}" + case xbox = "\u{f412}" + case xing = "\u{f168}" + case xingSquare = "\u{f169}" + case yCombinator = "\u{f23b}" + case yahoo = "\u{f19e}" + case yammer = "\u{f840}" + case yandex = "\u{f413}" + case yandexInternational = "\u{f414}" + case yarn = "\u{f7e3}" + case yelp = "\u{f1e9}" + case yenSign = "\u{f157}" + case yinYang = "\u{f6ad}" + case yoast = "\u{f2b1}" + case youtube = "\u{f167}" + case youtubeSquare = "\u{f431}" + case zhihu = "\u{f63f}" +} + +/// An array of FontAwesome icon codes. +// swiftlint:disable identifier_name +public let FontAwesomeIcons: [String: String] = [ + "fa-500px": "\u{f26e}", + "fa-accessible-icon": "\u{f368}", + "fa-accusoft": "\u{f369}", + "fa-acquisitions-incorporated": "\u{f6af}", + "fa-ad": "\u{f641}", + "fa-address-book": "\u{f2b9}", + "fa-address-card": "\u{f2bb}", + "fa-adjust": "\u{f042}", + "fa-adn": "\u{f170}", + "fa-adobe": "\u{f778}", + "fa-adversal": "\u{f36a}", + "fa-affiliatetheme": "\u{f36b}", + "fa-air-freshener": "\u{f5d0}", + "fa-airbnb": "\u{f834}", + "fa-algolia": "\u{f36c}", + "fa-align-center": "\u{f037}", + "fa-align-justify": "\u{f039}", + "fa-align-left": "\u{f036}", + "fa-align-right": "\u{f038}", + "fa-alipay": "\u{f642}", + "fa-allergies": "\u{f461}", + "fa-amazon": "\u{f270}", + "fa-amazon-pay": "\u{f42c}", + "fa-ambulance": "\u{f0f9}", + "fa-american-sign-language-interpreting": "\u{f2a3}", + "fa-amilia": "\u{f36d}", + "fa-anchor": "\u{f13d}", + "fa-android": "\u{f17b}", + "fa-angellist": "\u{f209}", + "fa-angle-double-down": "\u{f103}", + "fa-angle-double-left": "\u{f100}", + "fa-angle-double-right": "\u{f101}", + "fa-angle-double-up": "\u{f102}", + "fa-angle-down": "\u{f107}", + "fa-angle-left": "\u{f104}", + "fa-angle-right": "\u{f105}", + "fa-angle-up": "\u{f106}", + "fa-angry": "\u{f556}", + "fa-angrycreative": "\u{f36e}", + "fa-angular": "\u{f420}", + "fa-ankh": "\u{f644}", + "fa-app-store": "\u{f36f}", + "fa-app-store-ios": "\u{f370}", + "fa-apper": "\u{f371}", + "fa-apple": "\u{f179}", + "fa-apple-alt": "\u{f5d1}", + "fa-apple-pay": "\u{f415}", + "fa-archive": "\u{f187}", + "fa-archway": "\u{f557}", + "fa-arrow-alt-circle-down": "\u{f358}", + "fa-arrow-alt-circle-left": "\u{f359}", + "fa-arrow-alt-circle-right": "\u{f35a}", + "fa-arrow-alt-circle-up": "\u{f35b}", + "fa-arrow-circle-down": "\u{f0ab}", + "fa-arrow-circle-left": "\u{f0a8}", + "fa-arrow-circle-right": "\u{f0a9}", + "fa-arrow-circle-up": "\u{f0aa}", + "fa-arrow-down": "\u{f063}", + "fa-arrow-left": "\u{f060}", + "fa-arrow-right": "\u{f061}", + "fa-arrow-up": "\u{f062}", + "fa-arrows-alt": "\u{f0b2}", + "fa-arrows-alt-h": "\u{f337}", + "fa-arrows-alt-v": "\u{f338}", + "fa-artstation": "\u{f77a}", + "fa-assistive-listening-systems": "\u{f2a2}", + "fa-asterisk": "\u{f069}", + "fa-asymmetrik": "\u{f372}", + "fa-at": "\u{f1fa}", + "fa-atlas": "\u{f558}", + "fa-atlassian": "\u{f77b}", + "fa-atom": "\u{f5d2}", + "fa-audible": "\u{f373}", + "fa-audio-description": "\u{f29e}", + "fa-autoprefixer": "\u{f41c}", + "fa-avianex": "\u{f374}", + "fa-aviato": "\u{f421}", + "fa-award": "\u{f559}", + "fa-aws": "\u{f375}", + "fa-baby": "\u{f77c}", + "fa-baby-carriage": "\u{f77d}", + "fa-backspace": "\u{f55a}", + "fa-backward": "\u{f04a}", + "fa-bacon": "\u{f7e5}", + "fa-balance-scale": "\u{f24e}", + "fa-ban": "\u{f05e}", + "fa-band-aid": "\u{f462}", + "fa-bandcamp": "\u{f2d5}", + "fa-barcode": "\u{f02a}", + "fa-bars": "\u{f0c9}", + "fa-baseball-ball": "\u{f433}", + "fa-basketball-ball": "\u{f434}", + "fa-bath": "\u{f2cd}", + "fa-battery-empty": "\u{f244}", + "fa-battery-full": "\u{f240}", + "fa-battery-half": "\u{f242}", + "fa-battery-quarter": "\u{f243}", + "fa-battery-three-quarters": "\u{f241}", + "fa-battle-net": "\u{f835}", + "fa-bed": "\u{f236}", + "fa-beer": "\u{f0fc}", + "fa-behance": "\u{f1b4}", + "fa-behance-square": "\u{f1b5}", + "fa-bell": "\u{f0f3}", + "fa-bell-slash": "\u{f1f6}", + "fa-bezier-curve": "\u{f55b}", + "fa-bible": "\u{f647}", + "fa-bicycle": "\u{f206}", + "fa-bimobject": "\u{f378}", + "fa-binoculars": "\u{f1e5}", + "fa-biohazard": "\u{f780}", + "fa-birthday-cake": "\u{f1fd}", + "fa-bitbucket": "\u{f171}", + "fa-bitcoin": "\u{f379}", + "fa-bity": "\u{f37a}", + "fa-black-tie": "\u{f27e}", + "fa-blackberry": "\u{f37b}", + "fa-blender": "\u{f517}", + "fa-blender-phone": "\u{f6b6}", + "fa-blind": "\u{f29d}", + "fa-blog": "\u{f781}", + "fa-blogger": "\u{f37c}", + "fa-blogger-b": "\u{f37d}", + "fa-bluetooth": "\u{f293}", + "fa-bluetooth-b": "\u{f294}", + "fa-bold": "\u{f032}", + "fa-bolt": "\u{f0e7}", + "fa-bomb": "\u{f1e2}", + "fa-bone": "\u{f5d7}", + "fa-bong": "\u{f55c}", + "fa-book": "\u{f02d}", + "fa-book-dead": "\u{f6b7}", + "fa-book-medical": "\u{f7e6}", + "fa-book-open": "\u{f518}", + "fa-book-reader": "\u{f5da}", + "fa-bookmark": "\u{f02e}", + "fa-bootstrap": "\u{f836}", + "fa-bowling-ball": "\u{f436}", + "fa-box": "\u{f466}", + "fa-box-open": "\u{f49e}", + "fa-boxes": "\u{f468}", + "fa-braille": "\u{f2a1}", + "fa-brain": "\u{f5dc}", + "fa-bread-slice": "\u{f7ec}", + "fa-briefcase": "\u{f0b1}", + "fa-briefcase-medical": "\u{f469}", + "fa-broadcast-tower": "\u{f519}", + "fa-broom": "\u{f51a}", + "fa-brush": "\u{f55d}", + "fa-btc": "\u{f15a}", + "fa-buffer": "\u{f837}", + "fa-bug": "\u{f188}", + "fa-building": "\u{f1ad}", + "fa-bullhorn": "\u{f0a1}", + "fa-bullseye": "\u{f140}", + "fa-burn": "\u{f46a}", + "fa-buromobelexperte": "\u{f37f}", + "fa-bus": "\u{f207}", + "fa-bus-alt": "\u{f55e}", + "fa-business-time": "\u{f64a}", + "fa-buysellads": "\u{f20d}", + "fa-calculator": "\u{f1ec}", + "fa-calendar": "\u{f133}", + "fa-calendar-alt": "\u{f073}", + "fa-calendar-check": "\u{f274}", + "fa-calendar-day": "\u{f783}", + "fa-calendar-minus": "\u{f272}", + "fa-calendar-plus": "\u{f271}", + "fa-calendar-times": "\u{f273}", + "fa-calendar-week": "\u{f784}", + "fa-camera": "\u{f030}", + "fa-camera-retro": "\u{f083}", + "fa-campground": "\u{f6bb}", + "fa-canadian-maple-leaf": "\u{f785}", + "fa-candy-cane": "\u{f786}", + "fa-cannabis": "\u{f55f}", + "fa-capsules": "\u{f46b}", + "fa-car": "\u{f1b9}", + "fa-car-alt": "\u{f5de}", + "fa-car-battery": "\u{f5df}", + "fa-car-crash": "\u{f5e1}", + "fa-car-side": "\u{f5e4}", + "fa-caret-down": "\u{f0d7}", + "fa-caret-left": "\u{f0d9}", + "fa-caret-right": "\u{f0da}", + "fa-caret-square-down": "\u{f150}", + "fa-caret-square-left": "\u{f191}", + "fa-caret-square-right": "\u{f152}", + "fa-caret-square-up": "\u{f151}", + "fa-caret-up": "\u{f0d8}", + "fa-carrot": "\u{f787}", + "fa-cart-arrow-down": "\u{f218}", + "fa-cart-plus": "\u{f217}", + "fa-cash-register": "\u{f788}", + "fa-cat": "\u{f6be}", + "fa-cc-amazon-pay": "\u{f42d}", + "fa-cc-amex": "\u{f1f3}", + "fa-cc-apple-pay": "\u{f416}", + "fa-cc-diners-club": "\u{f24c}", + "fa-cc-discover": "\u{f1f2}", + "fa-cc-jcb": "\u{f24b}", + "fa-cc-mastercard": "\u{f1f1}", + "fa-cc-paypal": "\u{f1f4}", + "fa-cc-stripe": "\u{f1f5}", + "fa-cc-visa": "\u{f1f0}", + "fa-centercode": "\u{f380}", + "fa-centos": "\u{f789}", + "fa-certificate": "\u{f0a3}", + "fa-chair": "\u{f6c0}", + "fa-chalkboard": "\u{f51b}", + "fa-chalkboard-teacher": "\u{f51c}", + "fa-charging-station": "\u{f5e7}", + "fa-chart-area": "\u{f1fe}", + "fa-chart-bar": "\u{f080}", + "fa-chart-line": "\u{f201}", + "fa-chart-pie": "\u{f200}", + "fa-check": "\u{f00c}", + "fa-check-circle": "\u{f058}", + "fa-check-double": "\u{f560}", + "fa-check-square": "\u{f14a}", + "fa-cheese": "\u{f7ef}", + "fa-chess": "\u{f439}", + "fa-chess-bishop": "\u{f43a}", + "fa-chess-board": "\u{f43c}", + "fa-chess-king": "\u{f43f}", + "fa-chess-knight": "\u{f441}", + "fa-chess-pawn": "\u{f443}", + "fa-chess-queen": "\u{f445}", + "fa-chess-rook": "\u{f447}", + "fa-chevron-circle-down": "\u{f13a}", + "fa-chevron-circle-left": "\u{f137}", + "fa-chevron-circle-right": "\u{f138}", + "fa-chevron-circle-up": "\u{f139}", + "fa-chevron-down": "\u{f078}", + "fa-chevron-left": "\u{f053}", + "fa-chevron-right": "\u{f054}", + "fa-chevron-up": "\u{f077}", + "fa-child": "\u{f1ae}", + "fa-chrome": "\u{f268}", + "fa-chromecast": "\u{f838}", + "fa-church": "\u{f51d}", + "fa-circle": "\u{f111}", + "fa-circle-notch": "\u{f1ce}", + "fa-city": "\u{f64f}", + "fa-clinic-medical": "\u{f7f2}", + "fa-clipboard": "\u{f328}", + "fa-clipboard-check": "\u{f46c}", + "fa-clipboard-list": "\u{f46d}", + "fa-clock": "\u{f017}", + "fa-clone": "\u{f24d}", + "fa-closed-captioning": "\u{f20a}", + "fa-cloud": "\u{f0c2}", + "fa-cloud-download-alt": "\u{f381}", + "fa-cloud-meatball": "\u{f73b}", + "fa-cloud-moon": "\u{f6c3}", + "fa-cloud-moon-rain": "\u{f73c}", + "fa-cloud-rain": "\u{f73d}", + "fa-cloud-showers-heavy": "\u{f740}", + "fa-cloud-sun": "\u{f6c4}", + "fa-cloud-sun-rain": "\u{f743}", + "fa-cloud-upload-alt": "\u{f382}", + "fa-cloudscale": "\u{f383}", + "fa-cloudsmith": "\u{f384}", + "fa-cloudversify": "\u{f385}", + "fa-cocktail": "\u{f561}", + "fa-code": "\u{f121}", + "fa-code-branch": "\u{f126}", + "fa-codepen": "\u{f1cb}", + "fa-codiepie": "\u{f284}", + "fa-coffee": "\u{f0f4}", + "fa-cog": "\u{f013}", + "fa-cogs": "\u{f085}", + "fa-coins": "\u{f51e}", + "fa-columns": "\u{f0db}", + "fa-comment": "\u{f075}", + "fa-comment-alt": "\u{f27a}", + "fa-comment-dollar": "\u{f651}", + "fa-comment-dots": "\u{f4ad}", + "fa-comment-medical": "\u{f7f5}", + "fa-comment-slash": "\u{f4b3}", + "fa-comments": "\u{f086}", + "fa-comments-dollar": "\u{f653}", + "fa-compact-disc": "\u{f51f}", + "fa-compass": "\u{f14e}", + "fa-compress": "\u{f066}", + "fa-compress-arrows-alt": "\u{f78c}", + "fa-concierge-bell": "\u{f562}", + "fa-confluence": "\u{f78d}", + "fa-connectdevelop": "\u{f20e}", + "fa-contao": "\u{f26d}", + "fa-cookie": "\u{f563}", + "fa-cookie-bite": "\u{f564}", + "fa-copy": "\u{f0c5}", + "fa-copyright": "\u{f1f9}", + "fa-couch": "\u{f4b8}", + "fa-cpanel": "\u{f388}", + "fa-creative-commons": "\u{f25e}", + "fa-creative-commons-by": "\u{f4e7}", + "fa-creative-commons-nc": "\u{f4e8}", + "fa-creative-commons-nc-eu": "\u{f4e9}", + "fa-creative-commons-nc-jp": "\u{f4ea}", + "fa-creative-commons-nd": "\u{f4eb}", + "fa-creative-commons-pd": "\u{f4ec}", + "fa-creative-commons-pd-alt": "\u{f4ed}", + "fa-creative-commons-remix": "\u{f4ee}", + "fa-creative-commons-sa": "\u{f4ef}", + "fa-creative-commons-sampling": "\u{f4f0}", + "fa-creative-commons-sampling-plus": "\u{f4f1}", + "fa-creative-commons-share": "\u{f4f2}", + "fa-creative-commons-zero": "\u{f4f3}", + "fa-credit-card": "\u{f09d}", + "fa-critical-role": "\u{f6c9}", + "fa-crop": "\u{f125}", + "fa-crop-alt": "\u{f565}", + "fa-cross": "\u{f654}", + "fa-crosshairs": "\u{f05b}", + "fa-crow": "\u{f520}", + "fa-crown": "\u{f521}", + "fa-crutch": "\u{f7f7}", + "fa-css3": "\u{f13c}", + "fa-css3-alt": "\u{f38b}", + "fa-cube": "\u{f1b2}", + "fa-cubes": "\u{f1b3}", + "fa-cut": "\u{f0c4}", + "fa-cuttlefish": "\u{f38c}", + "fa-d-and-d": "\u{f38d}", + "fa-d-and-d-beyond": "\u{f6ca}", + "fa-dashcube": "\u{f210}", + "fa-database": "\u{f1c0}", + "fa-deaf": "\u{f2a4}", + "fa-delicious": "\u{f1a5}", + "fa-democrat": "\u{f747}", + "fa-deploydog": "\u{f38e}", + "fa-deskpro": "\u{f38f}", + "fa-desktop": "\u{f108}", + "fa-dev": "\u{f6cc}", + "fa-deviantart": "\u{f1bd}", + "fa-dharmachakra": "\u{f655}", + "fa-dhl": "\u{f790}", + "fa-diagnoses": "\u{f470}", + "fa-diaspora": "\u{f791}", + "fa-dice": "\u{f522}", + "fa-dice-d20": "\u{f6cf}", + "fa-dice-d6": "\u{f6d1}", + "fa-dice-five": "\u{f523}", + "fa-dice-four": "\u{f524}", + "fa-dice-one": "\u{f525}", + "fa-dice-six": "\u{f526}", + "fa-dice-three": "\u{f527}", + "fa-dice-two": "\u{f528}", + "fa-digg": "\u{f1a6}", + "fa-digital-ocean": "\u{f391}", + "fa-digital-tachograph": "\u{f566}", + "fa-directions": "\u{f5eb}", + "fa-discord": "\u{f392}", + "fa-discourse": "\u{f393}", + "fa-divide": "\u{f529}", + "fa-dizzy": "\u{f567}", + "fa-dna": "\u{f471}", + "fa-dochub": "\u{f394}", + "fa-docker": "\u{f395}", + "fa-dog": "\u{f6d3}", + "fa-dollar-sign": "\u{f155}", + "fa-dolly": "\u{f472}", + "fa-dolly-flatbed": "\u{f474}", + "fa-donate": "\u{f4b9}", + "fa-door-closed": "\u{f52a}", + "fa-door-open": "\u{f52b}", + "fa-dot-circle": "\u{f192}", + "fa-dove": "\u{f4ba}", + "fa-download": "\u{f019}", + "fa-draft2digital": "\u{f396}", + "fa-drafting-compass": "\u{f568}", + "fa-dragon": "\u{f6d5}", + "fa-draw-polygon": "\u{f5ee}", + "fa-dribbble": "\u{f17d}", + "fa-dribbble-square": "\u{f397}", + "fa-dropbox": "\u{f16b}", + "fa-drum": "\u{f569}", + "fa-drum-steelpan": "\u{f56a}", + "fa-drumstick-bite": "\u{f6d7}", + "fa-drupal": "\u{f1a9}", + "fa-dumbbell": "\u{f44b}", + "fa-dumpster": "\u{f793}", + "fa-dumpster-fire": "\u{f794}", + "fa-dungeon": "\u{f6d9}", + "fa-dyalog": "\u{f399}", + "fa-earlybirds": "\u{f39a}", + "fa-ebay": "\u{f4f4}", + "fa-edge": "\u{f282}", + "fa-edit": "\u{f044}", + "fa-egg": "\u{f7fb}", + "fa-eject": "\u{f052}", + "fa-elementor": "\u{f430}", + "fa-ellipsis-h": "\u{f141}", + "fa-ellipsis-v": "\u{f142}", + "fa-ello": "\u{f5f1}", + "fa-ember": "\u{f423}", + "fa-empire": "\u{f1d1}", + "fa-envelope": "\u{f0e0}", + "fa-envelope-open": "\u{f2b6}", + "fa-envelope-open-text": "\u{f658}", + "fa-envelope-square": "\u{f199}", + "fa-envira": "\u{f299}", + "fa-equals": "\u{f52c}", + "fa-eraser": "\u{f12d}", + "fa-erlang": "\u{f39d}", + "fa-ethereum": "\u{f42e}", + "fa-ethernet": "\u{f796}", + "fa-etsy": "\u{f2d7}", + "fa-euro-sign": "\u{f153}", + "fa-evernote": "\u{f839}", + "fa-exchange-alt": "\u{f362}", + "fa-exclamation": "\u{f12a}", + "fa-exclamation-circle": "\u{f06a}", + "fa-exclamation-triangle": "\u{f071}", + "fa-expand": "\u{f065}", + "fa-expand-arrows-alt": "\u{f31e}", + "fa-expeditedssl": "\u{f23e}", + "fa-external-link-alt": "\u{f35d}", + "fa-external-link-square-alt": "\u{f360}", + "fa-eye": "\u{f06e}", + "fa-eye-dropper": "\u{f1fb}", + "fa-eye-slash": "\u{f070}", + "fa-facebook": "\u{f09a}", + "fa-facebook-f": "\u{f39e}", + "fa-facebook-messenger": "\u{f39f}", + "fa-facebook-square": "\u{f082}", + "fa-fantasy-flight-games": "\u{f6dc}", + "fa-fast-backward": "\u{f049}", + "fa-fast-forward": "\u{f050}", + "fa-fax": "\u{f1ac}", + "fa-feather": "\u{f52d}", + "fa-feather-alt": "\u{f56b}", + "fa-fedex": "\u{f797}", + "fa-fedora": "\u{f798}", + "fa-female": "\u{f182}", + "fa-fighter-jet": "\u{f0fb}", + "fa-figma": "\u{f799}", + "fa-file": "\u{f15b}", + "fa-file-alt": "\u{f15c}", + "fa-file-archive": "\u{f1c6}", + "fa-file-audio": "\u{f1c7}", + "fa-file-code": "\u{f1c9}", + "fa-file-contract": "\u{f56c}", + "fa-file-csv": "\u{f6dd}", + "fa-file-download": "\u{f56d}", + "fa-file-excel": "\u{f1c3}", + "fa-file-export": "\u{f56e}", + "fa-file-image": "\u{f1c5}", + "fa-file-import": "\u{f56f}", + "fa-file-invoice": "\u{f570}", + "fa-file-invoice-dollar": "\u{f571}", + "fa-file-medical": "\u{f477}", + "fa-file-medical-alt": "\u{f478}", + "fa-file-pdf": "\u{f1c1}", + "fa-file-powerpoint": "\u{f1c4}", + "fa-file-prescription": "\u{f572}", + "fa-file-signature": "\u{f573}", + "fa-file-upload": "\u{f574}", + "fa-file-video": "\u{f1c8}", + "fa-file-word": "\u{f1c2}", + "fa-fill": "\u{f575}", + "fa-fill-drip": "\u{f576}", + "fa-film": "\u{f008}", + "fa-filter": "\u{f0b0}", + "fa-fingerprint": "\u{f577}", + "fa-fire": "\u{f06d}", + "fa-fire-alt": "\u{f7e4}", + "fa-fire-extinguisher": "\u{f134}", + "fa-firefox": "\u{f269}", + "fa-first-aid": "\u{f479}", + "fa-first-order": "\u{f2b0}", + "fa-first-order-alt": "\u{f50a}", + "fa-firstdraft": "\u{f3a1}", + "fa-fish": "\u{f578}", + "fa-fist-raised": "\u{f6de}", + "fa-flag": "\u{f024}", + "fa-flag-checkered": "\u{f11e}", + "fa-flag-usa": "\u{f74d}", + "fa-flask": "\u{f0c3}", + "fa-flickr": "\u{f16e}", + "fa-flipboard": "\u{f44d}", + "fa-flushed": "\u{f579}", + "fa-fly": "\u{f417}", + "fa-folder": "\u{f07b}", + "fa-folder-minus": "\u{f65d}", + "fa-folder-open": "\u{f07c}", + "fa-folder-plus": "\u{f65e}", + "fa-font": "\u{f031}", + "fa-font-awesome": "\u{f2b4}", + "fa-font-awesome-alt": "\u{f35c}", + "fa-font-awesome-flag": "\u{f425}", + "fa-font-awesome-logo-full": "\u{f4e6}", + "fa-fonticons": "\u{f280}", + "fa-fonticons-fi": "\u{f3a2}", + "fa-football-ball": "\u{f44e}", + "fa-fort-awesome": "\u{f286}", + "fa-fort-awesome-alt": "\u{f3a3}", + "fa-forumbee": "\u{f211}", + "fa-forward": "\u{f04e}", + "fa-foursquare": "\u{f180}", + "fa-free-code-camp": "\u{f2c5}", + "fa-freebsd": "\u{f3a4}", + "fa-frog": "\u{f52e}", + "fa-frown": "\u{f119}", + "fa-frown-open": "\u{f57a}", + "fa-fulcrum": "\u{f50b}", + "fa-funnel-dollar": "\u{f662}", + "fa-futbol": "\u{f1e3}", + "fa-galactic-republic": "\u{f50c}", + "fa-galactic-senate": "\u{f50d}", + "fa-gamepad": "\u{f11b}", + "fa-gas-pump": "\u{f52f}", + "fa-gavel": "\u{f0e3}", + "fa-gem": "\u{f3a5}", + "fa-genderless": "\u{f22d}", + "fa-get-pocket": "\u{f265}", + "fa-gg": "\u{f260}", + "fa-gg-circle": "\u{f261}", + "fa-ghost": "\u{f6e2}", + "fa-gift": "\u{f06b}", + "fa-gifts": "\u{f79c}", + "fa-git": "\u{f1d3}", + "fa-git-alt": "\u{f841}", + "fa-git-square": "\u{f1d2}", + "fa-github": "\u{f09b}", + "fa-github-alt": "\u{f113}", + "fa-github-square": "\u{f092}", + "fa-gitkraken": "\u{f3a6}", + "fa-gitlab": "\u{f296}", + "fa-gitter": "\u{f426}", + "fa-glass-cheers": "\u{f79f}", + "fa-glass-martini": "\u{f000}", + "fa-glass-martini-alt": "\u{f57b}", + "fa-glass-whiskey": "\u{f7a0}", + "fa-glasses": "\u{f530}", + "fa-glide": "\u{f2a5}", + "fa-glide-g": "\u{f2a6}", + "fa-globe": "\u{f0ac}", + "fa-globe-africa": "\u{f57c}", + "fa-globe-americas": "\u{f57d}", + "fa-globe-asia": "\u{f57e}", + "fa-globe-europe": "\u{f7a2}", + "fa-gofore": "\u{f3a7}", + "fa-golf-ball": "\u{f450}", + "fa-goodreads": "\u{f3a8}", + "fa-goodreads-g": "\u{f3a9}", + "fa-google": "\u{f1a0}", + "fa-google-drive": "\u{f3aa}", + "fa-google-play": "\u{f3ab}", + "fa-google-plus": "\u{f2b3}", + "fa-google-plus-g": "\u{f0d5}", + "fa-google-plus-square": "\u{f0d4}", + "fa-google-wallet": "\u{f1ee}", + "fa-gopuram": "\u{f664}", + "fa-graduation-cap": "\u{f19d}", + "fa-gratipay": "\u{f184}", + "fa-grav": "\u{f2d6}", + "fa-greater-than": "\u{f531}", + "fa-greater-than-equal": "\u{f532}", + "fa-grimace": "\u{f57f}", + "fa-grin": "\u{f580}", + "fa-grin-alt": "\u{f581}", + "fa-grin-beam": "\u{f582}", + "fa-grin-beam-sweat": "\u{f583}", + "fa-grin-hearts": "\u{f584}", + "fa-grin-squint": "\u{f585}", + "fa-grin-squint-tears": "\u{f586}", + "fa-grin-stars": "\u{f587}", + "fa-grin-tears": "\u{f588}", + "fa-grin-tongue": "\u{f589}", + "fa-grin-tongue-squint": "\u{f58a}", + "fa-grin-tongue-wink": "\u{f58b}", + "fa-grin-wink": "\u{f58c}", + "fa-grip-horizontal": "\u{f58d}", + "fa-grip-lines": "\u{f7a4}", + "fa-grip-lines-vertical": "\u{f7a5}", + "fa-grip-vertical": "\u{f58e}", + "fa-gripfire": "\u{f3ac}", + "fa-grunt": "\u{f3ad}", + "fa-guitar": "\u{f7a6}", + "fa-gulp": "\u{f3ae}", + "fa-h-square": "\u{f0fd}", + "fa-hacker-news": "\u{f1d4}", + "fa-hacker-news-square": "\u{f3af}", + "fa-hackerrank": "\u{f5f7}", + "fa-hamburger": "\u{f805}", + "fa-hammer": "\u{f6e3}", + "fa-hamsa": "\u{f665}", + "fa-hand-holding": "\u{f4bd}", + "fa-hand-holding-heart": "\u{f4be}", + "fa-hand-holding-usd": "\u{f4c0}", + "fa-hand-lizard": "\u{f258}", + "fa-hand-middle-finger": "\u{f806}", + "fa-hand-paper": "\u{f256}", + "fa-hand-peace": "\u{f25b}", + "fa-hand-point-down": "\u{f0a7}", + "fa-hand-point-left": "\u{f0a5}", + "fa-hand-point-right": "\u{f0a4}", + "fa-hand-point-up": "\u{f0a6}", + "fa-hand-pointer": "\u{f25a}", + "fa-hand-rock": "\u{f255}", + "fa-hand-scissors": "\u{f257}", + "fa-hand-spock": "\u{f259}", + "fa-hands": "\u{f4c2}", + "fa-hands-helping": "\u{f4c4}", + "fa-handshake": "\u{f2b5}", + "fa-hanukiah": "\u{f6e6}", + "fa-hard-hat": "\u{f807}", + "fa-hashtag": "\u{f292}", + "fa-hat-wizard": "\u{f6e8}", + "fa-haykal": "\u{f666}", + "fa-hdd": "\u{f0a0}", + "fa-heading": "\u{f1dc}", + "fa-headphones": "\u{f025}", + "fa-headphones-alt": "\u{f58f}", + "fa-headset": "\u{f590}", + "fa-heart": "\u{f004}", + "fa-heart-broken": "\u{f7a9}", + "fa-heartbeat": "\u{f21e}", + "fa-helicopter": "\u{f533}", + "fa-highlighter": "\u{f591}", + "fa-hiking": "\u{f6ec}", + "fa-hippo": "\u{f6ed}", + "fa-hips": "\u{f452}", + "fa-hire-a-helper": "\u{f3b0}", + "fa-history": "\u{f1da}", + "fa-hockey-puck": "\u{f453}", + "fa-holly-berry": "\u{f7aa}", + "fa-home": "\u{f015}", + "fa-hooli": "\u{f427}", + "fa-hornbill": "\u{f592}", + "fa-horse": "\u{f6f0}", + "fa-horse-head": "\u{f7ab}", + "fa-hospital": "\u{f0f8}", + "fa-hospital-alt": "\u{f47d}", + "fa-hospital-symbol": "\u{f47e}", + "fa-hot-tub": "\u{f593}", + "fa-hotdog": "\u{f80f}", + "fa-hotel": "\u{f594}", + "fa-hotjar": "\u{f3b1}", + "fa-hourglass": "\u{f254}", + "fa-hourglass-end": "\u{f253}", + "fa-hourglass-half": "\u{f252}", + "fa-hourglass-start": "\u{f251}", + "fa-house-damage": "\u{f6f1}", + "fa-houzz": "\u{f27c}", + "fa-hryvnia": "\u{f6f2}", + "fa-html5": "\u{f13b}", + "fa-hubspot": "\u{f3b2}", + "fa-i-cursor": "\u{f246}", + "fa-ice-cream": "\u{f810}", + "fa-icicles": "\u{f7ad}", + "fa-id-badge": "\u{f2c1}", + "fa-id-card": "\u{f2c2}", + "fa-id-card-alt": "\u{f47f}", + "fa-igloo": "\u{f7ae}", + "fa-image": "\u{f03e}", + "fa-images": "\u{f302}", + "fa-imdb": "\u{f2d8}", + "fa-inbox": "\u{f01c}", + "fa-indent": "\u{f03c}", + "fa-industry": "\u{f275}", + "fa-infinity": "\u{f534}", + "fa-info": "\u{f129}", + "fa-info-circle": "\u{f05a}", + "fa-instagram": "\u{f16d}", + "fa-intercom": "\u{f7af}", + "fa-internet-explorer": "\u{f26b}", + "fa-invision": "\u{f7b0}", + "fa-ioxhost": "\u{f208}", + "fa-italic": "\u{f033}", + "fa-itch-io": "\u{f83a}", + "fa-itunes": "\u{f3b4}", + "fa-itunes-note": "\u{f3b5}", + "fa-java": "\u{f4e4}", + "fa-jedi": "\u{f669}", + "fa-jedi-order": "\u{f50e}", + "fa-jenkins": "\u{f3b6}", + "fa-jira": "\u{f7b1}", + "fa-joget": "\u{f3b7}", + "fa-joint": "\u{f595}", + "fa-joomla": "\u{f1aa}", + "fa-journal-whills": "\u{f66a}", + "fa-js": "\u{f3b8}", + "fa-js-square": "\u{f3b9}", + "fa-jsfiddle": "\u{f1cc}", + "fa-kaaba": "\u{f66b}", + "fa-kaggle": "\u{f5fa}", + "fa-key": "\u{f084}", + "fa-keybase": "\u{f4f5}", + "fa-keyboard": "\u{f11c}", + "fa-keycdn": "\u{f3ba}", + "fa-khanda": "\u{f66d}", + "fa-kickstarter": "\u{f3bb}", + "fa-kickstarter-k": "\u{f3bc}", + "fa-kiss": "\u{f596}", + "fa-kiss-beam": "\u{f597}", + "fa-kiss-wink-heart": "\u{f598}", + "fa-kiwi-bird": "\u{f535}", + "fa-korvue": "\u{f42f}", + "fa-landmark": "\u{f66f}", + "fa-language": "\u{f1ab}", + "fa-laptop": "\u{f109}", + "fa-laptop-code": "\u{f5fc}", + "fa-laptop-medical": "\u{f812}", + "fa-laravel": "\u{f3bd}", + "fa-lastfm": "\u{f202}", + "fa-lastfm-square": "\u{f203}", + "fa-laugh": "\u{f599}", + "fa-laugh-beam": "\u{f59a}", + "fa-laugh-squint": "\u{f59b}", + "fa-laugh-wink": "\u{f59c}", + "fa-layer-group": "\u{f5fd}", + "fa-leaf": "\u{f06c}", + "fa-leanpub": "\u{f212}", + "fa-lemon": "\u{f094}", + "fa-less": "\u{f41d}", + "fa-less-than": "\u{f536}", + "fa-less-than-equal": "\u{f537}", + "fa-level-down-alt": "\u{f3be}", + "fa-level-up-alt": "\u{f3bf}", + "fa-life-ring": "\u{f1cd}", + "fa-lightbulb": "\u{f0eb}", + "fa-line": "\u{f3c0}", + "fa-link": "\u{f0c1}", + "fa-linkedin": "\u{f08c}", + "fa-linkedin-in": "\u{f0e1}", + "fa-linode": "\u{f2b8}", + "fa-linux": "\u{f17c}", + "fa-lira-sign": "\u{f195}", + "fa-list": "\u{f03a}", + "fa-list-alt": "\u{f022}", + "fa-list-ol": "\u{f0cb}", + "fa-list-ul": "\u{f0ca}", + "fa-location-arrow": "\u{f124}", + "fa-lock": "\u{f023}", + "fa-lock-open": "\u{f3c1}", + "fa-long-arrow-alt-down": "\u{f309}", + "fa-long-arrow-alt-left": "\u{f30a}", + "fa-long-arrow-alt-right": "\u{f30b}", + "fa-long-arrow-alt-up": "\u{f30c}", + "fa-low-vision": "\u{f2a8}", + "fa-luggage-cart": "\u{f59d}", + "fa-lyft": "\u{f3c3}", + "fa-magento": "\u{f3c4}", + "fa-magic": "\u{f0d0}", + "fa-magnet": "\u{f076}", + "fa-mail-bulk": "\u{f674}", + "fa-mailchimp": "\u{f59e}", + "fa-male": "\u{f183}", + "fa-mandalorian": "\u{f50f}", + "fa-map": "\u{f279}", + "fa-map-marked": "\u{f59f}", + "fa-map-marked-alt": "\u{f5a0}", + "fa-map-marker": "\u{f041}", + "fa-map-marker-alt": "\u{f3c5}", + "fa-map-pin": "\u{f276}", + "fa-map-signs": "\u{f277}", + "fa-markdown": "\u{f60f}", + "fa-marker": "\u{f5a1}", + "fa-mars": "\u{f222}", + "fa-mars-double": "\u{f227}", + "fa-mars-stroke": "\u{f229}", + "fa-mars-stroke-h": "\u{f22b}", + "fa-mars-stroke-v": "\u{f22a}", + "fa-mask": "\u{f6fa}", + "fa-mastodon": "\u{f4f6}", + "fa-maxcdn": "\u{f136}", + "fa-medal": "\u{f5a2}", + "fa-medapps": "\u{f3c6}", + "fa-medium": "\u{f23a}", + "fa-medium-m": "\u{f3c7}", + "fa-medkit": "\u{f0fa}", + "fa-medrt": "\u{f3c8}", + "fa-meetup": "\u{f2e0}", + "fa-megaport": "\u{f5a3}", + "fa-meh": "\u{f11a}", + "fa-meh-blank": "\u{f5a4}", + "fa-meh-rolling-eyes": "\u{f5a5}", + "fa-memory": "\u{f538}", + "fa-mendeley": "\u{f7b3}", + "fa-menorah": "\u{f676}", + "fa-mercury": "\u{f223}", + "fa-meteor": "\u{f753}", + "fa-microchip": "\u{f2db}", + "fa-microphone": "\u{f130}", + "fa-microphone-alt": "\u{f3c9}", + "fa-microphone-alt-slash": "\u{f539}", + "fa-microphone-slash": "\u{f131}", + "fa-microscope": "\u{f610}", + "fa-microsoft": "\u{f3ca}", + "fa-minus": "\u{f068}", + "fa-minus-circle": "\u{f056}", + "fa-minus-square": "\u{f146}", + "fa-mitten": "\u{f7b5}", + "fa-mix": "\u{f3cb}", + "fa-mixcloud": "\u{f289}", + "fa-mizuni": "\u{f3cc}", + "fa-mobile": "\u{f10b}", + "fa-mobile-alt": "\u{f3cd}", + "fa-modx": "\u{f285}", + "fa-monero": "\u{f3d0}", + "fa-money-bill": "\u{f0d6}", + "fa-money-bill-alt": "\u{f3d1}", + "fa-money-bill-wave": "\u{f53a}", + "fa-money-bill-wave-alt": "\u{f53b}", + "fa-money-check": "\u{f53c}", + "fa-money-check-alt": "\u{f53d}", + "fa-monument": "\u{f5a6}", + "fa-moon": "\u{f186}", + "fa-mortar-pestle": "\u{f5a7}", + "fa-mosque": "\u{f678}", + "fa-motorcycle": "\u{f21c}", + "fa-mountain": "\u{f6fc}", + "fa-mouse-pointer": "\u{f245}", + "fa-mug-hot": "\u{f7b6}", + "fa-music": "\u{f001}", + "fa-napster": "\u{f3d2}", + "fa-neos": "\u{f612}", + "fa-network-wired": "\u{f6ff}", + "fa-neuter": "\u{f22c}", + "fa-newspaper": "\u{f1ea}", + "fa-nimblr": "\u{f5a8}", + "fa-nintendo-switch": "\u{f418}", + "fa-node": "\u{f419}", + "fa-node-js": "\u{f3d3}", + "fa-not-equal": "\u{f53e}", + "fa-notes-medical": "\u{f481}", + "fa-npm": "\u{f3d4}", + "fa-ns8": "\u{f3d5}", + "fa-nutritionix": "\u{f3d6}", + "fa-object-group": "\u{f247}", + "fa-object-ungroup": "\u{f248}", + "fa-odnoklassniki": "\u{f263}", + "fa-odnoklassniki-square": "\u{f264}", + "fa-oil-can": "\u{f613}", + "fa-old-republic": "\u{f510}", + "fa-om": "\u{f679}", + "fa-opencart": "\u{f23d}", + "fa-openid": "\u{f19b}", + "fa-opera": "\u{f26a}", + "fa-optin-monster": "\u{f23c}", + "fa-osi": "\u{f41a}", + "fa-otter": "\u{f700}", + "fa-outdent": "\u{f03b}", + "fa-page4": "\u{f3d7}", + "fa-pagelines": "\u{f18c}", + "fa-pager": "\u{f815}", + "fa-paint-brush": "\u{f1fc}", + "fa-paint-roller": "\u{f5aa}", + "fa-palette": "\u{f53f}", + "fa-palfed": "\u{f3d8}", + "fa-pallet": "\u{f482}", + "fa-paper-plane": "\u{f1d8}", + "fa-paperclip": "\u{f0c6}", + "fa-parachute-box": "\u{f4cd}", + "fa-paragraph": "\u{f1dd}", + "fa-parking": "\u{f540}", + "fa-passport": "\u{f5ab}", + "fa-pastafarianism": "\u{f67b}", + "fa-paste": "\u{f0ea}", + "fa-patreon": "\u{f3d9}", + "fa-pause": "\u{f04c}", + "fa-pause-circle": "\u{f28b}", + "fa-paw": "\u{f1b0}", + "fa-paypal": "\u{f1ed}", + "fa-peace": "\u{f67c}", + "fa-pen": "\u{f304}", + "fa-pen-alt": "\u{f305}", + "fa-pen-fancy": "\u{f5ac}", + "fa-pen-nib": "\u{f5ad}", + "fa-pen-square": "\u{f14b}", + "fa-pencil-alt": "\u{f303}", + "fa-pencil-ruler": "\u{f5ae}", + "fa-penny-arcade": "\u{f704}", + "fa-people-carry": "\u{f4ce}", + "fa-pepper-hot": "\u{f816}", + "fa-percent": "\u{f295}", + "fa-percentage": "\u{f541}", + "fa-periscope": "\u{f3da}", + "fa-person-booth": "\u{f756}", + "fa-phabricator": "\u{f3db}", + "fa-phoenix-framework": "\u{f3dc}", + "fa-phoenix-squadron": "\u{f511}", + "fa-phone": "\u{f095}", + "fa-phone-slash": "\u{f3dd}", + "fa-phone-square": "\u{f098}", + "fa-phone-volume": "\u{f2a0}", + "fa-php": "\u{f457}", + "fa-pied-piper": "\u{f2ae}", + "fa-pied-piper-alt": "\u{f1a8}", + "fa-pied-piper-hat": "\u{f4e5}", + "fa-pied-piper-pp": "\u{f1a7}", + "fa-piggy-bank": "\u{f4d3}", + "fa-pills": "\u{f484}", + "fa-pinterest": "\u{f0d2}", + "fa-pinterest-p": "\u{f231}", + "fa-pinterest-square": "\u{f0d3}", + "fa-pizza-slice": "\u{f818}", + "fa-place-of-worship": "\u{f67f}", + "fa-plane": "\u{f072}", + "fa-plane-arrival": "\u{f5af}", + "fa-plane-departure": "\u{f5b0}", + "fa-play": "\u{f04b}", + "fa-play-circle": "\u{f144}", + "fa-playstation": "\u{f3df}", + "fa-plug": "\u{f1e6}", + "fa-plus": "\u{f067}", + "fa-plus-circle": "\u{f055}", + "fa-plus-square": "\u{f0fe}", + "fa-podcast": "\u{f2ce}", + "fa-poll": "\u{f681}", + "fa-poll-h": "\u{f682}", + "fa-poo": "\u{f2fe}", + "fa-poo-storm": "\u{f75a}", + "fa-poop": "\u{f619}", + "fa-portrait": "\u{f3e0}", + "fa-pound-sign": "\u{f154}", + "fa-power-off": "\u{f011}", + "fa-pray": "\u{f683}", + "fa-praying-hands": "\u{f684}", + "fa-prescription": "\u{f5b1}", + "fa-prescription-bottle": "\u{f485}", + "fa-prescription-bottle-alt": "\u{f486}", + "fa-print": "\u{f02f}", + "fa-procedures": "\u{f487}", + "fa-product-hunt": "\u{f288}", + "fa-project-diagram": "\u{f542}", + "fa-pushed": "\u{f3e1}", + "fa-puzzle-piece": "\u{f12e}", + "fa-python": "\u{f3e2}", + "fa-qq": "\u{f1d6}", + "fa-qrcode": "\u{f029}", + "fa-question": "\u{f128}", + "fa-question-circle": "\u{f059}", + "fa-quidditch": "\u{f458}", + "fa-quinscape": "\u{f459}", + "fa-quora": "\u{f2c4}", + "fa-quote-left": "\u{f10d}", + "fa-quote-right": "\u{f10e}", + "fa-quran": "\u{f687}", + "fa-r-project": "\u{f4f7}", + "fa-radiation": "\u{f7b9}", + "fa-radiation-alt": "\u{f7ba}", + "fa-rainbow": "\u{f75b}", + "fa-random": "\u{f074}", + "fa-raspberry-pi": "\u{f7bb}", + "fa-ravelry": "\u{f2d9}", + "fa-react": "\u{f41b}", + "fa-reacteurope": "\u{f75d}", + "fa-readme": "\u{f4d5}", + "fa-rebel": "\u{f1d0}", + "fa-receipt": "\u{f543}", + "fa-recycle": "\u{f1b8}", + "fa-red-river": "\u{f3e3}", + "fa-reddit": "\u{f1a1}", + "fa-reddit-alien": "\u{f281}", + "fa-reddit-square": "\u{f1a2}", + "fa-redhat": "\u{f7bc}", + "fa-redo": "\u{f01e}", + "fa-redo-alt": "\u{f2f9}", + "fa-registered": "\u{f25d}", + "fa-renren": "\u{f18b}", + "fa-reply": "\u{f3e5}", + "fa-reply-all": "\u{f122}", + "fa-replyd": "\u{f3e6}", + "fa-republican": "\u{f75e}", + "fa-researchgate": "\u{f4f8}", + "fa-resolving": "\u{f3e7}", + "fa-restroom": "\u{f7bd}", + "fa-retweet": "\u{f079}", + "fa-rev": "\u{f5b2}", + "fa-ribbon": "\u{f4d6}", + "fa-ring": "\u{f70b}", + "fa-road": "\u{f018}", + "fa-robot": "\u{f544}", + "fa-rocket": "\u{f135}", + "fa-rocketchat": "\u{f3e8}", + "fa-rockrms": "\u{f3e9}", + "fa-route": "\u{f4d7}", + "fa-rss": "\u{f09e}", + "fa-rss-square": "\u{f143}", + "fa-ruble-sign": "\u{f158}", + "fa-ruler": "\u{f545}", + "fa-ruler-combined": "\u{f546}", + "fa-ruler-horizontal": "\u{f547}", + "fa-ruler-vertical": "\u{f548}", + "fa-running": "\u{f70c}", + "fa-rupee-sign": "\u{f156}", + "fa-sad-cry": "\u{f5b3}", + "fa-sad-tear": "\u{f5b4}", + "fa-safari": "\u{f267}", + "fa-salesforce": "\u{f83b}", + "fa-sass": "\u{f41e}", + "fa-satellite": "\u{f7bf}", + "fa-satellite-dish": "\u{f7c0}", + "fa-save": "\u{f0c7}", + "fa-schlix": "\u{f3ea}", + "fa-school": "\u{f549}", + "fa-screwdriver": "\u{f54a}", + "fa-scribd": "\u{f28a}", + "fa-scroll": "\u{f70e}", + "fa-sd-card": "\u{f7c2}", + "fa-search": "\u{f002}", + "fa-search-dollar": "\u{f688}", + "fa-search-location": "\u{f689}", + "fa-search-minus": "\u{f010}", + "fa-search-plus": "\u{f00e}", + "fa-searchengin": "\u{f3eb}", + "fa-seedling": "\u{f4d8}", + "fa-sellcast": "\u{f2da}", + "fa-sellsy": "\u{f213}", + "fa-server": "\u{f233}", + "fa-servicestack": "\u{f3ec}", + "fa-shapes": "\u{f61f}", + "fa-share": "\u{f064}", + "fa-share-alt": "\u{f1e0}", + "fa-share-alt-square": "\u{f1e1}", + "fa-share-square": "\u{f14d}", + "fa-shekel-sign": "\u{f20b}", + "fa-shield-alt": "\u{f3ed}", + "fa-ship": "\u{f21a}", + "fa-shipping-fast": "\u{f48b}", + "fa-shirtsinbulk": "\u{f214}", + "fa-shoe-prints": "\u{f54b}", + "fa-shopping-bag": "\u{f290}", + "fa-shopping-basket": "\u{f291}", + "fa-shopping-cart": "\u{f07a}", + "fa-shopware": "\u{f5b5}", + "fa-shower": "\u{f2cc}", + "fa-shuttle-van": "\u{f5b6}", + "fa-sign": "\u{f4d9}", + "fa-sign-in-alt": "\u{f2f6}", + "fa-sign-language": "\u{f2a7}", + "fa-sign-out-alt": "\u{f2f5}", + "fa-signal": "\u{f012}", + "fa-signature": "\u{f5b7}", + "fa-sim-card": "\u{f7c4}", + "fa-simplybuilt": "\u{f215}", + "fa-sistrix": "\u{f3ee}", + "fa-sitemap": "\u{f0e8}", + "fa-sith": "\u{f512}", + "fa-skating": "\u{f7c5}", + "fa-sketch": "\u{f7c6}", + "fa-skiing": "\u{f7c9}", + "fa-skiing-nordic": "\u{f7ca}", + "fa-skull": "\u{f54c}", + "fa-skull-crossbones": "\u{f714}", + "fa-skyatlas": "\u{f216}", + "fa-skype": "\u{f17e}", + "fa-slack": "\u{f198}", + "fa-slack-hash": "\u{f3ef}", + "fa-slash": "\u{f715}", + "fa-sleigh": "\u{f7cc}", + "fa-sliders-h": "\u{f1de}", + "fa-slideshare": "\u{f1e7}", + "fa-smile": "\u{f118}", + "fa-smile-beam": "\u{f5b8}", + "fa-smile-wink": "\u{f4da}", + "fa-smog": "\u{f75f}", + "fa-smoking": "\u{f48d}", + "fa-smoking-ban": "\u{f54d}", + "fa-sms": "\u{f7cd}", + "fa-snapchat": "\u{f2ab}", + "fa-snapchat-ghost": "\u{f2ac}", + "fa-snapchat-square": "\u{f2ad}", + "fa-snowboarding": "\u{f7ce}", + "fa-snowflake": "\u{f2dc}", + "fa-snowman": "\u{f7d0}", + "fa-snowplow": "\u{f7d2}", + "fa-socks": "\u{f696}", + "fa-solar-panel": "\u{f5ba}", + "fa-sort": "\u{f0dc}", + "fa-sort-alpha-down": "\u{f15d}", + "fa-sort-alpha-up": "\u{f15e}", + "fa-sort-amount-down": "\u{f160}", + "fa-sort-amount-up": "\u{f161}", + "fa-sort-down": "\u{f0dd}", + "fa-sort-numeric-down": "\u{f162}", + "fa-sort-numeric-up": "\u{f163}", + "fa-sort-up": "\u{f0de}", + "fa-soundcloud": "\u{f1be}", + "fa-sourcetree": "\u{f7d3}", + "fa-spa": "\u{f5bb}", + "fa-space-shuttle": "\u{f197}", + "fa-speakap": "\u{f3f3}", + "fa-speaker-deck": "\u{f83c}", + "fa-spider": "\u{f717}", + "fa-spinner": "\u{f110}", + "fa-splotch": "\u{f5bc}", + "fa-spotify": "\u{f1bc}", + "fa-spray-can": "\u{f5bd}", + "fa-square": "\u{f0c8}", + "fa-square-full": "\u{f45c}", + "fa-square-root-alt": "\u{f698}", + "fa-squarespace": "\u{f5be}", + "fa-stack-exchange": "\u{f18d}", + "fa-stack-overflow": "\u{f16c}", + "fa-stackpath": "\u{f842}", + "fa-stamp": "\u{f5bf}", + "fa-star": "\u{f005}", + "fa-star-and-crescent": "\u{f699}", + "fa-star-half": "\u{f089}", + "fa-star-half-alt": "\u{f5c0}", + "fa-star-of-david": "\u{f69a}", + "fa-star-of-life": "\u{f621}", + "fa-staylinked": "\u{f3f5}", + "fa-steam": "\u{f1b6}", + "fa-steam-square": "\u{f1b7}", + "fa-steam-symbol": "\u{f3f6}", + "fa-step-backward": "\u{f048}", + "fa-step-forward": "\u{f051}", + "fa-stethoscope": "\u{f0f1}", + "fa-sticker-mule": "\u{f3f7}", + "fa-sticky-note": "\u{f249}", + "fa-stop": "\u{f04d}", + "fa-stop-circle": "\u{f28d}", + "fa-stopwatch": "\u{f2f2}", + "fa-store": "\u{f54e}", + "fa-store-alt": "\u{f54f}", + "fa-strava": "\u{f428}", + "fa-stream": "\u{f550}", + "fa-street-view": "\u{f21d}", + "fa-strikethrough": "\u{f0cc}", + "fa-stripe": "\u{f429}", + "fa-stripe-s": "\u{f42a}", + "fa-stroopwafel": "\u{f551}", + "fa-studiovinari": "\u{f3f8}", + "fa-stumbleupon": "\u{f1a4}", + "fa-stumbleupon-circle": "\u{f1a3}", + "fa-subscript": "\u{f12c}", + "fa-subway": "\u{f239}", + "fa-suitcase": "\u{f0f2}", + "fa-suitcase-rolling": "\u{f5c1}", + "fa-sun": "\u{f185}", + "fa-superpowers": "\u{f2dd}", + "fa-superscript": "\u{f12b}", + "fa-supple": "\u{f3f9}", + "fa-surprise": "\u{f5c2}", + "fa-suse": "\u{f7d6}", + "fa-swatchbook": "\u{f5c3}", + "fa-swimmer": "\u{f5c4}", + "fa-swimming-pool": "\u{f5c5}", + "fa-symfony": "\u{f83d}", + "fa-synagogue": "\u{f69b}", + "fa-sync": "\u{f021}", + "fa-sync-alt": "\u{f2f1}", + "fa-syringe": "\u{f48e}", + "fa-table": "\u{f0ce}", + "fa-table-tennis": "\u{f45d}", + "fa-tablet": "\u{f10a}", + "fa-tablet-alt": "\u{f3fa}", + "fa-tablets": "\u{f490}", + "fa-tachometer-alt": "\u{f3fd}", + "fa-tag": "\u{f02b}", + "fa-tags": "\u{f02c}", + "fa-tape": "\u{f4db}", + "fa-tasks": "\u{f0ae}", + "fa-taxi": "\u{f1ba}", + "fa-teamspeak": "\u{f4f9}", + "fa-teeth": "\u{f62e}", + "fa-teeth-open": "\u{f62f}", + "fa-telegram": "\u{f2c6}", + "fa-telegram-plane": "\u{f3fe}", + "fa-temperature-high": "\u{f769}", + "fa-temperature-low": "\u{f76b}", + "fa-tencent-weibo": "\u{f1d5}", + "fa-tenge": "\u{f7d7}", + "fa-terminal": "\u{f120}", + "fa-text-height": "\u{f034}", + "fa-text-width": "\u{f035}", + "fa-th": "\u{f00a}", + "fa-th-large": "\u{f009}", + "fa-th-list": "\u{f00b}", + "fa-the-red-yeti": "\u{f69d}", + "fa-theater-masks": "\u{f630}", + "fa-themeco": "\u{f5c6}", + "fa-themeisle": "\u{f2b2}", + "fa-thermometer": "\u{f491}", + "fa-thermometer-empty": "\u{f2cb}", + "fa-thermometer-full": "\u{f2c7}", + "fa-thermometer-half": "\u{f2c9}", + "fa-thermometer-quarter": "\u{f2ca}", + "fa-thermometer-three-quarters": "\u{f2c8}", + "fa-think-peaks": "\u{f731}", + "fa-thumbs-down": "\u{f165}", + "fa-thumbs-up": "\u{f164}", + "fa-thumbtack": "\u{f08d}", + "fa-ticket-alt": "\u{f3ff}", + "fa-times": "\u{f00d}", + "fa-times-circle": "\u{f057}", + "fa-tint": "\u{f043}", + "fa-tint-slash": "\u{f5c7}", + "fa-tired": "\u{f5c8}", + "fa-toggle-off": "\u{f204}", + "fa-toggle-on": "\u{f205}", + "fa-toilet": "\u{f7d8}", + "fa-toilet-paper": "\u{f71e}", + "fa-toolbox": "\u{f552}", + "fa-tools": "\u{f7d9}", + "fa-tooth": "\u{f5c9}", + "fa-torah": "\u{f6a0}", + "fa-torii-gate": "\u{f6a1}", + "fa-tractor": "\u{f722}", + "fa-trade-federation": "\u{f513}", + "fa-trademark": "\u{f25c}", + "fa-traffic-light": "\u{f637}", + "fa-train": "\u{f238}", + "fa-tram": "\u{f7da}", + "fa-transgender": "\u{f224}", + "fa-transgender-alt": "\u{f225}", + "fa-trash": "\u{f1f8}", + "fa-trash-alt": "\u{f2ed}", + "fa-trash-restore": "\u{f829}", + "fa-trash-restore-alt": "\u{f82a}", + "fa-tree": "\u{f1bb}", + "fa-trello": "\u{f181}", + "fa-tripadvisor": "\u{f262}", + "fa-trophy": "\u{f091}", + "fa-truck": "\u{f0d1}", + "fa-truck-loading": "\u{f4de}", + "fa-truck-monster": "\u{f63b}", + "fa-truck-moving": "\u{f4df}", + "fa-truck-pickup": "\u{f63c}", + "fa-tshirt": "\u{f553}", + "fa-tty": "\u{f1e4}", + "fa-tumblr": "\u{f173}", + "fa-tumblr-square": "\u{f174}", + "fa-tv": "\u{f26c}", + "fa-twitch": "\u{f1e8}", + "fa-twitter": "\u{f099}", + "fa-twitter-square": "\u{f081}", + "fa-typo3": "\u{f42b}", + "fa-uber": "\u{f402}", + "fa-ubuntu": "\u{f7df}", + "fa-uikit": "\u{f403}", + "fa-umbrella": "\u{f0e9}", + "fa-umbrella-beach": "\u{f5ca}", + "fa-underline": "\u{f0cd}", + "fa-undo": "\u{f0e2}", + "fa-undo-alt": "\u{f2ea}", + "fa-uniregistry": "\u{f404}", + "fa-universal-access": "\u{f29a}", + "fa-university": "\u{f19c}", + "fa-unlink": "\u{f127}", + "fa-unlock": "\u{f09c}", + "fa-unlock-alt": "\u{f13e}", + "fa-untappd": "\u{f405}", + "fa-upload": "\u{f093}", + "fa-ups": "\u{f7e0}", + "fa-usb": "\u{f287}", + "fa-user": "\u{f007}", + "fa-user-alt": "\u{f406}", + "fa-user-alt-slash": "\u{f4fa}", + "fa-user-astronaut": "\u{f4fb}", + "fa-user-check": "\u{f4fc}", + "fa-user-circle": "\u{f2bd}", + "fa-user-clock": "\u{f4fd}", + "fa-user-cog": "\u{f4fe}", + "fa-user-edit": "\u{f4ff}", + "fa-user-friends": "\u{f500}", + "fa-user-graduate": "\u{f501}", + "fa-user-injured": "\u{f728}", + "fa-user-lock": "\u{f502}", + "fa-user-md": "\u{f0f0}", + "fa-user-minus": "\u{f503}", + "fa-user-ninja": "\u{f504}", + "fa-user-nurse": "\u{f82f}", + "fa-user-plus": "\u{f234}", + "fa-user-secret": "\u{f21b}", + "fa-user-shield": "\u{f505}", + "fa-user-slash": "\u{f506}", + "fa-user-tag": "\u{f507}", + "fa-user-tie": "\u{f508}", + "fa-user-times": "\u{f235}", + "fa-users": "\u{f0c0}", + "fa-users-cog": "\u{f509}", + "fa-usps": "\u{f7e1}", + "fa-ussunnah": "\u{f407}", + "fa-utensil-spoon": "\u{f2e5}", + "fa-utensils": "\u{f2e7}", + "fa-vaadin": "\u{f408}", + "fa-vector-square": "\u{f5cb}", + "fa-venus": "\u{f221}", + "fa-venus-double": "\u{f226}", + "fa-venus-mars": "\u{f228}", + "fa-viacoin": "\u{f237}", + "fa-viadeo": "\u{f2a9}", + "fa-viadeo-square": "\u{f2aa}", + "fa-vial": "\u{f492}", + "fa-vials": "\u{f493}", + "fa-viber": "\u{f409}", + "fa-video": "\u{f03d}", + "fa-video-slash": "\u{f4e2}", + "fa-vihara": "\u{f6a7}", + "fa-vimeo": "\u{f40a}", + "fa-vimeo-square": "\u{f194}", + "fa-vimeo-v": "\u{f27d}", + "fa-vine": "\u{f1ca}", + "fa-vk": "\u{f189}", + "fa-vnv": "\u{f40b}", + "fa-volleyball-ball": "\u{f45f}", + "fa-volume-down": "\u{f027}", + "fa-volume-mute": "\u{f6a9}", + "fa-volume-off": "\u{f026}", + "fa-volume-up": "\u{f028}", + "fa-vote-yea": "\u{f772}", + "fa-vr-cardboard": "\u{f729}", + "fa-vuejs": "\u{f41f}", + "fa-walking": "\u{f554}", + "fa-wallet": "\u{f555}", + "fa-warehouse": "\u{f494}", + "fa-water": "\u{f773}", + "fa-wave-square": "\u{f83e}", + "fa-waze": "\u{f83f}", + "fa-weebly": "\u{f5cc}", + "fa-weibo": "\u{f18a}", + "fa-weight": "\u{f496}", + "fa-weight-hanging": "\u{f5cd}", + "fa-weixin": "\u{f1d7}", + "fa-whatsapp": "\u{f232}", + "fa-whatsapp-square": "\u{f40c}", + "fa-wheelchair": "\u{f193}", + "fa-whmcs": "\u{f40d}", + "fa-wifi": "\u{f1eb}", + "fa-wikipedia-w": "\u{f266}", + "fa-wind": "\u{f72e}", + "fa-window-close": "\u{f410}", + "fa-window-maximize": "\u{f2d0}", + "fa-window-minimize": "\u{f2d1}", + "fa-window-restore": "\u{f2d2}", + "fa-windows": "\u{f17a}", + "fa-wine-bottle": "\u{f72f}", + "fa-wine-glass": "\u{f4e3}", + "fa-wine-glass-alt": "\u{f5ce}", + "fa-wix": "\u{f5cf}", + "fa-wizards-of-the-coast": "\u{f730}", + "fa-wolf-pack-battalion": "\u{f514}", + "fa-won-sign": "\u{f159}", + "fa-wordpress": "\u{f19a}", + "fa-wordpress-simple": "\u{f411}", + "fa-wpbeginner": "\u{f297}", + "fa-wpexplorer": "\u{f2de}", + "fa-wpforms": "\u{f298}", + "fa-wpressr": "\u{f3e4}", + "fa-wrench": "\u{f0ad}", + "fa-x-ray": "\u{f497}", + "fa-xbox": "\u{f412}", + "fa-xing": "\u{f168}", + "fa-xing-square": "\u{f169}", + "fa-y-combinator": "\u{f23b}", + "fa-yahoo": "\u{f19e}", + "fa-yammer": "\u{f840}", + "fa-yandex": "\u{f413}", + "fa-yandex-international": "\u{f414}", + "fa-yarn": "\u{f7e3}", + "fa-yelp": "\u{f1e9}", + "fa-yen-sign": "\u{f157}", + "fa-yin-yang": "\u{f6ad}", + "fa-yoast": "\u{f2b1}", + "fa-youtube": "\u{f167}", + "fa-youtube-square": "\u{f431}", + "fa-zhihu": "\u{f63f}" +] + +/// An enumaration of FontAwesome Brands icon names +public enum FontAwesomeBrands: String { + case fiveHundredPixels = "\u{f26e}" + case accessibleIcon = "\u{f368}" + case accusoft = "\u{f369}" + case acquisitionsIncorporated = "\u{f6af}" + case adn = "\u{f170}" + case adobe = "\u{f778}" + case adversal = "\u{f36a}" + case affiliatetheme = "\u{f36b}" + case airbnb = "\u{f834}" + case algolia = "\u{f36c}" + case alipay = "\u{f642}" + case amazon = "\u{f270}" + case amazonPay = "\u{f42c}" + case amilia = "\u{f36d}" + case android = "\u{f17b}" + case angellist = "\u{f209}" + case angrycreative = "\u{f36e}" + case angular = "\u{f420}" + case appStore = "\u{f36f}" + case appStoreIos = "\u{f370}" + case apper = "\u{f371}" + case apple = "\u{f179}" + case applePay = "\u{f415}" + case artstation = "\u{f77a}" + case asymmetrik = "\u{f372}" + case atlassian = "\u{f77b}" + case audible = "\u{f373}" + case autoprefixer = "\u{f41c}" + case avianex = "\u{f374}" + case aviato = "\u{f421}" + case aws = "\u{f375}" + case bandcamp = "\u{f2d5}" + case battleNet = "\u{f835}" + case behance = "\u{f1b4}" + case behanceSquare = "\u{f1b5}" + case bimobject = "\u{f378}" + case bitbucket = "\u{f171}" + case bitcoin = "\u{f379}" + case bity = "\u{f37a}" + case blackTie = "\u{f27e}" + case blackberry = "\u{f37b}" + case blogger = "\u{f37c}" + case bloggerB = "\u{f37d}" + case bluetooth = "\u{f293}" + case bluetoothB = "\u{f294}" + case bootstrap = "\u{f836}" + case btc = "\u{f15a}" + case buffer = "\u{f837}" + case buromobelexperte = "\u{f37f}" + case buysellads = "\u{f20d}" + case canadianMapleLeaf = "\u{f785}" + case ccAmazonPay = "\u{f42d}" + case ccAmex = "\u{f1f3}" + case ccApplePay = "\u{f416}" + case ccDinersClub = "\u{f24c}" + case ccDiscover = "\u{f1f2}" + case ccJcb = "\u{f24b}" + case ccMastercard = "\u{f1f1}" + case ccPaypal = "\u{f1f4}" + case ccStripe = "\u{f1f5}" + case ccVisa = "\u{f1f0}" + case centercode = "\u{f380}" + case centos = "\u{f789}" + case chrome = "\u{f268}" + case chromecast = "\u{f838}" + case cloudscale = "\u{f383}" + case cloudsmith = "\u{f384}" + case cloudversify = "\u{f385}" + case codepen = "\u{f1cb}" + case codiepie = "\u{f284}" + case confluence = "\u{f78d}" + case connectdevelop = "\u{f20e}" + case contao = "\u{f26d}" + case cpanel = "\u{f388}" + case creativeCommons = "\u{f25e}" + case creativeCommonsBy = "\u{f4e7}" + case creativeCommonsNc = "\u{f4e8}" + case creativeCommonsNcEu = "\u{f4e9}" + case creativeCommonsNcJp = "\u{f4ea}" + case creativeCommonsNd = "\u{f4eb}" + case creativeCommonsPd = "\u{f4ec}" + case creativeCommonsPdAlt = "\u{f4ed}" + case creativeCommonsRemix = "\u{f4ee}" + case creativeCommonsSa = "\u{f4ef}" + case creativeCommonsSampling = "\u{f4f0}" + case creativeCommonsSamplingPlus = "\u{f4f1}" + case creativeCommonsShare = "\u{f4f2}" + case creativeCommonsZero = "\u{f4f3}" + case criticalRole = "\u{f6c9}" + case css3 = "\u{f13c}" + case css3Alt = "\u{f38b}" + case cuttlefish = "\u{f38c}" + case dAndD = "\u{f38d}" + case dAndDBeyond = "\u{f6ca}" + case dashcube = "\u{f210}" + case delicious = "\u{f1a5}" + case deploydog = "\u{f38e}" + case deskpro = "\u{f38f}" + case dev = "\u{f6cc}" + case deviantart = "\u{f1bd}" + case dhl = "\u{f790}" + case diaspora = "\u{f791}" + case digg = "\u{f1a6}" + case digitalOcean = "\u{f391}" + case discord = "\u{f392}" + case discourse = "\u{f393}" + case dochub = "\u{f394}" + case docker = "\u{f395}" + case draft2digital = "\u{f396}" + case dribbble = "\u{f17d}" + case dribbbleSquare = "\u{f397}" + case dropbox = "\u{f16b}" + case drupal = "\u{f1a9}" + case dyalog = "\u{f399}" + case earlybirds = "\u{f39a}" + case ebay = "\u{f4f4}" + case edge = "\u{f282}" + case elementor = "\u{f430}" + case ello = "\u{f5f1}" + case ember = "\u{f423}" + case empire = "\u{f1d1}" + case envira = "\u{f299}" + case erlang = "\u{f39d}" + case ethereum = "\u{f42e}" + case etsy = "\u{f2d7}" + case evernote = "\u{f839}" + case expeditedssl = "\u{f23e}" + case facebook = "\u{f09a}" + case facebookF = "\u{f39e}" + case facebookMessenger = "\u{f39f}" + case facebookSquare = "\u{f082}" + case fantasyFlightGames = "\u{f6dc}" + case fedex = "\u{f797}" + case fedora = "\u{f798}" + case figma = "\u{f799}" + case firefox = "\u{f269}" + case firstOrder = "\u{f2b0}" + case firstOrderAlt = "\u{f50a}" + case firstdraft = "\u{f3a1}" + case flickr = "\u{f16e}" + case flipboard = "\u{f44d}" + case fly = "\u{f417}" + case fontAwesome = "\u{f2b4}" + case fontAwesomeAlt = "\u{f35c}" + case fontAwesomeFlag = "\u{f425}" + case fontAwesomeLogoFull = "\u{f4e6}" + case fonticons = "\u{f280}" + case fonticonsFi = "\u{f3a2}" + case fortAwesome = "\u{f286}" + case fortAwesomeAlt = "\u{f3a3}" + case forumbee = "\u{f211}" + case foursquare = "\u{f180}" + case freeCodeCamp = "\u{f2c5}" + case freebsd = "\u{f3a4}" + case fulcrum = "\u{f50b}" + case galacticRepublic = "\u{f50c}" + case galacticSenate = "\u{f50d}" + case getPocket = "\u{f265}" + case gg = "\u{f260}" + case ggCircle = "\u{f261}" + case git = "\u{f1d3}" + case gitAlt = "\u{f841}" + case gitSquare = "\u{f1d2}" + case github = "\u{f09b}" + case githubAlt = "\u{f113}" + case githubSquare = "\u{f092}" + case gitkraken = "\u{f3a6}" + case gitlab = "\u{f296}" + case gitter = "\u{f426}" + case glide = "\u{f2a5}" + case glideG = "\u{f2a6}" + case gofore = "\u{f3a7}" + case goodreads = "\u{f3a8}" + case goodreadsG = "\u{f3a9}" + case google = "\u{f1a0}" + case googleDrive = "\u{f3aa}" + case googlePlay = "\u{f3ab}" + case googlePlus = "\u{f2b3}" + case googlePlusG = "\u{f0d5}" + case googlePlusSquare = "\u{f0d4}" + case googleWallet = "\u{f1ee}" + case gratipay = "\u{f184}" + case grav = "\u{f2d6}" + case gripfire = "\u{f3ac}" + case grunt = "\u{f3ad}" + case gulp = "\u{f3ae}" + case hackerNews = "\u{f1d4}" + case hackerNewsSquare = "\u{f3af}" + case hackerrank = "\u{f5f7}" + case hips = "\u{f452}" + case hireAHelper = "\u{f3b0}" + case hooli = "\u{f427}" + case hornbill = "\u{f592}" + case hotjar = "\u{f3b1}" + case houzz = "\u{f27c}" + case html5 = "\u{f13b}" + case hubspot = "\u{f3b2}" + case imdb = "\u{f2d8}" + case instagram = "\u{f16d}" + case intercom = "\u{f7af}" + case internetExplorer = "\u{f26b}" + case invision = "\u{f7b0}" + case ioxhost = "\u{f208}" + case itchIo = "\u{f83a}" + case itunes = "\u{f3b4}" + case itunesNote = "\u{f3b5}" + case java = "\u{f4e4}" + case jediOrder = "\u{f50e}" + case jenkins = "\u{f3b6}" + case jira = "\u{f7b1}" + case joget = "\u{f3b7}" + case joomla = "\u{f1aa}" + case js = "\u{f3b8}" + case jsSquare = "\u{f3b9}" + case jsfiddle = "\u{f1cc}" + case kaggle = "\u{f5fa}" + case keybase = "\u{f4f5}" + case keycdn = "\u{f3ba}" + case kickstarter = "\u{f3bb}" + case kickstarterK = "\u{f3bc}" + case korvue = "\u{f42f}" + case laravel = "\u{f3bd}" + case lastfm = "\u{f202}" + case lastfmSquare = "\u{f203}" + case leanpub = "\u{f212}" + case less = "\u{f41d}" + case line = "\u{f3c0}" + case linkedin = "\u{f08c}" + case linkedinIn = "\u{f0e1}" + case linode = "\u{f2b8}" + case linux = "\u{f17c}" + case lyft = "\u{f3c3}" + case magento = "\u{f3c4}" + case mailchimp = "\u{f59e}" + case mandalorian = "\u{f50f}" + case markdown = "\u{f60f}" + case mastodon = "\u{f4f6}" + case maxcdn = "\u{f136}" + case medapps = "\u{f3c6}" + case medium = "\u{f23a}" + case mediumM = "\u{f3c7}" + case medrt = "\u{f3c8}" + case meetup = "\u{f2e0}" + case megaport = "\u{f5a3}" + case mendeley = "\u{f7b3}" + case microsoft = "\u{f3ca}" + case mix = "\u{f3cb}" + case mixcloud = "\u{f289}" + case mizuni = "\u{f3cc}" + case modx = "\u{f285}" + case monero = "\u{f3d0}" + case napster = "\u{f3d2}" + case neos = "\u{f612}" + case nimblr = "\u{f5a8}" + case nintendoSwitch = "\u{f418}" + case node = "\u{f419}" + case nodeJs = "\u{f3d3}" + case npm = "\u{f3d4}" + case ns8 = "\u{f3d5}" + case nutritionix = "\u{f3d6}" + case odnoklassniki = "\u{f263}" + case odnoklassnikiSquare = "\u{f264}" + case oldRepublic = "\u{f510}" + case opencart = "\u{f23d}" + case openid = "\u{f19b}" + case opera = "\u{f26a}" + case optinMonster = "\u{f23c}" + case osi = "\u{f41a}" + case page4 = "\u{f3d7}" + case pagelines = "\u{f18c}" + case palfed = "\u{f3d8}" + case patreon = "\u{f3d9}" + case paypal = "\u{f1ed}" + case pennyArcade = "\u{f704}" + case periscope = "\u{f3da}" + case phabricator = "\u{f3db}" + case phoenixFramework = "\u{f3dc}" + case phoenixSquadron = "\u{f511}" + case php = "\u{f457}" + case piedPiper = "\u{f2ae}" + case piedPiperAlt = "\u{f1a8}" + case piedPiperHat = "\u{f4e5}" + case piedPiperPp = "\u{f1a7}" + case pinterest = "\u{f0d2}" + case pinterestP = "\u{f231}" + case pinterestSquare = "\u{f0d3}" + case playstation = "\u{f3df}" + case productHunt = "\u{f288}" + case pushed = "\u{f3e1}" + case python = "\u{f3e2}" + case qq = "\u{f1d6}" + case quinscape = "\u{f459}" + case quora = "\u{f2c4}" + case rProject = "\u{f4f7}" + case raspberryPi = "\u{f7bb}" + case ravelry = "\u{f2d9}" + case react = "\u{f41b}" + case reacteurope = "\u{f75d}" + case readme = "\u{f4d5}" + case rebel = "\u{f1d0}" + case redRiver = "\u{f3e3}" + case reddit = "\u{f1a1}" + case redditAlien = "\u{f281}" + case redditSquare = "\u{f1a2}" + case redhat = "\u{f7bc}" + case renren = "\u{f18b}" + case replyd = "\u{f3e6}" + case researchgate = "\u{f4f8}" + case resolving = "\u{f3e7}" + case rev = "\u{f5b2}" + case rocketchat = "\u{f3e8}" + case rockrms = "\u{f3e9}" + case safari = "\u{f267}" + case salesforce = "\u{f83b}" + case sass = "\u{f41e}" + case schlix = "\u{f3ea}" + case scribd = "\u{f28a}" + case searchengin = "\u{f3eb}" + case sellcast = "\u{f2da}" + case sellsy = "\u{f213}" + case servicestack = "\u{f3ec}" + case shirtsinbulk = "\u{f214}" + case shopware = "\u{f5b5}" + case simplybuilt = "\u{f215}" + case sistrix = "\u{f3ee}" + case sith = "\u{f512}" + case sketch = "\u{f7c6}" + case skyatlas = "\u{f216}" + case skype = "\u{f17e}" + case slack = "\u{f198}" + case slackHash = "\u{f3ef}" + case slideshare = "\u{f1e7}" + case snapchat = "\u{f2ab}" + case snapchatGhost = "\u{f2ac}" + case snapchatSquare = "\u{f2ad}" + case soundcloud = "\u{f1be}" + case sourcetree = "\u{f7d3}" + case speakap = "\u{f3f3}" + case speakerDeck = "\u{f83c}" + case spotify = "\u{f1bc}" + case squarespace = "\u{f5be}" + case stackExchange = "\u{f18d}" + case stackOverflow = "\u{f16c}" + case stackpath = "\u{f842}" + case staylinked = "\u{f3f5}" + case steam = "\u{f1b6}" + case steamSquare = "\u{f1b7}" + case steamSymbol = "\u{f3f6}" + case stickerMule = "\u{f3f7}" + case strava = "\u{f428}" + case stripe = "\u{f429}" + case stripeS = "\u{f42a}" + case studiovinari = "\u{f3f8}" + case stumbleupon = "\u{f1a4}" + case stumbleuponCircle = "\u{f1a3}" + case superpowers = "\u{f2dd}" + case supple = "\u{f3f9}" + case suse = "\u{f7d6}" + case symfony = "\u{f83d}" + case teamspeak = "\u{f4f9}" + case telegram = "\u{f2c6}" + case telegramPlane = "\u{f3fe}" + case tencentWeibo = "\u{f1d5}" + case theRedYeti = "\u{f69d}" + case themeco = "\u{f5c6}" + case themeisle = "\u{f2b2}" + case thinkPeaks = "\u{f731}" + case tradeFederation = "\u{f513}" + case trello = "\u{f181}" + case tripadvisor = "\u{f262}" + case tumblr = "\u{f173}" + case tumblrSquare = "\u{f174}" + case twitch = "\u{f1e8}" + case twitter = "\u{f099}" + case twitterSquare = "\u{f081}" + case typo3 = "\u{f42b}" + case uber = "\u{f402}" + case ubuntu = "\u{f7df}" + case uikit = "\u{f403}" + case uniregistry = "\u{f404}" + case untappd = "\u{f405}" + case ups = "\u{f7e0}" + case usb = "\u{f287}" + case usps = "\u{f7e1}" + case ussunnah = "\u{f407}" + case vaadin = "\u{f408}" + case viacoin = "\u{f237}" + case viadeo = "\u{f2a9}" + case viadeoSquare = "\u{f2aa}" + case viber = "\u{f409}" + case vimeo = "\u{f40a}" + case vimeoSquare = "\u{f194}" + case vimeoV = "\u{f27d}" + case vine = "\u{f1ca}" + case vk = "\u{f189}" + case vnv = "\u{f40b}" + case vuejs = "\u{f41f}" + case waze = "\u{f83f}" + case weebly = "\u{f5cc}" + case weibo = "\u{f18a}" + case weixin = "\u{f1d7}" + case whatsapp = "\u{f232}" + case whatsappSquare = "\u{f40c}" + case whmcs = "\u{f40d}" + case wikipediaW = "\u{f266}" + case windows = "\u{f17a}" + case wix = "\u{f5cf}" + case wizardsOfTheCoast = "\u{f730}" + case wolfPackBattalion = "\u{f514}" + case wordpress = "\u{f19a}" + case wordpressSimple = "\u{f411}" + case wpbeginner = "\u{f297}" + case wpexplorer = "\u{f2de}" + case wpforms = "\u{f298}" + case wpressr = "\u{f3e4}" + case xbox = "\u{f412}" + case xing = "\u{f168}" + case xingSquare = "\u{f169}" + case yCombinator = "\u{f23b}" + case yahoo = "\u{f19e}" + case yammer = "\u{f840}" + case yandex = "\u{f413}" + case yandexInternational = "\u{f414}" + case yarn = "\u{f7e3}" + case yelp = "\u{f1e9}" + case yoast = "\u{f2b1}" + case youtube = "\u{f167}" + case youtubeSquare = "\u{f431}" + case zhihu = "\u{f63f}" +} + +/// An array of FontAwesome brand icon codes. +public let FontAwesomeBrandIcons: [String: String] = [ + "fa-500px": "\u{f26e}", + "fa-accessible-icon": "\u{f368}", + "fa-accusoft": "\u{f369}", + "fa-acquisitions-incorporated": "\u{f6af}", + "fa-adn": "\u{f170}", + "fa-adobe": "\u{f778}", + "fa-adversal": "\u{f36a}", + "fa-affiliatetheme": "\u{f36b}", + "fa-airbnb": "\u{f834}", + "fa-algolia": "\u{f36c}", + "fa-alipay": "\u{f642}", + "fa-amazon": "\u{f270}", + "fa-amazon-pay": "\u{f42c}", + "fa-amilia": "\u{f36d}", + "fa-android": "\u{f17b}", + "fa-angellist": "\u{f209}", + "fa-angrycreative": "\u{f36e}", + "fa-angular": "\u{f420}", + "fa-app-store": "\u{f36f}", + "fa-app-store-ios": "\u{f370}", + "fa-apper": "\u{f371}", + "fa-apple": "\u{f179}", + "fa-apple-pay": "\u{f415}", + "fa-artstation": "\u{f77a}", + "fa-asymmetrik": "\u{f372}", + "fa-atlassian": "\u{f77b}", + "fa-audible": "\u{f373}", + "fa-autoprefixer": "\u{f41c}", + "fa-avianex": "\u{f374}", + "fa-aviato": "\u{f421}", + "fa-aws": "\u{f375}", + "fa-bandcamp": "\u{f2d5}", + "fa-battle-net": "\u{f835}", + "fa-behance": "\u{f1b4}", + "fa-behance-square": "\u{f1b5}", + "fa-bimobject": "\u{f378}", + "fa-bitbucket": "\u{f171}", + "fa-bitcoin": "\u{f379}", + "fa-bity": "\u{f37a}", + "fa-black-tie": "\u{f27e}", + "fa-blackberry": "\u{f37b}", + "fa-blogger": "\u{f37c}", + "fa-blogger-b": "\u{f37d}", + "fa-bluetooth": "\u{f293}", + "fa-bluetooth-b": "\u{f294}", + "fa-bootstrap": "\u{f836}", + "fa-btc": "\u{f15a}", + "fa-buffer": "\u{f837}", + "fa-buromobelexperte": "\u{f37f}", + "fa-buysellads": "\u{f20d}", + "fa-canadian-maple-leaf": "\u{f785}", + "fa-cc-amazon-pay": "\u{f42d}", + "fa-cc-amex": "\u{f1f3}", + "fa-cc-apple-pay": "\u{f416}", + "fa-cc-diners-club": "\u{f24c}", + "fa-cc-discover": "\u{f1f2}", + "fa-cc-jcb": "\u{f24b}", + "fa-cc-mastercard": "\u{f1f1}", + "fa-cc-paypal": "\u{f1f4}", + "fa-cc-stripe": "\u{f1f5}", + "fa-cc-visa": "\u{f1f0}", + "fa-centercode": "\u{f380}", + "fa-centos": "\u{f789}", + "fa-chrome": "\u{f268}", + "fa-chromecast": "\u{f838}", + "fa-cloudscale": "\u{f383}", + "fa-cloudsmith": "\u{f384}", + "fa-cloudversify": "\u{f385}", + "fa-codepen": "\u{f1cb}", + "fa-codiepie": "\u{f284}", + "fa-confluence": "\u{f78d}", + "fa-connectdevelop": "\u{f20e}", + "fa-contao": "\u{f26d}", + "fa-cpanel": "\u{f388}", + "fa-creative-commons": "\u{f25e}", + "fa-creative-commons-by": "\u{f4e7}", + "fa-creative-commons-nc": "\u{f4e8}", + "fa-creative-commons-nc-eu": "\u{f4e9}", + "fa-creative-commons-nc-jp": "\u{f4ea}", + "fa-creative-commons-nd": "\u{f4eb}", + "fa-creative-commons-pd": "\u{f4ec}", + "fa-creative-commons-pd-alt": "\u{f4ed}", + "fa-creative-commons-remix": "\u{f4ee}", + "fa-creative-commons-sa": "\u{f4ef}", + "fa-creative-commons-sampling": "\u{f4f0}", + "fa-creative-commons-sampling-plus": "\u{f4f1}", + "fa-creative-commons-share": "\u{f4f2}", + "fa-creative-commons-zero": "\u{f4f3}", + "fa-critical-role": "\u{f6c9}", + "fa-css3": "\u{f13c}", + "fa-css3-alt": "\u{f38b}", + "fa-cuttlefish": "\u{f38c}", + "fa-d-and-d": "\u{f38d}", + "fa-d-and-d-beyond": "\u{f6ca}", + "fa-dashcube": "\u{f210}", + "fa-delicious": "\u{f1a5}", + "fa-deploydog": "\u{f38e}", + "fa-deskpro": "\u{f38f}", + "fa-dev": "\u{f6cc}", + "fa-deviantart": "\u{f1bd}", + "fa-dhl": "\u{f790}", + "fa-diaspora": "\u{f791}", + "fa-digg": "\u{f1a6}", + "fa-digital-ocean": "\u{f391}", + "fa-discord": "\u{f392}", + "fa-discourse": "\u{f393}", + "fa-dochub": "\u{f394}", + "fa-docker": "\u{f395}", + "fa-draft2digital": "\u{f396}", + "fa-dribbble": "\u{f17d}", + "fa-dribbble-square": "\u{f397}", + "fa-dropbox": "\u{f16b}", + "fa-drupal": "\u{f1a9}", + "fa-dyalog": "\u{f399}", + "fa-earlybirds": "\u{f39a}", + "fa-ebay": "\u{f4f4}", + "fa-edge": "\u{f282}", + "fa-elementor": "\u{f430}", + "fa-ello": "\u{f5f1}", + "fa-ember": "\u{f423}", + "fa-empire": "\u{f1d1}", + "fa-envira": "\u{f299}", + "fa-erlang": "\u{f39d}", + "fa-ethereum": "\u{f42e}", + "fa-etsy": "\u{f2d7}", + "fa-evernote": "\u{f839}", + "fa-expeditedssl": "\u{f23e}", + "fa-facebook": "\u{f09a}", + "fa-facebook-f": "\u{f39e}", + "fa-facebook-messenger": "\u{f39f}", + "fa-facebook-square": "\u{f082}", + "fa-fantasy-flight-games": "\u{f6dc}", + "fa-fedex": "\u{f797}", + "fa-fedora": "\u{f798}", + "fa-figma": "\u{f799}", + "fa-firefox": "\u{f269}", + "fa-first-order": "\u{f2b0}", + "fa-first-order-alt": "\u{f50a}", + "fa-firstdraft": "\u{f3a1}", + "fa-flickr": "\u{f16e}", + "fa-flipboard": "\u{f44d}", + "fa-fly": "\u{f417}", + "fa-font-awesome": "\u{f2b4}", + "fa-font-awesome-alt": "\u{f35c}", + "fa-font-awesome-flag": "\u{f425}", + "fa-font-awesome-logo-full": "\u{f4e6}", + "fa-fonticons": "\u{f280}", + "fa-fonticons-fi": "\u{f3a2}", + "fa-fort-awesome": "\u{f286}", + "fa-fort-awesome-alt": "\u{f3a3}", + "fa-forumbee": "\u{f211}", + "fa-foursquare": "\u{f180}", + "fa-free-code-camp": "\u{f2c5}", + "fa-freebsd": "\u{f3a4}", + "fa-fulcrum": "\u{f50b}", + "fa-galactic-republic": "\u{f50c}", + "fa-galactic-senate": "\u{f50d}", + "fa-get-pocket": "\u{f265}", + "fa-gg": "\u{f260}", + "fa-gg-circle": "\u{f261}", + "fa-git": "\u{f1d3}", + "fa-git-alt": "\u{f841}", + "fa-git-square": "\u{f1d2}", + "fa-github": "\u{f09b}", + "fa-github-alt": "\u{f113}", + "fa-github-square": "\u{f092}", + "fa-gitkraken": "\u{f3a6}", + "fa-gitlab": "\u{f296}", + "fa-gitter": "\u{f426}", + "fa-glide": "\u{f2a5}", + "fa-glide-g": "\u{f2a6}", + "fa-gofore": "\u{f3a7}", + "fa-goodreads": "\u{f3a8}", + "fa-goodreads-g": "\u{f3a9}", + "fa-google": "\u{f1a0}", + "fa-google-drive": "\u{f3aa}", + "fa-google-play": "\u{f3ab}", + "fa-google-plus": "\u{f2b3}", + "fa-google-plus-g": "\u{f0d5}", + "fa-google-plus-square": "\u{f0d4}", + "fa-google-wallet": "\u{f1ee}", + "fa-gratipay": "\u{f184}", + "fa-grav": "\u{f2d6}", + "fa-gripfire": "\u{f3ac}", + "fa-grunt": "\u{f3ad}", + "fa-gulp": "\u{f3ae}", + "fa-hacker-news": "\u{f1d4}", + "fa-hacker-news-square": "\u{f3af}", + "fa-hackerrank": "\u{f5f7}", + "fa-hips": "\u{f452}", + "fa-hire-a-helper": "\u{f3b0}", + "fa-hooli": "\u{f427}", + "fa-hornbill": "\u{f592}", + "fa-hotjar": "\u{f3b1}", + "fa-houzz": "\u{f27c}", + "fa-html5": "\u{f13b}", + "fa-hubspot": "\u{f3b2}", + "fa-imdb": "\u{f2d8}", + "fa-instagram": "\u{f16d}", + "fa-intercom": "\u{f7af}", + "fa-internet-explorer": "\u{f26b}", + "fa-invision": "\u{f7b0}", + "fa-ioxhost": "\u{f208}", + "fa-itch-io": "\u{f83a}", + "fa-itunes": "\u{f3b4}", + "fa-itunes-note": "\u{f3b5}", + "fa-java": "\u{f4e4}", + "fa-jedi-order": "\u{f50e}", + "fa-jenkins": "\u{f3b6}", + "fa-jira": "\u{f7b1}", + "fa-joget": "\u{f3b7}", + "fa-joomla": "\u{f1aa}", + "fa-js": "\u{f3b8}", + "fa-js-square": "\u{f3b9}", + "fa-jsfiddle": "\u{f1cc}", + "fa-kaggle": "\u{f5fa}", + "fa-keybase": "\u{f4f5}", + "fa-keycdn": "\u{f3ba}", + "fa-kickstarter": "\u{f3bb}", + "fa-kickstarter-k": "\u{f3bc}", + "fa-korvue": "\u{f42f}", + "fa-laravel": "\u{f3bd}", + "fa-lastfm": "\u{f202}", + "fa-lastfm-square": "\u{f203}", + "fa-leanpub": "\u{f212}", + "fa-less": "\u{f41d}", + "fa-line": "\u{f3c0}", + "fa-linkedin": "\u{f08c}", + "fa-linkedin-in": "\u{f0e1}", + "fa-linode": "\u{f2b8}", + "fa-linux": "\u{f17c}", + "fa-lyft": "\u{f3c3}", + "fa-magento": "\u{f3c4}", + "fa-mailchimp": "\u{f59e}", + "fa-mandalorian": "\u{f50f}", + "fa-markdown": "\u{f60f}", + "fa-mastodon": "\u{f4f6}", + "fa-maxcdn": "\u{f136}", + "fa-medapps": "\u{f3c6}", + "fa-medium": "\u{f23a}", + "fa-medium-m": "\u{f3c7}", + "fa-medrt": "\u{f3c8}", + "fa-meetup": "\u{f2e0}", + "fa-megaport": "\u{f5a3}", + "fa-mendeley": "\u{f7b3}", + "fa-microsoft": "\u{f3ca}", + "fa-mix": "\u{f3cb}", + "fa-mixcloud": "\u{f289}", + "fa-mizuni": "\u{f3cc}", + "fa-modx": "\u{f285}", + "fa-monero": "\u{f3d0}", + "fa-napster": "\u{f3d2}", + "fa-neos": "\u{f612}", + "fa-nimblr": "\u{f5a8}", + "fa-nintendo-switch": "\u{f418}", + "fa-node": "\u{f419}", + "fa-node-js": "\u{f3d3}", + "fa-npm": "\u{f3d4}", + "fa-ns8": "\u{f3d5}", + "fa-nutritionix": "\u{f3d6}", + "fa-odnoklassniki": "\u{f263}", + "fa-odnoklassniki-square": "\u{f264}", + "fa-old-republic": "\u{f510}", + "fa-opencart": "\u{f23d}", + "fa-openid": "\u{f19b}", + "fa-opera": "\u{f26a}", + "fa-optin-monster": "\u{f23c}", + "fa-osi": "\u{f41a}", + "fa-page4": "\u{f3d7}", + "fa-pagelines": "\u{f18c}", + "fa-palfed": "\u{f3d8}", + "fa-patreon": "\u{f3d9}", + "fa-paypal": "\u{f1ed}", + "fa-penny-arcade": "\u{f704}", + "fa-periscope": "\u{f3da}", + "fa-phabricator": "\u{f3db}", + "fa-phoenix-framework": "\u{f3dc}", + "fa-phoenix-squadron": "\u{f511}", + "fa-php": "\u{f457}", + "fa-pied-piper": "\u{f2ae}", + "fa-pied-piper-alt": "\u{f1a8}", + "fa-pied-piper-hat": "\u{f4e5}", + "fa-pied-piper-pp": "\u{f1a7}", + "fa-pinterest": "\u{f0d2}", + "fa-pinterest-p": "\u{f231}", + "fa-pinterest-square": "\u{f0d3}", + "fa-playstation": "\u{f3df}", + "fa-product-hunt": "\u{f288}", + "fa-pushed": "\u{f3e1}", + "fa-python": "\u{f3e2}", + "fa-qq": "\u{f1d6}", + "fa-quinscape": "\u{f459}", + "fa-quora": "\u{f2c4}", + "fa-r-project": "\u{f4f7}", + "fa-raspberry-pi": "\u{f7bb}", + "fa-ravelry": "\u{f2d9}", + "fa-react": "\u{f41b}", + "fa-reacteurope": "\u{f75d}", + "fa-readme": "\u{f4d5}", + "fa-rebel": "\u{f1d0}", + "fa-red-river": "\u{f3e3}", + "fa-reddit": "\u{f1a1}", + "fa-reddit-alien": "\u{f281}", + "fa-reddit-square": "\u{f1a2}", + "fa-redhat": "\u{f7bc}", + "fa-renren": "\u{f18b}", + "fa-replyd": "\u{f3e6}", + "fa-researchgate": "\u{f4f8}", + "fa-resolving": "\u{f3e7}", + "fa-rev": "\u{f5b2}", + "fa-rocketchat": "\u{f3e8}", + "fa-rockrms": "\u{f3e9}", + "fa-safari": "\u{f267}", + "fa-salesforce": "\u{f83b}", + "fa-sass": "\u{f41e}", + "fa-schlix": "\u{f3ea}", + "fa-scribd": "\u{f28a}", + "fa-searchengin": "\u{f3eb}", + "fa-sellcast": "\u{f2da}", + "fa-sellsy": "\u{f213}", + "fa-servicestack": "\u{f3ec}", + "fa-shirtsinbulk": "\u{f214}", + "fa-shopware": "\u{f5b5}", + "fa-simplybuilt": "\u{f215}", + "fa-sistrix": "\u{f3ee}", + "fa-sith": "\u{f512}", + "fa-sketch": "\u{f7c6}", + "fa-skyatlas": "\u{f216}", + "fa-skype": "\u{f17e}", + "fa-slack": "\u{f198}", + "fa-slack-hash": "\u{f3ef}", + "fa-slideshare": "\u{f1e7}", + "fa-snapchat": "\u{f2ab}", + "fa-snapchat-ghost": "\u{f2ac}", + "fa-snapchat-square": "\u{f2ad}", + "fa-soundcloud": "\u{f1be}", + "fa-sourcetree": "\u{f7d3}", + "fa-speakap": "\u{f3f3}", + "fa-speaker-deck": "\u{f83c}", + "fa-spotify": "\u{f1bc}", + "fa-squarespace": "\u{f5be}", + "fa-stack-exchange": "\u{f18d}", + "fa-stack-overflow": "\u{f16c}", + "fa-stackpath": "\u{f842}", + "fa-staylinked": "\u{f3f5}", + "fa-steam": "\u{f1b6}", + "fa-steam-square": "\u{f1b7}", + "fa-steam-symbol": "\u{f3f6}", + "fa-sticker-mule": "\u{f3f7}", + "fa-strava": "\u{f428}", + "fa-stripe": "\u{f429}", + "fa-stripe-s": "\u{f42a}", + "fa-studiovinari": "\u{f3f8}", + "fa-stumbleupon": "\u{f1a4}", + "fa-stumbleupon-circle": "\u{f1a3}", + "fa-superpowers": "\u{f2dd}", + "fa-supple": "\u{f3f9}", + "fa-suse": "\u{f7d6}", + "fa-symfony": "\u{f83d}", + "fa-teamspeak": "\u{f4f9}", + "fa-telegram": "\u{f2c6}", + "fa-telegram-plane": "\u{f3fe}", + "fa-tencent-weibo": "\u{f1d5}", + "fa-the-red-yeti": "\u{f69d}", + "fa-themeco": "\u{f5c6}", + "fa-themeisle": "\u{f2b2}", + "fa-think-peaks": "\u{f731}", + "fa-trade-federation": "\u{f513}", + "fa-trello": "\u{f181}", + "fa-tripadvisor": "\u{f262}", + "fa-tumblr": "\u{f173}", + "fa-tumblr-square": "\u{f174}", + "fa-twitch": "\u{f1e8}", + "fa-twitter": "\u{f099}", + "fa-twitter-square": "\u{f081}", + "fa-typo3": "\u{f42b}", + "fa-uber": "\u{f402}", + "fa-ubuntu": "\u{f7df}", + "fa-uikit": "\u{f403}", + "fa-uniregistry": "\u{f404}", + "fa-untappd": "\u{f405}", + "fa-ups": "\u{f7e0}", + "fa-usb": "\u{f287}", + "fa-usps": "\u{f7e1}", + "fa-ussunnah": "\u{f407}", + "fa-vaadin": "\u{f408}", + "fa-viacoin": "\u{f237}", + "fa-viadeo": "\u{f2a9}", + "fa-viadeo-square": "\u{f2aa}", + "fa-viber": "\u{f409}", + "fa-vimeo": "\u{f40a}", + "fa-vimeo-square": "\u{f194}", + "fa-vimeo-v": "\u{f27d}", + "fa-vine": "\u{f1ca}", + "fa-vk": "\u{f189}", + "fa-vnv": "\u{f40b}", + "fa-vuejs": "\u{f41f}", + "fa-waze": "\u{f83f}", + "fa-weebly": "\u{f5cc}", + "fa-weibo": "\u{f18a}", + "fa-weixin": "\u{f1d7}", + "fa-whatsapp": "\u{f232}", + "fa-whatsapp-square": "\u{f40c}", + "fa-whmcs": "\u{f40d}", + "fa-wikipedia-w": "\u{f266}", + "fa-windows": "\u{f17a}", + "fa-wix": "\u{f5cf}", + "fa-wizards-of-the-coast": "\u{f730}", + "fa-wolf-pack-battalion": "\u{f514}", + "fa-wordpress": "\u{f19a}", + "fa-wordpress-simple": "\u{f411}", + "fa-wpbeginner": "\u{f297}", + "fa-wpexplorer": "\u{f2de}", + "fa-wpforms": "\u{f298}", + "fa-wpressr": "\u{f3e4}", + "fa-xbox": "\u{f412}", + "fa-xing": "\u{f168}", + "fa-xing-square": "\u{f169}", + "fa-y-combinator": "\u{f23b}", + "fa-yahoo": "\u{f19e}", + "fa-yammer": "\u{f840}", + "fa-yandex": "\u{f413}", + "fa-yandex-international": "\u{f414}", + "fa-yarn": "\u{f7e3}", + "fa-yelp": "\u{f1e9}", + "fa-yoast": "\u{f2b1}", + "fa-youtube": "\u{f167}", + "fa-youtube-square": "\u{f431}", + "fa-zhihu": "\u{f63f}" +] \ No newline at end of file diff --git a/Pods/FontAwesome.swift/FontAwesome/Font Awesome 5 Brands-Regular-400.otf b/Pods/FontAwesome.swift/FontAwesome/Font Awesome 5 Brands-Regular-400.otf new file mode 100644 index 0000000..671d317 Binary files /dev/null and b/Pods/FontAwesome.swift/FontAwesome/Font Awesome 5 Brands-Regular-400.otf differ diff --git a/Pods/FontAwesome.swift/FontAwesome/Font Awesome 5 Free-Regular-400.otf b/Pods/FontAwesome.swift/FontAwesome/Font Awesome 5 Free-Regular-400.otf new file mode 100644 index 0000000..b342e6b Binary files /dev/null and b/Pods/FontAwesome.swift/FontAwesome/Font Awesome 5 Free-Regular-400.otf differ diff --git a/Pods/FontAwesome.swift/FontAwesome/Font Awesome 5 Free-Solid-900.otf b/Pods/FontAwesome.swift/FontAwesome/Font Awesome 5 Free-Solid-900.otf new file mode 100644 index 0000000..4ac5c33 Binary files /dev/null and b/Pods/FontAwesome.swift/FontAwesome/Font Awesome 5 Free-Solid-900.otf differ diff --git a/Pods/FontAwesome.swift/FontAwesome/FontAwesome.swift b/Pods/FontAwesome.swift/FontAwesome/FontAwesome.swift new file mode 100644 index 0000000..f6ac4e7 --- /dev/null +++ b/Pods/FontAwesome.swift/FontAwesome/FontAwesome.swift @@ -0,0 +1,257 @@ +// FontAwesome.swift +// +// Copyright (c) 2014-present FontAwesome.swift contributors +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import UIKit +import CoreText + +// MARK: - Public + +/// A configuration namespace for FontAwesome. +public struct FontAwesomeConfig { + + // Marked private to prevent initialization of this struct. + private init() { } + + /// Taken from FontAwesome.io's Fixed Width Icon CSS. + public static let fontAspectRatio: CGFloat = 1.28571429 + + /// Whether Font Awesome Pro fonts should be used (not included). + /// + /// To use Font Awesome Pro fonts, you should add these to your main project and + /// make sure they are added to the target and are included in the Info.plist file. + public static var usesProFonts: Bool = false +} + +public enum FontAwesomeStyle: String { + case solid + /// WARNING: Font Awesome Free doesn't include a Light variant. Using this with Free will fallback to Regular. + case light + case regular + case brands + + func fontName() -> String { + switch self { + case .solid: + return FontAwesomeConfig.usesProFonts ? "FontAwesome5Pro-Solid" : "FontAwesome5Free-Solid" + case .light: + return FontAwesomeConfig.usesProFonts ? "FontAwesome5Pro-Light" : "FontAwesome5Free-Regular" + case .regular: + return FontAwesomeConfig.usesProFonts ? "FontAwesome5Pro-Regular" : "FontAwesome5Free-Regular" + case .brands: + return "FontAwesome5Brands-Regular" + } + } + + func fontFilename() -> String { + switch self { + case .solid: + return FontAwesomeConfig.usesProFonts ? "Font Awesome 5 Pro-Solid-900" : "Font Awesome 5 Free-Solid-900" + case .light: + return FontAwesomeConfig.usesProFonts ? "Font Awesome 5 Pro-Light-300" : "Font Awesome 5 Free-Regular-400" + case .regular: + return FontAwesomeConfig.usesProFonts ? "Font Awesome 5 Pro-Regular-400" : "Font Awesome 5 Free-Regular-400" + case .brands: + return "Font Awesome 5 Brands-Regular-400" + } + } + + func fontFamilyName() -> String { + switch self { + case .brands: + return "Font Awesome 5 Brands" + case .regular, + .light, + .solid: + return FontAwesomeConfig.usesProFonts ? "Font Awesome 5 Pro" : "Font Awesome 5 Free" + } + } +} + +/// A FontAwesome extension to UIFont. +public extension UIFont { + + /// Get a UIFont object of FontAwesome. + /// + /// - parameter ofSize: The preferred font size. + /// - returns: A UIFont object of FontAwesome. + class func fontAwesome(ofSize fontSize: CGFloat, style: FontAwesomeStyle) -> UIFont { + loadFontAwesome(ofStyle: style) + return UIFont(name: style.fontName(), size: fontSize)! + } + + /// Loads the FontAwesome font in to memory. + /// This method should be called when setting icons without using code. + class func loadFontAwesome(ofStyle style: FontAwesomeStyle) { + if UIFont.fontNames(forFamilyName: style.fontFamilyName()).contains(style.fontName()) { + return + } + + FontLoader.loadFont(style.fontFilename()) + } + + /// Get a UIFont object of FontAwesome for a given text style + /// + /// - parameter forTextStyle: The preferred text style + /// - parameter style: FontAwesome font style + /// - returns: A UIFont object of FontAwesome + class func fontAwesome(forTextStyle textStyle: UIFont.TextStyle, style: FontAwesomeStyle) -> UIFont { + let userFont = UIFontDescriptor.preferredFontDescriptor(withTextStyle: textStyle) + let pointSize = userFont.pointSize + loadFontAwesome(ofStyle: style) + let awesomeFont = UIFont(name: style.fontName(), size: pointSize)! + + if #available(iOS 11.0, *), #available(watchOSApplicationExtension 4.0, *), #available(tvOS 11.0, *) { + return UIFontMetrics.default.scaledFont(for: awesomeFont) + } else { + let scale = UIFontDescriptor.preferredFontDescriptor(withTextStyle: .body).pointSize / 17 + return awesomeFont.withSize(scale * awesomeFont.pointSize) + } + } +} + +/// A FontAwesome extension to String. +public extension String { + + /// Get a FontAwesome icon string with the given icon name. + /// + /// - parameter name: The preferred icon name. + /// - returns: A string that will appear as icon with FontAwesome. + static func fontAwesomeIcon(name: FontAwesome) -> String { + let toIndex = name.rawValue.index(name.rawValue.startIndex, offsetBy: 1) + return String(name.rawValue[name.rawValue.startIndex.. String? { + + guard let name = self.fontAwesome(code: code) else { + return nil + } + + return self.fontAwesomeIcon(name: name) + } + + /// Get a FontAwesome icon with the given CSS icon code. Icon code can be found here: http://fontawesome.io/icons/ + /// + /// - parameter code: The preferred icon name. + /// - returns: An internal corresponding FontAwesome code. + static func fontAwesome(code: String) -> FontAwesome? { + guard let raw = FontAwesomeIcons[code] else { return nil } + return FontAwesome(rawValue: raw) + } +} + +/// A FontAwesome extension to UIImage. +public extension UIImage { + + /// Get a FontAwesome image with the given icon name, text color, size and an optional background color. + /// + /// - parameter name: The preferred icon name. + /// - parameter style: The font style. Either .solid, .regular or .brands. + /// - parameter textColor: The text color. + /// - parameter size: The image size. + /// - parameter backgroundColor: The background color (optional). + /// - returns: A string that will appear as icon with FontAwesome + static func fontAwesomeIcon(name: FontAwesome, style: FontAwesomeStyle, textColor: UIColor, size: CGSize, backgroundColor: UIColor = UIColor.clear, borderWidth: CGFloat = 0, borderColor: UIColor = UIColor.clear) -> UIImage { + + // Prevent application crash when passing size where width or height is set equal to or less than zero, by clipping width and height to a minimum of 1 pixel. + var size = size + if size.width <= 0 { size.width = 1 } + if size.height <= 0 { size.height = 1 } + + let paragraph = NSMutableParagraphStyle() + paragraph.alignment = NSTextAlignment.center + + let fontSize = min(size.width / FontAwesomeConfig.fontAspectRatio, size.height) + + // stroke width expects a whole number percentage of the font size + let strokeWidth: CGFloat = fontSize == 0 ? 0 : (-100 * borderWidth / fontSize) + + let attributedString = NSAttributedString(string: String.fontAwesomeIcon(name: name), attributes: [ + NSAttributedString.Key.font: UIFont.fontAwesome(ofSize: fontSize, style: style), + NSAttributedString.Key.foregroundColor: textColor, + NSAttributedString.Key.backgroundColor: backgroundColor, + NSAttributedString.Key.paragraphStyle: paragraph, + NSAttributedString.Key.strokeWidth: strokeWidth, + NSAttributedString.Key.strokeColor: borderColor + ]) + + UIGraphicsBeginImageContextWithOptions(size, false, 0.0) + attributedString.draw(in: CGRect(x: 0, y: (size.height - fontSize) / 2, width: size.width, height: fontSize)) + let image = UIGraphicsGetImageFromCurrentImageContext() + UIGraphicsEndImageContext() + return image! + } + + /// Get a FontAwesome image with the given icon css code, text color, size and an optional background color. + /// + /// - parameter code: The preferred icon css code. + /// - parameter style: The font style. Either .solid, .regular or .brands. + /// - parameter textColor: The text color. + /// - parameter size: The image size. + /// - parameter backgroundColor: The background color (optional). + /// - returns: A string that will appear as icon with FontAwesome + static func fontAwesomeIcon(code: String, style: FontAwesomeStyle, textColor: UIColor, size: CGSize, backgroundColor: UIColor = UIColor.clear, borderWidth: CGFloat = 0, borderColor: UIColor = UIColor.clear) -> UIImage? { + guard let name = String.fontAwesome(code: code) else { return nil } + return fontAwesomeIcon(name: name, style: style, textColor: textColor, size: size, backgroundColor: backgroundColor, borderWidth: borderWidth, borderColor: borderColor) + } +} + +// MARK: - Private + +private class FontLoader { + class func loadFont(_ name: String) { + guard + let fontURL = URL.fontURL(for: name), + let data = try? Data(contentsOf: fontURL), + let provider = CGDataProvider(data: data as CFData), + let font = CGFont(provider) + else { return } + + var error: Unmanaged? + if !CTFontManagerRegisterGraphicsFont(font, &error) { + let errorDescription: CFString = CFErrorCopyDescription(error!.takeUnretainedValue()) + guard let nsError = error?.takeUnretainedValue() as AnyObject as? NSError else { return } + NSException(name: NSExceptionName.internalInconsistencyException, reason: errorDescription as String, userInfo: [NSUnderlyingErrorKey: nsError]).raise() + } + } +} + +extension URL { + static func fontURL(for fontName: String) -> URL? { + let bundle = Bundle(for: FontLoader.self) + + if let fontURL = bundle.url(forResource: fontName, withExtension: "otf") { + return fontURL + } + + // If this framework is added using CocoaPods, resources is placed under a subdirectory + if let fontURL = bundle.url(forResource: fontName, withExtension: "otf", subdirectory: "FontAwesome.swift.bundle") { + return fontURL + } + + return nil + } +} diff --git a/Pods/FontAwesome.swift/FontAwesome/FontAwesomeBarButtonItem.swift b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeBarButtonItem.swift new file mode 100644 index 0000000..34faead --- /dev/null +++ b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeBarButtonItem.swift @@ -0,0 +1,77 @@ +// FontAwesomeBarButtonItem.swift +// +// Copyright (c) 2014-present FontAwesome.swift contributors +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import UIKit + +@IBDesignable public class FontAwesomeBarButtonItem: UIBarButtonItem { + + @IBInspectable public var isFontAwesomeCSSCode: Bool = true + @IBInspectable public var styleName: String = "Brands" + @IBInspectable public var size: CGFloat = 25.0 + + public override func awakeFromNib() { + super.awakeFromNib() + useFontAwesome() + } + + public override func prepareForInterfaceBuilder() { + useFontAwesome() + } + + private func useFontAwesome() { + updateText { + if let cssCode = title { + title = String.fontAwesomeIcon(code: cssCode) + } + } + updateFontAttributes { (state, font) in + let currentAttributes = titleTextAttributes(for: state) ?? [:] + var attributes = [NSAttributedString.Key: Any]() + currentAttributes.enumerated().forEach { + let currentAttribute = $0.element.key + attributes[currentAttribute] = $0.element.value + } + attributes[NSAttributedString.Key.font] = font + setTitleTextAttributes(attributes, for: state) + } + } + +} + +extension FontAwesomeBarButtonItem: FontAwesomeTextRepresentable { + var isTextCSSCode: Bool { + return isFontAwesomeCSSCode + } + + var textSize: CGFloat { + return size + } + + var fontStyle: FontAwesomeStyle { + return FontAwesomeStyle(rawValue: styleName) ?? .solid + } + + static func supportedStates() -> [UIControl.State] { + return [.normal, .highlighted, .disabled] + } + +} diff --git a/Pods/FontAwesome.swift/FontAwesome/FontAwesomeExtension.swift b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeExtension.swift new file mode 100644 index 0000000..1ad31f5 --- /dev/null +++ b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeExtension.swift @@ -0,0 +1,36 @@ +// FontAwesomeExtension.swift +// +// Copyright (c) 2014-present FontAwesome.swift contributors +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import Foundation + +public extension FontAwesome { + /// Get a FontAwesome string from the given CSS icon code. Icon code can be found here: http://fontawesome.io/icons/ + /// + /// - parameter code: The preferred icon name. + /// - returns: FontAwesome icon. + static func fromCode(_ code: String) -> FontAwesome? { + guard let raw = FontAwesomeIcons[code], let icon = FontAwesome(rawValue: raw) else { + return nil + } + return icon + } +} diff --git a/Pods/FontAwesome.swift/FontAwesome/FontAwesomeImageRepresentable.swift b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeImageRepresentable.swift new file mode 100644 index 0000000..0a814aa --- /dev/null +++ b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeImageRepresentable.swift @@ -0,0 +1,56 @@ +// FontAwesomeImageRepresentable.swift +// +// Copyright (c) 2014-present FontAwesome.swift contributors +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import UIKit + +protocol FontAwesomeImageRepresentable: class { + + typealias ImageConfig = (cssIconName: String, style: FontAwesomeStyle, color: UIColor?, backgroundColor: UIColor?) + + var imageWidth: CGFloat { get } + var imageConfigs: [ImageConfig] { get } + + func createImages(configurationHandler: (_ image: UIImage?, _ index: Int) -> Void) +} + +extension FontAwesomeImageRepresentable { + + func createImages(configurationHandler: (_ image: UIImage?, _ index: Int) -> Void) { + let imgSize = imageSizeForAspectRatio() + for (index, config) in imageConfigs.enumerated() { + let img = createImage(config: config, size: imgSize) + configurationHandler(img, index) + } + } + + private func createImage(config: ImageConfig, size: CGSize) -> UIImage? { + return UIImage.fontAwesomeIcon(code: config.cssIconName, + style: config.style, + textColor: config.color ?? .black, + size: size, + backgroundColor: config.backgroundColor ?? .clear) + } + + private func imageSizeForAspectRatio() -> CGSize { + return CGSize(width: imageWidth, height: imageWidth / FontAwesomeConfig.fontAspectRatio) + } +} diff --git a/Pods/FontAwesome.swift/FontAwesome/FontAwesomeImageView.swift b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeImageView.swift new file mode 100644 index 0000000..2b7ece9 --- /dev/null +++ b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeImageView.swift @@ -0,0 +1,60 @@ +// FontAwesomeImageView.swift +// +// Copyright (c) 2014-present FontAwesome.swift contributors +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import UIKit + +@IBDesignable public class FontAwesomeImageView: UIImageView { + + @IBInspectable public var cssCode: String = "fa-font-awesome-flag" + @IBInspectable public var imageColor: UIColor = .black + @IBInspectable public var imageBackgroundColor: UIColor = .clear + @IBInspectable public var styleName: String = "Brands" + + public override func awakeFromNib() { + super.awakeFromNib() + useFontAwesomeImage() + } + + public override func prepareForInterfaceBuilder() { + useFontAwesomeImage() + } + + private func useFontAwesomeImage() { + createImages { (img, _) in + image = img + } + } + +} + +extension FontAwesomeImageView: FontAwesomeImageRepresentable { + + var imageWidth: CGFloat { + return frame.width + } + + var imageConfigs: [ImageConfig] { + guard let style = FontAwesomeStyle(rawValue: styleName.lowercased()) else { return [] } + return [(cssCode, style, imageColor, imageBackgroundColor)] + } + +} diff --git a/Pods/FontAwesome.swift/FontAwesome/FontAwesomeSegmentedControl.swift b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeSegmentedControl.swift new file mode 100644 index 0000000..c4fb330 --- /dev/null +++ b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeSegmentedControl.swift @@ -0,0 +1,78 @@ +// FontAwesomeSegmentedControl.swift +// +// Copyright (c) 2014-present FontAwesome.swift contributors +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import UIKit + +@IBDesignable public class FontAwesomeSegmentedControl: UISegmentedControl { + + @IBInspectable public var isFontAwesomeCSSCode: Bool = true + @IBInspectable public var styleName: String = "Brands" + @IBInspectable public var size: CGFloat = 22.0 + + public override func awakeFromNib() { + super.awakeFromNib() + useFontAwesome() + } + + public override func prepareForInterfaceBuilder() { + useFontAwesome() + } + + private func useFontAwesome() { + updateText { + for index in 0 ..< numberOfSegments { + if let cssCode = titleForSegment(at: index) { + setTitle(String.fontAwesomeIcon(code: cssCode), forSegmentAt: index) + } + } + } + updateFontAttributes { (state, font) in + var attributes = titleTextAttributes(for: state) ?? [:] + attributes[NSAttributedString.Key.font] = font + setTitleTextAttributes(attributes, for: state) + } + } + +} + +extension FontAwesomeSegmentedControl: FontAwesomeTextRepresentable { + var isTextCSSCode: Bool { + return isFontAwesomeCSSCode + } + + var fontStyle: FontAwesomeStyle { + return FontAwesomeStyle(rawValue: styleName) ?? .solid + } + + var textSize: CGFloat { + return size + } + + static func supportedStates() -> [UIControl.State] { + if #available(iOS 9.0, *) { + return [.normal, .highlighted, .disabled, .focused, .selected, .application, .reserved] + } else { + return [.normal, .highlighted, .disabled, .selected, .application, .reserved] + } + } + +} diff --git a/Pods/FontAwesome.swift/FontAwesome/FontAwesomeStateRequirement.swift b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeStateRequirement.swift new file mode 100644 index 0000000..179c8cd --- /dev/null +++ b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeStateRequirement.swift @@ -0,0 +1,29 @@ +// FontAwesomeStateRequirement.swift +// +// Copyright (c) 2014-present FontAwesome.swift contributors +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import UIKit + +protocol FontAwesomeStateRequirement: class { + + static func supportedStates() -> [UIControl.State] + +} diff --git a/Pods/FontAwesome.swift/FontAwesome/FontAwesomeTabBarItem.swift b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeTabBarItem.swift new file mode 100644 index 0000000..73c0175 --- /dev/null +++ b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeTabBarItem.swift @@ -0,0 +1,64 @@ +// FontAwesomeTabBarItem.swift +// +// Copyright (c) 2014-present FontAwesome.swift contributors +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import UIKit + +@IBDesignable public class FontAwesomeTabBarItem: UITabBarItem { + + @IBInspectable public var iconName: String = "fa-font-awesome-flag" + @IBInspectable public var selectedIconName: String = "fa-font-awesome-flag" + @IBInspectable public var size: CGFloat = 38.0 + @IBInspectable public var styleName: String = "Brands" + + public override func awakeFromNib() { + super.awakeFromNib() + useFontAwesomeImage() + } + + public override func prepareForInterfaceBuilder() { + useFontAwesomeImage() + } + + private func useFontAwesomeImage() { + createImages { (img, index) in + if index == 0 { + image = img + } else { + selectedImage = img + } + } + } + +} + +extension FontAwesomeTabBarItem: FontAwesomeImageRepresentable { + + var imageWidth: CGFloat { + return size + } + + var imageConfigs: [ImageConfig] { + guard let style = FontAwesomeStyle(rawValue: styleName.lowercased()) else { return [] } + return [(iconName, style, nil, nil), (selectedIconName, style, nil, nil)] + } + +} diff --git a/Pods/FontAwesome.swift/FontAwesome/FontAwesomeTextRepresentable.swift b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeTextRepresentable.swift new file mode 100644 index 0000000..bff138a --- /dev/null +++ b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeTextRepresentable.swift @@ -0,0 +1,54 @@ +// FontAwesomeTextRepresentable.swift +// +// Copyright (c) 2014-present FontAwesome.swift contributors +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import UIKit + +protocol FontAwesomeTextRepresentable: FontAwesomeStateRequirement { + + var textSize: CGFloat { get } + var isTextCSSCode: Bool { get } + var fontStyle: FontAwesomeStyle { get } + + func updateText(_ updateTextBlock: () -> Void) + func updateFontAttributes(forStates stateBlock: (UIControl.State, UIFont) -> Void) + +} + +extension FontAwesomeTextRepresentable { + + public func updateText(_ updateTextBlock: () -> Void) { + guard isTextCSSCode else { + return + } + + updateTextBlock() + } + + public func updateFontAttributes(forStates stateBlock: (UIControl.State, UIFont) -> Void) { + let states = type(of: self).supportedStates() + let font = UIFont.fontAwesome(ofSize: textSize, style: fontStyle) + + for state in states { + stateBlock(state, font) + } + } +} diff --git a/Pods/FontAwesome.swift/FontAwesome/FontAwesomeView.swift b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeView.swift new file mode 100644 index 0000000..6f53f6c --- /dev/null +++ b/Pods/FontAwesome.swift/FontAwesome/FontAwesomeView.swift @@ -0,0 +1,75 @@ +// FontAwesomeView.swift +// +// Copyright (c) 2014-present FontAwesome.swift contributors +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import UIKit + +/// A view for FontAwesome icons. +@IBDesignable public class FontAwesomeView: UIView { + + @IBInspectable + public var iconCode: String = "" { + didSet { + self.iconView.text = String.fontAwesomeIcon(code: iconCode) + } + } + + @IBInspectable + public var styleName: String = "Brands" + + private var iconView = UILabel() + + override init(frame: CGRect) { + super.init(frame: frame) + setupViews() + } + + required public init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + setupViews() + } + + override public func prepareForInterfaceBuilder() { + setupViews() + } + + /// Add a UILabel subview containing FontAwesome icon + func setupViews() { + // Fits icon in the view + self.iconView.textAlignment = NSTextAlignment.center + self.iconView.text = String.fontAwesomeIcon(code: self.iconCode) + self.iconView.textColor = self.tintColor + self.addSubview(iconView) + } + + override public func tintColorDidChange() { + self.iconView.textColor = self.tintColor + } + + override public func layoutSubviews() { + super.layoutSubviews() + self.clipsToBounds = true + let size = bounds.size.width < bounds.size.height ? bounds.size.width : bounds.size.height + let style = FontAwesomeStyle(rawValue: styleName) ?? .solid + self.iconView.font = UIFont.fontAwesome(ofSize: size, style: style) + self.iconView.frame = CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: bounds.size.width, height: bounds.size.height)) + } +} diff --git a/Pods/FontAwesome.swift/LICENSE b/Pods/FontAwesome.swift/LICENSE new file mode 100644 index 0000000..8dde6c9 --- /dev/null +++ b/Pods/FontAwesome.swift/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2014-present FontAwesome.swift contributors + +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/FontAwesome.swift/README.md b/Pods/FontAwesome.swift/README.md new file mode 100644 index 0000000..64c7ad8 --- /dev/null +++ b/Pods/FontAwesome.swift/README.md @@ -0,0 +1,52 @@ +# FontAwesome.swift + +[![Build Status](http://img.shields.io/travis/thii/FontAwesome.swift.svg?style=flat)](https://travis-ci.org/thii/FontAwesome.swift) +[![CocoaPods Compatible](https://img.shields.io/cocoapods/v/FontAwesome.swift.svg)](https://img.shields.io/cocoapods/v/FontAwesome.swift.svg) +[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) +[![Platform](https://img.shields.io/cocoapods/p/FontAwesome.swift.svg?style=flat)](http://cocoadocs.org/docsets/FontAwesome.swift) +[![License](https://img.shields.io/cocoapods/l/FontAwesome.swift.svg)](https://raw.githubusercontent.com/thii/FontAwesome.swift/master/LICENSE) + +Use Font Awesome in your Swift projects + +To see the complete set of 3,978 icons in Font Awesome 5, please check the [FontAwesome.com](http://fontawesome.com/icons/) site. + +## Examples +![](./.github/examples.png) + +## Installation + +### Carthage + + github "thii/FontAwesome.swift" + +### CocoaPods + + pod 'FontAwesome.swift' + +**Note**: If you install this using CocoaPods, the framework name will be +`FontAwesome_swift` (there is an underscore). + +### Manually +- Drag and drop all `.otf` and `.swift` files into your project + +## Requirements + +iOS 8 or later. + +## Development +To update this project to include all the latest icons from the new verison of +Font Awesome (replace `x.y.z` with the new font version): + + bundle exec fastlane update_font version:x.y.z + +To release a new version `x.y.z` (replace `x.y.z` with a real version number): + + bundle exec fastlane release version:x.y.z + +Since it will automatically make a new commit to bump version and push to CocoaPods +trunk, make sure you have write access to this repo and be one of the podspec owners. +If you are a maintainer but don't have these privilege yet, please let me know. + +## License +- All font files licensed under [SIL OFL 1.1](http://scripts.sil.org/OFL) +- FontAwesome.swift licensed under [MIT](http://thi.mit-license.org/) diff --git a/Pods/GithubAPI/GithubAPI/Classes/Authentication.swift b/Pods/GithubAPI/GithubAPI/Classes/Authentication.swift new file mode 100644 index 0000000..cfcd91f --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/Authentication.swift @@ -0,0 +1,125 @@ +// +// Authentication.swift +// GithubAPI +// +// Created by Serhii Londar on 1/2/18. +// + +import Foundation + +extension String { + func fromBase64() -> String? { + guard let data = Data(base64Encoded: self, options: Data.Base64DecodingOptions(rawValue: 0)) else { + return nil + } + return String(data: data as Data, encoding: String.Encoding.utf8) + } + + func toBase64() -> String? { + guard let data = self.data(using: String.Encoding.utf8) else { + return nil + } + return data.base64EncodedString(options: Data.Base64EncodingOptions(rawValue: 0)) + } +} + +public enum AuthenticationType { + case none + case headers + case parameters +} + +public class Authentication { + public var type: AuthenticationType { + return .none + } + public init() { + + } + + public var key: String { + return "" + } + + public var value: String { + return "" + } + + public func headers() -> [String : String] { + return [key : value] + } +} + +public class BasicAuthentication: Authentication { + override public var type: AuthenticationType { + return .headers + } + public var username: String + public var password: String + + public init(username: String, password: String) { + self.username = username + self.password = password + } + + override public var key: String { + return "Authorization" + } + + override public var value: String { + let authorization = self.username + ":" + self.password + return "Basic \(authorization.toBase64() ?? "")" + } + + override public func headers() -> [String : String] { + let authorization = self.username + ":" + self.password + return ["Authorization": "Basic \(authorization.toBase64() ?? "")"] + } +} + +public class TokenAuthentication: Authentication { + override public var type: AuthenticationType { + return .headers + } + public var token: String + + public init(token: String) { + self.token = token + } + + override public var key: String { + return "Authorization" + } + + override public var value: String { + return "token \(self.token)" + } + + override public func headers() -> [String : String] { + return [self.key: "token \(self.token)"] + } +} + +public class AccessTokenAuthentication: Authentication { + override public var type: AuthenticationType { + return .parameters + } + public var access_token: String + + public init(access_token: String) { + self.access_token = access_token + } + + override public var key: String { + return "access_token" + } + + override public var value: String { + return "\(self.access_token)" + } + + override public func headers() -> [String : String] { + return [self.key: "\(self.access_token)"] + } +} + diff --git a/Pods/GithubAPI/GithubAPI/Classes/GithubAPI.swift b/Pods/GithubAPI/GithubAPI/Classes/GithubAPI.swift new file mode 100644 index 0000000..184fd82 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/GithubAPI.swift @@ -0,0 +1,196 @@ +// +// GithubAPI.swift +// GithubAPI +// +// Created by Serhii Londar on 1/2/18. +// Copyright © 2018 Serhii Londar. All rights reserved. +// + +import Foundation +import BaseAPI + +public class GithubAPI: BaseAPI { + var authentication: Authentication? = nil + + var defaultHeaders = [ + "Accept" : "application/vnd.github.v3+json", + RequestHeaderFields.acceptEncoding.rawValue : "gzip", + "Content-Type" : "application/json; charset=utf-8" + ] + + public init(authentication: Authentication) { + self.authentication = authentication + super.init() + } + + public override init() { + super.init() + } + + let baseUrl = "https://api.github.com" + + public func get(path: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, completion: @escaping (T?, Error?) -> Swift.Void) { + let (newHeaders, newParameters) = self.addAuthenticationIfNeeded(headers, parameters: parameters) + self.get(url: self.baseUrl + path, parameters: newParameters, headers: newHeaders) { (data, response, error) in + if let data = data { + do { + let model = try JSONDecoder().decode(T.self, from: data) + completion(model, error) + } catch { + completion(nil, error) + } + } else { + completion(nil, error) + } + } + } + + public func getSync(path: String, parameters: [String : String]? = nil, headers: [String: String]? = nil) -> (response: T?, error: Error?) { + let (newHeaders, newParameters) = self.addAuthenticationIfNeeded(headers, parameters: parameters) + let response = self.get(url: self.baseUrl + path, parameters: newParameters, headers: newHeaders) + if let data = response.data { + do { + let model = try JSONDecoder().decode(T.self, from: data) + return (model, response.error) + } catch { + return (nil, error) + } + } else { + return (nil, response.error) + } + } + + public func put(path: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, body: Data?, completion: @escaping (T?, Error?) -> Swift.Void) { + let (newHeaders, newParameters) = self.addAuthenticationIfNeeded(headers, parameters: parameters) + self.put(url: self.baseUrl + path, parameters: newParameters, headers: newHeaders, body: body) { (data, response, error) in + if let data = data { + do { + let model = try JSONDecoder().decode(T.self, from: data) + completion(model, error) + } catch { + completion(nil, error) + } + } else { + completion(nil, error) + } + } + } + + public func putSync(path: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, body: Data?) -> (response: T?, error: Error?) { + let (newHeaders, newParameters) = self.addAuthenticationIfNeeded(headers, parameters: parameters) + let response = self.put(url: self.baseUrl + path, parameters: newParameters, headers: newHeaders, body: body) + if let data = response.data { + do { + let model = try JSONDecoder().decode(T.self, from: data) + return (model, response.error) + } catch { + return (nil, error) + } + } else { + return (nil, response.error) + } + } + + public func post(path: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, body: Data?, completion: @escaping (T?, Error?) -> Swift.Void) { + let (newHeaders, newParameters) = self.addAuthenticationIfNeeded(headers, parameters: parameters) + self.post(url: self.baseUrl + path, parameters: newParameters, headers: newHeaders, body: body) { (data, response, error) in + if let data = data { + do { + let model = try JSONDecoder().decode(T.self, from: data) + completion(model, error) + } catch { + completion(nil, error) + } + } else { + completion(nil, error) + } + } + } + + public func postSync(path: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, body: Data?) -> (response: T?, error: Error?) { + let (newHeaders, newParameters) = self.addAuthenticationIfNeeded(headers, parameters: parameters) + let response = self.post(url: self.baseUrl + path, parameters: newParameters, headers: newHeaders, body: body) + if let data = response.data { + do { + let model = try JSONDecoder().decode(T.self, from: data) + return (model, response.error) + } catch { + return (nil, error) + } + } else { + return (nil, response.error) + } + } + + public func patch(path: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, body: Data?, completion: @escaping (T?, Error?) -> Swift.Void) { + let (newHeaders, newParameters) = self.addAuthenticationIfNeeded(headers, parameters: parameters) + self.patch(url: self.baseUrl + path, parameters: newParameters, headers: newHeaders, body: body) { (data, response, error) in + if let data = data { + do { + let model = try JSONDecoder().decode(T.self, from: data) + let error = try JSONDecoder().decode(OtherUserError.self, from: data) + completion(model, error) + } catch { + completion(nil, error) + } + } else { + completion(nil, error) + } + } + } + + public func patchSync(path: String, parameters: [String : String]? = nil, headers: [String: String]? = nil, body: Data?) -> (response: T?, error: Error?) { + let (newHeaders, newParameters) = self.addAuthenticationIfNeeded(headers, parameters: parameters) + let response = self.patch(url: self.baseUrl + path, parameters: newParameters, headers: newHeaders, body: body) + if let data = response.data { + do { + let model = try JSONDecoder().decode(T.self, from: data) + return (model, response.error) + } catch { + return (nil, error) + } + } else { + return (nil, response.error) + } + } + + + func addAuthenticationIfNeeded(_ headers: [String : String]?, parameters: [String : String]?) -> (headers: [String : String]?, parameters: [String : String]?) { + var newHeaders = headers + var newParameters = parameters + if let authentication = self.authentication { + if authentication.type == .headers { + if var newHeaders = newHeaders { + newHeaders[authentication.key] = authentication.value + return (newHeaders, newParameters) + } else { + newHeaders = [String : String]() + newHeaders![authentication.key] = authentication.value + return (newHeaders, newParameters) + } + } else if authentication.type == .parameters { + if var newParameters = newParameters { + newParameters[authentication.key] = authentication.value + return (newHeaders, newParameters) + } else { + newParameters = [String : String]() + newParameters![authentication.key] = authentication.value + return (newHeaders, newParameters) + } + } + } + return (newHeaders, newParameters) + } + + func addDefaultHeaders(_ headers: [String : String]?) -> [String : String]? { + var newHeaders = headers + if newHeaders == nil { + newHeaders = [String : String]() + } + for header in defaultHeaders { + newHeaders![header.key] = header.value + } + return newHeaders + } + +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/IssuesAPI.swift b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/IssuesAPI.swift new file mode 100644 index 0000000..ef56a7d --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/IssuesAPI.swift @@ -0,0 +1,139 @@ +// +// IssuesAPI.swift +// GithubAPI +// +// Created by Serhii Londar on 1/8/18. +// + +import Foundation + +public enum IssueFilter: String { + case assigned + case created + case mentioned + case subscribed + case all +} + +public enum IssueState: String { + case open + case closed + case all +} + +public enum IssueSort: String { + case created + case updated + case comments +} + +public enum IssueDirection: String { + case asc + case desc +} + +public class IssuesAPI: GithubAPI { + /// List all issues assigned to the authenticated user across all visible repositories including owned repositories, member repositories, and organization repositories: + /// + /// - Parameter completion: + public func getIssues(filter: IssueFilter = .assigned, state: IssueState = .open, labels: [String] = [], sort: IssueSort = .created, direction: IssueDirection = .desc, /*since: TimeInterval,*/ completion: @escaping([GetIssueResponse]?, Error?) -> Void) { + let path = "/issues" + var parameters = [String : String]() + parameters["filter"] = filter.rawValue + parameters["state"] = state.rawValue + if labels.count > 0 { + var labelsString = "" + for label in labels { + labelsString += label + "," + } + labelsString.removeLast() + parameters["labels"] = labelsString + } + parameters["sort"] = sort.rawValue + parameters["direction"] = direction.rawValue + self.get(path: path, parameters: parameters, completion: completion) + } + + /// List all issues across owned and member repositories assigned to the authenticated user: + /// + /// - Parameter completion: + public func getUserIssues(filter: IssueFilter = .assigned, state: IssueState = .open, labels: [String] = [], sort: IssueSort = .created, direction: IssueDirection = .desc, completion: @escaping([GetIssueResponse]?, Error?) -> Void) { + let path = "/user/issues" + var parameters = [String : String]() + parameters["filter"] = filter.rawValue + parameters["state"] = state.rawValue + if labels.count > 0 { + var labelsString = "" + for label in labels { + labelsString += label + "," + } + labelsString.removeLast() + parameters["labels"] = labelsString + } + parameters["sort"] = sort.rawValue + parameters["direction"] = direction.rawValue + self.get(path: path, parameters: parameters, completion: completion) + } + + public func getUserIssues(organization: String, filter: IssueFilter = .assigned, state: IssueState = .open, labels: [String] = [], sort: IssueSort = .created, direction: IssueDirection = .desc, completion: @escaping([GetIssueResponse]?, Error?) -> Void) { + let path = "/orgs/\(organization)/issues" + var parameters = [String : String]() + parameters["filter"] = filter.rawValue + parameters["state"] = state.rawValue + if labels.count > 0 { + var labelsString = "" + for label in labels { + labelsString += label + "," + } + labelsString.removeLast() + parameters["labels"] = labelsString + } + parameters["sort"] = sort.rawValue + parameters["direction"] = direction.rawValue + self.get(path: path, parameters: parameters, completion: completion) + } + + public func getRepositoryIssues(owner: String, repository: String, milestone: String? = nil, state: IssueState = .open, assignee: String? = nil, creator: String? = nil, mentioned: String? = nil, labels: [String] = [], sort: IssueSort = .created, direction: IssueDirection = .desc, completion: @escaping([GetIssueResponse]?, Error?) -> Void) { + let path = "/repos/\(owner)/\(repository)/issues" + var parameters = [String : String]() + if let milestone = milestone { + parameters["milestone"] = milestone + } + parameters["state"] = state.rawValue + if let assignee = assignee { + parameters["assignee"] = assignee + } + if let creator = creator { + parameters["creator"] = creator + } + if let mentioned = mentioned { + parameters["mentioned"] = mentioned + } + if labels.count > 0 { + var labelsString = "" + for label in labels { + labelsString += label + "," + } + labelsString.removeLast() + parameters["labels"] = labelsString + } + parameters["sort"] = sort.rawValue + parameters["direction"] = direction.rawValue + self.get(path: path, parameters: parameters, completion: completion) + } + + public func getIssue(owner: String, repository: String, number: Int, completion: @escaping(GetIssueResponse?, Error?) -> Void) { + let path = "/repos/\(owner)/\(repository)/issues/\(number)" + self.get(path: path, completion: completion) + } + + public func createIssue(owner: String, repository: String, issue: Issue, completion: @escaping(GetIssueResponse?, Error?) -> Void) { + let path = "/repos/\(owner)/\(repository)/issues" + self.post(path: path, body: try? JSONEncoder().encode(issue), completion: completion) + } + + public func updateIssue(owner: String, repository: String, number: Int, issue: Issue, completion: @escaping(GetIssueResponse?, Error?) -> Void) { + let path = "/repos/\(owner)/\(repository)/issues/\(number)" + self.patch(path: path, body: try? JSONEncoder().encode(issue), completion: completion) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/CreateIssue/Issue.swift b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/CreateIssue/Issue.swift new file mode 100644 index 0000000..4904086 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/CreateIssue/Issue.swift @@ -0,0 +1,41 @@ +// +// Issue.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct Issue : Codable { + public var assignees : [String]? + public var body : String? + public var labels : [String]? + public var milestone : Int? + public var title : String? + + enum CodingKeys: String, CodingKey { + case assignees = "assignees" + case body = "body" + case labels = "labels" + case milestone = "milestone" + case title = "title" + } + + public init(title: String) { + self.assignees = nil + self.body = nil + self.labels = nil + self.milestone = nil + self.title = title + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + assignees = try values.decodeIfPresent([String].self, forKey: .assignees) + body = try values.decodeIfPresent(String.self, forKey: .body) + labels = try values.decodeIfPresent([String].self, forKey: .labels) + milestone = try values.decodeIfPresent(Int.self, forKey: .milestone) + title = try values.decodeIfPresent(String.self, forKey: .title) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponse.swift b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponse.swift new file mode 100644 index 0000000..0591ce2 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponse.swift @@ -0,0 +1,88 @@ +// +// GetIssueResponse.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct GetIssueResponse : Codable { + public let assignee : GetIssueResponseAssignee? + public let assignees : [GetIssueResponseAssignee]? + public let body : String? + public let closedAt : String? + public let comments : Int? + public let commentsUrl : String? + public let createdAt : String? + public let eventsUrl : String? + public let htmlUrl : String? + public let id : Int? + public let labels : [GetIssueResponseLabel]? + public let labelsUrl : String? + public let locked : Bool? + public let milestone : GetIssueResponseMilestone? + public let number : Int? + public let pullRequest : GetIssueResponsePullRequest? + public let repository : GetIssueResponseRepository? + public let repositoryUrl : String? + public let state : String? + public let title : String? + public let updatedAt : String? + public let url : String? + public let user : GetIssueResponseAssignee? + + + enum CodingKeys: String, CodingKey { + case assignee + case assignees = "assignees" + case body = "body" + case closedAt = "closed_at" + case comments = "comments" + case commentsUrl = "comments_url" + case createdAt = "created_at" + case eventsUrl = "events_url" + case htmlUrl = "html_url" + case id = "id" + case labels = "labels" + case labelsUrl = "labels_url" + case locked = "locked" + case milestone + case number = "number" + case pullRequest + case repository + case repositoryUrl = "repository_url" + case state = "state" + case title = "title" + case updatedAt = "updated_at" + case url = "url" + case user + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + assignee = try values.decodeIfPresent(GetIssueResponseAssignee.self, forKey: .assignee) + assignees = try values.decodeIfPresent([GetIssueResponseAssignee].self, forKey: .assignees) + body = try values.decodeIfPresent(String.self, forKey: .body) + closedAt = try values.decodeIfPresent(String.self, forKey: .closedAt) + comments = try values.decodeIfPresent(Int.self, forKey: .comments) + commentsUrl = try values.decodeIfPresent(String.self, forKey: .commentsUrl) + createdAt = try values.decodeIfPresent(String.self, forKey: .createdAt) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + labels = try values.decodeIfPresent([GetIssueResponseLabel].self, forKey: .labels) + labelsUrl = try values.decodeIfPresent(String.self, forKey: .labelsUrl) + locked = try values.decodeIfPresent(Bool.self, forKey: .locked) + milestone = try values.decodeIfPresent(GetIssueResponseMilestone.self, forKey: .milestone) + number = try values.decodeIfPresent(Int.self, forKey: .number) + pullRequest = try values.decodeIfPresent(GetIssueResponsePullRequest.self, forKey: .pullRequest) + repository = try values.decodeIfPresent(GetIssueResponseRepository.self, forKey: .repository) + repositoryUrl = try values.decodeIfPresent(String.self, forKey: .repositoryUrl) + state = try values.decodeIfPresent(String.self, forKey: .state) + title = try values.decodeIfPresent(String.self, forKey: .title) + updatedAt = try values.decodeIfPresent(String.self, forKey: .updatedAt) + url = try values.decodeIfPresent(String.self, forKey: .url) + user = try values.decodeIfPresent(GetIssueResponseAssignee.self, forKey: .user) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseAssignee.swift b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseAssignee.swift new file mode 100644 index 0000000..bcbcd8a --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseAssignee.swift @@ -0,0 +1,69 @@ +// +// GetIssueResponseAssignee.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct GetIssueResponseAssignee : Codable { + public let avatarUrl : String? + public let eventsUrl : String? + public let followersUrl : String? + public let followingUrl : String? + public let gistsUrl : String? + public let gravatarId : String? + public let htmlUrl : String? + public let id : Int? + public let login : String? + public let organizationsUrl : String? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let siteAdmin : Bool? + public let starredUrl : String? + public let subscriptionsUrl : String? + public let type : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case eventsUrl = "events_url" + case followersUrl = "followers_url" + case followingUrl = "following_url" + case gistsUrl = "gists_url" + case gravatarId = "gravatar_id" + case htmlUrl = "html_url" + case id = "id" + case login = "login" + case organizationsUrl = "organizations_url" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case siteAdmin = "site_admin" + case starredUrl = "starred_url" + case subscriptionsUrl = "subscriptions_url" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + followingUrl = try values.decodeIfPresent(String.self, forKey: .followingUrl) + gistsUrl = try values.decodeIfPresent(String.self, forKey: .gistsUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + login = try values.decodeIfPresent(String.self, forKey: .login) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + siteAdmin = try values.decodeIfPresent(Bool.self, forKey: .siteAdmin) + starredUrl = try values.decodeIfPresent(String.self, forKey: .starredUrl) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseLabel.swift b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseLabel.swift new file mode 100644 index 0000000..fb50b12 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseLabel.swift @@ -0,0 +1,33 @@ +// +// GetIssueResponseLabel.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct GetIssueResponseLabel : Codable { + public let color : String? + public let defaultField : Bool? + public let id : Int? + public let name : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case color = "color" + case defaultField = "default" + case id = "id" + case name = "name" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + color = try values.decodeIfPresent(String.self, forKey: .color) + defaultField = try values.decodeIfPresent(Bool.self, forKey: .defaultField) + id = try values.decodeIfPresent(Int.self, forKey: .id) + name = try values.decodeIfPresent(String.self, forKey: .name) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseMilestone.swift b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseMilestone.swift new file mode 100644 index 0000000..869efd4 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseMilestone.swift @@ -0,0 +1,63 @@ +// +// GetIssueResponseMilestone.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct GetIssueResponseMilestone : Codable { + public let closedAt : String? + public let closedIssues : Int? + public let createdAt : String? + public let creator : GetIssueResponseAssignee? + public let descriptionField : String? + public let dueOn : String? + public let htmlUrl : String? + public let id : Int? + public let labelsUrl : String? + public let number : Int? + public let openIssues : Int? + public let state : String? + public let title : String? + public let updatedAt : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case closedAt = "closed_at" + case closedIssues = "closed_issues" + case createdAt = "created_at" + case creator + case descriptionField = "description" + case dueOn = "due_on" + case htmlUrl = "html_url" + case id = "id" + case labelsUrl = "labels_url" + case number = "number" + case openIssues = "open_issues" + case state = "state" + case title = "title" + case updatedAt = "updated_at" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + closedAt = try values.decodeIfPresent(String.self, forKey: .closedAt) + closedIssues = try values.decodeIfPresent(Int.self, forKey: .closedIssues) + createdAt = try values.decodeIfPresent(String.self, forKey: .createdAt) + creator = try values.decodeIfPresent(GetIssueResponseAssignee.self, forKey: .creator) + descriptionField = try values.decodeIfPresent(String.self, forKey: .descriptionField) + dueOn = try values.decodeIfPresent(String.self, forKey: .dueOn) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + labelsUrl = try values.decodeIfPresent(String.self, forKey: .labelsUrl) + number = try values.decodeIfPresent(Int.self, forKey: .number) + openIssues = try values.decodeIfPresent(Int.self, forKey: .openIssues) + state = try values.decodeIfPresent(String.self, forKey: .state) + title = try values.decodeIfPresent(String.self, forKey: .title) + updatedAt = try values.decodeIfPresent(String.self, forKey: .updatedAt) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponsePermission.swift b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponsePermission.swift new file mode 100644 index 0000000..2facfc4 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponsePermission.swift @@ -0,0 +1,27 @@ +// +// GetIssueResponsePermission.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct GetIssueResponsePermission : Codable { + public let admin : Bool? + public let pull : Bool? + public let push : Bool? + + enum CodingKeys: String, CodingKey { + case admin = "admin" + case pull = "pull" + case push = "push" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + admin = try values.decodeIfPresent(Bool.self, forKey: .admin) + pull = try values.decodeIfPresent(Bool.self, forKey: .pull) + push = try values.decodeIfPresent(Bool.self, forKey: .push) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponsePullRequest.swift b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponsePullRequest.swift new file mode 100644 index 0000000..25ed38a --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponsePullRequest.swift @@ -0,0 +1,30 @@ +// +// GetIssueResponsePullRequest.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct GetIssueResponsePullRequest : Codable { + public let diffUrl : String? + public let htmlUrl : String? + public let patchUrl : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case diffUrl = "diff_url" + case htmlUrl = "html_url" + case patchUrl = "patch_url" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + diffUrl = try values.decodeIfPresent(String.self, forKey: .diffUrl) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + patchUrl = try values.decodeIfPresent(String.self, forKey: .patchUrl) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseRepository.swift b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseRepository.swift new file mode 100644 index 0000000..0b45ceb --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseRepository.swift @@ -0,0 +1,237 @@ +// +// GetIssueResponseRepository.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct GetIssueResponseRepository : Codable { + public let allowMergeCommit : Bool? + public let allowRebaseMerge : Bool? + public let allowSquashMerge : Bool? + public let archiveUrl : String? + public let archived : Bool? + public let assigneesUrl : String? + public let blobsUrl : String? + public let branchesUrl : String? + public let cloneUrl : String? + public let collaboratorsUrl : String? + public let commentsUrl : String? + public let commitsUrl : String? + public let compareUrl : String? + public let contentsUrl : String? + public let contributorsUrl : String? + public let createdAt : String? + public let defaultBranch : String? + public let deploymentsUrl : String? + public let descriptionField : String? + public let downloadsUrl : String? + public let eventsUrl : String? + public let fork : Bool? + public let forksCount : Int? + public let forksUrl : String? + public let fullName : String? + public let gitCommitsUrl : String? + public let gitRefsUrl : String? + public let gitTagsUrl : String? + public let gitUrl : String? + public let hasDownloads : Bool? + public let hasIssues : Bool? + public let hasPages : Bool? + public let hasWiki : Bool? + public let homepage : String? + public let hooksUrl : String? + public let htmlUrl : String? + public let id : Int? + public let issueCommentUrl : String? + public let issueEventsUrl : String? + public let issuesUrl : String? + public let keysUrl : String? + public let labelsUrl : String? + public let language : String? + public let languagesUrl : String? + public let mergesUrl : String? + public let milestonesUrl : String? + public let mirrorUrl : String? + public let name : String? + public let networkCount : Int? + public let notificationsUrl : String? + public let openIssuesCount : Int? + public let owner : GetIssueResponseAssignee? + public let permissions : GetIssueResponsePermission? + public let privateField : Bool? + public let pullsUrl : String? + public let pushedAt : String? + public let releasesUrl : String? + public let size : Int? + public let sshUrl : String? + public let stargazersCount : Int? + public let stargazersUrl : String? + public let statusesUrl : String? + public let subscribersCount : Int? + public let subscribersUrl : String? + public let subscriptionUrl : String? + public let svnUrl : String? + public let tagsUrl : String? + public let teamsUrl : String? + public let topics : [String]? + public let treesUrl : String? + public let updatedAt : String? + public let url : String? + public let watchersCount : Int? + + enum CodingKeys: String, CodingKey { + case allowMergeCommit = "allow_merge_commit" + case allowRebaseMerge = "allow_rebase_merge" + case allowSquashMerge = "allow_squash_merge" + case archiveUrl = "archive_url" + case archived = "archived" + case assigneesUrl = "assignees_url" + case blobsUrl = "blobs_url" + case branchesUrl = "branches_url" + case cloneUrl = "clone_url" + case collaboratorsUrl = "collaborators_url" + case commentsUrl = "comments_url" + case commitsUrl = "commits_url" + case compareUrl = "compare_url" + case contentsUrl = "contents_url" + case contributorsUrl = "contributors_url" + case createdAt = "created_at" + case defaultBranch = "default_branch" + case deploymentsUrl = "deployments_url" + case descriptionField = "description" + case downloadsUrl = "downloads_url" + case eventsUrl = "events_url" + case fork = "fork" + case forksCount = "forks_count" + case forksUrl = "forks_url" + case fullName = "full_name" + case gitCommitsUrl = "git_commits_url" + case gitRefsUrl = "git_refs_url" + case gitTagsUrl = "git_tags_url" + case gitUrl = "git_url" + case hasDownloads = "has_downloads" + case hasIssues = "has_issues" + case hasPages = "has_pages" + case hasWiki = "has_wiki" + case homepage = "homepage" + case hooksUrl = "hooks_url" + case htmlUrl = "html_url" + case id = "id" + case issueCommentUrl = "issue_comment_url" + case issueEventsUrl = "issue_events_url" + case issuesUrl = "issues_url" + case keysUrl = "keys_url" + case labelsUrl = "labels_url" + case language = "language" + case languagesUrl = "languages_url" + case mergesUrl = "merges_url" + case milestonesUrl = "milestones_url" + case mirrorUrl = "mirror_url" + case name = "name" + case networkCount = "network_count" + case notificationsUrl = "notifications_url" + case openIssuesCount = "open_issues_count" + case owner + case permissions + case privateField = "private" + case pullsUrl = "pulls_url" + case pushedAt = "pushed_at" + case releasesUrl = "releases_url" + case size = "size" + case sshUrl = "ssh_url" + case stargazersCount = "stargazers_count" + case stargazersUrl = "stargazers_url" + case statusesUrl = "statuses_url" + case subscribersCount = "subscribers_count" + case subscribersUrl = "subscribers_url" + case subscriptionUrl = "subscription_url" + case svnUrl = "svn_url" + case tagsUrl = "tags_url" + case teamsUrl = "teams_url" + case topics = "topics" + case treesUrl = "trees_url" + case updatedAt = "updated_at" + case url = "url" + case watchersCount = "watchers_count" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + allowMergeCommit = try values.decodeIfPresent(Bool.self, forKey: .allowMergeCommit) + allowRebaseMerge = try values.decodeIfPresent(Bool.self, forKey: .allowRebaseMerge) + allowSquashMerge = try values.decodeIfPresent(Bool.self, forKey: .allowSquashMerge) + archiveUrl = try values.decodeIfPresent(String.self, forKey: .archiveUrl) + archived = try values.decodeIfPresent(Bool.self, forKey: .archived) + assigneesUrl = try values.decodeIfPresent(String.self, forKey: .assigneesUrl) + blobsUrl = try values.decodeIfPresent(String.self, forKey: .blobsUrl) + branchesUrl = try values.decodeIfPresent(String.self, forKey: .branchesUrl) + cloneUrl = try values.decodeIfPresent(String.self, forKey: .cloneUrl) + collaboratorsUrl = try values.decodeIfPresent(String.self, forKey: .collaboratorsUrl) + commentsUrl = try values.decodeIfPresent(String.self, forKey: .commentsUrl) + commitsUrl = try values.decodeIfPresent(String.self, forKey: .commitsUrl) + compareUrl = try values.decodeIfPresent(String.self, forKey: .compareUrl) + contentsUrl = try values.decodeIfPresent(String.self, forKey: .contentsUrl) + contributorsUrl = try values.decodeIfPresent(String.self, forKey: .contributorsUrl) + createdAt = try values.decodeIfPresent(String.self, forKey: .createdAt) + defaultBranch = try values.decodeIfPresent(String.self, forKey: .defaultBranch) + deploymentsUrl = try values.decodeIfPresent(String.self, forKey: .deploymentsUrl) + descriptionField = try values.decodeIfPresent(String.self, forKey: .descriptionField) + downloadsUrl = try values.decodeIfPresent(String.self, forKey: .downloadsUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + fork = try values.decodeIfPresent(Bool.self, forKey: .fork) + forksCount = try values.decodeIfPresent(Int.self, forKey: .forksCount) + forksUrl = try values.decodeIfPresent(String.self, forKey: .forksUrl) + fullName = try values.decodeIfPresent(String.self, forKey: .fullName) + gitCommitsUrl = try values.decodeIfPresent(String.self, forKey: .gitCommitsUrl) + gitRefsUrl = try values.decodeIfPresent(String.self, forKey: .gitRefsUrl) + gitTagsUrl = try values.decodeIfPresent(String.self, forKey: .gitTagsUrl) + gitUrl = try values.decodeIfPresent(String.self, forKey: .gitUrl) + hasDownloads = try values.decodeIfPresent(Bool.self, forKey: .hasDownloads) + hasIssues = try values.decodeIfPresent(Bool.self, forKey: .hasIssues) + hasPages = try values.decodeIfPresent(Bool.self, forKey: .hasPages) + hasWiki = try values.decodeIfPresent(Bool.self, forKey: .hasWiki) + homepage = try values.decodeIfPresent(String.self, forKey: .homepage) + hooksUrl = try values.decodeIfPresent(String.self, forKey: .hooksUrl) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + issueCommentUrl = try values.decodeIfPresent(String.self, forKey: .issueCommentUrl) + issueEventsUrl = try values.decodeIfPresent(String.self, forKey: .issueEventsUrl) + issuesUrl = try values.decodeIfPresent(String.self, forKey: .issuesUrl) + keysUrl = try values.decodeIfPresent(String.self, forKey: .keysUrl) + labelsUrl = try values.decodeIfPresent(String.self, forKey: .labelsUrl) + language = try values.decodeIfPresent(String.self, forKey: .language) + languagesUrl = try values.decodeIfPresent(String.self, forKey: .languagesUrl) + mergesUrl = try values.decodeIfPresent(String.self, forKey: .mergesUrl) + milestonesUrl = try values.decodeIfPresent(String.self, forKey: .milestonesUrl) + mirrorUrl = try values.decodeIfPresent(String.self, forKey: .mirrorUrl) + name = try values.decodeIfPresent(String.self, forKey: .name) + networkCount = try values.decodeIfPresent(Int.self, forKey: .networkCount) + notificationsUrl = try values.decodeIfPresent(String.self, forKey: .notificationsUrl) + openIssuesCount = try values.decodeIfPresent(Int.self, forKey: .openIssuesCount) + owner = try values.decodeIfPresent(GetIssueResponseAssignee.self, forKey: .owner) + permissions = try values.decodeIfPresent(GetIssueResponsePermission.self, forKey: .permissions) + privateField = try values.decodeIfPresent(Bool.self, forKey: .privateField) + pullsUrl = try values.decodeIfPresent(String.self, forKey: .pullsUrl) + pushedAt = try values.decodeIfPresent(String.self, forKey: .pushedAt) + releasesUrl = try values.decodeIfPresent(String.self, forKey: .releasesUrl) + size = try values.decodeIfPresent(Int.self, forKey: .size) + sshUrl = try values.decodeIfPresent(String.self, forKey: .sshUrl) + stargazersCount = try values.decodeIfPresent(Int.self, forKey: .stargazersCount) + stargazersUrl = try values.decodeIfPresent(String.self, forKey: .stargazersUrl) + statusesUrl = try values.decodeIfPresent(String.self, forKey: .statusesUrl) + subscribersCount = try values.decodeIfPresent(Int.self, forKey: .subscribersCount) + subscribersUrl = try values.decodeIfPresent(String.self, forKey: .subscribersUrl) + subscriptionUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionUrl) + svnUrl = try values.decodeIfPresent(String.self, forKey: .svnUrl) + tagsUrl = try values.decodeIfPresent(String.self, forKey: .tagsUrl) + teamsUrl = try values.decodeIfPresent(String.self, forKey: .teamsUrl) + topics = try values.decodeIfPresent([String].self, forKey: .topics) + treesUrl = try values.decodeIfPresent(String.self, forKey: .treesUrl) + updatedAt = try values.decodeIfPresent(String.self, forKey: .updatedAt) + url = try values.decodeIfPresent(String.self, forKey: .url) + watchersCount = try values.decodeIfPresent(Int.self, forKey: .watchersCount) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/Models/NotificationsOwner.swift b/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/Models/NotificationsOwner.swift new file mode 100644 index 0000000..cdbaad4 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/Models/NotificationsOwner.swift @@ -0,0 +1,69 @@ +// +// NotificationsOwner.swift +// +// Create by Serhii Londar on 9/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct NotificationsOwner : Codable { + public let avatarUrl : String? + public let eventsUrl : String? + public let followersUrl : String? + public let followingUrl : String? + public let gistsUrl : String? + public let gravatarId : String? + public let htmlUrl : String? + public let id : Int? + public let login : String? + public let organizationsUrl : String? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let siteAdmin : Bool? + public let starredUrl : String? + public let subscriptionsUrl : String? + public let type : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case eventsUrl = "events_url" + case followersUrl = "followers_url" + case followingUrl = "following_url" + case gistsUrl = "gists_url" + case gravatarId = "gravatar_id" + case htmlUrl = "html_url" + case id = "id" + case login = "login" + case organizationsUrl = "organizations_url" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case siteAdmin = "site_admin" + case starredUrl = "starred_url" + case subscriptionsUrl = "subscriptions_url" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + followingUrl = try values.decodeIfPresent(String.self, forKey: .followingUrl) + gistsUrl = try values.decodeIfPresent(String.self, forKey: .gistsUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + login = try values.decodeIfPresent(String.self, forKey: .login) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + siteAdmin = try values.decodeIfPresent(Bool.self, forKey: .siteAdmin) + starredUrl = try values.decodeIfPresent(String.self, forKey: .starredUrl) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/Models/NotificationsRepository.swift b/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/Models/NotificationsRepository.swift new file mode 100644 index 0000000..bb271c6 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/Models/NotificationsRepository.swift @@ -0,0 +1,153 @@ +// +// NotificationsRepository.swift +// +// Create by Serhii Londar on 9/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct NotificationsRepository : Codable { + public let archiveUrl : String? + public let assigneesUrl : String? + public let blobsUrl : String? + public let branchesUrl : String? + public let collaboratorsUrl : String? + public let commentsUrl : String? + public let commitsUrl : String? + public let compareUrl : String? + public let contentsUrl : String? + public let contributorsUrl : String? + public let deploymentsUrl : String? + public let descriptionField : String? + public let downloadsUrl : String? + public let eventsUrl : String? + public let fork : Bool? + public let forksUrl : String? + public let fullName : String? + public let gitCommitsUrl : String? + public let gitRefsUrl : String? + public let gitTagsUrl : String? + public let hooksUrl : String? + public let htmlUrl : String? + public let id : Float? + public let issueCommentUrl : String? + public let issueEventsUrl : String? + public let issuesUrl : String? + public let keysUrl : String? + public let labelsUrl : String? + public let languagesUrl : String? + public let mergesUrl : String? + public let milestonesUrl : String? + public let name : String? + public let notificationsUrl : String? + public let owner : NotificationsOwner? + public let privateField : Bool? + public let pullsUrl : String? + public let releasesUrl : String? + public let stargazersUrl : String? + public let statusesUrl : String? + public let subscribersUrl : String? + public let subscriptionUrl : String? + public let tagsUrl : String? + public let teamsUrl : String? + public let treesUrl : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case archiveUrl = "archive_url" + case assigneesUrl = "assignees_url" + case blobsUrl = "blobs_url" + case branchesUrl = "branches_url" + case collaboratorsUrl = "collaborators_url" + case commentsUrl = "comments_url" + case commitsUrl = "commits_url" + case compareUrl = "compare_url" + case contentsUrl = "contents_url" + case contributorsUrl = "contributors_url" + case deploymentsUrl = "deployments_url" + case descriptionField = "description" + case downloadsUrl = "downloads_url" + case eventsUrl = "events_url" + case fork = "fork" + case forksUrl = "forks_url" + case fullName = "full_name" + case gitCommitsUrl = "git_commits_url" + case gitRefsUrl = "git_refs_url" + case gitTagsUrl = "git_tags_url" + case hooksUrl = "hooks_url" + case htmlUrl = "html_url" + case id = "id" + case issueCommentUrl = "issue_comment_url" + case issueEventsUrl = "issue_events_url" + case issuesUrl = "issues_url" + case keysUrl = "keys_url" + case labelsUrl = "labels_url" + case languagesUrl = "languages_url" + case mergesUrl = "merges_url" + case milestonesUrl = "milestones_url" + case name = "name" + case notificationsUrl = "notifications_url" + case owner + case privateField = "private" + case pullsUrl = "pulls_url" + case releasesUrl = "releases_url" + case stargazersUrl = "stargazers_url" + case statusesUrl = "statuses_url" + case subscribersUrl = "subscribers_url" + case subscriptionUrl = "subscription_url" + case tagsUrl = "tags_url" + case teamsUrl = "teams_url" + case treesUrl = "trees_url" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + archiveUrl = try values.decodeIfPresent(String.self, forKey: .archiveUrl) + assigneesUrl = try values.decodeIfPresent(String.self, forKey: .assigneesUrl) + blobsUrl = try values.decodeIfPresent(String.self, forKey: .blobsUrl) + branchesUrl = try values.decodeIfPresent(String.self, forKey: .branchesUrl) + collaboratorsUrl = try values.decodeIfPresent(String.self, forKey: .collaboratorsUrl) + commentsUrl = try values.decodeIfPresent(String.self, forKey: .commentsUrl) + commitsUrl = try values.decodeIfPresent(String.self, forKey: .commitsUrl) + compareUrl = try values.decodeIfPresent(String.self, forKey: .compareUrl) + contentsUrl = try values.decodeIfPresent(String.self, forKey: .contentsUrl) + contributorsUrl = try values.decodeIfPresent(String.self, forKey: .contributorsUrl) + deploymentsUrl = try values.decodeIfPresent(String.self, forKey: .deploymentsUrl) + descriptionField = try values.decodeIfPresent(String.self, forKey: .descriptionField) + downloadsUrl = try values.decodeIfPresent(String.self, forKey: .downloadsUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + fork = try values.decodeIfPresent(Bool.self, forKey: .fork) + forksUrl = try values.decodeIfPresent(String.self, forKey: .forksUrl) + fullName = try values.decodeIfPresent(String.self, forKey: .fullName) + gitCommitsUrl = try values.decodeIfPresent(String.self, forKey: .gitCommitsUrl) + gitRefsUrl = try values.decodeIfPresent(String.self, forKey: .gitRefsUrl) + gitTagsUrl = try values.decodeIfPresent(String.self, forKey: .gitTagsUrl) + hooksUrl = try values.decodeIfPresent(String.self, forKey: .hooksUrl) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Float.self, forKey: .id) + issueCommentUrl = try values.decodeIfPresent(String.self, forKey: .issueCommentUrl) + issueEventsUrl = try values.decodeIfPresent(String.self, forKey: .issueEventsUrl) + issuesUrl = try values.decodeIfPresent(String.self, forKey: .issuesUrl) + keysUrl = try values.decodeIfPresent(String.self, forKey: .keysUrl) + labelsUrl = try values.decodeIfPresent(String.self, forKey: .labelsUrl) + languagesUrl = try values.decodeIfPresent(String.self, forKey: .languagesUrl) + mergesUrl = try values.decodeIfPresent(String.self, forKey: .mergesUrl) + milestonesUrl = try values.decodeIfPresent(String.self, forKey: .milestonesUrl) + name = try values.decodeIfPresent(String.self, forKey: .name) + notificationsUrl = try values.decodeIfPresent(String.self, forKey: .notificationsUrl) + owner = try values.decodeIfPresent(NotificationsOwner.self, forKey: .owner) + privateField = try values.decodeIfPresent(Bool.self, forKey: .privateField) + pullsUrl = try values.decodeIfPresent(String.self, forKey: .pullsUrl) + releasesUrl = try values.decodeIfPresent(String.self, forKey: .releasesUrl) + stargazersUrl = try values.decodeIfPresent(String.self, forKey: .stargazersUrl) + statusesUrl = try values.decodeIfPresent(String.self, forKey: .statusesUrl) + subscribersUrl = try values.decodeIfPresent(String.self, forKey: .subscribersUrl) + subscriptionUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionUrl) + tagsUrl = try values.decodeIfPresent(String.self, forKey: .tagsUrl) + teamsUrl = try values.decodeIfPresent(String.self, forKey: .teamsUrl) + treesUrl = try values.decodeIfPresent(String.self, forKey: .treesUrl) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/Models/NotificationsResponse.swift b/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/Models/NotificationsResponse.swift new file mode 100644 index 0000000..08998d5 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/Models/NotificationsResponse.swift @@ -0,0 +1,45 @@ +// +// NotificationsResponse.swift +// +// Create by Serhii Londar on 9/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct NotificationsResponse : Codable { + public let id : String? + public let lastReadAt : String? + public let reason : String? + public let repository : NotificationsRepository? + public let subject : NotificationsSubject? + public let subscriptionUrl : String? + public let unread : Bool? + public let updatedAt : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case id = "id" + case lastReadAt = "last_read_at" + case reason = "reason" + case repository + case subject + case subscriptionUrl = "subscription_url" + case unread = "unread" + case updatedAt = "updated_at" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + id = try values.decodeIfPresent(String.self, forKey: .id) + lastReadAt = try values.decodeIfPresent(String.self, forKey: .lastReadAt) + reason = try values.decodeIfPresent(String.self, forKey: .reason) + repository = try values.decodeIfPresent(NotificationsRepository.self, forKey: .repository) + subject = try values.decodeIfPresent(NotificationsSubject.self, forKey: .subject) + subscriptionUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionUrl) + unread = try values.decodeIfPresent(Bool.self, forKey: .unread) + updatedAt = try values.decodeIfPresent(String.self, forKey: .updatedAt) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/Models/NotificationsSubject.swift b/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/Models/NotificationsSubject.swift new file mode 100644 index 0000000..2029379 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/Models/NotificationsSubject.swift @@ -0,0 +1,30 @@ +// +// NotificationsSubject.swift +// +// Create by Serhii Londar on 9/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct NotificationsSubject : Codable { + public let latestCommentUrl : String? + public let title : String? + public let type : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case latestCommentUrl = "latest_comment_url" + case title = "title" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + latestCommentUrl = try values.decodeIfPresent(String.self, forKey: .latestCommentUrl) + title = try values.decodeIfPresent(String.self, forKey: .title) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/NotificationsAPI.swift b/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/NotificationsAPI.swift new file mode 100644 index 0000000..fd21133 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/NotificationsAPI/NotificationsAPI.swift @@ -0,0 +1,64 @@ +// +// NotificationsAPI.swift +// GithubAPI +// +// Created by Serhii Londar on 1/9/18. +// + +import Foundation + +enum NotificationReasons: String { + case assign + case author + case comment + case invitation + case manual + case mention + case state_change + case subscribed + case team_mention +} + +public class NotificationsAPI: GithubAPI { + public func notifications(all: Bool = false, participating: Bool = false, since: String? = nil, before: String? = nil, completion: @escaping([NotificationsResponse]?, Error?) -> Void) { + let path = "/notifications" + var parameters = [String : String]() + parameters["all"] = String(all) + parameters["participating"] = String(participating) + if let since = since { + parameters["since"] = since + } + if let before = before { + parameters["before"] = before + } + self.get(path: path, parameters: parameters, completion: completion) + } + + public func repositoryNotifications(owner: String, repository: String, all: Bool = false, participating: Bool = false, since: String? = nil, before: String? = nil, completion: @escaping([NotificationsResponse]?, Error?) -> Void) { + let path = "/repos/\(owner)/\(repository)/notifications" + var parameters = [String : String]() + parameters["all"] = String(all) + parameters["participating"] = String(participating) + if let since = since { + parameters["since"] = since + } + if let before = before { + parameters["before"] = before + } + self.get(path: path, parameters: parameters, completion: completion) + } + + public func markAsRead(last_read_at: String, completion: @escaping(Bool?, Error?) -> Void) { + let path = "/notifications" + var parameters = [String : String]() + parameters["last_read_at"] = last_read_at + self.put(path: path, parameters: parameters, headers: nil, body: nil, completion: completion) + } + + public func markAsRead(owner: String, repository: String, last_read_at: String, completion: @escaping(Bool?, Error?) -> Void) { + let path = "/repos/\(owner)/\(repository)/notifications" + var parameters = [String : String]() + parameters["last_read_at"] = last_read_at + self.put(path: path, parameters: parameters, headers: nil, body: nil, completion: completion) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryLicense.swift b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryLicense.swift new file mode 100644 index 0000000..0e015b3 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryLicense.swift @@ -0,0 +1,33 @@ +// +// RepositoryLicense.swift +// +// Create by Serhii Londar on 21/1/2018 +// Copyright © 2018 Techmagic. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct RepositoryLicense : Codable { + public let htmlUrl : String? + public let key : String? + public let name : String? + public let spdxId : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case htmlUrl = "html_url" + case key = "key" + case name = "name" + case spdxId = "spdx_id" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + key = try values.decodeIfPresent(String.self, forKey: .key) + name = try values.decodeIfPresent(String.self, forKey: .name) + spdxId = try values.decodeIfPresent(String.self, forKey: .spdxId) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryOrganization.swift b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryOrganization.swift new file mode 100644 index 0000000..a52db05 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryOrganization.swift @@ -0,0 +1,69 @@ +// +// RepositoryOrganization.swift +// +// Create by Serhii Londar on 21/1/2018 +// Copyright © 2018 Techmagic. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct RepositoryOrganization : Codable { + public let avatarUrl : String? + public let eventsUrl : String? + public let followersUrl : String? + public let followingUrl : String? + public let gistsUrl : String? + public let gravatarId : String? + public let htmlUrl : String? + public let id : Int? + public let login : String? + public let organizationsUrl : String? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let siteAdmin : Bool? + public let starredUrl : String? + public let subscriptionsUrl : String? + public let type : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case eventsUrl = "events_url" + case followersUrl = "followers_url" + case followingUrl = "following_url" + case gistsUrl = "gists_url" + case gravatarId = "gravatar_id" + case htmlUrl = "html_url" + case id = "id" + case login = "login" + case organizationsUrl = "organizations_url" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case siteAdmin = "site_admin" + case starredUrl = "starred_url" + case subscriptionsUrl = "subscriptions_url" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + followingUrl = try values.decodeIfPresent(String.self, forKey: .followingUrl) + gistsUrl = try values.decodeIfPresent(String.self, forKey: .gistsUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + login = try values.decodeIfPresent(String.self, forKey: .login) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + siteAdmin = try values.decodeIfPresent(Bool.self, forKey: .siteAdmin) + starredUrl = try values.decodeIfPresent(String.self, forKey: .starredUrl) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryOwner.swift b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryOwner.swift new file mode 100644 index 0000000..22f1aa7 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryOwner.swift @@ -0,0 +1,70 @@ +// +// RepositoriesOwner.swift +// +// Create by Serhii Londar on 2/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct RepositoryOwner : Codable { + public let avatarUrl : String? + public let eventsUrl : String? + public let followersUrl : String? + public let followingUrl : String? + public let gistsUrl : String? + public let gravatarId : String? + public let htmlUrl : String? + public let id : Int? + public let login : String? + public let organizationsUrl : String? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let siteAdmin : Bool? + public let starredUrl : String? + public let subscriptionsUrl : String? + public let type : String? + public let url : String? + + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case eventsUrl = "events_url" + case followersUrl = "followers_url" + case followingUrl = "following_url" + case gistsUrl = "gists_url" + case gravatarId = "gravatar_id" + case htmlUrl = "html_url" + case id = "id" + case login = "login" + case organizationsUrl = "organizations_url" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case siteAdmin = "site_admin" + case starredUrl = "starred_url" + case subscriptionsUrl = "subscriptions_url" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + followingUrl = try values.decodeIfPresent(String.self, forKey: .followingUrl) + gistsUrl = try values.decodeIfPresent(String.self, forKey: .gistsUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + login = try values.decodeIfPresent(String.self, forKey: .login) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + siteAdmin = try values.decodeIfPresent(Bool.self, forKey: .siteAdmin) + starredUrl = try values.decodeIfPresent(String.self, forKey: .starredUrl) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryParent.swift b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryParent.swift new file mode 100644 index 0000000..c8b6c51 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryParent.swift @@ -0,0 +1,237 @@ +// +// RepositoryParent.swift +// +// Create by Serhii Londar on 21/1/2018 +// Copyright © 2018 Techmagic. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct RepositoryParent : Codable { + public let allowMergeCommit : Bool? + public let allowRebaseMerge : Bool? + public let allowSquashMerge : Bool? + public let archiveUrl : String? + public let archived : Bool? + public let assigneesUrl : String? + public let blobsUrl : String? + public let branchesUrl : String? + public let cloneUrl : String? + public let collaboratorsUrl : String? + public let commentsUrl : String? + public let commitsUrl : String? + public let compareUrl : String? + public let contentsUrl : String? + public let contributorsUrl : String? + public let createdAt : String? + public let defaultBranch : String? + public let deploymentsUrl : String? + public let descriptionField : String? + public let downloadsUrl : String? + public let eventsUrl : String? + public let fork : Bool? + public let forksCount : Int? + public let forksUrl : String? + public let fullName : String? + public let gitCommitsUrl : String? + public let gitRefsUrl : String? + public let gitTagsUrl : String? + public let gitUrl : String? + public let hasDownloads : Bool? + public let hasIssues : Bool? + public let hasPages : Bool? + public let hasWiki : Bool? + public let homepage : String? + public let hooksUrl : String? + public let htmlUrl : String? + public let id : Int? + public let issueCommentUrl : String? + public let issueEventsUrl : String? + public let issuesUrl : String? + public let keysUrl : String? + public let labelsUrl : String? + public let language : String? + public let languagesUrl : String? + public let mergesUrl : String? + public let milestonesUrl : String? + public let mirrorUrl : String? + public let name : String? + public let networkCount : Int? + public let notificationsUrl : String? + public let openIssuesCount : Int? + public let owner : RepositoryOrganization? + public let permissions : RepositoryPermission? + public let privateField : Bool? + public let pullsUrl : String? + public let pushedAt : String? + public let releasesUrl : String? + public let size : Int? + public let sshUrl : String? + public let stargazersCount : Int? + public let stargazersUrl : String? + public let statusesUrl : String? + public let subscribersCount : Int? + public let subscribersUrl : String? + public let subscriptionUrl : String? + public let svnUrl : String? + public let tagsUrl : String? + public let teamsUrl : String? + public let topics : [String]? + public let treesUrl : String? + public let updatedAt : String? + public let url : String? + public let watchersCount : Int? + + enum CodingKeys: String, CodingKey { + case allowMergeCommit = "allow_merge_commit" + case allowRebaseMerge = "allow_rebase_merge" + case allowSquashMerge = "allow_squash_merge" + case archiveUrl = "archive_url" + case archived = "archived" + case assigneesUrl = "assignees_url" + case blobsUrl = "blobs_url" + case branchesUrl = "branches_url" + case cloneUrl = "clone_url" + case collaboratorsUrl = "collaborators_url" + case commentsUrl = "comments_url" + case commitsUrl = "commits_url" + case compareUrl = "compare_url" + case contentsUrl = "contents_url" + case contributorsUrl = "contributors_url" + case createdAt = "created_at" + case defaultBranch = "default_branch" + case deploymentsUrl = "deployments_url" + case descriptionField = "description" + case downloadsUrl = "downloads_url" + case eventsUrl = "events_url" + case fork = "fork" + case forksCount = "forks_count" + case forksUrl = "forks_url" + case fullName = "full_name" + case gitCommitsUrl = "git_commits_url" + case gitRefsUrl = "git_refs_url" + case gitTagsUrl = "git_tags_url" + case gitUrl = "git_url" + case hasDownloads = "has_downloads" + case hasIssues = "has_issues" + case hasPages = "has_pages" + case hasWiki = "has_wiki" + case homepage = "homepage" + case hooksUrl = "hooks_url" + case htmlUrl = "html_url" + case id = "id" + case issueCommentUrl = "issue_comment_url" + case issueEventsUrl = "issue_events_url" + case issuesUrl = "issues_url" + case keysUrl = "keys_url" + case labelsUrl = "labels_url" + case language = "language" + case languagesUrl = "languages_url" + case mergesUrl = "merges_url" + case milestonesUrl = "milestones_url" + case mirrorUrl = "mirror_url" + case name = "name" + case networkCount = "network_count" + case notificationsUrl = "notifications_url" + case openIssuesCount = "open_issues_count" + case owner + case permissions + case privateField = "private" + case pullsUrl = "pulls_url" + case pushedAt = "pushed_at" + case releasesUrl = "releases_url" + case size = "size" + case sshUrl = "ssh_url" + case stargazersCount = "stargazers_count" + case stargazersUrl = "stargazers_url" + case statusesUrl = "statuses_url" + case subscribersCount = "subscribers_count" + case subscribersUrl = "subscribers_url" + case subscriptionUrl = "subscription_url" + case svnUrl = "svn_url" + case tagsUrl = "tags_url" + case teamsUrl = "teams_url" + case topics = "topics" + case treesUrl = "trees_url" + case updatedAt = "updated_at" + case url = "url" + case watchersCount = "watchers_count" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + allowMergeCommit = try values.decodeIfPresent(Bool.self, forKey: .allowMergeCommit) + allowRebaseMerge = try values.decodeIfPresent(Bool.self, forKey: .allowRebaseMerge) + allowSquashMerge = try values.decodeIfPresent(Bool.self, forKey: .allowSquashMerge) + archiveUrl = try values.decodeIfPresent(String.self, forKey: .archiveUrl) + archived = try values.decodeIfPresent(Bool.self, forKey: .archived) + assigneesUrl = try values.decodeIfPresent(String.self, forKey: .assigneesUrl) + blobsUrl = try values.decodeIfPresent(String.self, forKey: .blobsUrl) + branchesUrl = try values.decodeIfPresent(String.self, forKey: .branchesUrl) + cloneUrl = try values.decodeIfPresent(String.self, forKey: .cloneUrl) + collaboratorsUrl = try values.decodeIfPresent(String.self, forKey: .collaboratorsUrl) + commentsUrl = try values.decodeIfPresent(String.self, forKey: .commentsUrl) + commitsUrl = try values.decodeIfPresent(String.self, forKey: .commitsUrl) + compareUrl = try values.decodeIfPresent(String.self, forKey: .compareUrl) + contentsUrl = try values.decodeIfPresent(String.self, forKey: .contentsUrl) + contributorsUrl = try values.decodeIfPresent(String.self, forKey: .contributorsUrl) + createdAt = try values.decodeIfPresent(String.self, forKey: .createdAt) + defaultBranch = try values.decodeIfPresent(String.self, forKey: .defaultBranch) + deploymentsUrl = try values.decodeIfPresent(String.self, forKey: .deploymentsUrl) + descriptionField = try values.decodeIfPresent(String.self, forKey: .descriptionField) + downloadsUrl = try values.decodeIfPresent(String.self, forKey: .downloadsUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + fork = try values.decodeIfPresent(Bool.self, forKey: .fork) + forksCount = try values.decodeIfPresent(Int.self, forKey: .forksCount) + forksUrl = try values.decodeIfPresent(String.self, forKey: .forksUrl) + fullName = try values.decodeIfPresent(String.self, forKey: .fullName) + gitCommitsUrl = try values.decodeIfPresent(String.self, forKey: .gitCommitsUrl) + gitRefsUrl = try values.decodeIfPresent(String.self, forKey: .gitRefsUrl) + gitTagsUrl = try values.decodeIfPresent(String.self, forKey: .gitTagsUrl) + gitUrl = try values.decodeIfPresent(String.self, forKey: .gitUrl) + hasDownloads = try values.decodeIfPresent(Bool.self, forKey: .hasDownloads) + hasIssues = try values.decodeIfPresent(Bool.self, forKey: .hasIssues) + hasPages = try values.decodeIfPresent(Bool.self, forKey: .hasPages) + hasWiki = try values.decodeIfPresent(Bool.self, forKey: .hasWiki) + homepage = try values.decodeIfPresent(String.self, forKey: .homepage) + hooksUrl = try values.decodeIfPresent(String.self, forKey: .hooksUrl) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + issueCommentUrl = try values.decodeIfPresent(String.self, forKey: .issueCommentUrl) + issueEventsUrl = try values.decodeIfPresent(String.self, forKey: .issueEventsUrl) + issuesUrl = try values.decodeIfPresent(String.self, forKey: .issuesUrl) + keysUrl = try values.decodeIfPresent(String.self, forKey: .keysUrl) + labelsUrl = try values.decodeIfPresent(String.self, forKey: .labelsUrl) + language = try values.decodeIfPresent(String.self, forKey: .language) + languagesUrl = try values.decodeIfPresent(String.self, forKey: .languagesUrl) + mergesUrl = try values.decodeIfPresent(String.self, forKey: .mergesUrl) + milestonesUrl = try values.decodeIfPresent(String.self, forKey: .milestonesUrl) + mirrorUrl = try values.decodeIfPresent(String.self, forKey: .mirrorUrl) + name = try values.decodeIfPresent(String.self, forKey: .name) + networkCount = try values.decodeIfPresent(Int.self, forKey: .networkCount) + notificationsUrl = try values.decodeIfPresent(String.self, forKey: .notificationsUrl) + openIssuesCount = try values.decodeIfPresent(Int.self, forKey: .openIssuesCount) + owner = try values.decodeIfPresent(RepositoryOrganization.self, forKey: .owner) + permissions = try values.decodeIfPresent(RepositoryPermission.self, forKey: .permissions) + privateField = try values.decodeIfPresent(Bool.self, forKey: .privateField) + pullsUrl = try values.decodeIfPresent(String.self, forKey: .pullsUrl) + pushedAt = try values.decodeIfPresent(String.self, forKey: .pushedAt) + releasesUrl = try values.decodeIfPresent(String.self, forKey: .releasesUrl) + size = try values.decodeIfPresent(Int.self, forKey: .size) + sshUrl = try values.decodeIfPresent(String.self, forKey: .sshUrl) + stargazersCount = try values.decodeIfPresent(Int.self, forKey: .stargazersCount) + stargazersUrl = try values.decodeIfPresent(String.self, forKey: .stargazersUrl) + statusesUrl = try values.decodeIfPresent(String.self, forKey: .statusesUrl) + subscribersCount = try values.decodeIfPresent(Int.self, forKey: .subscribersCount) + subscribersUrl = try values.decodeIfPresent(String.self, forKey: .subscribersUrl) + subscriptionUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionUrl) + svnUrl = try values.decodeIfPresent(String.self, forKey: .svnUrl) + tagsUrl = try values.decodeIfPresent(String.self, forKey: .tagsUrl) + teamsUrl = try values.decodeIfPresent(String.self, forKey: .teamsUrl) + topics = try values.decodeIfPresent([String].self, forKey: .topics) + treesUrl = try values.decodeIfPresent(String.self, forKey: .treesUrl) + updatedAt = try values.decodeIfPresent(String.self, forKey: .updatedAt) + url = try values.decodeIfPresent(String.self, forKey: .url) + watchersCount = try values.decodeIfPresent(Int.self, forKey: .watchersCount) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryPermission.swift b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryPermission.swift new file mode 100644 index 0000000..b701bcd --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryPermission.swift @@ -0,0 +1,27 @@ +// +// RepositoryPermission.swift +// +// Create by Serhii Londar on 21/1/2018 +// Copyright © 2018 Techmagic. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct RepositoryPermission : Codable { + public let admin : Bool? + public let pull : Bool? + public let push : Bool? + + enum CodingKeys: String, CodingKey { + case admin = "admin" + case pull = "pull" + case push = "push" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + admin = try values.decodeIfPresent(Bool.self, forKey: .admin) + pull = try values.decodeIfPresent(Bool.self, forKey: .pull) + push = try values.decodeIfPresent(Bool.self, forKey: .push) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryReponse.swift b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryReponse.swift new file mode 100644 index 0000000..c211b9e --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryReponse.swift @@ -0,0 +1,250 @@ +// +// RepositoryReponse.swift +// +// Create by Serhii Londar on 21/1/2018 +// Copyright © 2018 Techmagic. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct RepositoryResponse : Codable { + public let allowMergeCommit : Bool? + public let allowRebaseMerge : Bool? + public let allowSquashMerge : Bool? + public let archiveUrl : String? + public let archived : Bool? + public let assigneesUrl : String? + public let blobsUrl : String? + public let branchesUrl : String? + public let cloneUrl : String? + public let collaboratorsUrl : String? + public let commentsUrl : String? + public let commitsUrl : String? + public let compareUrl : String? + public let contentsUrl : String? + public let contributorsUrl : String? + public let createdAt : String? + public let defaultBranch : String? + public let deploymentsUrl : String? + public let descriptionField : String? + public let downloadsUrl : String? + public let eventsUrl : String? + public let fork : Bool? + public let forksCount : Int? + public let forksUrl : String? + public let fullName : String? + public let gitCommitsUrl : String? + public let gitRefsUrl : String? + public let gitTagsUrl : String? + public let gitUrl : String? + public let hasDownloads : Bool? + public let hasIssues : Bool? + public let hasPages : Bool? + public let hasWiki : Bool? + public let homepage : String? + public let hooksUrl : String? + public let htmlUrl : String? + public let id : Int? + public let issueCommentUrl : String? + public let issueEventsUrl : String? + public let issuesUrl : String? + public let keysUrl : String? + public let labelsUrl : String? + public let language : String? + public let languagesUrl : String? + public let license : RepositoryLicense? + public let mergesUrl : String? + public let milestonesUrl : String? + public let mirrorUrl : String? + public let name : String? + public let networkCount : Int? + public let notificationsUrl : String? + public let openIssuesCount : Int? + public let organization : RepositoryOrganization? + public let owner : RepositoryOrganization? + public let parent : RepositoryParent? + public let permissions : RepositoryPermission? + public let privateField : Bool? + public let pullsUrl : String? + public let pushedAt : String? + public let releasesUrl : String? + public let size : Int? + public let source : RepositoryParent? + public let sshUrl : String? + public let stargazersCount : Int? + public let stargazersUrl : String? + public let statusesUrl : String? + public let subscribersCount : Int? + public let subscribersUrl : String? + public let subscriptionUrl : String? + public let svnUrl : String? + public let tagsUrl : String? + public let teamsUrl : String? + public let topics : [String]? + public let treesUrl : String? + public let updatedAt : String? + public let url : String? + public let watchersCount : Int? + + + enum CodingKeys: String, CodingKey { + case allowMergeCommit = "allow_merge_commit" + case allowRebaseMerge = "allow_rebase_merge" + case allowSquashMerge = "allow_squash_merge" + case archiveUrl = "archive_url" + case archived = "archived" + case assigneesUrl = "assignees_url" + case blobsUrl = "blobs_url" + case branchesUrl = "branches_url" + case cloneUrl = "clone_url" + case collaboratorsUrl = "collaborators_url" + case commentsUrl = "comments_url" + case commitsUrl = "commits_url" + case compareUrl = "compare_url" + case contentsUrl = "contents_url" + case contributorsUrl = "contributors_url" + case createdAt = "created_at" + case defaultBranch = "default_branch" + case deploymentsUrl = "deployments_url" + case descriptionField = "description" + case downloadsUrl = "downloads_url" + case eventsUrl = "events_url" + case fork = "fork" + case forksCount = "forks_count" + case forksUrl = "forks_url" + case fullName = "full_name" + case gitCommitsUrl = "git_commits_url" + case gitRefsUrl = "git_refs_url" + case gitTagsUrl = "git_tags_url" + case gitUrl = "git_url" + case hasDownloads = "has_downloads" + case hasIssues = "has_issues" + case hasPages = "has_pages" + case hasWiki = "has_wiki" + case homepage = "homepage" + case hooksUrl = "hooks_url" + case htmlUrl = "html_url" + case id = "id" + case issueCommentUrl = "issue_comment_url" + case issueEventsUrl = "issue_events_url" + case issuesUrl = "issues_url" + case keysUrl = "keys_url" + case labelsUrl = "labels_url" + case language = "language" + case languagesUrl = "languages_url" + case license + case mergesUrl = "merges_url" + case milestonesUrl = "milestones_url" + case mirrorUrl = "mirror_url" + case name = "name" + case networkCount = "network_count" + case notificationsUrl = "notifications_url" + case openIssuesCount = "open_issues_count" + case organization + case owner + case parent + case permissions + case privateField = "private" + case pullsUrl = "pulls_url" + case pushedAt = "pushed_at" + case releasesUrl = "releases_url" + case size = "size" + case source + case sshUrl = "ssh_url" + case stargazersCount = "stargazers_count" + case stargazersUrl = "stargazers_url" + case statusesUrl = "statuses_url" + case subscribersCount = "subscribers_count" + case subscribersUrl = "subscribers_url" + case subscriptionUrl = "subscription_url" + case svnUrl = "svn_url" + case tagsUrl = "tags_url" + case teamsUrl = "teams_url" + case topics = "topics" + case treesUrl = "trees_url" + case updatedAt = "updated_at" + case url = "url" + case watchersCount = "watchers_count" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + allowMergeCommit = try values.decodeIfPresent(Bool.self, forKey: .allowMergeCommit) + allowRebaseMerge = try values.decodeIfPresent(Bool.self, forKey: .allowRebaseMerge) + allowSquashMerge = try values.decodeIfPresent(Bool.self, forKey: .allowSquashMerge) + archiveUrl = try values.decodeIfPresent(String.self, forKey: .archiveUrl) + archived = try values.decodeIfPresent(Bool.self, forKey: .archived) + assigneesUrl = try values.decodeIfPresent(String.self, forKey: .assigneesUrl) + blobsUrl = try values.decodeIfPresent(String.self, forKey: .blobsUrl) + branchesUrl = try values.decodeIfPresent(String.self, forKey: .branchesUrl) + cloneUrl = try values.decodeIfPresent(String.self, forKey: .cloneUrl) + collaboratorsUrl = try values.decodeIfPresent(String.self, forKey: .collaboratorsUrl) + commentsUrl = try values.decodeIfPresent(String.self, forKey: .commentsUrl) + commitsUrl = try values.decodeIfPresent(String.self, forKey: .commitsUrl) + compareUrl = try values.decodeIfPresent(String.self, forKey: .compareUrl) + contentsUrl = try values.decodeIfPresent(String.self, forKey: .contentsUrl) + contributorsUrl = try values.decodeIfPresent(String.self, forKey: .contributorsUrl) + createdAt = try values.decodeIfPresent(String.self, forKey: .createdAt) + defaultBranch = try values.decodeIfPresent(String.self, forKey: .defaultBranch) + deploymentsUrl = try values.decodeIfPresent(String.self, forKey: .deploymentsUrl) + descriptionField = try values.decodeIfPresent(String.self, forKey: .descriptionField) + downloadsUrl = try values.decodeIfPresent(String.self, forKey: .downloadsUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + fork = try values.decodeIfPresent(Bool.self, forKey: .fork) + forksCount = try values.decodeIfPresent(Int.self, forKey: .forksCount) + forksUrl = try values.decodeIfPresent(String.self, forKey: .forksUrl) + fullName = try values.decodeIfPresent(String.self, forKey: .fullName) + gitCommitsUrl = try values.decodeIfPresent(String.self, forKey: .gitCommitsUrl) + gitRefsUrl = try values.decodeIfPresent(String.self, forKey: .gitRefsUrl) + gitTagsUrl = try values.decodeIfPresent(String.self, forKey: .gitTagsUrl) + gitUrl = try values.decodeIfPresent(String.self, forKey: .gitUrl) + hasDownloads = try values.decodeIfPresent(Bool.self, forKey: .hasDownloads) + hasIssues = try values.decodeIfPresent(Bool.self, forKey: .hasIssues) + hasPages = try values.decodeIfPresent(Bool.self, forKey: .hasPages) + hasWiki = try values.decodeIfPresent(Bool.self, forKey: .hasWiki) + homepage = try values.decodeIfPresent(String.self, forKey: .homepage) + hooksUrl = try values.decodeIfPresent(String.self, forKey: .hooksUrl) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + issueCommentUrl = try values.decodeIfPresent(String.self, forKey: .issueCommentUrl) + issueEventsUrl = try values.decodeIfPresent(String.self, forKey: .issueEventsUrl) + issuesUrl = try values.decodeIfPresent(String.self, forKey: .issuesUrl) + keysUrl = try values.decodeIfPresent(String.self, forKey: .keysUrl) + labelsUrl = try values.decodeIfPresent(String.self, forKey: .labelsUrl) + language = try values.decodeIfPresent(String.self, forKey: .language) + languagesUrl = try values.decodeIfPresent(String.self, forKey: .languagesUrl) + license = try values.decodeIfPresent(RepositoryLicense.self, forKey: .license) + mergesUrl = try values.decodeIfPresent(String.self, forKey: .mergesUrl) + milestonesUrl = try values.decodeIfPresent(String.self, forKey: .milestonesUrl) + mirrorUrl = try values.decodeIfPresent(String.self, forKey: .mirrorUrl) + name = try values.decodeIfPresent(String.self, forKey: .name) + networkCount = try values.decodeIfPresent(Int.self, forKey: .networkCount) + notificationsUrl = try values.decodeIfPresent(String.self, forKey: .notificationsUrl) + openIssuesCount = try values.decodeIfPresent(Int.self, forKey: .openIssuesCount) + organization = try values.decodeIfPresent(RepositoryOrganization.self, forKey: .organization) + owner = try values.decodeIfPresent(RepositoryOrganization.self, forKey: .owner) + parent = try values.decodeIfPresent(RepositoryParent.self, forKey: .parent) + permissions = try values.decodeIfPresent(RepositoryPermission.self, forKey: .permissions) + privateField = try values.decodeIfPresent(Bool.self, forKey: .privateField) + pullsUrl = try values.decodeIfPresent(String.self, forKey: .pullsUrl) + pushedAt = try values.decodeIfPresent(String.self, forKey: .pushedAt) + releasesUrl = try values.decodeIfPresent(String.self, forKey: .releasesUrl) + size = try values.decodeIfPresent(Int.self, forKey: .size) + source = try values.decodeIfPresent(RepositoryParent.self, forKey: .source) + sshUrl = try values.decodeIfPresent(String.self, forKey: .sshUrl) + stargazersCount = try values.decodeIfPresent(Int.self, forKey: .stargazersCount) + stargazersUrl = try values.decodeIfPresent(String.self, forKey: .stargazersUrl) + statusesUrl = try values.decodeIfPresent(String.self, forKey: .statusesUrl) + subscribersCount = try values.decodeIfPresent(Int.self, forKey: .subscribersCount) + subscribersUrl = try values.decodeIfPresent(String.self, forKey: .subscribersUrl) + subscriptionUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionUrl) + svnUrl = try values.decodeIfPresent(String.self, forKey: .svnUrl) + tagsUrl = try values.decodeIfPresent(String.self, forKey: .tagsUrl) + teamsUrl = try values.decodeIfPresent(String.self, forKey: .teamsUrl) + topics = try values.decodeIfPresent([String].self, forKey: .topics) + treesUrl = try values.decodeIfPresent(String.self, forKey: .treesUrl) + updatedAt = try values.decodeIfPresent(String.self, forKey: .updatedAt) + url = try values.decodeIfPresent(String.self, forKey: .url) + watchersCount = try values.decodeIfPresent(Int.self, forKey: .watchersCount) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/RepositoryContents/RepositoryContentsLink.swift b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/RepositoryContents/RepositoryContentsLink.swift new file mode 100644 index 0000000..b1579f2 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/RepositoryContents/RepositoryContentsLink.swift @@ -0,0 +1,27 @@ +// +// RepositoryContentsLink.swift +// +// Create by Serhii Londar on 21/1/2018 +// Copyright © 2018 Techmagic. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct RepositoryContentsLink : Codable { + public let git : String? + public let html : String? + public let selfValue : String? + + enum CodingKeys: String, CodingKey { + case git = "git" + case html = "html" + case selfValue = "self" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + git = try values.decodeIfPresent(String.self, forKey: CodingKeys.git) + html = try values.decodeIfPresent(String.self, forKey: CodingKeys.html) + selfValue = try values.decodeIfPresent(String.self, forKey: CodingKeys.selfValue) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/RepositoryContents/RepositoryContentsReponse.swift b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/RepositoryContents/RepositoryContentsReponse.swift new file mode 100644 index 0000000..012f977 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/Models/RepositoryContents/RepositoryContentsReponse.swift @@ -0,0 +1,55 @@ +// +// RepositoryContentsReponse.swift +// +// Create by Serhii Londar on 21/1/2018 +// Copyright © 2018 Techmagic. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct RepositoryContentsReponse : Codable { + public let links : RepositoryContentsLink? + public let content : String? + public let downloadUrl : String? + public let encoding : String? + public let gitUrl : String? + public let htmlUrl : String? + public let name : String? + public let path : String? + public let sha : String? + public let size : Int? + public let type : String? + public let url : String? + + + enum CodingKeys: String, CodingKey { + case links + case content = "content" + case downloadUrl = "download_url" + case encoding = "encoding" + case gitUrl = "git_url" + case htmlUrl = "html_url" + case name = "name" + case path = "path" + case sha = "sha" + case size = "size" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + links = try values.decodeIfPresent(RepositoryContentsLink.self, forKey: .links) + content = try values.decodeIfPresent(String.self, forKey: .content) + downloadUrl = try values.decodeIfPresent(String.self, forKey: .downloadUrl) + encoding = try values.decodeIfPresent(String.self, forKey: .encoding) + gitUrl = try values.decodeIfPresent(String.self, forKey: .gitUrl) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + name = try values.decodeIfPresent(String.self, forKey: .name) + path = try values.decodeIfPresent(String.self, forKey: .path) + sha = try values.decodeIfPresent(String.self, forKey: .sha) + size = try values.decodeIfPresent(Int.self, forKey: .size) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/RepositoriesAPI.swift b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/RepositoriesAPI.swift new file mode 100644 index 0000000..8536c74 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/RepositoriesAPI.swift @@ -0,0 +1,120 @@ +// +// RepositoriesAPI.swift +// GithubAPI +// +// Created by Serhii Londar on 1/2/18. +// + +import Foundation +import BaseAPI + +public enum RepositoriesVisibility: String { + case all + case `public` + case `private` +} + +public enum RepositoriesAffiliation: String { + case owner + case collaborator + case organization_member +} + +public enum RepositoriesType: String { + case all + case owner + case `public` + case `private` + case member +} + + +public enum OrganizationRepositoriesType: String { + case all + case `public` + case `private` + case forks + case sources + case member +} + +public enum RepositoriesSort: String { + case created + case updated + case pushed + case full_name +} + +public enum RepositoriesDirection: String { + case asc + case desc +} + +public class RepositoriesAPI: GithubAPI { + public func repositories(visibility: RepositoriesVisibility? = nil, affiliation: [RepositoriesAffiliation]? = nil, type: RepositoriesType? = nil, sort: RepositoriesSort? = nil, direction: RepositoriesDirection? = nil, completion: @escaping([RepositoryResponse]?, Error?) -> Void) { + let path = "/user/repos" + var parameters = [String : String]() + if let visibility = visibility { + parameters["visibility"] = visibility.rawValue + } + if let affiliation = affiliation { + if affiliation.count > 0 { + var affiliationValue = "" + for iterator in affiliation { + affiliationValue += iterator.rawValue + "," + } + affiliationValue.removeLast() + parameters["affiliation"] = affiliationValue + } + } + + if let type = type { + parameters["type"] = type.rawValue + } + if let sort = sort { + parameters["sort"] = sort.rawValue + } + if let direction = direction { + parameters["direction"] = direction.rawValue + } + self.get(path: path, parameters: parameters, completion: completion) + } + + + public func repositories(user: String, type: RepositoriesType? = nil, sort: RepositoriesSort? = nil, direction: RepositoriesDirection? = nil, completion: @escaping([RepositoryResponse]?, Error?) -> Void) { + let path = "/users/\(user)/repos" + var parameters = [String : String]() + if let type = type { + parameters["type"] = type.rawValue + } + if let sort = sort { + parameters["sort"] = sort.rawValue + } + if let direction = direction { + parameters["direction"] = direction.rawValue + } + + self.get(path: path, parameters: parameters, completion: completion) + } + + public func repositories(organization: String, type: OrganizationRepositoriesType? = nil, completion: @escaping([RepositoryResponse]?, Error?) -> Void) { + let path = "/orgs/\(organization)/repos" + var parameters = [String : String]() + if let type = type { + parameters["type"] = type.rawValue + } + self.get(path: path, parameters: parameters, completion: completion) + } + + public func listRepositories(since: String, completion: @escaping([RepositoryResponse]?, Error?) -> Void) { + let path = "/repositories" + var parameters = [String : String]() + parameters["since"] = since + self.get(path: path, parameters: parameters, completion: completion) + } + + public func get(owner: String, repo: String, completion: @escaping(RepositoryResponse?, Error?) -> Void) { + let path = "/repos/\(owner)/\(repo)" + self.get(path: path, completion: completion) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/RepositoriesContentsAPI.swift b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/RepositoriesContentsAPI.swift new file mode 100644 index 0000000..c229406 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/RepositoriesAPI/RepositoriesContentsAPI.swift @@ -0,0 +1,31 @@ +// +// RepositoriesContentsAPI.swift +// GithubAPI +// +// Created by Serhii Londar on 1/21/18. +// + +import Foundation +import BaseAPI + +public class RepositoriesContentsAPI: GithubAPI { + public func getReadme(owner: String, repo: String, ref: String? = nil, completion: @escaping(RepositoryContentsReponse?, Error?) -> Void) { + let path = "/repos/\(owner)/\(repo)/readme" + var parameters: [String : String]? = nil + if let ref = ref { + parameters = [String : String]() + parameters!["ref"] = ref + } + self.get(path: path, parameters: parameters, completion: completion) + } + + public func getReadmeSync(owner: String, repo: String, ref: String? = nil) -> (response: RepositoryContentsReponse?, error: Error?) { + let path = "/repos/\(owner)/\(repo)/readme" + var parameters: [String : String]? = nil + if let ref = ref { + parameters = [String : String]() + parameters!["ref"] = ref + } + return self.getSync(path: path, parameters: parameters, headers: nil) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeItem.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeItem.swift new file mode 100644 index 0000000..0dcbafb --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeItem.swift @@ -0,0 +1,42 @@ +// +// SearchCodeItem.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchCodeItem : Codable { + public let gitUrl : String? + public let htmlUrl : String? + public let name : String? + public let path : String? + public let repository : SearchCodeRepository? + public let score : Float? + public let sha : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case gitUrl = "git_url" + case htmlUrl = "html_url" + case name = "name" + case path = "path" + case repository + case score = "score" + case sha = "sha" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + gitUrl = try values.decodeIfPresent(String.self, forKey: .gitUrl) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + name = try values.decodeIfPresent(String.self, forKey: .name) + path = try values.decodeIfPresent(String.self, forKey: .path) + repository = try values.decodeIfPresent(SearchCodeRepository.self, forKey: .repository) + score = try values.decodeIfPresent(Float.self, forKey: .score) + sha = try values.decodeIfPresent(String.self, forKey: .sha) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeOwner.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeOwner.swift new file mode 100644 index 0000000..47e07d0 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeOwner.swift @@ -0,0 +1,69 @@ +// +// SearchCodeOwner.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchCodeOwner : Codable { + public let avatarUrl : String? + public let eventsUrl : String? + public let followersUrl : String? + public let followingUrl : String? + public let gistsUrl : String? + public let gravatarId : String? + public let htmlUrl : String? + public let id : Int? + public let login : String? + public let organizationsUrl : String? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let siteAdmin : Bool? + public let starredUrl : String? + public let subscriptionsUrl : String? + public let type : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case eventsUrl = "events_url" + case followersUrl = "followers_url" + case followingUrl = "following_url" + case gistsUrl = "gists_url" + case gravatarId = "gravatar_id" + case htmlUrl = "html_url" + case id = "id" + case login = "login" + case organizationsUrl = "organizations_url" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case siteAdmin = "site_admin" + case starredUrl = "starred_url" + case subscriptionsUrl = "subscriptions_url" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + followingUrl = try values.decodeIfPresent(String.self, forKey: .followingUrl) + gistsUrl = try values.decodeIfPresent(String.self, forKey: .gistsUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + login = try values.decodeIfPresent(String.self, forKey: .login) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + siteAdmin = try values.decodeIfPresent(Bool.self, forKey: .siteAdmin) + starredUrl = try values.decodeIfPresent(String.self, forKey: .starredUrl) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeRepository.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeRepository.swift new file mode 100644 index 0000000..3004fae --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeRepository.swift @@ -0,0 +1,147 @@ +// +// SearchCodeRepository.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchCodeRepository : Codable { + public let archiveUrl : String? + public let assigneesUrl : String? + public let blobsUrl : String? + public let branchesUrl : String? + public let collaboratorsUrl : String? + public let commentsUrl : String? + public let commitsUrl : String? + public let compareUrl : String? + public let contentsUrl : String? + public let contributorsUrl : String? + public let descriptionField : String? + public let downloadsUrl : String? + public let eventsUrl : String? + public let fork : Bool? + public let forksUrl : String? + public let fullName : String? + public let gitCommitsUrl : String? + public let gitRefsUrl : String? + public let gitTagsUrl : String? + public let hooksUrl : String? + public let htmlUrl : String? + public let id : Int? + public let issueCommentUrl : String? + public let issueEventsUrl : String? + public let issuesUrl : String? + public let keysUrl : String? + public let labelsUrl : String? + public let languagesUrl : String? + public let mergesUrl : String? + public let milestonesUrl : String? + public let name : String? + public let notificationsUrl : String? + public let owner : SearchCodeOwner? + public let privateField : Bool? + public let pullsUrl : String? + public let stargazersUrl : String? + public let statusesUrl : String? + public let subscribersUrl : String? + public let subscriptionUrl : String? + public let tagsUrl : String? + public let teamsUrl : String? + public let treesUrl : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case archiveUrl = "archive_url" + case assigneesUrl = "assignees_url" + case blobsUrl = "blobs_url" + case branchesUrl = "branches_url" + case collaboratorsUrl = "collaborators_url" + case commentsUrl = "comments_url" + case commitsUrl = "commits_url" + case compareUrl = "compare_url" + case contentsUrl = "contents_url" + case contributorsUrl = "contributors_url" + case descriptionField = "description" + case downloadsUrl = "downloads_url" + case eventsUrl = "events_url" + case fork = "fork" + case forksUrl = "forks_url" + case fullName = "full_name" + case gitCommitsUrl = "git_commits_url" + case gitRefsUrl = "git_refs_url" + case gitTagsUrl = "git_tags_url" + case hooksUrl = "hooks_url" + case htmlUrl = "html_url" + case id = "id" + case issueCommentUrl = "issue_comment_url" + case issueEventsUrl = "issue_events_url" + case issuesUrl = "issues_url" + case keysUrl = "keys_url" + case labelsUrl = "labels_url" + case languagesUrl = "languages_url" + case mergesUrl = "merges_url" + case milestonesUrl = "milestones_url" + case name = "name" + case notificationsUrl = "notifications_url" + case owner + case privateField = "private" + case pullsUrl = "pulls_url" + case stargazersUrl = "stargazers_url" + case statusesUrl = "statuses_url" + case subscribersUrl = "subscribers_url" + case subscriptionUrl = "subscription_url" + case tagsUrl = "tags_url" + case teamsUrl = "teams_url" + case treesUrl = "trees_url" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + archiveUrl = try values.decodeIfPresent(String.self, forKey: .archiveUrl) + assigneesUrl = try values.decodeIfPresent(String.self, forKey: .assigneesUrl) + blobsUrl = try values.decodeIfPresent(String.self, forKey: .blobsUrl) + branchesUrl = try values.decodeIfPresent(String.self, forKey: .branchesUrl) + collaboratorsUrl = try values.decodeIfPresent(String.self, forKey: .collaboratorsUrl) + commentsUrl = try values.decodeIfPresent(String.self, forKey: .commentsUrl) + commitsUrl = try values.decodeIfPresent(String.self, forKey: .commitsUrl) + compareUrl = try values.decodeIfPresent(String.self, forKey: .compareUrl) + contentsUrl = try values.decodeIfPresent(String.self, forKey: .contentsUrl) + contributorsUrl = try values.decodeIfPresent(String.self, forKey: .contributorsUrl) + descriptionField = try values.decodeIfPresent(String.self, forKey: .descriptionField) + downloadsUrl = try values.decodeIfPresent(String.self, forKey: .downloadsUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + fork = try values.decodeIfPresent(Bool.self, forKey: .fork) + forksUrl = try values.decodeIfPresent(String.self, forKey: .forksUrl) + fullName = try values.decodeIfPresent(String.self, forKey: .fullName) + gitCommitsUrl = try values.decodeIfPresent(String.self, forKey: .gitCommitsUrl) + gitRefsUrl = try values.decodeIfPresent(String.self, forKey: .gitRefsUrl) + gitTagsUrl = try values.decodeIfPresent(String.self, forKey: .gitTagsUrl) + hooksUrl = try values.decodeIfPresent(String.self, forKey: .hooksUrl) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + issueCommentUrl = try values.decodeIfPresent(String.self, forKey: .issueCommentUrl) + issueEventsUrl = try values.decodeIfPresent(String.self, forKey: .issueEventsUrl) + issuesUrl = try values.decodeIfPresent(String.self, forKey: .issuesUrl) + keysUrl = try values.decodeIfPresent(String.self, forKey: .keysUrl) + labelsUrl = try values.decodeIfPresent(String.self, forKey: .labelsUrl) + languagesUrl = try values.decodeIfPresent(String.self, forKey: .languagesUrl) + mergesUrl = try values.decodeIfPresent(String.self, forKey: .mergesUrl) + milestonesUrl = try values.decodeIfPresent(String.self, forKey: .milestonesUrl) + name = try values.decodeIfPresent(String.self, forKey: .name) + notificationsUrl = try values.decodeIfPresent(String.self, forKey: .notificationsUrl) + owner = try values.decodeIfPresent(SearchCodeOwner.self, forKey: .owner) + privateField = try values.decodeIfPresent(Bool.self, forKey: .privateField) + pullsUrl = try values.decodeIfPresent(String.self, forKey: .pullsUrl) + stargazersUrl = try values.decodeIfPresent(String.self, forKey: .stargazersUrl) + statusesUrl = try values.decodeIfPresent(String.self, forKey: .statusesUrl) + subscribersUrl = try values.decodeIfPresent(String.self, forKey: .subscribersUrl) + subscriptionUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionUrl) + tagsUrl = try values.decodeIfPresent(String.self, forKey: .tagsUrl) + teamsUrl = try values.decodeIfPresent(String.self, forKey: .teamsUrl) + treesUrl = try values.decodeIfPresent(String.self, forKey: .treesUrl) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeResponse.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeResponse.swift new file mode 100644 index 0000000..ca802f6 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeResponse.swift @@ -0,0 +1,27 @@ +// +// SearchCodeResponse.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchCodeResponse : Codable { + public let incompleteResults : Bool? + public let items : [SearchCodeItem]? + public let totalCount : Int? + + enum CodingKeys: String, CodingKey { + case incompleteResults = "incomplete_results" + case items = "items" + case totalCount = "total_count" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + incompleteResults = try values.decodeIfPresent(Bool.self, forKey: .incompleteResults) + items = try values.decodeIfPresent([SearchCodeItem].self, forKey: .items) + totalCount = try values.decodeIfPresent(Int.self, forKey: .totalCount) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsAuthor.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsAuthor.swift new file mode 100644 index 0000000..83456a5 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsAuthor.swift @@ -0,0 +1,79 @@ +// +// SearchCommitsAuthor.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchCommitsAuthor : Codable { + public let avatarUrl : String? + public let eventsUrl : String? + public let followersUrl : String? + public let followingUrl : String? + public let gistsUrl : String? + public let gravatarId : String? + public let htmlUrl : String? + public let id : Int? + public let login : String? + public let organizationsUrl : String? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let siteAdmin : Bool? + public let starredUrl : String? + public let subscriptionsUrl : String? + public let type : String? + public let url : String? + public let date : String? + public let email : String? + public let name : String? + + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case eventsUrl = "events_url" + case followersUrl = "followers_url" + case followingUrl = "following_url" + case gistsUrl = "gists_url" + case gravatarId = "gravatar_id" + case htmlUrl = "html_url" + case id = "id" + case login = "login" + case organizationsUrl = "organizations_url" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case siteAdmin = "site_admin" + case starredUrl = "starred_url" + case subscriptionsUrl = "subscriptions_url" + case type = "type" + case url = "url" + case date = "date" + case email = "email" + case name = "name" + } + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + followingUrl = try values.decodeIfPresent(String.self, forKey: .followingUrl) + gistsUrl = try values.decodeIfPresent(String.self, forKey: .gistsUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + login = try values.decodeIfPresent(String.self, forKey: .login) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + siteAdmin = try values.decodeIfPresent(Bool.self, forKey: .siteAdmin) + starredUrl = try values.decodeIfPresent(String.self, forKey: .starredUrl) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + date = try values.decodeIfPresent(String.self, forKey: .date) + email = try values.decodeIfPresent(String.self, forKey: .email) + name = try values.decodeIfPresent(String.self, forKey: .name) + } + +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsCommit.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsCommit.swift new file mode 100644 index 0000000..83682c5 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsCommit.swift @@ -0,0 +1,36 @@ +// +// SearchCommitsCommit.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchCommitsCommit : Codable { + public let author : SearchCommitsAuthor? + public let commentCount : Int? + public let committer : SearchCommitsCommitter? + public let message : String? + public let tree : SearchCommitsTree? + public let url : String? + + enum CodingKeys: String, CodingKey { + case author + case commentCount = "comment_count" + case committer + case message = "message" + case tree + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + author = try values.decodeIfPresent(SearchCommitsAuthor.self, forKey: .author) + commentCount = try values.decodeIfPresent(Int.self, forKey: .commentCount) + committer = try values.decodeIfPresent(SearchCommitsCommitter.self, forKey: .committer) + message = try values.decodeIfPresent(String.self, forKey: .message) + tree = try values.decodeIfPresent(SearchCommitsTree.self, forKey: .tree) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsCommitter.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsCommitter.swift new file mode 100644 index 0000000..5bf8fbd --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsCommitter.swift @@ -0,0 +1,79 @@ +// +// SearchCommitsCommitter.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchCommitsCommitter : Codable { + public let date : String? + public let email : String? + public let name : String? + public let avatarUrl : String? + public let eventsUrl : String? + public let followersUrl : String? + public let followingUrl : String? + public let gistsUrl : String? + public let gravatarId : String? + public let htmlUrl : String? + public let id : Int? + public let login : String? + public let organizationsUrl : String? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let siteAdmin : Bool? + public let starredUrl : String? + public let subscriptionsUrl : String? + public let type : String? + public let url : String? + + + enum CodingKeys: String, CodingKey { + case date = "date" + case email = "email" + case name = "name" + case avatarUrl = "avatar_url" + case eventsUrl = "events_url" + case followersUrl = "followers_url" + case followingUrl = "following_url" + case gistsUrl = "gists_url" + case gravatarId = "gravatar_id" + case htmlUrl = "html_url" + case id = "id" + case login = "login" + case organizationsUrl = "organizations_url" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case siteAdmin = "site_admin" + case starredUrl = "starred_url" + case subscriptionsUrl = "subscriptions_url" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + date = try values.decodeIfPresent(String.self, forKey: .date) + email = try values.decodeIfPresent(String.self, forKey: .email) + name = try values.decodeIfPresent(String.self, forKey: .name) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + followingUrl = try values.decodeIfPresent(String.self, forKey: .followingUrl) + gistsUrl = try values.decodeIfPresent(String.self, forKey: .gistsUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + login = try values.decodeIfPresent(String.self, forKey: .login) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + siteAdmin = try values.decodeIfPresent(Bool.self, forKey: .siteAdmin) + starredUrl = try values.decodeIfPresent(String.self, forKey: .starredUrl) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsItem.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsItem.swift new file mode 100644 index 0000000..85a7004 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsItem.swift @@ -0,0 +1,48 @@ +// +// SearchCommitsItem.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchCommitsItem : Codable { + public let author : SearchCommitsAuthor? + public let commentsUrl : String? + public let commit : SearchCommitsCommit? + public let committer : SearchCommitsCommitter? + public let htmlUrl : String? + public let parents : [SearchCommitsParent]? + public let repository : SearchCommitsRepository? + public let score : Float? + public let sha : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case author + case commentsUrl = "comments_url" + case commit + case committer + case htmlUrl = "html_url" + case parents = "parents" + case repository + case score = "score" + case sha = "sha" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + author = try values.decodeIfPresent(SearchCommitsAuthor.self, forKey: .author) + commentsUrl = try values.decodeIfPresent(String.self, forKey: .commentsUrl) + commit = try values.decodeIfPresent(SearchCommitsCommit.self, forKey: .commit) + committer = try values.decodeIfPresent(SearchCommitsCommitter.self, forKey: .committer) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + parents = try values.decodeIfPresent([SearchCommitsParent].self, forKey: .parents) + repository = try values.decodeIfPresent(SearchCommitsRepository.self, forKey: .repository) + score = try values.decodeIfPresent(Float.self, forKey: .score) + sha = try values.decodeIfPresent(String.self, forKey: .sha) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsOwner.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsOwner.swift new file mode 100644 index 0000000..5030a7e --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsOwner.swift @@ -0,0 +1,69 @@ +// +// SearchCommitsOwner.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchCommitsOwner : Codable { + public let avatarUrl : String? + public let eventsUrl : String? + public let followersUrl : String? + public let followingUrl : String? + public let gistsUrl : String? + public let gravatarId : String? + public let htmlUrl : String? + public let id : Int? + public let login : String? + public let organizationsUrl : String? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let siteAdmin : Bool? + public let starredUrl : String? + public let subscriptionsUrl : String? + public let type : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case eventsUrl = "events_url" + case followersUrl = "followers_url" + case followingUrl = "following_url" + case gistsUrl = "gists_url" + case gravatarId = "gravatar_id" + case htmlUrl = "html_url" + case id = "id" + case login = "login" + case organizationsUrl = "organizations_url" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case siteAdmin = "site_admin" + case starredUrl = "starred_url" + case subscriptionsUrl = "subscriptions_url" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + followingUrl = try values.decodeIfPresent(String.self, forKey: .followingUrl) + gistsUrl = try values.decodeIfPresent(String.self, forKey: .gistsUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + login = try values.decodeIfPresent(String.self, forKey: .login) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + siteAdmin = try values.decodeIfPresent(Bool.self, forKey: .siteAdmin) + starredUrl = try values.decodeIfPresent(String.self, forKey: .starredUrl) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsParent.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsParent.swift new file mode 100644 index 0000000..f162beb --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsParent.swift @@ -0,0 +1,27 @@ +// +// SearchCommitsParent.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchCommitsParent : Codable { + public let htmlUrl : String? + public let sha : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case htmlUrl = "html_url" + case sha = "sha" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + sha = try values.decodeIfPresent(String.self, forKey: .sha) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsRepository.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsRepository.swift new file mode 100644 index 0000000..58af9aa --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsRepository.swift @@ -0,0 +1,154 @@ +// +// SearchCommitsRepository.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchCommitsRepository : Codable { + public let archiveUrl : String? + public let assigneesUrl : String? + public let blobsUrl : String? + public let branchesUrl : String? + public let collaboratorsUrl : String? + public let commentsUrl : String? + public let commitsUrl : String? + public let compareUrl : String? + public let contentsUrl : String? + public let contributorsUrl : String? + public let deploymentsUrl : String? + public let descriptionField : String? + public let downloadsUrl : String? + public let eventsUrl : String? + public let fork : Bool? + public let forksUrl : String? + public let fullName : String? + public let gitCommitsUrl : String? + public let gitRefsUrl : String? + public let gitTagsUrl : String? + public let hooksUrl : String? + public let htmlUrl : String? + public let id : Int? + public let issueCommentUrl : String? + public let issueEventsUrl : String? + public let issuesUrl : String? + public let keysUrl : String? + public let labelsUrl : String? + public let languagesUrl : String? + public let mergesUrl : String? + public let milestonesUrl : String? + public let name : String? + public let notificationsUrl : String? + public let owner : SearchCommitsOwner? + public let privateField : Bool? + public let pullsUrl : String? + public let releasesUrl : String? + public let stargazersUrl : String? + public let statusesUrl : String? + public let subscribersUrl : String? + public let subscriptionUrl : String? + public let tagsUrl : String? + public let teamsUrl : String? + public let treesUrl : String? + public let url : String? + + + enum CodingKeys: String, CodingKey { + case archiveUrl = "archive_url" + case assigneesUrl = "assignees_url" + case blobsUrl = "blobs_url" + case branchesUrl = "branches_url" + case collaboratorsUrl = "collaborators_url" + case commentsUrl = "comments_url" + case commitsUrl = "commits_url" + case compareUrl = "compare_url" + case contentsUrl = "contents_url" + case contributorsUrl = "contributors_url" + case deploymentsUrl = "deployments_url" + case descriptionField = "description" + case downloadsUrl = "downloads_url" + case eventsUrl = "events_url" + case fork = "fork" + case forksUrl = "forks_url" + case fullName = "full_name" + case gitCommitsUrl = "git_commits_url" + case gitRefsUrl = "git_refs_url" + case gitTagsUrl = "git_tags_url" + case hooksUrl = "hooks_url" + case htmlUrl = "html_url" + case id = "id" + case issueCommentUrl = "issue_comment_url" + case issueEventsUrl = "issue_events_url" + case issuesUrl = "issues_url" + case keysUrl = "keys_url" + case labelsUrl = "labels_url" + case languagesUrl = "languages_url" + case mergesUrl = "merges_url" + case milestonesUrl = "milestones_url" + case name = "name" + case notificationsUrl = "notifications_url" + case owner + case privateField = "private" + case pullsUrl = "pulls_url" + case releasesUrl = "releases_url" + case stargazersUrl = "stargazers_url" + case statusesUrl = "statuses_url" + case subscribersUrl = "subscribers_url" + case subscriptionUrl = "subscription_url" + case tagsUrl = "tags_url" + case teamsUrl = "teams_url" + case treesUrl = "trees_url" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + archiveUrl = try values.decodeIfPresent(String.self, forKey: .archiveUrl) + assigneesUrl = try values.decodeIfPresent(String.self, forKey: .assigneesUrl) + blobsUrl = try values.decodeIfPresent(String.self, forKey: .blobsUrl) + branchesUrl = try values.decodeIfPresent(String.self, forKey: .branchesUrl) + collaboratorsUrl = try values.decodeIfPresent(String.self, forKey: .collaboratorsUrl) + commentsUrl = try values.decodeIfPresent(String.self, forKey: .commentsUrl) + commitsUrl = try values.decodeIfPresent(String.self, forKey: .commitsUrl) + compareUrl = try values.decodeIfPresent(String.self, forKey: .compareUrl) + contentsUrl = try values.decodeIfPresent(String.self, forKey: .contentsUrl) + contributorsUrl = try values.decodeIfPresent(String.self, forKey: .contributorsUrl) + deploymentsUrl = try values.decodeIfPresent(String.self, forKey: .deploymentsUrl) + descriptionField = try values.decodeIfPresent(String.self, forKey: .descriptionField) + downloadsUrl = try values.decodeIfPresent(String.self, forKey: .downloadsUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + fork = try values.decodeIfPresent(Bool.self, forKey: .fork) + forksUrl = try values.decodeIfPresent(String.self, forKey: .forksUrl) + fullName = try values.decodeIfPresent(String.self, forKey: .fullName) + gitCommitsUrl = try values.decodeIfPresent(String.self, forKey: .gitCommitsUrl) + gitRefsUrl = try values.decodeIfPresent(String.self, forKey: .gitRefsUrl) + gitTagsUrl = try values.decodeIfPresent(String.self, forKey: .gitTagsUrl) + hooksUrl = try values.decodeIfPresent(String.self, forKey: .hooksUrl) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + issueCommentUrl = try values.decodeIfPresent(String.self, forKey: .issueCommentUrl) + issueEventsUrl = try values.decodeIfPresent(String.self, forKey: .issueEventsUrl) + issuesUrl = try values.decodeIfPresent(String.self, forKey: .issuesUrl) + keysUrl = try values.decodeIfPresent(String.self, forKey: .keysUrl) + labelsUrl = try values.decodeIfPresent(String.self, forKey: .labelsUrl) + languagesUrl = try values.decodeIfPresent(String.self, forKey: .languagesUrl) + mergesUrl = try values.decodeIfPresent(String.self, forKey: .mergesUrl) + milestonesUrl = try values.decodeIfPresent(String.self, forKey: .milestonesUrl) + name = try values.decodeIfPresent(String.self, forKey: .name) + notificationsUrl = try values.decodeIfPresent(String.self, forKey: .notificationsUrl) + owner = try values.decodeIfPresent(SearchCommitsOwner.self, forKey: .owner) + privateField = try values.decodeIfPresent(Bool.self, forKey: .privateField) + pullsUrl = try values.decodeIfPresent(String.self, forKey: .pullsUrl) + releasesUrl = try values.decodeIfPresent(String.self, forKey: .releasesUrl) + stargazersUrl = try values.decodeIfPresent(String.self, forKey: .stargazersUrl) + statusesUrl = try values.decodeIfPresent(String.self, forKey: .statusesUrl) + subscribersUrl = try values.decodeIfPresent(String.self, forKey: .subscribersUrl) + subscriptionUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionUrl) + tagsUrl = try values.decodeIfPresent(String.self, forKey: .tagsUrl) + teamsUrl = try values.decodeIfPresent(String.self, forKey: .teamsUrl) + treesUrl = try values.decodeIfPresent(String.self, forKey: .treesUrl) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsResponse.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsResponse.swift new file mode 100644 index 0000000..f9a1441 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsResponse.swift @@ -0,0 +1,27 @@ +// +// SearchCommitsResponse.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchCommitsResponse : Codable { + public let incompleteResults : Bool? + public let items : [SearchCommitsItem]? + public let totalCount : Int? + + enum CodingKeys: String, CodingKey { + case incompleteResults = "incomplete_results" + case items = "items" + case totalCount = "total_count" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + incompleteResults = try values.decodeIfPresent(Bool.self, forKey: .incompleteResults) + items = try values.decodeIfPresent([SearchCommitsItem].self, forKey: .items) + totalCount = try values.decodeIfPresent(Int.self, forKey: .totalCount) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsTree.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsTree.swift new file mode 100644 index 0000000..83453d9 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsTree.swift @@ -0,0 +1,24 @@ +// +// SearchCommitsTree.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchCommitsTree : Codable { + public let sha : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case sha = "sha" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + sha = try values.decodeIfPresent(String.self, forKey: .sha) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesAssignee.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesAssignee.swift new file mode 100644 index 0000000..e5ab2a1 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesAssignee.swift @@ -0,0 +1,69 @@ +// +// SearchIssuesAssignee.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchIssuesAssignee : Codable { + public let avatarUrl : String? + public let eventsUrl : String? + public let followersUrl : String? + public let followingUrl : String? + public let gistsUrl : String? + public let gravatarId : String? + public let htmlUrl : String? + public let id : Int? + public let login : String? + public let organizationsUrl : String? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let siteAdmin : Bool? + public let starredUrl : String? + public let subscriptionsUrl : String? + public let type : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case eventsUrl = "events_url" + case followersUrl = "followers_url" + case followingUrl = "following_url" + case gistsUrl = "gists_url" + case gravatarId = "gravatar_id" + case htmlUrl = "html_url" + case id = "id" + case login = "login" + case organizationsUrl = "organizations_url" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case siteAdmin = "site_admin" + case starredUrl = "starred_url" + case subscriptionsUrl = "subscriptions_url" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + followingUrl = try values.decodeIfPresent(String.self, forKey: .followingUrl) + gistsUrl = try values.decodeIfPresent(String.self, forKey: .gistsUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + login = try values.decodeIfPresent(String.self, forKey: .login) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + siteAdmin = try values.decodeIfPresent(Bool.self, forKey: .siteAdmin) + starredUrl = try values.decodeIfPresent(String.self, forKey: .starredUrl) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesItem.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesItem.swift new file mode 100644 index 0000000..81d9b61 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesItem.swift @@ -0,0 +1,84 @@ +// +// SearchIssuesItem.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchIssuesItem : Codable { + public let assignee : SearchIssuesAssignee? + public let assignees : [SearchIssuesAssignee]? + public let body : String? + public let closedAt : String? + public let comments : Int? + public let commentsUrl : String? + public let createdAt : String? + public let eventsUrl : String? + public let htmlUrl : String? + public let id : Int? + public let labels : [SearchIssuesLabel]? + public let labelsUrl : String? + public let milestone : SearchIssuesMilestone? + public let number : Int? + public let pullRequest : SearchIssuesPullRequest? + public let repositoryUrl : String? + public let score : Float? + public let state : String? + public let title : String? + public let updatedAt : String? + public let url : String? + public let user : SearchIssuesUser? + + enum CodingKeys: String, CodingKey { + case assignee = "assignee" + case assignees = "assignees" + case body = "body" + case closedAt = "closed_at" + case comments = "comments" + case commentsUrl = "comments_url" + case createdAt = "created_at" + case eventsUrl = "events_url" + case htmlUrl = "html_url" + case id = "id" + case labels = "labels" + case labelsUrl = "labels_url" + case milestone = "milestone" + case number = "number" + case pullRequest + case repositoryUrl = "repository_url" + case score = "score" + case state = "state" + case title = "title" + case updatedAt = "updated_at" + case url = "url" + case user + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + assignee = try values.decodeIfPresent(SearchIssuesAssignee.self, forKey: .assignee) + assignees = try values.decodeIfPresent([SearchIssuesAssignee].self, forKey: .assignees) + body = try values.decodeIfPresent(String.self, forKey: .body) + closedAt = try values.decodeIfPresent(String.self, forKey: .closedAt) + comments = try values.decodeIfPresent(Int.self, forKey: .comments) + commentsUrl = try values.decodeIfPresent(String.self, forKey: .commentsUrl) + createdAt = try values.decodeIfPresent(String.self, forKey: .createdAt) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + labels = try values.decodeIfPresent([SearchIssuesLabel].self, forKey: .labels) + labelsUrl = try values.decodeIfPresent(String.self, forKey: .labelsUrl) + milestone = try values.decodeIfPresent(SearchIssuesMilestone.self, forKey: .milestone) + number = try values.decodeIfPresent(Int.self, forKey: .number) + pullRequest = try values.decodeIfPresent(SearchIssuesPullRequest.self, forKey: .pullRequest) + repositoryUrl = try values.decodeIfPresent(String.self, forKey: .repositoryUrl) + score = try values.decodeIfPresent(Float.self, forKey: .score) + state = try values.decodeIfPresent(String.self, forKey: .state) + title = try values.decodeIfPresent(String.self, forKey: .title) + updatedAt = try values.decodeIfPresent(String.self, forKey: .updatedAt) + url = try values.decodeIfPresent(String.self, forKey: .url) + user = try values.decodeIfPresent(SearchIssuesUser.self, forKey: .user) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesLabel.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesLabel.swift new file mode 100644 index 0000000..8a00959 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesLabel.swift @@ -0,0 +1,27 @@ +// +// SearchIssuesLabel.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchIssuesLabel : Codable { + public let color : String? + public let name : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case color = "color" + case name = "name" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + color = try values.decodeIfPresent(String.self, forKey: .color) + name = try values.decodeIfPresent(String.self, forKey: .name) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesMilestone.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesMilestone.swift new file mode 100644 index 0000000..bdb8be1 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesMilestone.swift @@ -0,0 +1,63 @@ +// +// SearchIssuesMilestone.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchIssuesMilestone : Codable { + public let closedAt : String? + public let closedIssues : Int? + public let createdAt : String? + public let creator : SearchIssuesMilestoneCreator? + public let descriptionField : String? + public let dueOn : String? + public let htmlUrl : String? + public let id : Int? + public let labelsUrl : String? + public let number : Int? + public let openIssues : Int? + public let state : String? + public let title : String? + public let updatedAt : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case closedAt = "closed_at" + case closedIssues = "closed_issues" + case createdAt = "created_at" + case creator + case descriptionField = "description" + case dueOn = "due_on" + case htmlUrl = "html_url" + case id = "id" + case labelsUrl = "labels_url" + case number = "number" + case openIssues = "open_issues" + case state = "state" + case title = "title" + case updatedAt = "updated_at" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + closedAt = try values.decodeIfPresent(String.self, forKey: .closedAt) + closedIssues = try values.decodeIfPresent(Int.self, forKey: .closedIssues) + createdAt = try values.decodeIfPresent(String.self, forKey: .createdAt) + creator = try values.decodeIfPresent(SearchIssuesMilestoneCreator.self, forKey: .creator) + descriptionField = try values.decodeIfPresent(String.self, forKey: .descriptionField) + dueOn = try values.decodeIfPresent(String.self, forKey: .dueOn) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + labelsUrl = try values.decodeIfPresent(String.self, forKey: .labelsUrl) + number = try values.decodeIfPresent(Int.self, forKey: .number) + openIssues = try values.decodeIfPresent(Int.self, forKey: .openIssues) + state = try values.decodeIfPresent(String.self, forKey: .state) + title = try values.decodeIfPresent(String.self, forKey: .title) + updatedAt = try values.decodeIfPresent(String.self, forKey: .updatedAt) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesMilestoneCreator.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesMilestoneCreator.swift new file mode 100644 index 0000000..8abc762 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesMilestoneCreator.swift @@ -0,0 +1,69 @@ +// +// SearchIssuesMilestoneCreator.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchIssuesMilestoneCreator : Codable { + public let avatarUrl : String? + public let eventsUrl : String? + public let followersUrl : String? + public let followingUrl : String? + public let gistsUrl : String? + public let gravatarId : String? + public let htmlUrl : String? + public let id : Int? + public let login : String? + public let organizationsUrl : String? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let siteAdmin : Bool? + public let starredUrl : String? + public let subscriptionsUrl : String? + public let type : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case eventsUrl = "events_url" + case followersUrl = "followers_url" + case followingUrl = "following_url" + case gistsUrl = "gists_url" + case gravatarId = "gravatar_id" + case htmlUrl = "html_url" + case id = "id" + case login = "login" + case organizationsUrl = "organizations_url" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case siteAdmin = "site_admin" + case starredUrl = "starred_url" + case subscriptionsUrl = "subscriptions_url" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + followingUrl = try values.decodeIfPresent(String.self, forKey: .followingUrl) + gistsUrl = try values.decodeIfPresent(String.self, forKey: .gistsUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + login = try values.decodeIfPresent(String.self, forKey: .login) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + siteAdmin = try values.decodeIfPresent(Bool.self, forKey: .siteAdmin) + starredUrl = try values.decodeIfPresent(String.self, forKey: .starredUrl) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesPullRequest.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesPullRequest.swift new file mode 100644 index 0000000..6543e6c --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesPullRequest.swift @@ -0,0 +1,27 @@ +// +// SearchIssuesPullRequest.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchIssuesPullRequest : Codable { + public let diffUrl : String? + public let htmlUrl : String? + public let patchUrl : String? + + enum CodingKeys: String, CodingKey { + case diffUrl = "diff_url" + case htmlUrl = "html_url" + case patchUrl = "patch_url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + diffUrl = try values.decodeIfPresent(String.self, forKey: .diffUrl) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + patchUrl = try values.decodeIfPresent(String.self, forKey: .patchUrl) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesResponse.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesResponse.swift new file mode 100644 index 0000000..c39a2c3 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesResponse.swift @@ -0,0 +1,27 @@ +// +// SearchIssuesResponse.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchIssuesResponse : Codable { + public let incompleteResults : Bool? + public let items : [SearchIssuesItem]? + public let totalCount : Int? + + enum CodingKeys: String, CodingKey { + case incompleteResults = "incomplete_results" + case items = "items" + case totalCount = "total_count" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + incompleteResults = try values.decodeIfPresent(Bool.self, forKey: .incompleteResults) + items = try values.decodeIfPresent([SearchIssuesItem].self, forKey: .items) + totalCount = try values.decodeIfPresent(Int.self, forKey: .totalCount) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesUser.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesUser.swift new file mode 100644 index 0000000..b33af96 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesUser.swift @@ -0,0 +1,67 @@ +// +// SearchIssuesUser.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchIssuesUser : Codable { + public let avatarUrl : String? + public let eventsUrl : String? + public let followersUrl : String? + public let followingUrl : String? + public let gistsUrl : String? + public let gravatarId : String? + public let htmlUrl : String? + public let id : Int? + public let login : String? + public let organizationsUrl : String? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let starredUrl : String? + public let subscriptionsUrl : String? + public let type : String? + public let url : String? + + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case eventsUrl = "events_url" + case followersUrl = "followers_url" + case followingUrl = "following_url" + case gistsUrl = "gists_url" + case gravatarId = "gravatar_id" + case htmlUrl = "html_url" + case id = "id" + case login = "login" + case organizationsUrl = "organizations_url" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case starredUrl = "starred_url" + case subscriptionsUrl = "subscriptions_url" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + followingUrl = try values.decodeIfPresent(String.self, forKey: .followingUrl) + gistsUrl = try values.decodeIfPresent(String.self, forKey: .gistsUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + login = try values.decodeIfPresent(String.self, forKey: .login) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + starredUrl = try values.decodeIfPresent(String.self, forKey: .starredUrl) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Repositories/SearchRepositoriesItem.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Repositories/SearchRepositoriesItem.swift new file mode 100644 index 0000000..ee4315c --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Repositories/SearchRepositoriesItem.swift @@ -0,0 +1,84 @@ +// +// SearchRepositoriesItem.swift +// +// Create by Serhii Londar on 2/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchRepositoriesItem : Codable { + public let createdAt : String? + public let defaultBranch : String? + public let descriptionField : String? + public let fork : Bool? + public let forksCount : Int? + public let fullName : String? + public let homepage : String? + public let htmlUrl : String? + public let id : Int? + public let language : String? + public let masterBranch : String? + public let name : String? + public let openIssuesCount : Int? + public let owner : SearchRepositoriesOwner? + public let privateField : Bool? + public let pushedAt : String? + public let score : Float? + public let size : Int? + public let stargazersCount : Int? + public let updatedAt : String? + public let url : String? + public let watchersCount : Int? + + enum CodingKeys: String, CodingKey { + case createdAt = "created_at" + case defaultBranch = "default_branch" + case descriptionField = "description" + case fork = "fork" + case forksCount = "forks_count" + case fullName = "full_name" + case homepage = "homepage" + case htmlUrl = "html_url" + case id = "id" + case language = "language" + case masterBranch = "master_branch" + case name = "name" + case openIssuesCount = "open_issues_count" + case owner + case privateField = "private" + case pushedAt = "pushed_at" + case score = "score" + case size = "size" + case stargazersCount = "stargazers_count" + case updatedAt = "updated_at" + case url = "url" + case watchersCount = "watchers_count" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + createdAt = try values.decodeIfPresent(String.self, forKey: .createdAt) + defaultBranch = try values.decodeIfPresent(String.self, forKey: .defaultBranch) + descriptionField = try values.decodeIfPresent(String.self, forKey: .descriptionField) + fork = try values.decodeIfPresent(Bool.self, forKey: .fork) + forksCount = try values.decodeIfPresent(Int.self, forKey: .forksCount) + fullName = try values.decodeIfPresent(String.self, forKey: .fullName) + homepage = try values.decodeIfPresent(String.self, forKey: .homepage) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + language = try values.decodeIfPresent(String.self, forKey: .language) + masterBranch = try values.decodeIfPresent(String.self, forKey: .masterBranch) + name = try values.decodeIfPresent(String.self, forKey: .name) + openIssuesCount = try values.decodeIfPresent(Int.self, forKey: .openIssuesCount) + owner = try values.decodeIfPresent(SearchRepositoriesOwner.self, forKey: .owner) + privateField = try values.decodeIfPresent(Bool.self, forKey: .privateField) + pushedAt = try values.decodeIfPresent(String.self, forKey: .pushedAt) + score = try values.decodeIfPresent(Float.self, forKey: .score) + size = try values.decodeIfPresent(Int.self, forKey: .size) + stargazersCount = try values.decodeIfPresent(Int.self, forKey: .stargazersCount) + updatedAt = try values.decodeIfPresent(String.self, forKey: .updatedAt) + url = try values.decodeIfPresent(String.self, forKey: .url) + watchersCount = try values.decodeIfPresent(Int.self, forKey: .watchersCount) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Repositories/SearchRepositoriesOwner.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Repositories/SearchRepositoriesOwner.swift new file mode 100644 index 0000000..95ff2e2 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Repositories/SearchRepositoriesOwner.swift @@ -0,0 +1,39 @@ +// +// SearchRepositoriesOwner.swift +// +// Create by Serhii Londar on 2/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchRepositoriesOwner : Codable { + public let avatarUrl : String? + public let gravatarId : String? + public let id : Int? + public let login : String? + public let receivedEventsUrl : String? + public let type : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case gravatarId = "gravatar_id" + case id = "id" + case login = "login" + case receivedEventsUrl = "received_events_url" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + id = try values.decodeIfPresent(Int.self, forKey: .id) + login = try values.decodeIfPresent(String.self, forKey: .login) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Repositories/SearchRepositoriesResponse.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Repositories/SearchRepositoriesResponse.swift new file mode 100644 index 0000000..408c11d --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Repositories/SearchRepositoriesResponse.swift @@ -0,0 +1,27 @@ +// +// SearchRepositoriesResponse.swift +// +// Create by Serhii Londar on 2/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchRepositoriesResponse : Codable { + public let incompleteResults : Bool? + public let items : [SearchRepositoriesItem]? + public let totalCount : Int? + + enum CodingKeys: String, CodingKey { + case incompleteResults = "incomplete_results" + case items = "items" + case totalCount = "total_count" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + incompleteResults = try values.decodeIfPresent(Bool.self, forKey: .incompleteResults) + items = try values.decodeIfPresent([SearchRepositoriesItem].self, forKey: .items) + totalCount = try values.decodeIfPresent(Int.self, forKey: .totalCount) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Users/SearchUsersItem.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Users/SearchUsersItem.swift new file mode 100644 index 0000000..3b92c68 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Users/SearchUsersItem.swift @@ -0,0 +1,57 @@ +// +// SearchUsersItem.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchUsersItem : Codable { + public let avatarUrl : String? + public let followersUrl : String? + public let gravatarId : String? + public let htmlUrl : String? + public let id : Int? + public let login : String? + public let organizationsUrl : String? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let score : Float? + public let subscriptionsUrl : String? + public let type : String? + public let url : String? + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case followersUrl = "followers_url" + case gravatarId = "gravatar_id" + case htmlUrl = "html_url" + case id = "id" + case login = "login" + case organizationsUrl = "organizations_url" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case score = "score" + case subscriptionsUrl = "subscriptions_url" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + login = try values.decodeIfPresent(String.self, forKey: .login) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + score = try values.decodeIfPresent(Float.self, forKey: .score) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Users/SearchUsersResponse.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Users/SearchUsersResponse.swift new file mode 100644 index 0000000..20b59b1 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/Models/Users/SearchUsersResponse.swift @@ -0,0 +1,27 @@ +// +// SearchUsersResponse.swift +// +// Create by Serhii Londar on 8/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct SearchUsersResponse : Codable { + public let incompleteResults : Bool? + public let items : [SearchUsersItem]? + public let totalCount : Int? + + enum CodingKeys: String, CodingKey { + case incompleteResults = "incomplete_results" + case items = "items" + case totalCount = "total_count" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + incompleteResults = try values.decodeIfPresent(Bool.self, forKey: .incompleteResults) + items = try values.decodeIfPresent([SearchUsersItem].self, forKey: .items) + totalCount = try values.decodeIfPresent(Int.self, forKey: .totalCount) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/SearchAPI.swift b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/SearchAPI.swift new file mode 100644 index 0000000..24a0e7d --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/SearchAPI/SearchAPI.swift @@ -0,0 +1,116 @@ +// +// GithubAPI.swift +// GithubAPI +// +// Created by Serhii Londar on 1/2/18. +// Copyright © 2018 Serhii Londar. All rights reserved. +// + +import Foundation + +public enum SearchOrder: String { + case asc + case desc +} + +public enum SearchRepositoriesSort: String{ + case stars + case forks + case updated +} + +public enum SearchCommitsSort: String{ + case authorDate = "author-date" + case committerDate = "committer-date" +} + +public enum SearchCodeSort: String{ + case bestMatch = "best-match" + case recentlyIndexed = "recently-indexed" + case leastRecentlyIndexed = "least-recently-indexed" +} + +public enum SearchIssuesSort: String{ + case comments + case created + case updated +} + +public enum SearchUsersSort: String{ + case followers + case repositories + case joined +} + +public class SearchAPI: GithubAPI { + public func searchRepositories(q: String, page: Int = 1, per_page: Int = 100, sort: SearchRepositoriesSort? = nil, order: SearchOrder = .desc, completion: @escaping (SearchRepositoriesResponse?, Error?) -> Swift.Void) { + let path = "/search/repositories" + var parameters = [String : String]() + parameters["q"] = q + parameters["order"] = order.rawValue + if let sort = sort { + parameters["sort"] = sort.rawValue + } + parameters["page"] = "\(page)" + parameters["per_page"] = "\(per_page)" + + self.get(path: path, parameters: parameters, completion: completion) + } + + public func searchCommits(q: String, page: Int = 1, per_page: Int = 100, sort: SearchCommitsSort? = nil, order: SearchOrder = .desc, completion: @escaping (SearchCommitsResponse?, Error?) -> Swift.Void) { + let path = "/search/commits" + var parameters = [String : String]() + parameters["q"] = q + parameters["order"] = order.rawValue + if let sort = sort { + parameters["sort"] = sort.rawValue + } + parameters["page"] = "\(page)" + parameters["per_page"] = "\(per_page)" + + self.get(path: path, parameters: parameters, completion: completion) + } + + public func searchCode(q: String, page: Int = 1, per_page: Int = 100, sort: SearchCodeSort? = nil, order: SearchOrder = .desc, completion: @escaping (SearchCodeResponse?, Error?) -> Swift.Void) { + let path = "/search/code" + var parameters = [String : String]() + parameters["q"] = q + parameters["order"] = order.rawValue + if let sort = sort { + parameters["sort"] = sort.rawValue + } + parameters["page"] = "\(page)" + parameters["per_page"] = "\(per_page)" + + self.get(path: path, parameters: parameters, completion: completion) + } + + public func searchIssues(q: String, page: Int = 1, per_page: Int = 100, sort: SearchIssuesSort? = nil, order: SearchOrder = .desc, completion: @escaping (SearchIssuesResponse?, Error?) -> Swift.Void) { + let path = "/search/issues" + var parameters = [String : String]() + parameters["q"] = q + parameters["order"] = order.rawValue + if let sort = sort { + parameters["sort"] = sort.rawValue + } + parameters["page"] = "\(page)" + parameters["per_page"] = "\(per_page)" + + self.get(path: path, parameters: parameters, completion: completion) + } + + public func searchUsers(q: String, page: Int = 1, per_page: Int = 100, sort: SearchUsersSort? = nil, order: SearchOrder = .desc, completion: @escaping (SearchUsersResponse?, Error?) -> Swift.Void) { + let path = "/search/users" + var parameters = [String : String]() + parameters["q"] = q + parameters["order"] = order.rawValue + if let sort = sort { + parameters["sort"] = sort.rawValue + } + parameters["page"] = "\(page)" + parameters["per_page"] = "\(per_page)" + + self.get(path: path, parameters: parameters, completion: completion) + } + +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetAllUsers/AllUsersResponse.swift b/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetAllUsers/AllUsersResponse.swift new file mode 100644 index 0000000..6b14a89 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetAllUsers/AllUsersResponse.swift @@ -0,0 +1,70 @@ +// +// AllUsersResponse.swift +// +// Create by Serhii Londar on 7/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct AllUsersResponse : Codable { + public let avatarUrl : String? + public let eventsUrl : String? + public let followersUrl : String? + public let followingUrl : String? + public let gistsUrl : String? + public let gravatarId : String? + public let htmlUrl : String? + public let id : Int? + public let login : String? + public let organizationsUrl : String? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let siteAdmin : Bool? + public let starredUrl : String? + public let subscriptionsUrl : String? + public let type : String? + public let url : String? + + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case eventsUrl = "events_url" + case followersUrl = "followers_url" + case followingUrl = "following_url" + case gistsUrl = "gists_url" + case gravatarId = "gravatar_id" + case htmlUrl = "html_url" + case id = "id" + case login = "login" + case organizationsUrl = "organizations_url" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case siteAdmin = "site_admin" + case starredUrl = "starred_url" + case subscriptionsUrl = "subscriptions_url" + case type = "type" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + followingUrl = try values.decodeIfPresent(String.self, forKey: .followingUrl) + gistsUrl = try values.decodeIfPresent(String.self, forKey: .gistsUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + login = try values.decodeIfPresent(String.self, forKey: .login) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + siteAdmin = try values.decodeIfPresent(Bool.self, forKey: .siteAdmin) + starredUrl = try values.decodeIfPresent(String.self, forKey: .starredUrl) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetOtherUser/OtherUserError.swift b/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetOtherUser/OtherUserError.swift new file mode 100644 index 0000000..9c9259e --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetOtherUser/OtherUserError.swift @@ -0,0 +1,24 @@ +// +// UserError.swift +// +// Create by Serhii Londar on 7/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct OtherUserError : Error, Codable { + public let documentationUrl : String? + public let message : String? + + enum CodingKeys: String, CodingKey { + case documentationUrl = "documentation_url" + case message = "message" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + documentationUrl = try values.decodeIfPresent(String.self, forKey: .documentationUrl) + message = try values.decodeIfPresent(String.self, forKey: .message) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetOtherUser/OtherUserResponse.swift b/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetOtherUser/OtherUserResponse.swift new file mode 100644 index 0000000..1cfe85d --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetOtherUser/OtherUserResponse.swift @@ -0,0 +1,109 @@ +// +// OtherUserResponse.swift +// +// Create by Serhii Londar on 7/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct OtherUserResponse : Codable { + public let avatarUrl : String? + public let bio : String? + public let blog : String? + public let company : String? + public let createdAt : String? + public let email : String? + public let eventsUrl : String? + public let followers : Int? + public let followersUrl : String? + public let following : Int? + public let followingUrl : String? + public let gistsUrl : String? + public let gravatarId : String? + public let hireable : Bool? + public let htmlUrl : String? + public let id : Int? + public let location : String? + public let login : String? + public let name : String? + public let organizationsUrl : String? + public let publicGists : Int? + public let publicRepos : Int? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let siteAdmin : Bool? + public let starredUrl : String? + public let subscriptionsUrl : String? + public let type : String? + public let updatedAt : String? + public let url : String? + + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case bio = "bio" + case blog = "blog" + case company = "company" + case createdAt = "created_at" + case email = "email" + case eventsUrl = "events_url" + case followers = "followers" + case followersUrl = "followers_url" + case following = "following" + case followingUrl = "following_url" + case gistsUrl = "gists_url" + case gravatarId = "gravatar_id" + case hireable = "hireable" + case htmlUrl = "html_url" + case id = "id" + case location = "location" + case login = "login" + case name = "name" + case organizationsUrl = "organizations_url" + case publicGists = "public_gists" + case publicRepos = "public_repos" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case siteAdmin = "site_admin" + case starredUrl = "starred_url" + case subscriptionsUrl = "subscriptions_url" + case type = "type" + case updatedAt = "updated_at" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + bio = try values.decodeIfPresent(String.self, forKey: .bio) + blog = try values.decodeIfPresent(String.self, forKey: .blog) + company = try values.decodeIfPresent(String.self, forKey: .company) + createdAt = try values.decodeIfPresent(String.self, forKey: .createdAt) + email = try values.decodeIfPresent(String.self, forKey: .email) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + followers = try values.decodeIfPresent(Int.self, forKey: .followers) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + following = try values.decodeIfPresent(Int.self, forKey: .following) + followingUrl = try values.decodeIfPresent(String.self, forKey: .followingUrl) + gistsUrl = try values.decodeIfPresent(String.self, forKey: .gistsUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + hireable = try values.decodeIfPresent(Bool.self, forKey: .hireable) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + location = try values.decodeIfPresent(String.self, forKey: .location) + login = try values.decodeIfPresent(String.self, forKey: .login) + name = try values.decodeIfPresent(String.self, forKey: .name) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + publicGists = try values.decodeIfPresent(Int.self, forKey: .publicGists) + publicRepos = try values.decodeIfPresent(Int.self, forKey: .publicRepos) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + siteAdmin = try values.decodeIfPresent(Bool.self, forKey: .siteAdmin) + starredUrl = try values.decodeIfPresent(String.self, forKey: .starredUrl) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + type = try values.decodeIfPresent(String.self, forKey: .type) + updatedAt = try values.decodeIfPresent(String.self, forKey: .updatedAt) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetUser/UserPlan.swift b/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetUser/UserPlan.swift new file mode 100644 index 0000000..9a6eb96 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetUser/UserPlan.swift @@ -0,0 +1,30 @@ +// +// UserPlan.swift +// +// Create by Serhii Londar on 7/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct UserPlan : Codable { + public let collaborators : Int? + public let name : String? + public let privateRepos : Int? + public let space : Int? + + enum CodingKeys: String, CodingKey { + case collaborators = "collaborators" + case name = "name" + case privateRepos = "private_repos" + case space = "space" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + collaborators = try values.decodeIfPresent(Int.self, forKey: .collaborators) + name = try values.decodeIfPresent(String.self, forKey: .name) + privateRepos = try values.decodeIfPresent(Int.self, forKey: .privateRepos) + space = try values.decodeIfPresent(Int.self, forKey: .space) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetUser/UserResponse.swift b/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetUser/UserResponse.swift new file mode 100644 index 0000000..ea645cd --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/GetUser/UserResponse.swift @@ -0,0 +1,130 @@ +// +// UserResponse.swift +// +// Create by Serhii Londar on 7/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct UserResponse : Codable { + public let avatarUrl : String? + public let bio : String? + public let blog : String? + public let collaborators : Int? + public let company : String? + public let createdAt : String? + public let diskUsage : Int? + public let email : String? + public let eventsUrl : String? + public let followers : Int? + public let followersUrl : String? + public let following : Int? + public let followingUrl : String? + public let gistsUrl : String? + public let gravatarId : String? + public let hireable : Bool? + public let htmlUrl : String? + public let id : Int? + public let location : String? + public let login : String? + public let name : String? + public let organizationsUrl : String? + public let ownedPrivateRepos : Int? + public let plan : UserPlan? + public let privateGists : Int? + public let publicGists : Int? + public let publicRepos : Int? + public let receivedEventsUrl : String? + public let reposUrl : String? + public let siteAdmin : Bool? + public let starredUrl : String? + public let subscriptionsUrl : String? + public let totalPrivateRepos : Int? + public let twoFactorAuthentication : Bool? + public let type : String? + public let updatedAt : String? + public let url : String? + + + enum CodingKeys: String, CodingKey { + case avatarUrl = "avatar_url" + case bio = "bio" + case blog = "blog" + case collaborators = "collaborators" + case company = "company" + case createdAt = "created_at" + case diskUsage = "disk_usage" + case email = "email" + case eventsUrl = "events_url" + case followers = "followers" + case followersUrl = "followers_url" + case following = "following" + case followingUrl = "following_url" + case gistsUrl = "gists_url" + case gravatarId = "gravatar_id" + case hireable = "hireable" + case htmlUrl = "html_url" + case id = "id" + case location = "location" + case login = "login" + case name = "name" + case organizationsUrl = "organizations_url" + case ownedPrivateRepos = "owned_private_repos" + case plan + case privateGists = "private_gists" + case publicGists = "public_gists" + case publicRepos = "public_repos" + case receivedEventsUrl = "received_events_url" + case reposUrl = "repos_url" + case siteAdmin = "site_admin" + case starredUrl = "starred_url" + case subscriptionsUrl = "subscriptions_url" + case totalPrivateRepos = "total_private_repos" + case twoFactorAuthentication = "two_factor_authentication" + case type = "type" + case updatedAt = "updated_at" + case url = "url" + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + avatarUrl = try values.decodeIfPresent(String.self, forKey: .avatarUrl) + bio = try values.decodeIfPresent(String.self, forKey: .bio) + blog = try values.decodeIfPresent(String.self, forKey: .blog) + collaborators = try values.decodeIfPresent(Int.self, forKey: .collaborators) + company = try values.decodeIfPresent(String.self, forKey: .company) + createdAt = try values.decodeIfPresent(String.self, forKey: .createdAt) + diskUsage = try values.decodeIfPresent(Int.self, forKey: .diskUsage) + email = try values.decodeIfPresent(String.self, forKey: .email) + eventsUrl = try values.decodeIfPresent(String.self, forKey: .eventsUrl) + followers = try values.decodeIfPresent(Int.self, forKey: .followers) + followersUrl = try values.decodeIfPresent(String.self, forKey: .followersUrl) + following = try values.decodeIfPresent(Int.self, forKey: .following) + followingUrl = try values.decodeIfPresent(String.self, forKey: .followingUrl) + gistsUrl = try values.decodeIfPresent(String.self, forKey: .gistsUrl) + gravatarId = try values.decodeIfPresent(String.self, forKey: .gravatarId) + hireable = try values.decodeIfPresent(Bool.self, forKey: .hireable) + htmlUrl = try values.decodeIfPresent(String.self, forKey: .htmlUrl) + id = try values.decodeIfPresent(Int.self, forKey: .id) + location = try values.decodeIfPresent(String.self, forKey: .location) + login = try values.decodeIfPresent(String.self, forKey: .login) + name = try values.decodeIfPresent(String.self, forKey: .name) + organizationsUrl = try values.decodeIfPresent(String.self, forKey: .organizationsUrl) + ownedPrivateRepos = try values.decodeIfPresent(Int.self, forKey: .ownedPrivateRepos) + plan = try values.decodeIfPresent(UserPlan.self, forKey: .plan) + privateGists = try values.decodeIfPresent(Int.self, forKey: .privateGists) + publicGists = try values.decodeIfPresent(Int.self, forKey: .publicGists) + publicRepos = try values.decodeIfPresent(Int.self, forKey: .publicRepos) + receivedEventsUrl = try values.decodeIfPresent(String.self, forKey: .receivedEventsUrl) + reposUrl = try values.decodeIfPresent(String.self, forKey: .reposUrl) + siteAdmin = try values.decodeIfPresent(Bool.self, forKey: .siteAdmin) + starredUrl = try values.decodeIfPresent(String.self, forKey: .starredUrl) + subscriptionsUrl = try values.decodeIfPresent(String.self, forKey: .subscriptionsUrl) + totalPrivateRepos = try values.decodeIfPresent(Int.self, forKey: .totalPrivateRepos) + twoFactorAuthentication = try values.decodeIfPresent(Bool.self, forKey: .twoFactorAuthentication) + type = try values.decodeIfPresent(String.self, forKey: .type) + updatedAt = try values.decodeIfPresent(String.self, forKey: .updatedAt) + url = try values.decodeIfPresent(String.self, forKey: .url) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/UpdateUser/UpdateUser.swift b/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/UpdateUser/UpdateUser.swift new file mode 100644 index 0000000..d220105 --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/UserAPI/Models/UpdateUser/UpdateUser.swift @@ -0,0 +1,49 @@ +// +// UpdateUser.swift +// +// Create by Serhii Londar on 7/1/2018 +// Copyright © 2018 Serhii Londar. All rights reserved. +// Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport + +import Foundation + +public struct UpdateUser : Codable { + public var bio : String? + public var blog : String? + public var company : String? + public var email : String? + public var hireable : Bool? + public var location : String? + public var name : String? + + enum CodingKeys: String, CodingKey { + case bio = "bio" + case blog = "blog" + case company = "company" + case email = "email" + case hireable = "hireable" + case location = "location" + case name = "name" + } + + public init() { + bio = nil + blog = nil + company = nil + email = nil + hireable = nil + location = nil + name = nil + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + bio = try values.decodeIfPresent(String.self, forKey: .bio) + blog = try values.decodeIfPresent(String.self, forKey: .blog) + company = try values.decodeIfPresent(String.self, forKey: .company) + email = try values.decodeIfPresent(String.self, forKey: .email) + hireable = try values.decodeIfPresent(Bool.self, forKey: .hireable) + location = try values.decodeIfPresent(String.self, forKey: .location) + name = try values.decodeIfPresent(String.self, forKey: .name) + } +} diff --git a/Pods/GithubAPI/GithubAPI/Classes/UserAPI/UserAPI.swift b/Pods/GithubAPI/GithubAPI/Classes/UserAPI/UserAPI.swift new file mode 100644 index 0000000..163820a --- /dev/null +++ b/Pods/GithubAPI/GithubAPI/Classes/UserAPI/UserAPI.swift @@ -0,0 +1,30 @@ +// +// UserAPI.swift +// GithubAPI +// +// Created by Serhii Londar on 1/6/18. +// + +import Foundation +import BaseAPI + +public class UserAPI: GithubAPI { + public func getUser(completion: @escaping(UserResponse?, Error?) -> Void) { + self.get(path: "/user", completion: completion) + } + + public func updateUser(user: UpdateUser, completion: @escaping(UserResponse?, Error?) -> Void) { + let data = try? JSONEncoder().encode(user) + self.patch(path: "/user", body: data, completion: completion) + } + + public func getUser(username: String, completion: @escaping(OtherUserResponse?, Error?) -> Void) { + let encodedUsername = username.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlPathAllowed)! + self.get(path: "/users/\(encodedUsername)", completion: completion) + } + + public func getAllUsers(since: String, completion: @escaping([AllUsersResponse]?, Error?) -> Void) { + super.get(path: "/users?since=\(since)", completion: completion) + } + +} diff --git a/Pods/GithubAPI/LICENSE b/Pods/GithubAPI/LICENSE new file mode 100644 index 0000000..d18b338 --- /dev/null +++ b/Pods/GithubAPI/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2018 serhii-londar + +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/GithubAPI/README.md b/Pods/GithubAPI/README.md new file mode 100644 index 0000000..2b28c89 --- /dev/null +++ b/Pods/GithubAPI/README.md @@ -0,0 +1,171 @@ +# GithubAPI + +[![CI Status](http://img.shields.io/travis/serhii-londar/GithubAPI.svg?style=flat)](https://travis-ci.org/serhii-londar/GithubAPI) +[![Version](https://img.shields.io/cocoapods/v/GithubAPI.svg?style=flat)](http://cocoapods.org/pods/GithubAPI) +[![License](https://img.shields.io/cocoapods/l/GithubAPI.svg?style=flat)](http://cocoapods.org/pods/GithubAPI) +[![Platform](https://img.shields.io/cocoapods/p/GithubAPI.svg?style=flat)](http://cocoapods.org/pods/GithubAPI) + +Swift implementation of Github REST api v3. Library support swift 4.0. Work is in progress. + +Currently supported: + +- [x] [Issues API](https://developer.github.com/v3/issues/). +- [x] [Activity API(Notification)](https://developer.github.com/v3/activity/notifications/). +- [x] [Repositories API](https://developer.github.com/v3/repos/). +- [x] [Search API](https://developer.github.com/v3/search/). +- [x] [User API](https://developer.github.com/v3/users/). + +TODO: + +- [ ] [Activity API (Events, Feeds, Starring, Watching)](https://developer.github.com/v3/activity/). +- [ ] [Organizations API](https://developer.github.com/v3/orgs/). +- [ ] [Projects API](https://developer.github.com/v3/projects/). +- [ ] [Pull Requests API](https://developer.github.com/v3/pulls/). +- [ ] [Reactions API](https://developer.github.com/v3/reactions/). +- [ ] [Repositories API](https://developer.github.com/v3/repos/). +- [ ] [Users API (Emails, Followers, Public Keys, GPG Keys, Block Another User)](https://developer.github.com/v3/users/). +- [ ] Documentation. + +## Example Usage + +### Authentication + +#### Basic Authentication + +This lib support Basic Authentication with login/password: + +```swift +let authentication = BasicAuthentication(username: "username", password: "password") +UserAPI(authentication: authentication).getUser { (response, error) in + if let response = response { + print(response) + } else { + print(error ?? "") + } +} +``` + +#### OAuth2 Token (sent in a header) + +If you generate personal access token or receive access token from OAuth2, you can use it with AccessTokenAuthentication: + +```swift +let authentication = AccessTokenAuthentication(access_token: "token") +UserAPI(authentication: authentication).getUser(username: "serhii-londar") { (response, error) in + if let response = response { + print(response) + } else { + print(error ?? "") + } +} +``` + +#### OAuth2 Token (sent as a parameter) + +If you generate personal access token or receive access token from OAuth2, you can use it in next way: + +```swift +let authentication = TokenAuthentication(token: "token") +UserAPI(authentication: authentication).getAllUsers(since: "1") { (reposne, error) in + if let response = response { + print(response) + } else { + print(error ?? "") + } +} +``` + +### Issues API + +#### Create Issue: + +```swift +let issue = Issue(title: "New Issue") +IssuesAPI(authentication: AccessTokenAuthentication(access_token: "access_token")).createIssue(owner: "owner", repository: "repository", issue: issue) { (response, error) in + if let response = response { + + } else { + print(error ?? "") + } +} +``` +#### Update Issue: + +```swift +let issue = Issue(title: "Updated Issue") + IssuesAPI(authentication: AccessTokenAuthentication(access_token: "access_token")).updateIssue(owner: "owner", repository: "repository", number: number, issue: issue) { (response, error) in + if let response = response { + + } else { + print(error ?? "") + } +} +``` + +### Repositories API + +#### Get list of all repositories of user: + +```swift +RepositoriesAPI(authentication: AccessTokenAuthentication(access_token: "access_token")).repositories(user: "user", type: .all) { (response, error) in + if let response = response { + + } else { + print(error ?? "") + } +} +``` + +### Search API + +#### Seart all repositories which contains qwer in name: + +```swift +SearchAPI().searchRepositories(q: "qwer", page: 1, per_page: 100) { (response, error) in + if let response = response { + + } else { + print(error ?? "") + } +} +``` + + +## Example Application + +To run the example project, clone the repo, and run `pod install` from the Example directory first. + +Example project contains example app with list of all user's github notification. + + +

+ +

+ +## Requirements + +* Xcode 9 or later +* iOS 9.0 or later +* macOS 10.12 or later +* Ubuntu 16.04 or later +* Swift 4.0 or later + +## Installation + +GithubAPI is available through [CocoaPods](http://cocoapods.org). To install +it, simply add the following line to your Podfile: + +```ruby +pod 'GithubAPI' +``` + +## Author + +Serhii Londar, serhii.londar@gmail.com + +## License + +GithubAPI is available under the MIT license. See the LICENSE file for more info. + + + diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock new file mode 100644 index 0000000..b95beac --- /dev/null +++ b/Pods/Manifest.lock @@ -0,0 +1,24 @@ +PODS: + - BaseAPI (0.1.5) + - FontAwesome.swift (1.7.1) + - GithubAPI (0.0.6): + - BaseAPI + +DEPENDENCIES: + - FontAwesome.swift (~> 1.7) + - GithubAPI + +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - BaseAPI + - FontAwesome.swift + - GithubAPI + +SPEC CHECKSUMS: + BaseAPI: 9248feed65933cd20283514e7a9917ecba1b69c0 + FontAwesome.swift: 8d9792fa2d2347055da35bd97752b3960bd75952 + GithubAPI: bc5bfd90489f5138a8d1e00003b18abe31579eb0 + +PODFILE CHECKSUM: eef7fefc5996c7f6fe77a452e2eef6c7a1ec6426 + +COCOAPODS: 1.7.1 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..b8ca875 --- /dev/null +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,1595 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 04FFD0BA6FEE23BAAD7EFB0FBD51D302 /* FontAwesomeImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B86876311D721209478A5FB5215E52 /* FontAwesomeImageView.swift */; }; + 08159CD179DCED0C375F14CA98C039D6 /* SearchCodeRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 815D08DD895FDAB7AB1310472525418D /* SearchCodeRepository.swift */; }; + 0E8855C26F318647C231758045C1983D /* NotificationsOwner.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE5684697D2BC17F7E469B452E38CDE7 /* NotificationsOwner.swift */; }; + 0F38DD5AD90DFBBF8047B080A7D47158 /* GetIssueResponseRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CB8B438033A7E71D6C40669C1D7FEB7 /* GetIssueResponseRepository.swift */; }; + 0F51CEAC0DC117893227F3E8F2EDDAC8 /* BaseAPI-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EBCAFF59210612C598D2FF6FF6FB4B0 /* BaseAPI-dummy.m */; }; + 108B1A6C1FDEDC82946AFBB823ACC431 /* RequestHeaderFields.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9521BD9BB853BFF578F2E212F274CD5D /* RequestHeaderFields.swift */; }; + 14C81AA137EA2DAE2426B768131DB4A9 /* OtherUserResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86EEF5018D278B55346B04F17536FD23 /* OtherUserResponse.swift */; }; + 1629B85F0ECAB6A283ACF0CB76277184 /* FontAwesomeTabBarItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B54DFD4AD35F6B155F029883ED684F1 /* FontAwesomeTabBarItem.swift */; }; + 1C93B9E977D03236A6601B33337A7DFB /* AllUsersResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47D83DD904C32C1AE90361D55ABA473D /* AllUsersResponse.swift */; }; + 1EEFF185FA5311E4C4885BD65B1134B7 /* RepositoryLicense.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08B83933FD3632C8D3D73262888A1EDE /* RepositoryLicense.swift */; }; + 202A26BD2D598BBAF6EF53A013D3E2ED /* SearchIssuesMilestone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C8440C189B14D154A920AD0E0823DC5 /* SearchIssuesMilestone.swift */; }; + 232CFE4F19BD7BCABB942B19253766DD /* GetIssueResponsePullRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = E790524FA70D43C376824CA0B9052728 /* GetIssueResponsePullRequest.swift */; }; + 2673331D8D7DAB0D7D02159C35952D38 /* RepositoryOrganization.swift in Sources */ = {isa = PBXBuildFile; fileRef = A43B75C8BABBCAD22EEDD9124DDD3B57 /* RepositoryOrganization.swift */; }; + 28757E4AD554CBD39E97BBCA1328BFC5 /* FontAwesomeBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19B19C795F88040DAA4792BB92EFE63C /* FontAwesomeBarButtonItem.swift */; }; + 2C3D398884B8D56C87CA9E59C7199DB1 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13694523D54322089F8D63BA65C36B8A /* UIKit.framework */; }; + 2EF72FBB034A5E99CDAD807D168F44AF /* UserPlan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42FD7449CBA2A3F1A248D4A3EBE5A6A8 /* UserPlan.swift */; }; + 2F3921F0DB512FDBB6D2010D0110AE81 /* SearchCommitsItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 543DD01AE19C645E0EE393C04A398203 /* SearchCommitsItem.swift */; }; + 3AB755DF1D88B014DD3D5DAD755FA6DE /* GetIssueResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 370A0F250936A9FEB86DBC023932142A /* GetIssueResponse.swift */; }; + 4212E7EABF6CD40B3526BF273B39F1CD /* SearchCodeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = F21B2AFF65841EF1CFD026A348DDC352 /* SearchCodeItem.swift */; }; + 4563F38E9C355744C1C466413CD0931C /* BaseAPI-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A097DC799F491432A1CA60C149A22AA /* BaseAPI-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 45C658FC3A2FEA35B060EFB42A416FFC /* String.swift in Sources */ = {isa = PBXBuildFile; fileRef = B43D069906EA7488446BA32D68DB3FCC /* String.swift */; }; + 4A7EEFB7D04DAE41C470584266FBE160 /* RequestMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD1A53F9C582300BF9BEC8BE8715B39D /* RequestMethod.swift */; }; + 4C391DC98A061940CFA79FFCC74FC729 /* SearchIssuesLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A89C094C4C4F4FC5A1B61F30D0F0BDF8 /* SearchIssuesLabel.swift */; }; + 5133EE0F311924DBAF244088F1EB3B34 /* RepositoryParent.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABD22F9AFDF61D0579C7817442C128EC /* RepositoryParent.swift */; }; + 555AB8CA91EB0CECA0A691FFA527BEB0 /* CharacterSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DAAA6872FA9696668C80BE955286AD5 /* CharacterSet.swift */; }; + 5A1534730688D0FB9158F97421D70ADC /* Pods-repo-browser-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 67A1A8533E902C5F4593CC4717DB3DAF /* Pods-repo-browser-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C78932F992FFA9FDAAAA5B876E91897 /* SearchCommitsOwner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CD6D5535A0E6A24126DF453CF9B3D18 /* SearchCommitsOwner.swift */; }; + 647DB6CFC90443E9FA706578F8424BD3 /* SearchCommitsResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88643157190C85D1A69948876A336698 /* SearchCommitsResponse.swift */; }; + 651E8FA71DF52988E4F0B4FA2834F675 /* Pods-repo-browserTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 647374E79526524FD3BDB93AD5B05D1A /* Pods-repo-browserTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 66F009555E30BE7745CFB05BC6E9F2BF /* NotificationsRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09B28D2E5301B7426793D3371B4AB945 /* NotificationsRepository.swift */; }; + 68BAC7962A168D4583274C0DD9325578 /* FontAwesome.swift.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 3DA4F5DC4EB6E9DF6B4859D27EF8C9F5 /* FontAwesome.swift.bundle */; }; + 6C02EE2DE8BC05D2205D71C81AE3C7B6 /* Pods-repo-browser-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E8FFB5AA1852D837383511EB4E5377CB /* Pods-repo-browser-dummy.m */; }; + 6E9EF0B7BBC22535EA6B3DF633D7F1C7 /* SearchIssuesAssignee.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B94301FC267EDB049134FC42162D1D2 /* SearchIssuesAssignee.swift */; }; + 70B81B938724ACD63F905A070523E07C /* Font Awesome 5 Free-Solid-900.otf in Resources */ = {isa = PBXBuildFile; fileRef = E97E6C982A4A349ACE1C2A4C5D2D2ABD /* Font Awesome 5 Free-Solid-900.otf */; }; + 7199F92FBB50BD74ECCC4BFD95B760CF /* FontAwesome.swift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 01665A7C7DA538170E6484E4B52DBD2F /* FontAwesome.swift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 72E5B4146696A4B0D451094782475E8A /* RepositoryPermission.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB0E01C792508BFDCDD9A2461D962B28 /* RepositoryPermission.swift */; }; + 73E1EC204310037C102BBA77CE4249AE /* SearchCommitsParent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 428AEA70261F330B24F03BF91DDA9DB9 /* SearchCommitsParent.swift */; }; + 75FF8A688A9A8F326F4CAB98E2D11A93 /* SearchIssuesMilestoneCreator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990438747E7762AF4433FB79A6298A1D /* SearchIssuesMilestoneCreator.swift */; }; + 788320D421344981750875F4CB906779 /* SearchRepositoriesItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECC79D70F71D613E6364665B97A3BB1D /* SearchRepositoriesItem.swift */; }; + 788CF91D4B92F5E5A3CBB9C5007A55B4 /* Authentication.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCE5B6D46A8F09E5E98E64960E0C7975 /* Authentication.swift */; }; + 78A53E5FFDCB63A2F01639B9E138A0F4 /* SearchRepositoriesResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = C27E90571098733F4BC388788181EC98 /* SearchRepositoriesResponse.swift */; }; + 7BA1AB4574A6467A5544A127D278A643 /* FontAwesome.swift in Sources */ = {isa = PBXBuildFile; fileRef = D25965E2367539B9333292E671A426D0 /* FontAwesome.swift */; }; + 7D61378E17B4B7C316FD3B4480C03662 /* RepositoriesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1EA93EE25B5522171BFC04DA84C0CA4 /* RepositoriesAPI.swift */; }; + 85D37B2D1F2D31A1E66838B0EFC3CB84 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF05E63708FF8AD75B5DDBA0DB7E584 /* Foundation.framework */; }; + 86805C57C06CC50FC1922FC110B44A47 /* SearchAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 211C690C5CE83D22BAB3DE1A5C884FCB /* SearchAPI.swift */; }; + 87A221D795BA9C3EC1BE7B26B14C3ABA /* URLSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6BE79EE9C7351D9C0E533C6A073366C /* URLSession.swift */; }; + 88C94D84F4BB5DC67E71F90E793BA965 /* FontAwesomeTextRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754DBDECF7C646AF72D9E4252904E5B0 /* FontAwesomeTextRepresentable.swift */; }; + 8E268FC52FFFD64E7F663DA8146E1A73 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF05E63708FF8AD75B5DDBA0DB7E584 /* Foundation.framework */; }; + 913E9AE838A8838EA11B030239C2B9EA /* RepositoryReponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = F28A77C1226E2541EAF7B6E3B589E6B0 /* RepositoryReponse.swift */; }; + 9527B0AC77733FD2F7F54BCFEF8358FF /* GithubAPI-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DEE2A3AD37D4A14B8103127D85F7AD7B /* GithubAPI-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9814ED7667154CBEAE1A36AA6B1A732B /* SearchIssuesItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 193A815D32F7ECE89D8E894E7AFD8F6E /* SearchIssuesItem.swift */; }; + 9B07F953B28919F1FAED988C5952CA3C /* GetIssueResponseMilestone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D56A31E23F2864DA0491A0F7B5DCFD0 /* GetIssueResponseMilestone.swift */; }; + 9D3358724A6243C10C77A0C39CEBBDFF /* SearchRepositoriesOwner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D6B8A5D4089D2E0BDC68F75DC5BBBA /* SearchRepositoriesOwner.swift */; }; + A12B4F8A65941B16271C0190DF8C761B /* RepositoryContentsLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = D226B028F7638BE8DD03A5AEF41801B5 /* RepositoryContentsLink.swift */; }; + A1FC0B86096106C0B40258A49835FACC /* SearchIssuesResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1BC8FC2271397858B6D4EDBB4797ED3 /* SearchIssuesResponse.swift */; }; + A90D5DBB9CCF37931BA57E468295D1D9 /* GithubAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18014FC9EA4C9FC3381857970F456CAF /* GithubAPI.swift */; }; + A9E6F9673A9059F6839D7CFC075DFFA0 /* Enum.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EAB59DB5D1B377C9EF6424D52CE8514 /* Enum.swift */; }; + AA0D656B4A636305DA1BC1F9B73408DD /* FontAwesomeExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE6949261B5EDACF3229EADB604A9579 /* FontAwesomeExtension.swift */; }; + AA74662429C309950C95E727A75220CB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF05E63708FF8AD75B5DDBA0DB7E584 /* Foundation.framework */; }; + AE232955C42F0DC3DD075C740985880B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF05E63708FF8AD75B5DDBA0DB7E584 /* Foundation.framework */; }; + AE4B2E001DEFDA2921865B83644F0B30 /* FontAwesomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6E958730058030B75189FFAF50BAF8C /* FontAwesomeView.swift */; }; + AF70BDBD27A8A9C1B4139CA6FF0E1770 /* BaseAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F666121A0BCB415E5A5E0D316427B8DF /* BaseAPI.framework */; }; + B146028E135EDF54440DB4E9FB4BEC05 /* SearchCodeResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33C59CE97CBF53A79C9FA566BDCB38CC /* SearchCodeResponse.swift */; }; + B4525E15F08835F3A89706F96040B7D9 /* RepositoryOwner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D4AFFF41509292A23A20AC0C3164693 /* RepositoryOwner.swift */; }; + BA1BA5BBAEFF939D2307846737E2A4F9 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F6A9C96229F38FCAAA98F08A9456DCB /* CoreText.framework */; }; + BA5DF713E9230DD94124FEB48DF87EB1 /* UserAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCA7E6C76A31A192DCC0231F505CF1D /* UserAPI.swift */; }; + C14DE531101551DCCADEF4AC968A561B /* NotificationsResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D820B7DC9B15F0BA46EE7023BC8A1C09 /* NotificationsResponse.swift */; }; + C2FD60C5A2C399607870BDF82E20F679 /* FontAwesomeStateRequirement.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAEEB48998D9BC31C075509BBE388ECE /* FontAwesomeStateRequirement.swift */; }; + C66408B02DE96F22CC6326EDAA6AB0F1 /* SearchIssuesUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED7300918E4A61AB996599384EB13F19 /* SearchIssuesUser.swift */; }; + C69F337713A37CF436B8E5B73B0E812A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDF05E63708FF8AD75B5DDBA0DB7E584 /* Foundation.framework */; }; + CB47FC55ADA39CF91F689802CF5BC1DD /* GetIssueResponseAssignee.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89413DB736951BF10AB215497F4F6BD /* GetIssueResponseAssignee.swift */; }; + CDA9BF9FC107A710EFD3C4CDD7A2D25C /* SearchCommitsAuthor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73A563861AAC1D746D83F436606272EF /* SearchCommitsAuthor.swift */; }; + D28A7A864BAD82F9F7EB2E84B03D3AEB /* Font Awesome 5 Free-Regular-400.otf in Resources */ = {isa = PBXBuildFile; fileRef = 0E0D4C43FBBD247541781AFCF0F9062C /* Font Awesome 5 Free-Regular-400.otf */; }; + D387746722E5E6E58C1BCACCE26B71AE /* UpdateUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = E62ED4B5BD0F304DD265BA126341C465 /* UpdateUser.swift */; }; + D46FE73409B0F98ED2E67F6A335C1CDA /* OtherUserError.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7C20649FAF4BEC0AA21AB8D6DE97ACA /* OtherUserError.swift */; }; + D6E42D393BE031D598821E3E8EDA7EB3 /* SearchCommitsRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = F95662181244C9031710CF9B01917CFB /* SearchCommitsRepository.swift */; }; + D8C2F22E5A3CF849D9D7A8D4A63C93CF /* UserResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 913501D41FF32929916DE744ACD0E4AA /* UserResponse.swift */; }; + DA0DA4A3A99962BF2193212BE9CBE3E0 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = D93DB59C06129ABA5DDF3D95A51C5812 /* Request.swift */; }; + DD45966ACBDE28A824052DD6CF815A07 /* NotificationsSubject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07BA86705C76C7720658A124E7C364D8 /* NotificationsSubject.swift */; }; + DED224934E770D48544184BEC3B714DF /* FontAwesome.swift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B4932F2CDD333C0EEDDD58EA22D22693 /* FontAwesome.swift-dummy.m */; }; + E0E091D97C082FEBA802567A606B192A /* FontAwesomeImageRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20A476EA7437EA49348BC9B6A678D79F /* FontAwesomeImageRepresentable.swift */; }; + E0F3265F4957AADB79CDDC072EF345FB /* SearchCodeOwner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71CB91F22EC23E766F63B27AEACCBEF5 /* SearchCodeOwner.swift */; }; + E219C67509E6F8C782C265B543791747 /* FontAwesomeSegmentedControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94CA802FC27F5B2DCCE78EEAB223DB12 /* FontAwesomeSegmentedControl.swift */; }; + E3A1B6F5E3E520FD7EDCCB64B29B0989 /* BaseAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4C38F169D6511FF055D19B96668F15C /* BaseAPI.swift */; }; + EABCAC0C60BD2F0ED2862113516EEB33 /* SearchCommitsCommit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 672F733751275C03EBC2705EE14CEF99 /* SearchCommitsCommit.swift */; }; + EB9066F34D45DE87C2751834427DE4F8 /* IssuesAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CF3813EAC175064218EC4D41A15A6DE /* IssuesAPI.swift */; }; + ECA700044852803D09A967E67981971F /* SearchUsersResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E5221BF89922FCCA13A4A119F9AF3CC /* SearchUsersResponse.swift */; }; + EF96B616BE75A442019963B01D73D91C /* Font Awesome 5 Brands-Regular-400.otf in Resources */ = {isa = PBXBuildFile; fileRef = C3B7C7B18EA8C7FD8E58585F62FE8933 /* Font Awesome 5 Brands-Regular-400.otf */; }; + F0F524B4E07EE9355BDF57A77A485B85 /* SearchCommitsTree.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6627C6AE5EB81526411FB1653432E16 /* SearchCommitsTree.swift */; }; + F298C239B4D051C0C832C672817A28C8 /* NotificationsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00EB999B16F20D08A68169AE737C9B7C /* NotificationsAPI.swift */; }; + F33FA7956A50FE5413E228AC9C2F09D7 /* RepositoryContentsReponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC7AA0CAD1AD4BF93E718857932202A1 /* RepositoryContentsReponse.swift */; }; + F519C653A63F9500027D67A0E9C8E729 /* RepositoriesContentsAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EE3CD77E1915B647EA42E8C857100F3 /* RepositoriesContentsAPI.swift */; }; + F563A4AC381BF940F177A0AD729158C1 /* SearchUsersItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88FEEFD9F19424230CF56C364FC8019E /* SearchUsersItem.swift */; }; + F7A64BCE2B95700F334864683C606171 /* Issue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9650CA800594E94027F19F3C48284D02 /* Issue.swift */; }; + F82D00AA21061B78FBEA51A3EFE25B6A /* SearchCommitsCommitter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78E5E1024979138E18666926A1EEE970 /* SearchCommitsCommitter.swift */; }; + FCD5AA681298CFDC1DFA166D55ABF216 /* GetIssueResponsePermission.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBD7638B0032734BFBA147D52F2C1147 /* GetIssueResponsePermission.swift */; }; + FD3F707097FE280DB40038660B8107BA /* GithubAPI-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 38661CF14A0D1C62B8F847BB06E1AAC6 /* GithubAPI-dummy.m */; }; + FEB652926056A7677F4672027618EB01 /* GetIssueResponseLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C48BAFD6148718FA73860039D0E53E0F /* GetIssueResponseLabel.swift */; }; + FEDC789E37D1EC291001B9608B1121EB /* SearchIssuesPullRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7560A0C8214081698EFF3E528B7B5637 /* SearchIssuesPullRequest.swift */; }; + FF4817FAC7315E97F50AD95172CBC129 /* Pods-repo-browserTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 99C0E061C016BE8EF1A696C5B1EECB0C /* Pods-repo-browserTests-dummy.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 0519E3D3F94762697201D5BCD30608DD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6D3AF0C6AF53B8F230647F79054EF73F; + remoteInfo = BaseAPI; + }; + 2DF228A25FA6E5262C7EB2BF530B8371 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6D3AF0C6AF53B8F230647F79054EF73F; + remoteInfo = BaseAPI; + }; + 452402FFF162D089FBA2F3A1D806D4C8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4DC20DD2E50259D674257304EC016C93; + remoteInfo = "FontAwesome.swift-FontAwesome.swift"; + }; + E3A6D849B0401E86D4EDE7A543803693 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BB240150692F32EC312F3CF346C8B9D1; + remoteInfo = FontAwesome.swift; + }; + F6B27ED481174EC8013BF5AB2A25FE73 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 46612857DE0B03605DCFF866695FF265; + remoteInfo = GithubAPI; + }; + F826A46FAFF96C5A4E424B6D13B9B5BD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1F23F2351DC311504812F672ADDDA30E; + remoteInfo = "Pods-repo-browser"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 00EB999B16F20D08A68169AE737C9B7C /* NotificationsAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NotificationsAPI.swift; path = GithubAPI/Classes/NotificationsAPI/NotificationsAPI.swift; sourceTree = ""; }; + 01665A7C7DA538170E6484E4B52DBD2F /* FontAwesome.swift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FontAwesome.swift-umbrella.h"; sourceTree = ""; }; + 03A98DFC3AA089C962A03F5E415974D1 /* GithubAPI-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "GithubAPI-Info.plist"; sourceTree = ""; }; + 05408D879768109798F40F7E2C8D53CD /* FontAwesome.swift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = FontAwesome.swift.modulemap; sourceTree = ""; }; + 07BA86705C76C7720658A124E7C364D8 /* NotificationsSubject.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NotificationsSubject.swift; path = GithubAPI/Classes/NotificationsAPI/Models/NotificationsSubject.swift; sourceTree = ""; }; + 08B83933FD3632C8D3D73262888A1EDE /* RepositoryLicense.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RepositoryLicense.swift; path = GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryLicense.swift; sourceTree = ""; }; + 08B86876311D721209478A5FB5215E52 /* FontAwesomeImageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FontAwesomeImageView.swift; path = FontAwesome/FontAwesomeImageView.swift; sourceTree = ""; }; + 09B28D2E5301B7426793D3371B4AB945 /* NotificationsRepository.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NotificationsRepository.swift; path = GithubAPI/Classes/NotificationsAPI/Models/NotificationsRepository.swift; sourceTree = ""; }; + 0B54DFD4AD35F6B155F029883ED684F1 /* FontAwesomeTabBarItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FontAwesomeTabBarItem.swift; path = FontAwesome/FontAwesomeTabBarItem.swift; sourceTree = ""; }; + 0B94301FC267EDB049134FC42162D1D2 /* SearchIssuesAssignee.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchIssuesAssignee.swift; path = GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesAssignee.swift; sourceTree = ""; }; + 0CD6D5535A0E6A24126DF453CF9B3D18 /* SearchCommitsOwner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchCommitsOwner.swift; path = GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsOwner.swift; sourceTree = ""; }; + 0CF3813EAC175064218EC4D41A15A6DE /* IssuesAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IssuesAPI.swift; path = GithubAPI/Classes/IssuesAPI/IssuesAPI.swift; sourceTree = ""; }; + 0E0D4C43FBBD247541781AFCF0F9062C /* Font Awesome 5 Free-Regular-400.otf */ = {isa = PBXFileReference; includeInIndex = 1; name = "Font Awesome 5 Free-Regular-400.otf"; path = "FontAwesome/Font Awesome 5 Free-Regular-400.otf"; sourceTree = ""; }; + 0F6A9C96229F38FCAAA98F08A9456DCB /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreText.framework; sourceTree = DEVELOPER_DIR; }; + 13694523D54322089F8D63BA65C36B8A /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + 14F37A1A5A8CDB67E0BD402419A09F58 /* FontAwesome.swift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "FontAwesome.swift-Info.plist"; sourceTree = ""; }; + 18014FC9EA4C9FC3381857970F456CAF /* GithubAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GithubAPI.swift; path = GithubAPI/Classes/GithubAPI.swift; sourceTree = ""; }; + 193A815D32F7ECE89D8E894E7AFD8F6E /* SearchIssuesItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchIssuesItem.swift; path = GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesItem.swift; sourceTree = ""; }; + 1950D942633BB6A2C4C3CAC9FAB7A34C /* Pods-repo-browser-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-repo-browser-frameworks.sh"; sourceTree = ""; }; + 19B19C795F88040DAA4792BB92EFE63C /* FontAwesomeBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FontAwesomeBarButtonItem.swift; path = FontAwesome/FontAwesomeBarButtonItem.swift; sourceTree = ""; }; + 1CB8B438033A7E71D6C40669C1D7FEB7 /* GetIssueResponseRepository.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GetIssueResponseRepository.swift; path = GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseRepository.swift; sourceTree = ""; }; + 20A476EA7437EA49348BC9B6A678D79F /* FontAwesomeImageRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FontAwesomeImageRepresentable.swift; path = FontAwesome/FontAwesomeImageRepresentable.swift; sourceTree = ""; }; + 211C690C5CE83D22BAB3DE1A5C884FCB /* SearchAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchAPI.swift; path = GithubAPI/Classes/SearchAPI/SearchAPI.swift; sourceTree = ""; }; + 28A3CCFDC77829170B0B12EB9E3391CF /* FontAwesome_swift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FontAwesome_swift.framework; path = FontAwesome.swift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 28AC9844D7B68190816E1575BB95D03C /* Pods-repo-browserTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-repo-browserTests.modulemap"; sourceTree = ""; }; + 2B79AF7CF47DE48A0739889316A4B9A6 /* Pods-repo-browserTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-repo-browserTests.release.xcconfig"; sourceTree = ""; }; + 2CCA7E6C76A31A192DCC0231F505CF1D /* UserAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UserAPI.swift; path = GithubAPI/Classes/UserAPI/UserAPI.swift; sourceTree = ""; }; + 2EE3CD77E1915B647EA42E8C857100F3 /* RepositoriesContentsAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RepositoriesContentsAPI.swift; path = GithubAPI/Classes/RepositoriesAPI/RepositoriesContentsAPI.swift; sourceTree = ""; }; + 33C59CE97CBF53A79C9FA566BDCB38CC /* SearchCodeResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchCodeResponse.swift; path = GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeResponse.swift; sourceTree = ""; }; + 370A0F250936A9FEB86DBC023932142A /* GetIssueResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GetIssueResponse.swift; path = GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponse.swift; sourceTree = ""; }; + 38661CF14A0D1C62B8F847BB06E1AAC6 /* GithubAPI-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GithubAPI-dummy.m"; sourceTree = ""; }; + 3DA4F5DC4EB6E9DF6B4859D27EF8C9F5 /* FontAwesome.swift.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = FontAwesome.swift.bundle; path = "FontAwesome.swift-FontAwesome.swift.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3EAB59DB5D1B377C9EF6424D52CE8514 /* Enum.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Enum.swift; path = FontAwesome/Enum.swift; sourceTree = ""; }; + 422F605E07F517F1BB63321CE5976B30 /* BaseAPI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = BaseAPI.framework; path = BaseAPI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 428AEA70261F330B24F03BF91DDA9DB9 /* SearchCommitsParent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchCommitsParent.swift; path = GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsParent.swift; sourceTree = ""; }; + 42FD7449CBA2A3F1A248D4A3EBE5A6A8 /* UserPlan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UserPlan.swift; path = GithubAPI/Classes/UserAPI/Models/GetUser/UserPlan.swift; sourceTree = ""; }; + 4415101E29B55154EFEFA4C78FD2E646 /* BaseAPI.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = BaseAPI.modulemap; sourceTree = ""; }; + 4507632D786216ADBD3D3D3BA1F44FE4 /* Pods-repo-browserTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-repo-browserTests.debug.xcconfig"; sourceTree = ""; }; + 47D83DD904C32C1AE90361D55ABA473D /* AllUsersResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AllUsersResponse.swift; path = GithubAPI/Classes/UserAPI/Models/GetAllUsers/AllUsersResponse.swift; sourceTree = ""; }; + 4D3F98183AA0F5E8982EB010565A9B2E /* Pods_repo_browser.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_repo_browser.framework; path = "Pods-repo-browser.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4DAAA6872FA9696668C80BE955286AD5 /* CharacterSet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CharacterSet.swift; path = BaseAPI/Classes/Extensions/CharacterSet.swift; sourceTree = ""; }; + 4E800923DD2852F37D1E9C3AD5BD665E /* Pods-repo-browser.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-repo-browser.debug.xcconfig"; sourceTree = ""; }; + 4EBCAFF59210612C598D2FF6FF6FB4B0 /* BaseAPI-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BaseAPI-dummy.m"; sourceTree = ""; }; + 543DD01AE19C645E0EE393C04A398203 /* SearchCommitsItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchCommitsItem.swift; path = GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsItem.swift; sourceTree = ""; }; + 6378F66F3F96CCEC39EF19B6ADEC0588 /* Pods-repo-browser-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-repo-browser-acknowledgements.markdown"; sourceTree = ""; }; + 647374E79526524FD3BDB93AD5B05D1A /* Pods-repo-browserTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-repo-browserTests-umbrella.h"; sourceTree = ""; }; + 672D00E4ADE84997310B961A41A044CF /* GithubAPI-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GithubAPI-prefix.pch"; sourceTree = ""; }; + 672F733751275C03EBC2705EE14CEF99 /* SearchCommitsCommit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchCommitsCommit.swift; path = GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsCommit.swift; sourceTree = ""; }; + 67A1A8533E902C5F4593CC4717DB3DAF /* Pods-repo-browser-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-repo-browser-umbrella.h"; sourceTree = ""; }; + 6998085A66C69CD85DCA1D7BB31BB2C8 /* Pods-repo-browser-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-repo-browser-Info.plist"; sourceTree = ""; }; + 6FF0E886B2AC33D9FFCF5B626363A41B /* BaseAPI.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BaseAPI.xcconfig; sourceTree = ""; }; + 71AC37A9A8AB89493EB037875F2FA2D2 /* Pods_repo_browserTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_repo_browserTests.framework; path = "Pods-repo-browserTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 71CB91F22EC23E766F63B27AEACCBEF5 /* SearchCodeOwner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchCodeOwner.swift; path = GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeOwner.swift; sourceTree = ""; }; + 73A563861AAC1D746D83F436606272EF /* SearchCommitsAuthor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchCommitsAuthor.swift; path = GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsAuthor.swift; sourceTree = ""; }; + 73D6B8A5D4089D2E0BDC68F75DC5BBBA /* SearchRepositoriesOwner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchRepositoriesOwner.swift; path = GithubAPI/Classes/SearchAPI/Models/Repositories/SearchRepositoriesOwner.swift; sourceTree = ""; }; + 754DBDECF7C646AF72D9E4252904E5B0 /* FontAwesomeTextRepresentable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FontAwesomeTextRepresentable.swift; path = FontAwesome/FontAwesomeTextRepresentable.swift; sourceTree = ""; }; + 7560A0C8214081698EFF3E528B7B5637 /* SearchIssuesPullRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchIssuesPullRequest.swift; path = GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesPullRequest.swift; sourceTree = ""; }; + 78E5E1024979138E18666926A1EEE970 /* SearchCommitsCommitter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchCommitsCommitter.swift; path = GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsCommitter.swift; sourceTree = ""; }; + 7A097DC799F491432A1CA60C149A22AA /* BaseAPI-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BaseAPI-umbrella.h"; sourceTree = ""; }; + 7C8440C189B14D154A920AD0E0823DC5 /* SearchIssuesMilestone.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchIssuesMilestone.swift; path = GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesMilestone.swift; sourceTree = ""; }; + 7D4AFFF41509292A23A20AC0C3164693 /* RepositoryOwner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RepositoryOwner.swift; path = GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryOwner.swift; sourceTree = ""; }; + 815D08DD895FDAB7AB1310472525418D /* SearchCodeRepository.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchCodeRepository.swift; path = GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeRepository.swift; sourceTree = ""; }; + 86EEF5018D278B55346B04F17536FD23 /* OtherUserResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = OtherUserResponse.swift; path = GithubAPI/Classes/UserAPI/Models/GetOtherUser/OtherUserResponse.swift; sourceTree = ""; }; + 87A32E8F3DB14C2B4CABFC3F8940EECA /* Pods-repo-browser.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-repo-browser.release.xcconfig"; sourceTree = ""; }; + 88643157190C85D1A69948876A336698 /* SearchCommitsResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchCommitsResponse.swift; path = GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsResponse.swift; sourceTree = ""; }; + 88FEEFD9F19424230CF56C364FC8019E /* SearchUsersItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchUsersItem.swift; path = GithubAPI/Classes/SearchAPI/Models/Users/SearchUsersItem.swift; sourceTree = ""; }; + 8C8217C4EB616447C279490BB694334B /* Pods-repo-browserTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-repo-browserTests-acknowledgements.markdown"; sourceTree = ""; }; + 8E5221BF89922FCCA13A4A119F9AF3CC /* SearchUsersResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchUsersResponse.swift; path = GithubAPI/Classes/SearchAPI/Models/Users/SearchUsersResponse.swift; sourceTree = ""; }; + 913501D41FF32929916DE744ACD0E4AA /* UserResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UserResponse.swift; path = GithubAPI/Classes/UserAPI/Models/GetUser/UserResponse.swift; sourceTree = ""; }; + 91B58B1489210B610AEB54C0F5D60EB1 /* Pods-repo-browserTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-repo-browserTests-acknowledgements.plist"; sourceTree = ""; }; + 94CA802FC27F5B2DCCE78EEAB223DB12 /* FontAwesomeSegmentedControl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FontAwesomeSegmentedControl.swift; path = FontAwesome/FontAwesomeSegmentedControl.swift; sourceTree = ""; }; + 9521BD9BB853BFF578F2E212F274CD5D /* RequestHeaderFields.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestHeaderFields.swift; path = BaseAPI/Classes/RequestHeaderFields.swift; sourceTree = ""; }; + 963965AD858629A83887C6F2920FC25B /* FontAwesome.swift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FontAwesome.swift-prefix.pch"; sourceTree = ""; }; + 9650CA800594E94027F19F3C48284D02 /* Issue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Issue.swift; path = GithubAPI/Classes/IssuesAPI/Models/CreateIssue/Issue.swift; sourceTree = ""; }; + 982AA88E5B16955BDD93E8C6C6AA6175 /* Pods-repo-browser.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-repo-browser.modulemap"; sourceTree = ""; }; + 990438747E7762AF4433FB79A6298A1D /* SearchIssuesMilestoneCreator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchIssuesMilestoneCreator.swift; path = GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesMilestoneCreator.swift; sourceTree = ""; }; + 99C0E061C016BE8EF1A696C5B1EECB0C /* Pods-repo-browserTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-repo-browserTests-dummy.m"; sourceTree = ""; }; + 9D56A31E23F2864DA0491A0F7B5DCFD0 /* GetIssueResponseMilestone.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GetIssueResponseMilestone.swift; path = GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseMilestone.swift; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A43B75C8BABBCAD22EEDD9124DDD3B57 /* RepositoryOrganization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RepositoryOrganization.swift; path = GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryOrganization.swift; sourceTree = ""; }; + A6E958730058030B75189FFAF50BAF8C /* FontAwesomeView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FontAwesomeView.swift; path = FontAwesome/FontAwesomeView.swift; sourceTree = ""; }; + A89C094C4C4F4FC5A1B61F30D0F0BDF8 /* SearchIssuesLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchIssuesLabel.swift; path = GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesLabel.swift; sourceTree = ""; }; + AAEEB48998D9BC31C075509BBE388ECE /* FontAwesomeStateRequirement.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FontAwesomeStateRequirement.swift; path = FontAwesome/FontAwesomeStateRequirement.swift; sourceTree = ""; }; + ABD22F9AFDF61D0579C7817442C128EC /* RepositoryParent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RepositoryParent.swift; path = GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryParent.swift; sourceTree = ""; }; + B05F52A1DCC6C90F8786CF29F1867DC9 /* BaseAPI-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "BaseAPI-Info.plist"; sourceTree = ""; }; + B13B99C024C1983706C6652F341F9888 /* BaseAPI-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BaseAPI-prefix.pch"; sourceTree = ""; }; + B3637F739CEF95280620B0031E55DB24 /* ResourceBundle-FontAwesome.swift-FontAwesome.swift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-FontAwesome.swift-FontAwesome.swift-Info.plist"; sourceTree = ""; }; + B43D069906EA7488446BA32D68DB3FCC /* String.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = String.swift; path = BaseAPI/Classes/Extensions/String.swift; sourceTree = ""; }; + B4932F2CDD333C0EEDDD58EA22D22693 /* FontAwesome.swift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FontAwesome.swift-dummy.m"; sourceTree = ""; }; + B6627C6AE5EB81526411FB1653432E16 /* SearchCommitsTree.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchCommitsTree.swift; path = GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsTree.swift; sourceTree = ""; }; + BB6F8354E0B14E5F2D3295ACA1F25C84 /* Pods-repo-browser-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-repo-browser-acknowledgements.plist"; sourceTree = ""; }; + BBD7638B0032734BFBA147D52F2C1147 /* GetIssueResponsePermission.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GetIssueResponsePermission.swift; path = GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponsePermission.swift; sourceTree = ""; }; + BEAB52F6002FCAE332483565E4035369 /* GithubAPI.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = GithubAPI.modulemap; sourceTree = ""; }; + C27E90571098733F4BC388788181EC98 /* SearchRepositoriesResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchRepositoriesResponse.swift; path = GithubAPI/Classes/SearchAPI/Models/Repositories/SearchRepositoriesResponse.swift; sourceTree = ""; }; + C3B7C7B18EA8C7FD8E58585F62FE8933 /* Font Awesome 5 Brands-Regular-400.otf */ = {isa = PBXFileReference; includeInIndex = 1; name = "Font Awesome 5 Brands-Regular-400.otf"; path = "FontAwesome/Font Awesome 5 Brands-Regular-400.otf"; sourceTree = ""; }; + C48BAFD6148718FA73860039D0E53E0F /* GetIssueResponseLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GetIssueResponseLabel.swift; path = GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseLabel.swift; sourceTree = ""; }; + C89413DB736951BF10AB215497F4F6BD /* GetIssueResponseAssignee.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GetIssueResponseAssignee.swift; path = GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponseAssignee.swift; sourceTree = ""; }; + D1BC8FC2271397858B6D4EDBB4797ED3 /* SearchIssuesResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchIssuesResponse.swift; path = GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesResponse.swift; sourceTree = ""; }; + D226B028F7638BE8DD03A5AEF41801B5 /* RepositoryContentsLink.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RepositoryContentsLink.swift; path = GithubAPI/Classes/RepositoriesAPI/Models/RepositoryContents/RepositoryContentsLink.swift; sourceTree = ""; }; + D25965E2367539B9333292E671A426D0 /* FontAwesome.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FontAwesome.swift; path = FontAwesome/FontAwesome.swift; sourceTree = ""; }; + D4C38F169D6511FF055D19B96668F15C /* BaseAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BaseAPI.swift; path = BaseAPI/Classes/BaseAPI.swift; sourceTree = ""; }; + D820B7DC9B15F0BA46EE7023BC8A1C09 /* NotificationsResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NotificationsResponse.swift; path = GithubAPI/Classes/NotificationsAPI/Models/NotificationsResponse.swift; sourceTree = ""; }; + D93DB59C06129ABA5DDF3D95A51C5812 /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = BaseAPI/Classes/Request.swift; sourceTree = ""; }; + DB0E01C792508BFDCDD9A2461D962B28 /* RepositoryPermission.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RepositoryPermission.swift; path = GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryPermission.swift; sourceTree = ""; }; + DE5684697D2BC17F7E469B452E38CDE7 /* NotificationsOwner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NotificationsOwner.swift; path = GithubAPI/Classes/NotificationsAPI/Models/NotificationsOwner.swift; sourceTree = ""; }; + DE6949261B5EDACF3229EADB604A9579 /* FontAwesomeExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FontAwesomeExtension.swift; path = FontAwesome/FontAwesomeExtension.swift; sourceTree = ""; }; + DEE2A3AD37D4A14B8103127D85F7AD7B /* GithubAPI-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GithubAPI-umbrella.h"; sourceTree = ""; }; + E1EA93EE25B5522171BFC04DA84C0CA4 /* RepositoriesAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RepositoriesAPI.swift; path = GithubAPI/Classes/RepositoriesAPI/RepositoriesAPI.swift; sourceTree = ""; }; + E2E03ADCF74F9291FBF49B1DBD3ADEC9 /* GithubAPI.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GithubAPI.xcconfig; sourceTree = ""; }; + E62ED4B5BD0F304DD265BA126341C465 /* UpdateUser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UpdateUser.swift; path = GithubAPI/Classes/UserAPI/Models/UpdateUser/UpdateUser.swift; sourceTree = ""; }; + E65531C33B5F54FFC739D9C150DFCD1F /* GithubAPI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = GithubAPI.framework; path = GithubAPI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E790524FA70D43C376824CA0B9052728 /* GetIssueResponsePullRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GetIssueResponsePullRequest.swift; path = GithubAPI/Classes/IssuesAPI/Models/GetIssueResponse/GetIssueResponsePullRequest.swift; sourceTree = ""; }; + E7C20649FAF4BEC0AA21AB8D6DE97ACA /* OtherUserError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = OtherUserError.swift; path = GithubAPI/Classes/UserAPI/Models/GetOtherUser/OtherUserError.swift; sourceTree = ""; }; + E8FFB5AA1852D837383511EB4E5377CB /* Pods-repo-browser-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-repo-browser-dummy.m"; sourceTree = ""; }; + E97E6C982A4A349ACE1C2A4C5D2D2ABD /* Font Awesome 5 Free-Solid-900.otf */ = {isa = PBXFileReference; includeInIndex = 1; name = "Font Awesome 5 Free-Solid-900.otf"; path = "FontAwesome/Font Awesome 5 Free-Solid-900.otf"; sourceTree = ""; }; + EA5BF940E55803B87C8B9690BD53ACE1 /* Pods-repo-browserTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-repo-browserTests-Info.plist"; sourceTree = ""; }; + ECC79D70F71D613E6364665B97A3BB1D /* SearchRepositoriesItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchRepositoriesItem.swift; path = GithubAPI/Classes/SearchAPI/Models/Repositories/SearchRepositoriesItem.swift; sourceTree = ""; }; + ED7300918E4A61AB996599384EB13F19 /* SearchIssuesUser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchIssuesUser.swift; path = GithubAPI/Classes/SearchAPI/Models/Issues/SearchIssuesUser.swift; sourceTree = ""; }; + F21B2AFF65841EF1CFD026A348DDC352 /* SearchCodeItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchCodeItem.swift; path = GithubAPI/Classes/SearchAPI/Models/Code/SearchCodeItem.swift; sourceTree = ""; }; + F28A77C1226E2541EAF7B6E3B589E6B0 /* RepositoryReponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RepositoryReponse.swift; path = GithubAPI/Classes/RepositoriesAPI/Models/Repository/RepositoryReponse.swift; sourceTree = ""; }; + F666121A0BCB415E5A5E0D316427B8DF /* BaseAPI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BaseAPI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F6BE79EE9C7351D9C0E533C6A073366C /* URLSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLSession.swift; path = BaseAPI/Classes/Extensions/URLSession.swift; sourceTree = ""; }; + F95662181244C9031710CF9B01917CFB /* SearchCommitsRepository.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SearchCommitsRepository.swift; path = GithubAPI/Classes/SearchAPI/Models/Commits/SearchCommitsRepository.swift; sourceTree = ""; }; + F9F6A30DB686A598075A7B008B5171B0 /* FontAwesome.swift.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FontAwesome.swift.xcconfig; sourceTree = ""; }; + FC7AA0CAD1AD4BF93E718857932202A1 /* RepositoryContentsReponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RepositoryContentsReponse.swift; path = GithubAPI/Classes/RepositoriesAPI/Models/RepositoryContents/RepositoryContentsReponse.swift; sourceTree = ""; }; + FCE5B6D46A8F09E5E98E64960E0C7975 /* Authentication.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Authentication.swift; path = GithubAPI/Classes/Authentication.swift; sourceTree = ""; }; + FD1A53F9C582300BF9BEC8BE8715B39D /* RequestMethod.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestMethod.swift; path = BaseAPI/Classes/RequestMethod.swift; sourceTree = ""; }; + FDF05E63708FF8AD75B5DDBA0DB7E584 /* 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; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0E812F59647F5D23424D548F66DAB80F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8E268FC52FFFD64E7F663DA8146E1A73 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8CFEFA757657368FFB8418537440C22F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AF70BDBD27A8A9C1B4139CA6FF0E1770 /* BaseAPI.framework in Frameworks */, + AE232955C42F0DC3DD075C740985880B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ADEA3AE518E8E9D076B70ECD1599664F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BA1BA5BBAEFF939D2307846737E2A4F9 /* CoreText.framework in Frameworks */, + 85D37B2D1F2D31A1E66838B0EFC3CB84 /* Foundation.framework in Frameworks */, + 2C3D398884B8D56C87CA9E59C7199DB1 /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B80F0A693527F3A42E04FA6078A787D4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C69F337713A37CF436B8E5B73B0E812A /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D1D2CF048278DC004B9D2DF2A6F34D8D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AA74662429C309950C95E727A75220CB /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E6B4D88EC67F9CC4390F978C3982D88F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 273B48E0267D4D859F21D95008507928 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 85E5DDA4B1E8FF372E3CF2F1C879E831 /* Pods-repo-browser */, + C3B13D8E434D73E767D9DCEF870F74B4 /* Pods-repo-browserTests */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 49D016198CDEF7912B670C973F89A380 /* GithubAPI */ = { + isa = PBXGroup; + children = ( + 47D83DD904C32C1AE90361D55ABA473D /* AllUsersResponse.swift */, + FCE5B6D46A8F09E5E98E64960E0C7975 /* Authentication.swift */, + 370A0F250936A9FEB86DBC023932142A /* GetIssueResponse.swift */, + C89413DB736951BF10AB215497F4F6BD /* GetIssueResponseAssignee.swift */, + C48BAFD6148718FA73860039D0E53E0F /* GetIssueResponseLabel.swift */, + 9D56A31E23F2864DA0491A0F7B5DCFD0 /* GetIssueResponseMilestone.swift */, + BBD7638B0032734BFBA147D52F2C1147 /* GetIssueResponsePermission.swift */, + E790524FA70D43C376824CA0B9052728 /* GetIssueResponsePullRequest.swift */, + 1CB8B438033A7E71D6C40669C1D7FEB7 /* GetIssueResponseRepository.swift */, + 18014FC9EA4C9FC3381857970F456CAF /* GithubAPI.swift */, + 9650CA800594E94027F19F3C48284D02 /* Issue.swift */, + 0CF3813EAC175064218EC4D41A15A6DE /* IssuesAPI.swift */, + 00EB999B16F20D08A68169AE737C9B7C /* NotificationsAPI.swift */, + DE5684697D2BC17F7E469B452E38CDE7 /* NotificationsOwner.swift */, + 09B28D2E5301B7426793D3371B4AB945 /* NotificationsRepository.swift */, + D820B7DC9B15F0BA46EE7023BC8A1C09 /* NotificationsResponse.swift */, + 07BA86705C76C7720658A124E7C364D8 /* NotificationsSubject.swift */, + E7C20649FAF4BEC0AA21AB8D6DE97ACA /* OtherUserError.swift */, + 86EEF5018D278B55346B04F17536FD23 /* OtherUserResponse.swift */, + E1EA93EE25B5522171BFC04DA84C0CA4 /* RepositoriesAPI.swift */, + 2EE3CD77E1915B647EA42E8C857100F3 /* RepositoriesContentsAPI.swift */, + D226B028F7638BE8DD03A5AEF41801B5 /* RepositoryContentsLink.swift */, + FC7AA0CAD1AD4BF93E718857932202A1 /* RepositoryContentsReponse.swift */, + 08B83933FD3632C8D3D73262888A1EDE /* RepositoryLicense.swift */, + A43B75C8BABBCAD22EEDD9124DDD3B57 /* RepositoryOrganization.swift */, + 7D4AFFF41509292A23A20AC0C3164693 /* RepositoryOwner.swift */, + ABD22F9AFDF61D0579C7817442C128EC /* RepositoryParent.swift */, + DB0E01C792508BFDCDD9A2461D962B28 /* RepositoryPermission.swift */, + F28A77C1226E2541EAF7B6E3B589E6B0 /* RepositoryReponse.swift */, + 211C690C5CE83D22BAB3DE1A5C884FCB /* SearchAPI.swift */, + F21B2AFF65841EF1CFD026A348DDC352 /* SearchCodeItem.swift */, + 71CB91F22EC23E766F63B27AEACCBEF5 /* SearchCodeOwner.swift */, + 815D08DD895FDAB7AB1310472525418D /* SearchCodeRepository.swift */, + 33C59CE97CBF53A79C9FA566BDCB38CC /* SearchCodeResponse.swift */, + 73A563861AAC1D746D83F436606272EF /* SearchCommitsAuthor.swift */, + 672F733751275C03EBC2705EE14CEF99 /* SearchCommitsCommit.swift */, + 78E5E1024979138E18666926A1EEE970 /* SearchCommitsCommitter.swift */, + 543DD01AE19C645E0EE393C04A398203 /* SearchCommitsItem.swift */, + 0CD6D5535A0E6A24126DF453CF9B3D18 /* SearchCommitsOwner.swift */, + 428AEA70261F330B24F03BF91DDA9DB9 /* SearchCommitsParent.swift */, + F95662181244C9031710CF9B01917CFB /* SearchCommitsRepository.swift */, + 88643157190C85D1A69948876A336698 /* SearchCommitsResponse.swift */, + B6627C6AE5EB81526411FB1653432E16 /* SearchCommitsTree.swift */, + 0B94301FC267EDB049134FC42162D1D2 /* SearchIssuesAssignee.swift */, + 193A815D32F7ECE89D8E894E7AFD8F6E /* SearchIssuesItem.swift */, + A89C094C4C4F4FC5A1B61F30D0F0BDF8 /* SearchIssuesLabel.swift */, + 7C8440C189B14D154A920AD0E0823DC5 /* SearchIssuesMilestone.swift */, + 990438747E7762AF4433FB79A6298A1D /* SearchIssuesMilestoneCreator.swift */, + 7560A0C8214081698EFF3E528B7B5637 /* SearchIssuesPullRequest.swift */, + D1BC8FC2271397858B6D4EDBB4797ED3 /* SearchIssuesResponse.swift */, + ED7300918E4A61AB996599384EB13F19 /* SearchIssuesUser.swift */, + ECC79D70F71D613E6364665B97A3BB1D /* SearchRepositoriesItem.swift */, + 73D6B8A5D4089D2E0BDC68F75DC5BBBA /* SearchRepositoriesOwner.swift */, + C27E90571098733F4BC388788181EC98 /* SearchRepositoriesResponse.swift */, + 88FEEFD9F19424230CF56C364FC8019E /* SearchUsersItem.swift */, + 8E5221BF89922FCCA13A4A119F9AF3CC /* SearchUsersResponse.swift */, + E62ED4B5BD0F304DD265BA126341C465 /* UpdateUser.swift */, + 2CCA7E6C76A31A192DCC0231F505CF1D /* UserAPI.swift */, + 42FD7449CBA2A3F1A248D4A3EBE5A6A8 /* UserPlan.swift */, + 913501D41FF32929916DE744ACD0E4AA /* UserResponse.swift */, + 5B134C37F333F6CE3E6996D96C517344 /* Support Files */, + ); + name = GithubAPI; + path = GithubAPI; + sourceTree = ""; + }; + 5B134C37F333F6CE3E6996D96C517344 /* Support Files */ = { + isa = PBXGroup; + children = ( + BEAB52F6002FCAE332483565E4035369 /* GithubAPI.modulemap */, + E2E03ADCF74F9291FBF49B1DBD3ADEC9 /* GithubAPI.xcconfig */, + 38661CF14A0D1C62B8F847BB06E1AAC6 /* GithubAPI-dummy.m */, + 03A98DFC3AA089C962A03F5E415974D1 /* GithubAPI-Info.plist */, + 672D00E4ADE84997310B961A41A044CF /* GithubAPI-prefix.pch */, + DEE2A3AD37D4A14B8103127D85F7AD7B /* GithubAPI-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/GithubAPI"; + sourceTree = ""; + }; + 5C09C5130BEFC873327B51D2144AD8D6 /* Resources */ = { + isa = PBXGroup; + children = ( + C3B7C7B18EA8C7FD8E58585F62FE8933 /* Font Awesome 5 Brands-Regular-400.otf */, + 0E0D4C43FBBD247541781AFCF0F9062C /* Font Awesome 5 Free-Regular-400.otf */, + E97E6C982A4A349ACE1C2A4C5D2D2ABD /* Font Awesome 5 Free-Solid-900.otf */, + ); + name = Resources; + sourceTree = ""; + }; + 7813A353ECA5D75EF8EB1433F120B645 /* BaseAPI */ = { + isa = PBXGroup; + children = ( + D4C38F169D6511FF055D19B96668F15C /* BaseAPI.swift */, + 4DAAA6872FA9696668C80BE955286AD5 /* CharacterSet.swift */, + D93DB59C06129ABA5DDF3D95A51C5812 /* Request.swift */, + 9521BD9BB853BFF578F2E212F274CD5D /* RequestHeaderFields.swift */, + FD1A53F9C582300BF9BEC8BE8715B39D /* RequestMethod.swift */, + B43D069906EA7488446BA32D68DB3FCC /* String.swift */, + F6BE79EE9C7351D9C0E533C6A073366C /* URLSession.swift */, + F9D1359A5778BDBFA874AC57AE026F10 /* Support Files */, + ); + name = BaseAPI; + path = BaseAPI; + sourceTree = ""; + }; + 85E5DDA4B1E8FF372E3CF2F1C879E831 /* Pods-repo-browser */ = { + isa = PBXGroup; + children = ( + 982AA88E5B16955BDD93E8C6C6AA6175 /* Pods-repo-browser.modulemap */, + 6378F66F3F96CCEC39EF19B6ADEC0588 /* Pods-repo-browser-acknowledgements.markdown */, + BB6F8354E0B14E5F2D3295ACA1F25C84 /* Pods-repo-browser-acknowledgements.plist */, + E8FFB5AA1852D837383511EB4E5377CB /* Pods-repo-browser-dummy.m */, + 1950D942633BB6A2C4C3CAC9FAB7A34C /* Pods-repo-browser-frameworks.sh */, + 6998085A66C69CD85DCA1D7BB31BB2C8 /* Pods-repo-browser-Info.plist */, + 67A1A8533E902C5F4593CC4717DB3DAF /* Pods-repo-browser-umbrella.h */, + 4E800923DD2852F37D1E9C3AD5BD665E /* Pods-repo-browser.debug.xcconfig */, + 87A32E8F3DB14C2B4CABFC3F8940EECA /* Pods-repo-browser.release.xcconfig */, + ); + name = "Pods-repo-browser"; + path = "Target Support Files/Pods-repo-browser"; + sourceTree = ""; + }; + 88216C1D303516C9DB5DD517C8C4B1D6 /* Products */ = { + isa = PBXGroup; + children = ( + 422F605E07F517F1BB63321CE5976B30 /* BaseAPI.framework */, + 3DA4F5DC4EB6E9DF6B4859D27EF8C9F5 /* FontAwesome.swift.bundle */, + 28A3CCFDC77829170B0B12EB9E3391CF /* FontAwesome_swift.framework */, + E65531C33B5F54FFC739D9C150DFCD1F /* GithubAPI.framework */, + 4D3F98183AA0F5E8982EB010565A9B2E /* Pods_repo_browser.framework */, + 71AC37A9A8AB89493EB037875F2FA2D2 /* Pods_repo_browserTests.framework */, + ); + name = Products; + sourceTree = ""; + }; + 97F0916EDF6338803DC4C3D14CDF21CB /* Support Files */ = { + isa = PBXGroup; + children = ( + 05408D879768109798F40F7E2C8D53CD /* FontAwesome.swift.modulemap */, + F9F6A30DB686A598075A7B008B5171B0 /* FontAwesome.swift.xcconfig */, + B4932F2CDD333C0EEDDD58EA22D22693 /* FontAwesome.swift-dummy.m */, + 14F37A1A5A8CDB67E0BD402419A09F58 /* FontAwesome.swift-Info.plist */, + 963965AD858629A83887C6F2920FC25B /* FontAwesome.swift-prefix.pch */, + 01665A7C7DA538170E6484E4B52DBD2F /* FontAwesome.swift-umbrella.h */, + B3637F739CEF95280620B0031E55DB24 /* ResourceBundle-FontAwesome.swift-FontAwesome.swift-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/FontAwesome.swift"; + sourceTree = ""; + }; + A6D3EE04A8962E0886EF2211032ECCFC /* iOS */ = { + isa = PBXGroup; + children = ( + 0F6A9C96229F38FCAAA98F08A9456DCB /* CoreText.framework */, + FDF05E63708FF8AD75B5DDBA0DB7E584 /* Foundation.framework */, + 13694523D54322089F8D63BA65C36B8A /* UIKit.framework */, + ); + name = iOS; + sourceTree = ""; + }; + B92E69CBD1714607B57FBF5E591D7AB0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + F666121A0BCB415E5A5E0D316427B8DF /* BaseAPI.framework */, + A6D3EE04A8962E0886EF2211032ECCFC /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + C3B13D8E434D73E767D9DCEF870F74B4 /* Pods-repo-browserTests */ = { + isa = PBXGroup; + children = ( + 28AC9844D7B68190816E1575BB95D03C /* Pods-repo-browserTests.modulemap */, + 8C8217C4EB616447C279490BB694334B /* Pods-repo-browserTests-acknowledgements.markdown */, + 91B58B1489210B610AEB54C0F5D60EB1 /* Pods-repo-browserTests-acknowledgements.plist */, + 99C0E061C016BE8EF1A696C5B1EECB0C /* Pods-repo-browserTests-dummy.m */, + EA5BF940E55803B87C8B9690BD53ACE1 /* Pods-repo-browserTests-Info.plist */, + 647374E79526524FD3BDB93AD5B05D1A /* Pods-repo-browserTests-umbrella.h */, + 4507632D786216ADBD3D3D3BA1F44FE4 /* Pods-repo-browserTests.debug.xcconfig */, + 2B79AF7CF47DE48A0739889316A4B9A6 /* Pods-repo-browserTests.release.xcconfig */, + ); + name = "Pods-repo-browserTests"; + path = "Target Support Files/Pods-repo-browserTests"; + sourceTree = ""; + }; + C540621E1F6E2856088A81814472EA31 /* Pods */ = { + isa = PBXGroup; + children = ( + 7813A353ECA5D75EF8EB1433F120B645 /* BaseAPI */, + D66D7826BDF82F7E8481F0094D28D2C8 /* FontAwesome.swift */, + 49D016198CDEF7912B670C973F89A380 /* GithubAPI */, + ); + name = Pods; + sourceTree = ""; + }; + CF1408CF629C7361332E53B88F7BD30C = { + isa = PBXGroup; + children = ( + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + B92E69CBD1714607B57FBF5E591D7AB0 /* Frameworks */, + C540621E1F6E2856088A81814472EA31 /* Pods */, + 88216C1D303516C9DB5DD517C8C4B1D6 /* Products */, + 273B48E0267D4D859F21D95008507928 /* Targets Support Files */, + ); + sourceTree = ""; + }; + D66D7826BDF82F7E8481F0094D28D2C8 /* FontAwesome.swift */ = { + isa = PBXGroup; + children = ( + 3EAB59DB5D1B377C9EF6424D52CE8514 /* Enum.swift */, + D25965E2367539B9333292E671A426D0 /* FontAwesome.swift */, + 19B19C795F88040DAA4792BB92EFE63C /* FontAwesomeBarButtonItem.swift */, + DE6949261B5EDACF3229EADB604A9579 /* FontAwesomeExtension.swift */, + 20A476EA7437EA49348BC9B6A678D79F /* FontAwesomeImageRepresentable.swift */, + 08B86876311D721209478A5FB5215E52 /* FontAwesomeImageView.swift */, + 94CA802FC27F5B2DCCE78EEAB223DB12 /* FontAwesomeSegmentedControl.swift */, + AAEEB48998D9BC31C075509BBE388ECE /* FontAwesomeStateRequirement.swift */, + 0B54DFD4AD35F6B155F029883ED684F1 /* FontAwesomeTabBarItem.swift */, + 754DBDECF7C646AF72D9E4252904E5B0 /* FontAwesomeTextRepresentable.swift */, + A6E958730058030B75189FFAF50BAF8C /* FontAwesomeView.swift */, + 5C09C5130BEFC873327B51D2144AD8D6 /* Resources */, + 97F0916EDF6338803DC4C3D14CDF21CB /* Support Files */, + ); + name = FontAwesome.swift; + path = FontAwesome.swift; + sourceTree = ""; + }; + F9D1359A5778BDBFA874AC57AE026F10 /* Support Files */ = { + isa = PBXGroup; + children = ( + 4415101E29B55154EFEFA4C78FD2E646 /* BaseAPI.modulemap */, + 6FF0E886B2AC33D9FFCF5B626363A41B /* BaseAPI.xcconfig */, + 4EBCAFF59210612C598D2FF6FF6FB4B0 /* BaseAPI-dummy.m */, + B05F52A1DCC6C90F8786CF29F1867DC9 /* BaseAPI-Info.plist */, + B13B99C024C1983706C6652F341F9888 /* BaseAPI-prefix.pch */, + 7A097DC799F491432A1CA60C149A22AA /* BaseAPI-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/BaseAPI"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 0DD251E879303CF624CD48A4B77725C1 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 4563F38E9C355744C1C466413CD0931C /* BaseAPI-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0EEC2A165AC01C2DF84F6D9AF1F9C879 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9527B0AC77733FD2F7F54BCFEF8358FF /* GithubAPI-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 13A606C90AFD158705B6FCFCE3972650 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 651E8FA71DF52988E4F0B4FA2834F675 /* Pods-repo-browserTests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 873002DC3BED3F11F9040EA090382279 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 7199F92FBB50BD74ECCC4BFD95B760CF /* FontAwesome.swift-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AB0B05009633A5DA8EDC78FA16F74F3B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 5A1534730688D0FB9158F97421D70ADC /* Pods-repo-browser-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 1F23F2351DC311504812F672ADDDA30E /* Pods-repo-browser */ = { + isa = PBXNativeTarget; + buildConfigurationList = F31E1A9986B7D6B3BC558F594BCD9AF7 /* Build configuration list for PBXNativeTarget "Pods-repo-browser" */; + buildPhases = ( + AB0B05009633A5DA8EDC78FA16F74F3B /* Headers */, + 6E2721D9022E5269381F8CE7E623FA59 /* Sources */, + 0E812F59647F5D23424D548F66DAB80F /* Frameworks */, + 165BC03A1187476A782AC4F61285C3D3 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + AB9D120258AFA7000E3A2E4CF13F86E3 /* PBXTargetDependency */, + 374C607E3B4565E195D305B3A1A387FD /* PBXTargetDependency */, + D0175C823B1BD68487FDA7C123117C8C /* PBXTargetDependency */, + ); + name = "Pods-repo-browser"; + productName = "Pods-repo-browser"; + productReference = 4D3F98183AA0F5E8982EB010565A9B2E /* Pods_repo_browser.framework */; + productType = "com.apple.product-type.framework"; + }; + 46612857DE0B03605DCFF866695FF265 /* GithubAPI */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1742123A90829FAB352CA176B949E415 /* Build configuration list for PBXNativeTarget "GithubAPI" */; + buildPhases = ( + 0EEC2A165AC01C2DF84F6D9AF1F9C879 /* Headers */, + 01E4745A955F8CDE64BEF5E213F010D6 /* Sources */, + 8CFEFA757657368FFB8418537440C22F /* Frameworks */, + 87FE4B2CD4289B10CFE8C7DAE45A5073 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 0D2BCE2A873ACCD4EE49C8B68EF51591 /* PBXTargetDependency */, + ); + name = GithubAPI; + productName = GithubAPI; + productReference = E65531C33B5F54FFC739D9C150DFCD1F /* GithubAPI.framework */; + productType = "com.apple.product-type.framework"; + }; + 4DC20DD2E50259D674257304EC016C93 /* FontAwesome.swift-FontAwesome.swift */ = { + isa = PBXNativeTarget; + buildConfigurationList = 41C253EBFE15226002761A36F667557C /* Build configuration list for PBXNativeTarget "FontAwesome.swift-FontAwesome.swift" */; + buildPhases = ( + 4EDBF16C6993CAFC8201E9B3D3B71B3D /* Sources */, + E6B4D88EC67F9CC4390F978C3982D88F /* Frameworks */, + 7512763882CF1F5620ED6284BCC635D2 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "FontAwesome.swift-FontAwesome.swift"; + productName = "FontAwesome.swift-FontAwesome.swift"; + productReference = 3DA4F5DC4EB6E9DF6B4859D27EF8C9F5 /* FontAwesome.swift.bundle */; + productType = "com.apple.product-type.bundle"; + }; + 52A3A9E9E88D73EBB7A6F7550E196A91 /* Pods-repo-browserTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2A2535E26B6B338E427B5CD0A1DA6451 /* Build configuration list for PBXNativeTarget "Pods-repo-browserTests" */; + buildPhases = ( + 13A606C90AFD158705B6FCFCE3972650 /* Headers */, + AE001D7541F564239F762710E8888B1C /* Sources */, + D1D2CF048278DC004B9D2DF2A6F34D8D /* Frameworks */, + 7AF16290E1CD75B078A372CC02B1F778 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + D001B45CE83486D9263885886849856C /* PBXTargetDependency */, + ); + name = "Pods-repo-browserTests"; + productName = "Pods-repo-browserTests"; + productReference = 71AC37A9A8AB89493EB037875F2FA2D2 /* Pods_repo_browserTests.framework */; + productType = "com.apple.product-type.framework"; + }; + 6D3AF0C6AF53B8F230647F79054EF73F /* BaseAPI */ = { + isa = PBXNativeTarget; + buildConfigurationList = 359249C1DC1077DCA0FE6EC62255C0C1 /* Build configuration list for PBXNativeTarget "BaseAPI" */; + buildPhases = ( + 0DD251E879303CF624CD48A4B77725C1 /* Headers */, + 72E579ED0175282EA39D6FF29102BA36 /* Sources */, + B80F0A693527F3A42E04FA6078A787D4 /* Frameworks */, + 45A9B4B979E9D6A70322F01F229A4B64 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = BaseAPI; + productName = BaseAPI; + productReference = 422F605E07F517F1BB63321CE5976B30 /* BaseAPI.framework */; + productType = "com.apple.product-type.framework"; + }; + BB240150692F32EC312F3CF346C8B9D1 /* FontAwesome.swift */ = { + isa = PBXNativeTarget; + buildConfigurationList = C08BB7EBEAAF5EA3ADA8486A4166A737 /* Build configuration list for PBXNativeTarget "FontAwesome.swift" */; + buildPhases = ( + 873002DC3BED3F11F9040EA090382279 /* Headers */, + BB6A28F0BB13388F2FCE79F414B488F0 /* Sources */, + ADEA3AE518E8E9D076B70ECD1599664F /* Frameworks */, + B78B96440B5C1CFC4865A76626451EF8 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 97585A8A5359A16373A49A0B954DA6A1 /* PBXTargetDependency */, + ); + name = FontAwesome.swift; + productName = FontAwesome.swift; + productReference = 28A3CCFDC77829170B0B12EB9E3391CF /* FontAwesome_swift.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1020; + LastUpgradeCheck = 1020; + }; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = 88216C1D303516C9DB5DD517C8C4B1D6 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 6D3AF0C6AF53B8F230647F79054EF73F /* BaseAPI */, + BB240150692F32EC312F3CF346C8B9D1 /* FontAwesome.swift */, + 4DC20DD2E50259D674257304EC016C93 /* FontAwesome.swift-FontAwesome.swift */, + 46612857DE0B03605DCFF866695FF265 /* GithubAPI */, + 1F23F2351DC311504812F672ADDDA30E /* Pods-repo-browser */, + 52A3A9E9E88D73EBB7A6F7550E196A91 /* Pods-repo-browserTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 165BC03A1187476A782AC4F61285C3D3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 45A9B4B979E9D6A70322F01F229A4B64 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7512763882CF1F5620ED6284BCC635D2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EF96B616BE75A442019963B01D73D91C /* Font Awesome 5 Brands-Regular-400.otf in Resources */, + D28A7A864BAD82F9F7EB2E84B03D3AEB /* Font Awesome 5 Free-Regular-400.otf in Resources */, + 70B81B938724ACD63F905A070523E07C /* Font Awesome 5 Free-Solid-900.otf in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7AF16290E1CD75B078A372CC02B1F778 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 87FE4B2CD4289B10CFE8C7DAE45A5073 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B78B96440B5C1CFC4865A76626451EF8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 68BAC7962A168D4583274C0DD9325578 /* FontAwesome.swift.bundle in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 01E4745A955F8CDE64BEF5E213F010D6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1C93B9E977D03236A6601B33337A7DFB /* AllUsersResponse.swift in Sources */, + 788CF91D4B92F5E5A3CBB9C5007A55B4 /* Authentication.swift in Sources */, + 3AB755DF1D88B014DD3D5DAD755FA6DE /* GetIssueResponse.swift in Sources */, + CB47FC55ADA39CF91F689802CF5BC1DD /* GetIssueResponseAssignee.swift in Sources */, + FEB652926056A7677F4672027618EB01 /* GetIssueResponseLabel.swift in Sources */, + 9B07F953B28919F1FAED988C5952CA3C /* GetIssueResponseMilestone.swift in Sources */, + FCD5AA681298CFDC1DFA166D55ABF216 /* GetIssueResponsePermission.swift in Sources */, + 232CFE4F19BD7BCABB942B19253766DD /* GetIssueResponsePullRequest.swift in Sources */, + 0F38DD5AD90DFBBF8047B080A7D47158 /* GetIssueResponseRepository.swift in Sources */, + FD3F707097FE280DB40038660B8107BA /* GithubAPI-dummy.m in Sources */, + A90D5DBB9CCF37931BA57E468295D1D9 /* GithubAPI.swift in Sources */, + F7A64BCE2B95700F334864683C606171 /* Issue.swift in Sources */, + EB9066F34D45DE87C2751834427DE4F8 /* IssuesAPI.swift in Sources */, + F298C239B4D051C0C832C672817A28C8 /* NotificationsAPI.swift in Sources */, + 0E8855C26F318647C231758045C1983D /* NotificationsOwner.swift in Sources */, + 66F009555E30BE7745CFB05BC6E9F2BF /* NotificationsRepository.swift in Sources */, + C14DE531101551DCCADEF4AC968A561B /* NotificationsResponse.swift in Sources */, + DD45966ACBDE28A824052DD6CF815A07 /* NotificationsSubject.swift in Sources */, + D46FE73409B0F98ED2E67F6A335C1CDA /* OtherUserError.swift in Sources */, + 14C81AA137EA2DAE2426B768131DB4A9 /* OtherUserResponse.swift in Sources */, + 7D61378E17B4B7C316FD3B4480C03662 /* RepositoriesAPI.swift in Sources */, + F519C653A63F9500027D67A0E9C8E729 /* RepositoriesContentsAPI.swift in Sources */, + A12B4F8A65941B16271C0190DF8C761B /* RepositoryContentsLink.swift in Sources */, + F33FA7956A50FE5413E228AC9C2F09D7 /* RepositoryContentsReponse.swift in Sources */, + 1EEFF185FA5311E4C4885BD65B1134B7 /* RepositoryLicense.swift in Sources */, + 2673331D8D7DAB0D7D02159C35952D38 /* RepositoryOrganization.swift in Sources */, + B4525E15F08835F3A89706F96040B7D9 /* RepositoryOwner.swift in Sources */, + 5133EE0F311924DBAF244088F1EB3B34 /* RepositoryParent.swift in Sources */, + 72E5B4146696A4B0D451094782475E8A /* RepositoryPermission.swift in Sources */, + 913E9AE838A8838EA11B030239C2B9EA /* RepositoryReponse.swift in Sources */, + 86805C57C06CC50FC1922FC110B44A47 /* SearchAPI.swift in Sources */, + 4212E7EABF6CD40B3526BF273B39F1CD /* SearchCodeItem.swift in Sources */, + E0F3265F4957AADB79CDDC072EF345FB /* SearchCodeOwner.swift in Sources */, + 08159CD179DCED0C375F14CA98C039D6 /* SearchCodeRepository.swift in Sources */, + B146028E135EDF54440DB4E9FB4BEC05 /* SearchCodeResponse.swift in Sources */, + CDA9BF9FC107A710EFD3C4CDD7A2D25C /* SearchCommitsAuthor.swift in Sources */, + EABCAC0C60BD2F0ED2862113516EEB33 /* SearchCommitsCommit.swift in Sources */, + F82D00AA21061B78FBEA51A3EFE25B6A /* SearchCommitsCommitter.swift in Sources */, + 2F3921F0DB512FDBB6D2010D0110AE81 /* SearchCommitsItem.swift in Sources */, + 5C78932F992FFA9FDAAAA5B876E91897 /* SearchCommitsOwner.swift in Sources */, + 73E1EC204310037C102BBA77CE4249AE /* SearchCommitsParent.swift in Sources */, + D6E42D393BE031D598821E3E8EDA7EB3 /* SearchCommitsRepository.swift in Sources */, + 647DB6CFC90443E9FA706578F8424BD3 /* SearchCommitsResponse.swift in Sources */, + F0F524B4E07EE9355BDF57A77A485B85 /* SearchCommitsTree.swift in Sources */, + 6E9EF0B7BBC22535EA6B3DF633D7F1C7 /* SearchIssuesAssignee.swift in Sources */, + 9814ED7667154CBEAE1A36AA6B1A732B /* SearchIssuesItem.swift in Sources */, + 4C391DC98A061940CFA79FFCC74FC729 /* SearchIssuesLabel.swift in Sources */, + 202A26BD2D598BBAF6EF53A013D3E2ED /* SearchIssuesMilestone.swift in Sources */, + 75FF8A688A9A8F326F4CAB98E2D11A93 /* SearchIssuesMilestoneCreator.swift in Sources */, + FEDC789E37D1EC291001B9608B1121EB /* SearchIssuesPullRequest.swift in Sources */, + A1FC0B86096106C0B40258A49835FACC /* SearchIssuesResponse.swift in Sources */, + C66408B02DE96F22CC6326EDAA6AB0F1 /* SearchIssuesUser.swift in Sources */, + 788320D421344981750875F4CB906779 /* SearchRepositoriesItem.swift in Sources */, + 9D3358724A6243C10C77A0C39CEBBDFF /* SearchRepositoriesOwner.swift in Sources */, + 78A53E5FFDCB63A2F01639B9E138A0F4 /* SearchRepositoriesResponse.swift in Sources */, + F563A4AC381BF940F177A0AD729158C1 /* SearchUsersItem.swift in Sources */, + ECA700044852803D09A967E67981971F /* SearchUsersResponse.swift in Sources */, + D387746722E5E6E58C1BCACCE26B71AE /* UpdateUser.swift in Sources */, + BA5DF713E9230DD94124FEB48DF87EB1 /* UserAPI.swift in Sources */, + 2EF72FBB034A5E99CDAD807D168F44AF /* UserPlan.swift in Sources */, + D8C2F22E5A3CF849D9D7A8D4A63C93CF /* UserResponse.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4EDBF16C6993CAFC8201E9B3D3B71B3D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6E2721D9022E5269381F8CE7E623FA59 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6C02EE2DE8BC05D2205D71C81AE3C7B6 /* Pods-repo-browser-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 72E579ED0175282EA39D6FF29102BA36 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0F51CEAC0DC117893227F3E8F2EDDAC8 /* BaseAPI-dummy.m in Sources */, + E3A1B6F5E3E520FD7EDCCB64B29B0989 /* BaseAPI.swift in Sources */, + 555AB8CA91EB0CECA0A691FFA527BEB0 /* CharacterSet.swift in Sources */, + DA0DA4A3A99962BF2193212BE9CBE3E0 /* Request.swift in Sources */, + 108B1A6C1FDEDC82946AFBB823ACC431 /* RequestHeaderFields.swift in Sources */, + 4A7EEFB7D04DAE41C470584266FBE160 /* RequestMethod.swift in Sources */, + 45C658FC3A2FEA35B060EFB42A416FFC /* String.swift in Sources */, + 87A221D795BA9C3EC1BE7B26B14C3ABA /* URLSession.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AE001D7541F564239F762710E8888B1C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FF4817FAC7315E97F50AD95172CBC129 /* Pods-repo-browserTests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BB6A28F0BB13388F2FCE79F414B488F0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A9E6F9673A9059F6839D7CFC075DFFA0 /* Enum.swift in Sources */, + 7BA1AB4574A6467A5544A127D278A643 /* FontAwesome.swift in Sources */, + DED224934E770D48544184BEC3B714DF /* FontAwesome.swift-dummy.m in Sources */, + 28757E4AD554CBD39E97BBCA1328BFC5 /* FontAwesomeBarButtonItem.swift in Sources */, + AA0D656B4A636305DA1BC1F9B73408DD /* FontAwesomeExtension.swift in Sources */, + E0E091D97C082FEBA802567A606B192A /* FontAwesomeImageRepresentable.swift in Sources */, + 04FFD0BA6FEE23BAAD7EFB0FBD51D302 /* FontAwesomeImageView.swift in Sources */, + E219C67509E6F8C782C265B543791747 /* FontAwesomeSegmentedControl.swift in Sources */, + C2FD60C5A2C399607870BDF82E20F679 /* FontAwesomeStateRequirement.swift in Sources */, + 1629B85F0ECAB6A283ACF0CB76277184 /* FontAwesomeTabBarItem.swift in Sources */, + 88C94D84F4BB5DC67E71F90E793BA965 /* FontAwesomeTextRepresentable.swift in Sources */, + AE4B2E001DEFDA2921865B83644F0B30 /* FontAwesomeView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 0D2BCE2A873ACCD4EE49C8B68EF51591 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = BaseAPI; + target = 6D3AF0C6AF53B8F230647F79054EF73F /* BaseAPI */; + targetProxy = 2DF228A25FA6E5262C7EB2BF530B8371 /* PBXContainerItemProxy */; + }; + 374C607E3B4565E195D305B3A1A387FD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FontAwesome.swift; + target = BB240150692F32EC312F3CF346C8B9D1 /* FontAwesome.swift */; + targetProxy = E3A6D849B0401E86D4EDE7A543803693 /* PBXContainerItemProxy */; + }; + 97585A8A5359A16373A49A0B954DA6A1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "FontAwesome.swift-FontAwesome.swift"; + target = 4DC20DD2E50259D674257304EC016C93 /* FontAwesome.swift-FontAwesome.swift */; + targetProxy = 452402FFF162D089FBA2F3A1D806D4C8 /* PBXContainerItemProxy */; + }; + AB9D120258AFA7000E3A2E4CF13F86E3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = BaseAPI; + target = 6D3AF0C6AF53B8F230647F79054EF73F /* BaseAPI */; + targetProxy = 0519E3D3F94762697201D5BCD30608DD /* PBXContainerItemProxy */; + }; + D001B45CE83486D9263885886849856C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-repo-browser"; + target = 1F23F2351DC311504812F672ADDDA30E /* Pods-repo-browser */; + targetProxy = F826A46FAFF96C5A4E424B6D13B9B5BD /* PBXContainerItemProxy */; + }; + D0175C823B1BD68487FDA7C123117C8C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = GithubAPI; + target = 46612857DE0B03605DCFF866695FF265 /* GithubAPI */; + targetProxy = F6B27ED481174EC8013BF5AB2A25FE73 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0C050E9000529F1AE72EC9D676BBFDAB /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F9F6A30DB686A598075A7B008B5171B0 /* FontAwesome.swift.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FontAwesome.swift"; + INFOPLIST_FILE = "Target Support Files/FontAwesome.swift/ResourceBundle-FontAwesome.swift-FontAwesome.swift-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = FontAwesome.swift; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + 204B8AEA4AE90A551A1768B355C2F9F0 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 2F453424C8A8F34A71E37D1551C91D6D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6FF0E886B2AC33D9FFCF5B626363A41B /* BaseAPI.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/BaseAPI/BaseAPI-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/BaseAPI/BaseAPI-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/BaseAPI/BaseAPI.modulemap"; + PRODUCT_MODULE_NAME = BaseAPI; + PRODUCT_NAME = BaseAPI; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 38D5FA5AEE5DB9DFEA63B6A5B5210A3C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F9F6A30DB686A598075A7B008B5171B0 /* FontAwesome.swift.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FontAwesome.swift"; + INFOPLIST_FILE = "Target Support Files/FontAwesome.swift/ResourceBundle-FontAwesome.swift-FontAwesome.swift-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = FontAwesome.swift; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + 3CCC6195EDBEE5DA2A49DF962113BE16 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + 7002BB2F0362A5392E27F286C9CF87A3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E2E03ADCF74F9291FBF49B1DBD3ADEC9 /* GithubAPI.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/GithubAPI/GithubAPI-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/GithubAPI/GithubAPI-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/GithubAPI/GithubAPI.modulemap"; + PRODUCT_MODULE_NAME = GithubAPI; + PRODUCT_NAME = GithubAPI; + 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; + }; + 74447F4519731935F02055DAD12B5855 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F9F6A30DB686A598075A7B008B5171B0 /* FontAwesome.swift.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/FontAwesome.swift/FontAwesome.swift-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/FontAwesome.swift/FontAwesome.swift-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/FontAwesome.swift/FontAwesome.swift.modulemap"; + PRODUCT_MODULE_NAME = FontAwesome_swift; + PRODUCT_NAME = FontAwesome_swift; + 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; + }; + 7FE77C1077E9D9056D93CF9C2F7FC0D3 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F9F6A30DB686A598075A7B008B5171B0 /* FontAwesome.swift.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/FontAwesome.swift/FontAwesome.swift-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/FontAwesome.swift/FontAwesome.swift-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/FontAwesome.swift/FontAwesome.swift.modulemap"; + PRODUCT_MODULE_NAME = FontAwesome_swift; + PRODUCT_NAME = FontAwesome_swift; + 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; + }; + AA5F75D4BD9729B6BBD7998DE1A89555 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2B79AF7CF47DE48A0739889316A4B9A6 /* Pods-repo-browserTests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = 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-repo-browserTests/Pods-repo-browserTests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.2; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests.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; + }; + AE6D6DCD2EBE46A482B2FAE70CEF72D3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4507632D786216ADBD3D3D3BA1F44FE4 /* Pods-repo-browserTests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = 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-repo-browserTests/Pods-repo-browserTests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.2; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests.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; + }; + B0006C6FE8980487EA7CA8BA54FD5336 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 87A32E8F3DB14C2B4CABFC3F8940EECA /* Pods-repo-browser.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = 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-repo-browser/Pods-repo-browser-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.2; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-repo-browser/Pods-repo-browser.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; + }; + BAE3DA3ED468BADCF261738327F5C3FA /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6FF0E886B2AC33D9FFCF5B626363A41B /* BaseAPI.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/BaseAPI/BaseAPI-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/BaseAPI/BaseAPI-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/BaseAPI/BaseAPI.modulemap"; + PRODUCT_MODULE_NAME = BaseAPI; + PRODUCT_NAME = BaseAPI; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + C2B5EF570A9FB29404A12E4FFC327F2F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4E800923DD2852F37D1E9C3AD5BD665E /* Pods-repo-browser.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = 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-repo-browser/Pods-repo-browser-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.2; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-repo-browser/Pods-repo-browser.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; + }; + EBDBE8775E6033DB024F44913434D32B /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E2E03ADCF74F9291FBF49B1DBD3ADEC9 /* GithubAPI.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/GithubAPI/GithubAPI-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/GithubAPI/GithubAPI-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/GithubAPI/GithubAPI.modulemap"; + PRODUCT_MODULE_NAME = GithubAPI; + PRODUCT_NAME = GithubAPI; + 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; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1742123A90829FAB352CA176B949E415 /* Build configuration list for PBXNativeTarget "GithubAPI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7002BB2F0362A5392E27F286C9CF87A3 /* Debug */, + EBDBE8775E6033DB024F44913434D32B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2A2535E26B6B338E427B5CD0A1DA6451 /* Build configuration list for PBXNativeTarget "Pods-repo-browserTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AE6D6DCD2EBE46A482B2FAE70CEF72D3 /* Debug */, + AA5F75D4BD9729B6BBD7998DE1A89555 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 359249C1DC1077DCA0FE6EC62255C0C1 /* Build configuration list for PBXNativeTarget "BaseAPI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BAE3DA3ED468BADCF261738327F5C3FA /* Debug */, + 2F453424C8A8F34A71E37D1551C91D6D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 41C253EBFE15226002761A36F667557C /* Build configuration list for PBXNativeTarget "FontAwesome.swift-FontAwesome.swift" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0C050E9000529F1AE72EC9D676BBFDAB /* Debug */, + 38D5FA5AEE5DB9DFEA63B6A5B5210A3C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 204B8AEA4AE90A551A1768B355C2F9F0 /* Debug */, + 3CCC6195EDBEE5DA2A49DF962113BE16 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C08BB7EBEAAF5EA3ADA8486A4166A737 /* Build configuration list for PBXNativeTarget "FontAwesome.swift" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 74447F4519731935F02055DAD12B5855 /* Debug */, + 7FE77C1077E9D9056D93CF9C2F7FC0D3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F31E1A9986B7D6B3BC558F594BCD9AF7 /* Build configuration list for PBXNativeTarget "Pods-repo-browser" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C2B5EF570A9FB29404A12E4FFC327F2F /* Debug */, + B0006C6FE8980487EA7CA8BA54FD5336 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; +} diff --git a/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/BaseAPI.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/BaseAPI.xcscheme new file mode 100644 index 0000000..f7b4830 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/BaseAPI.xcscheme @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/FontAwesome.swift-FontAwesome.swift.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/FontAwesome.swift-FontAwesome.swift.xcscheme new file mode 100644 index 0000000..93f1934 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/FontAwesome.swift-FontAwesome.swift.xcscheme @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/FontAwesome.swift.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/FontAwesome.swift.xcscheme new file mode 100644 index 0000000..bf7ee8b --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/FontAwesome.swift.xcscheme @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/GithubAPI.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/GithubAPI.xcscheme new file mode 100644 index 0000000..33169c1 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/GithubAPI.xcscheme @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/Pods-repo-browser.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/Pods-repo-browser.xcscheme new file mode 100644 index 0000000..9d30c35 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/Pods-repo-browser.xcscheme @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/Pods-repo-browserTests.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/Pods-repo-browserTests.xcscheme new file mode 100644 index 0000000..a0f520c --- /dev/null +++ b/Pods/Pods.xcodeproj/xcuserdata/rodrigopinto.xcuserdatad/xcschemes/Pods-repo-browserTests.xcscheme @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Target Support Files/BaseAPI/BaseAPI-Info.plist b/Pods/Target Support Files/BaseAPI/BaseAPI-Info.plist new file mode 100644 index 0000000..d0e9821 --- /dev/null +++ b/Pods/Target Support Files/BaseAPI/BaseAPI-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 0.1.5 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/BaseAPI/BaseAPI-dummy.m b/Pods/Target Support Files/BaseAPI/BaseAPI-dummy.m new file mode 100644 index 0000000..4f073a5 --- /dev/null +++ b/Pods/Target Support Files/BaseAPI/BaseAPI-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_BaseAPI : NSObject +@end +@implementation PodsDummy_BaseAPI +@end diff --git a/Pods/Target Support Files/BaseAPI/BaseAPI-prefix.pch b/Pods/Target Support Files/BaseAPI/BaseAPI-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/Pods/Target Support Files/BaseAPI/BaseAPI-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Pods/Target Support Files/BaseAPI/BaseAPI-umbrella.h b/Pods/Target Support Files/BaseAPI/BaseAPI-umbrella.h new file mode 100644 index 0000000..082cb1d --- /dev/null +++ b/Pods/Target Support Files/BaseAPI/BaseAPI-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double BaseAPIVersionNumber; +FOUNDATION_EXPORT const unsigned char BaseAPIVersionString[]; + diff --git a/Pods/Target Support Files/BaseAPI/BaseAPI.modulemap b/Pods/Target Support Files/BaseAPI/BaseAPI.modulemap new file mode 100644 index 0000000..c71a464 --- /dev/null +++ b/Pods/Target Support Files/BaseAPI/BaseAPI.modulemap @@ -0,0 +1,6 @@ +framework module BaseAPI { + umbrella header "BaseAPI-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/BaseAPI/BaseAPI.xcconfig b/Pods/Target Support Files/BaseAPI/BaseAPI.xcconfig new file mode 100644 index 0000000..684c8b4 --- /dev/null +++ b/Pods/Target Support Files/BaseAPI/BaseAPI.xcconfig @@ -0,0 +1,10 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/BaseAPI +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "Foundation" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/BaseAPI +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift-Info.plist b/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift-Info.plist new file mode 100644 index 0000000..db89292 --- /dev/null +++ b/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.7.1 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift-dummy.m b/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift-dummy.m new file mode 100644 index 0000000..1868e9d --- /dev/null +++ b/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_FontAwesome_swift : NSObject +@end +@implementation PodsDummy_FontAwesome_swift +@end diff --git a/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift-prefix.pch b/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift-umbrella.h b/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift-umbrella.h new file mode 100644 index 0000000..602d1bf --- /dev/null +++ b/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double FontAwesome_swiftVersionNumber; +FOUNDATION_EXPORT const unsigned char FontAwesome_swiftVersionString[]; + diff --git a/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift.modulemap b/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift.modulemap new file mode 100644 index 0000000..9f021dd --- /dev/null +++ b/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift.modulemap @@ -0,0 +1,6 @@ +framework module FontAwesome_swift { + umbrella header "FontAwesome.swift-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift.xcconfig b/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift.xcconfig new file mode 100644 index 0000000..0944549 --- /dev/null +++ b/Pods/Target Support Files/FontAwesome.swift/FontAwesome.swift.xcconfig @@ -0,0 +1,10 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FontAwesome.swift +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "CoreText" -framework "UIKit" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/FontAwesome.swift +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Pods/Target Support Files/FontAwesome.swift/ResourceBundle-FontAwesome.swift-FontAwesome.swift-Info.plist b/Pods/Target Support Files/FontAwesome.swift/ResourceBundle-FontAwesome.swift-FontAwesome.swift-Info.plist new file mode 100644 index 0000000..4b720e9 --- /dev/null +++ b/Pods/Target Support Files/FontAwesome.swift/ResourceBundle-FontAwesome.swift-FontAwesome.swift-Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.7.1 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/GithubAPI/GithubAPI-Info.plist b/Pods/Target Support Files/GithubAPI/GithubAPI-Info.plist new file mode 100644 index 0000000..e1c2bd4 --- /dev/null +++ b/Pods/Target Support Files/GithubAPI/GithubAPI-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 0.0.6 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/GithubAPI/GithubAPI-dummy.m b/Pods/Target Support Files/GithubAPI/GithubAPI-dummy.m new file mode 100644 index 0000000..c8f7526 --- /dev/null +++ b/Pods/Target Support Files/GithubAPI/GithubAPI-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_GithubAPI : NSObject +@end +@implementation PodsDummy_GithubAPI +@end diff --git a/Pods/Target Support Files/GithubAPI/GithubAPI-prefix.pch b/Pods/Target Support Files/GithubAPI/GithubAPI-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/Pods/Target Support Files/GithubAPI/GithubAPI-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Pods/Target Support Files/GithubAPI/GithubAPI-umbrella.h b/Pods/Target Support Files/GithubAPI/GithubAPI-umbrella.h new file mode 100644 index 0000000..01efd43 --- /dev/null +++ b/Pods/Target Support Files/GithubAPI/GithubAPI-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double GithubAPIVersionNumber; +FOUNDATION_EXPORT const unsigned char GithubAPIVersionString[]; + diff --git a/Pods/Target Support Files/GithubAPI/GithubAPI.modulemap b/Pods/Target Support Files/GithubAPI/GithubAPI.modulemap new file mode 100644 index 0000000..fc0977e --- /dev/null +++ b/Pods/Target Support Files/GithubAPI/GithubAPI.modulemap @@ -0,0 +1,6 @@ +framework module GithubAPI { + umbrella header "GithubAPI-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/GithubAPI/GithubAPI.xcconfig b/Pods/Target Support Files/GithubAPI/GithubAPI.xcconfig new file mode 100644 index 0000000..2704d8a --- /dev/null +++ b/Pods/Target Support Files/GithubAPI/GithubAPI.xcconfig @@ -0,0 +1,11 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/GithubAPI +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BaseAPI" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "Foundation" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/GithubAPI +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-Info.plist b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-acknowledgements.markdown b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-acknowledgements.markdown new file mode 100644 index 0000000..5975f04 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-acknowledgements.markdown @@ -0,0 +1,72 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## BaseAPI + +Copyright (c) 2018 serhii-londar + +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. + + +## FontAwesome.swift + +Copyright (c) 2014-present FontAwesome.swift contributors + +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. + + +## GithubAPI + +Copyright (c) 2018 serhii-londar + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-acknowledgements.plist b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-acknowledgements.plist new file mode 100644 index 0000000..6e73451 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-acknowledgements.plist @@ -0,0 +1,116 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Copyright (c) 2018 serhii-londar <serhii.londar@gmail.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + License + MIT + Title + BaseAPI + Type + PSGroupSpecifier + + + FooterText + Copyright (c) 2014-present FontAwesome.swift contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + License + MIT + Title + FontAwesome.swift + Type + PSGroupSpecifier + + + FooterText + Copyright (c) 2018 serhii-londar <serhii.londar@gmail.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + License + MIT + Title + GithubAPI + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-dummy.m b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-dummy.m new file mode 100644 index 0000000..f4f982f --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_repo_browser : NSObject +@end +@implementation PodsDummy_Pods_repo_browser +@end diff --git a/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks-Debug-input-files.xcfilelist b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks-Debug-input-files.xcfilelist new file mode 100644 index 0000000..15f0d0d --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks-Debug-input-files.xcfilelist @@ -0,0 +1,4 @@ +${PODS_ROOT}/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks.sh +${BUILT_PRODUCTS_DIR}/BaseAPI/BaseAPI.framework +${BUILT_PRODUCTS_DIR}/FontAwesome.swift/FontAwesome_swift.framework +${BUILT_PRODUCTS_DIR}/GithubAPI/GithubAPI.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks-Debug-output-files.xcfilelist b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks-Debug-output-files.xcfilelist new file mode 100644 index 0000000..efaa368 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks-Debug-output-files.xcfilelist @@ -0,0 +1,3 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BaseAPI.framework +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FontAwesome_swift.framework +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GithubAPI.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks-Release-input-files.xcfilelist b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks-Release-input-files.xcfilelist new file mode 100644 index 0000000..15f0d0d --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks-Release-input-files.xcfilelist @@ -0,0 +1,4 @@ +${PODS_ROOT}/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks.sh +${BUILT_PRODUCTS_DIR}/BaseAPI/BaseAPI.framework +${BUILT_PRODUCTS_DIR}/FontAwesome.swift/FontAwesome_swift.framework +${BUILT_PRODUCTS_DIR}/GithubAPI/GithubAPI.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks-Release-output-files.xcfilelist b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks-Release-output-files.xcfilelist new file mode 100644 index 0000000..efaa368 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks-Release-output-files.xcfilelist @@ -0,0 +1,3 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BaseAPI.framework +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FontAwesome_swift.framework +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GithubAPI.framework \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks.sh b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks.sh new file mode 100755 index 0000000..a01ffd9 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks.sh @@ -0,0 +1,175 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + elif [ -L "${binary}" ]; then + echo "Destination binary is symlinked..." + dirname="$(dirname "${binary}")" + binary="${dirname}/$(readlink "${binary}")" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identity + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=1 +} + + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/BaseAPI/BaseAPI.framework" + install_framework "${BUILT_PRODUCTS_DIR}/FontAwesome.swift/FontAwesome_swift.framework" + install_framework "${BUILT_PRODUCTS_DIR}/GithubAPI/GithubAPI.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/BaseAPI/BaseAPI.framework" + install_framework "${BUILT_PRODUCTS_DIR}/FontAwesome.swift/FontAwesome_swift.framework" + install_framework "${BUILT_PRODUCTS_DIR}/GithubAPI/GithubAPI.framework" +fi +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-umbrella.h b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-umbrella.h new file mode 100644 index 0000000..a28397e --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_repo_browserVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_repo_browserVersionString[]; + diff --git a/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser.debug.xcconfig b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser.debug.xcconfig new file mode 100644 index 0000000..e4e1703 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser.debug.xcconfig @@ -0,0 +1,11 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BaseAPI" "${PODS_CONFIGURATION_BUILD_DIR}/FontAwesome.swift" "${PODS_CONFIGURATION_BUILD_DIR}/GithubAPI" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BaseAPI/BaseAPI.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FontAwesome.swift/FontAwesome_swift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GithubAPI/GithubAPI.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_LDFLAGS = $(inherited) -framework "BaseAPI" -framework "CoreText" -framework "FontAwesome_swift" -framework "Foundation" -framework "GithubAPI" -framework "UIKit" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser.modulemap b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser.modulemap new file mode 100644 index 0000000..0352d76 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser.modulemap @@ -0,0 +1,6 @@ +framework module Pods_repo_browser { + umbrella header "Pods-repo-browser-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser.release.xcconfig b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser.release.xcconfig new file mode 100644 index 0000000..e4e1703 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browser/Pods-repo-browser.release.xcconfig @@ -0,0 +1,11 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BaseAPI" "${PODS_CONFIGURATION_BUILD_DIR}/FontAwesome.swift" "${PODS_CONFIGURATION_BUILD_DIR}/GithubAPI" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BaseAPI/BaseAPI.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FontAwesome.swift/FontAwesome_swift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GithubAPI/GithubAPI.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_LDFLAGS = $(inherited) -framework "BaseAPI" -framework "CoreText" -framework "FontAwesome_swift" -framework "Foundation" -framework "GithubAPI" -framework "UIKit" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-Info.plist b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-acknowledgements.markdown b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-acknowledgements.markdown new file mode 100644 index 0000000..102af75 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-acknowledgements.plist b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-acknowledgements.plist new file mode 100644 index 0000000..7acbad1 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-dummy.m b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-dummy.m new file mode 100644 index 0000000..8ed8ded --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_repo_browserTests : NSObject +@end +@implementation PodsDummy_Pods_repo_browserTests +@end diff --git a/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-umbrella.h b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-umbrella.h new file mode 100644 index 0000000..c366d73 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_repo_browserTestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_repo_browserTestsVersionString[]; + diff --git a/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests.debug.xcconfig b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests.debug.xcconfig new file mode 100644 index 0000000..ab2ec78 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests.debug.xcconfig @@ -0,0 +1,8 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BaseAPI" "${PODS_CONFIGURATION_BUILD_DIR}/FontAwesome.swift" "${PODS_CONFIGURATION_BUILD_DIR}/GithubAPI" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BaseAPI/BaseAPI.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FontAwesome.swift/FontAwesome_swift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GithubAPI/GithubAPI.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "BaseAPI" -framework "CoreText" -framework "FontAwesome_swift" -framework "Foundation" -framework "GithubAPI" -framework "UIKit" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests.modulemap b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests.modulemap new file mode 100644 index 0000000..5c96213 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_repo_browserTests { + umbrella header "Pods-repo-browserTests-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests.release.xcconfig b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests.release.xcconfig new file mode 100644 index 0000000..ab2ec78 --- /dev/null +++ b/Pods/Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests.release.xcconfig @@ -0,0 +1,8 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BaseAPI" "${PODS_CONFIGURATION_BUILD_DIR}/FontAwesome.swift" "${PODS_CONFIGURATION_BUILD_DIR}/GithubAPI" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BaseAPI/BaseAPI.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FontAwesome.swift/FontAwesome_swift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GithubAPI/GithubAPI.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "BaseAPI" -framework "CoreText" -framework "FontAwesome_swift" -framework "Foundation" -framework "GithubAPI" -framework "UIKit" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/repo-browser.xcodeproj/project.pbxproj b/repo-browser.xcodeproj/project.pbxproj index eb73e3a..919bf5a 100644 --- a/repo-browser.xcodeproj/project.pbxproj +++ b/repo-browser.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + 316C92327D2D825D5379721F /* Pods_repo_browserTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C0F21428106413F5931354A /* Pods_repo_browserTests.framework */; }; + 55FBD43C69C4A6D5FBF40CC6 /* Pods_repo_browser.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BFDF6CC5839EDCF9F39697FA /* Pods_repo_browser.framework */; }; C10733B522C468A30095EEDD /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C10733B422C468A30095EEDD /* AppDelegate.swift */; }; C10733B722C468A30095EEDD /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C10733B622C468A30095EEDD /* ViewController.swift */; }; C10733BA22C468A30095EEDD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C10733B822C468A30095EEDD /* Main.storyboard */; }; @@ -30,6 +32,11 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 3C0F21428106413F5931354A /* Pods_repo_browserTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_repo_browserTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 565DD9E2E3891BA28AE8DA04 /* Pods-repo-browser.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-repo-browser.debug.xcconfig"; path = "Target Support Files/Pods-repo-browser/Pods-repo-browser.debug.xcconfig"; sourceTree = ""; }; + 8DBD333E6EF8030384A2710E /* Pods-repo-browserTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-repo-browserTests.release.xcconfig"; path = "Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests.release.xcconfig"; sourceTree = ""; }; + 97357779CD8C419E99B00FF1 /* Pods-repo-browser.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-repo-browser.release.xcconfig"; path = "Target Support Files/Pods-repo-browser/Pods-repo-browser.release.xcconfig"; sourceTree = ""; }; + BFDF6CC5839EDCF9F39697FA /* Pods_repo_browser.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_repo_browser.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C10733B122C468A30095EEDD /* repo-browser.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "repo-browser.app"; sourceTree = BUILT_PRODUCTS_DIR; }; C10733B422C468A30095EEDD /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; C10733B622C468A30095EEDD /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -44,6 +51,7 @@ C10733D622C468F90095EEDD /* RepoCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RepoCell.xib; sourceTree = ""; }; C10733D922C46A370095EEDD /* RepoBrowser.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = RepoBrowser.plist; sourceTree = ""; }; C10733DC22C46B3C0095EEDD /* RBRNetworkController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RBRNetworkController.swift; sourceTree = ""; }; + CEC42CE36B871E51137612FE /* Pods-repo-browserTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-repo-browserTests.debug.xcconfig"; path = "Target Support Files/Pods-repo-browserTests/Pods-repo-browserTests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -51,6 +59,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 55FBD43C69C4A6D5FBF40CC6 /* Pods_repo_browser.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -58,18 +67,30 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 316C92327D2D825D5379721F /* Pods_repo_browserTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 0CA1460E14E8C9B55F680560 /* Frameworks */ = { + isa = PBXGroup; + children = ( + BFDF6CC5839EDCF9F39697FA /* Pods_repo_browser.framework */, + 3C0F21428106413F5931354A /* Pods_repo_browserTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; C10733A822C468A30095EEDD = { isa = PBXGroup; children = ( C10733B322C468A30095EEDD /* repo-browser */, C10733C822C468A40095EEDD /* repo-browserTests */, C10733B222C468A30095EEDD /* Products */, + E499F4631ADB9C428DFFEFB3 /* Pods */, + 0CA1460E14E8C9B55F680560 /* Frameworks */, ); sourceTree = ""; }; @@ -124,6 +145,18 @@ path = Helpers; sourceTree = ""; }; + E499F4631ADB9C428DFFEFB3 /* Pods */ = { + isa = PBXGroup; + children = ( + 565DD9E2E3891BA28AE8DA04 /* Pods-repo-browser.debug.xcconfig */, + 97357779CD8C419E99B00FF1 /* Pods-repo-browser.release.xcconfig */, + CEC42CE36B871E51137612FE /* Pods-repo-browserTests.debug.xcconfig */, + 8DBD333E6EF8030384A2710E /* Pods-repo-browserTests.release.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -131,9 +164,11 @@ isa = PBXNativeTarget; buildConfigurationList = C10733CE22C468A40095EEDD /* Build configuration list for PBXNativeTarget "repo-browser" */; buildPhases = ( + 0D3EF2C8AFEA9EF68FCDABDE /* [CP] Check Pods Manifest.lock */, C10733AD22C468A30095EEDD /* Sources */, C10733AE22C468A30095EEDD /* Frameworks */, C10733AF22C468A30095EEDD /* Resources */, + 312A1F63EAB58077C62806A7 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -148,6 +183,7 @@ isa = PBXNativeTarget; buildConfigurationList = C10733D122C468A40095EEDD /* Build configuration list for PBXNativeTarget "repo-browserTests" */; buildPhases = ( + 8B478652451419C7A83D6127 /* [CP] Check Pods Manifest.lock */, C10733C122C468A40095EEDD /* Sources */, C10733C222C468A40095EEDD /* Frameworks */, C10733C322C468A40095EEDD /* Resources */, @@ -222,6 +258,70 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 0D3EF2C8AFEA9EF68FCDABDE /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-repo-browser-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 312A1F63EAB58077C62806A7 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-repo-browser/Pods-repo-browser-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 8B478652451419C7A83D6127 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-repo-browserTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ C10733AD22C468A30095EEDD /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -390,6 +490,7 @@ }; C10733CF22C468A40095EEDD /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 565DD9E2E3891BA28AE8DA04 /* Pods-repo-browser.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; @@ -407,6 +508,7 @@ }; C10733D022C468A40095EEDD /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 97357779CD8C419E99B00FF1 /* Pods-repo-browser.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; @@ -424,6 +526,7 @@ }; C10733D222C468A40095EEDD /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = CEC42CE36B871E51137612FE /* Pods-repo-browserTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -444,6 +547,7 @@ }; C10733D322C468A40095EEDD /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 8DBD333E6EF8030384A2710E /* Pods-repo-browserTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; diff --git a/repo-browser.xcworkspace/contents.xcworkspacedata b/repo-browser.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..b8ee63f --- /dev/null +++ b/repo-browser.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/repo-browser.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/repo-browser.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/repo-browser.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/repo-browser/Cells/RepoCell.xib b/repo-browser/Cells/RepoCell.xib index fb3172c..f0d8718 100644 --- a/repo-browser/Cells/RepoCell.xib +++ b/repo-browser/Cells/RepoCell.xib @@ -12,7 +12,7 @@ - + @@ -37,8 +37,8 @@ - - + + - diff --git a/repo-browser/Helpers/RBRNetworkController.swift b/repo-browser/Helpers/RBRNetworkController.swift index e7a53bc..d0054dc 100644 --- a/repo-browser/Helpers/RBRNetworkController.swift +++ b/repo-browser/Helpers/RBRNetworkController.swift @@ -7,6 +7,7 @@ // import UIKit +import GithubAPI protocol RBRNetworkControllerDelegate: class { func messageServerDown() @@ -33,28 +34,15 @@ class RBRNetworkController: NSObject { // MARKL - Network calls - func getRepos(owner: String, completion: @escaping (_ data: Data?, _ HTTPStatusCode: Int, _ error: NSError?) -> Void) { - let urlString: String = api + owner - let targetURL = URL(string: urlString) - var request = URLRequest(url: targetURL!) - request.addValue("application/vnd.github.v3+json", forHTTPHeaderField: "Accept") - request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") + func getRepos(owner: String, completion: @escaping (_ data: [RepositoryResponse]) -> Void) { + let authentication = AccessTokenAuthentication(access_token: token) - request.httpMethod = "GET" - request.timeoutInterval = timeOut - let session = URLSession.shared - - session.dataTask(with: request) { - data, response, err in DispatchQueue.main.async(execute: { - () -> Void in - if (response as? HTTPURLResponse) != nil { - completion(data, (response as! HTTPURLResponse).statusCode, err as NSError?) - } - else { - print("No response: \(String(describing: err))") - self.delegate?.messageServerDown() - } - }) - }.resume() + RepositoriesAPI(authentication: authentication).repositories(user: owner) { (response, error) in + if let response = response { + completion (response) + } else { + print(error ?? "") + } + } } } diff --git a/repo-browser/ViewController.swift b/repo-browser/ViewController.swift index 467a9c5..83ddf64 100644 --- a/repo-browser/ViewController.swift +++ b/repo-browser/ViewController.swift @@ -7,6 +7,8 @@ // import UIKit +import GithubAPI +import FontAwesome_swift class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, RBRNetworkControllerDelegate { @@ -14,7 +16,7 @@ class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSour @IBOutlet var tblRepoTable: UITableView! let cellIdentifier = "RepoCell" - var dataSource: Array> = [] + var dataSource: [RepositoryResponse] = [RepositoryResponse]() var selectedIndex: Int! let netController = RBRNetworkController() @@ -49,9 +51,11 @@ class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSour func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell: RepoCell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! RepoCell - // cell.imgThumbnail.image = dataSource[indexPath.row][] - // cell.lblTitle.text = dataSource[indexPath.row][] - cell.lblDescription.text = dataSource[indexPath.row]["Description_RPA"] + cell.imgThumbnail.image = UIImage(named: "Octocat") + cell.lblTitle.text = dataSource[indexPath.row].name + cell.lblDescription.text = dataSource[indexPath.row].descriptionField + cell.lblRepoType.font = UIFont.fontAwesome(ofSize: 12, style: .solid) + cell.lblRepoType.text = String.fontAwesomeIcon(name: .codeBranch) // cell.lblRepoType.text = dataSource[indexPath.row][] return cell @@ -69,26 +73,16 @@ class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSour // MARK: - Network calls /** - Get all repositories of a user - */ + Get all repositories of a user + */ func getRepos() { if let owner = txfRepoOwner.text { weak var weakSelf = self DispatchQueue.global(qos: .userInitiated).async { - weakSelf?.netController.getRepos(owner: owner, completion: { (data, HTTPStatusCode, error) in - if HTTPStatusCode == 200 && error == nil { - do { - let result = try JSONSerialization.jsonObject(with: data!, options: []) as! Array> - print(result) -// weakSelf?.btnConfigUsers.isHidden = self.appChildren.count > 0 ? false : true -// weakSelf?.cltChildrenCollection.reloadData() - } - catch { - print("Post request try/catch error: \(error)") - } - } - else { - print("Error retrieving repo") + weakSelf?.netController.getRepos(owner: owner, completion: { (data) in + weakSelf?.dataSource = data + DispatchQueue.main.async { + weakSelf?.tblRepoTable.reloadData() } }) } @@ -98,6 +92,7 @@ class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSour } } + // MARK: - Action @IBAction func loadRepo(_ sender: UIButton) {