├── .circleci └── config.yml ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .swiftlint.yml ├── AppSizer ├── AppSizer.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── AppSizer.xcscheme └── AppSizer │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── ExportOptions │ └── dev.plist │ ├── Info.plist │ └── ViewController.swift ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── DangerFile ├── Gemfile ├── Gemfile.lock ├── HostApp ├── AppDelegate.swift ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Info.plist └── ViewController.swift ├── LICENSE ├── Package.swift ├── README.md ├── Scripts ├── app-sizer.sh ├── bump-version.swift ├── certificate_setup.sh ├── change-base-url.swift ├── env.rb ├── env.sh ├── generate-docs.sh ├── generate-size-report.rb ├── run_tests.sh └── strip-frameworks.sh ├── TwilioVerify.podspec ├── TwilioVerify.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── TwilioVerifyDemo ├── TwilioVerifyDemo.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── TwilioVerifyDemo.xcscheme ├── TwilioVerifyDemo │ ├── AccessToken │ │ ├── AccessTokenResponse.swift │ │ ├── AccessTokensAPI.swift │ │ └── EnrollmentAPI.swift │ ├── ChallengeDetail │ │ ├── Presenter │ │ │ └── ChallengeDetailPresenter.swift │ │ └── View │ │ │ └── ChallengeDetailViewController.swift │ ├── Common │ │ ├── AppDelegate.swift │ │ ├── AppModel.swift │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ └── LaunchScreen.storyboard │ │ ├── DIContainer.swift │ │ ├── Info.plist │ │ ├── PushChallengePayloadData.swift │ │ └── View │ │ │ └── Base.lproj │ │ │ └── Main.storyboard │ ├── CreateFactor │ │ ├── Presenter │ │ │ └── CreateFactorPresenter.swift │ │ └── View │ │ │ └── CreateFactorViewController.swift │ ├── Extensions │ │ ├── DateFormatter+Extensions.swift │ │ ├── UIColor+Extensions.swift │ │ └── UITextField+Extensions.swift │ ├── FactorDetail │ │ ├── Presenter │ │ │ └── FactorDetailPresenter.swift │ │ └── View │ │ │ ├── ChallengeTableViewCell.swift │ │ │ ├── ChallengeTableViewCell.xib │ │ │ └── FactorDetailViewController.swift │ ├── FactorList │ │ ├── Presenter │ │ │ └── FactorListPresenter.swift │ │ └── View │ │ │ ├── FactorListViewController.swift │ │ │ ├── FactorTableViewCell.swift │ │ │ └── FactorTableViewCell.xib │ ├── TwilioVerify │ │ └── TwilioVerifyAdapter.swift │ └── TwilioVerifyDemo.entitlements └── TwilioVerifyDemoTests │ ├── Info.plist │ └── TwilioVerifyDemoTests.swift ├── TwilioVerifySDK.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── xcshareddata │ └── xcschemes │ ├── HostApp.xcscheme │ ├── TwilioVerifySDK.xcscheme │ └── TwilioVerifySDKTests.xcscheme ├── TwilioVerifySDK ├── Info.plist ├── PrivacyInfo.xcprivacy ├── TwilioSecurity │ └── Sources │ │ ├── Key │ │ ├── KeyPair.swift │ │ ├── Signer │ │ │ └── ECSigner.swift │ │ └── Template │ │ │ ├── ECP256SignerTemplate.swift │ │ │ └── Template.swift │ │ ├── Keychain │ │ ├── KeyManager.swift │ │ ├── Keychain.swift │ │ └── KeychainQuery.swift │ │ └── Storage │ │ └── SecureStorage.swift └── TwilioVerify │ └── Sources │ ├── API │ ├── APIConstants.swift │ ├── BaseAPIClient.swift │ ├── ChallengeAPIClient.swift │ └── FactorAPIClient.swift │ ├── Data │ ├── DateProvider.swift │ ├── JWT │ │ ├── JwtGenerator.swift │ │ └── JwtSigner.swift │ ├── KeyStorage.swift │ ├── Migration.swift │ ├── Storage+AccessGroup.swift │ ├── Storage.swift │ └── StorageProvider.swift │ ├── Domain │ ├── Challenge │ │ ├── ChallengeFacade.swift │ │ ├── ChallengeListMapper.swift │ │ ├── ChallengeMapper.swift │ │ ├── ChallengeRepository.swift │ │ ├── Models │ │ │ ├── DTO │ │ │ │ ├── ChallengeDTO.swift │ │ │ │ └── ChallengeListDTO.swift │ │ │ └── FactorChallenge.swift │ │ └── PushChallengeProcessor.swift │ ├── Factor │ │ ├── FactorFacade.swift │ │ ├── FactorMapper.swift │ │ ├── FactorMigrations.swift │ │ ├── FactorRepository.swift │ │ ├── MapperError.swift │ │ ├── Models │ │ │ ├── DTOs │ │ │ │ └── PushFactorDTO.swift │ │ │ ├── FactorDataPayload.swift │ │ │ └── PushFactor.swift │ │ └── PushFactory.swift │ └── Manager │ │ ├── TwilioVerify.swift │ │ └── TwilioVerifyManager.swift │ ├── Errors │ ├── NetworkError.swift │ └── OperationErrors.swift │ ├── Extensions │ ├── DateFormatter+Extensions.swift │ └── StringInterpolation+Extensions.swift │ ├── Logger │ ├── DefaultLogger.swift │ ├── Logger.swift │ └── OSLogWrapper.swift │ ├── Models │ ├── Challenge.swift │ ├── ChallengeList.swift │ ├── ChallengeListPayload.swift │ ├── Factor.swift │ ├── FactorPayload.swift │ ├── Metadata.swift │ ├── UpdateChallengePayload.swift │ ├── UpdateFactorPayload.swift │ └── VerifyFactorPayload.swift │ ├── Networking │ ├── Authentication.swift │ ├── BasicAuthorization.swift │ ├── HTTPHeaders.swift │ ├── HTTPMethod.swift │ ├── MediaType.swift │ ├── NetworkAdapter.swift │ ├── NetworkProvider+Models.swift │ ├── Parameters.swift │ ├── RequestHelper.swift │ └── URLRequestBuilder.swift │ ├── TwilioVerifyConfig.swift │ ├── TwilioVerifyError.swift │ └── TwilioVerifySDK.h ├── TwilioVerifySDKTests ├── Error │ ├── EquatableError.swift │ └── TestError.swift ├── Info.plist ├── Plans │ ├── CompleteSuite.xctestplan │ └── IntegrationSuite.xctestplan ├── TwilioSecurity │ ├── KeyPair │ │ └── KeyPairFactory.swift │ └── Sources │ │ ├── Key │ │ ├── Signer │ │ │ └── ECSignerTests.swift │ │ └── Template │ │ │ └── ECP256SignerTemplateTests.swift │ │ ├── Keychain │ │ ├── KeyManagerTests.swift │ │ ├── KeychainQueryTests.swift │ │ ├── KeychainTests.swift │ │ └── Mocks │ │ │ ├── KeyManagerSecurityMock.swift │ │ │ └── KeychainMock.swift │ │ └── Storage │ │ └── SecureStorageTests.swift └── TwilioVerify │ └── Sources │ ├── API │ ├── ChallengeAPIClientTests.swift │ ├── FactorAPIClientTests.swift │ └── Mocks │ │ ├── AuthenticationMock.swift │ │ ├── ChallengeAPIClientMock.swift │ │ ├── FactorAPIClientMock.swift │ │ └── NetworkProviderMock.swift │ ├── Data │ ├── DateProviderTests.swift │ ├── JWT │ │ ├── JwtGeneratorTests.swift │ │ └── JwtSignerTests.swift │ ├── KeyStorageAdapterTests.swift │ ├── KeyStorageTests.swift │ ├── Mocks │ │ ├── JwtGeneratorMock.swift │ │ ├── JwtSignerMock.swift │ │ ├── KeyManagerMock.swift │ │ ├── KeyStorageMock.swift │ │ ├── MigrationMock.swift │ │ ├── SecureStorageMock.swift │ │ ├── SignerMock.swift │ │ ├── StorageProviderMock.swift │ │ └── UserDefaultsMock.swift │ ├── Storage+AccessGroupTests.swift │ └── StorageTests.swift │ ├── Domain │ ├── Challenge │ │ ├── ChallengeFacadeTests.swift │ │ ├── ChallengeListMapperTests.swift │ │ ├── ChallengeMapperTests.swift │ │ ├── ChallengeRepositoryTests.swift │ │ ├── Mocks │ │ │ ├── ChallengeListMapperMock.swift │ │ │ ├── ChallengeMapperMock.swift │ │ │ ├── ChallengeProviderMock.swift │ │ │ └── PushChallengeProcessorMock.swift │ │ └── PushChallengeProcessorTests.swift │ ├── Factor │ │ ├── FactorFacadeTests.swift │ │ ├── FactorMapperTests.swift │ │ ├── FactorRepositoryTests.swift │ │ ├── Mocks │ │ │ ├── FactorMapperMock.swift │ │ │ ├── FactorRepositoryMock.swift │ │ │ └── PushFactoryMock.swift │ │ └── PushFactoryTests.swift │ └── Manager │ │ ├── Mocks │ │ ├── ChallengeFacadeMock.swift │ │ └── FactorFacadeMock.swift │ │ └── TwilioVerifyManagerTests.swift │ ├── Integration │ ├── APIResponses │ │ ├── create_factor_valid_response.json │ │ ├── get_challenge_approved_valid_response.json │ │ ├── get_challenge_pending_valid_response.json │ │ ├── get_challenges_valid_response.json │ │ ├── invalid_response.json │ │ └── verify_factor_valid_response.json │ ├── BaseFactorTests.swift │ ├── CreateFactorTests.swift │ ├── DeleteFactorTests.swift │ ├── GetAllChallengesTests.swift │ ├── GetChallengeTests.swift │ ├── TwilioVerifyTests.swift │ ├── UpdateChallengeTests.swift │ ├── UpdateFactorTests.swift │ └── VerifyFactorTests.swift │ ├── Logger │ ├── DefaultLoggerTests.swift │ └── Mocks │ │ ├── LoggerServiceMock.swift │ │ ├── LoggerTests.swift │ │ └── OSLogWrapperMock.swift │ ├── Models │ └── Mocks │ │ ├── ChallengeMock.swift │ │ ├── FactorMock.swift │ │ └── FakeFactorPayload.swift │ └── Networking │ ├── AuthenticationProviderTests.swift │ ├── BasicAuthorizationTests.swift │ ├── HTTPHeadersTests.swift │ ├── Mocks │ ├── DateProviderMock.swift │ └── URLSessionMock.swift │ ├── NetworkAdapterTests.swift │ ├── NetworkErrorTests.swift │ ├── ParametersTests.swift │ ├── RequestHelperTests.swift │ └── URLRequestBuilderTests.swift ├── docs ├── 0.0.3 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── Metadata.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── .docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── badge.svg │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ ├── search.json │ │ │ │ └── undocumented.json │ │ │ │ └── docSet.dsidx │ │ └── .tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 0.0.4 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── Metadata.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── .docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── .tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 0.1.0 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── Metadata.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerify.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerify.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 0.1.1 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── Metadata.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerify.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerify.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 0.2.0 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── Metadata.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerify.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerify.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 0.3.0 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── Metadata.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerify.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerify.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 0.3.1 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── Metadata.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerify.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerify.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 0.3.2 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── Metadata.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerify.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerify.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 0.4.0 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ ├── LogLevel.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── LoggerService.html │ │ ├── Metadata.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerify.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ ├── LogLevel.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── LoggerService.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerify.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 1.0.0 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ ├── LogLevel.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── LoggerService.html │ │ ├── Metadata.html │ │ ├── NetworkProvider.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── Typealiases.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerifySDK.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ ├── LogLevel.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── LoggerService.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── NetworkProvider.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── Typealiases.html │ │ │ │ ├── badge.svg │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ ├── search.json │ │ │ │ └── undocumented.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerifySDK.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 1.1.0 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeListOrder.html │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ ├── LogLevel.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── LoggerService.html │ │ ├── Metadata.html │ │ ├── NetworkProvider.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── Typealiases.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerifySDK.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeListOrder.html │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ ├── LogLevel.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── LoggerService.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── NetworkProvider.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── Typealiases.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerifySDK.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 1.2.0 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeListOrder.html │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ ├── LogLevel.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── LoggerService.html │ │ ├── Metadata.html │ │ ├── NetworkProvider.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── Typealiases.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerifySDK.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeListOrder.html │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ ├── LogLevel.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── LoggerService.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── NetworkProvider.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── Typealiases.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerifySDK.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 1.3.0 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeListOrder.html │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ ├── LogLevel.html │ │ ├── NotificationPlatform.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── LoggerService.html │ │ ├── Metadata.html │ │ ├── NetworkProvider.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── Typealiases.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerifySDK.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeListOrder.html │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ ├── LogLevel.html │ │ │ │ │ ├── NotificationPlatform.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── LoggerService.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── NetworkProvider.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── Typealiases.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerifySDK.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 2.0.0 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeListOrder.html │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ ├── LogLevel.html │ │ ├── NetworkError.html │ │ ├── NotificationPlatform.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── LoggerService.html │ │ ├── Metadata.html │ │ ├── NetworkProvider.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── APIError.html │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── FailureResponse.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── Typealiases.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerifySDK.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeListOrder.html │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ ├── LogLevel.html │ │ │ │ │ ├── NetworkError.html │ │ │ │ │ ├── NotificationPlatform.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── LoggerService.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── NetworkProvider.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── APIError.html │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── FailureResponse.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── Typealiases.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerifySDK.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 2.1.0 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeListOrder.html │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ ├── InputError.html │ │ ├── LogLevel.html │ │ ├── NetworkError.html │ │ ├── NotificationPlatform.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── LoggerService.html │ │ ├── Metadata.html │ │ ├── NetworkProvider.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── APIError.html │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── FailureResponse.html │ │ ├── NetworkResponse.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── Typealiases.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerifySDK.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeListOrder.html │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ ├── InputError.html │ │ │ │ │ ├── LogLevel.html │ │ │ │ │ ├── NetworkError.html │ │ │ │ │ ├── NotificationPlatform.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── LoggerService.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── NetworkProvider.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── APIError.html │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── FailureResponse.html │ │ │ │ │ ├── NetworkResponse.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── Typealiases.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ ├── gh.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerifySDK.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ ├── gh.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 2.2.0 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeListOrder.html │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ ├── InputError.html │ │ ├── LogLevel.html │ │ ├── NetworkError.html │ │ ├── NotificationPlatform.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── LoggerService.html │ │ ├── Metadata.html │ │ ├── NetworkProvider.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── APIError.html │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── FailureResponse.html │ │ ├── NetworkResponse.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── Typealiases.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerifySDK.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeListOrder.html │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ ├── InputError.html │ │ │ │ │ ├── LogLevel.html │ │ │ │ │ ├── NetworkError.html │ │ │ │ │ ├── NotificationPlatform.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── LoggerService.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── NetworkProvider.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── APIError.html │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── FailureResponse.html │ │ │ │ │ ├── NetworkResponse.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── Typealiases.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerifySDK.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 2.2.1 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeListOrder.html │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ ├── InputError.html │ │ ├── KeyManagerError.html │ │ ├── LogLevel.html │ │ ├── NetworkError.html │ │ ├── NotificationPlatform.html │ │ ├── SecureStorageError.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── LoggerService.html │ │ ├── Metadata.html │ │ ├── NetworkProvider.html │ │ ├── OperationError.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── APIError.html │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── FailureResponse.html │ │ ├── NetworkResponse.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── Typealiases.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerifySDK.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeListOrder.html │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ ├── InputError.html │ │ │ │ │ ├── KeyManagerError.html │ │ │ │ │ ├── LogLevel.html │ │ │ │ │ ├── NetworkError.html │ │ │ │ │ ├── NotificationPlatform.html │ │ │ │ │ ├── SecureStorageError.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── LoggerService.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── NetworkProvider.html │ │ │ │ │ ├── OperationError.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── APIError.html │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── FailureResponse.html │ │ │ │ │ ├── NetworkResponse.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── Typealiases.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerifySDK.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 2.2.2 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeListOrder.html │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ ├── InputError.html │ │ ├── KeyManagerError.html │ │ ├── LogLevel.html │ │ ├── NetworkError.html │ │ ├── NotificationPlatform.html │ │ ├── SecureStorageError.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── LoggerService.html │ │ ├── Metadata.html │ │ ├── NetworkProvider.html │ │ ├── OperationError.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── APIError.html │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── FailureResponse.html │ │ ├── NetworkResponse.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── Typealiases.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerifySDK.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeListOrder.html │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ ├── InputError.html │ │ │ │ │ ├── KeyManagerError.html │ │ │ │ │ ├── LogLevel.html │ │ │ │ │ ├── NetworkError.html │ │ │ │ │ ├── NotificationPlatform.html │ │ │ │ │ ├── SecureStorageError.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── LoggerService.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── NetworkProvider.html │ │ │ │ │ ├── OperationError.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── APIError.html │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── FailureResponse.html │ │ │ │ │ ├── NetworkResponse.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── Typealiases.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerifySDK.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json ├── 3.0.0 │ ├── Classes.html │ ├── Classes │ │ ├── TwilioVerifyBuilder.html │ │ └── TwilioVerifyManager.html │ ├── Enums.html │ ├── Enums │ │ ├── ChallengeListOrder.html │ │ ├── ChallengeStatus.html │ │ ├── FactorStatus.html │ │ ├── FactorType.html │ │ ├── InputError.html │ │ ├── KeyManagerError.html │ │ ├── LogLevel.html │ │ ├── NetworkError.html │ │ ├── NotificationPlatform.html │ │ ├── SecureStorageError.html │ │ └── TwilioVerifyError.html │ ├── Protocols.html │ ├── Protocols │ │ ├── Challenge.html │ │ ├── ChallengeList.html │ │ ├── Factor.html │ │ ├── FactorPayload.html │ │ ├── LoggerService.html │ │ ├── Metadata.html │ │ ├── NetworkProvider.html │ │ ├── OperationError.html │ │ ├── TwilioVerify.html │ │ ├── UpdateChallengePayload.html │ │ ├── UpdateFactorPayload.html │ │ └── VerifyFactorPayload.html │ ├── Structs.html │ ├── Structs │ │ ├── APIError.html │ │ ├── ChallengeDetails.html │ │ ├── ChallengeListPayload.html │ │ ├── Detail.html │ │ ├── FailureResponse.html │ │ ├── NetworkResponse.html │ │ ├── PushFactorPayload.html │ │ ├── UpdatePushChallengePayload.html │ │ ├── UpdatePushFactorPayload.html │ │ └── VerifyPushFactorPayload.html │ ├── Typealiases.html │ ├── badge.svg │ ├── css │ │ ├── highlight.css │ │ └── jazzy.css │ ├── docsets │ │ ├── TwilioVerifySDK.docset │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── Documents │ │ │ │ ├── Classes.html │ │ │ │ ├── Classes │ │ │ │ │ ├── TwilioVerifyBuilder.html │ │ │ │ │ └── TwilioVerifyManager.html │ │ │ │ ├── Enums.html │ │ │ │ ├── Enums │ │ │ │ │ ├── ChallengeListOrder.html │ │ │ │ │ ├── ChallengeStatus.html │ │ │ │ │ ├── FactorStatus.html │ │ │ │ │ ├── FactorType.html │ │ │ │ │ ├── InputError.html │ │ │ │ │ ├── KeyManagerError.html │ │ │ │ │ ├── LogLevel.html │ │ │ │ │ ├── NetworkError.html │ │ │ │ │ ├── NotificationPlatform.html │ │ │ │ │ ├── SecureStorageError.html │ │ │ │ │ └── TwilioVerifyError.html │ │ │ │ ├── Protocols.html │ │ │ │ ├── Protocols │ │ │ │ │ ├── Challenge.html │ │ │ │ │ ├── ChallengeList.html │ │ │ │ │ ├── Factor.html │ │ │ │ │ ├── FactorPayload.html │ │ │ │ │ ├── LoggerService.html │ │ │ │ │ ├── Metadata.html │ │ │ │ │ ├── NetworkProvider.html │ │ │ │ │ ├── OperationError.html │ │ │ │ │ ├── TwilioVerify.html │ │ │ │ │ ├── UpdateChallengePayload.html │ │ │ │ │ ├── UpdateFactorPayload.html │ │ │ │ │ └── VerifyFactorPayload.html │ │ │ │ ├── Structs.html │ │ │ │ ├── Structs │ │ │ │ │ ├── APIError.html │ │ │ │ │ ├── ChallengeDetails.html │ │ │ │ │ ├── ChallengeListPayload.html │ │ │ │ │ ├── Detail.html │ │ │ │ │ ├── FailureResponse.html │ │ │ │ │ ├── NetworkResponse.html │ │ │ │ │ ├── PushFactorPayload.html │ │ │ │ │ ├── UpdatePushChallengePayload.html │ │ │ │ │ ├── UpdatePushFactorPayload.html │ │ │ │ │ └── VerifyPushFactorPayload.html │ │ │ │ ├── Typealiases.html │ │ │ │ ├── css │ │ │ │ │ ├── highlight.css │ │ │ │ │ └── jazzy.css │ │ │ │ ├── img │ │ │ │ │ ├── carat.png │ │ │ │ │ ├── dash.png │ │ │ │ │ └── spinner.gif │ │ │ │ ├── index.html │ │ │ │ ├── js │ │ │ │ │ ├── jazzy.js │ │ │ │ │ ├── jazzy.search.js │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ ├── lunr.min.js │ │ │ │ │ └── typeahead.jquery.js │ │ │ │ └── search.json │ │ │ │ └── docSet.dsidx │ │ └── TwilioVerifySDK.tgz │ ├── img │ │ ├── carat.png │ │ ├── dash.png │ │ └── spinner.gif │ ├── index.html │ ├── js │ │ ├── jazzy.js │ │ ├── jazzy.search.js │ │ ├── jquery.min.js │ │ ├── lunr.min.js │ │ └── typeahead.jquery.js │ ├── search.json │ └── undocumented.json └── latest └── fastlane ├── Fastfile ├── Pluginfile └── README.md /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | #These people are listed as being the code owners for this project. As such, they will be automatically added as a reviewer when a PR is created. 2 | #For more details on how this is configured, see https://help.github.com/articles/about-code-owners/ 3 | 4 | * @SergioFierro @yafuquen @AlejandroOrozco 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: 'Bug' 6 | assignees: '' 7 | 8 | --- 9 | 10 | > #### Before Creating an Issue 11 | > 12 | > - Make sure the issue is not already addressed by [existing issues](https://github.com/twilio/twilio-verify-ios/issues). 13 | > - Please do not share any 14 | [Personally Identifiable Information](https://www.twilio.com/docs/glossary/what-is-personally-identifiable-information-pii) or sensitive information like API keys when creating an issue. 15 | 16 | #### Description 17 | 18 | [Description of the bug] 19 | 20 | #### Steps to Reproduce 21 | 22 | 1. [Step one] 23 | 1. [Step two] 24 | 1. [Insert as many steps as needed] 25 | 26 | #### Expected Behavior 27 | 28 | [What you expect to happen] 29 | 30 | #### Demo Project 31 | 32 | [Please link to or upload a project we can download that reproduces the issue.] 33 | 34 | #### Versions 35 | 36 | - SDK version: [e.g. 0.1.0 (33)] 37 | - iOS version: [e.g. 13.1] 38 | - Device: [e.g. iPhone 11] 39 | - Xcode version: [e.g. 11.7] 40 | 41 | #### Log 42 | ``` 43 | // Log output when the issue occurs 44 | ``` -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature Request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: 'Enhancement' 6 | assignees: '' 7 | 8 | --- 9 | 10 | > #### Before Creating an Issue 11 | > 12 | > - Make sure the issue is not already addressed by [existing issues](https://github.com/twilio/twilio-verify-ios/issues). 13 | > - Please do not share any 14 | [Personally Identifiable Information](https://www.twilio.com/docs/glossary/what-is-personally-identifiable-information-pii) or sensitive information like API keys when creating an issue. 15 | 16 | #### The Problem 17 | 18 | [Describe the problem you want to solve] 19 | 20 | #### Solution You Would Like 21 | 22 | [What you want to happen] 23 | 24 | #### Alternatives You Considered 25 | 26 | [Solutions or features you considered] -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ## Ticket 9 | - [#####] 10 | 11 | ## Github Issue 12 | - ISSUE- 13 | 14 | 15 | ## Description 16 | - 17 | 18 | 19 | ## Commit message 20 | - 21 | 22 | 23 | ## Screenshot 24 | 25 | 26 | ## Testing 27 | - [ ] Added unit tests 28 | - [ ] Ran unit tests successfully 29 | - [ ] Added documentation for public APIs and/or Wiki 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Mac OS X 2 | .DS_Store 3 | 4 | # Xcode 5 | 6 | ## Build generated 7 | build/ 8 | DerivedData 9 | vendor/ 10 | Products/ 11 | 12 | ## Various settings 13 | *.pbxuser 14 | !default.pbxuser 15 | *.mode1v3 16 | !default.mode1v3 17 | *.mode2v3 18 | !default.mode2v3 19 | *.perspectivev3 20 | !default.perspectivev3 21 | xcuserdata 22 | 23 | ## Other 24 | *.xccheckout 25 | *.moved-aside 26 | *.xcuserstate 27 | *.xcscmblueprint 28 | 29 | ## Obj-C/Swift specific 30 | *.hmap 31 | *.ipa 32 | 33 | ## Playgrounds 34 | timeline.xctimeline 35 | playground.xcworkspace 36 | 37 | # Swift Package Manager 38 | .build/ 39 | 40 | # Carthage 41 | Carthage/ 42 | 43 | # CocoaPods 44 | Pods/ 45 | 46 | #Firebase 47 | GoogleService-Info.plist 48 | 49 | #Fastlane 50 | fastlane/Test Output 51 | fastlane/test_output 52 | fastlane/report.xml 53 | 54 | #Sizer 55 | temp/ -------------------------------------------------------------------------------- /.swiftlint.yml: -------------------------------------------------------------------------------- 1 | disabled_rules: 2 | - trailing_whitespace 3 | - multiple_closures_with_trailing_closure 4 | - xctfail_message 5 | - void_return 6 | 7 | opt_in_rules: 8 | - unneeded_parentheses_in_closure_argument 9 | 10 | # Rule Config 11 | line_length: 195 12 | identifier_name: 13 | min_length: 1 14 | max_length: 15 | warning: 40 16 | error: 60 17 | 18 | type_name: 19 | min_length: 3 20 | max_length: 21 | warning: 80 22 | error: 100 23 | 24 | switch_case_alignment: 25 | indented_cases: true 26 | 27 | function_parameter_count: 28 | warning: 7 29 | error: 9 30 | 31 | excluded: 32 | - vendor 33 | -------------------------------------------------------------------------------- /AppSizer/AppSizer.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AppSizer/AppSizer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /AppSizer/AppSizer/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // AppSizer 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import UIKit 21 | import TwilioVerifySDK 22 | 23 | @UIApplicationMain 24 | class AppDelegate: UIResponder, UIApplicationDelegate { 25 | 26 | var window: UIWindow? 27 | 28 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 29 | if let sdkVersion = Bundle(identifier: "com.twilio.TwilioVerify")?.object(forInfoDictionaryKey: "CFBundleVersion") as? String { 30 | print(sdkVersion) 31 | } 32 | return true 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /AppSizer/AppSizer/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /AppSizer/AppSizer/ExportOptions/dev.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | compileBitcode 6 | 7 | destination 8 | export 9 | method 10 | development 11 | provisioningProfiles 12 | 13 | com.twilio.verify.AppSizer 14 | match Development com.twilio.verify.AppSizer 15 | 16 | signingCertificate 17 | Apple Development 18 | signingStyle 19 | manual 20 | stripSwiftSymbols 21 | 22 | teamID 23 | 9EVH78F4V4 24 | thinning 25 | <thin-for-all-variants> 26 | 27 | 28 | -------------------------------------------------------------------------------- /AppSizer/AppSizer/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | 35 | UISupportedInterfaceOrientations~ipad 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationPortraitUpsideDown 39 | UIInterfaceOrientationLandscapeLeft 40 | UIInterfaceOrientationLandscapeRight 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /AppSizer/AppSizer/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // AppSizer 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import UIKit 21 | 22 | class ViewController: UIViewController { 23 | 24 | override func viewDidLoad() { 25 | super.viewDidLoad() 26 | // Do any additional setup after loading the view. 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /DangerFile: -------------------------------------------------------------------------------- 1 | # Warn when there is a big PR 2 | warn("Big PR") if git.lines_of_code > 500 3 | 4 | 5 | # Slater config 6 | slather.configure('TwilioVerifySDK.xcodeproj', 'TwilioVerifySDK', options: { 7 | workspace: 'TwilioVerify.xcworkspace', 8 | output_directory: './fastlane/Test Output/CompleteSuite/coverage', 9 | ignore_list: ['**/OSLogWrapper.swift'], 10 | ci_service: :circleci, 11 | coverage_service: :terminal, 12 | html: true, 13 | use_bundle_exec: true 14 | }) 15 | 16 | slather.notify_if_coverage_is_less_than(minimum_coverage: 70) 17 | slather.notify_if_modified_file_is_less_than(minimum_coverage: 70) 18 | slather.show_coverage 19 | 20 | swiftlint.config_file = '.swiftlint.yml' 21 | swiftlint.lint_files inline_mode: true -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'cocoapods', '= 1.11.3' 4 | gem 'xcpretty' 5 | gem 'rb-readline' 6 | gem 'fastlane', '>= 2.216.0' 7 | gem 'filesize' 8 | gem 'plist' 9 | gem 'jazzy', '>= 0.14.2' 10 | gem 'danger', '>= 8.2.3' 11 | gem 'danger-slather', '>= 0.0.6' 12 | gem 'danger-swiftlint', '>= 0.36.0' 13 | plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') 14 | eval_gemfile(plugins_path) if File.exist?(plugins_path) 15 | -------------------------------------------------------------------------------- /HostApp/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // HostApp 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import UIKit 21 | 22 | @UIApplicationMain 23 | class AppDelegate: UIResponder, UIApplicationDelegate { 24 | 25 | var window: UIWindow? 26 | 27 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 28 | // Override point for customization after application launch. 29 | return true 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /HostApp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /HostApp/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /HostApp/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /HostApp/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // HostApp 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import UIKit 21 | 22 | class ViewController: UIViewController { 23 | 24 | override func viewDidLoad() { 25 | super.viewDidLoad() 26 | // Do any additional setup after loading the view. 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.2 2 | import PackageDescription 3 | 4 | let package = Package( 5 | name: "TwilioVerifySDK", 6 | platforms: [ 7 | .iOS(.v12) 8 | ], 9 | products: [ 10 | .library( 11 | name: "TwilioVerifySDK", 12 | targets: ["TwilioVerifySDK"]) 13 | ], 14 | dependencies: [], 15 | targets: [ 16 | .target( 17 | name: "TwilioVerifySDK", 18 | dependencies: [], 19 | path: "TwilioVerifySDK" 20 | ), 21 | .testTarget( 22 | name: "TwilioVerifySDKTests", 23 | dependencies: ["TwilioVerifySDK"], 24 | path: "TwilioVerifySDKTests" 25 | ) 26 | ] 27 | ) 28 | -------------------------------------------------------------------------------- /Scripts/app-sizer.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | source `dirname $0`/env.sh 5 | pushd ${BASE_DIR} 6 | 7 | # Generate the sizing report 8 | ./Scripts/env.rb ./Scripts/generate-size-report.rb 9 | 10 | # Cat the output for visibility 11 | cat "${SIZE_REPORT_DIR}/SizeImpact.md" 12 | popd 13 | -------------------------------------------------------------------------------- /Scripts/env.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | exit 1 unless ARGV[0] 3 | 4 | exec "bash -c 'source Scripts/env.sh && /usr/bin/env ruby #{ARGV[0]}'" 5 | -------------------------------------------------------------------------------- /Scripts/generate-docs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd .. 4 | twilioVerifyConfig=`cat TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyConfig.swift` 5 | SAVEIFS=$IFS 6 | IFS=$'\n' 7 | components=($twilioVerifyConfig) 8 | IFS=$SAVEIFS 9 | 10 | for (( i=0; i<${#components[@]}; i++ )) 11 | do 12 | if [[ ${components[$i]} == "let version ="* ]]; then 13 | version=$(echo ${components[$i]} | cut -d"\"" -f2) 14 | fi 15 | done 16 | 17 | jazzy \ 18 | --output docs/$version/ \ 19 | --theme apple 20 | 21 | cd docs 22 | ln -nsf "$version" latest 23 | -------------------------------------------------------------------------------- /Scripts/run_tests.sh: -------------------------------------------------------------------------------- 1 | #/bin/sh 2 | BOLD='\033[1m' 3 | RED='\033[0;31m' 4 | GREEN='\033[0;32m' 5 | NC='\033[0m' # No Color 6 | if [[ "$PWD" = */Scripts* ]]; then 7 | echo -e "${RED}${BOLD}❌ERROR ❌${NC}${RED}: Please run this script on the root directory.${NC}" 8 | exit 0 9 | fi 10 | 11 | echo "\n${GREEN}***${NC}${BOLD} Testing TwilioVerify ${REG}${GREEN}***${NC}" 12 | bundle exec fastlane test test_plan:CompleteSuite || exit 1 13 | 14 | echo "\n${GREEN}***${NC}${BOLD} Testing TwilioVerifyDemo App ${REG}${GREEN}***${NC}" 15 | bundle exec fastlane test scheme:TwilioVerifyDemo || exit 1 16 | 17 | exit 0 18 | -------------------------------------------------------------------------------- /TwilioVerify.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'TwilioVerify' 3 | s.module_name = 'TwilioVerifySDK' 4 | s.version = '3.0.0' 5 | s.license = { :type => 'Apache-2.0', :file => 'LICENSE' } 6 | s.summary = 'TwilioVerify' 7 | s.homepage = 'https://github.com/twilio/twilio-verify-ios' 8 | s.authors = { 'Twilio' => 'help@twilio.com' } 9 | s.source = { :git => 'https://github.com/twilio/twilio-verify-ios.git', :tag => s.version } 10 | s.documentation_url = 'https://twilio.github.io/twilio-verify-ios/latest/' 11 | s.ios.deployment_target = '12.0' 12 | s.swift_version = '5.2' 13 | s.source_files = 'TwilioVerifySDK/TwilioVerify/**/*.swift', 'TwilioVerifySDK/TwilioSecurity/**/*.swift' 14 | end 15 | -------------------------------------------------------------------------------- /TwilioVerify.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /TwilioVerify.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemo/AccessToken/AccessTokenResponse.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AccessTokenResponse.swift 3 | // TwilioVerifyDemo 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); 6 | // you may not use this file except in compliance with the License. 7 | // You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, software 12 | // distributed under the License is distributed on an "AS IS" BASIS, 13 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | // See the License for the specific language governing permissions and 15 | // limitations under the License. 16 | // 17 | 18 | import Foundation 19 | 20 | struct AccessTokenResponse: Codable { 21 | let token: String 22 | let serviceSid: String 23 | let identity: String 24 | let factorType: String 25 | } 26 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemo/Common/AppModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppModel.swift 3 | // TwilioVerifyDemo 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); 6 | // you may not use this file except in compliance with the License. 7 | // You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, software 12 | // distributed under the License is distributed on an "AS IS" BASIS, 13 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | // See the License for the specific language governing permissions and 15 | // limitations under the License. 16 | // 17 | 18 | import Foundation 19 | 20 | /** 21 | There is no need to implement exacly this behavior in your project. 22 | This model and dictionary is intented only for keeping states between ViewControllers 23 | and demostrate the `Silenty approve` behavior for your challenges. 24 | */ 25 | struct AppModel { 26 | static var factorsSilentyApproved = [String: Bool]() 27 | } 28 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemo/Common/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemo/Common/DIContainer.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DIContainer.swift 3 | // TwilioVerifyDemo 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); 6 | // you may not use this file except in compliance with the License. 7 | // You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, software 12 | // distributed under the License is distributed on an "AS IS" BASIS, 13 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | // See the License for the specific language governing permissions and 15 | // limitations under the License. 16 | // 17 | 18 | protocol DIContainerProtocol { 19 | func register(type: Component.Type, component: Any) 20 | func resolve(type: Component.Type) -> Component? 21 | } 22 | 23 | final class DIContainer: DIContainerProtocol { 24 | 25 | static let shared = DIContainer() 26 | 27 | private init() {} 28 | 29 | var components: [String: Any] = [:] 30 | 31 | func register(type: Component.Type, component: Any) { 32 | components["\(type)"] = component 33 | } 34 | 35 | func resolve(type: Component.Type) -> Component? { 36 | return components["\(type)"] as? Component 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemo/Common/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | $(MARKETING_VERSION) 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | LSRequiresIPhoneOS 22 | 23 | UIBackgroundModes 24 | 25 | remote-notification 26 | 27 | UILaunchStoryboardName 28 | LaunchScreen 29 | UIMainStoryboardFile 30 | Main 31 | UIRequiredDeviceCapabilities 32 | 33 | armv7 34 | 35 | UIStatusBarStyle 36 | UIStatusBarStyleLightContent 37 | UISupportedInterfaceOrientations 38 | 39 | UIInterfaceOrientationPortrait 40 | 41 | UISupportedInterfaceOrientations~ipad 42 | 43 | UIInterfaceOrientationPortrait 44 | UIInterfaceOrientationPortraitUpsideDown 45 | UIInterfaceOrientationLandscapeLeft 46 | UIInterfaceOrientationLandscapeRight 47 | 48 | UIViewControllerBasedStatusBarAppearance 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemo/Common/PushChallengePayloadData.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PushChallengePayloadData.swift 3 | // TwilioVerifyDemo 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); 6 | // you may not use this file except in compliance with the License. 7 | // You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, software 12 | // distributed under the License is distributed on an "AS IS" BASIS, 13 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | // See the License for the specific language governing permissions and 15 | // limitations under the License. 16 | // 17 | 18 | import Foundation 19 | 20 | /** 21 | This model is intended to parse the payload data from the remote Push Notification and improve the local handling of the data. 22 | Please notice that this is not required in your implementation. 23 | */ 24 | struct PushChallengePayloadData { 25 | let challengeSid: String 26 | let factorSid: String 27 | let type: String 28 | 29 | private let verifyPushChallengeKey = "verify_push_challenge" 30 | 31 | private struct Keys { 32 | static let challengeSid = "challenge_sid" 33 | static let factorSid = "factor_sid" 34 | static let type = "type" 35 | } 36 | 37 | init?(payload: [String: Any]) { 38 | guard let challengeSid = payload[Keys.challengeSid] as? String, 39 | let factorSid = payload[Keys.factorSid] as? String, 40 | let type = payload[Keys.type] as? String, 41 | type == verifyPushChallengeKey else { 42 | return nil 43 | } 44 | 45 | self.challengeSid = challengeSid 46 | self.factorSid = factorSid 47 | self.type = type 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemo/Extensions/DateFormatter+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DateFormatter+Extensions.swift 3 | // TwilioVerifyDemo 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); 6 | // you may not use this file except in compliance with the License. 7 | // You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, software 12 | // distributed under the License is distributed on an "AS IS" BASIS, 13 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | // See the License for the specific language governing permissions and 15 | // limitations under the License. 16 | // 17 | 18 | import Foundation 19 | 20 | extension Date { 21 | func verifyStringFormat() -> String { 22 | let formatter = DateFormatter() 23 | formatter.locale = Locale(identifier: "en_US_POSIX") 24 | formatter.dateFormat = "MMM d yyy, h:mm a" 25 | return formatter.string(from: self) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemo/Extensions/UIColor+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+Extensions.swift 3 | // TwilioVerifyDemo 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); 6 | // you may not use this file except in compliance with the License. 7 | // You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, software 12 | // distributed under the License is distributed on an "AS IS" BASIS, 13 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | // See the License for the specific language governing permissions and 15 | // limitations under the License. 16 | // 17 | 18 | import UIKit 19 | 20 | extension UIColor { 21 | open class var curiousBlue: UIColor { 22 | return UIColor(red: 53/255, green: 121/255, blue: 192/255, alpha: 1) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemo/Extensions/UITextField+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UITextField+Extensions.swift 3 | // TwilioVerifyDemo 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); 6 | // you may not use this file except in compliance with the License. 7 | // You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, software 12 | // distributed under the License is distributed on an "AS IS" BASIS, 13 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | // See the License for the specific language governing permissions and 15 | // limitations under the License. 16 | // 17 | 18 | import UIKit 19 | 20 | extension UITextField { 21 | func addBottomBorder(withWidth width: CGFloat = 1) { 22 | let bottomLayer = CALayer() 23 | bottomLayer.borderColor = UIColor.lightGray.cgColor 24 | bottomLayer.frame = CGRect(x: 0, y: frame.size.height - width, width: frame.size.width, height: frame.size.height) 25 | bottomLayer.borderWidth = width 26 | 27 | layer.addSublayer(bottomLayer) 28 | layer.masksToBounds = true 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemo/FactorDetail/View/ChallengeTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChallengeTableViewCell.swift 3 | // TwilioVerifyDemo 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import UIKit 21 | import TwilioVerifySDK 22 | 23 | class ChallengeTableViewCell: UITableViewCell { 24 | 25 | static let reuseIdentifier = String(describing: ChallengeTableViewCell.self) 26 | 27 | @IBOutlet private weak var messageLabel: UILabel! 28 | @IBOutlet private weak var expirationDateLabel: UILabel! 29 | @IBOutlet private weak var statusLabel: UILabel! 30 | 31 | func configure(with challenge: Challenge) { 32 | messageLabel.text = challenge.challengeDetails.message 33 | expirationDateLabel.text = challenge.expirationDate.verifyStringFormat() 34 | statusLabel.text = challenge.status.rawValue 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemo/FactorList/View/FactorTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FactorTableViewCell.swift 3 | // TwilioVerifyDemo 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); 6 | // you may not use this file except in compliance with the License. 7 | // You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, software 12 | // distributed under the License is distributed on an "AS IS" BASIS, 13 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | // See the License for the specific language governing permissions and 15 | // limitations under the License. 16 | // 17 | 18 | import UIKit 19 | import TwilioVerifySDK 20 | 21 | class FactorTableViewCell: UITableViewCell { 22 | 23 | static let reuseIdentifier = String(describing: FactorTableViewCell.self) 24 | 25 | @IBOutlet private weak var nameLabel: UILabel! 26 | @IBOutlet private weak var sidLabel: UILabel! 27 | @IBOutlet private weak var identityLabel: UILabel! 28 | @IBOutlet private weak var statusLabel: UILabel! 29 | 30 | func configure(with factor: Factor) { 31 | nameLabel.text = factor.friendlyName 32 | sidLabel.text = factor.sid 33 | identityLabel.text = factor.identity 34 | statusLabel.text = factor.status.rawValue 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemo/TwilioVerifyDemo.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | aps-environment 6 | development 7 | 8 | 9 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /TwilioVerifyDemo/TwilioVerifyDemoTests/TwilioVerifyDemoTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TwilioVerifyDemoTests.swift 3 | // TwilioVerifyDemoTests 4 | // 5 | // Copyright © 2020 Twilio. All rights reserved. 6 | // This file is licensed under the Apache License 2.0. 7 | // License text available at https://github.com/twilio/twilio-verify-ios/blob/main/LICENSE 8 | // 9 | 10 | import XCTest 11 | @testable import TwilioVerifyDemo 12 | 13 | class TwilioVerifyDemoTests: XCTestCase { 14 | 15 | override func setUpWithError() throws { 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDownWithError() throws { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | } 22 | 23 | func testExample() throws { 24 | // This is an example of a functional test case. 25 | // Use XCTAssert and related functions to verify your tests produce the correct results. 26 | } 27 | 28 | func testPerformanceExample() throws { 29 | // This is an example of a performance test case. 30 | self.measure { 31 | // Put the code you want to measure the time of here. 32 | } 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /TwilioVerifySDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TwilioVerifySDK.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TwilioVerifySDK/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 15 | CFBundleShortVersionString 16 | 3.0.0 17 | CFBundleVersion 18 | 3.0.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /TwilioVerifySDK/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyAccessedAPITypes 6 | 7 | 8 | NSPrivacyAccessedAPIType 9 | NSPrivacyAccessedAPICategoryUserDefaults 10 | NSPrivacyAccessedAPITypeReasons 11 | 12 | CA92.1 13 | 14 | 15 | 16 | 17 | NSPrivacyTracking 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioSecurity/Sources/Key/KeyPair.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KeyPair.swift 3 | // TwilioSecurity 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | struct KeyPair { 23 | var publicKey: SecKey 24 | var privateKey: SecKey 25 | } 26 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioSecurity/Sources/Key/Template/Template.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Template.swift 3 | // TwilioSecurity 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | /// :nodoc: 23 | public protocol Template { 24 | var alias: String {get} 25 | var algorithm: String {get} 26 | var shouldExist: Bool {get} 27 | } 28 | 29 | /// :nodoc: 30 | public protocol SignerTemplate: Template { 31 | var signatureAlgorithm: SecKeyAlgorithm {get} 32 | var parameters: [String: Any] {get} 33 | var allowIphoneMigration: Bool { get } 34 | } 35 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/API/APIConstants.swift: -------------------------------------------------------------------------------- 1 | // 2 | // APIConstants.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | struct APIConstants { 23 | static let jwtAuthenticationUser = "token" 24 | static let serviceSidPath = "{ServiceSid}" 25 | static let identityPath = "{Identity}" 26 | static let factorSidPath = "{FactorSid}" 27 | static let challengeSidPath = "{ChallengeSid}" 28 | } 29 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Data/DateProvider.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DateProvider.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | protocol DateProvider { 23 | func getCurrentTime() -> Int 24 | func syncTime(_ date: String) 25 | } 26 | 27 | class DateAdapter: DateProvider { 28 | 29 | private let userDefaults: UserDefaults 30 | 31 | init(userDefaults: UserDefaults = .standard) { 32 | self.userDefaults = userDefaults 33 | } 34 | 35 | func getCurrentTime() -> Int { 36 | let timeDifference = userDefaults.integer(forKey: Constants.timeCorrectionKey) 37 | return localTime() + timeDifference 38 | } 39 | 40 | func syncTime(_ date: String) { 41 | guard let time = DateFormatter().RFC1123(date)?.timeIntervalSince1970 else { 42 | return 43 | } 44 | saveTime(Int(time)) 45 | } 46 | } 47 | 48 | private extension DateAdapter { 49 | func localTime() -> Int { 50 | Int(Date().timeIntervalSince1970) 51 | } 52 | 53 | func saveTime(_ time: Int) { 54 | let timeCorrection = time - localTime() 55 | userDefaults.set(timeCorrection, forKey: Constants.timeCorrectionKey) 56 | } 57 | } 58 | 59 | extension DateAdapter { 60 | struct Constants { 61 | static let timeCorrectionKey = "timeCorrection" 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Data/Migration.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Migration.swift 3 | // TwilioVerifySDK 4 | // 5 | // Copyright © 2022 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | struct Entry { 23 | let key: String 24 | let value: Data 25 | } 26 | 27 | protocol Migration { 28 | var startVersion: Int { get } 29 | var endVersion: Int { get } 30 | /** 31 | Perform a migration from startVersion to endVersion. Take into account that migrations could be performed for newer versions 32 | when reinstalling (when clearStorageOnReinstall is false), so validate that the data needs the migration. 33 | 34 | - Returns:returns an array of data that needs to be migrated, adding/removing fields, etc. Empty to skip the migration. 35 | */ 36 | func migrate(data: [Data]) -> [Entry] 37 | } 38 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Domain/Challenge/Models/DTO/ChallengeDTO.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChallengeDTO.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | struct ChallengeDTO: Codable { 23 | let sid: String 24 | let details: ChallengeDetailsDTO 25 | let hiddenDetails: [String: String]? 26 | let factorSid: String 27 | let status: ChallengeStatus 28 | let expirationDate: String 29 | let createdAt: String 30 | let updateAt: String 31 | 32 | enum CodingKeys: String, CodingKey { 33 | case sid 34 | case details 35 | case hiddenDetails = "hidden_details" 36 | case factorSid = "factor_sid" 37 | case status 38 | case expirationDate = "expiration_date" 39 | case createdAt = "date_created" 40 | case updateAt = "date_updated" 41 | } 42 | } 43 | 44 | struct ChallengeDetailsDTO: Codable { 45 | let message: String 46 | let fields: [Detail]? 47 | let date: String? 48 | } 49 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Domain/Challenge/Models/DTO/ChallengeListDTO.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChallengesDTO.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | struct ChallengeListDTO: Codable { 23 | let challenges: [ChallengeDTO] 24 | let meta: MetadataDTO 25 | } 26 | 27 | struct MetadataDTO: Codable { 28 | let page: Int 29 | let pageSize: Int 30 | let previousPageURL: String? 31 | let nextPageURL: String? 32 | 33 | enum CodingKeys: String, CodingKey { 34 | case page 35 | case pageSize = "page_size" 36 | case previousPageURL = "previous_page_url" 37 | case nextPageURL = "next_page_url" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Domain/Challenge/Models/FactorChallenge.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FactorChallenge.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | struct FactorChallenge: Challenge { 23 | let sid: String 24 | let challengeDetails: ChallengeDetails 25 | let hiddenDetails: [String: String]? 26 | let factorSid: String 27 | let status: ChallengeStatus 28 | let createdAt: Date 29 | let updatedAt: Date 30 | let expirationDate: Date 31 | var factor: Factor? 32 | // Original values to generate signature 33 | var signatureFields: [String]? 34 | var response: [String: Any]? 35 | } 36 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Domain/Factor/MapperError.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MapperError.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | enum MapperError: LocalizedError { 23 | case invalidDate 24 | case invalidArgument 25 | case illegalArgument 26 | } 27 | 28 | extension MapperError { 29 | var errorDescription: String? { 30 | switch self { 31 | case .invalidDate: 32 | return "Invalid date format" 33 | case .invalidArgument: 34 | return "ServiceSid or Identity is null or empty" 35 | case .illegalArgument: 36 | return "Invalid factor type from data" 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Domain/Factor/Models/DTOs/PushFactorDTO.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PushFactorDTO.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | struct PushFactorDTO: Codable { 23 | var status: FactorStatus 24 | let sid: String 25 | let friendlyName: String 26 | let accountSid: String 27 | var createdAt: String 28 | let config: ConfigDTO 29 | let metadata: [String: String]? 30 | 31 | enum CodingKeys: String, CodingKey { 32 | case status 33 | case sid 34 | case friendlyName = "friendly_name" 35 | case accountSid = "account_sid" 36 | case createdAt = "date_created" 37 | case config 38 | case metadata 39 | } 40 | } 41 | 42 | struct ConfigDTO: Codable { 43 | let credentialSid: String 44 | let notificationPlatform: String? 45 | 46 | enum CodingKeys: String, CodingKey { 47 | case credentialSid = "credential_sid" 48 | case notificationPlatform = "notification_platform" 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Domain/Factor/Models/FactorDataPayload.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FactorPayload.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | protocol FactorDataPayload { 23 | var friendlyName: String { get } 24 | var type: FactorType { get } 25 | var allowIphoneMigration: Bool { get } 26 | var serviceSid: String { get } 27 | var identity: String { get } 28 | var config: [String: String] { get } 29 | } 30 | 31 | struct CreateFactorPayload: FactorDataPayload { 32 | let friendlyName: String 33 | let type: FactorType 34 | /// `allowIphoneMigration` is exclusive to local persistence, bypasses the API. 35 | let allowIphoneMigration: Bool 36 | let serviceSid: String 37 | let identity: String 38 | let config: [String: String] 39 | let binding: [String: String] 40 | let accessToken: String 41 | let metadata: [String: String]? 42 | } 43 | 44 | struct UpdateFactorDataPayload: FactorDataPayload { 45 | let friendlyName: String 46 | let type: FactorType 47 | /// `allowIphoneMigration` is exclusive to local persistence, bypasses the API. 48 | let allowIphoneMigration: Bool 49 | let serviceSid: String 50 | let identity: String 51 | let config: [String: String] 52 | let factorSid: String 53 | } 54 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Extensions/DateFormatter+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DateFormatter+Extensions.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | extension DateFormatter { 23 | func RFC3339(_ date: String) -> Date? { 24 | calendar = Calendar(identifier: .iso8601) 25 | locale = Locale(identifier: "en_US_POSIX") 26 | timeZone = TimeZone(secondsFromGMT: 0) 27 | dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ" 28 | return self.date(from: date) 29 | } 30 | 31 | func RFC1123(_ date: String) -> Date? { 32 | calendar = Calendar(identifier: .iso8601) 33 | locale = Locale(identifier: "en_US_POSIX") 34 | timeZone = TimeZone(secondsFromGMT: 0) 35 | dateFormat = "EEE, dd MMM yyyy HH:mm:ss zzz" 36 | return self.date(from: date) 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Extensions/StringInterpolation+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // StringInterpolation+Extensions.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2021 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | extension String.StringInterpolation { 23 | 24 | mutating func appendInterpolation(_ value: T?) { 25 | appendInterpolation(value ?? "nil" as CustomStringConvertible) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Logger/DefaultLogger.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DefaultLogger.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | class DefaultLogger { 23 | 24 | private(set) var level: LogLevel 25 | private let osLog: OSLogWrappable 26 | 27 | init(withLevel level: LogLevel, 28 | osLog: OSLogWrappable = OSLogWrapper()) { 29 | self.level = level 30 | self.osLog = osLog 31 | } 32 | } 33 | 34 | extension DefaultLogger: LoggerService { 35 | func log(withLevel level: LogLevel, message: String, redacted: Bool) { 36 | guard level == self.level || self.level == .all else { return } 37 | osLog.log(message, type: level.mapToOSLogType, redacted: redacted) 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Logger/OSLogWrapper.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OSLogWrapper.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | import os 22 | 23 | protocol OSLogWrappable { 24 | func log(_ message: String, type: OSLogType, redacted: Bool) 25 | } 26 | 27 | class OSLogWrapper: OSLogWrappable { 28 | func log(_ message: String, type: OSLogType, redacted: Bool) { 29 | if #available(iOS 12.0, *) { 30 | os_log(type, redacted ? Constants.privateLogFormat : Constants.publicLogFormat, message) 31 | } else { 32 | os_log(redacted ? Constants.privateLogFormat : Constants.publicLogFormat, message) 33 | } 34 | } 35 | } 36 | 37 | private extension OSLogWrapper { 38 | struct Constants { 39 | static let publicLogFormat: StaticString = "%{public}@" 40 | static let privateLogFormat: StaticString = "%{private}@" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Models/ChallengeList.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChallengeList.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | /// Describes the information of a **ChallengeList** 23 | public protocol ChallengeList { 24 | /// Array of Challenges that matches the parameters of the **ChallengeListPayload** used 25 | var challenges: [Challenge] { get } 26 | /// Metadata returned by the /Challenges endpoint, used to fetch subsequent pages of Challenges 27 | var metadata: Metadata { get } 28 | } 29 | 30 | /// Describes the information of a **ChallengeList** 31 | struct FactorChallengeList: ChallengeList { 32 | /// Array of Challenges that matches the parameters of the **ChallengeListPayload** used 33 | let challenges: [Challenge] 34 | /// Metadata returned by the /Challenges endpoint, used to fetch subsequent pages of Challenges 35 | let metadata: Metadata 36 | } 37 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Models/Metadata.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Metadata.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | /// Describes the **Metadata** of a paginated service 23 | public protocol Metadata { 24 | /// Current Page 25 | var page: Int { get } 26 | /// Number of result per page 27 | var pageSize: Int { get } 28 | /// Identifies the previous page 29 | var previousPageToken: String? { get } 30 | /// Identifies the next page 31 | var nextPageToken: String? { get } 32 | } 33 | 34 | /// Describes the **Metadata** of the /Challenges service 35 | struct ChallengeListMetadata: Metadata { 36 | /// Current Page 37 | let page: Int 38 | /// Number of result per page 39 | let pageSize: Int 40 | /// Identifies the previous page 41 | let previousPageToken: String? 42 | /// Identifies the next page 43 | let nextPageToken: String? 44 | } 45 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Models/UpdateFactorPayload.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UpdateFactorPayload.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | /// Describes the information required to update a **Factor** 23 | public protocol UpdateFactorPayload { 24 | /// Factor Sid 25 | var sid: String { get } 26 | } 27 | 28 | /// Describes the information required to update a **Factor** which type is **Push** 29 | public struct UpdatePushFactorPayload: UpdateFactorPayload { 30 | /// Factor Sid 31 | public let sid: String 32 | /// (Optional) Registration token generated by APNS when registering for remote notifications. 33 | /// Sending nil or empty will disable sending push notifications for challenges associated to this factor. 34 | public let pushToken: String? 35 | 36 | /** 37 | Creates an **UpdatePushFactorPayload** with the given parameters 38 | - Parameters: 39 | - sid: Factor Sid 40 | - pushToken: (Optional) Registration token generated by APNS when registering for remote notifications. 41 | Sending nil or empty will disable sending push notifications for challenges associated to this factor. 42 | */ 43 | public init( 44 | sid: String, 45 | pushToken: String? 46 | ) { 47 | self.sid = sid 48 | self.pushToken = pushToken 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Models/VerifyFactorPayload.swift: -------------------------------------------------------------------------------- 1 | // 2 | // VerifyFactorPayload.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | /// Describes the information required to verify a **Factor** 23 | public protocol VerifyFactorPayload { 24 | /// Factor sid 25 | var sid: String { get } 26 | } 27 | 28 | /// Describes the information required to verify a **Factor** which type is **Push** 29 | public struct VerifyPushFactorPayload: VerifyFactorPayload { 30 | /// Factor sid 31 | public let sid: String 32 | 33 | /** 34 | Creates a **VerifyPushFactorPayload** with the given parameters 35 | - Parameters: 36 | - sid: Factor sid 37 | */ 38 | public init( 39 | sid: String 40 | ) { 41 | self.sid = sid 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Networking/BasicAuthorization.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BasicAuthorization.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | class BasicAuthorization { 23 | 24 | private let username: String 25 | private let password: String 26 | 27 | required init(username: String, password: String) { 28 | self.username = username 29 | self.password = password 30 | } 31 | 32 | func header() -> HTTPHeader { 33 | return HTTPHeader.authorization(username: username, password: password) 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Networking/HTTPMethod.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HTTPMethod.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | enum HTTPMethod { 23 | case get 24 | case post 25 | case put 26 | case delete 27 | } 28 | 29 | extension HTTPMethod { 30 | var value: String { 31 | switch self { 32 | case .get: 33 | return "GET" 34 | case .post: 35 | return "POST" 36 | case .put: 37 | return "PUT" 38 | case .delete: 39 | return "DELETE" 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/Networking/MediaType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MediaType.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | enum MediaType { 23 | case urlEncoded 24 | case json 25 | } 26 | 27 | extension MediaType { 28 | var value: String { 29 | switch self { 30 | case .urlEncoded: 31 | return "application/x-www-form-urlencoded" 32 | case .json: 33 | return "application/json" 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyConfig.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TwilioVerifyConfig.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | let version = "3.0.0" 21 | let bundleName = "TwilioVerify" 22 | let bundleVersion = "1" 23 | let baseURL = "https://verify.twilio.com/v2/" 24 | -------------------------------------------------------------------------------- /TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifySDK.h: -------------------------------------------------------------------------------- 1 | // 2 | // TwilioVerify.h 3 | // TwilioVerify 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | #import 21 | 22 | //! Project version number for TwilioVerify. 23 | FOUNDATION_EXPORT double TwilioVerifyVersionNumber; 24 | 25 | //! Project version string for TwilioVerify. 26 | FOUNDATION_EXPORT const unsigned char TwilioVerifyVersionString[]; 27 | 28 | // In this header, you should import all the public headers of your framework using statements like #import 29 | 30 | 31 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/Error/EquatableError.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EquatableError.swift 3 | // TwilioVerify 4 | // 5 | // Copyright © 2022 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | struct EquatableError: Error, Equatable, CustomStringConvertible { 23 | let base: Error 24 | private let equals: (Error) -> Bool 25 | 26 | init(_ base: Base) { 27 | self.base = base 28 | self.equals = { String(reflecting: $0) == String(reflecting: base) } 29 | } 30 | 31 | init(_ base: Base) { 32 | self.base = base 33 | self.equals = { ($0 as? Base) == base } 34 | } 35 | 36 | static func == (lhs: EquatableError, rhs: EquatableError) -> Bool { 37 | lhs.equals(rhs.base) 38 | } 39 | 40 | var description: String { 41 | "\(self.base)" 42 | } 43 | 44 | func asError(type: Base.Type) -> Base? { 45 | self.base as? Base 46 | } 47 | 48 | var localizedDescription: String { 49 | self.base.localizedDescription 50 | } 51 | } 52 | 53 | extension Error where Self: Equatable { 54 | func toEquatableError() -> EquatableError { 55 | EquatableError(self) 56 | } 57 | } 58 | 59 | extension Error { 60 | func toEquatableError() -> EquatableError { 61 | EquatableError(self) 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/Error/TestError.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TestError.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | enum TestError: Error { 23 | case operationFailed 24 | } 25 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/Plans/CompleteSuite.xctestplan: -------------------------------------------------------------------------------- 1 | { 2 | "configurations" : [ 3 | { 4 | "id" : "17F176D8-3AFA-4F5A-9E66-32AB6EF81718", 5 | "name" : "Configuration 1", 6 | "options" : { 7 | 8 | } 9 | } 10 | ], 11 | "defaultOptions" : { 12 | "codeCoverage" : { 13 | "targets" : [ 14 | { 15 | "containerPath" : "container:TwilioVerifySDK.xcodeproj", 16 | "identifier" : "F2AA3777246F30BE00B9388F", 17 | "name" : "TwilioVerifySDK" 18 | } 19 | ] 20 | }, 21 | "targetForVariableExpansion" : { 22 | "containerPath" : "container:TwilioVerify.xcodeproj", 23 | "identifier" : "F2F62F9C248846D800E330E4", 24 | "name" : "HostApp" 25 | }, 26 | "testExecutionOrdering" : "random" 27 | }, 28 | "testTargets" : [ 29 | { 30 | "target" : { 31 | "containerPath" : "container:TwilioVerifySDK.xcodeproj", 32 | "identifier" : "F2AA3780246F30BF00B9388F", 33 | "name" : "TwilioVerifySDKTests" 34 | } 35 | } 36 | ], 37 | "version" : 1 38 | } 39 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/Plans/IntegrationSuite.xctestplan: -------------------------------------------------------------------------------- 1 | { 2 | "configurations" : [ 3 | { 4 | "id" : "264480FC-B0F3-467D-A9CB-CAC5DE147E0A", 5 | "name" : "Configuration 1", 6 | "options" : { 7 | 8 | } 9 | } 10 | ], 11 | "defaultOptions" : { 12 | 13 | }, 14 | "testTargets" : [ 15 | { 16 | "skippedTests" : [ 17 | "AuthenticationProviderTests", 18 | "BasicAuthorizationTests", 19 | "ChallengeAPIClientTests", 20 | "ChallengeFacadeTests", 21 | "ChallengeListMapperTests", 22 | "ChallengeMapperTests", 23 | "ChallengeRepositoryTests", 24 | "DateProviderTests", 25 | "ECP256SignerTemplateTests", 26 | "ECSignerTests", 27 | "FactorAPIClientTests", 28 | "FactorFacadeTests", 29 | "FactorMapperTests", 30 | "FactorRepositoryTests", 31 | "HTTPHeadersTests", 32 | "JwtGeneratorTests", 33 | "JwtSignerTests", 34 | "KeyManagerTests", 35 | "KeyStorageAdapterTests", 36 | "KeychainQueryTests", 37 | "NetworkAdapterTests", 38 | "ParametersTests", 39 | "PushChallengeProcessorTests", 40 | "PushFactoryTests", 41 | "RequestHelperTests", 42 | "SecureStorageTests", 43 | "StorageTests", 44 | "TwilioVerifyManagerTests", 45 | "URLRequestBuilderTests" 46 | ], 47 | "target" : { 48 | "containerPath" : "container:TwilioVerifySDK.xcodeproj", 49 | "identifier" : "F2AA3780246F30BF00B9388F", 50 | "name" : "TwilioVerifySDKTests" 51 | } 52 | } 53 | ], 54 | "version" : 1 55 | } 56 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioSecurity/Sources/Keychain/Mocks/KeyManagerSecurityMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KeychainManagerMock.swift 3 | // TwilioSecurityTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | @testable import TwilioVerifySDK 22 | 23 | class KeyManagerSecurityMock { 24 | 25 | var error: Error? 26 | var signerKeyPair: KeyPair! 27 | private let keychain: KeychainProtocol 28 | 29 | required init( 30 | withKeychain keychain: KeychainProtocol = KeychainMock(), 31 | keychainQuery: KeychainQueryProtocol = KeychainQuery(accessGroup: nil) 32 | ) { 33 | self.keychain = keychain 34 | } 35 | } 36 | 37 | extension KeyManagerSecurityMock: KeyManagerProtocol { 38 | func signer(withTemplate template: SignerTemplate) throws -> Signer { 39 | return ECSigner(withKeyPair: signerKeyPair, signatureAlgorithm: template.signatureAlgorithm, keychain: keychain) 40 | } 41 | 42 | func deleteKey(withAlias alias: String) throws { 43 | if let error = error { 44 | throw error 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/API/Mocks/AuthenticationMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AuthenticationMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import XCTest 21 | @testable import TwilioVerifySDK 22 | 23 | class AuthenticationMock: Authentication { 24 | func generateJWT(forFactor factor: Factor) -> String { 25 | "" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/API/Mocks/NetworkProviderMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NetworkProviderMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import XCTest 21 | @testable import TwilioVerifySDK 22 | 23 | // swiftlint:disable force_cast 24 | class NetworkProviderMock: NetworkProvider { 25 | var response: NetworkResponse? 26 | var responses: [Any]? 27 | var error: Error? 28 | private(set) var callsToExecute = 0 29 | private(set) var urlRequest: URLRequest? 30 | 31 | func execute(_ urlRequest: URLRequest, success: @escaping SuccessResponseBlock, failure: @escaping FailureBlock) { 32 | self.urlRequest = urlRequest 33 | if let response = response { 34 | success(response) 35 | return 36 | } 37 | if let response = responses?[callsToExecute] { 38 | callsToExecute += 1 39 | switch response { 40 | case is NetworkResponse: 41 | success(response as! NetworkResponse) 42 | case is Error: 43 | failure(response as! Error) 44 | default: 45 | fatalError("Expected params not set") 46 | } 47 | return 48 | } 49 | if let error = error { 50 | callsToExecute += 1 51 | failure(error) 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Data/Mocks/JwtGeneratorMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JwtGeneratorMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import XCTest 21 | @testable import TwilioVerifySDK 22 | 23 | class JwtGeneratorMock: JwtGeneratorProtocol { 24 | var jwt: String! 25 | private(set) var header: [String: String]! 26 | private(set) var payload: [String: Any]! 27 | var error: Error? 28 | 29 | func generateJWT( 30 | forHeader header: [String: String], 31 | forPayload payload: [String: Any], 32 | withSignerTemplate signerTemplate: SignerTemplate 33 | ) throws -> String { 34 | if let error = error { 35 | throw error 36 | } 37 | self.header = header 38 | self.payload = payload 39 | return jwt! 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Data/Mocks/JwtSignerMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JwtSignerMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | @testable import TwilioVerifySDK 22 | 23 | class JwtSignerMock { 24 | var operationresult: Data! 25 | } 26 | 27 | extension JwtSignerMock: JwtSignerProtocol { 28 | 29 | func sign( 30 | message: String, 31 | withSignerTemplate signerTemplate: SignerTemplate 32 | ) -> Data { 33 | return operationresult 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Data/Mocks/KeyManagerMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KeyManagerMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | @testable import TwilioVerifySDK 22 | 23 | class KeyManagerMock { 24 | var error: Error? 25 | var signer: Signer! 26 | } 27 | 28 | extension KeyManagerMock: KeyManagerProtocol { 29 | func signer(withTemplate template: SignerTemplate) throws -> Signer { 30 | if let error = error { 31 | throw error 32 | } 33 | return signer 34 | } 35 | 36 | func deleteKey(withAlias alias: String) throws { 37 | if let error = error { 38 | throw error 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Data/Mocks/MigrationMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MigrationMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | @testable import TwilioVerifySDK 22 | 23 | class MigrationMock: Migration { 24 | var startVersion: Int 25 | var endVersion: Int 26 | private(set) var callsToMigrate = 0 27 | var migrateData: (() -> [Entry])! 28 | 29 | init(startVersion: Int, endVersion: Int) { 30 | self.startVersion = startVersion 31 | self.endVersion = endVersion 32 | } 33 | 34 | func migrate(data: [Data]) -> [Entry] { 35 | callsToMigrate += 1 36 | return migrateData?() ?? [] 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Data/Mocks/SignerMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SignerMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | @testable import TwilioVerifySDK 22 | 23 | class SignerMock { 24 | var error: Error? 25 | var operationresult: Data! 26 | var verifyShouldSucceed = false 27 | } 28 | 29 | extension SignerMock: Signer { 30 | func sign(_ data: Data) throws -> Data { 31 | if let error = error { 32 | throw error 33 | } 34 | return operationresult 35 | } 36 | 37 | func verify(_ data: Data, withSignature signature: Data) -> Bool { 38 | return verifyShouldSucceed 39 | } 40 | 41 | func getPublic() throws -> Data { 42 | if let error = error { 43 | throw error 44 | } 45 | return operationresult 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Data/Mocks/UserDefaultsMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UserDefaultsMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | 22 | class UserDefaultsMock: UserDefaults { 23 | var keyName: String? 24 | var intValue: Int? 25 | 26 | override func integer(forKey defaultName: String) -> Int { 27 | if defaultName == keyName, let intValue = intValue { 28 | return intValue 29 | } 30 | fatalError("Expected params not set") 31 | } 32 | 33 | override func set(_ value: Int, forKey defaultName: String) { 34 | if defaultName == keyName { 35 | intValue = value 36 | return 37 | } 38 | fatalError("Expected params not set") 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Domain/Challenge/Mocks/ChallengeListMapperMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChallengeListMapperMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | @testable import TwilioVerifySDK 22 | 23 | class ChallengeListMapperMock { 24 | var error: Error? 25 | } 26 | 27 | extension ChallengeListMapperMock: ChallengeListMapperProtocol { 28 | func fromAPI(withData data: Data) throws -> ChallengeList { 29 | if let error = error { 30 | throw error 31 | } 32 | fatalError("Expected params not set") 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Domain/Challenge/Mocks/ChallengeMapperMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChallengeMapperMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | @testable import TwilioVerifySDK 22 | 23 | class ChallengeMapperMock { 24 | var expectedData: Data? 25 | var expectedSignatureFieldsHeader: String? 26 | var factorChallenge: FactorChallenge? 27 | var error: Error? 28 | private(set) var callsToMap = 0 29 | } 30 | 31 | extension ChallengeMapperMock: ChallengeMapperProtocol { 32 | func fromAPI(withData data: Data, signatureFieldsHeader: String?) throws -> FactorChallenge { 33 | if let error = error { 34 | throw error 35 | } 36 | callsToMap += 1 37 | if let expectedData = expectedData, expectedData == data, 38 | let factorChallenge = factorChallenge, expectedSignatureFieldsHeader == signatureFieldsHeader { 39 | return factorChallenge 40 | } 41 | fatalError("Expected params not set") 42 | } 43 | 44 | func fromAPI(withChallengeDTO challengeDTO: ChallengeDTO) throws -> FactorChallenge { 45 | if let error = error { 46 | throw error 47 | } 48 | callsToMap += 1 49 | if let factorChallenge = factorChallenge { 50 | return factorChallenge 51 | } 52 | fatalError("Expected params not set") 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Domain/Manager/Mocks/ChallengeFacadeMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChallengeFacadeMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | @testable import TwilioVerifySDK 22 | 23 | class ChallengeFacadeMock { 24 | var challenge: Challenge! 25 | var challengeList: ChallengeList! 26 | var error: TwilioVerifyError? 27 | } 28 | 29 | extension ChallengeFacadeMock: ChallengeFacadeProtocol { 30 | func get(withSid sid: String, withFactorSid factorSid: String, success: @escaping ChallengeSuccessBlock, failure: @escaping TwilioVerifyErrorBlock) { 31 | if let error = error { 32 | failure(error) 33 | return 34 | } 35 | success(challenge) 36 | } 37 | 38 | func update(withPayload updateChallengePayload: UpdateChallengePayload, success: @escaping EmptySuccessBlock, failure: @escaping TwilioVerifyErrorBlock) { 39 | if let error = error { 40 | failure(error) 41 | return 42 | } 43 | success() 44 | } 45 | 46 | func getAll(withPayload challengeListPayload: ChallengeListPayload, success: @escaping (ChallengeList) -> (), failure: @escaping TwilioVerifyErrorBlock) { 47 | if let error = error { 48 | failure(error) 49 | return 50 | } 51 | success(challengeList) 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Integration/APIResponses/create_factor_valid_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "identity": "factorIdentity", 3 | "factor_type": "push", 4 | "service_sid": "VA08fb7bxxxxxxxxxxxxxx55296dui72s", 5 | "status": "unverified", 6 | "config": { 7 | "credential_sid": "credentialSid" 8 | }, 9 | "entity_sid": "entitySid", 10 | "account_sid": "accountSid", 11 | "url": "https://twilio.com", 12 | "date_created": "2020-07-16T20:46:34Z", 13 | "sid": "factorSid", 14 | "date_updated": "2020-07-16T20:46:34Z", 15 | "friendly_name": "friendlyName", 16 | } 17 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Integration/APIResponses/get_challenge_approved_valid_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "sid":"challengeSid", 3 | "factor_sid":"factorSid", 4 | "date_created":"2020-02-19T16:39:57-08:00", 5 | "date_updated":"2020-02-21T18:39:57-08:00", 6 | "status":"approved", 7 | "details":{ 8 | "message":"message123", 9 | "fields":[{"label":"label123","value":"value123"}], 10 | "date":"2020-02-19T16:39:57-08:00"}, 11 | "hidden_details":{"key1":"value1"}, 12 | "expiration_date":"2020-02-27T08:50:57-08:00" 13 | } 14 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Integration/APIResponses/get_challenge_pending_valid_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "sid":"challengeSid", 3 | "factor_sid":"factorSid", 4 | "date_created":"2020-02-19T16:39:57-08:00", 5 | "date_updated":"2020-02-21T18:39:57-08:00", 6 | "status":"pending", 7 | "details":{"message":"message123","fields":[{"label":"label123","value":"value123"}],"date":"2020-02-19T16:39:57-08:00"}, 8 | "hidden_details":{"key1":"value1"}, 9 | "expiration_date":"2020-02-27T08:50:57-08:00" 10 | } 11 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Integration/APIResponses/invalid_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "response": "response" 3 | } 4 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Integration/APIResponses/verify_factor_valid_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "identity": "factorIdentity", 3 | "factor_type": "push", 4 | "service_sid": "VA08fb7b6xxxxxxxxxxxxxx5296dui72s", 5 | "status": "verified", 6 | "config": { 7 | "credential_sid": "credentialSid" 8 | }, 9 | "entity_sid": "entitySid", 10 | "account_sid": "accountSid", 11 | "url": "https://twilio.com", 12 | "date_created": "2020-07-16T20:46:34Z", 13 | "sid": "factorSid", 14 | "date_updated": "2020-07-16T20:46:34Z", 15 | "friendly_name": "friendlyName", 16 | } 17 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Logger/Mocks/LoggerServiceMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoggerServiceMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | @testable import TwilioVerifySDK 22 | 23 | class LoggerServiceMock { 24 | private(set) var callsToLog = 0 25 | private(set) var level: LogLevel 26 | private(set) var message: String! 27 | 28 | init(withLevel level: LogLevel) { 29 | self.level = level 30 | } 31 | } 32 | 33 | extension LoggerServiceMock: LoggerService { 34 | func log(withLevel level: LogLevel, message: String, redacted: Bool) { 35 | callsToLog += 1 36 | self.message = message 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Logger/Mocks/LoggerTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoggerTests.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import XCTest 21 | @testable import TwilioVerifySDK 22 | 23 | class LoggerTests: XCTestCase { 24 | 25 | var mockService: LoggerServiceMock! 26 | var logger: LoggerProtocol! 27 | 28 | override func setUpWithError() throws { 29 | try super.setUpWithError() 30 | mockService = LoggerServiceMock(withLevel: .all) 31 | logger = Logger.shared 32 | } 33 | 34 | func testAddService_servicesShouldNotBeEmpty() { 35 | logger.addService(mockService) 36 | XCTAssertFalse(logger.services.isEmpty, "Services should not be empty") 37 | } 38 | 39 | func testLog_withServices_shouldCallLogOnServices() { 40 | let expectedMessage = "message" 41 | let callsToLog = 1 42 | Logger.shared.addService(mockService) 43 | 44 | Logger.shared.log(withLevel: .debug, message: expectedMessage, redacted: false) 45 | 46 | XCTAssertEqual(mockService.callsToLog, callsToLog) 47 | XCTAssertNotNil(mockService.message) 48 | XCTAssertEqual(mockService.message, expectedMessage) 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Logger/Mocks/OSLogWrapperMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OSLogWrapperMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | import os 22 | @testable import TwilioVerifySDK 23 | 24 | class OSLogWrapperMock { 25 | private(set) var callsToLog = 0 26 | private(set) var message: String? 27 | private(set) var type: OSLogType = .default 28 | } 29 | 30 | extension OSLogWrapperMock: OSLogWrappable { 31 | func log(_ message: String, type: OSLogType, redacted: Bool) { 32 | callsToLog += 1 33 | self.message = message 34 | self.type = type 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Models/Mocks/ChallengeMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChallengeMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | @testable import TwilioVerifySDK 22 | 23 | struct ChallengeMock: Challenge { 24 | var sid: String 25 | var factorSid: String 26 | var challengeDetails: ChallengeDetails 27 | var hiddenDetails: [String: String]? 28 | var status: ChallengeStatus 29 | var createdAt: Date 30 | var updatedAt: Date 31 | var expirationDate: Date 32 | } 33 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Models/Mocks/FactorMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FactorMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | @testable import TwilioVerifySDK 22 | 23 | struct FactorMock: Factor { 24 | var status: FactorStatus 25 | let sid: String 26 | let friendlyName: String 27 | let accountSid: String 28 | let serviceSid: String 29 | let identity: String 30 | let type: FactorType 31 | var allowIphoneMigration: Bool = false 32 | let createdAt: Date 33 | var metadata: [String: String]? 34 | } 35 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Models/Mocks/FakeFactorPayload.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FakeFactorPayload.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | @testable import TwilioVerifySDK 22 | 23 | struct FakeFactorPayload: FactorPayload { 24 | var friendlyName: String 25 | var serviceSid: String 26 | var identity: String 27 | var factorType: FactorType 28 | var allowIphoneMigration: Bool = false 29 | } 30 | 31 | struct FakeVerifyPushFactorPayload: VerifyFactorPayload { 32 | let sid: String 33 | var allowIphoneMigration: Bool = false 34 | } 35 | 36 | struct FakeUpdateFactorPayload: UpdateFactorPayload { 37 | let sid: String 38 | var allowIphoneMigration: Bool = false 39 | } 40 | 41 | struct FakeFactor: Factor { 42 | var status: FactorStatus 43 | var sid: String 44 | var friendlyName: String 45 | var accountSid: String 46 | var serviceSid: String 47 | var identity: String 48 | var type: FactorType 49 | var allowIphoneMigration: Bool = false 50 | var createdAt: Date 51 | var metadata: [String: String]? 52 | } 53 | 54 | struct FakeUpdateChallengePayload: UpdateChallengePayload { 55 | var factorSid: String 56 | var challengeSid: String 57 | var allowIphoneMigration: Bool = false 58 | } 59 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Networking/BasicAuthorizationTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BasicAuthorizationTests.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import XCTest 21 | @testable import TwilioVerifySDK 22 | 23 | class BasicAuthorizationTests: XCTestCase { 24 | 25 | func testAuthorization_withBasicAuthorization_shouldReturnExpectedHeader() { 26 | let expectedBasicAuthorization = "\(HTTPHeader.Constant.basic) dXNlcm5hbWU6cGFzc3dvcmQ=" 27 | let authorization = BasicAuthorization(username: "username", password: "password") 28 | XCTAssertEqual(authorization.header().value, expectedBasicAuthorization, 29 | "Basic authorization should be \(expectedBasicAuthorization) but was \(authorization.header().value)") 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /TwilioVerifySDKTests/TwilioVerify/Sources/Networking/Mocks/DateProviderMock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DateProviderMock.swift 3 | // TwilioVerifyTests 4 | // 5 | // Copyright © 2020 Twilio. 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | 20 | import Foundation 21 | @testable import TwilioVerifySDK 22 | 23 | class DateProviderMock { 24 | var currentTime: Int? 25 | private(set) var syncTimeCalled = false 26 | } 27 | 28 | extension DateProviderMock: DateProvider { 29 | func getCurrentTime() -> Int { 30 | if let currentTime = currentTime { 31 | return currentTime 32 | } 33 | fatalError("Expected params not set") 34 | } 35 | 36 | func syncTime(_ date: String) { 37 | syncTimeCalled = true 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /docs/0.0.3/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 94% 23 | 24 | 25 | 94% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/0.0.3/docsets/.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy. 7 | CFBundleName 8 | 9 | DocSetPlatformFamily 10 | 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/0.0.3/docsets/.docset/Contents/Resources/Documents/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 94% 23 | 24 | 25 | 94% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/0.0.3/docsets/.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.3/docsets/.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/0.0.3/docsets/.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.3/docsets/.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/0.0.3/docsets/.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.3/docsets/.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/0.0.3/docsets/.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.3/docsets/.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.0.3/docsets/.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.3/docsets/.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/0.0.3/docsets/.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.3/docsets/.tgz -------------------------------------------------------------------------------- /docs/0.0.3/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.3/img/carat.png -------------------------------------------------------------------------------- /docs/0.0.3/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.3/img/dash.png -------------------------------------------------------------------------------- /docs/0.0.3/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.3/img/gh.png -------------------------------------------------------------------------------- /docs/0.0.3/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.3/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.0.4/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 93% 23 | 24 | 25 | 93% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/0.0.4/docsets/.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy. 7 | CFBundleName 8 | 9 | DocSetPlatformFamily 10 | 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/0.0.4/docsets/.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.4/docsets/.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/0.0.4/docsets/.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.4/docsets/.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/0.0.4/docsets/.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.4/docsets/.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/0.0.4/docsets/.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.4/docsets/.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.0.4/docsets/.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.4/docsets/.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/0.0.4/docsets/.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.4/docsets/.tgz -------------------------------------------------------------------------------- /docs/0.0.4/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.4/img/carat.png -------------------------------------------------------------------------------- /docs/0.0.4/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.4/img/dash.png -------------------------------------------------------------------------------- /docs/0.0.4/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.4/img/gh.png -------------------------------------------------------------------------------- /docs/0.0.4/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.0.4/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.1.0/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 93% 23 | 24 | 25 | 93% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/0.1.0/docsets/TwilioVerify.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverify 7 | CFBundleName 8 | TwilioVerify 9 | DocSetPlatformFamily 10 | twilioverify 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/0.1.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/0.1.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/0.1.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/0.1.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.1.0/docsets/TwilioVerify.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.0/docsets/TwilioVerify.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/0.1.0/docsets/TwilioVerify.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.0/docsets/TwilioVerify.tgz -------------------------------------------------------------------------------- /docs/0.1.0/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.0/img/carat.png -------------------------------------------------------------------------------- /docs/0.1.0/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.0/img/dash.png -------------------------------------------------------------------------------- /docs/0.1.0/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.0/img/gh.png -------------------------------------------------------------------------------- /docs/0.1.0/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.0/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.1.1/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 93% 23 | 24 | 25 | 93% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/0.1.1/docsets/TwilioVerify.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverify 7 | CFBundleName 8 | TwilioVerify 9 | DocSetPlatformFamily 10 | twilioverify 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/0.1.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/0.1.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/0.1.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/0.1.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.1.1/docsets/TwilioVerify.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.1/docsets/TwilioVerify.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/0.1.1/docsets/TwilioVerify.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.1/docsets/TwilioVerify.tgz -------------------------------------------------------------------------------- /docs/0.1.1/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.1/img/carat.png -------------------------------------------------------------------------------- /docs/0.1.1/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.1/img/dash.png -------------------------------------------------------------------------------- /docs/0.1.1/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.1/img/gh.png -------------------------------------------------------------------------------- /docs/0.1.1/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.1.1/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.2.0/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 93% 23 | 24 | 25 | 93% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/0.2.0/docsets/TwilioVerify.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverify 7 | CFBundleName 8 | TwilioVerify 9 | DocSetPlatformFamily 10 | twilioverify 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/0.2.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.2.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/0.2.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.2.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/0.2.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.2.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/0.2.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.2.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.2.0/docsets/TwilioVerify.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.2.0/docsets/TwilioVerify.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/0.2.0/docsets/TwilioVerify.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.2.0/docsets/TwilioVerify.tgz -------------------------------------------------------------------------------- /docs/0.2.0/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.2.0/img/carat.png -------------------------------------------------------------------------------- /docs/0.2.0/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.2.0/img/dash.png -------------------------------------------------------------------------------- /docs/0.2.0/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.2.0/img/gh.png -------------------------------------------------------------------------------- /docs/0.2.0/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.2.0/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.3.0/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 93% 23 | 24 | 25 | 93% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/0.3.0/docsets/TwilioVerify.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverify 7 | CFBundleName 8 | TwilioVerify 9 | DocSetPlatformFamily 10 | twilioverify 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/0.3.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/0.3.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/0.3.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/0.3.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.3.0/docsets/TwilioVerify.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.0/docsets/TwilioVerify.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/0.3.0/docsets/TwilioVerify.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.0/docsets/TwilioVerify.tgz -------------------------------------------------------------------------------- /docs/0.3.0/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.0/img/carat.png -------------------------------------------------------------------------------- /docs/0.3.0/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.0/img/dash.png -------------------------------------------------------------------------------- /docs/0.3.0/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.0/img/gh.png -------------------------------------------------------------------------------- /docs/0.3.0/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.0/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.3.1/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 93% 23 | 24 | 25 | 93% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/0.3.1/docsets/TwilioVerify.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverify 7 | CFBundleName 8 | TwilioVerify 9 | DocSetPlatformFamily 10 | twilioverify 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/0.3.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/0.3.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/0.3.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/0.3.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.1/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.3.1/docsets/TwilioVerify.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.1/docsets/TwilioVerify.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/0.3.1/docsets/TwilioVerify.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.1/docsets/TwilioVerify.tgz -------------------------------------------------------------------------------- /docs/0.3.1/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.1/img/carat.png -------------------------------------------------------------------------------- /docs/0.3.1/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.1/img/dash.png -------------------------------------------------------------------------------- /docs/0.3.1/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.1/img/gh.png -------------------------------------------------------------------------------- /docs/0.3.1/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.1/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.3.2/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 93% 23 | 24 | 25 | 93% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/0.3.2/docsets/TwilioVerify.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverify 7 | CFBundleName 8 | TwilioVerify 9 | DocSetPlatformFamily 10 | twilioverify 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/0.3.2/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.2/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/0.3.2/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.2/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/0.3.2/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.2/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/0.3.2/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.2/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.3.2/docsets/TwilioVerify.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.2/docsets/TwilioVerify.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/0.3.2/docsets/TwilioVerify.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.2/docsets/TwilioVerify.tgz -------------------------------------------------------------------------------- /docs/0.3.2/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.2/img/carat.png -------------------------------------------------------------------------------- /docs/0.3.2/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.2/img/dash.png -------------------------------------------------------------------------------- /docs/0.3.2/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.2/img/gh.png -------------------------------------------------------------------------------- /docs/0.3.2/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.3.2/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.4.0/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 90% 23 | 24 | 25 | 90% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/0.4.0/docsets/TwilioVerify.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverify 7 | CFBundleName 8 | TwilioVerify 9 | DocSetPlatformFamily 10 | twilioverify 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/0.4.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.4.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/0.4.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.4.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/0.4.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.4.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/0.4.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.4.0/docsets/TwilioVerify.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/0.4.0/docsets/TwilioVerify.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.4.0/docsets/TwilioVerify.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/0.4.0/docsets/TwilioVerify.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.4.0/docsets/TwilioVerify.tgz -------------------------------------------------------------------------------- /docs/0.4.0/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.4.0/img/carat.png -------------------------------------------------------------------------------- /docs/0.4.0/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.4.0/img/dash.png -------------------------------------------------------------------------------- /docs/0.4.0/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.4.0/img/gh.png -------------------------------------------------------------------------------- /docs/0.4.0/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/0.4.0/img/spinner.gif -------------------------------------------------------------------------------- /docs/1.0.0/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 87% 23 | 24 | 25 | 87% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/1.0.0/docsets/TwilioVerifySDK.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverifysdk 7 | CFBundleName 8 | TwilioVerifySDK 9 | DocSetPlatformFamily 10 | twilioverifysdk 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/1.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 87% 23 | 24 | 25 | 87% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/1.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/1.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/1.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/1.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/1.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/1.0.0/docsets/TwilioVerifySDK.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.0.0/docsets/TwilioVerifySDK.tgz -------------------------------------------------------------------------------- /docs/1.0.0/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.0.0/img/carat.png -------------------------------------------------------------------------------- /docs/1.0.0/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.0.0/img/dash.png -------------------------------------------------------------------------------- /docs/1.0.0/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.0.0/img/gh.png -------------------------------------------------------------------------------- /docs/1.0.0/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.0.0/img/spinner.gif -------------------------------------------------------------------------------- /docs/1.1.0/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 86% 23 | 24 | 25 | 86% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/1.1.0/docsets/TwilioVerifySDK.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverifysdk 7 | CFBundleName 8 | TwilioVerifySDK 9 | DocSetPlatformFamily 10 | twilioverifysdk 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/1.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/1.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/1.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/1.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/1.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/1.1.0/docsets/TwilioVerifySDK.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.1.0/docsets/TwilioVerifySDK.tgz -------------------------------------------------------------------------------- /docs/1.1.0/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.1.0/img/carat.png -------------------------------------------------------------------------------- /docs/1.1.0/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.1.0/img/dash.png -------------------------------------------------------------------------------- /docs/1.1.0/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.1.0/img/gh.png -------------------------------------------------------------------------------- /docs/1.1.0/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.1.0/img/spinner.gif -------------------------------------------------------------------------------- /docs/1.2.0/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 86% 23 | 24 | 25 | 86% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/1.2.0/docsets/TwilioVerifySDK.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverifysdk 7 | CFBundleName 8 | TwilioVerifySDK 9 | DocSetPlatformFamily 10 | twilioverifysdk 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/1.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/1.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/1.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/1.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/1.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/1.2.0/docsets/TwilioVerifySDK.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.2.0/docsets/TwilioVerifySDK.tgz -------------------------------------------------------------------------------- /docs/1.2.0/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.2.0/img/carat.png -------------------------------------------------------------------------------- /docs/1.2.0/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.2.0/img/dash.png -------------------------------------------------------------------------------- /docs/1.2.0/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.2.0/img/gh.png -------------------------------------------------------------------------------- /docs/1.2.0/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.2.0/img/spinner.gif -------------------------------------------------------------------------------- /docs/1.3.0/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 84% 23 | 24 | 25 | 84% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/1.3.0/docsets/TwilioVerifySDK.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverifysdk 7 | CFBundleName 8 | TwilioVerifySDK 9 | DocSetPlatformFamily 10 | twilioverifysdk 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/1.3.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.3.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/1.3.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.3.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/1.3.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.3.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/1.3.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.3.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/1.3.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.3.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/1.3.0/docsets/TwilioVerifySDK.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.3.0/docsets/TwilioVerifySDK.tgz -------------------------------------------------------------------------------- /docs/1.3.0/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.3.0/img/carat.png -------------------------------------------------------------------------------- /docs/1.3.0/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.3.0/img/dash.png -------------------------------------------------------------------------------- /docs/1.3.0/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.3.0/img/gh.png -------------------------------------------------------------------------------- /docs/1.3.0/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/1.3.0/img/spinner.gif -------------------------------------------------------------------------------- /docs/2.0.0/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 76% 23 | 24 | 25 | 76% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/2.0.0/docsets/TwilioVerifySDK.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverifysdk 7 | CFBundleName 8 | TwilioVerifySDK 9 | DocSetPlatformFamily 10 | twilioverifysdk 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/2.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/2.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/2.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/2.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/2.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/2.0.0/docsets/TwilioVerifySDK.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.0.0/docsets/TwilioVerifySDK.tgz -------------------------------------------------------------------------------- /docs/2.0.0/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.0.0/img/carat.png -------------------------------------------------------------------------------- /docs/2.0.0/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.0.0/img/dash.png -------------------------------------------------------------------------------- /docs/2.0.0/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.0.0/img/gh.png -------------------------------------------------------------------------------- /docs/2.0.0/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.0.0/img/spinner.gif -------------------------------------------------------------------------------- /docs/2.1.0/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 69% 23 | 24 | 25 | 69% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/2.1.0/docsets/TwilioVerifySDK.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverifysdk 7 | CFBundleName 8 | TwilioVerifySDK 9 | DocSetPlatformFamily 10 | twilioverifysdk 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/2.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/2.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/2.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/2.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/2.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.1.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/2.1.0/docsets/TwilioVerifySDK.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.1.0/docsets/TwilioVerifySDK.tgz -------------------------------------------------------------------------------- /docs/2.1.0/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.1.0/img/carat.png -------------------------------------------------------------------------------- /docs/2.1.0/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.1.0/img/dash.png -------------------------------------------------------------------------------- /docs/2.1.0/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.1.0/img/gh.png -------------------------------------------------------------------------------- /docs/2.1.0/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.1.0/img/spinner.gif -------------------------------------------------------------------------------- /docs/2.2.0/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 70% 23 | 24 | 25 | 70% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/2.2.0/docsets/TwilioVerifySDK.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverifysdk 7 | CFBundleName 8 | TwilioVerifySDK 9 | DocSetPlatformFamily 10 | twilioverifysdk 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/2.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/2.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/2.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/2.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/2.2.0/docsets/TwilioVerifySDK.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.0/docsets/TwilioVerifySDK.tgz -------------------------------------------------------------------------------- /docs/2.2.0/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.0/img/carat.png -------------------------------------------------------------------------------- /docs/2.2.0/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.0/img/dash.png -------------------------------------------------------------------------------- /docs/2.2.0/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.0/img/spinner.gif -------------------------------------------------------------------------------- /docs/2.2.1/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 67% 23 | 24 | 25 | 67% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/2.2.1/docsets/TwilioVerifySDK.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverifysdk 7 | CFBundleName 8 | TwilioVerifySDK 9 | DocSetPlatformFamily 10 | twilioverifysdk 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/2.2.1/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.1/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/2.2.1/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.1/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/2.2.1/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.1/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/2.2.1/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.1/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/2.2.1/docsets/TwilioVerifySDK.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.1/docsets/TwilioVerifySDK.tgz -------------------------------------------------------------------------------- /docs/2.2.1/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.1/img/carat.png -------------------------------------------------------------------------------- /docs/2.2.1/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.1/img/dash.png -------------------------------------------------------------------------------- /docs/2.2.1/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.1/img/spinner.gif -------------------------------------------------------------------------------- /docs/2.2.2/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 67% 23 | 24 | 25 | 67% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/2.2.2/docsets/TwilioVerifySDK.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverifysdk 7 | CFBundleName 8 | TwilioVerifySDK 9 | DocSetPlatformFamily 10 | twilioverifysdk 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/2.2.2/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.2/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/2.2.2/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.2/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/2.2.2/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.2/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/2.2.2/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.2/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/2.2.2/docsets/TwilioVerifySDK.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.2/docsets/TwilioVerifySDK.tgz -------------------------------------------------------------------------------- /docs/2.2.2/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.2/img/carat.png -------------------------------------------------------------------------------- /docs/2.2.2/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.2/img/dash.png -------------------------------------------------------------------------------- /docs/2.2.2/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/2.2.2/img/spinner.gif -------------------------------------------------------------------------------- /docs/3.0.0/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 68% 23 | 24 | 25 | 68% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/3.0.0/docsets/TwilioVerifySDK.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.twilioverifysdk 7 | CFBundleName 8 | TwilioVerifySDK 9 | DocSetPlatformFamily 10 | twilioverifysdk 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/3.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/3.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/3.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/3.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/3.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/3.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/Documents/img/spinner.gif -------------------------------------------------------------------------------- /docs/3.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/3.0.0/docsets/TwilioVerifySDK.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/3.0.0/docsets/TwilioVerifySDK.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/3.0.0/docsets/TwilioVerifySDK.tgz -------------------------------------------------------------------------------- /docs/3.0.0/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/3.0.0/img/carat.png -------------------------------------------------------------------------------- /docs/3.0.0/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/3.0.0/img/dash.png -------------------------------------------------------------------------------- /docs/3.0.0/img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/twilio-verify-ios/3ba7640e34ce249cf5f6c4bf39dbe1dabf7612e9/docs/3.0.0/img/spinner.gif -------------------------------------------------------------------------------- /docs/latest: -------------------------------------------------------------------------------- 1 | 3.0.0 -------------------------------------------------------------------------------- /fastlane/Pluginfile: -------------------------------------------------------------------------------- 1 | # Autogenerated by fastlane 2 | # 3 | # Ensure this file is checked in to source control! 4 | 5 | gem 'fastlane-plugin-semantic_convention_release' 6 | 7 | gem 'fastlane-plugin-firebase_test_lab', git: 'https://github.com/yafuquen/fastlane-plugin-firebase_test_lab' 8 | gem 'fastlane-plugin-firebase_app_distribution' 9 | gem 'fastlane-plugin-create_xcframework' 10 | --------------------------------------------------------------------------------