auth0-lock 11.35.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 (240) hide show
  1. package/.browserslistrc +1 -0
  2. package/.circleci/config.yml +3 -1
  3. package/.shiprc +4 -5
  4. package/CHANGELOG.md +25 -0
  5. package/DEVELOPMENT.md +1 -1
  6. package/README.md +20 -16
  7. package/karma.conf.js +1 -1
  8. package/lib/CSSCore.js +1 -4
  9. package/lib/__tests__/auth_button.js +12 -22
  10. package/lib/__tests__/connection/database/actions.js +48 -49
  11. package/lib/__tests__/connection/database/index.js +22 -28
  12. package/lib/__tests__/connection/database/login_pane.js +24 -47
  13. package/lib/__tests__/connection/database/password_reset_confirmation.js +23 -32
  14. package/lib/__tests__/connection/database/reset_password.js +17 -39
  15. package/lib/__tests__/connection/database/signed_up_confirmation.js +23 -32
  16. package/lib/__tests__/connection/enterprise/actions.js +22 -47
  17. package/lib/__tests__/connection/enterprise/hrd_pane.js +16 -33
  18. package/lib/__tests__/connection/enterprise/hrd_screen.js +26 -40
  19. package/lib/__tests__/connection/enterprise/quick_auth_screen.js +32 -75
  20. package/lib/__tests__/connection/passwordless/ask_vcode.js +29 -51
  21. package/lib/__tests__/connection/passwordless/email_sent_confirmation.js +23 -32
  22. package/lib/__tests__/connection/passwordless/passwordless.js +35 -97
  23. package/lib/__tests__/core/actions.js +23 -46
  24. package/lib/__tests__/core/client/index.js +10 -13
  25. package/lib/__tests__/core/index.js +46 -94
  26. package/lib/__tests__/core/remote_data.js +14 -20
  27. package/lib/__tests__/core/signed_in_confirmation.js +23 -32
  28. package/lib/__tests__/core/sso/last_login_screen.js +27 -50
  29. package/lib/__tests__/core/tenant.js +10 -12
  30. package/lib/__tests__/core/web_api/helper.js +6 -14
  31. package/lib/__tests__/core/web_api/p2_api.js +38 -33
  32. package/lib/__tests__/core/web_api.js +37 -33
  33. package/lib/__tests__/engine/classic/login.js +20 -41
  34. package/lib/__tests__/engine/classic/mfa_login_screen.js +6 -19
  35. package/lib/__tests__/engine/classic/sign_up_pane.js +33 -55
  36. package/lib/__tests__/engine/classic/sign_up_screen.js +18 -45
  37. package/lib/__tests__/engine/classic.js +13 -6
  38. package/lib/__tests__/engine/passwordless/social_or_email_login_screen.js +7 -28
  39. package/lib/__tests__/engine/passwordless/social_or_phone_number_login_screen.js +7 -28
  40. package/lib/__tests__/engine/passwordless.js +2 -5
  41. package/lib/__tests__/field/captcha/recaptcha_enterprise.js +27 -27
  42. package/lib/__tests__/field/captcha/recaptchav2.js +27 -27
  43. package/lib/__tests__/field/captcha.js +39 -51
  44. package/lib/__tests__/field/custom_input.js +23 -47
  45. package/lib/__tests__/field/email.js +2 -3
  46. package/lib/__tests__/field/email_pane.js +25 -48
  47. package/lib/__tests__/field/field.js +9 -13
  48. package/lib/__tests__/field/login_pane.js +30 -34
  49. package/lib/__tests__/field/mfa_code_pane.js +13 -28
  50. package/lib/__tests__/field/option_selection_pane.js +7 -25
  51. package/lib/__tests__/field/password.js +6 -12
  52. package/lib/__tests__/field/password_pane.js +29 -46
  53. package/lib/__tests__/field/phone_number_pane.js +18 -41
  54. package/lib/__tests__/field/social_buttons_pane.js +30 -47
  55. package/lib/__tests__/field/username.js +27 -48
  56. package/lib/__tests__/field/username_pane.js +30 -47
  57. package/lib/__tests__/field/vcode.js +5 -13
  58. package/lib/__tests__/field/vcode_pane.js +20 -44
  59. package/lib/__tests__/i18n.js +28 -53
  60. package/lib/__tests__/quick-auth/actions.js +4 -27
  61. package/lib/__tests__/setup-tests.js +7 -9
  62. package/lib/__tests__/testUtils.js +41 -58
  63. package/lib/__tests__/ui/box/chrome.js +24 -49
  64. package/lib/__tests__/ui/box/confirmation_pane.js +23 -42
  65. package/lib/__tests__/ui/box/container.js +21 -46
  66. package/lib/__tests__/ui/box/global_message.js +60 -37
  67. package/lib/__tests__/ui/input/email_input.js +6 -17
  68. package/lib/__tests__/ui/input/input_wrap.js +6 -19
  69. package/lib/__tests__/ui/input/password/password_strength.js +13 -15
  70. package/lib/__tests__/ui/input/password_input.js +22 -27
  71. package/lib/__tests__/utils/format.js +10 -17
  72. package/lib/__tests__/utils/url_utils.js +2 -5
  73. package/lib/avatar/gravatar_provider.js +13 -28
  74. package/lib/avatar.js +22 -41
  75. package/lib/browser.js +372 -23
  76. package/lib/connection/captcha.js +15 -34
  77. package/lib/connection/database/actions.js +39 -108
  78. package/lib/connection/database/index.js +90 -191
  79. package/lib/connection/database/login_pane.js +107 -147
  80. package/lib/connection/database/login_sign_up_tabs.js +106 -125
  81. package/lib/connection/database/mfa_pane.js +50 -69
  82. package/lib/connection/database/password_reset_confirmation.js +51 -73
  83. package/lib/connection/database/reset_password.js +116 -132
  84. package/lib/connection/database/reset_password_pane.js +45 -56
  85. package/lib/connection/database/sign_up_terms.js +17 -23
  86. package/lib/connection/database/signed_up_confirmation.js +52 -75
  87. package/lib/connection/enterprise/actions.js +23 -52
  88. package/lib/connection/enterprise/hrd_pane.js +60 -76
  89. package/lib/connection/enterprise/hrd_screen.js +60 -75
  90. package/lib/connection/enterprise/kerberos_screen.js +46 -60
  91. package/lib/connection/enterprise/quick_auth_screen.js +46 -64
  92. package/lib/connection/enterprise/single_sign_on_notice.js +14 -26
  93. package/lib/connection/enterprise.js +51 -84
  94. package/lib/connection/passwordless/actions.js +29 -65
  95. package/lib/connection/passwordless/ask_vcode.js +53 -60
  96. package/lib/connection/passwordless/email_sent_confirmation.js +129 -179
  97. package/lib/connection/passwordless/index.js +36 -68
  98. package/lib/connection/social/index.js +12 -15
  99. package/lib/core/actions.js +33 -85
  100. package/lib/core/client/index.js +38 -58
  101. package/lib/core/client/settings.js +12 -20
  102. package/lib/core/error_screen.js +38 -52
  103. package/lib/core/index.js +154 -305
  104. package/lib/core/loading_screen.js +61 -71
  105. package/lib/core/pane_separator.js +10 -10
  106. package/lib/core/remote_data.js +30 -51
  107. package/lib/core/screen.js +85 -79
  108. package/lib/core/signed_in_confirmation.js +51 -73
  109. package/lib/core/sso/data.js +9 -17
  110. package/lib/core/sso/index.js +5 -6
  111. package/lib/core/sso/last_login_screen.js +46 -63
  112. package/lib/core/tenant/index.js +37 -59
  113. package/lib/core/tenant/settings.js +11 -15
  114. package/lib/core/web_api/helper.js +22 -28
  115. package/lib/core/web_api/p2_api.js +162 -171
  116. package/lib/core/web_api.js +106 -94
  117. package/lib/core.js +126 -160
  118. package/lib/engine/classic/login.js +92 -144
  119. package/lib/engine/classic/mfa_login_screen.js +61 -67
  120. package/lib/engine/classic/sign_up_pane.js +89 -123
  121. package/lib/engine/classic/sign_up_screen.js +112 -158
  122. package/lib/engine/classic.js +122 -183
  123. package/lib/engine/passwordless/social_or_email_login_screen.js +80 -116
  124. package/lib/engine/passwordless/social_or_phone_number_login_screen.js +79 -110
  125. package/lib/engine/passwordless.js +75 -104
  126. package/lib/field/actions.js +11 -17
  127. package/lib/field/captcha/captcha_pane.js +83 -103
  128. package/lib/field/captcha/recaptcha.js +140 -145
  129. package/lib/field/captcha.js +7 -10
  130. package/lib/field/custom_input.js +37 -50
  131. package/lib/field/email/email_pane.js +90 -109
  132. package/lib/field/email.js +17 -35
  133. package/lib/field/index.js +50 -87
  134. package/lib/field/mfa-code/mfa_code_pane.js +57 -71
  135. package/lib/field/mfa_code.js +15 -21
  136. package/lib/field/option_selection_pane.js +16 -22
  137. package/lib/field/password/password_pane.js +79 -91
  138. package/lib/field/password.js +8 -14
  139. package/lib/field/phone-number/locations.js +7 -3
  140. package/lib/field/phone-number/phone_number_pane.js +87 -124
  141. package/lib/field/phone_number.js +16 -30
  142. package/lib/field/social/event.js +9 -12
  143. package/lib/field/social/social_buttons_pane.js +93 -121
  144. package/lib/field/username/username_pane.js +105 -123
  145. package/lib/field/username.js +16 -26
  146. package/lib/field/vcode/vcode_pane.js +67 -93
  147. package/lib/field/vcode.js +5 -5
  148. package/lib/i18n/af.js +7 -4
  149. package/lib/i18n/ar.js +7 -4
  150. package/lib/i18n/az.js +7 -4
  151. package/lib/i18n/bg.js +7 -4
  152. package/lib/i18n/ca.js +7 -4
  153. package/lib/i18n/cs.js +7 -4
  154. package/lib/i18n/da.js +7 -4
  155. package/lib/i18n/de.js +7 -3
  156. package/lib/i18n/el.js +7 -4
  157. package/lib/i18n/en.js +9 -4
  158. package/lib/i18n/es.js +7 -3
  159. package/lib/i18n/et.js +7 -4
  160. package/lib/i18n/fa.js +7 -4
  161. package/lib/i18n/fi.js +7 -4
  162. package/lib/i18n/fr.js +7 -4
  163. package/lib/i18n/he.js +7 -4
  164. package/lib/i18n/hr.js +7 -4
  165. package/lib/i18n/hu.js +7 -4
  166. package/lib/i18n/id.js +7 -4
  167. package/lib/i18n/it.js +7 -3
  168. package/lib/i18n/ja.js +7 -4
  169. package/lib/i18n/ko.js +7 -4
  170. package/lib/i18n/lt.js +7 -4
  171. package/lib/i18n/lv.js +7 -4
  172. package/lib/i18n/ms.js +7 -4
  173. package/lib/i18n/nb.js +7 -4
  174. package/lib/i18n/nl.js +7 -4
  175. package/lib/i18n/nn.js +7 -4
  176. package/lib/i18n/no.js +7 -4
  177. package/lib/i18n/pl.js +7 -4
  178. package/lib/i18n/pt-br.js +7 -3
  179. package/lib/i18n/pt.js +7 -4
  180. package/lib/i18n/ro.js +7 -4
  181. package/lib/i18n/ru.js +7 -4
  182. package/lib/i18n/sk.js +7 -4
  183. package/lib/i18n/sl.js +7 -4
  184. package/lib/i18n/sr.js +7 -4
  185. package/lib/i18n/sv.js +7 -4
  186. package/lib/i18n/tr.js +7 -4
  187. package/lib/i18n/ua.js +7 -4
  188. package/lib/i18n/uk.js +7 -4
  189. package/lib/i18n/vi.js +7 -4
  190. package/lib/i18n/zh-tw.js +7 -4
  191. package/lib/i18n/zh.js +7 -4
  192. package/lib/i18n.js +38 -75
  193. package/lib/index.js +14 -17
  194. package/lib/lock.js +29 -32
  195. package/lib/passwordless.js +29 -31
  196. package/lib/quick-auth/actions.js +19 -26
  197. package/lib/quick_auth.js +8 -10
  198. package/lib/sanitizer.js +5 -5
  199. package/lib/store/index.js +22 -42
  200. package/lib/sync.js +21 -42
  201. package/lib/ui/box/button.js +85 -105
  202. package/lib/ui/box/chrome.js +463 -548
  203. package/lib/ui/box/confirmation_pane.js +34 -48
  204. package/lib/ui/box/container.js +305 -339
  205. package/lib/ui/box/global_message.js +51 -60
  206. package/lib/ui/box/header.js +155 -177
  207. package/lib/ui/box/multisize_slide.js +233 -229
  208. package/lib/ui/box/success_pane.js +34 -37
  209. package/lib/ui/box.js +88 -93
  210. package/lib/ui/button/auth_button.js +44 -51
  211. package/lib/ui/input/captcha_input.js +162 -181
  212. package/lib/ui/input/checkbox_input.js +57 -59
  213. package/lib/ui/input/email_input.js +117 -124
  214. package/lib/ui/input/input_wrap.js +65 -80
  215. package/lib/ui/input/location_input.js +130 -150
  216. package/lib/ui/input/mfa_code_input.js +98 -98
  217. package/lib/ui/input/password/password_strength.js +103 -127
  218. package/lib/ui/input/password_input.js +141 -147
  219. package/lib/ui/input/phone_number_input.js +101 -109
  220. package/lib/ui/input/select_input.js +120 -132
  221. package/lib/ui/input/text_input.js +89 -84
  222. package/lib/ui/input/username_input.js +109 -115
  223. package/lib/ui/input/vcode_input.js +110 -118
  224. package/lib/ui/list.js +224 -247
  225. package/lib/ui/pane/quick_auth_pane.js +55 -80
  226. package/lib/utils/atom.js +55 -48
  227. package/lib/utils/cache.js +54 -43
  228. package/lib/utils/cdn_utils.js +17 -31
  229. package/lib/utils/createRef.js +3 -1
  230. package/lib/utils/data_utils.js +10 -16
  231. package/lib/utils/fn_utils.js +5 -4
  232. package/lib/utils/format.js +6 -8
  233. package/lib/utils/id_utils.js +4 -3
  234. package/lib/utils/jsonp_utils.js +20 -17
  235. package/lib/utils/media_utils.js +4 -2
  236. package/lib/utils/preload_utils.js +4 -3
  237. package/lib/utils/string_utils.js +4 -4
  238. package/lib/utils/url_utils.js +4 -3
  239. package/package.json +48 -34
  240. package/webpack.config.js +36 -3
