├── .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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
--------------------------------------------------------------------------------