auth0-lock 12.0.0-beta.0 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/CHANGELOG.md +32 -1
  2. package/DEVELOPMENT.md +1 -1
  3. package/README.md +8 -7
  4. package/lib/__tests__/connection/database/login_pane.js +7 -9
  5. package/lib/__tests__/connection/database/password_reset_confirmation.js +9 -11
  6. package/lib/__tests__/connection/database/signed_up_confirmation.js +9 -11
  7. package/lib/__tests__/connection/enterprise/quick_auth_screen.js +8 -10
  8. package/lib/__tests__/connection/passwordless/email_sent_confirmation.js +9 -11
  9. package/lib/__tests__/connection/passwordless/passwordless.js +4 -2
  10. package/lib/__tests__/core/remote_data.js +2 -2
  11. package/lib/__tests__/core/signed_in_confirmation.js +9 -11
  12. package/lib/__tests__/engine/passwordless/social_or_email_login_screen.js +105 -0
  13. package/lib/__tests__/engine/passwordless/social_or_phone_number_login_screen.js +105 -0
  14. package/lib/__tests__/ui/box/confirmation_pane.js +7 -9
  15. package/lib/connection/captcha.js +20 -6
  16. package/lib/connection/database/actions.js +5 -5
  17. package/lib/connection/database/login_pane.js +1 -1
  18. package/lib/connection/enterprise/actions.js +2 -2
  19. package/lib/connection/enterprise/hrd_pane.js +1 -1
  20. package/lib/connection/enterprise.js +1 -1
  21. package/lib/connection/passwordless/actions.js +29 -10
  22. package/lib/core/client/index.js +1 -1
  23. package/lib/core/index.js +10 -6
  24. package/lib/core/remote_data.js +8 -0
  25. package/lib/core/tenant/index.js +1 -1
  26. package/lib/core/web_api/helper.js +1 -1
  27. package/lib/core/web_api/p2_api.js +6 -0
  28. package/lib/core/web_api.js +5 -0
  29. package/lib/engine/classic/sign_up_pane.js +1 -1
  30. package/lib/engine/passwordless/social_or_email_login_screen.js +11 -1
  31. package/lib/engine/passwordless/social_or_phone_number_login_screen.js +11 -1
  32. package/lib/field/captcha/captcha_pane.js +6 -5
  33. package/lib/i18n/af.js +3 -1
  34. package/lib/i18n/ar.js +3 -1
  35. package/lib/i18n/az.js +3 -1
  36. package/lib/i18n/bg.js +3 -1
  37. package/lib/i18n/ca.js +3 -1
  38. package/lib/i18n/cs.js +3 -1
  39. package/lib/i18n/da.js +3 -1
  40. package/lib/i18n/de.js +3 -1
  41. package/lib/i18n/el.js +3 -1
  42. package/lib/i18n/en.js +3 -1
  43. package/lib/i18n/es.js +3 -1
  44. package/lib/i18n/et.js +3 -1
  45. package/lib/i18n/fa.js +3 -1
  46. package/lib/i18n/fi.js +3 -1
  47. package/lib/i18n/fr.js +3 -1
  48. package/lib/i18n/he.js +3 -1
  49. package/lib/i18n/hr.js +3 -1
  50. package/lib/i18n/hu.js +3 -1
  51. package/lib/i18n/id.js +3 -1
  52. package/lib/i18n/it.js +3 -1
  53. package/lib/i18n/ja.js +3 -1
  54. package/lib/i18n/ko.js +3 -1
  55. package/lib/i18n/lt.js +3 -1
  56. package/lib/i18n/lv.js +3 -1
  57. package/lib/i18n/ms.js +3 -1
  58. package/lib/i18n/nb.js +3 -1
  59. package/lib/i18n/nl.js +3 -1
  60. package/lib/i18n/nn.js +3 -1
  61. package/lib/i18n/no.js +3 -1
  62. package/lib/i18n/pl.js +3 -1
  63. package/lib/i18n/pt-br.js +3 -1
  64. package/lib/i18n/pt.js +3 -1
  65. package/lib/i18n/ro.js +3 -1
  66. package/lib/i18n/ru.js +3 -1
  67. package/lib/i18n/sk.js +3 -1
  68. package/lib/i18n/sl.js +3 -1
  69. package/lib/i18n/sr.js +3 -1
  70. package/lib/i18n/sv.js +3 -1
  71. package/lib/i18n/tr.js +3 -1
  72. package/lib/i18n/ua.js +3 -1
  73. package/lib/i18n/uk.js +3 -1
  74. package/lib/i18n/vi.js +3 -1
  75. package/lib/i18n/zh-tw.js +3 -1
  76. package/lib/i18n/zh.js +3 -1
  77. package/lib/i18n.js +1 -1
  78. package/lib/lock.js +1 -1
  79. package/lib/passwordless.js +1 -1
  80. package/lib/ui/input/password/password_strength.js +1 -1
  81. package/lib/utils/cache.js +1 -1
  82. package/package.json +2 -2