@@ -1,222 +1,179 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- exports.__esModule = true;
4
- exports.initDatabase = initDatabase;
5
- exports.overrideDatabaseOptions = overrideDatabaseOptions;
6
- exports.defaultDatabaseConnection = defaultDatabaseConnection;
7
- exports.defaultDatabaseConnectionName = defaultDatabaseConnectionName;
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.additionalSignUpFields = additionalSignUpFields;
8
+ exports.authWithUsername = authWithUsername;
9
+ exports.availableScreens = availableScreens;
8
10
  exports.databaseConnection = databaseConnection;
9
11
  exports.databaseConnectionName = databaseConnectionName;
10
- exports.forgotPasswordLink = forgotPasswordLink;
11
- exports.signUpLink = signUpLink;
12
- exports.setScreen = setScreen;
13
- exports.getScreen = getScreen;
14
- exports.availableScreens = availableScreens;
15
- exports.getInitialScreen = getInitialScreen;
16
- exports.hasInitialScreen = hasInitialScreen;
17
12
  exports.databaseConnectionRequiresUsername = databaseConnectionRequiresUsername;
18
- exports.databaseUsernameStyle = databaseUsernameStyle;
19
13
  exports.databaseLogInWithEmail = databaseLogInWithEmail;
14
+ exports.databaseUsernameStyle = databaseUsernameStyle;
20
15
  exports.databaseUsernameValue = databaseUsernameValue;
