@firebase/auth 1.13.1 → 1.13.2-eap-crashlytics.558ee841d

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 (62) hide show
  1. package/dist/browser-cjs/{index-58b444b9.js → index-223cb6d8.js} +55 -15
  2. package/dist/browser-cjs/index-223cb6d8.js.map +1 -0
  3. package/dist/browser-cjs/index.js +1 -1
  4. package/dist/browser-cjs/internal.js +1 -1
  5. package/dist/browser-cjs/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +18 -0
  6. package/dist/browser-cjs/test/helpers/mock_loadjs.d.ts +17 -0
  7. package/dist/cordova/index.js +2 -2
  8. package/dist/cordova/internal.js +2 -2
  9. package/dist/cordova/{popup_redirect-e90e6597.js → popup_redirect-8f954bab.js} +56 -16
  10. package/dist/cordova/popup_redirect-8f954bab.js.map +1 -0
  11. package/dist/cordova/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +18 -0
  12. package/dist/cordova/test/helpers/mock_loadjs.d.ts +17 -0
  13. package/dist/esm/{index-907e9a1a.js → index-42b2f63a.js} +56 -16
  14. package/dist/esm/index-42b2f63a.js.map +1 -0
  15. package/dist/esm/index.js +1 -1
  16. package/dist/esm/internal.js +2 -2
  17. package/dist/esm/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +18 -0
  18. package/dist/esm/test/helpers/mock_loadjs.d.ts +17 -0
  19. package/dist/index.webworker.js +55 -15
  20. package/dist/index.webworker.js.map +1 -1
  21. package/dist/node/index.js +1 -1
  22. package/dist/node/internal.js +1 -1
  23. package/dist/node/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +18 -0
  24. package/dist/node/test/helpers/mock_loadjs.d.ts +17 -0
  25. package/dist/node/{totp-ec1dc837.js → totp-1de3d98e.js} +39 -5
  26. package/dist/node/totp-1de3d98e.js.map +1 -0
  27. package/dist/node-esm/index.js +1 -1
  28. package/dist/node-esm/internal.js +2 -2
  29. package/dist/node-esm/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +18 -0
  30. package/dist/node-esm/test/helpers/mock_loadjs.d.ts +17 -0
  31. package/dist/node-esm/{totp-97daafa8.js → totp-16b08ec9.js} +40 -6
  32. package/dist/node-esm/totp-16b08ec9.js.map +1 -0
  33. package/dist/rn/{index-ec5272bc.js → index-3c01bc90.js} +39 -5
  34. package/dist/rn/index-3c01bc90.js.map +1 -0
  35. package/dist/rn/index.js +1 -1
  36. package/dist/rn/internal.js +18 -12
  37. package/dist/rn/internal.js.map +1 -1
  38. package/dist/rn/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +18 -0
  39. package/dist/rn/test/helpers/mock_loadjs.d.ts +17 -0
  40. package/dist/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +18 -0
  41. package/dist/test/helpers/mock_loadjs.d.ts +17 -0
  42. package/dist/web-extension-cjs/index.js +1 -1
  43. package/dist/web-extension-cjs/internal.js +1 -1
  44. package/dist/web-extension-cjs/{register-410eef86.js → register-6a93d6fa.js} +55 -15
  45. package/dist/web-extension-cjs/register-6a93d6fa.js.map +1 -0
  46. package/dist/web-extension-cjs/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +18 -0
  47. package/dist/web-extension-cjs/test/helpers/mock_loadjs.d.ts +17 -0
  48. package/dist/web-extension-esm/index.js +2 -2
  49. package/dist/web-extension-esm/internal.js +2 -2
  50. package/dist/web-extension-esm/{register-4207f7c7.js → register-6e13f5d2.js} +56 -16
  51. package/dist/web-extension-esm/register-6e13f5d2.js.map +1 -0
  52. package/dist/web-extension-esm/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +18 -0
  53. package/dist/web-extension-esm/test/helpers/mock_loadjs.d.ts +17 -0
  54. package/package.json +6 -6
  55. package/dist/browser-cjs/index-58b444b9.js.map +0 -1
  56. package/dist/cordova/popup_redirect-e90e6597.js.map +0 -1
  57. package/dist/esm/index-907e9a1a.js.map +0 -1
  58. package/dist/node/totp-ec1dc837.js.map +0 -1
  59. package/dist/node-esm/totp-97daafa8.js.map +0 -1
  60. package/dist/rn/index-ec5272bc.js.map +0 -1
  61. package/dist/web-extension-cjs/register-410eef86.js.map +0 -1
  62. package/dist/web-extension-esm/register-4207f7c7.js.map +0 -1
