@firebase/auth 0.21.6 → 0.22.0-canary.1d6771eb3

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 (218) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +5 -0
  3. package/dist/auth-public.d.ts +59 -3
  4. package/dist/auth.d.ts +74 -13
  5. package/dist/browser-cjs/{index-39443020.js → index-7393ca6a.js} +593 -208
  6. package/dist/browser-cjs/index-7393ca6a.js.map +1 -0
  7. package/dist/browser-cjs/index.js +3 -2
  8. package/dist/browser-cjs/index.js.map +1 -1
  9. package/dist/browser-cjs/internal.js +3 -2
  10. package/dist/browser-cjs/internal.js.map +1 -1
  11. package/dist/browser-cjs/src/api/authentication/email_and_password.d.ts +9 -0
  12. package/dist/browser-cjs/src/api/authentication/recaptcha.d.ts +16 -0
  13. package/dist/browser-cjs/src/api/authentication/sign_up.d.ts +4 -0
  14. package/dist/browser-cjs/src/api/errors.d.ts +9 -1
  15. package/dist/browser-cjs/src/api/index.d.ts +17 -2
  16. package/dist/browser-cjs/src/core/auth/auth_impl.d.ts +9 -1
  17. package/dist/browser-cjs/src/core/errors.d.ts +18 -1
  18. package/dist/browser-cjs/src/core/index.d.ts +27 -0
  19. package/dist/browser-cjs/src/core/util/handler.d.ts +1 -1
  20. package/dist/browser-cjs/src/core/util/log.d.ts +1 -0
  21. package/dist/browser-cjs/src/mfa/assertions/totp.d.ts +2 -2
  22. package/dist/browser-cjs/src/model/auth.d.ts +6 -0
  23. package/dist/browser-cjs/src/platform_browser/auth_window.d.ts +2 -2
  24. package/dist/browser-cjs/src/platform_browser/recaptcha/recaptcha.d.ts +33 -0
  25. package/dist/browser-cjs/src/platform_browser/recaptcha/recaptcha.test.d.ts +17 -0
  26. package/dist/browser-cjs/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +40 -0
  27. package/dist/browser-cjs/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.test.d.ts +17 -0
  28. package/dist/browser-cjs/src/platform_browser/recaptcha/recaptcha_mock.d.ts +16 -1
  29. package/dist/browser-cjs/src/platform_browser/strategies/popup.d.ts +1 -1
  30. package/dist/browser-cjs/test/helpers/api/helper.d.ts +2 -0
  31. package/dist/browser-cjs/test/helpers/mock_auth.d.ts +5 -0
  32. package/dist/cordova/index.js +2 -2
  33. package/dist/cordova/internal.js +21 -77
  34. package/dist/cordova/internal.js.map +1 -1
  35. package/dist/cordova/{popup_redirect-8b388294.js → popup_redirect-eae95465.js} +781 -215
  36. package/dist/cordova/popup_redirect-eae95465.js.map +1 -0
  37. package/dist/cordova/src/api/authentication/email_and_password.d.ts +9 -0
  38. package/dist/cordova/src/api/authentication/recaptcha.d.ts +16 -0
  39. package/dist/cordova/src/api/authentication/sign_up.d.ts +4 -0
  40. package/dist/cordova/src/api/errors.d.ts +9 -1
  41. package/dist/cordova/src/api/index.d.ts +17 -2
  42. package/dist/cordova/src/core/auth/auth_impl.d.ts +9 -1
  43. package/dist/cordova/src/core/errors.d.ts +18 -1
  44. package/dist/cordova/src/core/index.d.ts +27 -0
  45. package/dist/cordova/src/core/util/handler.d.ts +1 -1
  46. package/dist/cordova/src/core/util/log.d.ts +1 -0
  47. package/dist/cordova/src/mfa/assertions/totp.d.ts +2 -2
  48. package/dist/cordova/src/model/auth.d.ts +6 -0
  49. package/dist/cordova/src/platform_browser/auth_window.d.ts +2 -2
  50. package/dist/cordova/src/platform_browser/recaptcha/recaptcha.d.ts +33 -0
  51. package/dist/cordova/src/platform_browser/recaptcha/recaptcha.test.d.ts +17 -0
  52. package/dist/cordova/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +40 -0
  53. package/dist/cordova/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.test.d.ts +17 -0
  54. package/dist/cordova/src/platform_browser/recaptcha/recaptcha_mock.d.ts +16 -1
  55. package/dist/cordova/src/platform_browser/strategies/popup.d.ts +1 -1
  56. package/dist/cordova/test/helpers/api/helper.d.ts +2 -0
  57. package/dist/cordova/test/helpers/mock_auth.d.ts +5 -0
  58. package/dist/esm2017/{index-2d01563f.js → index-1124980d.js} +594 -210
  59. package/dist/esm2017/index-1124980d.js.map +1 -0
  60. package/dist/esm2017/index.js +2 -2
  61. package/dist/esm2017/internal.js +3 -3
  62. package/dist/esm2017/src/api/authentication/email_and_password.d.ts +9 -0
  63. package/dist/esm2017/src/api/authentication/recaptcha.d.ts +16 -0
  64. package/dist/esm2017/src/api/authentication/sign_up.d.ts +4 -0
  65. package/dist/esm2017/src/api/errors.d.ts +9 -1
  66. package/dist/esm2017/src/api/index.d.ts +17 -2
  67. package/dist/esm2017/src/core/auth/auth_impl.d.ts +9 -1
  68. package/dist/esm2017/src/core/errors.d.ts +18 -1
  69. package/dist/esm2017/src/core/index.d.ts +27 -0
  70. package/dist/esm2017/src/core/util/handler.d.ts +1 -1
  71. package/dist/esm2017/src/core/util/log.d.ts +1 -0
  72. package/dist/esm2017/src/mfa/assertions/totp.d.ts +2 -2
  73. package/dist/esm2017/src/model/auth.d.ts +6 -0
  74. package/dist/esm2017/src/platform_browser/auth_window.d.ts +2 -2
  75. package/dist/esm2017/src/platform_browser/recaptcha/recaptcha.d.ts +33 -0
  76. package/dist/esm2017/src/platform_browser/recaptcha/recaptcha.test.d.ts +17 -0
  77. package/dist/esm2017/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +40 -0
  78. package/dist/esm2017/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.test.d.ts +17 -0
  79. package/dist/esm2017/src/platform_browser/recaptcha/recaptcha_mock.d.ts +16 -1
  80. package/dist/esm2017/src/platform_browser/strategies/popup.d.ts +1 -1
  81. package/dist/esm2017/test/helpers/api/helper.d.ts +2 -0
  82. package/dist/esm2017/test/helpers/mock_auth.d.ts +5 -0
  83. package/dist/esm5/{index-44fc929c.js → index-169fb84f.js} +800 -290
  84. package/dist/esm5/index-169fb84f.js.map +1 -0
  85. package/dist/esm5/index.js +1 -1
  86. package/dist/esm5/internal.js +2 -2
  87. package/dist/esm5/src/api/authentication/email_and_password.d.ts +9 -0
  88. package/dist/esm5/src/api/authentication/recaptcha.d.ts +16 -0
  89. package/dist/esm5/src/api/authentication/sign_up.d.ts +4 -0
  90. package/dist/esm5/src/api/errors.d.ts +9 -1
  91. package/dist/esm5/src/api/index.d.ts +17 -2
  92. package/dist/esm5/src/core/auth/auth_impl.d.ts +9 -1
  93. package/dist/esm5/src/core/errors.d.ts +18 -1
  94. package/dist/esm5/src/core/index.d.ts +27 -0
  95. package/dist/esm5/src/core/util/handler.d.ts +1 -1
  96. package/dist/esm5/src/core/util/log.d.ts +1 -0
  97. package/dist/esm5/src/mfa/assertions/totp.d.ts +2 -2
  98. package/dist/esm5/src/model/auth.d.ts +6 -0
  99. package/dist/esm5/src/platform_browser/auth_window.d.ts +2 -2
  100. package/dist/esm5/src/platform_browser/recaptcha/recaptcha.d.ts +33 -0
  101. package/dist/esm5/src/platform_browser/recaptcha/recaptcha.test.d.ts +17 -0
  102. package/dist/esm5/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +40 -0
  103. package/dist/esm5/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.test.d.ts +17 -0
  104. package/dist/esm5/src/platform_browser/recaptcha/recaptcha_mock.d.ts +16 -1
  105. package/dist/esm5/src/platform_browser/strategies/popup.d.ts +1 -1
  106. package/dist/esm5/test/helpers/api/helper.d.ts +2 -0
  107. package/dist/esm5/test/helpers/mock_auth.d.ts +5 -0
  108. package/dist/index.webworker.esm5.js +605 -75
  109. package/dist/index.webworker.esm5.js.map +1 -1
  110. package/dist/node/index.js +2 -1
  111. package/dist/node/index.js.map +1 -1
  112. package/dist/node/internal.js +62 -42
  113. package/dist/node/internal.js.map +1 -1
  114. package/dist/node/src/api/authentication/email_and_password.d.ts +9 -0
  115. package/dist/node/src/api/authentication/recaptcha.d.ts +16 -0
  116. package/dist/node/src/api/authentication/sign_up.d.ts +4 -0
  117. package/dist/node/src/api/errors.d.ts +9 -1
  118. package/dist/node/src/api/index.d.ts +17 -2
  119. package/dist/node/src/core/auth/auth_impl.d.ts +9 -1
  120. package/dist/node/src/core/errors.d.ts +18 -1
  121. package/dist/node/src/core/index.d.ts +27 -0
  122. package/dist/node/src/core/util/handler.d.ts +1 -1
  123. package/dist/node/src/core/util/log.d.ts +1 -0
  124. package/dist/node/src/mfa/assertions/totp.d.ts +2 -2
  125. package/dist/node/src/model/auth.d.ts +6 -0
  126. package/dist/node/src/platform_browser/auth_window.d.ts +2 -2
  127. package/dist/node/src/platform_browser/recaptcha/recaptcha.d.ts +33 -0
  128. package/dist/node/src/platform_browser/recaptcha/recaptcha.test.d.ts +17 -0
  129. package/dist/node/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +40 -0
  130. package/dist/node/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.test.d.ts +17 -0
  131. package/dist/node/src/platform_browser/recaptcha/recaptcha_mock.d.ts +16 -1
  132. package/dist/node/src/platform_browser/strategies/popup.d.ts +1 -1
  133. package/dist/node/test/helpers/api/helper.d.ts +2 -0
  134. package/dist/node/test/helpers/mock_auth.d.ts +5 -0
  135. package/dist/node/{totp-5e73d8e7.js → totp-13fce87f.js} +703 -172
  136. package/dist/node/totp-13fce87f.js.map +1 -0
  137. package/dist/node-esm/index.js +1 -1
  138. package/dist/node-esm/internal.js +16 -4
  139. package/dist/node-esm/internal.js.map +1 -1
  140. package/dist/node-esm/src/api/authentication/email_and_password.d.ts +9 -0
  141. package/dist/node-esm/src/api/authentication/recaptcha.d.ts +16 -0
  142. package/dist/node-esm/src/api/authentication/sign_up.d.ts +4 -0
  143. package/dist/node-esm/src/api/errors.d.ts +9 -1
  144. package/dist/node-esm/src/api/index.d.ts +17 -2
  145. package/dist/node-esm/src/core/auth/auth_impl.d.ts +9 -1
  146. package/dist/node-esm/src/core/errors.d.ts +18 -1
  147. package/dist/node-esm/src/core/index.d.ts +27 -0
  148. package/dist/node-esm/src/core/util/handler.d.ts +1 -1
  149. package/dist/node-esm/src/core/util/log.d.ts +1 -0
  150. package/dist/node-esm/src/mfa/assertions/totp.d.ts +2 -2
  151. package/dist/node-esm/src/model/auth.d.ts +6 -0
  152. package/dist/node-esm/src/platform_browser/auth_window.d.ts +2 -2
  153. package/dist/node-esm/src/platform_browser/recaptcha/recaptcha.d.ts +33 -0
  154. package/dist/node-esm/src/platform_browser/recaptcha/recaptcha.test.d.ts +17 -0
  155. package/dist/node-esm/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +40 -0
  156. package/dist/node-esm/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.test.d.ts +17 -0
  157. package/dist/node-esm/src/platform_browser/recaptcha/recaptcha_mock.d.ts +16 -1
  158. package/dist/node-esm/src/platform_browser/strategies/popup.d.ts +1 -1
  159. package/dist/node-esm/test/helpers/api/helper.d.ts +2 -0
  160. package/dist/node-esm/test/helpers/mock_auth.d.ts +5 -0
  161. package/dist/node-esm/{totp-7b645f19.js → totp-aee19ee4.js} +560 -141
  162. package/dist/node-esm/totp-aee19ee4.js.map +1 -0
  163. package/dist/rn/index.js +2 -1
  164. package/dist/rn/index.js.map +1 -1
  165. package/dist/rn/internal.js +79 -48
  166. package/dist/rn/internal.js.map +1 -1
  167. package/dist/rn/{phone-ec210006.js → phone-26700494.js} +741 -260
  168. package/dist/rn/phone-26700494.js.map +1 -0
  169. package/dist/rn/src/api/authentication/email_and_password.d.ts +9 -0
  170. package/dist/rn/src/api/authentication/recaptcha.d.ts +16 -0
  171. package/dist/rn/src/api/authentication/sign_up.d.ts +4 -0
  172. package/dist/rn/src/api/errors.d.ts +9 -1
  173. package/dist/rn/src/api/index.d.ts +17 -2
  174. package/dist/rn/src/core/auth/auth_impl.d.ts +9 -1
  175. package/dist/rn/src/core/errors.d.ts +18 -1
  176. package/dist/rn/src/core/index.d.ts +27 -0
  177. package/dist/rn/src/core/util/handler.d.ts +1 -1
  178. package/dist/rn/src/core/util/log.d.ts +1 -0
  179. package/dist/rn/src/mfa/assertions/totp.d.ts +2 -2
  180. package/dist/rn/src/model/auth.d.ts +6 -0
  181. package/dist/rn/src/platform_browser/auth_window.d.ts +2 -2
  182. package/dist/rn/src/platform_browser/recaptcha/recaptcha.d.ts +33 -0
  183. package/dist/rn/src/platform_browser/recaptcha/recaptcha.test.d.ts +17 -0
  184. package/dist/rn/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +40 -0
  185. package/dist/rn/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.test.d.ts +17 -0
  186. package/dist/rn/src/platform_browser/recaptcha/recaptcha_mock.d.ts +16 -1
  187. package/dist/rn/src/platform_browser/strategies/popup.d.ts +1 -1
  188. package/dist/rn/test/helpers/api/helper.d.ts +2 -0
  189. package/dist/rn/test/helpers/mock_auth.d.ts +5 -0
  190. package/dist/src/api/authentication/email_and_password.d.ts +9 -0
  191. package/dist/src/api/authentication/recaptcha.d.ts +16 -0
  192. package/dist/src/api/authentication/sign_up.d.ts +4 -0
  193. package/dist/src/api/errors.d.ts +9 -1
  194. package/dist/src/api/index.d.ts +17 -2
  195. package/dist/src/core/auth/auth_impl.d.ts +9 -1
  196. package/dist/src/core/errors.d.ts +18 -1
  197. package/dist/src/core/index.d.ts +27 -0
  198. package/dist/src/core/util/handler.d.ts +1 -1
  199. package/dist/src/core/util/log.d.ts +1 -0
  200. package/dist/src/mfa/assertions/totp.d.ts +2 -2
  201. package/dist/src/model/auth.d.ts +6 -0
  202. package/dist/src/platform_browser/auth_window.d.ts +2 -2
  203. package/dist/src/platform_browser/recaptcha/recaptcha.d.ts +33 -0
  204. package/dist/src/platform_browser/recaptcha/recaptcha.test.d.ts +17 -0
  205. package/dist/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.d.ts +40 -0
  206. package/dist/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.test.d.ts +17 -0
  207. package/dist/src/platform_browser/recaptcha/recaptcha_mock.d.ts +16 -1
  208. package/dist/src/platform_browser/strategies/popup.d.ts +1 -1
  209. package/dist/test/helpers/api/helper.d.ts +2 -0
  210. package/dist/test/helpers/mock_auth.d.ts +5 -0
  211. package/package.json +6 -6
  212. package/dist/browser-cjs/index-39443020.js.map +0 -1
  213. package/dist/cordova/popup_redirect-8b388294.js.map +0 -1
  214. package/dist/esm2017/index-2d01563f.js.map +0 -1
  215. package/dist/esm5/index-44fc929c.js.map +0 -1
  216. package/dist/node/totp-5e73d8e7.js.map +0 -1
  217. package/dist/node-esm/totp-7b645f19.js.map +0 -1
  218. package/dist/rn/phone-ec210006.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @firebase/auth