@@ -11,7 +11,6 @@ exports.resendEmail = resendEmail;
11
11
  exports.restart = restart;
12
12
  exports.sendSMS = sendSMS;
13
13
  exports.toggleTermsAcceptance = toggleTermsAcceptance;
14
- var _immutable = require("immutable");
15
14
  var _index = require("../../store/index");
16
15
  var _actions = require("../../core/actions");
17
16
  var _web_api = _interopRequireDefault(require("../../core/web_api"));
@@ -20,6 +19,7 @@ var l = _interopRequireWildcard(require("../../core/index"));
20
19
  var _index4 = require("./index");
21
20
  var _phone_number = require("../../field/phone_number");
22
21
  var i18n = _interopRequireWildcard(require("../../i18n"));
22
+ var _captcha = require("../captcha");
23
23
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
24
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
25
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -29,16 +29,24 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
29
29
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
30
30
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
31
31
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
32
- function getErrorMessage(m, error) {
32
+ function getErrorMessage(m, id, error) {
33
33
  var key = error.error;
34
34
  if (error.error === 'sms_provider_error' && (error.description || '').indexOf('(Code: 21211)') > -1) {
35
35
  key = 'bad.phone_number';
36
36
  }
37
+ if (error.code === 'invalid_captcha') {
38
+ var captchaConfig = l.passwordlessCaptcha(m);
39
+ key = captchaConfig.get('provider') === 'recaptcha_v2' || captchaConfig.get('provider') === 'recaptcha_enterprise' ? 'invalid_recaptcha' : 'invalid_captcha';
40
+ }
37
41
  return i18n.html(m, ['error', 'passwordless', key]) || i18n.html(m, ['error', 'passwordless', 'lock.fallback']);
38
42
  }
43
+ function swapCaptchaAfterError(id, error) {
44
+ var wasCaptchaInvalid = error && error.code === 'invalid_captcha';
45
+ (0, _captcha.swapCaptcha)(id, true, wasCaptchaInvalid);
46
+ }
39
47
  function requestPasswordlessEmail(id) {
40
48
  (0, _actions.validateAndSubmit)(id, ['email'], function (m) {
41
- sendEmail(m, requestPasswordlessEmailSuccess, requestPasswordlessEmailError);
49
+ sendEmail(m, id, requestPasswordlessEmailSuccess, requestPasswordlessEmailError);
42
50
  });
43
51
  }
44
52
  function requestPasswordlessEmailSuccess(id) {
@@ -49,13 +57,14 @@ function requestPasswordlessEmailSuccess(id) {
49
57
  }
50
58
  function requestPasswordlessEmailError(id, error) {
51
59
  var m = (0, _index.read)(_index.getEntity, 'lock', id);
52
- var errorMessage = getErrorMessage(m, error);
53
- return (0, _index.swap)(_index.updateEntity, 'lock', id, l.setSubmitting, false, errorMessage);
60
+ var errorMessage = getErrorMessage(m, id, error);
61
+ (0, _index.swap)(_index.updateEntity, 'lock', id, l.setSubmitting, false, errorMessage);
62
+ swapCaptchaAfterError(id, error);
54
63
  }
55
64
  function resendEmail(id) {
56
65
  (0, _index.swap)(_index.updateEntity, 'lock', id, _index4.resend);
57
66
  var m = (0, _index.read)(_index.getEntity, 'lock', id);
58
- sendEmail(m, resendEmailSuccess, resendEmailError);
67
+ sendEmail(m, id, resendEmailSuccess, resendEmailError);
59
68
  }
60
69
  function resendEmailSuccess(id) {
61
70
  (0, _index.swap)(_index.updateEntity, 'lock', id, _index4.setResendSuccess);
@@ -67,7 +76,7 @@ function getPasswordlessConnectionName(m, defaultPasswordlessConnection) {
67
76
  var connections = l.connections(m, 'passwordless', defaultPasswordlessConnection);
68
77
  return connections.size > 0 && l.useCustomPasswordlessConnection(m) ? connections.first().get('name') : defaultPasswordlessConnection;
69
78
  }
70
- function sendEmail(m, successFn, errorFn) {
79
+ function sendEmail(m, id, successFn, errorFn) {
71
80
  var params = {
72
81
  connection: getPasswordlessConnectionName(m, 'email'),
73
82
  email: c.getFieldValue(m, 'email'),
@@ -76,6 +85,10 @@ function sendEmail(m, successFn, errorFn) {
76
85
  if ((0, _index4.isSendLink)(m) && !l.auth.params(m).isEmpty()) {
77
86
  params.authParams = l.auth.params(m).toJS();
78
87
  }
88
+ var isCaptchaValid = (0, _captcha.setCaptchaParams)(m, params, true, []);
89
+ if (!isCaptchaValid) {
90
+ return (0, _captcha.showMissingCaptcha)(m, id, true);
91
+ }
79
92
  _web_api.default.startPasswordless(l.id(m), params, function (error) {
80
93
  if (error) {
81
94
  setTimeout(function () {
@@ -93,6 +106,10 @@ function sendSMS(id) {
93
106
  phoneNumber: (0, _phone_number.phoneNumberWithDiallingCode)(m),
94
107
  send: (0, _index4.send)(m)
95
108
  };
109
+ var isCaptchaValid = (0, _captcha.setCaptchaParams)(m, params, true, []);
110
+ if (!isCaptchaValid) {
111
+ return (0, _captcha.showMissingCaptcha)(m, id, true);
112
+ }
96
113
  _web_api.default.startPasswordless(id, params, function (error) {
97
114
  if (error) {
98
115
  setTimeout(function () {
@@ -113,9 +130,10 @@ function sendSMSSuccess(id) {
113
130
  }
114
131
  function sendSMSError(id, error) {
115
132
  var m = (0, _index.read)(_index.getEntity, 'lock', id);
116
- var errorMessage = getErrorMessage(m, error);
133
+ var errorMessage = getErrorMessage(m, id, error);
117
134
  l.emitAuthorizationErrorEvent(m, error);
118
- return (0, _index.swap)(_index.updateEntity, 'lock', id, l.setSubmitting, false, errorMessage);
135
+ (0, _index.swap)(_index.updateEntity, 'lock', id, l.setSubmitting, false, errorMessage);
136
+ swapCaptchaAfterError(id, error);
119
137
  }
120
138
  function logIn(id) {
121
139
  var m = (0, _index.read)(_index.getEntity, 'lock', id);
@@ -135,7 +153,7 @@ function logIn(id) {
135
153
  var errorMessage;
136
154
  if (error) {
137
155
  var _m = (0, _index.read)(_index.getEntity, 'lock', id);
138
- errorMessage = getErrorMessage(_m, error);
156
+ errorMessage = getErrorMessage(_m, id, error);
139
157
  if (error.logToConsole) {
140
158
  console.error(error.description);
141
159
  }
@@ -148,6 +166,7 @@ function logIn(id) {
148
166
  }
149
167
  function restart(id) {
150
168
  (0, _index.swap)(_index.updateEntity, 'lock', id, _index4.restartPasswordless);
169
+ (0, _captcha.swapCaptcha)(id, true, false);
151
170
  }
152
171
  function toggleTermsAcceptance(id) {
153
172
  (0, _index.swap)(_index.updateEntity, 'lock', id, _index4.toggleTermsAcceptance);
@@ -21,7 +21,7 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread n
21
21
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
22
22
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
23
23
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
24
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
24
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
25
25
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
26
26
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
27
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
package/lib/core/index.js CHANGED
@@ -42,6 +42,7 @@ exports.languageBaseUrl = languageBaseUrl;
42
42
  exports.loggedIn = loggedIn;
43
43
  exports.loginErrorMessage = loginErrorMessage;
44
44
  exports.overrideOptions = overrideOptions;
45
+ exports.passwordlessCaptcha = passwordlessCaptcha;
45
46
  exports.prefill = prefill;
46
47
  exports.render = render;
47
48
  exports.rendering = rendering;
@@ -53,6 +54,7 @@ exports.setGlobalError = setGlobalError;
53
54
  exports.setGlobalInfo = setGlobalInfo;
54
55
  exports.setGlobalSuccess = setGlobalSuccess;
55
56
  exports.setLoggedIn = setLoggedIn;
57
+ exports.setPasswordlessCaptcha = setPasswordlessCaptcha;
56
58
  exports.setResolvedConnection = setResolvedConnection;
57
59
  exports.setSubmitting = setSubmitting;
58
60
  exports.setSupressSubmitOverlay = setSupressSubmitOverlay;
@@ -488,14 +490,16 @@ function setCaptcha(m, value, wasInvalid) {
488
490
  m = captchaField.reset(m, wasInvalid);
489
491
  return set(m, 'captcha', _immutable.default.fromJS(value));
490
492
  }
493
+ function setPasswordlessCaptcha(m, value, wasInvalid) {
494
+ m = captchaField.reset(m, wasInvalid);
495
+ return set(m, 'passwordlessCaptcha', _immutable.default.fromJS(value));
496
+ }
491
497
  function captcha(m) {
492
- //some tests send an string as model.
493
- // https://github.com/auth0/lock/blob/82f56187698528699478bd429858cf91e387763c/src/__tests__/engine/classic/sign_up_pane.test.jsx#L28
494
- if (_typeof(m) !== 'object') {
495
- return;
496
- }
497
498
  return get(m, 'captcha');
498
499
  }
500
+ function passwordlessCaptcha(m) {
501
+ return get(m, 'passwordlessCaptcha');
502
+ }
499
503
  function prefill(m) {
500
504
  return get(m, 'prefill', {});
501
505
  }
@@ -651,7 +655,7 @@ function loginErrorMessage(m, error, type) {
651
655
  }
652
656
  if (code === 'invalid_captcha') {
653
657
  var currentCaptcha = get(m, 'captcha');
654
- if (currentCaptcha && currentCaptcha.get('provider') === 'recaptcha_v2') {
658
+ if (currentCaptcha && (currentCaptcha.get('provider') === 'recaptcha_v2' || currentCaptcha.get('provider') === 'recaptcha_enterprise')) {
655
659
  code = 'invalid_recaptcha';
656
660
  }
657
661
  }
@@ -78,5 +78,13 @@ function syncRemoteData(m) {
78
78
  },
79
79
  successFn: _index2.setCaptcha
80
80
  });
81
+ m = (0, _sync.default)(m, 'passwordlessCaptcha', {
82
+ syncFn: function syncFn(m, cb) {
83
+ _web_api.default.getPasswordlessChallenge(m.get('id'), function (err, r) {
84
+ cb(null, r);
85
+ });
86
+ },
87
+ successFn: _index2.setPasswordlessCaptcha
88
+ });
81
89
  return m;
82
90
  }
@@ -20,7 +20,7 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread n
20
20
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
21
21
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
22
22
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
23
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
23
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
24
24
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
25
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26
26
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -170,5 +170,5 @@ function trimAuthParams() {
170
170
  return p;
171
171
  }
172
172
  function getVersion() {
173
- return "12.0.0-beta.0";
173
+ return "12.0.0";
174
174
  }
@@ -194,6 +194,12 @@ var Auth0APIClient = /*#__PURE__*/function () {
194
194
  var _this$client$client2;
195
195
  return (_this$client$client2 = this.client.client).getChallenge.apply(_this$client$client2, arguments);
196
196
  }
197
+ }, {
198
+ key: "getPasswordlessChallenge",
199
+ value: function getPasswordlessChallenge() {
200
+ var _this$client$client$p;
201
+ return (_this$client$client$p = this.client.client.passwordless).getChallenge.apply(_this$client$client$p, arguments);
202
+ }
197
203
  }, {
198
204
  key: "getUserCountry",
199
205
  value: function getUserCountry(cb) {
@@ -84,6 +84,11 @@ var Auth0WebAPI = /*#__PURE__*/function () {
84
84
  value: function getChallenge(lockID, callback) {
85
85
  return this.clients[lockID].getChallenge(callback);
86
86
  }
87
+ }, {
88
+ key: "getPasswordlessChallenge",
89
+ value: function getPasswordlessChallenge(lockID, callback) {
90
+ return this.clients[lockID].getPasswordlessChallenge(callback);
91
+ }
87
92
  }, {
88
93
  key: "getSSOData",
89
94
  value: function getSSOData(lockID) {
@@ -79,7 +79,7 @@ var SignUpPane = /*#__PURE__*/function (_React$Component) {
79
79
  i18n: i18n,
80
80
  lock: model,
81
81
  onReload: function onReload() {
82
- return (0, _captcha.swapCaptcha)(l.id(model), false);
82
+ return (0, _captcha.swapCaptcha)(l.id(model), false, false);
83
83
  }
84
84
  }) : null;
85
85
  var passwordPane = !onlyEmail && /*#__PURE__*/_react.default.createElement(_password_pane.default, {
@@ -9,6 +9,8 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _screen = _interopRequireDefault(require("../../core/screen"));
10
10
  var _email_pane = _interopRequireDefault(require("../../field/email/email_pane"));
11
11
  var _social_buttons_pane = _interopRequireDefault(require("../../field/social/social_buttons_pane"));
12
+ var _captcha_pane = _interopRequireDefault(require("../../field/captcha/captcha_pane"));
13
+ var _captcha = require("../../connection/captcha");
12
14
  var _pane_separator = _interopRequireDefault(require("../../core/pane_separator"));
13
15
  var _index = require("../../connection/passwordless/index");
14
16
  var _actions = require("../../connection/passwordless/actions");
@@ -56,7 +58,15 @@ var Component = function Component(_ref) {
56
58
  var headerText = i18n.html(emailInstructionsI18nKey) || null;
57
59
  var header = email && headerText && /*#__PURE__*/_react.default.createElement("p", null, headerText);
58
60
  var separator = social && email ? /*#__PURE__*/_react.default.createElement(_pane_separator.default, null) : null;
59
- return /*#__PURE__*/_react.default.createElement("div", null, social, separator, header, email);
61
+ var captchaPane = l.passwordlessCaptcha(model) && l.passwordlessCaptcha(model).get('required') ? /*#__PURE__*/_react.default.createElement(_captcha_pane.default, {
62
+ i18n: i18n,
63
+ lock: model,
64
+ isPasswordless: true,
65
+ onReload: function onReload() {
66
+ return (0, _captcha.swapCaptcha)(l.id(model), true, false);
67
+ }
68
+ }) : null;
69
+ return /*#__PURE__*/_react.default.createElement("div", null, social, separator, header, email, captchaPane);
60
70
  };
61
71
  var SocialOrEmailLoginScreen = /*#__PURE__*/function (_Screen) {
62
72
  _inherits(SocialOrEmailLoginScreen, _Screen);
@@ -10,6 +10,8 @@ var _screen = _interopRequireDefault(require("../../core/screen"));
10
10
  var _actions = require("../../connection/passwordless/actions");
11
11
  var _phone_number_pane = _interopRequireDefault(require("../../field/phone-number/phone_number_pane"));
12
12
  var _social_buttons_pane = _interopRequireDefault(require("../../field/social/social_buttons_pane"));
13
+ var _captcha_pane = _interopRequireDefault(require("../../field/captcha/captcha_pane"));
14
+ var _captcha = require("../../connection/captcha");
13
15
  var _signed_in_confirmation = require("../../core/signed_in_confirmation");
14
16
  var _pane_separator = _interopRequireDefault(require("../../core/pane_separator"));
15
17
  var l = _interopRequireWildcard(require("../../core/index"));
@@ -47,8 +49,16 @@ var Component = function Component(_ref) {
47
49
  placeholder: i18n.str('phoneNumberInputPlaceholder'),
48
50
  invalidHint: i18n.str('phoneNumberInputInvalidHint')
49
51
  }) : null;
52
+ var captchaPane = l.passwordlessCaptcha(model) && l.passwordlessCaptcha(model).get('required') ? /*#__PURE__*/_react.default.createElement(_captcha_pane.default, {
53
+ i18n: i18n,
54
+ lock: model,
55
+ isPasswordless: true,
56
+ onReload: function onReload() {
57
+ return (0, _captcha.swapCaptcha)(l.id(model), true, false);
58
+ }
59
+ }) : null;
50
60
  var separator = social && phoneNumber ? /*#__PURE__*/_react.default.createElement(_pane_separator.default, null) : null;
51
- return /*#__PURE__*/_react.default.createElement("div", null, social, separator, phoneNumber);
61
+ return /*#__PURE__*/_react.default.createElement("div", null, social, separator, phoneNumber, captchaPane);
52
62
  };
53
63
  var AskSocialNetworkOrPhoneNumber = /*#__PURE__*/function (_Screen) {
54
64
  _inherits(AskSocialNetworkOrPhoneNumber, _Screen);
@@ -41,23 +41,24 @@ var CaptchaPane = /*#__PURE__*/function (_React$Component) {
41
41
  var _this$props = this.props,
42
42
  i18n = _this$props.i18n,
43
43
  lock = _this$props.lock,
44
- onReload = _this$props.onReload;
44
+ onReload = _this$props.onReload,
45
+ isPasswordless = _this$props.isPasswordless;
45
46
  var lockId = l.id(lock);
46
- var captcha = l.captcha(lock);
47
+ var captcha = isPasswordless ? l.passwordlessCaptcha(lock) : l.captcha(lock);
47
48
  var value = (0, _index3.getFieldValue)(lock, 'captcha');
48
49
  var isValid = !(0, _index3.isFieldVisiblyInvalid)(lock, 'captcha');
49
50
  var provider = captcha.get('provider');
50
51
  if ((0, _recaptcha.isRecaptcha)(provider)) {
51
- function _handleChange(value) {
52
+ function handleChange(value) {
52
53
  (0, _index2.swap)(_index2.updateEntity, 'lock', lockId, captchaField.set, value);
53
54
  }
54
55
  function reset() {
55
- _handleChange();
56
+ handleChange();
56
57
  }
57
58
  return /*#__PURE__*/_react.default.createElement(_recaptcha.ReCAPTCHA, {
58
59
  provider: provider,
59
60
  sitekey: captcha.get('siteKey'),
60
- onChange: _handleChange,
61
+ onChange: handleChange,
61
62
  onExpired: reset,
62
63
  hl: l.ui.language(lock),
63
64
  isValid: isValid,
package/lib/i18n/af.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'Die e-pos is ongeldig',
39
39
  'bad.phone_number': 'Die telefoonnommer is ongeldig',
40
- 'lock.fallback': 'Jammer, iets het verkeerd gegaan'
40
+ 'lock.fallback': 'Jammer, iets het verkeerd gegaan',
41
+ invalid_captcha: "Los die uitdagingsvraag om te verifieer dat u nie 'n robot is nie.",
42
+ invalid_recaptcha: "Kies die merkblokkie om te verifieer dat u nie 'n robot is nie."
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'Wagwoord is ongeldig.',
package/lib/i18n/ar.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'البريد الإلكتروني غير صالح.',
39
39
  'bad.phone_number': 'رقم الهاتف غير صالح.',
40
- 'lock.fallback': 'المعذرة، حصل خطأ ما.'
40
+ 'lock.fallback': 'المعذرة، حصل خطأ ما.',
41
+ invalid_captcha: 'حل سؤال التحدي للتحقق من أنك لست روبوت.',
42
+ invalid_recaptcha: 'حدد مربع الاختيار للتحقق من أنك لست روبوتًا.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'كلمة المرور غير صالحة.',
package/lib/i18n/az.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'E-poçt düzgün deyil',
39
39
  'bad.phone_number': 'Telefon nömrəsi düzgün deyil',
40
- 'lock.fallback': 'Üzr istəyirik, səhv oldu'
40
+ 'lock.fallback': 'Üzr istəyirik, səhv oldu',
41
+ invalid_captcha: 'Daxil etdiyiniz mətn səhv idi. <br /> Lütfən, yenidən cəhd edin.',
42
+ invalid_recaptcha: 'Robot olmadığınızı təsdiqləmək üçün onay qutusunu seçin.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'Şifrə yanlışdır.',
package/lib/i18n/bg.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'Имейлът е невалиден',
39
39
  'bad.phone_number': 'Телефонният номер е невалиден',
40
- 'lock.fallback': 'Съжаляваме, възникна грешка'
40
+ 'lock.fallback': 'Съжаляваме, възникна грешка',
41
+ invalid_captcha: 'Решете задачата, за да се уверим, че не сте робот.',
42
+ invalid_recaptcha: 'Поставете отметка, за да се уверим, че не сте робот.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'Паролата е невалидна.',
package/lib/i18n/ca.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': "L'adreça de correu no és vàlida",
39
39
  'bad.phone_number': 'El número de telèfon no és vàlid',
40
- 'lock.fallback': 'Quelcom ha fet fallida'
40
+ 'lock.fallback': 'Quelcom ha fet fallida',
41
+ invalid_captcha: 'Resoleu la pregunta de desafiament per verificar que no sou un robot.',
42
+ invalid_recaptcha: 'Seleccioneu la casella de verificació per verificar que no sou un robot.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'La contrasenya no és vàlida.',
package/lib/i18n/cs.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'E-mail je neplatný',
39
39
  'bad.phone_number': 'Telefonní číslo je neplatné',
40
- 'lock.fallback': 'Je nám líto, něco se pokazilo'
40
+ 'lock.fallback': 'Je nám líto, něco se pokazilo',
41
+ invalid_captcha: 'Vyřešte úlohu, abychom ověřili, že nejste robot.',
42
+ invalid_recaptcha: 'Zaškrtněte políčko, abychom ověřili, že nejste robot.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'Heslo je neplatné.',
package/lib/i18n/da.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'Denne e-mail er ugyldig',
39
39
  'bad.phone_number': 'Dette telefonnummer er ugyldigt',
40
- 'lock.fallback': 'Vi beklager, men der skete en fejl'
40
+ 'lock.fallback': 'Vi beklager, men der skete en fejl',
41
+ invalid_captcha: 'Løs udfordringsspørgsmålet for at kontrollere, at du ikke er en robot.',
42
+ invalid_recaptcha: 'Marker afkrydsningsfeltet for at kontrollere, at du ikke er en robot.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'Adgangskoden er ugyldigt',
package/lib/i18n/de.js CHANGED
@@ -35,7 +35,9 @@ var _default = {
35
35
  passwordless: {
36
36
  'bad.email': 'Diese E-Mail-Adresse ist ungültig',
37
37
  'bad.phone_number': 'Diese Telefonnummer ist ungültig',
38
- 'lock.fallback': 'Es tut uns leid, etwas ist schiefgelaufen.'
38
+ 'lock.fallback': 'Es tut uns leid, etwas ist schiefgelaufen.',
39
+ invalid_captcha: 'Lösen Sie die Herausforderungsfrage, um sicherzustellen, dass Sie kein Roboter sind.',
40
+ invalid_recaptcha: 'Aktivieren Sie das Kontrollkästchen, um sicherzustellen, dass Sie kein Roboter sind.'
39
41
  },
40
42
  signUp: {
41
43
  invalid_password: 'Passwort ist ungültig.',
package/lib/i18n/el.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'Το email δεν είναι έγκυρο',
39
39
  'bad.phone_number': 'Ο αριθμός τηλεφώνου δεν είναι έγκυρος',
40
- 'lock.fallback': 'Λυπούμαστε, κάτι πήγε στραβά'
40
+ 'lock.fallback': 'Λυπούμαστε, κάτι πήγε στραβά',
41
+ invalid_captcha: 'Λύστε την ερώτηση πρόκλησης για να επιβεβαιώσετε ότι δεν είστε ρομπότ.',
42
+ invalid_recaptcha: 'Επιλέξτε το πλαίσιο ελέγχου για να επαληθεύσετε ότι δεν είστε ρομπότ.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'Ο κωδικός δεν είναι έγκυρος.',
package/lib/i18n/en.js CHANGED
@@ -36,7 +36,9 @@ var _default = {
36
36
  passwordless: {
37
37
  'bad.email': 'The email is invalid',
38
38
  'bad.phone_number': 'The phone number is invalid',
39
- 'lock.fallback': "We're sorry, something went wrong"
39
+ 'lock.fallback': "We're sorry, something went wrong",
40
+ invalid_captcha: 'Solve the challenge question to verify you are not a robot.',
41
+ invalid_recaptcha: 'Select the checkbox to verify you are not a robot.'
40
42
  },
41
43
  signUp: {
42
44
  invalid_password: 'Password is invalid.',
package/lib/i18n/es.js CHANGED
@@ -35,7 +35,9 @@ var _default = {
35
35
  passwordless: {
36
36
  'bad.email': 'Correo inválido',
37
37
  'bad.phone_number': 'Teléfono inválido',
38
- 'lock.fallback': 'Ocurrió un error durante el envío'
38
+ 'lock.fallback': 'Ocurrió un error durante el envío',
39
+ invalid_captcha: 'El texto ingresado es incorrecto. <br /> Por favor, vuelva a intentarlo.',
40
+ invalid_recaptcha: 'Seleccione la casilla de verificación para verificar que no es un robot.'
39
41
  },
40
42
  signUp: {
41
43
  invalid_password: 'La contraseña es inválida.',
package/lib/i18n/et.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'Vigane e-mail',
39
39
  'bad.phone_number': 'Vigane telefoninumber',
40
- 'lock.fallback': 'Vabandame, midagi läks valesti.'
40
+ 'lock.fallback': 'Vabandame, midagi läks valesti.',
41
+ invalid_captcha: 'Lahendage väljakutseküsimus ja veenduge, et te pole robot.',
42
+ invalid_recaptcha: 'Valige märkeruut, et kontrollida, kas te pole robot.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'Parool on vigane.',
package/lib/i18n/fa.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'ایمیل نا معتبر است.',
39
39
  'bad.phone_number': 'شماره تلفن نامعتبر است.',
40
- 'lock.fallback': 'متاسفیم ، خطایی رخ داده است.'
40
+ 'lock.fallback': 'متاسفیم ، خطایی رخ داده است.',
41
+ invalid_captcha: 'حل مسئله چالش برای تأیید اینکه ربات نیستید.',
42
+ invalid_recaptcha: 'کادر تأیید را انتخاب کنید تا تأیید کنید که روبات نیستید.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'رمز نامعتبر است.',
package/lib/i18n/fi.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'Sähköposti ei kelpaa',
39
39
  'bad.phone_number': 'Puhelinnumero ei kelpaa',
40
- 'lock.fallback': 'Olemme pahoillamme, jotain meni vikaan'
40
+ 'lock.fallback': 'Olemme pahoillamme, jotain meni vikaan',
41
+ invalid_captcha: 'Ratkaise haastekysymys varmistaaksesi, että et ole robotti.',
42
+ invalid_recaptcha: 'Valitse valintaruutu varmistaaksesi, että et ole robotti.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'Salasana ei kelpaa.',
package/lib/i18n/fr.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'L’adresse de messagerie n’est pas valide',
39
39
  'bad.phone_number': 'Le numéro de téléphone n’est pas valide',
40
- 'lock.fallback': 'Nous sommes désolés, un problème est survenu'
40
+ 'lock.fallback': 'Nous sommes désolés, un problème est survenu',
41
+ invalid_captcha: "Résolvez la question du défi pour vérifier que vous n'êtes pas un robot.",
42
+ invalid_recaptcha: "Cochez la case pour vérifier que vous n'êtes pas un robot."
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'Le mot de passe n’est pas valide.',
package/lib/i18n/he.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'כתובת המייל אינה תקינה',
39
39
  'bad.phone_number': 'מספר הטלפון לא תקין',
40
- 'lock.fallback': 'אנו מתנצלים, משהו השתבש'
40
+ 'lock.fallback': 'אנו מתנצלים, משהו השתבש',
41
+ invalid_captcha: 'לפתור את שאלת האתגר כדי לוודא שאתה לא רובוט.',
42
+ invalid_recaptcha: 'בחר בתיבת הסימון כדי לוודא שאתה לא רובוט.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'סיסמא לא תקינה.',
package/lib/i18n/hr.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'Neispravna adresa elektroničke pošte',
39
39
  'bad.phone_number': 'Neispravan broj telefona',
40
- 'lock.fallback': 'Ispričavamo se, ali nešto je pošlo po zlu.'
40
+ 'lock.fallback': 'Ispričavamo se, ali nešto je pošlo po zlu.',
41
+ invalid_captcha: 'Riješite izazovno pitanje kako biste provjerili da niste robot.',
42
+ invalid_recaptcha: 'Označite potvrdni okvir da biste potvrdili da niste robot.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'Lozinka je neispravna.',
package/lib/i18n/hu.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'Érvénytelen e-mail cím.',
39
39
  'bad.phone_number': 'Érvénytelen telefonszám.',
40
- 'lock.fallback': 'Sajnáljuk, valami hiba történt.'
40
+ 'lock.fallback': 'Sajnáljuk, valami hiba történt.',
41
+ invalid_captcha: 'Oldja meg a kihívást, és ellenőrizze, hogy nem robot.',
42
+ invalid_recaptcha: 'Jelölje be a jelölőnégyzetet annak ellenőrzéséhez, hogy nem robot vagy-e.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'Érvénytelen jelszó.',
package/lib/i18n/id.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'Email ini tidak valid.',
39
39
  'bad.phone_number': 'Nomor telepon tidak valid.',
40
- 'lock.fallback': 'Maaf, terjadi kesalahan'
40
+ 'lock.fallback': 'Maaf, terjadi kesalahan',
41
+ invalid_captcha: 'Selesaikan pertanyaan tantangan untuk memverifikasi bahwa Anda bukan robot.',
42
+ invalid_recaptcha: 'Pilih kotak centang untuk memverifikasi bahwa Anda bukan robot.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'Kata sandi tidak valid.',
package/lib/i18n/it.js CHANGED
@@ -35,7 +35,9 @@ var _default = {
35
35
  passwordless: {
36
36
  'bad.email': "L'email non è valida",
37
37
  'bad.phone_number': 'Il numero di telefono non è valido',
38
- 'lock.fallback': 'Ci dispiace, qualcosa è andato storto'
38
+ 'lock.fallback': 'Ci dispiace, qualcosa è andato storto',
39
+ invalid_captcha: 'Risolvi la domanda di verifica per verificare che non sei un robot.',
40
+ invalid_recaptcha: 'Seleziona la casella di controllo per verificare che non sei un robot.'
39
41
  },
40
42
  signUp: {
41
43
  invalid_password: 'La password non è valida.',
package/lib/i18n/ja.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'メールアドレスが不正です',
39
39
  'bad.phone_number': '電話番号が不正です',
40
- 'lock.fallback': '申し訳ございません。エラーが発生しました。'
40
+ 'lock.fallback': '申し訳ございません。エラーが発生しました。',
41
+ invalid_captcha: 'チャレンジ質問を解いて、ロボットではないことを確認してください。',
42
+ invalid_recaptcha: 'チェックボックスを選択して、ロボットでないことを確認します。'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'パスワードが不正です。',
package/lib/i18n/ko.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': '이메일 주소가 유효하지 않습니다',
39
39
  'bad.phone_number': '전화번호가 유효하지 않습니다',
40
- 'lock.fallback': '죄송합니다. 오류가 발생하였습니다'
40
+ 'lock.fallback': '죄송합니다. 오류가 발생하였습니다',
41
+ invalid_captcha: '로봇이 아닌 사람인지 확인하기 위해 챌린지 질문을 해결하십시오.',
42
+ invalid_recaptcha: '로봇이 아닌지 확인하려면 확인란을 선택하십시오.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: '비밀번호가 유효하지 않습니다.',
package/lib/i18n/lt.js CHANGED
@@ -37,7 +37,9 @@ var _default = {
37
37
  passwordless: {
38
38
  'bad.email': 'Neteisingas el.pašto adresas',
39
39
  'bad.phone_number': 'Neteisingas telefono numeris',
40
- 'lock.fallback': 'Atsiprašome, įvyko netikėta klaida.'
40
+ 'lock.fallback': 'Atsiprašome, įvyko netikėta klaida.',
41
+ invalid_captcha: 'Išspręskite iššūkio klausimą ir įsitikinkite, kad nesate robotas.',
42
+ invalid_recaptcha: 'Pažymėkite žymimąjį laukelį, kad patikrintumėte, ar nesate robotas.'
41
43
  },
42
44
  signUp: {
43
45
  invalid_password: 'Slaptažodis neteisingas.',