@firebase/auth 1.6.2 → 1.7.0-canary.42fcdfe4c

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 (236) hide show
  1. package/dist/auth-public.d.ts +60 -10
  2. package/dist/auth.d.ts +61 -10
  3. package/dist/browser-cjs/{index-6a907fc6.js → index-fcf80d66.js} +202 -22
  4. package/dist/browser-cjs/index-fcf80d66.js.map +1 -0
  5. package/dist/browser-cjs/index.js +2 -2
  6. package/dist/browser-cjs/internal.js +1 -1
  7. package/dist/browser-cjs/src/core/auth/auth_impl.d.ts +1 -0
  8. package/dist/browser-cjs/src/core/index.d.ts +9 -1
  9. package/dist/browser-cjs/src/core/strategies/anonymous.d.ts +3 -0
  10. package/dist/browser-cjs/src/core/strategies/credential.d.ts +6 -0
  11. package/dist/browser-cjs/src/core/strategies/custom_token.d.ts +3 -0
  12. package/dist/browser-cjs/src/core/strategies/email_and_password.d.ts +7 -0
  13. package/dist/browser-cjs/src/core/strategies/email_link.d.ts +4 -0
  14. package/dist/browser-cjs/src/core/user/account_info.d.ts +3 -0
  15. package/dist/browser-cjs/src/core/user/reload.d.ts +3 -1
  16. package/dist/browser-cjs/src/core/user/token_manager.d.ts +1 -0
  17. package/dist/browser-cjs/src/core/user/user_impl.d.ts +7 -1
  18. package/dist/browser-cjs/src/core/util/assert.d.ts +1 -0
  19. package/dist/browser-cjs/src/model/public_types.d.ts +7 -0
  20. package/dist/browser-cjs/src/platform_browser/strategies/phone.d.ts +6 -3
  21. package/dist/browser-cjs/src/platform_browser/strategies/popup.d.ts +4 -2
  22. package/dist/browser-cjs/src/platform_browser/strategies/redirect.d.ts +8 -4
  23. package/dist/browser-cjs/test/helpers/integration/helpers.d.ts +2 -0
  24. package/dist/browser-cjs/test/integration/flows/firebaseserverapp.test.d.ts +17 -0
  25. package/dist/cordova/index.js +2 -2
  26. package/dist/cordova/internal.js +45 -17
  27. package/dist/cordova/internal.js.map +1 -1
  28. package/dist/cordova/{popup_redirect-58faecee.js → popup_redirect-65e04583.js} +197 -17
  29. package/dist/cordova/popup_redirect-65e04583.js.map +1 -0
  30. package/dist/cordova/src/core/auth/auth_impl.d.ts +1 -0
  31. package/dist/cordova/src/core/index.d.ts +9 -1
  32. package/dist/cordova/src/core/strategies/anonymous.d.ts +3 -0
  33. package/dist/cordova/src/core/strategies/credential.d.ts +6 -0
  34. package/dist/cordova/src/core/strategies/custom_token.d.ts +3 -0
  35. package/dist/cordova/src/core/strategies/email_and_password.d.ts +7 -0
  36. package/dist/cordova/src/core/strategies/email_link.d.ts +4 -0
  37. package/dist/cordova/src/core/user/account_info.d.ts +3 -0
  38. package/dist/cordova/src/core/user/reload.d.ts +3 -1
  39. package/dist/cordova/src/core/user/token_manager.d.ts +1 -0
  40. package/dist/cordova/src/core/user/user_impl.d.ts +7 -1
  41. package/dist/cordova/src/core/util/assert.d.ts +1 -0
  42. package/dist/cordova/src/model/public_types.d.ts +7 -0
  43. package/dist/cordova/src/platform_browser/strategies/phone.d.ts +6 -3
  44. package/dist/cordova/src/platform_browser/strategies/popup.d.ts +4 -2
  45. package/dist/cordova/src/platform_browser/strategies/redirect.d.ts +8 -4
  46. package/dist/cordova/test/helpers/integration/helpers.d.ts +2 -0
  47. package/dist/cordova/test/integration/flows/firebaseserverapp.test.d.ts +17 -0
  48. package/dist/esm2017/{index-e939beb5.js → index-3ad9a9b9.js} +202 -22
  49. package/dist/esm2017/index-3ad9a9b9.js.map +1 -0
  50. package/dist/esm2017/index.js +2 -2
  51. package/dist/esm2017/internal.js +2 -2
  52. package/dist/esm2017/src/core/auth/auth_impl.d.ts +1 -0
  53. package/dist/esm2017/src/core/index.d.ts +9 -1
  54. package/dist/esm2017/src/core/strategies/anonymous.d.ts +3 -0
  55. package/dist/esm2017/src/core/strategies/credential.d.ts +6 -0
  56. package/dist/esm2017/src/core/strategies/custom_token.d.ts +3 -0
  57. package/dist/esm2017/src/core/strategies/email_and_password.d.ts +7 -0
  58. package/dist/esm2017/src/core/strategies/email_link.d.ts +4 -0
  59. package/dist/esm2017/src/core/user/account_info.d.ts +3 -0
  60. package/dist/esm2017/src/core/user/reload.d.ts +3 -1
  61. package/dist/esm2017/src/core/user/token_manager.d.ts +1 -0
  62. package/dist/esm2017/src/core/user/user_impl.d.ts +7 -1
  63. package/dist/esm2017/src/core/util/assert.d.ts +1 -0
  64. package/dist/esm2017/src/model/public_types.d.ts +7 -0
  65. package/dist/esm2017/src/platform_browser/strategies/phone.d.ts +6 -3
  66. package/dist/esm2017/src/platform_browser/strategies/popup.d.ts +4 -2
  67. package/dist/esm2017/src/platform_browser/strategies/redirect.d.ts +8 -4
  68. package/dist/esm2017/test/helpers/integration/helpers.d.ts +2 -0
  69. package/dist/esm2017/test/integration/flows/firebaseserverapp.test.d.ts +17 -0
  70. package/dist/esm5/{index-3bd54529.js → index-dcfb76ea.js} +238 -30
  71. package/dist/esm5/index-dcfb76ea.js.map +1 -0
  72. package/dist/esm5/index.js +2 -2
  73. package/dist/esm5/internal.js +2 -2
  74. package/dist/esm5/src/core/auth/auth_impl.d.ts +1 -0
  75. package/dist/esm5/src/core/index.d.ts +9 -1
  76. package/dist/esm5/src/core/strategies/anonymous.d.ts +3 -0
  77. package/dist/esm5/src/core/strategies/credential.d.ts +6 -0
  78. package/dist/esm5/src/core/strategies/custom_token.d.ts +3 -0
  79. package/dist/esm5/src/core/strategies/email_and_password.d.ts +7 -0
  80. package/dist/esm5/src/core/strategies/email_link.d.ts +4 -0
  81. package/dist/esm5/src/core/user/account_info.d.ts +3 -0
  82. package/dist/esm5/src/core/user/reload.d.ts +3 -1
  83. package/dist/esm5/src/core/user/token_manager.d.ts +1 -0
  84. package/dist/esm5/src/core/user/user_impl.d.ts +7 -1
  85. package/dist/esm5/src/core/util/assert.d.ts +1 -0
  86. package/dist/esm5/src/model/public_types.d.ts +7 -0
  87. package/dist/esm5/src/platform_browser/strategies/phone.d.ts +6 -3
  88. package/dist/esm5/src/platform_browser/strategies/popup.d.ts +4 -2
  89. package/dist/esm5/src/platform_browser/strategies/redirect.d.ts +8 -4
  90. package/dist/esm5/test/helpers/integration/helpers.d.ts +2 -0
  91. package/dist/esm5/test/integration/flows/firebaseserverapp.test.d.ts +17 -0
  92. package/dist/index.webworker.esm5.js +178 -11
  93. package/dist/index.webworker.esm5.js.map +1 -1
  94. package/dist/node/index.js +2 -2
  95. package/dist/node/internal.js +4 -1
  96. package/dist/node/internal.js.map +1 -1
  97. package/dist/node/src/core/auth/auth_impl.d.ts +1 -0
  98. package/dist/node/src/core/index.d.ts +9 -1
  99. package/dist/node/src/core/strategies/anonymous.d.ts +3 -0
  100. package/dist/node/src/core/strategies/credential.d.ts +6 -0
  101. package/dist/node/src/core/strategies/custom_token.d.ts +3 -0
  102. package/dist/node/src/core/strategies/email_and_password.d.ts +7 -0
  103. package/dist/node/src/core/strategies/email_link.d.ts +4 -0
  104. package/dist/node/src/core/user/account_info.d.ts +3 -0
  105. package/dist/node/src/core/user/reload.d.ts +3 -1
  106. package/dist/node/src/core/user/token_manager.d.ts +1 -0
  107. package/dist/node/src/core/user/user_impl.d.ts +7 -1
  108. package/dist/node/src/core/util/assert.d.ts +1 -0
  109. package/dist/node/src/model/public_types.d.ts +7 -0
  110. package/dist/node/src/platform_browser/strategies/phone.d.ts +6 -3
  111. package/dist/node/src/platform_browser/strategies/popup.d.ts +4 -2
  112. package/dist/node/src/platform_browser/strategies/redirect.d.ts +8 -4
  113. package/dist/node/test/helpers/integration/helpers.d.ts +2 -0
  114. package/dist/node/test/integration/flows/firebaseserverapp.test.d.ts +17 -0
  115. package/dist/node/{totp-7d693c11.js → totp-fbe187a4.js} +180 -12
  116. package/dist/node/totp-fbe187a4.js.map +1 -0
  117. package/dist/node-esm/index.js +2 -2
  118. package/dist/node-esm/internal.js +6 -3
  119. package/dist/node-esm/internal.js.map +1 -1
  120. package/dist/node-esm/src/core/auth/auth_impl.d.ts +1 -0
  121. package/dist/node-esm/src/core/index.d.ts +9 -1
  122. package/dist/node-esm/src/core/strategies/anonymous.d.ts +3 -0
  123. package/dist/node-esm/src/core/strategies/credential.d.ts +6 -0
  124. package/dist/node-esm/src/core/strategies/custom_token.d.ts +3 -0
  125. package/dist/node-esm/src/core/strategies/email_and_password.d.ts +7 -0
  126. package/dist/node-esm/src/core/strategies/email_link.d.ts +4 -0
  127. package/dist/node-esm/src/core/user/account_info.d.ts +3 -0
  128. package/dist/node-esm/src/core/user/reload.d.ts +3 -1
  129. package/dist/node-esm/src/core/user/token_manager.d.ts +1 -0
  130. package/dist/node-esm/src/core/user/user_impl.d.ts +7 -1
  131. package/dist/node-esm/src/core/util/assert.d.ts +1 -0
  132. package/dist/node-esm/src/model/public_types.d.ts +7 -0
  133. package/dist/node-esm/src/platform_browser/strategies/phone.d.ts +6 -3
  134. package/dist/node-esm/src/platform_browser/strategies/popup.d.ts +4 -2
  135. package/dist/node-esm/src/platform_browser/strategies/redirect.d.ts +8 -4
  136. package/dist/node-esm/test/helpers/integration/helpers.d.ts +2 -0
  137. package/dist/node-esm/test/integration/flows/firebaseserverapp.test.d.ts +17 -0
  138. package/dist/node-esm/{totp-56a8eeec.js → totp-4d1c9ab1.js} +148 -7
  139. package/dist/node-esm/totp-4d1c9ab1.js.map +1 -0
  140. package/dist/rn/{index-8ee80bdc.js → index-bbdaa838.js} +199 -16
  141. package/dist/rn/index-bbdaa838.js.map +1 -0
  142. package/dist/rn/index.js +1 -1
  143. package/dist/rn/internal.js +41 -15
  144. package/dist/rn/internal.js.map +1 -1
  145. package/dist/rn/src/core/auth/auth_impl.d.ts +1 -0
  146. package/dist/rn/src/core/index.d.ts +9 -1
  147. package/dist/rn/src/core/strategies/anonymous.d.ts +3 -0
  148. package/dist/rn/src/core/strategies/credential.d.ts +6 -0
  149. package/dist/rn/src/core/strategies/custom_token.d.ts +3 -0
  150. package/dist/rn/src/core/strategies/email_and_password.d.ts +7 -0
  151. package/dist/rn/src/core/strategies/email_link.d.ts +4 -0
  152. package/dist/rn/src/core/user/account_info.d.ts +3 -0
  153. package/dist/rn/src/core/user/reload.d.ts +3 -1
  154. package/dist/rn/src/core/user/token_manager.d.ts +1 -0
  155. package/dist/rn/src/core/user/user_impl.d.ts +7 -1
  156. package/dist/rn/src/core/util/assert.d.ts +1 -0
  157. package/dist/rn/src/model/public_types.d.ts +7 -0
  158. package/dist/rn/src/platform_browser/strategies/phone.d.ts +6 -3
  159. package/dist/rn/src/platform_browser/strategies/popup.d.ts +4 -2
  160. package/dist/rn/src/platform_browser/strategies/redirect.d.ts +8 -4
  161. package/dist/rn/test/helpers/integration/helpers.d.ts +2 -0
  162. package/dist/rn/test/integration/flows/firebaseserverapp.test.d.ts +17 -0
  163. package/dist/src/core/auth/auth_impl.d.ts +1 -0
  164. package/dist/src/core/index.d.ts +9 -1
  165. package/dist/src/core/strategies/anonymous.d.ts +3 -0
  166. package/dist/src/core/strategies/credential.d.ts +6 -0
  167. package/dist/src/core/strategies/custom_token.d.ts +3 -0
  168. package/dist/src/core/strategies/email_and_password.d.ts +7 -0
  169. package/dist/src/core/strategies/email_link.d.ts +4 -0
  170. package/dist/src/core/user/account_info.d.ts +3 -0
  171. package/dist/src/core/user/reload.d.ts +3 -1
  172. package/dist/src/core/user/token_manager.d.ts +1 -0
  173. package/dist/src/core/user/user_impl.d.ts +7 -1
  174. package/dist/src/core/util/assert.d.ts +1 -0
  175. package/dist/src/model/public_types.d.ts +7 -0
  176. package/dist/src/platform_browser/strategies/phone.d.ts +6 -3
  177. package/dist/src/platform_browser/strategies/popup.d.ts +4 -2
  178. package/dist/src/platform_browser/strategies/redirect.d.ts +8 -4
  179. package/dist/test/helpers/integration/helpers.d.ts +2 -0
  180. package/dist/test/integration/flows/firebaseserverapp.test.d.ts +17 -0
  181. package/dist/web-extension-cjs/index.js +1 -1
  182. package/dist/web-extension-cjs/internal.js +57 -18
  183. package/dist/web-extension-cjs/internal.js.map +1 -1
  184. package/dist/web-extension-cjs/{register-9438f377.js → register-4ce22251.js} +148 -6
  185. package/dist/web-extension-cjs/register-4ce22251.js.map +1 -0
  186. package/dist/web-extension-cjs/src/core/auth/auth_impl.d.ts +1 -0
  187. package/dist/web-extension-cjs/src/core/index.d.ts +9 -1
  188. package/dist/web-extension-cjs/src/core/strategies/anonymous.d.ts +3 -0
  189. package/dist/web-extension-cjs/src/core/strategies/credential.d.ts +6 -0
  190. package/dist/web-extension-cjs/src/core/strategies/custom_token.d.ts +3 -0
  191. package/dist/web-extension-cjs/src/core/strategies/email_and_password.d.ts +7 -0
  192. package/dist/web-extension-cjs/src/core/strategies/email_link.d.ts +4 -0
  193. package/dist/web-extension-cjs/src/core/user/account_info.d.ts +3 -0
  194. package/dist/web-extension-cjs/src/core/user/reload.d.ts +3 -1
  195. package/dist/web-extension-cjs/src/core/user/token_manager.d.ts +1 -0
  196. package/dist/web-extension-cjs/src/core/user/user_impl.d.ts +7 -1
  197. package/dist/web-extension-cjs/src/core/util/assert.d.ts +1 -0
  198. package/dist/web-extension-cjs/src/model/public_types.d.ts +7 -0
  199. package/dist/web-extension-cjs/src/platform_browser/strategies/phone.d.ts +6 -3
  200. package/dist/web-extension-cjs/src/platform_browser/strategies/popup.d.ts +4 -2
  201. package/dist/web-extension-cjs/src/platform_browser/strategies/redirect.d.ts +8 -4
  202. package/dist/web-extension-cjs/test/helpers/integration/helpers.d.ts +2 -0
  203. package/dist/web-extension-cjs/test/integration/flows/firebaseserverapp.test.d.ts +17 -0
  204. package/dist/web-extension-esm2017/index.js +2 -2
  205. package/dist/web-extension-esm2017/internal.js +58 -19
  206. package/dist/web-extension-esm2017/internal.js.map +1 -1
  207. package/dist/web-extension-esm2017/{register-7b89e556.js → register-3473374b.js} +148 -7
  208. package/dist/web-extension-esm2017/register-3473374b.js.map +1 -0
  209. package/dist/web-extension-esm2017/src/core/auth/auth_impl.d.ts +1 -0
  210. package/dist/web-extension-esm2017/src/core/index.d.ts +9 -1
  211. package/dist/web-extension-esm2017/src/core/strategies/anonymous.d.ts +3 -0
  212. package/dist/web-extension-esm2017/src/core/strategies/credential.d.ts +6 -0
  213. package/dist/web-extension-esm2017/src/core/strategies/custom_token.d.ts +3 -0
  214. package/dist/web-extension-esm2017/src/core/strategies/email_and_password.d.ts +7 -0
  215. package/dist/web-extension-esm2017/src/core/strategies/email_link.d.ts +4 -0
  216. package/dist/web-extension-esm2017/src/core/user/account_info.d.ts +3 -0
  217. package/dist/web-extension-esm2017/src/core/user/reload.d.ts +3 -1
  218. package/dist/web-extension-esm2017/src/core/user/token_manager.d.ts +1 -0
  219. package/dist/web-extension-esm2017/src/core/user/user_impl.d.ts +7 -1
  220. package/dist/web-extension-esm2017/src/core/util/assert.d.ts +1 -0
  221. package/dist/web-extension-esm2017/src/model/public_types.d.ts +7 -0
  222. package/dist/web-extension-esm2017/src/platform_browser/strategies/phone.d.ts +6 -3
  223. package/dist/web-extension-esm2017/src/platform_browser/strategies/popup.d.ts +4 -2
  224. package/dist/web-extension-esm2017/src/platform_browser/strategies/redirect.d.ts +8 -4
  225. package/dist/web-extension-esm2017/test/helpers/integration/helpers.d.ts +2 -0
  226. package/dist/web-extension-esm2017/test/integration/flows/firebaseserverapp.test.d.ts +17 -0
  227. package/package.json +7 -7
  228. package/dist/browser-cjs/index-6a907fc6.js.map +0 -1
  229. package/dist/cordova/popup_redirect-58faecee.js.map +0 -1
  230. package/dist/esm2017/index-e939beb5.js.map +0 -1
  231. package/dist/esm5/index-3bd54529.js.map +0 -1
  232. package/dist/node/totp-7d693c11.js.map +0 -1
  233. package/dist/node-esm/totp-56a8eeec.js.map +0 -1
  234. package/dist/rn/index-8ee80bdc.js.map +0 -1
  235. package/dist/web-extension-cjs/register-9438f377.js.map +0 -1
  236. package/dist/web-extension-esm2017/register-7b89e556.js.map +0 -1