21
- exports.authWithUsername = authWithUsername;
16
+ exports.defaultDatabaseConnection = defaultDatabaseConnection;
17
+ exports.defaultDatabaseConnectionName = defaultDatabaseConnectionName;
18
+ exports.forgotPasswordLink = forgotPasswordLink;
19
+ exports.getInitialScreen = getInitialScreen;
20
+ exports.getScreen = getScreen;
21
+ exports.hasInitialScreen = hasInitialScreen;
22
22
  exports.hasScreen = hasScreen;
23
- exports.shouldAutoLogin = shouldAutoLogin;
23
+ exports.initDatabase = initDatabase;
24
+ exports.mustAcceptTerms = mustAcceptTerms;
25
+ exports.overrideDatabaseOptions = overrideDatabaseOptions;
24
26
  exports.passwordStrengthPolicy = passwordStrengthPolicy;
25
- exports.additionalSignUpFields = additionalSignUpFields;
27
+ exports.resolveAdditionalSignUpFields = resolveAdditionalSignUpFields;
28
+ exports.setScreen = setScreen;
29
+ exports.shouldAutoLogin = shouldAutoLogin;
26
30
  exports.showTerms = showTerms;
27
31
  exports.signUpFieldsStrictValidation = signUpFieldsStrictValidation;
