@firebase/auth 0.22.0-canary.852ded64d → 0.22.0-canary.ea3849fff

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 (91) hide show
  1. package/dist/auth.d.ts +1 -0
  2. package/dist/browser-cjs/{index-845ba5cf.js → index-a4932583.js} +62 -26
  3. package/dist/browser-cjs/index-a4932583.js.map +1 -0
  4. package/dist/browser-cjs/index.js +1 -1
  5. package/dist/browser-cjs/internal.js +1 -1
  6. package/dist/browser-cjs/src/api/index.d.ts +2 -1
  7. package/dist/browser-cjs/src/core/auth/auth_impl.d.ts +4 -1
  8. package/dist/browser-cjs/src/core/util/handler.d.ts +1 -1
  9. package/dist/browser-cjs/src/core/util/log.d.ts +1 -0
  10. package/dist/browser-cjs/src/model/auth.d.ts +1 -0
  11. package/dist/browser-cjs/test/helpers/mock_auth.d.ts +5 -0
  12. package/dist/cordova/index.js +2 -2
  13. package/dist/cordova/internal.js +15 -6
  14. package/dist/cordova/internal.js.map +1 -1
  15. package/dist/cordova/{popup_redirect-77fcd73a.js → popup_redirect-e2867f33.js} +120 -64
  16. package/dist/cordova/popup_redirect-e2867f33.js.map +1 -0
  17. package/dist/cordova/src/api/index.d.ts +2 -1
  18. package/dist/cordova/src/core/auth/auth_impl.d.ts +4 -1
  19. package/dist/cordova/src/core/util/handler.d.ts +1 -1
  20. package/dist/cordova/src/core/util/log.d.ts +1 -0
  21. package/dist/cordova/src/model/auth.d.ts +1 -0
  22. package/dist/cordova/test/helpers/mock_auth.d.ts +5 -0
  23. package/dist/esm2017/{index-c088f05c.js → index-5eca8e8e.js} +62 -26
  24. package/dist/esm2017/index-5eca8e8e.js.map +1 -0
  25. package/dist/esm2017/index.js +1 -1
  26. package/dist/esm2017/internal.js +2 -2
  27. package/dist/esm2017/src/api/index.d.ts +2 -1
  28. package/dist/esm2017/src/core/auth/auth_impl.d.ts +4 -1
  29. package/dist/esm2017/src/core/util/handler.d.ts +1 -1
  30. package/dist/esm2017/src/core/util/log.d.ts +1 -0
  31. package/dist/esm2017/src/model/auth.d.ts +1 -0
  32. package/dist/esm2017/test/helpers/mock_auth.d.ts +5 -0
  33. package/dist/esm5/{index-7119ea16.js → index-ea49ccf6.js} +133 -68
  34. package/dist/esm5/index-ea49ccf6.js.map +1 -0
  35. package/dist/esm5/index.js +1 -1
  36. package/dist/esm5/internal.js +2 -2
  37. package/dist/esm5/src/api/index.d.ts +2 -1
  38. package/dist/esm5/src/core/auth/auth_impl.d.ts +4 -1
  39. package/dist/esm5/src/core/util/handler.d.ts +1 -1
  40. package/dist/esm5/src/core/util/log.d.ts +1 -0
  41. package/dist/esm5/src/model/auth.d.ts +1 -0
  42. package/dist/esm5/test/helpers/mock_auth.d.ts +5 -0
  43. package/dist/index.webworker.esm5.js +59 -22
  44. package/dist/index.webworker.esm5.js.map +1 -1
  45. package/dist/node/index.js +1 -1
  46. package/dist/node/internal.js +61 -42
  47. package/dist/node/internal.js.map +1 -1
  48. package/dist/node/src/api/index.d.ts +2 -1
  49. package/dist/node/src/core/auth/auth_impl.d.ts +4 -1
  50. package/dist/node/src/core/util/handler.d.ts +1 -1
  51. package/dist/node/src/core/util/log.d.ts +1 -0
  52. package/dist/node/src/model/auth.d.ts +1 -0
  53. package/dist/node/test/helpers/mock_auth.d.ts +5 -0
  54. package/dist/node/{totp-220d9279.js → totp-e4b57fc2.js} +60 -23
  55. package/dist/node/totp-e4b57fc2.js.map +1 -0
  56. package/dist/node-esm/index.js +1 -1
  57. package/dist/node-esm/internal.js +16 -4
  58. package/dist/node-esm/internal.js.map +1 -1
  59. package/dist/node-esm/src/api/index.d.ts +2 -1
  60. package/dist/node-esm/src/core/auth/auth_impl.d.ts +4 -1
  61. package/dist/node-esm/src/core/util/handler.d.ts +1 -1
  62. package/dist/node-esm/src/core/util/log.d.ts +1 -0
  63. package/dist/node-esm/src/model/auth.d.ts +1 -0
  64. package/dist/node-esm/test/helpers/mock_auth.d.ts +5 -0
  65. package/dist/node-esm/{totp-3a805e5d.js → totp-3a67b88c.js} +45 -22
  66. package/dist/node-esm/totp-3a67b88c.js.map +1 -0
  67. package/dist/rn/index.js +1 -1
  68. package/dist/rn/internal.js +74 -46
  69. package/dist/rn/internal.js.map +1 -1
  70. package/dist/rn/{phone-a751cf13.js → phone-6ea1b9dd.js} +60 -23
  71. package/dist/rn/phone-6ea1b9dd.js.map +1 -0
  72. package/dist/rn/src/api/index.d.ts +2 -1
  73. package/dist/rn/src/core/auth/auth_impl.d.ts +4 -1
  74. package/dist/rn/src/core/util/handler.d.ts +1 -1
  75. package/dist/rn/src/core/util/log.d.ts +1 -0
  76. package/dist/rn/src/model/auth.d.ts +1 -0
  77. package/dist/rn/test/helpers/mock_auth.d.ts +5 -0
  78. package/dist/src/api/index.d.ts +2 -1
  79. package/dist/src/core/auth/auth_impl.d.ts +4 -1
  80. package/dist/src/core/util/handler.d.ts +1 -1
  81. package/dist/src/core/util/log.d.ts +1 -0
  82. package/dist/src/model/auth.d.ts +1 -0
  83. package/dist/test/helpers/mock_auth.d.ts +5 -0
  84. package/package.json +6 -6
  85. package/dist/browser-cjs/index-845ba5cf.js.map +0 -1
  86. package/dist/cordova/popup_redirect-77fcd73a.js.map +0 -1
  87. package/dist/esm2017/index-c088f05c.js.map +0 -1
  88. package/dist/esm5/index-7119ea16.js.map +0 -1
  89. package/dist/node/totp-220d9279.js.map +0 -1
  90. package/dist/node-esm/totp-3a805e5d.js.map +0 -1
  91. package/dist/rn/phone-a751cf13.js.map +0 -1