@@ -14,9 +14,11 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
+ import { FirebaseServerApp } from '@firebase/app';
17
18
  import { Auth } from '@firebase/auth';
18
19
  export declare function randomEmail(): string;
19
20
  export declare function getTestInstance(requireEmulator?: boolean): Auth;
21
+ export declare function getTestInstanceForServerApp(serverApp: FirebaseServerApp): Auth;
20
22
  export declare function cleanUpTestInstance(auth: Auth): Promise<void>;
21
23
  export declare function getTotpCode(sharedSecretKey: string, periodSec: number, verificationCodeLength: number, timestamp: Date): string;
22
24
  export declare const email = "totpuser-donotdelete@test.com";
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2024 Google LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ export {};
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var register = require('./register-9438f377.js');
5
+ var register = require('./register-4ce22251.js');
6
6
  var app = require('@firebase/app');
7
7
  var util = require('@firebase/util');
8
8
  require('tslib');
@@ -2,10 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var register = require('./register-9438f377.js');
5
+ var register = require('./register-4ce22251.js');
6
6
  var util = require('@firebase/util');
7
- require('tslib');
8
7
  var app = require('@firebase/app');
8
+ require('tslib');
9
9
  require('@firebase/component');
10
10
  require('@firebase/logger');
11
11
 