28
32
  exports.signUpHideUsernameField = signUpHideUsernameField;
29
- exports.mustAcceptTerms = mustAcceptTerms;
33
+ exports.signUpLink = signUpLink;
30
34
  exports.termsAccepted = termsAccepted;
31
35
  exports.toggleTermsAcceptance = toggleTermsAcceptance;
32
- exports.resolveAdditionalSignUpFields = resolveAdditionalSignUpFields;
33
-
34
- var _immutable = require('immutable');
35
-
36
- var _immutable2 = _interopRequireDefault(_immutable);
37
-
38
- var _index = require('../../core/index');
39
-
40
- var l = _interopRequireWildcard(_index);
41
-
42
- var _index2 = require('../../field/index');
43
-
44
- var _data_utils = require('../../utils/data_utils');
45
-
46
- var _sync = require('../../sync');
47
-
48
- var _sync2 = _interopRequireDefault(_sync);
49
-
50
- var _trim = require('trim');
51
-
52
- var _trim2 = _interopRequireDefault(_trim);
53
-
54
- var _tenant = require('../../core/tenant');
55
-
56
- var _enterprise = require('../../connection/enterprise');
57
-
58
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
59
-
36
+ var _immutable = _interopRequireWildcard(require("immutable"));
37
+ var l = _interopRequireWildcard(require("../../core/index"));
38
+ var _index2 = require("../../field/index");
39
+ var _data_utils = require("../../utils/data_utils");
40
+ var _sync = _interopRequireDefault(require("../../sync"));
41
+ var _trim = _interopRequireDefault(require("trim"));
42
+ var _tenant = require("../../core/tenant");
43
+ var _enterprise = require("../../connection/enterprise");
60
44
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
61
-
45
+ 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); }
46
+ 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; }
62
47
  var _dataFns = (0, _data_utils.dataFns)(['database']),
63
- get = _dataFns.get,
64
- initNS = _dataFns.initNS,
65
- tget = _dataFns.tget,
66
- tset = _dataFns.tset;
67
-
48
+ get = _dataFns.get,
49
+ initNS = _dataFns.initNS,
50
+ tget = _dataFns.tget,
51
+ tset = _dataFns.tset;
68
52
  function initDatabase(m, options) {
69
- m = initNS(m, _immutable2.default.fromJS(processDatabaseOptions(options)));
53
+ m = initNS(m, _immutable.default.fromJS(processDatabaseOptions(options)));
70
54
  m = resolveAdditionalSignUpFields(m);
71
55
  return m;
72
56
  }
73
-
74
57
  function assertMaybeBoolean(opts, name) {
75
58
  var valid = opts[name] === undefined || typeof opts[name] === 'boolean';
76
- if (!valid) l.warn(opts, 'The `' + name + '` option will be ignored, because it is not a boolean.');
59
+ if (!valid) l.warn(opts, "The `".concat(name, "` option will be ignored, because it is not a boolean."));
77
60
  return valid;
78
61
  }
79
-
80
62
  function assertMaybeEnum(opts, name, a) {
81
63
  var valid = opts[name] === undefined || a.indexOf(opts[name]) > -1;
82
- if (!valid) l.warn(opts, 'The `' + name + '` option will be ignored, because it is not one of the following allowed values: ' + a.map(function (x) {
64
+ if (!valid) l.warn(opts, "The `".concat(name, "` option will be ignored, because it is not one of the following allowed values: ").concat(a.map(function (x) {
83
65
  return JSON.stringify(x);
84
- }).join(', ') + '.');
66
+ }).join(', '), "."));
85
67
  return valid;
86
68
  }
87
-
88
69
  function assertMaybeString(opts, name) {
89
- var valid = opts[name] === undefined || typeof opts[name] === 'string' && (0, _trim2.default)(opts[name]).length > 0;
90
- if (!valid) l.warn(opts, 'The `' + name + '` option will be ignored, because it is not a non-empty string.');
70
+ var valid = opts[name] === undefined || typeof opts[name] === 'string' && (0, _trim.default)(opts[name]).length > 0;
71
+ if (!valid) l.warn(opts, "The `".concat(name, "` option will be ignored, because it is not a non-empty string."));
91
72
  return valid;
92
73
  }
93
-
94
74
  function assertMaybeArray(opts, name) {
95
75
  var valid = opts[name] === undefined || window.Array.isArray(opts[name]);
96
- if (!valid) l.warn(opts, 'The `' + name + '` option will be ignored, because it is not an array.');
76
+ if (!valid) l.warn(opts, "The `".concat(name, "` option will be ignored, because it is not an array."));
97
77
  return valid;
98
78
  }