package/dist/auth.d.ts CHANGED
@@ -845,6 +845,7 @@ declare interface AuthInternal extends Auth {
845
845
  _logFramework(framework: string): void;
846
846
  _getFrameworks(): readonly string[];
847
847
  _getAdditionalHeaders(): Promise<Record<string, string>>;
848
+ _getAppCheckToken(): Promise<string | undefined>;
848
849
  readonly name: AppName;
849
850
  readonly config: ConfigInternal;
850
851
  languageCode: string | null;
@@ -423,6 +423,11 @@ const AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY = {
423
423
  * limitations under the License.
424
424
  */
425
425
  const logClient = new logger.Logger('@firebase/auth');
426
+ function _logWarn(msg, ...args) {
427
+ if (logClient.logLevel <= logger.LogLevel.WARN) {
428
+ logClient.warn(`Auth (${app.SDK_VERSION}): ${msg}`, ...args);
429
+ }
430
+ }
426
431
  function _logError(msg, ...args) {
427
432
  if (logClient.logLevel <= logger.LogLevel.ERROR) {
428
433
  logClient.error(`Auth (${app.SDK_VERSION}): ${msg}`, ...args);
@@ -2229,9 +2234,10 @@ class AuthMiddlewareQueue {
2229
2234
  * limitations under the License.
2230
2235
  */
2231
2236
  class AuthImpl {
2232
- constructor(app, heartbeatServiceProvider, config) {
2237
+ constructor(app, heartbeatServiceProvider, appCheckServiceProvider, config) {
2233
2238
  this.app = app;
2234
2239
  this.heartbeatServiceProvider = heartbeatServiceProvider;
2240
+ this.appCheckServiceProvider = appCheckServiceProvider;
2235
2241
  this.config = config;
2236
2242
  this.currentUser = null;
2237
2243
  this.emulatorConfig = null;
@@ -2647,8 +2653,26 @@ class AuthImpl {
2647
2653
  if (heartbeatsHeader) {
2648
2654
  headers["X-Firebase-Client" /* HttpHeader.X_FIREBASE_CLIENT */] = heartbeatsHeader;
2649
2655
  }
2656
+ // If the App Check service exists, add the App Check token in the headers
2657
+ const appCheckToken = await this._getAppCheckToken();
2658
+ if (appCheckToken) {
2659
+ headers["X-Firebase-AppCheck" /* HttpHeader.X_FIREBASE_APP_CHECK */] = appCheckToken;
2660
+ }
2650
2661
  return headers;
2651
2662
  }
2663
+ async _getAppCheckToken() {
2664
+ var _a;
2665
+ const appCheckTokenResult = await ((_a = this.appCheckServiceProvider
2666
+ .getImmediate({ optional: true })) === null || _a === void 0 ? void 0 : _a.getToken());
2667
+ if (appCheckTokenResult === null || appCheckTokenResult === void 0 ? void 0 : appCheckTokenResult.error) {
2668
+ // Context: appCheck.getToken() will never throw even if an error happened.
2669
+ // In the error case, a dummy token will be returned along with an error field describing
2670
+ // the error. In general, we shouldn't care about the error condition and just use
2671
+ // the token (actual or dummy) to send requests.
2672
+ _logWarn(`Error while retrieving App Check token: ${appCheckTokenResult.error}`);
2673
+ }
2674
+ return appCheckTokenResult === null || appCheckTokenResult === void 0 ? void 0 : appCheckTokenResult.token;
2675
+ }
2652
2676
  }
2653
2677
  /**
2654
2678
  * Method to be used to cast down to our private implmentation of Auth.
@@ -9114,7 +9138,13 @@ const WIDGET_PATH = '__/auth/handler';
9114
9138
  * @internal
9115
9139
  */
9116
9140
  const EMULATOR_WIDGET_PATH = 'emulator/auth/handler';
9117
- function _getRedirectUrl(auth, provider, authType, redirectUrl, eventId, additionalParams) {
9141
+ /**
9142
+ * Fragment name for the App Check token that gets passed to the widget
9143
+ *
9144
+ * @internal
9145
+ */
9146
+ const FIREBASE_APP_CHECK_FRAGMENT_ID = encodeURIComponent('fac');
9147
+ async function _getRedirectUrl(auth, provider, authType, redirectUrl, eventId, additionalParams) {
9118
9148
  _assert(auth.config.authDomain, auth, "auth-domain-config-required" /* AuthErrorCode.MISSING_AUTH_DOMAIN */);
9119
9149
  _assert(auth.config.apiKey, auth, "invalid-api-key" /* AuthErrorCode.INVALID_API_KEY */);
9120
9150
  const params = {
@@ -9153,7 +9183,13 @@ function _getRedirectUrl(auth, provider, authType, redirectUrl, eventId, additio
9153
9183
  delete paramsDict[key];
9154
9184
  }
9155
9185
  }
9156
- return `${getHandlerBase(auth)}?${util.querystring(paramsDict).slice(1)}`;
9186
+ // Sets the App Check token to pass to the widget
9187
+ const appCheckToken = await auth._getAppCheckToken();
9188
+ const appCheckTokenFragment = appCheckToken
9189
+ ? `#${FIREBASE_APP_CHECK_FRAGMENT_ID}=${encodeURIComponent(appCheckToken)}`
9190
+ : '';
9191
+ // Start at index 1 to skip the leading '&' in the query string
9192
+ return `${getHandlerBase(auth)}?${util.querystring(paramsDict).slice(1)}${appCheckTokenFragment}`;
9157
9193
  }
9158
9194
  function getHandlerBase({ config }) {
9159
9195
  if (!config.emulator) {
@@ -9197,12 +9233,13 @@ class BrowserPopupRedirectResolver {
9197
9233
  async _openPopup(auth, provider, authType, eventId) {
9198
9234
  var _a;
9199
9235
  debugAssert((_a = this.eventManagers[auth._key()]) === null || _a === void 0 ? void 0 : _a.manager, '_initialize() not called before _openPopup()');
9200
- const url = _getRedirectUrl(auth, provider, authType, _getCurrentUrl(), eventId);
9236
+ const url = await _getRedirectUrl(auth, provider, authType, _getCurrentUrl(), eventId);
9201
9237
  return _open(auth, url, _generateEventId());
9202
9238
  }
9203
9239
  async _openRedirect(auth, provider, authType, eventId) {
9204
9240
  await this._originValidation(auth);
9205
- _setWindowLocation(_getRedirectUrl(auth, provider, authType, _getCurrentUrl(), eventId));
9241
+ const url = await _getRedirectUrl(auth, provider, authType, _getCurrentUrl(), eventId);
9242
+ _setWindowLocation(url);
9206
9243
  return new Promise(() => { });
9207
9244
  }
9208
9245
  _initialize(auth) {
@@ -9487,7 +9524,7 @@ function _isEmptyString(input) {
9487
9524
  }
9488
9525
 
9489
9526
  var name = "@firebase/auth";
9490
- var version = "0.22.0-canary.852ded64d";
9527
+ var version = "0.22.0-canary.ea3849fff";
9491
9528
 
9492
9529
  /**
9493
9530
  * @license
@@ -9593,26 +9630,25 @@ function registerAuth(clientPlatform) {
9593
9630
  app._registerComponent(new component.Component("auth" /* _ComponentName.AUTH */, (container, { options: deps }) => {
9594
9631
  const app = container.getProvider('app').getImmediate();
9595
9632
  const heartbeatServiceProvider = container.getProvider('heartbeat');
9633
+ const appCheckServiceProvider = container.getProvider('app-check-internal');
9596
9634
  const { apiKey, authDomain } = app.options;
9597
- return ((app, heartbeatServiceProvider) => {
9598
- _assert(apiKey && !apiKey.includes(':'), "invalid-api-key" /* AuthErrorCode.INVALID_API_KEY */, { appName: app.name });
9599
- // Auth domain is optional if IdP sign in isn't being used
9600
- _assert(!(authDomain === null || authDomain === void 0 ? void 0 : authDomain.includes(':')), "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */, {
9601
- appName: app.name
9602
- });
9603
- const config = {
9604
- apiKey,
9605
- authDomain,
9606
- clientPlatform,
9607
- apiHost: "identitytoolkit.googleapis.com" /* DefaultConfig.API_HOST */,
9608
- tokenApiHost: "securetoken.googleapis.com" /* DefaultConfig.TOKEN_API_HOST */,
9609
- apiScheme: "https" /* DefaultConfig.API_SCHEME */,
9610
- sdkClientVersion: _getClientVersion(clientPlatform)
9611
- };
9612
- const authInstance = new AuthImpl(app, heartbeatServiceProvider, config);
9613
- _initializeAuthInstance(authInstance, deps);
9614
- return authInstance;
9615
- })(app, heartbeatServiceProvider);
9635
+ _assert(apiKey && !apiKey.includes(':'), "invalid-api-key" /* AuthErrorCode.INVALID_API_KEY */, { appName: app.name });
9636
+ // Auth domain is optional if IdP sign in isn't being used
9637
+ _assert(!(authDomain === null || authDomain === void 0 ? void 0 : authDomain.includes(':')), "argument-error" /* AuthErrorCode.ARGUMENT_ERROR */, {
9638
+ appName: app.name
9639
+ });
9640
+ const config = {
9641
+ apiKey,
9642
+ authDomain,
9643
+ clientPlatform,
9644
+ apiHost: "identitytoolkit.googleapis.com" /* DefaultConfig.API_HOST */,
9645
+ tokenApiHost: "securetoken.googleapis.com" /* DefaultConfig.TOKEN_API_HOST */,
9646
+ apiScheme: "https" /* DefaultConfig.API_SCHEME */,
9647
+ sdkClientVersion: _getClientVersion(clientPlatform)
9648
+ };
9649
+ const authInstance = new AuthImpl(app, heartbeatServiceProvider, appCheckServiceProvider, config);
9650
+ _initializeAuthInstance(authInstance, deps);
9651
+ return authInstance;
9616
9652
  }, "PUBLIC" /* ComponentType.PUBLIC */)
9617
9653
  /**
9618
9654
  * Auth can only be initialized by explicitly calling getAuth() or initializeAuth()
@@ -9816,4 +9852,4 @@ exports.updateProfile = updateProfile;
9816
9852
  exports.useDeviceLanguage = useDeviceLanguage;
9817
9853
  exports.verifyBeforeUpdateEmail = verifyBeforeUpdateEmail;
9818
9854
  exports.verifyPasswordResetCode = verifyPasswordResetCode;
9819
- //# sourceMappingURL=index-845ba5cf.js.map
9855
+ //# sourceMappingURL=index-a4932583.js.map