");
+ $input.on("blur.tt", function($e) {
+ var active, isActive, hasActive;
+ active = document.activeElement;
+ isActive = $menu.is(active);
+ hasActive = $menu.has(active).length > 0;
+ if (_.isMsie() && (isActive || hasActive)) {
+ $e.preventDefault();
+ $e.stopImmediatePropagation();
+ _.defer(function() {
+ $input.focus();
+ });
+ }
+ });
+ $menu.on("mousedown.tt", function($e) {
+ $e.preventDefault();
+ });
+ },
+ _onSelectableClicked: function onSelectableClicked(type, $el) {
+ this.select($el);
+ },
+ _onDatasetCleared: function onDatasetCleared() {
+ this._updateHint();
+ },
+ _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) {
+ this._updateHint();
+ if (this.autoselect) {
+ var cursorClass = this.selectors.cursor.substr(1);
+ this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass);
+ }
+ this.eventBus.trigger("render", suggestions, async, dataset);
+ },
+ _onAsyncRequested: function onAsyncRequested(type, dataset, query) {
+ this.eventBus.trigger("asyncrequest", query, dataset);
+ },
+ _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) {
+ this.eventBus.trigger("asynccancel", query, dataset);
+ },
+ _onAsyncReceived: function onAsyncReceived(type, dataset, query) {
+ this.eventBus.trigger("asyncreceive", query, dataset);
+ },
+ _onFocused: function onFocused() {
+ this._minLengthMet() && this.menu.update(this.input.getQuery());
+ },
+ _onBlurred: function onBlurred() {
+ if (this.input.hasQueryChangedSinceLastFocus()) {
+ this.eventBus.trigger("change", this.input.getQuery());
+ }
+ },
+ _onEnterKeyed: function onEnterKeyed(type, $e) {
+ var $selectable;
+ if ($selectable = this.menu.getActiveSelectable()) {
+ if (this.select($selectable)) {
+ $e.preventDefault();
+ $e.stopPropagation();
+ }
+ } else if (this.autoselect) {
+ if (this.select(this.menu.getTopSelectable())) {
+ $e.preventDefault();
+ $e.stopPropagation();
+ }
+ }
+ },
+ _onTabKeyed: function onTabKeyed(type, $e) {
+ var $selectable;
+ if ($selectable = this.menu.getActiveSelectable()) {
+ this.select($selectable) && $e.preventDefault();
+ } else if (this.autoselect) {
+ if ($selectable = this.menu.getTopSelectable()) {
+ this.autocomplete($selectable) && $e.preventDefault();
+ }
+ }
+ },
+ _onEscKeyed: function onEscKeyed() {
+ this.close();
+ },
+ _onUpKeyed: function onUpKeyed() {
+ this.moveCursor(-1);
+ },
+ _onDownKeyed: function onDownKeyed() {
+ this.moveCursor(+1);
+ },
+ _onLeftKeyed: function onLeftKeyed() {
+ if (this.dir === "rtl" && this.input.isCursorAtEnd()) {
+ this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable());
+ }
+ },
+ _onRightKeyed: function onRightKeyed() {
+ if (this.dir === "ltr" && this.input.isCursorAtEnd()) {
+ this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable());
+ }
+ },
+ _onQueryChanged: function onQueryChanged(e, query) {
+ this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty();
+ },
+ _onWhitespaceChanged: function onWhitespaceChanged() {
+ this._updateHint();
+ },
+ _onLangDirChanged: function onLangDirChanged(e, dir) {
+ if (this.dir !== dir) {
+ this.dir = dir;
+ this.menu.setLanguageDirection(dir);
+ }
+ },
+ _openIfActive: function openIfActive() {
+ this.isActive() && this.open();
+ },
+ _minLengthMet: function minLengthMet(query) {
+ query = _.isString(query) ? query : this.input.getQuery() || "";
+ return query.length >= this.minLength;
+ },
+ _updateHint: function updateHint() {
+ var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match;
+ $selectable = this.menu.getTopSelectable();
+ data = this.menu.getSelectableData($selectable);
+ val = this.input.getInputValue();
+ if (data && !_.isBlankString(val) && !this.input.hasOverflow()) {
+ query = Input.normalizeQuery(val);
+ escapedQuery = _.escapeRegExChars(query);
+ frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i");
+ match = frontMatchRegEx.exec(data.val);
+ match && this.input.setHint(val + match[1]);
+ } else {
+ this.input.clearHint();
+ }
+ },
+ isEnabled: function isEnabled() {
+ return this.enabled;
+ },
+ enable: function enable() {
+ this.enabled = true;
+ },
+ disable: function disable() {
+ this.enabled = false;
+ },
+ isActive: function isActive() {
+ return this.active;
+ },
+ activate: function activate() {
+ if (this.isActive()) {
+ return true;
+ } else if (!this.isEnabled() || this.eventBus.before("active")) {
+ return false;
+ } else {
+ this.active = true;
+ this.eventBus.trigger("active");
+ return true;
+ }
+ },
+ deactivate: function deactivate() {
+ if (!this.isActive()) {
+ return true;
+ } else if (this.eventBus.before("idle")) {
+ return false;
+ } else {
+ this.active = false;
+ this.close();
+ this.eventBus.trigger("idle");
+ return true;
+ }
+ },
+ isOpen: function isOpen() {
+ return this.menu.isOpen();
+ },
+ open: function open() {
+ if (!this.isOpen() && !this.eventBus.before("open")) {
+ this.input.setAriaExpanded(true);
+ this.menu.open();
+ this._updateHint();
+ this.eventBus.trigger("open");
+ }
+ return this.isOpen();
+ },
+ close: function close() {
+ if (this.isOpen() && !this.eventBus.before("close")) {
+ this.input.setAriaExpanded(false);
+ this.menu.close();
+ this.input.clearHint();
+ this.input.resetInputValue();
+ this.eventBus.trigger("close");
+ }
+ return !this.isOpen();
+ },
+ setVal: function setVal(val) {
+ this.input.setQuery(_.toStr(val));
+ },
+ getVal: function getVal() {
+ return this.input.getQuery();
+ },
+ select: function select($selectable) {
+ var data = this.menu.getSelectableData($selectable);
+ if (data && !this.eventBus.before("select", data.obj, data.dataset)) {
+ this.input.setQuery(data.val, true);
+ this.eventBus.trigger("select", data.obj, data.dataset);
+ this.close();
+ return true;
+ }
+ return false;
+ },
+ autocomplete: function autocomplete($selectable) {
+ var query, data, isValid;
+ query = this.input.getQuery();
+ data = this.menu.getSelectableData($selectable);
+ isValid = data && query !== data.val;
+ if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) {
+ this.input.setQuery(data.val);
+ this.eventBus.trigger("autocomplete", data.obj, data.dataset);
+ return true;
+ }
+ return false;
+ },
+ moveCursor: function moveCursor(delta) {
+ var query, $candidate, data, suggestion, datasetName, cancelMove, id;
+ query = this.input.getQuery();
+ $candidate = this.menu.selectableRelativeToCursor(delta);
+ data = this.menu.getSelectableData($candidate);
+ suggestion = data ? data.obj : null;
+ datasetName = data ? data.dataset : null;
+ id = $candidate ? $candidate.attr("id") : null;
+ this.input.trigger("cursorchange", id);
+ cancelMove = this._minLengthMet() && this.menu.update(query);
+ if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) {
+ this.menu.setCursor($candidate);
+ if (data) {
+ if (typeof data.val === "string") {
+ this.input.setInputValue(data.val);
+ }
+ } else {
+ this.input.resetInputValue();
+ this._updateHint();
+ }
+ this.eventBus.trigger("cursorchange", suggestion, datasetName);
+ return true;
+ }
+ return false;
+ },
+ destroy: function destroy() {
+ this.input.destroy();
+ this.menu.destroy();
+ }
+ });
+ return Typeahead;
+ function c(ctx) {
+ var methods = [].slice.call(arguments, 1);
+ return function() {
+ var args = [].slice.call(arguments);
+ _.each(methods, function(method) {
+ return ctx[method].apply(ctx, args);
+ });
+ };
+ }
+ }();
+ (function() {
+ "use strict";
+ var old, keys, methods;
+ old = $.fn.typeahead;
+ keys = {
+ www: "tt-www",
+ attrs: "tt-attrs",
+ typeahead: "tt-typeahead"
+ };
+ methods = {
+ initialize: function initialize(o, datasets) {
+ var www;
+ datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1);
+ o = o || {};
+ www = WWW(o.classNames);
+ return this.each(attach);
+ function attach() {
+ var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor;
+ _.each(datasets, function(d) {
+ d.highlight = !!o.highlight;
+ });
+ $input = $(this);
+ $wrapper = $(www.html.wrapper);
+ $hint = $elOrNull(o.hint);
+ $menu = $elOrNull(o.menu);
+ defaultHint = o.hint !== false && !$hint;
+ defaultMenu = o.menu !== false && !$menu;
+ defaultHint && ($hint = buildHintFromInput($input, www));
+ defaultMenu && ($menu = $(www.html.menu).css(www.css.menu));
+ $hint && $hint.val("");
+ $input = prepInput($input, www);
+ if (defaultHint || defaultMenu) {
+ $wrapper.css(www.css.wrapper);
+ $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint);
+ $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null);
+ }
+ MenuConstructor = defaultMenu ? DefaultMenu : Menu;
+ eventBus = new EventBus({
+ el: $input
+ });
+ input = new Input({
+ hint: $hint,
+ input: $input,
+ menu: $menu
+ }, www);
+ menu = new MenuConstructor({
+ node: $menu,
+ datasets: datasets
+ }, www);
+ status = new Status({
+ $input: $input,
+ menu: menu
+ });
+ typeahead = new Typeahead({
+ input: input,
+ menu: menu,
+ eventBus: eventBus,
+ minLength: o.minLength,
+ autoselect: o.autoselect
+ }, www);
+ $input.data(keys.www, www);
+ $input.data(keys.typeahead, typeahead);
+ }
+ },
+ isEnabled: function isEnabled() {
+ var enabled;
+ ttEach(this.first(), function(t) {
+ enabled = t.isEnabled();
+ });
+ return enabled;
+ },
+ enable: function enable() {
+ ttEach(this, function(t) {
+ t.enable();
+ });
+ return this;
+ },
+ disable: function disable() {
+ ttEach(this, function(t) {
+ t.disable();
+ });
+ return this;
+ },
+ isActive: function isActive() {
+ var active;
+ ttEach(this.first(), function(t) {
+ active = t.isActive();
+ });
+ return active;
+ },
+ activate: function activate() {
+ ttEach(this, function(t) {
+ t.activate();
+ });
+ return this;
+ },
+ deactivate: function deactivate() {
+ ttEach(this, function(t) {
+ t.deactivate();
+ });
+ return this;
+ },
+ isOpen: function isOpen() {
+ var open;
+ ttEach(this.first(), function(t) {
+ open = t.isOpen();
+ });
+ return open;
+ },
+ open: function open() {
+ ttEach(this, function(t) {
+ t.open();
+ });
+ return this;
+ },
+ close: function close() {
+ ttEach(this, function(t) {
+ t.close();
+ });
+ return this;
+ },
+ select: function select(el) {
+ var success = false, $el = $(el);
+ ttEach(this.first(), function(t) {
+ success = t.select($el);
+ });
+ return success;
+ },
+ autocomplete: function autocomplete(el) {
+ var success = false, $el = $(el);
+ ttEach(this.first(), function(t) {
+ success = t.autocomplete($el);
+ });
+ return success;
+ },
+ moveCursor: function moveCursoe(delta) {
+ var success = false;
+ ttEach(this.first(), function(t) {
+ success = t.moveCursor(delta);
+ });
+ return success;
+ },
+ val: function val(newVal) {
+ var query;
+ if (!arguments.length) {
+ ttEach(this.first(), function(t) {
+ query = t.getVal();
+ });
+ return query;
+ } else {
+ ttEach(this, function(t) {
+ t.setVal(_.toStr(newVal));
+ });
+ return this;
+ }
+ },
+ destroy: function destroy() {
+ ttEach(this, function(typeahead, $input) {
+ revert($input);
+ typeahead.destroy();
+ });
+ return this;
+ }
+ };
+ $.fn.typeahead = function(method) {
+ if (methods[method]) {
+ return methods[method].apply(this, [].slice.call(arguments, 1));
+ } else {
+ return methods.initialize.apply(this, arguments);
+ }
+ };
+ $.fn.typeahead.noConflict = function noConflict() {
+ $.fn.typeahead = old;
+ return this;
+ };
+ function ttEach($els, fn) {
+ $els.each(function() {
+ var $input = $(this), typeahead;
+ (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input);
+ });
+ }
+ function buildHintFromInput($input, www) {
+ return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({
+ readonly: true,
+ required: false
+ }).removeAttr("id name placeholder").removeClass("required").attr({
+ spellcheck: "false",
+ tabindex: -1
+ });
+ }
+ function prepInput($input, www) {
+ $input.data(keys.attrs, {
+ dir: $input.attr("dir"),
+ autocomplete: $input.attr("autocomplete"),
+ spellcheck: $input.attr("spellcheck"),
+ style: $input.attr("style")
+ });
+ $input.addClass(www.classes.input).attr({
+ spellcheck: false
+ });
+ try {
+ !$input.attr("dir") && $input.attr("dir", "auto");
+ } catch (e) {}
+ return $input;
+ }
+ function getBackgroundStyles($el) {
+ return {
+ backgroundAttachment: $el.css("background-attachment"),
+ backgroundClip: $el.css("background-clip"),
+ backgroundColor: $el.css("background-color"),
+ backgroundImage: $el.css("background-image"),
+ backgroundOrigin: $el.css("background-origin"),
+ backgroundPosition: $el.css("background-position"),
+ backgroundRepeat: $el.css("background-repeat"),
+ backgroundSize: $el.css("background-size")
+ };
+ }
+ function revert($input) {
+ var www, $wrapper;
+ www = $input.data(keys.www);
+ $wrapper = $input.parent().filter(www.selectors.wrapper);
+ _.each($input.data(keys.attrs), function(val, key) {
+ _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val);
+ });
+ $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input);
+ if ($wrapper.length) {
+ $input.detach().insertAfter($wrapper);
+ $wrapper.remove();
+ }
+ }
+ function $elOrNull(obj) {
+ var isValid, $el;
+ isValid = _.isJQuery(obj) || _.isElement(obj);
+ $el = isValid ? $(obj).first() : [];
+ return $el.length ? $el : null;
+ }
+ })();
+});
\ No newline at end of file
diff --git a/docs/3.0.0/search.json b/docs/3.0.0/search.json
new file mode 100644
index 00000000..0acbbe82
--- /dev/null
+++ b/docs/3.0.0/search.json
@@ -0,0 +1 @@
+{"Typealiases.html#/s:15TwilioVerifySDK20SuccessResponseBlocka":{"name":"SuccessResponseBlock","abstract":"
Undocumented
"},"Typealiases.html#/s:15TwilioVerifySDK12FailureBlocka":{"name":"FailureBlock","abstract":"
Undocumented
"},"Structs/NetworkResponse.html#/s:15TwilioVerifySDK15NetworkResponseV4data10Foundation4DataVvp":{"name":"data","abstract":"
Undocumented
","parent_name":"NetworkResponse"},"Structs/NetworkResponse.html#/s:15TwilioVerifySDK15NetworkResponseV7headersSDys11AnyHashableVypGvp":{"name":"headers","abstract":"
Undocumented
","parent_name":"NetworkResponse"},"Structs/NetworkResponse.html#/s:15TwilioVerifySDK15NetworkResponseV4data7headersAC10Foundation4DataV_SDys11AnyHashableVypGtcfc":{"name":"init(data:headers:)","abstract":"
Undocumented
","parent_name":"NetworkResponse"},"Structs/FailureResponse.html#/s:15TwilioVerifySDK15FailureResponseV10statusCodeSivp":{"name":"statusCode","abstract":"
Undocumented
","parent_name":"FailureResponse"},"Structs/FailureResponse.html#/s:15TwilioVerifySDK15FailureResponseV9errorData10Foundation0G0Vvp":{"name":"errorData","abstract":"
Undocumented
","parent_name":"FailureResponse"},"Structs/FailureResponse.html#/s:15TwilioVerifySDK15FailureResponseV7headersSDys11AnyHashableVypGvp":{"name":"headers","abstract":"
Undocumented
","parent_name":"FailureResponse"},"Structs/FailureResponse.html#/s:15TwilioVerifySDK15FailureResponseV8apiErrorAA8APIErrorVSgvp":{"name":"apiError","abstract":"
Undocumented
","parent_name":"FailureResponse"},"Structs/FailureResponse.html#/s:15TwilioVerifySDK15FailureResponseV10statusCode9errorData7headersACSi_10Foundation0I0VSDys11AnyHashableVypGtcfc":{"name":"init(statusCode:errorData:headers:)","abstract":"
Undocumented
","parent_name":"FailureResponse"},"Structs/APIError.html#/s:15TwilioVerifySDK8APIErrorV4codeSivp":{"name":"code","abstract":"
Undocumented
","parent_name":"APIError"},"Structs/APIError.html#/s:15TwilioVerifySDK8APIErrorV7messageSSvp":{"name":"message","abstract":"
Undocumented
","parent_name":"APIError"},"Structs/APIError.html#/s:15TwilioVerifySDK8APIErrorV8moreInfoSSSgvp":{"name":"moreInfo","abstract":"
Undocumented
","parent_name":"APIError"},"Structs/APIError.html#/s:15TwilioVerifySDK8APIErrorV4code7message8moreInfoACSi_S2SSgtcfc":{"name":"init(code:message:moreInfo:)","abstract":"
Undocumented
","parent_name":"APIError"},"Structs/VerifyPushFactorPayload.html#/s:15TwilioVerifySDK0B17PushFactorPayloadV3sidSSvp":{"name":"sid","abstract":"
Factor sid
","parent_name":"VerifyPushFactorPayload"},"Structs/VerifyPushFactorPayload.html#/s:15TwilioVerifySDK0B17PushFactorPayloadV3sidACSS_tcfc":{"name":"init(sid:)","abstract":"
Creates a VerifyPushFactorPayload with the given parameters
","parent_name":"VerifyPushFactorPayload"},"Structs/UpdatePushFactorPayload.html#/s:15TwilioVerifySDK23UpdatePushFactorPayloadV3sidSSvp":{"name":"sid","abstract":"
Factor Sid
","parent_name":"UpdatePushFactorPayload"},"Structs/UpdatePushFactorPayload.html#/s:15TwilioVerifySDK23UpdatePushFactorPayloadV9pushTokenSSSgvp":{"name":"pushToken","abstract":"
(Optional) Registration token generated by APNS when registering for remote notifications.","parent_name":"UpdatePushFactorPayload"},"Structs/UpdatePushFactorPayload.html#/s:15TwilioVerifySDK23UpdatePushFactorPayloadV3sid9pushTokenACSS_SSSgtcfc":{"name":"init(sid:pushToken:)","abstract":"
Creates an UpdatePushFactorPayload with the given parameters
","parent_name":"UpdatePushFactorPayload"},"Structs/UpdatePushChallengePayload.html#/s:15TwilioVerifySDK26UpdatePushChallengePayloadV9factorSidSSvp":{"name":"factorSid","abstract":"
Sid of the Factor to which the Challenge is related
","parent_name":"UpdatePushChallengePayload"},"Structs/UpdatePushChallengePayload.html#/s:15TwilioVerifySDK26UpdatePushChallengePayloadV12challengeSidSSvp":{"name":"challengeSid","abstract":"
Sid of the Challenge to be updated
","parent_name":"UpdatePushChallengePayload"},"Structs/UpdatePushChallengePayload.html#/s:15TwilioVerifySDK26UpdatePushChallengePayloadV6statusAA0F6StatusOvp":{"name":"status","abstract":"
New status of the Challenge
","parent_name":"UpdatePushChallengePayload"},"Structs/UpdatePushChallengePayload.html#/s:15TwilioVerifySDK26UpdatePushChallengePayloadV9factorSid09challengeI06statusACSS_SSAA0F6StatusOtcfc":{"name":"init(factorSid:challengeSid:status:)","abstract":"
Creates an UpdatePushChallengePayload with the given parameters
","parent_name":"UpdatePushChallengePayload"},"Structs/PushFactorPayload.html#/s:15TwilioVerifySDK17PushFactorPayloadV12friendlyNameSSvp":{"name":"friendlyName","abstract":"
A human readable description of this resource, up to 64 characters. For a push factor, this can be the device’s name.
","parent_name":"PushFactorPayload"},"Structs/PushFactorPayload.html#/s:15TwilioVerifySDK17PushFactorPayloadV10serviceSidSSvp":{"name":"serviceSid","abstract":"
The unique SID identifier of the Service.
","parent_name":"PushFactorPayload"},"Structs/PushFactorPayload.html#/s:15TwilioVerifySDK17PushFactorPayloadV8identitySSvp":{"name":"identity","abstract":"
Identifies the user, should be an UUID you should not use PII (Personal Identifiable Information)","parent_name":"PushFactorPayload"},"Structs/PushFactorPayload.html#/s:15TwilioVerifySDK17PushFactorPayloadV10factorTypeAA0eH0Ovp":{"name":"factorType","abstract":"
Type of the factor, push by default.
","parent_name":"PushFactorPayload"},"Structs/PushFactorPayload.html#/s:15TwilioVerifySDK17PushFactorPayloadV20allowIphoneMigrationSbvp":{"name":"allowIphoneMigration","abstract":"
Allow factor migration from iPhone to iPhone, false by default.
","parent_name":"PushFactorPayload"},"Structs/PushFactorPayload.html#/s:15TwilioVerifySDK17PushFactorPayloadV9pushTokenSSSgvp":{"name":"pushToken","abstract":"
(Optional) Registration token generated by APNS when registering for remote notifications.","parent_name":"PushFactorPayload"},"Structs/PushFactorPayload.html#/s:15TwilioVerifySDK17PushFactorPayloadV11accessTokenSSvp":{"name":"accessToken","abstract":"
Previously generated Access Token using the /accessTokens endpoint.
","parent_name":"PushFactorPayload"},"Structs/PushFactorPayload.html#/s:15TwilioVerifySDK17PushFactorPayloadV8metadataSDyS2SGSgvp":{"name":"metadata","abstract":"
Custom metadata associated with the factor. This is added by the Device/SDK directly to allow for the inclusion of device information.
","parent_name":"PushFactorPayload"},"Structs/PushFactorPayload.html#/s:15TwilioVerifySDK17PushFactorPayloadV12friendlyName10serviceSid8identity10factorType20allowIphoneMigration9pushToken06accessR08metadataACSS_S2SAA0eM0OSbSSSgSSSDyS2SGSgtcfc":{"name":"init(friendlyName:serviceSid:identity:factorType:allowIphoneMigration:pushToken:accessToken:metadata:)","abstract":"
Creates a PushFactorPayload with the given parameters.
","parent_name":"PushFactorPayload"},"Structs/ChallengeListPayload.html#/s:15TwilioVerifySDK20ChallengeListPayloadV9factorSidSSvp":{"name":"factorSid","abstract":"
The unique SID identifier of the Factor to which the ChallengeList is related
","parent_name":"ChallengeListPayload"},"Structs/ChallengeListPayload.html#/s:15TwilioVerifySDK20ChallengeListPayloadV8pageSizeSivp":{"name":"pageSize","abstract":"
Number of Challenges to be returned by the service
","parent_name":"ChallengeListPayload"},"Structs/ChallengeListPayload.html#/s:15TwilioVerifySDK20ChallengeListPayloadV5orderAA0dE5OrderOvp":{"name":"order","abstract":"
Sort challenges in order by creation date of the challenge
","parent_name":"ChallengeListPayload"},"Structs/ChallengeListPayload.html#/s:15TwilioVerifySDK20ChallengeListPayloadV6statusAA0D6StatusOSgvp":{"name":"status","abstract":"
Status to filter the Challenges, if nothing is sent, Challenges of all status will be returned
","parent_name":"ChallengeListPayload"},"Structs/ChallengeListPayload.html#/s:15TwilioVerifySDK20ChallengeListPayloadV9pageTokenSSSgvp":{"name":"pageToken","abstract":"
Token used to retrieve the next page in the pagination arrangement
","parent_name":"ChallengeListPayload"},"Structs/ChallengeListPayload.html#/s:15TwilioVerifySDK20ChallengeListPayloadV9factorSid8pageSize6status5order0I5TokenACSS_SiAA0D6StatusOSgAA0dE5OrderOSSSgtcfc":{"name":"init(factorSid:pageSize:status:order:pageToken:)","abstract":"
Creates a ChallengeListPayload with the given parameters
","parent_name":"ChallengeListPayload"},"Structs/Detail.html#/s:15TwilioVerifySDK6DetailV5labelSSvp":{"name":"label","abstract":"
Detail’s title
","parent_name":"Detail"},"Structs/Detail.html#/s:15TwilioVerifySDK6DetailV5valueSSvp":{"name":"value","abstract":"
Detail’s description
","parent_name":"Detail"},"Structs/ChallengeDetails.html#/s:15TwilioVerifySDK16ChallengeDetailsV7messageSSvp":{"name":"message","abstract":"
Associated message of the Challenge
","parent_name":"ChallengeDetails"},"Structs/ChallengeDetails.html#/s:15TwilioVerifySDK16ChallengeDetailsV6fieldsSayAA6DetailVGvp":{"name":"fields","abstract":"
Array with the additional details of a Challenge
","parent_name":"ChallengeDetails"},"Structs/ChallengeDetails.html#/s:15TwilioVerifySDK16ChallengeDetailsV4date10Foundation4DateVSgvp":{"name":"date","abstract":"
Date attached by the customer only received if the service has includeDate turned on
","parent_name":"ChallengeDetails"},"Structs/ChallengeDetails.html":{"name":"ChallengeDetails","abstract":"
Describes the Details of a Challenge
"},"Structs/Detail.html":{"name":"Detail","abstract":"
Describes the information of a Challenge Detail
"},"Structs/ChallengeListPayload.html":{"name":"ChallengeListPayload","abstract":"
Describes the information required to fetch a ChallengeList
"},"Structs/PushFactorPayload.html":{"name":"PushFactorPayload","abstract":"
Describes the information required to create a Factor which type is Push.
"},"Structs/UpdatePushChallengePayload.html":{"name":"UpdatePushChallengePayload","abstract":"
Describes the information required to update a Push Challenge
"},"Structs/UpdatePushFactorPayload.html":{"name":"UpdatePushFactorPayload","abstract":"
Describes the information required to update a Factor which type is Push
"},"Structs/VerifyPushFactorPayload.html":{"name":"VerifyPushFactorPayload","abstract":"
Describes the information required to verify a Factor which type is Push
"},"Structs/APIError.html":{"name":"APIError","abstract":"
Undocumented
"},"Structs/FailureResponse.html":{"name":"FailureResponse","abstract":"
Undocumented
"},"Structs/NetworkResponse.html":{"name":"NetworkResponse","abstract":"
Undocumented
"},"Protocols/NetworkProvider.html#/s:15TwilioVerifySDK15NetworkProviderP7execute_7success7failurey10Foundation10URLRequestV_yAA0D8ResponseVcys5Error_pctF":{"name":"execute(_:success:failure:)","abstract":"
Undocumented
","parent_name":"NetworkProvider"},"Protocols/VerifyFactorPayload.html#/s:15TwilioVerifySDK0B13FactorPayloadP3sidSSvp":{"name":"sid","abstract":"
Factor sid
","parent_name":"VerifyFactorPayload"},"Protocols/UpdateFactorPayload.html#/s:15TwilioVerifySDK19UpdateFactorPayloadP3sidSSvp":{"name":"sid","abstract":"
Factor Sid
","parent_name":"UpdateFactorPayload"},"Protocols/UpdateChallengePayload.html#/s:15TwilioVerifySDK22UpdateChallengePayloadP9factorSidSSvp":{"name":"factorSid","abstract":"
Sid of the Factor to which the Challenge is related
","parent_name":"UpdateChallengePayload"},"Protocols/UpdateChallengePayload.html#/s:15TwilioVerifySDK22UpdateChallengePayloadP12challengeSidSSvp":{"name":"challengeSid","abstract":"
Sid of the Challenge to be updated
","parent_name":"UpdateChallengePayload"},"Protocols/Metadata.html#/s:15TwilioVerifySDK8MetadataP4pageSivp":{"name":"page","abstract":"
Current Page
","parent_name":"Metadata"},"Protocols/Metadata.html#/s:15TwilioVerifySDK8MetadataP8pageSizeSivp":{"name":"pageSize","abstract":"
Number of result per page
","parent_name":"Metadata"},"Protocols/Metadata.html#/s:15TwilioVerifySDK8MetadataP17previousPageTokenSSSgvp":{"name":"previousPageToken","abstract":"
Identifies the previous page
","parent_name":"Metadata"},"Protocols/Metadata.html#/s:15TwilioVerifySDK8MetadataP13nextPageTokenSSSgvp":{"name":"nextPageToken","abstract":"
Identifies the next page
","parent_name":"Metadata"},"Protocols/FactorPayload.html#/s:15TwilioVerifySDK13FactorPayloadP12friendlyNameSSvp":{"name":"friendlyName","abstract":"
A human readable description of this resource, up to 64 characters. For a push factor, this can be the device’s name.
","parent_name":"FactorPayload"},"Protocols/FactorPayload.html#/s:15TwilioVerifySDK13FactorPayloadP10serviceSidSSvp":{"name":"serviceSid","abstract":"
The unique SID identifier of the Service.
","parent_name":"FactorPayload"},"Protocols/FactorPayload.html#/s:15TwilioVerifySDK13FactorPayloadP8identitySSvp":{"name":"identity","abstract":"
Identifies the user, should be an UUID you should not use PII (Personal Identifiable Information)","parent_name":"FactorPayload"},"Protocols/FactorPayload.html#/s:15TwilioVerifySDK13FactorPayloadP10factorTypeAA0dG0Ovp":{"name":"factorType","abstract":"
Type of the factor.
","parent_name":"FactorPayload"},"Protocols/FactorPayload.html#/s:15TwilioVerifySDK13FactorPayloadP20allowIphoneMigrationSbvp":{"name":"allowIphoneMigration","abstract":"
Allow factor migration from iPhone to iPhone
","parent_name":"FactorPayload"},"Protocols/Factor.html#/s:15TwilioVerifySDK6FactorP6statusAA0D6StatusOvp":{"name":"status","abstract":"
Status of the Factor.
","parent_name":"Factor"},"Protocols/Factor.html#/s:15TwilioVerifySDK6FactorP3sidSSvp":{"name":"sid","abstract":"
The unique SID identifier of the Factor.
","parent_name":"Factor"},"Protocols/Factor.html#/s:15TwilioVerifySDK6FactorP12friendlyNameSSvp":{"name":"friendlyName","abstract":"
A human readable description of this resource, up to 64 characters. For a push factor, this can be the device’s name.
","parent_name":"Factor"},"Protocols/Factor.html#/s:15TwilioVerifySDK6FactorP10accountSidSSvp":{"name":"accountSid","abstract":"
The unique SID of the Account that created the Service resource.
","parent_name":"Factor"},"Protocols/Factor.html#/s:15TwilioVerifySDK6FactorP10serviceSidSSvp":{"name":"serviceSid","abstract":"
The unique SID identifier of the Service to which the Factor is related.
","parent_name":"Factor"},"Protocols/Factor.html#/s:15TwilioVerifySDK6FactorP8identitySSvp":{"name":"identity","abstract":"
Identifies the user, should be an UUID you should not use PII (Personal Identifiable Information)","parent_name":"Factor"},"Protocols/Factor.html#/s:15TwilioVerifySDK6FactorP4typeAA0D4TypeOvp":{"name":"type","abstract":"
Type of the Factor. Currently only push is supported.
","parent_name":"Factor"},"Protocols/Factor.html#/s:15TwilioVerifySDK6FactorP20allowIphoneMigrationSbvp":{"name":"allowIphoneMigration","abstract":"
Allow factor migration from iPhone to iPhone
","parent_name":"Factor"},"Protocols/Factor.html#/s:15TwilioVerifySDK6FactorP9createdAt10Foundation4DateVvp":{"name":"createdAt","abstract":"
Indicates the creation date of the Factor.
","parent_name":"Factor"},"Protocols/Factor.html#/s:15TwilioVerifySDK6FactorP8metadataSDyS2SGSgvp":{"name":"metadata","abstract":"
Custom metadata associated with the factor when created. This is added by the Device/SDK directly to allow for the inclusion of device information.
","parent_name":"Factor"},"Protocols/ChallengeList.html#/s:15TwilioVerifySDK13ChallengeListP10challengesSayAA0D0_pGvp":{"name":"challenges","abstract":"
Array of Challenges that matches the parameters of the ChallengeListPayload used
","parent_name":"ChallengeList"},"Protocols/ChallengeList.html#/s:15TwilioVerifySDK13ChallengeListP8metadataAA8Metadata_pvp":{"name":"metadata","abstract":"
Metadata returned by the /Challenges endpoint, used to fetch subsequent pages of Challenges
","parent_name":"ChallengeList"},"Protocols/Challenge.html#/s:15TwilioVerifySDK9ChallengeP3sidSSvp":{"name":"sid","abstract":"
The unique SID identifier of the Challenge
","parent_name":"Challenge"},"Protocols/Challenge.html#/s:15TwilioVerifySDK9ChallengeP16challengeDetailsAA0dF0Vvp":{"name":"challengeDetails","abstract":"
Details of the Challenge
","parent_name":"Challenge"},"Protocols/Challenge.html#/s:15TwilioVerifySDK9ChallengeP13hiddenDetailsSDyS2SGSgvp":{"name":"hiddenDetails","abstract":"
Hidden details of the Challenge
","parent_name":"Challenge"},"Protocols/Challenge.html#/s:15TwilioVerifySDK9ChallengeP9factorSidSSvp":{"name":"factorSid","abstract":"
Sid of the factor to which the Challenge is related
","parent_name":"Challenge"},"Protocols/Challenge.html#/s:15TwilioVerifySDK9ChallengeP6statusAA0D6StatusOvp":{"name":"status","abstract":"
Status of the Challenge
","parent_name":"Challenge"},"Protocols/Challenge.html#/s:15TwilioVerifySDK9ChallengeP9createdAt10Foundation4DateVvp":{"name":"createdAt","abstract":"
Indicates the creation date of the Challenge
","parent_name":"Challenge"},"Protocols/Challenge.html#/s:15TwilioVerifySDK9ChallengeP9updatedAt10Foundation4DateVvp":{"name":"updatedAt","abstract":"
Indicates the last date the Challenge was updated
","parent_name":"Challenge"},"Protocols/Challenge.html#/s:15TwilioVerifySDK9ChallengeP14expirationDate10Foundation0F0Vvp":{"name":"expirationDate","abstract":"
Indicates the date in which the Challenge expires
","parent_name":"Challenge"},"Protocols/LoggerService.html#/s:15TwilioVerifySDK13LoggerServiceP5levelAA8LogLevelOvp":{"name":"level","abstract":"
Desired log level
","parent_name":"LoggerService"},"Protocols/LoggerService.html#/s:15TwilioVerifySDK13LoggerServiceP3log9withLevel7message8redactedyAA03LogH0O_SSSbtF":{"name":"log(withLevel:message:redacted:)","abstract":"
Logs a Message with the specific Level
","parent_name":"LoggerService"},"Protocols/OperationError.html#/s:15TwilioVerifySDK14OperationErrorP16errorDescriptionSSSgvp":{"name":"errorDescription","abstract":"
Undocumented
","parent_name":"OperationError"},"Protocols/OperationError.html#/s:15TwilioVerifySDK14OperationErrorP6domainSSvp":{"name":"domain","abstract":"
Undocumented
","parent_name":"OperationError"},"Protocols/TwilioVerify.html#/s:15TwilioVerifySDK0aB0P12createFactor11withPayload7success7failureyAA0eG0_p_yAA0E0_pcyAA0aB5ErrorOctF":{"name":"createFactor(withPayload:success:failure:)","abstract":"
Creates a Factor from a FactorPayload
","parent_name":"TwilioVerify"},"Protocols/TwilioVerify.html#/s:15TwilioVerifySDK0aB0P12verifyFactor11withPayload7success7failureyAA0beG0_p_yAA0E0_pcyAA0aB5ErrorOctF":{"name":"verifyFactor(withPayload:success:failure:)","abstract":"
Verifies a Factor from a VerifyFactorPayload
","parent_name":"TwilioVerify"},"Protocols/TwilioVerify.html#/s:15TwilioVerifySDK0aB0P12updateFactor11withPayload7success7failureyAA06UpdateeG0_p_yAA0E0_pcyAA0aB5ErrorOctF":{"name":"updateFactor(withPayload:success:failure:)","abstract":"
Updates a Factor from a UpdateFactorPayload
","parent_name":"TwilioVerify"},"Protocols/TwilioVerify.html#/s:15TwilioVerifySDK0aB0P13getAllFactors7success7failureyySayAA6Factor_pGc_yAA0aB5ErrorOctF":{"name":"getAllFactors(success:failure:)","abstract":"
Gets all Factors created by the app, this method will return the factors in local storage.
","parent_name":"TwilioVerify"},"Protocols/TwilioVerify.html#/s:15TwilioVerifySDK0aB0P12deleteFactor7withSid7success7failureySS_yycyAA0aB5ErrorOctF":{"name":"deleteFactor(withSid:success:failure:)","abstract":"
Deletes a Factor with the given sid. This method calls Verify Push API to delete","parent_name":"TwilioVerify"},"Protocols/TwilioVerify.html#/s:15TwilioVerifySDK0aB0P12getChallenge12challengeSid06factorG07success7failureySS_SSyAA0E0_pcyAA0aB5ErrorOctF":{"name":"getChallenge(challengeSid:factorSid:success:failure:)","abstract":"
Gets a Challenge with the given Challenge sid and Factor sid
","parent_name":"TwilioVerify"},"Protocols/TwilioVerify.html#/s:15TwilioVerifySDK0aB0P15updateChallenge11withPayload7success7failureyAA06UpdateeG0_p_yycyAA0aB5ErrorOctF":{"name":"updateChallenge(withPayload:success:failure:)","abstract":"
Updates a Challenge from a UpdateChallengePayload
","parent_name":"TwilioVerify"},"Protocols/TwilioVerify.html#/s:15TwilioVerifySDK0aB0P16getAllChallenges11withPayload7success7failureyAA013ChallengeListH0V_yAA0kL0_pcyAA0aB5ErrorOctF":{"name":"getAllChallenges(withPayload:success:failure:)","abstract":"
Gets all Challenges associated to a Factor with the given ChallengeListPayload
","parent_name":"TwilioVerify"},"Protocols/TwilioVerify.html#/s:15TwilioVerifySDK0aB0P17clearLocalStorageyyKF":{"name":"clearLocalStorage()","abstract":"
Clears local storage, it will delete factors and key pairs in this device.
","parent_name":"TwilioVerify"},"Protocols/TwilioVerify.html":{"name":"TwilioVerify","abstract":"
Describes the available operations to proccess Factors and Challenges
"},"Protocols/OperationError.html":{"name":"OperationError","abstract":"
Undocumented
"},"Protocols/LoggerService.html":{"name":"LoggerService","abstract":"
Describes the available operations to log information
"},"Protocols/Challenge.html":{"name":"Challenge","abstract":"
Describes the information of a Challenge
"},"Protocols/ChallengeList.html":{"name":"ChallengeList","abstract":"
Describes the information of a ChallengeList
"},"Protocols/Factor.html":{"name":"Factor","abstract":"
Describes the information of a Factor.
"},"Protocols/FactorPayload.html":{"name":"FactorPayload","abstract":"
Describes the information required to create a Factor.
"},"Protocols/Metadata.html":{"name":"Metadata","abstract":"
Describes the Metadata of a paginated service
"},"Protocols/UpdateChallengePayload.html":{"name":"UpdateChallengePayload","abstract":"
Describes the information required to update a Challenge
"},"Protocols/UpdateFactorPayload.html":{"name":"UpdateFactorPayload","abstract":"
Describes the information required to update a Factor
"},"Protocols/VerifyFactorPayload.html":{"name":"VerifyFactorPayload","abstract":"
Describes the information required to verify a Factor
"},"Protocols/NetworkProvider.html":{"name":"NetworkProvider","abstract":"
Undocumented
"},"Enums/InputError.html#/s:15TwilioVerifySDK10InputErrorO07invalidD0yACSS_tcACmF":{"name":"invalidInput(field:)","abstract":"
Undocumented
","parent_name":"InputError"},"Enums/InputError.html#/s:15TwilioVerifySDK10InputErrorO14invalidPayloadyA2CmF":{"name":"invalidPayload","abstract":"
Undocumented
","parent_name":"InputError"},"Enums/InputError.html#/s:15TwilioVerifySDK10InputErrorO16expiredChallengeyA2CmF":{"name":"expiredChallenge","abstract":"
Undocumented
","parent_name":"InputError"},"Enums/InputError.html#/s:15TwilioVerifySDK10InputErrorO23alreadyUpdatedChallengeyA2CmF":{"name":"alreadyUpdatedChallenge","abstract":"
Undocumented
","parent_name":"InputError"},"Enums/InputError.html#/s:15TwilioVerifySDK10InputErrorO19notUpdatedChallengeyA2CmF":{"name":"notUpdatedChallenge","abstract":"
Undocumented
","parent_name":"InputError"},"Enums/InputError.html#/s:15TwilioVerifySDK10InputErrorO16invalidChallengeyA2CmF":{"name":"invalidChallenge","abstract":"
Undocumented
","parent_name":"InputError"},"Enums/InputError.html#/s:15TwilioVerifySDK10InputErrorO17emptyChallengeSidyA2CmF":{"name":"emptyChallengeSid","abstract":"
Undocumented
","parent_name":"InputError"},"Enums/InputError.html#/s:15TwilioVerifySDK10InputErrorO29invalidUpdateChallengePayloadyAcA10FactorTypeO_tcACmF":{"name":"invalidUpdateChallengePayload(factorType:)","abstract":"
Undocumented
","parent_name":"InputError"},"Enums/InputError.html#/s:15TwilioVerifySDK10InputErrorO14emptyFactorSidyA2CmF":{"name":"emptyFactorSid","abstract":"
Undocumented
","parent_name":"InputError"},"Enums/InputError.html#/s:15TwilioVerifySDK10InputErrorO11wrongFactoryA2CmF":{"name":"wrongFactor","abstract":"
Undocumented
","parent_name":"InputError"},"Enums/InputError.html#/s:15TwilioVerifySDK10InputErrorO13invalidFactoryA2CmF":{"name":"invalidFactor","abstract":"
Undocumented
","parent_name":"InputError"},"Enums/InputError.html#/s:15TwilioVerifySDK10InputErrorO15signatureFieldsyA2CmF":{"name":"signatureFields","abstract":"
Undocumented
","parent_name":"InputError"},"Enums/InputError.html#/s:10Foundation14LocalizedErrorP16errorDescriptionSSSgvp":{"name":"errorDescription","parent_name":"InputError"},"Enums/TwilioVerifyError.html#/s:15TwilioVerifySDK0aB5ErrorO07networkD0yACs0D0_p_tcACmF":{"name":"networkError(error:)","abstract":"
An error occurred while calling the API.
","parent_name":"TwilioVerifyError"},"Enums/TwilioVerifyError.html#/s:15TwilioVerifySDK0aB5ErrorO06mapperD0yACs0D0_p_tcACmF":{"name":"mapperError(error:)","abstract":"
An error occurred while mapping an entity.
","parent_name":"TwilioVerifyError"},"Enums/TwilioVerifyError.html#/s:15TwilioVerifySDK0aB5ErrorO07storageD0yACs0D0_p_tcACmF":{"name":"storageError(error:)","abstract":"
An error occurred while storing/loading an entity.
","parent_name":"TwilioVerifyError"},"Enums/TwilioVerifyError.html#/s:15TwilioVerifySDK0aB5ErrorO05inputD0yACs0D0_p_tcACmF":{"name":"inputError(error:)","abstract":"
An error occurred while loading input.
","parent_name":"TwilioVerifyError"},"Enums/TwilioVerifyError.html#/s:15TwilioVerifySDK0aB5ErrorO010keyStorageD0yACs0D0_p_tcACmF":{"name":"keyStorageError(error:)","abstract":"
An error occurred while storing/loading keypairs.
","parent_name":"TwilioVerifyError"},"Enums/TwilioVerifyError.html#/s:15TwilioVerifySDK0aB5ErrorO014initializationD0yACs0D0_p_tcACmF":{"name":"initializationError(error:)","abstract":"
An error occurred while initializing a class.
","parent_name":"TwilioVerifyError"},"Enums/TwilioVerifyError.html#/s:15TwilioVerifySDK0aB5ErrorO019authenticationTokenD0yACs0D0_p_tcACmF":{"name":"authenticationTokenError(error:)","abstract":"
An error occurred while generating a token.
","parent_name":"TwilioVerifyError"},"Enums/TwilioVerifyError.html#/s:15TwilioVerifySDK0aB5ErrorO08originalD0s0D0_pvp":{"name":"originalError","abstract":"
Associated reason of the error
","parent_name":"TwilioVerifyError"},"Enums/TwilioVerifyError.html#/s:15TwilioVerifySDK0aB5ErrorO16errorDescriptionSSSgvp":{"name":"errorDescription","abstract":"
Brief description of the error, indicates at which layer the error ocurred
","parent_name":"TwilioVerifyError"},"Enums/TwilioVerifyError.html#/s:15TwilioVerifySDK0aB5ErrorO4codeSivp":{"name":"code","abstract":"
Error code of the associated error
","parent_name":"TwilioVerifyError"},"Enums/FactorType.html#/s:15TwilioVerifySDK10FactorTypeO4pushyA2CmF":{"name":"push","abstract":"
Push type.
","parent_name":"FactorType"},"Enums/FactorStatus.html#/s:15TwilioVerifySDK12FactorStatusO8verifiedyA2CmF":{"name":"verified","abstract":"
The Factor is verified and is ready to recevie challenges.
","parent_name":"FactorStatus"},"Enums/FactorStatus.html#/s:15TwilioVerifySDK12FactorStatusO10unverifiedyA2CmF":{"name":"unverified","abstract":"
The Factor is not yet verified and can’t receive challenges.
","parent_name":"FactorStatus"},"Enums/ChallengeListOrder.html#/s:15TwilioVerifySDK18ChallengeListOrderO3ascyA2CmF":{"name":"asc","abstract":"
Undocumented
","parent_name":"ChallengeListOrder"},"Enums/ChallengeListOrder.html#/s:15TwilioVerifySDK18ChallengeListOrderO4descyA2CmF":{"name":"desc","abstract":"
Undocumented
","parent_name":"ChallengeListOrder"},"Enums/ChallengeStatus.html#/s:15TwilioVerifySDK15ChallengeStatusO7pendingyA2CmF":{"name":"pending","abstract":"
The Challenge is waiting to be approved or denied by the user
","parent_name":"ChallengeStatus"},"Enums/ChallengeStatus.html#/s:15TwilioVerifySDK15ChallengeStatusO8approvedyA2CmF":{"name":"approved","abstract":"
The Challenge was approved by the user
","parent_name":"ChallengeStatus"},"Enums/ChallengeStatus.html#/s:15TwilioVerifySDK15ChallengeStatusO6deniedyA2CmF":{"name":"denied","abstract":"
The Challenge was denied by the user
","parent_name":"ChallengeStatus"},"Enums/ChallengeStatus.html#/s:15TwilioVerifySDK15ChallengeStatusO7expiredyA2CmF":{"name":"expired","abstract":"
The Challenge expired and can’t no longer be approved or denied by the user
","parent_name":"ChallengeStatus"},"Enums/LogLevel.html#/s:15TwilioVerifySDK8LogLevelO5erroryA2CmF":{"name":"error","abstract":"
Undocumented
","parent_name":"LogLevel"},"Enums/LogLevel.html#/s:15TwilioVerifySDK8LogLevelO4infoyA2CmF":{"name":"info","abstract":"
Undocumented
","parent_name":"LogLevel"},"Enums/LogLevel.html#/s:15TwilioVerifySDK8LogLevelO10networkingyA2CmF":{"name":"networking","abstract":"
Undocumented
","parent_name":"LogLevel"},"Enums/LogLevel.html#/s:15TwilioVerifySDK8LogLevelO5debugyA2CmF":{"name":"debug","abstract":"
Undocumented
","parent_name":"LogLevel"},"Enums/LogLevel.html#/s:15TwilioVerifySDK8LogLevelO3allyA2CmF":{"name":"all","abstract":"
Undocumented
","parent_name":"LogLevel"},"Enums/KeyManagerError.html#/s:15TwilioVerifySDK15KeyManagerErrorO17invalidStatusCodeyACSi_tcACmF":{"name":"invalidStatusCode(code:)","abstract":"
Undocumented
","parent_name":"KeyManagerError"},"Enums/KeyManagerError.html#/s:10Foundation14LocalizedErrorP16errorDescriptionSSSgvp":{"name":"errorDescription","parent_name":"KeyManagerError"},"Enums/KeyManagerError.html#/s:15TwilioVerifySDK15KeyManagerErrorO6domainSSvp":{"name":"domain","abstract":"
Undocumented
","parent_name":"KeyManagerError"},"Enums/SecureStorageError.html#/s:15TwilioVerifySDK18SecureStorageErrorO17invalidStatusCodeyACSi_tcACmF":{"name":"invalidStatusCode(code:)","abstract":"
Undocumented
","parent_name":"SecureStorageError"},"Enums/SecureStorageError.html#/s:10Foundation14LocalizedErrorP16errorDescriptionSSSgvp":{"name":"errorDescription","parent_name":"SecureStorageError"},"Enums/SecureStorageError.html#/s:15TwilioVerifySDK18SecureStorageErrorO6domainSSvp":{"name":"domain","abstract":"
Undocumented
","parent_name":"SecureStorageError"},"Enums/NetworkError.html#/s:15TwilioVerifySDK12NetworkErrorO10invalidURLyA2CmF":{"name":"invalidURL","abstract":"
Undocumented
","parent_name":"NetworkError"},"Enums/NetworkError.html#/s:15TwilioVerifySDK12NetworkErrorO11invalidBodyyA2CmF":{"name":"invalidBody","abstract":"
Undocumented
","parent_name":"NetworkError"},"Enums/NetworkError.html#/s:15TwilioVerifySDK12NetworkErrorO15invalidResponseyAC10Foundation4DataV_tcACmF":{"name":"invalidResponse(errorResponse:)","abstract":"
Undocumented
","parent_name":"NetworkError"},"Enums/NetworkError.html#/s:15TwilioVerifySDK12NetworkErrorO17failureStatusCodeyAcA15FailureResponseV_tcACmF":{"name":"failureStatusCode(failureResponse:)","abstract":"
Undocumented
","parent_name":"NetworkError"},"Enums/NetworkError.html#/s:15TwilioVerifySDK12NetworkErrorO11invalidDatayA2CmF":{"name":"invalidData","abstract":"
Undocumented
","parent_name":"NetworkError"},"Enums/NetworkError.html#/s:10Foundation14LocalizedErrorP16errorDescriptionSSSgvp":{"name":"errorDescription","parent_name":"NetworkError"},"Enums/NotificationPlatform.html#/s:15TwilioVerifySDK20NotificationPlatformO3apnyA2CmF":{"name":"apn","abstract":"
Undocumented
","parent_name":"NotificationPlatform"},"Enums/NotificationPlatform.html#/s:15TwilioVerifySDK20NotificationPlatformO4noneyA2CmF":{"name":"none","abstract":"
Undocumented
","parent_name":"NotificationPlatform"},"Enums/NotificationPlatform.html":{"name":"NotificationPlatform","abstract":"
Undocumented
"},"Enums/NetworkError.html":{"name":"NetworkError","abstract":"
Undocumented
"},"Enums/SecureStorageError.html":{"name":"SecureStorageError","abstract":"
Undocumented
"},"Enums/KeyManagerError.html":{"name":"KeyManagerError","abstract":"
Undocumented
"},"Enums/LogLevel.html":{"name":"LogLevel","abstract":"
Error types returned by the TwilioVerify SDK. It encompasess different types of errors"},"Enums/ChallengeStatus.html":{"name":"ChallengeStatus","abstract":"
Describes the approval status of a Challenge
"},"Enums/ChallengeListOrder.html":{"name":"ChallengeListOrder","abstract":"
Describes the order to fetch a ChallengeList
"},"Enums/FactorStatus.html":{"name":"FactorStatus","abstract":"
Describes the verification status of a Factor.
"},"Enums/FactorType.html":{"name":"FactorType","abstract":"
Describes the types a factor can have.
"},"Enums/TwilioVerifyError.html":{"name":"TwilioVerifyError","abstract":"
Error types returned by the TwilioVerify SDK. It encompasess different types of errors"},"Enums/InputError.html":{"name":"InputError","abstract":"
Error types returned as cause for a TwilioVerifyError and InputError code on validation errors.
"},"Classes/TwilioVerifyManager.html#/s:15TwilioVerifySDK0aB7ManagerC12createFactor11withPayload7success7failureyAA0fH0_p_yAA0F0_pcyAA0aB5ErrorOctF":{"name":"createFactor(withPayload:success:failure:)","abstract":"
Creates a Factor from a FactorPayload
","parent_name":"TwilioVerifyManager"},"Classes/TwilioVerifyManager.html#/s:15TwilioVerifySDK0aB7ManagerC12verifyFactor11withPayload7success7failureyAA0bfH0_p_yAA0F0_pcyAA0aB5ErrorOctF":{"name":"verifyFactor(withPayload:success:failure:)","abstract":"
Verifies a Factor from a VerifyFactorPayload
","parent_name":"TwilioVerifyManager"},"Classes/TwilioVerifyManager.html#/s:15TwilioVerifySDK0aB7ManagerC12updateFactor11withPayload7success7failureyAA06UpdatefH0_p_yAA0F0_pcyAA0aB5ErrorOctF":{"name":"updateFactor(withPayload:success:failure:)","abstract":"
Updates a Factor from a UpdateFactorPayload
","parent_name":"TwilioVerifyManager"},"Classes/TwilioVerifyManager.html#/s:15TwilioVerifySDK0aB7ManagerC13getAllFactors7success7failureyySayAA6Factor_pGc_yAA0aB5ErrorOctF":{"name":"getAllFactors(success:failure:)","abstract":"
Gets all Factors created by the app
","parent_name":"TwilioVerifyManager"},"Classes/TwilioVerifyManager.html#/s:15TwilioVerifySDK0aB7ManagerC12deleteFactor7withSid7success7failureySS_yycyAA0aB5ErrorOctF":{"name":"deleteFactor(withSid:success:failure:)","abstract":"
Deletes a Factor with the given Sid
","parent_name":"TwilioVerifyManager"},"Classes/TwilioVerifyManager.html#/s:15TwilioVerifySDK0aB7ManagerC12getChallenge12challengeSid06factorH07success7failureySS_SSyAA0F0_pcyAA0aB5ErrorOctF":{"name":"getChallenge(challengeSid:factorSid:success:failure:)","abstract":"
Gets a Challenge with the given challenge sid and factor Sid
","parent_name":"TwilioVerifyManager"},"Classes/TwilioVerifyManager.html#/s:15TwilioVerifySDK0aB7ManagerC15updateChallenge11withPayload7success7failureyAA06UpdatefH0_p_yycyAA0aB5ErrorOctF":{"name":"updateChallenge(withPayload:success:failure:)","abstract":"
Updates a Challenge from a UpdateChallengePayload
","parent_name":"TwilioVerifyManager"},"Classes/TwilioVerifyManager.html#/s:15TwilioVerifySDK0aB7ManagerC16getAllChallenges11withPayload7success7failureyAA013ChallengeListI0V_yAA0lM0_pcyAA0aB5ErrorOctF":{"name":"getAllChallenges(withPayload:success:failure:)","abstract":"
Gets all Challenges associated to a Factor with the given ChallengeListPayload
","parent_name":"TwilioVerifyManager"},"Classes/TwilioVerifyManager.html#/s:15TwilioVerifySDK0aB7ManagerC17clearLocalStorageyyKF":{"name":"clearLocalStorage()","abstract":"
Clears local storage, it will delete factors and key pairs in this device.
","parent_name":"TwilioVerifyManager"},"Classes/TwilioVerifyBuilder.html#/s:15TwilioVerifySDK0aB7BuilderCACycfc":{"name":"init()","abstract":"
Creates a new instance of TwilioVerifyBuilder
","parent_name":"TwilioVerifyBuilder"},"Classes/TwilioVerifyBuilder.html#/s:15TwilioVerifySDK0aB7BuilderC18setNetworkProvideryACXDAA0fG0_pF":{"name":"setNetworkProvider(_:)","abstract":"
Set the NetworkProvider that will be used by the TwilioVerify instance.
","parent_name":"TwilioVerifyBuilder"},"Classes/TwilioVerifyBuilder.html#/s:15TwilioVerifySDK0aB7BuilderC26setClearStorageOnReinstallyACXDSbF":{"name":"setClearStorageOnReinstall(_:)","abstract":"
Defines if the storage will be cleared after a reinstall
","parent_name":"TwilioVerifyBuilder"},"Classes/TwilioVerifyBuilder.html#/s:15TwilioVerifySDK0aB7BuilderC14setAccessGroupyACXDSSSgF":{"name":"setAccessGroup(_:)","abstract":"
Set the accessGroup that will be used for the Keychain storage.
","parent_name":"TwilioVerifyBuilder"},"Classes/TwilioVerifyBuilder.html#/s:15TwilioVerifySDK0aB7BuilderC27enableDefaultLoggingService9withLevelACXDAA03LogJ0O_tF":{"name":"enableDefaultLoggingService(withLevel:)","abstract":"
Enables the default logger
","parent_name":"TwilioVerifyBuilder"},"Classes/TwilioVerifyBuilder.html#/s:15TwilioVerifySDK0aB7BuilderC17addLoggingServiceyACXDAA06LoggerG0_pF":{"name":"addLoggingService(_:)","abstract":"
Adds a custom Logging Service
","parent_name":"TwilioVerifyBuilder"},"Classes/TwilioVerifyBuilder.html#/s:15TwilioVerifySDK0aB7BuilderC5buildAA0aB0_pyKF":{"name":"build()","abstract":"
Buids an instance of TwilioVerifyManager
","parent_name":"TwilioVerifyBuilder"},"Classes/TwilioVerifyBuilder.html":{"name":"TwilioVerifyBuilder","abstract":"
Builder class that builds an instance of TwilioVerifyManager, which handles all the operations"},"Classes/TwilioVerifyManager.html":{"name":"TwilioVerifyManager","abstract":"
Handles the available operations to proccess Factors and Challenges
"},"Classes.html":{"name":"Classes","abstract":"
The following classes are available globally.
"},"Enums.html":{"name":"Enumerations","abstract":"
The following enumerations are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"
The following protocols are available globally.
"},"Structs.html":{"name":"Structures","abstract":"
The following structures are available globally.
"},"Typealiases.html":{"name":"Type Aliases","abstract":"
The following type aliases are available globally.
"}}
\ No newline at end of file
diff --git a/docs/3.0.0/undocumented.json b/docs/3.0.0/undocumented.json
new file mode 100644
index 00000000..56b535b7
--- /dev/null
+++ b/docs/3.0.0/undocumented.json
@@ -0,0 +1,460 @@
+{
+ "warnings": [
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioSecurity/Sources/Key/Template/ECP256SignerTemplate.swift",
+ "line": 33,
+ "symbol": "ECP256SignerTemplate.init(withAlias:shouldExist:allowIphoneMigration:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioSecurity/Sources/Keychain/KeyManager.swift",
+ "line": 111,
+ "symbol": "KeyManager.signer(withTemplate:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioSecurity/Sources/Keychain/KeyManager.swift",
+ "line": 135,
+ "symbol": "KeyManager.deleteKey(withAlias:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioSecurity/Sources/Storage/SecureStorage.swift",
+ "line": 54,
+ "symbol": "SecureStorage.save(_:withKey:withServiceName:allowIphoneMigration:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioSecurity/Sources/Storage/SecureStorage.swift",
+ "line": 78,
+ "symbol": "SecureStorage.get(_:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioSecurity/Sources/Storage/SecureStorage.swift",
+ "line": 93,
+ "symbol": "SecureStorage.getAll(withServiceName:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioSecurity/Sources/Storage/SecureStorage.swift",
+ "line": 119,
+ "symbol": "SecureStorage.removeValue(for:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioSecurity/Sources/Storage/SecureStorage.swift",
+ "line": 130,
+ "symbol": "SecureStorage.clear(withServiceName:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Domain/Factor/Models/PushFactor.swift",
+ "line": 134,
+ "symbol": "NotificationPlatform",
+ "symbol_kind": "source.lang.swift.decl.enum",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Domain/Factor/Models/PushFactor.swift",
+ "line": 135,
+ "symbol": "NotificationPlatform.apn",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Domain/Factor/Models/PushFactor.swift",
+ "line": 136,
+ "symbol": "NotificationPlatform.none",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/NetworkError.swift",
+ "line": 22,
+ "symbol": "NetworkError",
+ "symbol_kind": "source.lang.swift.decl.enum",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/NetworkError.swift",
+ "line": 23,
+ "symbol": "NetworkError.invalidURL",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/NetworkError.swift",
+ "line": 24,
+ "symbol": "NetworkError.invalidBody",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/NetworkError.swift",
+ "line": 25,
+ "symbol": "NetworkError.invalidResponse(errorResponse:)",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/NetworkError.swift",
+ "line": 26,
+ "symbol": "NetworkError.failureStatusCode(failureResponse:)",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/NetworkError.swift",
+ "line": 27,
+ "symbol": "NetworkError.invalidData",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/NetworkError.swift",
+ "line": 30,
+ "symbol": "NetworkError",
+ "symbol_kind": "source.lang.swift.decl.extension",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/OperationErrors.swift",
+ "line": 22,
+ "symbol": "OperationError",
+ "symbol_kind": "source.lang.swift.decl.protocol",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/OperationErrors.swift",
+ "line": 23,
+ "symbol": "OperationError.errorDescription",
+ "symbol_kind": "source.lang.swift.decl.var.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/OperationErrors.swift",
+ "line": 24,
+ "symbol": "OperationError.domain",
+ "symbol_kind": "source.lang.swift.decl.var.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/OperationErrors.swift",
+ "line": 65,
+ "symbol": "SecureStorageError",
+ "symbol_kind": "source.lang.swift.decl.enum",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/OperationErrors.swift",
+ "line": 66,
+ "symbol": "SecureStorageError.invalidStatusCode(code:)",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/OperationErrors.swift",
+ "line": 75,
+ "symbol": "SecureStorageError.domain",
+ "symbol_kind": "source.lang.swift.decl.var.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/OperationErrors.swift",
+ "line": 83,
+ "symbol": "KeyManagerError",
+ "symbol_kind": "source.lang.swift.decl.enum",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/OperationErrors.swift",
+ "line": 84,
+ "symbol": "KeyManagerError.invalidStatusCode(code:)",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Errors/OperationErrors.swift",
+ "line": 93,
+ "symbol": "KeyManagerError.domain",
+ "symbol_kind": "source.lang.swift.decl.var.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Logger/Logger.swift",
+ "line": 50,
+ "symbol": "LogLevel.error",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Logger/Logger.swift",
+ "line": 51,
+ "symbol": "LogLevel.info",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Logger/Logger.swift",
+ "line": 52,
+ "symbol": "LogLevel.networking",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Logger/Logger.swift",
+ "line": 53,
+ "symbol": "LogLevel.debug",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Logger/Logger.swift",
+ "line": 54,
+ "symbol": "LogLevel.all",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Models/ChallengeListPayload.swift",
+ "line": 56,
+ "symbol": "ChallengeListOrder.asc",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Models/ChallengeListPayload.swift",
+ "line": 57,
+ "symbol": "ChallengeListOrder.desc",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 24,
+ "symbol": "SuccessResponseBlock",
+ "symbol_kind": "source.lang.swift.decl.typealias",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 25,
+ "symbol": "FailureBlock",
+ "symbol_kind": "source.lang.swift.decl.typealias",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 29,
+ "symbol": "NetworkProvider",
+ "symbol_kind": "source.lang.swift.decl.protocol",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 30,
+ "symbol": "NetworkProvider.execute(_:success:failure:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 39,
+ "symbol": "APIError",
+ "symbol_kind": "source.lang.swift.decl.struct",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 40,
+ "symbol": "APIError.code",
+ "symbol_kind": "source.lang.swift.decl.var.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 41,
+ "symbol": "APIError.message",
+ "symbol_kind": "source.lang.swift.decl.var.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 42,
+ "symbol": "APIError.moreInfo",
+ "symbol_kind": "source.lang.swift.decl.var.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 44,
+ "symbol": "APIError.init(code:message:moreInfo:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 59,
+ "symbol": "FailureResponse",
+ "symbol_kind": "source.lang.swift.decl.struct",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 60,
+ "symbol": "FailureResponse.statusCode",
+ "symbol_kind": "source.lang.swift.decl.var.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 61,
+ "symbol": "FailureResponse.errorData",
+ "symbol_kind": "source.lang.swift.decl.var.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 62,
+ "symbol": "FailureResponse.headers",
+ "symbol_kind": "source.lang.swift.decl.var.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 63,
+ "symbol": "FailureResponse.apiError",
+ "symbol_kind": "source.lang.swift.decl.var.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 65,
+ "symbol": "FailureResponse.init(statusCode:errorData:headers:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 76,
+ "symbol": "NetworkResponse",
+ "symbol_kind": "source.lang.swift.decl.struct",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 77,
+ "symbol": "NetworkResponse.data",
+ "symbol_kind": "source.lang.swift.decl.var.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 78,
+ "symbol": "NetworkResponse.headers",
+ "symbol_kind": "source.lang.swift.decl.var.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/Networking/NetworkProvider+Models.swift",
+ "line": 80,
+ "symbol": "NetworkResponse.init(data:headers:)",
+ "symbol_kind": "source.lang.swift.decl.function.method.instance",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyError.swift",
+ "line": 120,
+ "symbol": "InputError.invalidInput(field:)",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyError.swift",
+ "line": 121,
+ "symbol": "InputError.invalidPayload",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyError.swift",
+ "line": 122,
+ "symbol": "InputError.expiredChallenge",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyError.swift",
+ "line": 123,
+ "symbol": "InputError.alreadyUpdatedChallenge",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyError.swift",
+ "line": 124,
+ "symbol": "InputError.notUpdatedChallenge",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyError.swift",
+ "line": 125,
+ "symbol": "InputError.invalidChallenge",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyError.swift",
+ "line": 126,
+ "symbol": "InputError.emptyChallengeSid",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyError.swift",
+ "line": 127,
+ "symbol": "InputError.invalidUpdateChallengePayload(factorType:)",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyError.swift",
+ "line": 128,
+ "symbol": "InputError.emptyFactorSid",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyError.swift",
+ "line": 129,
+ "symbol": "InputError.wrongFactor",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyError.swift",
+ "line": 130,
+ "symbol": "InputError.invalidFactor",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ },
+ {
+ "file": "/Users/distiller/project/TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyError.swift",
+ "line": 131,
+ "symbol": "InputError.signatureFields",
+ "symbol_kind": "source.lang.swift.decl.enumelement",
+ "warning": "undocumented"
+ }
+ ],
+ "source_directory": "/Users/distiller/project"
+}
\ No newline at end of file
diff --git a/docs/latest b/docs/latest
index 7e541aec..56fea8a0 120000
--- a/docs/latest
+++ b/docs/latest
@@ -1 +1 @@
-2.2.2
\ No newline at end of file
+3.0.0
\ No newline at end of file
diff --git a/fastlane/Fastfile b/fastlane/Fastfile
index b88aeb56..20952b40 100644
--- a/fastlane/Fastfile
+++ b/fastlane/Fastfile
@@ -1,12 +1,11 @@
output_directory = './fastlane/Test Output/'
coverage_directory = '/coverage'
complete_suite = 'CompleteSuite'
-single_ftl_device = [{ios_model_id: 'iphone8', ios_version_id: '16.3'}]
+single_ftl_device = [{ios_model_id: 'iphone8', ios_version_id: '16.6'}]
all_ftl_devices = [
- {ios_model_id: 'iphone12pro', ios_version_id: '14.8'},
- {ios_model_id: 'iphone11pro', ios_version_id: '16.3'},
- {ios_model_id: 'ipadmini4', ios_version_id: '15.4'},
- {ios_model_id: 'iphone13pro', ios_version_id: '15.7'}
+ {ios_model_id: 'iphone11pro', ios_version_id: '16.6'},
+ {ios_model_id: 'ipad10', ios_version_id: '16.6'},
+ {ios_model_id: 'iphone8', ios_version_id: '15.7'}
]
default_platform(:ios)
@@ -31,7 +30,7 @@ platform :ios do
output_files: 'junit.xml, report.html',
output_directory: output_directory + test_plan
)
- danger_tests id:'UnitTests'
+ #danger_tests id:'UnitTests'
end
desc 'Runs integration tests'
@@ -42,9 +41,17 @@ platform :ios do
if options[:ftl_devices] == 'all'
ftl_devices = all_ftl_devices
end
- match(
- type: "development",
- app_identifier: ["com.twilio.verify.HostApp"]
+
+ settings_to_override = {
+ :BUNDLE_IDENTIFIER => "com.twilio.verify.HostApp",
+ :PROVISIONING_PROFILE_SPECIFIER => ENV["TWILIO_VERIFY_HOST_APP_PROVISIONING_PROFILE"],
+ :DEVELOPMENT_TEAM => ENV["TWILIO_VERIFY_DEMO_DEVELOPMENT_TEAM"],
+ }
+ update_code_signing_settings(
+ use_automatic_signing: false,
+ team_id: ENV["TWILIO_VERIFY_DEMO_DEVELOPMENT_TEAM"],
+ path: "TwilioVerifySDK.xcodeproj",
+ targets: ["HostApp"]
)
scan(
scheme: 'TwilioVerifySDK',
@@ -62,7 +69,7 @@ platform :ios do
timeout_sec: 300,
devices: ftl_devices,
skip_validation: true,
- ios_xc_test_args: { xcodeVersion: '14.2' }
+ ios_xc_test_args: { xcodeVersion: '15.3' }
)
end
@@ -94,10 +101,7 @@ platform :ios do
desc "Runs app sizer"
lane :build_app_sizer do
- match(
- type: "development",
- app_identifier: ["com.twilio.verify.AppSizer"]
- )
+
settings_to_override = {
:BUNDLE_IDENTIFIER => "com.twilio.verify.AppSizer",
:PROVISIONING_PROFILE_SPECIFIER => ENV["TWILIO_APP_SIZER_PROVISIONING_PROFILE"],
@@ -180,6 +184,8 @@ platform :ios do
last_version = lane_context[SharedValues::RELEASE_LAST_VERSION]
sh("sed -i '' 's/#{last_version}/#{next_version}/g' ../README.md")
git_add(path: ['./TwilioVerifySDK/TwilioVerify/Sources/TwilioVerifyConfig.swift', './TwilioVerifySDK/Info.plist', './CHANGELOG.md', './README.md', "./docs/#{next_version}", "./docs/latest", "./TwilioVerify.podspec"])
+ sh("git config user.name '#{ENV['GH_USER_NAME']}'")
+ sh("git config user.email '#{ENV['GH_USER_EMAIL']}'")
sh("git commit -m \"Version bump to #{next_version} [skip ci]\"")
push_to_git_remote
@@ -215,7 +221,7 @@ platform :ios do
end
lane :build_swift_package do
- sh("swift build -Xswiftc \"-sdk\" -Xswiftc \"`xcrun --sdk iphonesimulator --show-sdk-path`\" -Xswiftc \"-target\" -Xswiftc \"x86_64-apple-ios14.0-simulator\"")
+ sh("xcodebuild -project ../TwilioVerifySDK.xcodeproj -scheme TwilioVerifySDK -destination 'generic/platform=iOS Simulator' build")
end
desc "Distribute debug sample app for internal testing"
@@ -242,11 +248,6 @@ platform :ios do
version_number: options[:versionName]
)
- match(
- app_identifier: "com.twilio.TwilioVerifyDemo",
- type: "adhoc",
- readonly: true
- )
settings_to_override = {
:BUNDLE_IDENTIFIER => "com.twilio.TwilioVerifyDemo",
:PROVISIONING_PROFILE_SPECIFIER => ENV["TWILIO_VERIFY_DEMO_PROVISIONING_PROFILE"],
@@ -256,7 +257,7 @@ platform :ios do
gym(
scheme: "TwilioVerifyDemo",
workspace: "TwilioVerify.xcworkspace",
- export_method: "ad-hoc",
+ export_method: "development",
xcargs: settings_to_override,
silent: true,
export_options: {
@@ -275,4 +276,4 @@ platform :ios do
release_notes: options[:notes]
)
end
-end
+end
\ No newline at end of file
diff --git a/fastlane/Matchfile b/fastlane/Matchfile
deleted file mode 100644
index b293a00d..00000000
--- a/fastlane/Matchfile
+++ /dev/null
@@ -1,3 +0,0 @@
-git_url("git@github.com:twilio/authy-app-and-sdks-ios-certificates.git")
-
-storage_mode("git")