99
-
100
79
  function processDatabaseOptions(opts) {
101
80
  var additionalSignUpFields = opts.additionalSignUpFields,
102
- defaultDatabaseConnection = opts.defaultDatabaseConnection,
103
- forgotPasswordLink = opts.forgotPasswordLink,
104
- loginAfterSignUp = opts.loginAfterSignUp,
105
- mustAcceptTerms = opts.mustAcceptTerms,
106
- showTerms = opts.showTerms,
107
- signUpLink = opts.signUpLink,
108
- usernameStyle = opts.usernameStyle,
109
- signUpFieldsStrictValidation = opts.signUpFieldsStrictValidation,
110
- signUpHideUsernameField = opts.signUpHideUsernameField;
111
-
81
+ defaultDatabaseConnection = opts.defaultDatabaseConnection,
82
+ forgotPasswordLink = opts.forgotPasswordLink,
83
+ loginAfterSignUp = opts.loginAfterSignUp,
84
+ mustAcceptTerms = opts.mustAcceptTerms,
85
+ showTerms = opts.showTerms,
86
+ signUpLink = opts.signUpLink,
87
+ usernameStyle = opts.usernameStyle,
88
+ signUpFieldsStrictValidation = opts.signUpFieldsStrictValidation,
89
+ signUpHideUsernameField = opts.signUpHideUsernameField;
112
90
  var _processScreenOptions = processScreenOptions(opts),
113
- initialScreen = _processScreenOptions.initialScreen,
114
- screens = _processScreenOptions.screens;
115
-
91
+ initialScreen = _processScreenOptions.initialScreen,
92
+ screens = _processScreenOptions.screens;
116
93
  if (!assertMaybeEnum(opts, 'usernameStyle', ['email', 'username'])) {
117
94
  usernameStyle = undefined;
118
95
  }
119
-
120
96
  if (!assertMaybeString(opts, 'defaultDatabaseConnection')) {
121
97
  defaultDatabaseConnection = undefined;
122
98
  }
123
-
124
99
  if (!assertMaybeString(opts, 'forgotPasswordLink')) {
125
100
  forgotPasswordLink = undefined;
126
101
  }
127
-
128
102
  if (!assertMaybeString(opts, 'signUpLink')) {
129
103
  signUpLink = undefined;
130
104
  }
131
-
132
105
  if (!assertMaybeBoolean(opts, 'mustAcceptTerms')) {
133
106
  mustAcceptTerms = undefined;
134
107
  }
135
-
136
108
  if (!assertMaybeBoolean(opts, 'showTerms')) {
137
109
  showTerms = true;
138
110
  }
139
-
140
111
  if (!assertMaybeBoolean(opts, 'signUpFieldsStrictValidation')) {
141
112
  signUpFieldsStrictValidation = false;
142
113
  }
143
-
144
114
  if (!assertMaybeBoolean(opts, 'signUpHideUsernameField')) {
145
115
  signUpHideUsernameField = false;
146
116
  }
147
-
148
117
  if (!assertMaybeArray(opts, 'additionalSignUpFields')) {
149
118
  additionalSignUpFields = undefined;
150
119
  } else if (additionalSignUpFields) {
151
120
  additionalSignUpFields = additionalSignUpFields.reduce(function (r, x) {
152
121
  var icon = x.icon,
153
- name = x.name,
154
- options = x.options,
155
- placeholder = x.placeholder,
156
- placeholderHTML = x.placeholderHTML,
157
- prefill = x.prefill,
158
- type = x.type,
159
- validator = x.validator,
160
- value = x.value,
161
- storage = x.storage;
162
-
122
+ name = x.name,
123
+ options = x.options,
124
+ placeholder = x.placeholder,
125
+ placeholderHTML = x.placeholderHTML,
126
+ prefill = x.prefill,
127
+ type = x.type,
128
+ validator = x.validator,
129
+ value = x.value,
130
+ storage = x.storage;
163
131
  var filter = true;
164
-
165
132
  var reservedNames = ['email', 'username', 'password'];
166
133
  if (typeof name != 'string' || !name.match(/^[a-zA-Z0-9_]+$/) || reservedNames.indexOf(name) > -1) {
167
- l.warn(opts, 'Ignoring an element of `additionalSignUpFields` because it does not contain valid `name` property. Every element of `additionalSignUpFields` must be an object with a `name` property that is a non-empty string consisting of letters, numbers and underscores. The following names are reserved, and therefore, cannot be used: ' + reservedNames.join(', ') + '.');
134
+ l.warn(opts, "Ignoring an element of `additionalSignUpFields` because it does not contain valid `name` property. Every element of `additionalSignUpFields` must be an object with a `name` property that is a non-empty string consisting of letters, numbers and underscores. The following names are reserved, and therefore, cannot be used: ".concat(reservedNames.join(', '), "."));
168
135
  filter = false;
169
136
  }
170
-
171
137
  if (type !== 'hidden' && (typeof placeholder != 'string' || !placeholder) && (typeof placeholderHTML != 'string' || !placeholderHTML)) {
172
- l.warn(opts, 'Ignoring an element of `additionalSignUpFields` (' + name + ') because it does not contain a valid `placeholder` or `placeholderHTML` property. Every element of `additionalSignUpFields` must have a `placeholder` or `placeholderHTML` property that is a non-empty string.');
138
+ l.warn(opts, "Ignoring an element of `additionalSignUpFields` (".concat(name, ") because it does not contain a valid `placeholder` or `placeholderHTML` property. Every element of `additionalSignUpFields` must have a `placeholder` or `placeholderHTML` property that is a non-empty string."));
173
139
  filter = false;
174
140
  }
175
-
176
141
  if (placeholderHTML && placeholder) {
177
142
  l.warn(opts, 'When provided, the `placeholderHTML` property of an element of `additionalSignUpFields` will override the `placeholder` property of that element');
178
143
  }
179
-
180
144
  if (icon != undefined && (typeof icon != 'string' || !icon)) {
181
145
  l.warn(opts, 'When provided, the `icon` property of an element of `additionalSignUpFields` must be a non-empty string.');
182
146
  icon = undefined;
183
147
  }
184
-
185
148
  if (prefill != undefined && (typeof prefill != 'string' || !prefill) && typeof prefill != 'function') {
186
149
  l.warn(opts, 'When provided, the `prefill` property of an element of `additionalSignUpFields` must be a non-empty string or a function.');
187
150
  prefill = undefined;
188
151
  }
189
-
190
152
  var types = ['select', 'text', 'checkbox', 'hidden'];
191
153
  if (type != undefined && (typeof type != 'string' || types.indexOf(type) === -1)) {
192
- l.warn(opts, 'When provided, the `type` property of an element of `additionalSignUpFields` must be one of the following strings: "' + types.join('", "') + '".');
154
+ l.warn(opts, "When provided, the `type` property of an element of `additionalSignUpFields` must be one of the following strings: \"".concat(types.join('", "'), "\"."));
193
155
  type = undefined;
194
156
  }
195
-
196
157
  if (validator != undefined && type === 'select') {
197
158
  l.warn(opts, 'Elements of `additionalSignUpFields` with a "select" `type` cannot specify a `validator` function, all of its `options` are assumed to be valid.');
198
159
  validator = undefined;
199
160
  }
200
-
201
161
  if (validator != undefined && typeof validator != 'function') {
202
162
  l.warn(opts, 'When provided, the `validator` property of an element of `additionalSignUpFields` must be a function.');
203
163
  validator = undefined;
204
164
  }
205
-
206
165
  if (options != undefined && type != 'select') {
207
166
  l.warn(opts, 'The `options` property can only by provided for an element of `additionalSignUpFields` when its `type` equals to "select"');
208
167
  options = undefined;
209
168
  }
210
-
211
169
  if (options != undefined && !window.Array.isArray(options) && typeof options != 'function' || type === 'select' && options === undefined) {
212
- l.warn(opts, 'Ignoring an element of `additionalSignUpFields` (' + name + ') because it has a "select" `type` but does not specify an `options` property that is an Array or a function.');
170
+ l.warn(opts, "Ignoring an element of `additionalSignUpFields` (".concat(name, ") because it has a \"select\" `type` but does not specify an `options` property that is an Array or a function."));
213
171
  filter = false;
214
172
  }
215
173
  if (type === 'hidden' && !value) {
216
- l.warn(opts, 'Ignoring an element of `additionalSignUpFields` (' + name + ') because it has a "hidden" `type` but does not specify a `value` string.');
174
+ l.warn(opts, "Ignoring an element of `additionalSignUpFields` (".concat(name, ") because it has a \"hidden\" `type` but does not specify a `value` string."));
217
175
  filter = false;
218
176
  }
219
-
220
177
  return filter ? r.concat([{
221
178
  icon: icon,
222
179
  name: name,
@@ -230,8 +187,7 @@ function processDatabaseOptions(opts) {
230
187
  storage: storage
231
188
  }]) : r;
232
189
  }, []);
233
-
234
- additionalSignUpFields = _immutable2.default.fromJS(additionalSignUpFields).map(function (x) {
190
+ additionalSignUpFields = _immutable.default.fromJS(additionalSignUpFields).map(function (x) {
235
191
  return x.filter(function (y) {
236
192
  return y !== undefined;
237
193
  });
@@ -241,7 +197,6 @@ function processDatabaseOptions(opts) {
241
197
  // TODO: add a warning if it is not a boolean, leave it undefined,
242
198
  // and change accessor fn.
243
199
  loginAfterSignUp = loginAfterSignUp === false ? false : true;
244
-
245
200
  return (0, _immutable.Map)({
246
201
  additionalSignUpFields: additionalSignUpFields,
247
202
  defaultConnectionName: defaultDatabaseConnection,
@@ -259,7 +214,6 @@ function processDatabaseOptions(opts) {
259
214
  return typeof x !== 'undefined';
260
215
  }).toJS();
261
216
  }
262
-
263
217
  function processScreenOptions(opts) {
264
218
  var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
265
219
  allowLogin: true,
@@ -268,85 +222,67 @@ function processScreenOptions(opts) {
268
222
  initialScreen: undefined
269
223
  };
270
224
  var allowForgotPassword = opts.allowForgotPassword,
271
- allowLogin = opts.allowLogin,
272
- allowSignUp = opts.allowSignUp,
273
- initialScreen = opts.initialScreen;
274
-
275
-
225
+ allowLogin = opts.allowLogin,
226
+ allowSignUp = opts.allowSignUp,
227
+ initialScreen = opts.initialScreen;
276
228
  var screens = [];
277
-
278
229
  if (allowLogin === true || !assertMaybeBoolean(opts, 'allowLogin') && defaults.allowLogin || allowLogin === undefined && defaults.allowLogin) {
279
230
  screens.push('login');
280
231
  }
281
-
282
232
  if (allowSignUp === true || !assertMaybeBoolean(opts, 'allowSignUp') && defaults.allowSignUp || allowSignUp === undefined && defaults.allowSignUp) {
283
233
  screens.push('signUp');
284
234
  }
285
-
286
235
  if (allowForgotPassword === true || !assertMaybeBoolean(opts, 'allowForgotPassword') && defaults.allowForgotPassword || allowForgotPassword === undefined && defaults.allowForgotPassword) {
287
236
  screens.push('forgotPassword');
288
237
  }
289
-
290
238
  screens.push('mfaLogin');
291
-
292
239
  if (!assertMaybeEnum(opts, 'initialScreen', screens)) {
293
240
  initialScreen = undefined;
294
241
  }
295
-
296
242
  if (initialScreen === undefined) {
297
243
  initialScreen = defaults.initialScreen || screens[0];
298
244
  }
299
-
300
- return { initialScreen: initialScreen, screens: new _immutable.List(screens) };
245
+ return {
246
+ initialScreen: initialScreen,
247
+ screens: new _immutable.List(screens)
248
+ };
301
249
  }
302
-
303
250
  function overrideDatabaseOptions(m, opts) {
304
251
  var _processScreenOptions2 = processScreenOptions(opts, {
305
- allowLogin: availableScreens(m).contains('login'),
306
- allowSignUp: availableScreens(m).contains('signUp'),
307
- allowForgotPassword: availableScreens(m).contains('forgotPassword'),
308
- initialScreen: get(m, 'initialScreen')
309
- }),
310
- initialScreen = _processScreenOptions2.initialScreen,
311
- screens = _processScreenOptions2.screens;
312
-
252
+ allowLogin: availableScreens(m).contains('login'),
253
+ allowSignUp: availableScreens(m).contains('signUp'),
254
+ allowForgotPassword: availableScreens(m).contains('forgotPassword'),
255
+ initialScreen: get(m, 'initialScreen')
256
+ }),
257
+ initialScreen = _processScreenOptions2.initialScreen,
258
+ screens = _processScreenOptions2.screens;
313
259
  m = tset(m, 'initialScreen', initialScreen);
314
260
  m = tset(m, 'screens', screens);
315
261
  return m;
316
262
  }
317
-
318
263
  function defaultDatabaseConnection(m) {
319
264
  var name = defaultDatabaseConnectionName(m);
320
265
  return name && l.findConnection(m, name);
321
266
  }
322
-
323
267
  function defaultDatabaseConnectionName(m) {
324
268
  return get(m, 'defaultConnectionName');
325
269
  }
326
-
327
270
  function databaseConnection(m) {
328
271
  return l.resolvedConnection(m) || (0, _tenant.defaultDirectory)(m) || defaultDatabaseConnection(m) || l.connection(m, 'database');
329
272
  }
330
-
331
273
  function databaseConnectionName(m) {
332
274
  return (databaseConnection(m) || (0, _immutable.Map)()).get('name');
333
275
  }
334
-
335
276
  function forgotPasswordLink(m) {
336
277
  var notFound = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
337
-
338
278
  return get(m, 'forgotPasswordLink', notFound);
339
279
  }
340
-
341
280
  function signUpLink(m) {
342
281
  var notFound = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
343
-
344
282
  return get(m, 'signUpLink', notFound);
345
283
  }
346
-
347
284
  function setScreen(m, name) {
348
285
  var fields = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
349
-
350
286
  // TODO: the lock/index module should provide a way to clear
351
287
  // everything that needs the be cleared when changing screens, other
352
288
  // modules should not care.
@@ -354,10 +290,8 @@ function setScreen(m, name) {
354
290
  m = l.clearGlobalSuccess(m);
355
291
  m = (0, _index2.hideInvalidFields)(m, fields);
356
292
  m = (0, _index2.clearFields)(m, fields);
357
-
358
293
  return tset(m, 'screen', name);
359
294
  }
360
-
361
295
  function getScreen(m) {
362
296
  var screen = tget(m, 'screen');
363
297
  var initialScreen = getInitialScreen(m);
@@ -367,42 +301,32 @@ function getScreen(m) {
367
301
  });
368
302
  return availableScreens[0];
369
303
  }
370
-
371
304
  function availableScreens(m) {
372
305
  return tget(m, 'screens') || get(m, 'screens', new _immutable.List());
373
306
  }
374
-
375
307
  function getInitialScreen(m) {
376
308
  return tget(m, 'initialScreen') || get(m, 'initialScreen');
377
309
  }
378
-
379
310
  function hasInitialScreen(m, str) {
380
311
  return getInitialScreen(m) === str;
381
312
  }
382
-
383
313
  function databaseConnectionRequiresUsername(m) {
384
314
  return (databaseConnection(m) || (0, _immutable.Map)()).toJS().requireUsername;
385
315
  }
386
-
387
316
  function databaseUsernameStyle(m) {
388
317
  if (l.hasSomeConnections(m, 'database')) {
389
318
  if (l.connectionResolver(m)) {
390
319
  return 'username';
391
320
  }
392
-
393
321
  return databaseConnectionRequiresUsername(m) ? get(m, 'usernameStyle', 'any') : 'email';
394
322
  }
395
-
396
323
  return l.hasSomeConnections(m, 'enterprise') && (0, _enterprise.findADConnectionWithoutDomain)(m) ? 'username' : 'email';
397
324
  }
398
-
399
325
  function databaseLogInWithEmail(m) {
400
326
  return databaseUsernameStyle(m) === 'email';
401
327
  }
402
-
403
328
  function databaseUsernameValue(m) {
404
329
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
405
-
406
330
  var isEmailOnly = databaseLogInWithEmail(m);
407
331
  if (isEmailOnly) {
408
332
  return (0, _index2.getFieldValue)(m, 'email');
@@ -412,55 +336,42 @@ function databaseUsernameValue(m) {
412
336
  }
413
337
  return (0, _index2.getFieldValue)(m, 'username') || (0, _index2.getFieldValue)(m, 'email');
414
338
  }
415
-
416
339
  function authWithUsername(m) {
417
340
  return databaseConnectionRequiresUsername(m) || get(m, 'usernameStyle', 'email') === 'username';
418
341
  }
419
-
420
342
  function hasScreen(m, s) {
421
343
  var _toJS = (databaseConnection(m) || (0, _immutable.Map)()).toJS(),
422
- allowForgot = _toJS.allowForgot,
423
- allowSignup = _toJS.allowSignup;
424
-
344
+ allowForgot = _toJS.allowForgot,
345
+ allowSignup = _toJS.allowSignup;
425
346
  return !(allowForgot === false && s === 'forgotPassword') && !(allowSignup === false && s === 'signUp') && availableScreens(m).contains(s);
426
347
  }
427
-
428
348
  function shouldAutoLogin(m) {
429
349
  return get(m, 'loginAfterSignUp');
430
350
  }
431
-
432
351
  function passwordStrengthPolicy(m) {
433
352
  return (databaseConnection(m) || (0, _immutable.Map)()).get('passwordPolicy', 'none');
434
353
  }
435
-
436
354
  function additionalSignUpFields(m) {
437
355
  return get(m, 'additionalSignUpFields', (0, _immutable.List)());
438
356
  }
439
-
440
357
  function showTerms(m) {
441
358
  return get(m, 'showTerms', true);
442
359
  }
443
-
444
360
  function signUpFieldsStrictValidation(m) {
445
361
  return get(m, 'signUpFieldsStrictValidation', false);
446
362
  }
447
-
448
363
  function signUpHideUsernameField(m) {
449
364
  return get(m, 'signUpHideUsernameField', false);
450
365
  }
451
-
452
366
  function mustAcceptTerms(m) {
453
367
  return get(m, 'mustAcceptTerms', false);
454
368
  }
455
-
456
369
  function termsAccepted(m) {
457
370
  return !mustAcceptTerms(m) || tget(m, 'termsAccepted', false);
458
371
  }
459
-
460
372
  function toggleTermsAcceptance(m) {
461
373
  return tset(m, 'termsAccepted', !termsAccepted(m));
462
374
  }
463
-
464
375
  function resolveAdditionalSignUpFields(m) {
465
376
  return additionalSignUpFields(m).reduce(function (r, x) {
466
377
  switch (x.get('type')) {
@@ -473,22 +384,18 @@ function resolveAdditionalSignUpFields(m) {
473
384
  }
474
385
  }, m);
475
386
  }
476
-
477
387
  function resolveAdditionalSignUpSelectField(m, x) {
478
388
  var name = x.get('name');
479
389
  var keyNs = ['additionalSignUpField', name];
480
390
  var prefill = x.get('prefill');
481
391
  var options = x.get('options');
482
-
483
392
  var resolvedPrefill = typeof prefill === 'function' ? undefined : prefill || '';
484
393
  var resolvedOptions = typeof options === 'function' ? undefined : options;
485
-
486
394
  var register = function register(m) {
487
- return resolvedPrefill !== undefined && resolvedOptions !== undefined ? (0, _index2.registerOptionField)(m, name, _immutable2.default.fromJS(resolvedOptions), resolvedPrefill) : m;
395
+ return resolvedPrefill !== undefined && resolvedOptions !== undefined ? (0, _index2.registerOptionField)(m, name, _immutable.default.fromJS(resolvedOptions), resolvedPrefill) : m;
488
396
  };
489
-
490
397
  if (resolvedPrefill === undefined) {
491
- m = (0, _sync2.default)(m, keyNs.concat('prefill'), {
398
+ m = (0, _sync.default)(m, keyNs.concat('prefill'), {
492
399
  recoverResult: '',
493
400
  successFn: function successFn(m, result) {
494
401
  resolvedPrefill = result;
@@ -499,9 +406,8 @@ function resolveAdditionalSignUpSelectField(m, x) {
499
406
  }
500
407
  });
501
408
  }
502
-
503
409
  if (resolvedOptions === undefined) {
504
- m = (0, _sync2.default)(m, keyNs.concat('options'), {
410
+ m = (0, _sync.default)(m, keyNs.concat('options'), {
505
411
  successFn: function successFn(m, result) {
506
412
  resolvedOptions = result;
507
413
  return register(m);
@@ -511,24 +417,19 @@ function resolveAdditionalSignUpSelectField(m, x) {
511
417
  }
512
418
  });
513
419
  }
514
-
515
420
  if (resolvedPrefill !== undefined && resolvedOptions !== undefined) {
516
- m = (0, _index2.registerOptionField)(m, name, _immutable2.default.fromJS(resolvedOptions), resolvedPrefill);
421
+ m = (0, _index2.registerOptionField)(m, name, _immutable.default.fromJS(resolvedOptions), resolvedPrefill);
517
422
  }
518
-
519
423
  return m;
520
424
  }
521
-
522
425
  function resolveAdditionalSignUpTextField(m, x) {
523
426
  var name = x.get('name');
524
427
  var key = ['additionalSignUpField', name, 'prefill'];
525
428
  var prefill = x.get('prefill');
526
429
  var validator = x.get('validator');
527
-
528
430
  var resolvedPrefill = typeof prefill === 'function' ? undefined : prefill || '';
529
-
530
431
  if (resolvedPrefill === undefined) {
531
- m = (0, _sync2.default)(m, key, {
432
+ m = (0, _sync.default)(m, key, {
532
433
  recoverResult: '',
533
434
  successFn: function successFn(m, result) {
534
435
  return (0, _index2.setField)(m, name, result, validator);
@@ -540,10 +441,8 @@ function resolveAdditionalSignUpTextField(m, x) {
540
441
  } else {
541
442
  m = (0, _index2.setField)(m, name, resolvedPrefill, validator);
542
443
  }
543
-
544
444
  return m;
545
445
  }
546
-
547
446
  function resolveAdditionalSignUpHiddenField(m, x) {
548
447
  return (0, _index2.setField)(m, x.get('name'), x.get('value'));
549
448
  }