2
2
 
3
+ ## 0.22.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`965396d52`](https://github.com/firebase/firebase-js-sdk/commit/965396d522243fcc17b63558823ad761c87ae1ba) [#7177](https://github.com/firebase/firebase-js-sdk/pull/7177) - Fixed error message for missing password case.
8
+
9
+ ### Patch Changes
10
+
11
+ - [`bd51cecba`](https://github.com/firebase/firebase-js-sdk/commit/bd51cecba5cfc1b1c1ca46bf94e65320da3da609) [#7179](https://github.com/firebase/firebase-js-sdk/pull/7179) (fixes [#7174](https://github.com/firebase/firebase-js-sdk/issues/7174)) - Fix typings for `TotpMultiFactorGenerator`. This fixes a reversion in 9.19.0.
12
+
3
13
  ## 0.21.6
4
14
 
5
15
  ### Patch Changes
package/README.md CHANGED
@@ -40,6 +40,11 @@ commands also run various tests:
40
40
  * `yarn test:webdriver` — Executes only the Selenium WebDriver
41
41
  integration tests
42
42
 
43
+ Note - The webdriver tests require the Chrome webdriver to match the version of Chrome running locally.
44
+ In the CI environment, this is ensured using the environment variable [here.](https://github.com/firebase/firebase-js-sdk/blob/6e80a678fe0c31046860554cec0459a2be34d22b/.github/workflows/test-changed-auth.yml#L7)
45
+ When running locally, change the chromedriver version in [package.json](https://github.com/firebase/firebase-js-sdk/blob/6e80a678fe0c31046860554cec0459a2be34d22b/packages/auth/package.json#L124) to match your local Chrome version and run `yarn install`.
46
+
47
+
43
48
  For example, to run all integration and WebDriver tests against the emulator,
44
49
  you would simply execute the following command:
45
50
 
@@ -588,6 +588,14 @@ export declare const AuthErrorCodes: {
588
588
  readonly WEAK_PASSWORD: "auth/weak-password";
589
589
  readonly WEB_STORAGE_UNSUPPORTED: "auth/web-storage-unsupported";
590
590
  readonly ALREADY_INITIALIZED: "auth/already-initialized";
591
+ readonly RECAPTCHA_NOT_ENABLED: "auth/recaptcha-not-enabled";
592
+ readonly MISSING_RECAPTCHA_TOKEN: "auth/missing-recaptcha-token";
593
+ readonly INVALID_RECAPTCHA_TOKEN: "auth/invalid-recaptcha-token";
594
+ readonly INVALID_RECAPTCHA_ACTION: "auth/invalid-recaptcha-action";
595
+ readonly MISSING_CLIENT_TYPE: "auth/missing-client-type";
596
+ readonly MISSING_RECAPTCHA_VERSION: "auth/missing-recaptcha-version";
597
+ readonly INVALID_RECAPTCHA_VERSION: "auth/invalid-recaptcha-version";
598
+ readonly INVALID_REQ_TYPE: "auth/invalid-req-type";
591
599
  };
592
600
 
593
601
  /**
@@ -1157,8 +1165,6 @@ export declare const FactorId: {
1157
1165
  readonly TOTP: "totp";
1158
1166
  };
1159
1167
 
1160
- /* Excluded from this release type: FactorId_2 */
1161
-
1162
1168
  /**
1163
1169
  * The base class for all Federated providers (OAuth (including OIDC), SAML).
1164
1170
  *
@@ -1281,6 +1287,11 @@ export declare function getIdTokenResult(user: User, forceRefresh?: boolean): Pr
1281
1287
  */
1282
1288
  export declare function getMultiFactorResolver(auth: Auth, error: MultiFactorError): MultiFactorResolver;
1283
1289
 
1290
+ declare interface GetRecaptchaConfigResponse {
1291
+ recaptchaKey: string;
1292
+ recaptchaEnforcementState: RecaptchaEnforcementState[];
1293
+ }
1294
+
1284
1295
  /**
1285
1296
  * Returns a {@link UserCredential} from the redirect-based sign-in flow.
1286
1297
  *
@@ -1561,6 +1572,33 @@ export declare const indexedDBLocalPersistence: Persistence;
1561
1572
  */
1562
1573
  export declare function initializeAuth(app: FirebaseApp, deps?: Dependencies): Auth;
1563
1574
 
1575
+ /**
1576
+ * Loads the reCAPTCHA configuration into the `Auth` instance.
1577
+ *
1578
+ * @remarks
1579
+ * This will load the reCAPTCHA config, which indicates whether the reCAPTCHA
1580
+ * verification flow should be triggered for each auth provider, into the
1581
+ * current Auth session.
1582
+ *
1583
+ * If initializeRecaptchaConfig() is not invoked, the auth flow will always start
1584
+ * without reCAPTCHA verification. If the provider is configured to require reCAPTCHA
1585
+ * verification, the SDK will transparently load the reCAPTCHA config and restart the
1586
+ * auth flows.
1587
+ *
1588
+ * Thus, by calling this optional method, you will reduce the latency of future auth flows.
1589
+ * Loading the reCAPTCHA config early will also enhance the signal collected by reCAPTCHA.
1590
+ *
1591
+ * @example
1592
+ * ```javascript
1593
+ * initializeRecaptchaConfig(auth);
1594
+ * ```
1595
+ *
1596
+ * @param auth - The {@link Auth} instance.
1597
+ *
1598
+ * @public
1599
+ */
1600
+ export declare function initializeRecaptchaConfig(auth: Auth): Promise<void>;
1601
+
1564
1602
  /**
1565
1603
  * An implementation of {@link Persistence} of type 'NONE'.
1566
1604
  *
@@ -2135,6 +2173,7 @@ export declare function onAuthStateChanged(auth: Auth, nextOrObserver: NextOrObs
2135
2173
  *
2136
2174
  * @remarks
2137
2175
  * This includes sign-in, sign-out, and token refresh events.
2176
+ * This will not be triggered automatically upon ID token expiration. Use {@link User.getIdToken} to refresh the ID token.
2138
2177
  *
2139
2178
  * @param auth - The {@link Auth} instance.
2140
2179
  * @param nextOrObserver - callback triggered on change.
@@ -2640,6 +2679,23 @@ declare interface Recaptcha {
2640
2679
  reset: (id: number) => unknown;
2641
2680
  }
2642
2681
 
2682
+ declare class RecaptchaConfig {
2683
+ /**
2684
+ * The reCAPTCHA site key.
2685
+ */
2686
+ siteKey: string;
2687
+ /**
2688
+ * The reCAPTCHA enablement status of the {@link EmailAuthProvider} for the current tenant.
2689
+ */
2690
+ emailPasswordEnabled: boolean;
2691
+ constructor(response: GetRecaptchaConfigResponse);
2692
+ }
2693
+
2694
+ declare interface RecaptchaEnforcementState {
2695
+ provider: string;
2696
+ enforcementState: string;
2697
+ }
2698
+
2643
2699
  /* Excluded from this release type: ReCaptchaLoader */
2644
2700
 
2645
2701
  /**
@@ -3222,7 +3278,7 @@ export declare class TotpMultiFactorGenerator {
3222
3278
  /**
3223
3279
  * The identifier of the TOTP second factor: `totp`.
3224
3280
  */
3225
- static FACTOR_ID: FactorId_2;
3281
+ static FACTOR_ID: 'totp';
3226
3282
  }
3227
3283
 
3228
3284
  /**
package/dist/auth.d.ts CHANGED
@@ -575,6 +575,7 @@ declare const enum AuthErrorCode {
575
575
  MISSING_MFA_INFO = "missing-multi-factor-info",
576
576
  MISSING_MFA_SESSION = "missing-multi-factor-session",
577
577
  MISSING_PHONE_NUMBER = "missing-phone-number",
578
+ MISSING_PASSWORD = "missing-password",
578
579
  MISSING_SESSION_INFO = "missing-verification-id",
579
580
  MODULE_DESTROYED = "app-deleted",
580
581
  NEED_CONFIRMATION = "account-exists-with-different-credential",
@@ -609,7 +610,15 @@ declare const enum AuthErrorCode {
609
610
  USER_SIGNED_OUT = "user-signed-out",
610
611
  WEAK_PASSWORD = "weak-password",
611
612
  WEB_STORAGE_UNSUPPORTED = "web-storage-unsupported",
612
- ALREADY_INITIALIZED = "already-initialized"
613
+ ALREADY_INITIALIZED = "already-initialized",
614
+ RECAPTCHA_NOT_ENABLED = "recaptcha-not-enabled",
615
+ MISSING_RECAPTCHA_TOKEN = "missing-recaptcha-token",
616
+ INVALID_RECAPTCHA_TOKEN = "invalid-recaptcha-token",
617
+ INVALID_RECAPTCHA_ACTION = "invalid-recaptcha-action",
618
+ MISSING_CLIENT_TYPE = "missing-client-type",
619
+ MISSING_RECAPTCHA_VERSION = "missing-recaptcha-version",
620
+ INVALID_RECAPTCHA_VERSION = "invalid-recaptcha-version",
621
+ INVALID_REQ_TYPE = "invalid-req-type"
613
622
  }
614
623
 
615
624
  /**
@@ -719,6 +728,14 @@ export declare const AuthErrorCodes: {
719
728
  readonly WEAK_PASSWORD: "auth/weak-password";
720
729
  readonly WEB_STORAGE_UNSUPPORTED: "auth/web-storage-unsupported";
721
730
  readonly ALREADY_INITIALIZED: "auth/already-initialized";
731
+ readonly RECAPTCHA_NOT_ENABLED: "auth/recaptcha-not-enabled";
732
+ readonly MISSING_RECAPTCHA_TOKEN: "auth/missing-recaptcha-token";
733
+ readonly INVALID_RECAPTCHA_TOKEN: "auth/invalid-recaptcha-token";
734
+ readonly INVALID_RECAPTCHA_ACTION: "auth/invalid-recaptcha-action";
735
+ readonly MISSING_CLIENT_TYPE: "auth/missing-client-type";
736
+ readonly MISSING_RECAPTCHA_VERSION: "auth/missing-recaptcha-version";
737
+ readonly INVALID_RECAPTCHA_VERSION: "auth/invalid-recaptcha-version";
738
+ readonly INVALID_REQ_TYPE: "auth/invalid-req-type";
722
739
  };
723
740
 
724
741
  /**
@@ -827,6 +844,8 @@ declare const enum AuthEventType {
827
844
  declare interface AuthInternal extends Auth {
828
845
  currentUser: User | null;
829
846
  emulatorConfig: EmulatorConfig | null;
847
+ _agentRecaptchaConfig: RecaptchaConfig | null;
848
+ _tenantRecaptchaConfigs: Record<string, RecaptchaConfig>;
830
849
  _canInitEmulator: boolean;
831
850
  _isInitialized: boolean;
832
851
  _initializationPromise: Promise<void> | null;
@@ -841,9 +860,11 @@ declare interface AuthInternal extends Auth {
841
860
  _startProactiveRefresh(): void;
842
861
  _stopProactiveRefresh(): void;
843
862
  _getPersistence(): string;
863
+ _getRecaptchaConfig(): RecaptchaConfig | null;
844
864
  _logFramework(framework: string): void;
845
865
  _getFrameworks(): readonly string[];
846
866
  _getAdditionalHeaders(): Promise<Record<string, string>>;
867
+ _getAppCheckToken(): Promise<string | undefined>;
847
868
  readonly name: AppName;
848
869
  readonly config: ConfigInternal;
849
870
  languageCode: string | null;
@@ -852,6 +873,7 @@ declare interface AuthInternal extends Auth {
852
873
  _errorFactory: ErrorFactory<AuthErrorCode, AuthErrorParams>;
853
874
  useDeviceLanguage(): void;
854
875
  signOut(): Promise<void>;
876
+ initializeRecaptchaConfig(): Promise<void>;
855
877
  }
856
878
 
857
879
  declare class AuthPopup {
@@ -1423,17 +1445,6 @@ export declare const FactorId: {
1423
1445
  readonly TOTP: "totp";
1424
1446
  };
1425
1447
 
1426
- /**
1427
- * An enum of factors that may be used for multifactor authentication.
1428
- *
1429
- * @internal
1430
- */
1431
- declare const enum FactorId_2 {
1432
- /** Phone as second factor */
1433
- PHONE = "phone",
1434
- TOTP = "totp"
1435
- }
1436
-
1437
1448
  /**
1438
1449
  * The base class for all Federated providers (OAuth (including OIDC), SAML).
1439
1450
  *
@@ -1568,6 +1579,11 @@ export declare function getIdTokenResult(user: User, forceRefresh?: boolean): Pr
1568
1579
  */
1569
1580
  export declare function getMultiFactorResolver(auth: Auth, error: MultiFactorError): MultiFactorResolver;
1570
1581
 
1582
+ declare interface GetRecaptchaConfigResponse {
1583
+ recaptchaKey: string;
1584
+ recaptchaEnforcementState: RecaptchaEnforcementState[];
1585
+ }
1586
+
1571
1587
  /**
1572
1588
  * Returns a {@link UserCredential} from the redirect-based sign-in flow.
1573
1589
  *
@@ -1891,6 +1907,33 @@ export declare const indexedDBLocalPersistence: Persistence;
1891
1907
  */
1892
1908
  export declare function initializeAuth(app: FirebaseApp, deps?: Dependencies): Auth;
1893
1909
 
1910
+ /**
1911
+ * Loads the reCAPTCHA configuration into the `Auth` instance.
1912
+ *
1913
+ * @remarks
1914
+ * This will load the reCAPTCHA config, which indicates whether the reCAPTCHA
1915
+ * verification flow should be triggered for each auth provider, into the
1916
+ * current Auth session.
1917
+ *
1918
+ * If initializeRecaptchaConfig() is not invoked, the auth flow will always start
1919
+ * without reCAPTCHA verification. If the provider is configured to require reCAPTCHA
1920
+ * verification, the SDK will transparently load the reCAPTCHA config and restart the
1921
+ * auth flows.
1922
+ *
1923
+ * Thus, by calling this optional method, you will reduce the latency of future auth flows.
1924
+ * Loading the reCAPTCHA config early will also enhance the signal collected by reCAPTCHA.
1925
+ *
1926
+ * @example
1927
+ * ```javascript
1928
+ * initializeRecaptchaConfig(auth);
1929
+ * ```
1930
+ *
1931
+ * @param auth - The {@link Auth} instance.
1932
+ *
1933
+ * @public
1934
+ */
1935
+ export declare function initializeRecaptchaConfig(auth: Auth): Promise<void>;
1936
+
1894
1937
  /**
1895
1938
  * An implementation of {@link Persistence} of type 'NONE'.
1896
1939
  *
@@ -2469,6 +2512,7 @@ export declare function onAuthStateChanged(auth: Auth, nextOrObserver: NextOrObs
2469
2512
  *
2470
2513
  * @remarks
2471
2514
  * This includes sign-in, sign-out, and token refresh events.
2515
+ * This will not be triggered automatically upon ID token expiration. Use {@link User.getIdToken} to refresh the ID token.
2472
2516
  *
2473
2517
  * @param auth - The {@link Auth} instance.
2474
2518
  * @param nextOrObserver - callback triggered on change.
@@ -3038,6 +3082,23 @@ declare interface Recaptcha {
3038
3082
  reset: (id: number) => unknown;
3039
3083
  }
3040
3084
 
3085
+ declare class RecaptchaConfig {
3086
+ /**
3087
+ * The reCAPTCHA site key.
3088
+ */
3089
+ siteKey: string;
3090
+ /**
3091
+ * The reCAPTCHA enablement status of the {@link EmailAuthProvider} for the current tenant.
3092
+ */
3093
+ emailPasswordEnabled: boolean;
3094
+ constructor(response: GetRecaptchaConfigResponse);
3095
+ }
3096
+
3097
+ declare interface RecaptchaEnforcementState {
3098
+ provider: string;
3099
+ enforcementState: string;
3100
+ }
3101
+
3041
3102
  /**
3042
3103
  * We need to mark this interface as internal explicitly to exclude it in the public typings, because
3043
3104
  * it references AuthInternal which has a circular dependency with UserInternal.
@@ -3681,7 +3742,7 @@ export declare class TotpMultiFactorGenerator {
3681
3742
  /**
3682
3743
  * The identifier of the TOTP second factor: `totp`.
3683
3744
  */
3684
- static FACTOR_ID: FactorId_2;
3745
+ static FACTOR_ID: 'totp';
3685
3746
  }
3686
3747
 
3687
3748
  /**