@@ -3332,6 +3332,7 @@ function generateRandomAlphaNumericString(len) {
3332
3332
  /* eslint-disable @typescript-eslint/no-require-imports */
3333
3333
  const RECAPTCHA_ENTERPRISE_VERIFIER_TYPE = 'recaptcha-enterprise';
3334
3334
  const FAKE_TOKEN = 'NO_RECAPTCHA';
3335
+ const RECAPTCHA_ENTERPRISE_ONLOAD_CALLBACK_NAME = 'onFirebaseAuthREInstanceReady';
3335
3336
  class RecaptchaEnterpriseVerifier {
3336
3337
  /**
3337
3338
  *
@@ -3411,8 +3412,13 @@ class RecaptchaEnterpriseVerifier {
3411
3412
  }
3412
3413
  return new Promise((resolve, reject) => {
3413
3414
  retrieveSiteKey(this.auth)
3414
- .then(siteKey => {
3415
- if (!forceRefresh && isEnterprise(window.grecaptcha)) {
3415
+ .then(async (siteKey) => {
3416
+ if (!forceRefresh &&
3417
+ isEnterprise(window.grecaptcha) &&
3418
+ // If download has already been initiated, do not trigger another
3419
+ // download, await the promise here.
3420
+ RecaptchaEnterpriseVerifier.scriptInjectionDeferred) {
3421
+ await RecaptchaEnterpriseVerifier.scriptInjectionDeferred.promise;
3416
3422
  retrieveRecaptchaToken(siteKey, resolve, reject);
3417
3423
  }
3418
3424
  else {
@@ -3422,9 +3428,25 @@ class RecaptchaEnterpriseVerifier {
3422
3428
  }
3423
3429
  let url = _recaptchaEnterpriseScriptUrl();
3424
3430
  if (url.length !== 0) {
3425
- url += siteKey;
3431
+ url +=
3432
+ siteKey +
3433
+ `&onload=${RECAPTCHA_ENTERPRISE_ONLOAD_CALLBACK_NAME}`;
3426
3434
  }
3435
+ // Existence of deferred indicates download has been initiated.
3436
+ RecaptchaEnterpriseVerifier.scriptInjectionDeferred =
3437
+ new util.Deferred();
3438
+ /**
3439
+ * Script attached to global window object that will be called
3440
+ * when the ReCAPTCHA Enterprise instance is ready.
3441
+ * grecaptcha.ready() is not reliable when there are multiple
3442
+ * scripts on the page, and script.onload only indicates the
3443
+ * script has downloaded, not that it has initialized.
3444
+ */
3445
+ window[RECAPTCHA_ENTERPRISE_ONLOAD_CALLBACK_NAME] = () => {
3446
+ RecaptchaEnterpriseVerifier.scriptInjectionDeferred?.resolve();
3447
+ };
3427
3448
  _loadJS(url)
3449
+ .then(() => RecaptchaEnterpriseVerifier.scriptInjectionDeferred?.promise)
3428
3450
  .then(() => {
3429
3451
  retrieveRecaptchaToken(siteKey, resolve, reject);
3430
3452
  })
@@ -3439,6 +3461,18 @@ class RecaptchaEnterpriseVerifier {
3439
3461
  });
3440
3462
  }
3441
3463
  }
3464
+ /**
3465
+ * Deferred that resolves when script tag has been injected onto the page
3466
+ * and the script is ready (grecaptcha.ready() and script.onload are not
3467
+ * reliable indicators, so this resolves when the global
3468
+ * `window[RECAPTCHA_ENTERPRISE_ONLOAD_CALLBACK_NAME]()` callback provided to the recaptcha url param "onload"
3469
+ * is triggered).
3470
+ * As a static variable this is applied to all instances of the class.
3471
+ * This will cause an error if users try to create multiple RecaptchaVerifiers
3472
+ * with different Recaptcha Enterprise sitekeys, which should be an
3473
+ * unuspported use case.
3474
+ */
3475
+ RecaptchaEnterpriseVerifier.scriptInjectionDeferred = null;
3442
3476
  async function injectRecaptchaFields(auth, request, action, isCaptchaResp = false, isFakeToken = false) {
3443
3477
  const verifier = new RecaptchaEnterpriseVerifier(auth);
3444
3478
  let captchaResponse;
@@ -7219,7 +7253,7 @@ function multiFactor(user) {
7219
7253
  }
7220
7254
 
7221
7255
  var name = "@firebase/auth";
7222
- var version = "1.13.1";
7256
+ var version = "1.13.2-eap-crashlytics.558ee841d";
7223
7257
 
7224
7258
  /**
7225
7259
  * @license
@@ -8674,4 +8708,4 @@ exports.useDeviceLanguage = useDeviceLanguage;
8674
8708
  exports.validatePassword = validatePassword;
8675
8709
  exports.verifyBeforeUpdateEmail = verifyBeforeUpdateEmail;
8676
8710
  exports.verifyPasswordResetCode = verifyPasswordResetCode;
8677
- //# sourceMappingURL=index-ec5272bc.js.map
8711
+ //# sourceMappingURL=index-3c01bc90.js.map