@@ -897,7 +897,8 @@ class ConfirmationResultImpl {
897
897
  * {@link RecaptchaVerifier} (like React Native), but you need to use a
898
898
  * third-party {@link ApplicationVerifier} implementation.
899
899
  *
900
- * This method does not work in a Node.js environment.
900
+ * This method does not work in a Node.js environment or with {@link Auth} instances created with a
901
+ * {@link @firebase/app#FirebaseServerApp}.
901
902
  *
902
903
  * @example
903
904
  * ```javascript
@@ -915,6 +916,9 @@ class ConfirmationResultImpl {
915
916
  * @public
916
917
  */
917
918
  async function signInWithPhoneNumber(auth, phoneNumber, appVerifier) {
919
+ if (app._isFirebaseServerApp(auth.app)) {
920
+ return Promise.reject(register._serverAppCurrentUserOperationNotSupportedError(auth));
921
+ }
918
922
  const authInternal = register._castAuth(auth);
919
923
  const verificationId = await _verifyPhoneNumber(authInternal, phoneNumber, util.getModularInstance(appVerifier));
920
924
  return new ConfirmationResultImpl(verificationId, cred => register.signInWithCredential(authInternal, cred));
@@ -943,7 +947,8 @@ async function linkWithPhoneNumber(user, phoneNumber, appVerifier) {
943
947
  * @remarks
944
948
  * Use before operations such as {@link updatePassword} that require tokens from recent sign-in attempts.
945
949
  *
946
- * This method does not work in a Node.js environment.
950
+ * This method does not work in a Node.js environment or on any {@link User} signed in by
951
+ * {@link Auth} instances created with a {@link @firebase/app#FirebaseServerApp}.
947
952
  *
948
953
  * @param user - The user.
949
954
  * @param phoneNumber - The user's phone number in E.164 format (e.g. +16505550101).
@@ -953,6 +958,9 @@ async function linkWithPhoneNumber(user, phoneNumber, appVerifier) {
953
958
  */
954
959
  async function reauthenticateWithPhoneNumber(user, phoneNumber, appVerifier) {
955
960
  const userInternal = util.getModularInstance(user);
961
+ if (app._isFirebaseServerApp(userInternal.auth.app)) {
962
+ return Promise.reject(register._serverAppCurrentUserOperationNotSupportedError(userInternal.auth));
963
+ }
956
964
  const verificationId = await _verifyPhoneNumber(userInternal.auth, phoneNumber, util.getModularInstance(appVerifier));
957
965
  return new ConfirmationResultImpl(verificationId, cred => register.reauthenticateWithCredential(userInternal, cred));
958
966
  }
@@ -1019,7 +1027,8 @@ async function _verifyPhoneNumber(auth, options, verifier) {
1019
1027
  * Updates the user's phone number.
1020
1028
  *
1021
1029
  * @remarks
1022
- * This method does not work in a Node.js environment.
1030
+ * This method does not work in a Node.js environment or on any {@link User} signed in by
1031
+ * {@link Auth} instances created with a {@link @firebase/app#FirebaseServerApp}.
1023
1032
  *
1024
1033
  * @example
1025
1034
  * ```
@@ -1038,7 +1047,11 @@ async function _verifyPhoneNumber(auth, options, verifier) {
1038
1047
  * @public
1039
1048
  */
1040
1049
  async function updatePhoneNumber(user, credential) {
1041
- await register._link(util.getModularInstance(user), credential);
1050
+ const userInternal = util.getModularInstance(user);
1051
+ if (app._isFirebaseServerApp(userInternal.auth.app)) {
1052
+ return Promise.reject(register._serverAppCurrentUserOperationNotSupportedError(userInternal.auth));
1053
+ }
1054
+ await register._link(userInternal, credential);
1042
1055
  }
1043
1056
 
1044
1057
  /**
@@ -1424,7 +1437,8 @@ const _POLL_WINDOW_CLOSE_TIMEOUT = new register.Delay(2000, 10000);
1424
1437
  * If succeeds, returns the signed in user along with the provider's credential. If sign in was
1425
1438
  * unsuccessful, returns an error object containing additional information about the error.
1426
1439
  *
1427
- * This method does not work in a Node.js environment.
1440
+ * This method does not work in a Node.js environment or with {@link Auth} instances created with a
1441
+ * {@link @firebase/app#FirebaseServerApp}.
1428
1442
  *
1429
1443
  * @example
1430
1444
  * ```javascript
@@ -1448,6 +1462,9 @@ const _POLL_WINDOW_CLOSE_TIMEOUT = new register.Delay(2000, 10000);
1448
1462
  * @public
1449
1463
  */
1450
1464
  async function signInWithPopup(auth, provider, resolver) {
1465
+ if (app._isFirebaseServerApp(auth.app)) {
1466
+ return Promise.reject(register._createError(auth, "operation-not-supported-in-this-environment" /* AuthErrorCode.OPERATION_NOT_SUPPORTED */));
1467
+ }
1451
1468
  const authInternal = register._castAuth(auth);
1452
1469
  register._assertInstanceOf(auth, provider, register.FederatedAuthProvider);
1453
1470
  const resolverInternal = _withDefaultResolver(authInternal, resolver);
@@ -1462,7 +1479,8 @@ async function signInWithPopup(auth, provider, resolver) {
1462
1479
  * If the reauthentication is successful, the returned result will contain the user and the
1463
1480
  * provider's credential.
1464
1481
  *
1465
- * This method does not work in a Node.js environment.
1482
+ * This method does not work in a Node.js environment or on any {@link User} signed in by
1483
+ * {@link Auth} instances created with a {@link @firebase/app#FirebaseServerApp}.
1466
1484
  *
1467
1485
  * @example
1468
1486
  * ```javascript
@@ -1483,6 +1501,9 @@ async function signInWithPopup(auth, provider, resolver) {
1483
1501
  */
1484
1502
  async function reauthenticateWithPopup(user, provider, resolver) {
1485
1503
  const userInternal = util.getModularInstance(user);
1504
+ if (app._isFirebaseServerApp(userInternal.auth.app)) {
1505
+ return Promise.reject(register._createError(userInternal.auth, "operation-not-supported-in-this-environment" /* AuthErrorCode.OPERATION_NOT_SUPPORTED */));
1506
+ }
1486
1507
  register._assertInstanceOf(userInternal.auth, provider, register.FederatedAuthProvider);
1487
1508
  const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);
1488
1509
  const action = new PopupOperation(userInternal.auth, "reauthViaPopup" /* AuthEventType.REAUTH_VIA_POPUP */, provider, resolverInternal, userInternal);
@@ -1734,7 +1755,8 @@ function pendingRedirectKey(auth) {
1734
1755
  * Follow the {@link https://firebase.google.com/docs/auth/web/redirect-best-practices
1735
1756
  * | best practices} when using {@link signInWithRedirect}.
1736
1757
  *
1737
- * This method does not work in a Node.js environment.
1758
+ * This method does not work in a Node.js environment or with {@link Auth} instances created with a
1759
+ * {@link @firebase/app#FirebaseServerApp}.
1738
1760
  *
1739
1761
  * @example
1740
1762
  * ```javascript
@@ -1773,6 +1795,9 @@ function signInWithRedirect(auth, provider, resolver) {
1773
1795
  return _signInWithRedirect(auth, provider, resolver);
1774
1796
  }
1775
1797
  async function _signInWithRedirect(auth, provider, resolver) {
1798
+ if (app._isFirebaseServerApp(auth.app)) {
1799
+ return Promise.reject(register._serverAppCurrentUserOperationNotSupportedError(auth));
1800
+ }
1776
1801
  const authInternal = register._castAuth(auth);
1777
1802
  register._assertInstanceOf(auth, provider, register.FederatedAuthProvider);
1778
1803
  // Wait for auth initialization to complete, this will process pending redirects and clear the
@@ -1790,7 +1815,8 @@ async function _signInWithRedirect(auth, provider, resolver) {
1790
1815
  * Follow the {@link https://firebase.google.com/docs/auth/web/redirect-best-practices
1791
1816
  * | best practices} when using {@link reauthenticateWithRedirect}.
1792
1817
  *
1793
- * This method does not work in a Node.js environment.
1818
+ * This method does not work in a Node.js environment or with {@link Auth} instances
1819
+ * created with a {@link @firebase/app#FirebaseServerApp}.
1794
1820
  *
1795
1821
  * @example
1796
1822
  * ```javascript
@@ -1823,6 +1849,9 @@ function reauthenticateWithRedirect(user, provider, resolver) {
1823
1849
  async function _reauthenticateWithRedirect(user, provider, resolver) {
1824
1850
  const userInternal = util.getModularInstance(user);
1825
1851
  register._assertInstanceOf(userInternal.auth, provider, register.FederatedAuthProvider);
1852
+ if (app._isFirebaseServerApp(userInternal.auth.app)) {
1853
+ return Promise.reject(register._serverAppCurrentUserOperationNotSupportedError(userInternal.auth));
1854
+ }
1826
1855
  // Wait for auth initialization to complete, this will process pending redirects and clear the
1827
1856
  // PENDING_REDIRECT_KEY in persistence. This should be completed before starting a new
1828
1857
  // redirect and creating a PENDING_REDIRECT_KEY entry.
@@ -1840,7 +1869,8 @@ async function _reauthenticateWithRedirect(user, provider, resolver) {
1840
1869
  * Follow the {@link https://firebase.google.com/docs/auth/web/redirect-best-practices
1841
1870
  * | best practices} when using {@link linkWithRedirect}.
1842
1871
  *
1843
- * This method does not work in a Node.js environment.
1872
+ * This method does not work in a Node.js environment or with {@link Auth} instances
1873
+ * created with a {@link @firebase/app#FirebaseServerApp}.
1844
1874
  *
1845
1875
  * @example
1846
1876
  * ```javascript
@@ -1887,7 +1917,8 @@ async function _linkWithRedirect(user, provider, resolver) {
1887
1917
  * If sign-in succeeded, returns the signed in user. If sign-in was unsuccessful, fails with an
1888
1918
  * error. If no redirect operation was called, returns `null`.
1889
1919
  *
1890
- * This method does not work in a Node.js environment.
1920
+ * This method does not work in a Node.js environment or with {@link Auth} instances created with a
1921
+ * {@link @firebase/app#FirebaseServerApp}.
1891
1922
  *
1892
1923
  * @example
1893
1924
  * ```javascript
@@ -1925,6 +1956,9 @@ async function getRedirectResult(auth, resolver) {
1925
1956
  return _getRedirectResult(auth, resolver, false);
1926
1957
  }
1927
1958
  async function _getRedirectResult(auth, resolverExtern, bypassAuthState = false) {
1959
+ if (app._isFirebaseServerApp(auth.app)) {
1960
+ return Promise.reject(register._serverAppCurrentUserOperationNotSupportedError(auth));
1961
+ }
1928
1962
  const authInternal = register._castAuth(auth);
1929
1963
  const resolver = _withDefaultResolver(authInternal, resolverExtern);
1930
1964
  const action = new RedirectAction(authInternal, resolver, bypassAuthState);
@@ -2751,12 +2785,17 @@ function getAuth(app$1 = app.getApp()) {
2751
2785
  ]
2752
2786
  });
2753
2787
  const authTokenSyncPath = util.getExperimentalSetting('authTokenSyncURL');
2754
- // Don't allow urls (XSS possibility), only paths on the same domain
2755
- // (starting with a single '/')
2756
- if (authTokenSyncPath && authTokenSyncPath.match(/^\/[^\/].*/)) {
2757
- const mintCookie = mintCookieFactory(authTokenSyncPath);
2758
- register.beforeAuthStateChanged(auth, mintCookie, () => mintCookie(auth.currentUser));
2759
- register.onIdTokenChanged(auth, user => mintCookie(user));
2788
+ // Only do the Cookie exchange in a secure context
2789
+ if (authTokenSyncPath &&
2790
+ typeof isSecureContext === 'boolean' &&
2791
+ isSecureContext) {
2792
+ // Don't allow urls (XSS possibility), only paths on the same domain
2793
+ const authTokenSyncUrl = new URL(authTokenSyncPath, location.origin);
2794
+ if (location.origin === authTokenSyncUrl.origin) {
2795
+ const mintCookie = mintCookieFactory(authTokenSyncUrl.toString());
2796
+ register.beforeAuthStateChanged(auth, mintCookie, () => mintCookie(auth.currentUser));
2797
+ register.onIdTokenChanged(auth, user => mintCookie(user));
2798
+ }
2760
2799
  }
2761
2800
  const authEmulatorHost = util.getDefaultEmulatorHost('auth');
2762
2801
  if (authEmulatorHost) {