diff --git a/packages/analytics-interop-types/index.d.ts b/packages/analytics-interop-types/index.d.ts index d246734599c..95633a7046f 100644 --- a/packages/analytics-interop-types/index.d.ts +++ b/packages/analytics-interop-types/index.d.ts @@ -39,6 +39,8 @@ export interface AnalyticsCallOptions { global: boolean; } +export type FirebaseAnalyticsInternalName = 'analytics-internal'; + declare module '@firebase/component' { interface NameServiceMapping { 'analytics-internal': FirebaseAnalyticsInternal; diff --git a/packages/analytics/index.ts b/packages/analytics/index.ts index dea0398d84c..1f094900a53 100644 --- a/packages/analytics/index.ts +++ b/packages/analytics/index.ts @@ -20,7 +20,11 @@ import { FirebaseAnalyticsInternal } from '@firebase/analytics-interop-types'; import { _FirebaseNamespace } from '@firebase/app-types/private'; import { factory, settings, resetGlobalVars } from './src/factory'; import { EventName } from './src/constants'; -import { Component, ComponentType } from '@firebase/component'; +import { + Component, + ComponentType, + ComponentContainer +} from '@firebase/component'; import { ERROR_FACTORY, AnalyticsError } from './src/errors'; declare global { @@ -50,26 +54,23 @@ export function registerAnalytics(instance: _FirebaseNamespace): void { ); instance.INTERNAL.registerComponent( - new Component( - 'analytics-internal', - container => { - try { - const analytics = container - .getProvider(ANALYTICS_TYPE) - .getImmediate(); - return { - logEvent: analytics.logEvent - }; - } catch (e) { - throw ERROR_FACTORY.create( - AnalyticsError.INTEROP_COMPONENT_REG_FAILED, - { reason: e } - ); - } - }, - ComponentType.PRIVATE - ) + new Component('analytics-internal', internalFactory, ComponentType.PRIVATE) ); + + function internalFactory( + container: ComponentContainer + ): FirebaseAnalyticsInternal { + try { + const analytics = container.getProvider(ANALYTICS_TYPE).getImmediate(); + return { + logEvent: analytics.logEvent + }; + } catch (e) { + throw ERROR_FACTORY.create(AnalyticsError.INTEROP_COMPONENT_REG_FAILED, { + reason: e + }); + } + } } export { factory, settings, resetGlobalVars }; diff --git a/packages/database-types/index.d.ts b/packages/database-types/index.d.ts index 9b79970c1ea..4a9ccc2d5b9 100644 --- a/packages/database-types/index.d.ts +++ b/packages/database-types/index.d.ts @@ -99,7 +99,7 @@ export interface Reference extends Query { key: string | null; onDisconnect(): OnDisconnect; parent: Reference | null; - push(value?: any, onComplete?: (a: Error | null) => any): ThenableReference; + push(value?: any, onComplete?: (a: Error | null) => any): Reference; remove(onComplete?: (a: Error | null) => any): Promise; root: Reference; set(value: any, onComplete?: (a: Error | null) => any): Promise; @@ -132,3 +132,9 @@ export function enableLogging( logger?: boolean | ((a: string) => any), persistent?: boolean ): any; + +declare module '@firebase/component' { + interface NameServiceMapping { + 'database': FirebaseDatabase; + } +} diff --git a/packages/database/index.node.ts b/packages/database/index.node.ts index 77ec2afa615..784b959bf00 100644 --- a/packages/database/index.node.ts +++ b/packages/database/index.node.ts @@ -36,7 +36,7 @@ import { Provider, ComponentContainer } from '@firebase/component'; -import { FirebaseAuthInternal } from '@firebase/auth-interop-types'; +import { FirebaseAuthInternalName } from '@firebase/auth-interop-types'; setWebSocketImpl(Client); @@ -64,7 +64,7 @@ export function initStandalone(app: FirebaseApp, url: string, version: string) { * ComponentContainer('database-admin') is just a placeholder that doesn't perform * any actual function. */ - const authProvider = new Provider( + const authProvider = new Provider( 'auth-internal', new ComponentContainer('database-admin') ); diff --git a/packages/database/src/api/Database.ts b/packages/database/src/api/Database.ts index f98909f5c23..f6e9ba6efb1 100644 --- a/packages/database/src/api/Database.ts +++ b/packages/database/src/api/Database.ts @@ -26,12 +26,13 @@ import { validateUrl } from '../core/util/validation'; import { FirebaseApp } from '@firebase/app-types'; import { FirebaseService } from '@firebase/app-types/private'; import { RepoInfo } from '../core/RepoInfo'; +import { FirebaseDatabase } from '@firebase/database-types'; /** * Class representing a firebase database. * @implements {FirebaseService} */ -export class Database implements FirebaseService { +export class Database implements FirebaseService, FirebaseDatabase { INTERNAL: DatabaseInternals; private root_: Reference; diff --git a/packages/database/src/api/Reference.ts b/packages/database/src/api/Reference.ts index 6e110bad74c..3a1c83405f5 100644 --- a/packages/database/src/api/Reference.ts +++ b/packages/database/src/api/Reference.ts @@ -37,12 +37,13 @@ import { Deferred } from '@firebase/util'; import { SyncPoint } from '../core/SyncPoint'; import { Database } from './Database'; import { DataSnapshot } from './DataSnapshot'; +import * as types from '@firebase/database-types'; export interface ReferenceConstructor { new (repo: Repo, path: Path): Reference; } -export class Reference extends Query { +export class Reference extends Query implements types.Reference { public then: (a?: any) => Promise; public catch: (a?: Error) => Promise; diff --git a/packages/database/src/core/AuthTokenProvider.ts b/packages/database/src/core/AuthTokenProvider.ts index 2c9aada9fa9..8a05438dbfb 100644 --- a/packages/database/src/core/AuthTokenProvider.ts +++ b/packages/database/src/core/AuthTokenProvider.ts @@ -16,7 +16,10 @@ */ import { FirebaseAuthTokenData } from '@firebase/app-types/private'; -import { FirebaseAuthInternal } from '@firebase/auth-interop-types'; +import { + FirebaseAuthInternal, + FirebaseAuthInternalName +} from '@firebase/auth-interop-types'; import { Provider } from '@firebase/component'; import { log, warn } from './util/util'; import { FirebaseApp } from '@firebase/app-types'; @@ -28,7 +31,7 @@ export class AuthTokenProvider { private auth_: FirebaseAuthInternal | null = null; constructor( private app_: FirebaseApp, - private authProvider_: Provider + private authProvider_: Provider ) { this.auth_ = authProvider_.getImmediate({ optional: true }); if (!this.auth_) { diff --git a/packages/database/src/core/Repo.ts b/packages/database/src/core/Repo.ts index c198e6251a4..5f4fa7c6c46 100644 --- a/packages/database/src/core/Repo.ts +++ b/packages/database/src/core/Repo.ts @@ -44,7 +44,7 @@ import { EventRegistration } from './view/EventRegistration'; import { StatsCollection } from './stats/StatsCollection'; import { Event } from './view/Event'; import { Node } from './snap/Node'; -import { FirebaseAuthInternal } from '@firebase/auth-interop-types'; +import { FirebaseAuthInternalName } from '@firebase/auth-interop-types'; import { Provider } from '@firebase/component'; const INTERRUPT_REASON = 'repo_interrupt'; @@ -82,7 +82,7 @@ export class Repo { public repoInfo_: RepoInfo, forceRestClient: boolean, public app: FirebaseApp, - authProvider: Provider + authProvider: Provider ) { const authTokenProvider = new AuthTokenProvider(app, authProvider); diff --git a/packages/database/src/core/RepoManager.ts b/packages/database/src/core/RepoManager.ts index a48a20b9d70..16fd7b10091 100644 --- a/packages/database/src/core/RepoManager.ts +++ b/packages/database/src/core/RepoManager.ts @@ -24,7 +24,7 @@ import { validateUrl } from './util/validation'; import './Repo_transaction'; import { Database } from '../api/Database'; import { RepoInfo } from './RepoInfo'; -import { FirebaseAuthInternal } from '@firebase/auth-interop-types'; +import { FirebaseAuthInternalName } from '@firebase/auth-interop-types'; import { Provider } from '@firebase/component'; /** @const {string} */ @@ -93,7 +93,7 @@ export class RepoManager { */ databaseFromApp( app: FirebaseApp, - authProvider: Provider, + authProvider: Provider, url?: string ): Database { let dbUrl: string | undefined = url || app.options[DATABASE_URL_OPTION]; @@ -159,7 +159,7 @@ export class RepoManager { createRepo( repoInfo: RepoInfo, app: FirebaseApp, - authProvider: Provider + authProvider: Provider ): Repo { let appRepos = safeGet(this.repos_, app.name); diff --git a/packages/database/test/helpers/util.ts b/packages/database/test/helpers/util.ts index b4327407e53..3ec99785654 100644 --- a/packages/database/test/helpers/util.ts +++ b/packages/database/test/helpers/util.ts @@ -59,7 +59,8 @@ let numDatabases = 0; () => ({ getToken: () => Promise.resolve(null), addAuthTokenListener: () => {}, - removeAuthTokenListener: () => {} + removeAuthTokenListener: () => {}, + getUid: () => null }), ComponentType.PRIVATE ) diff --git a/packages/firestore-types/index.d.ts b/packages/firestore-types/index.d.ts index b800763c767..e2871bdfb8b 100644 --- a/packages/firestore-types/index.d.ts +++ b/packages/firestore-types/index.d.ts @@ -1571,3 +1571,9 @@ export interface FirestoreError { name: string; stack?: string; } + +declare module '@firebase/component' { + interface NameServiceMapping { + 'firestore': FirebaseFirestore; + } +} diff --git a/packages/firestore/src/api/credentials.ts b/packages/firestore/src/api/credentials.ts index 28d1666503e..928c386e34c 100644 --- a/packages/firestore/src/api/credentials.ts +++ b/packages/firestore/src/api/credentials.ts @@ -19,7 +19,10 @@ import { _FirebaseApp } from '@firebase/app-types/private'; import { User } from '../auth/user'; import { assert } from '../util/assert'; import { Code, FirestoreError } from '../util/error'; -import { FirebaseAuthInternal } from '@firebase/auth-interop-types'; +import { + FirebaseAuthInternal, + FirebaseAuthInternalName +} from '@firebase/auth-interop-types'; import { Provider } from '@firebase/component'; // TODO(mikelehen): This should be split into multiple files and probably @@ -151,7 +154,7 @@ export class FirebaseCredentialsProvider implements CredentialsProvider { private auth: FirebaseAuthInternal | null; - constructor(authProvider: Provider) { + constructor(authProvider: Provider) { this.tokenListener = () => { this.tokenCounter++; this.currentUser = this.getUser(); diff --git a/packages/firestore/src/api/database.ts b/packages/firestore/src/api/database.ts index d7ecbf06f02..a2a96fab245 100644 --- a/packages/firestore/src/api/database.ts +++ b/packages/firestore/src/api/database.ts @@ -105,7 +105,7 @@ import { fieldPathFromArgument, UserDataConverter } from './user_data_converter'; -import { FirebaseAuthInternal } from '@firebase/auth-interop-types'; +import { FirebaseAuthInternalName } from '@firebase/auth-interop-types'; import { Provider } from '@firebase/component'; // settings() defaults: @@ -312,7 +312,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService { constructor( databaseIdOrApp: FirestoreDatabase | FirebaseApp, - authProvider: Provider + authProvider: Provider ) { if (typeof (databaseIdOrApp as FirebaseApp).options === 'object') { // This is very likely a Firebase app object diff --git a/packages/firestore/test/util/api_helpers.ts b/packages/firestore/test/util/api_helpers.ts index 7bad9825c93..ce53e02d674 100644 --- a/packages/firestore/test/util/api_helpers.ts +++ b/packages/firestore/test/util/api_helpers.ts @@ -47,7 +47,7 @@ export const FIRESTORE = new Firestore( projectId: 'projectid', database: 'database' }, - new Provider('auth-interop', new ComponentContainer('default')) + new Provider('auth-internal', new ComponentContainer('default')) ); export function firestore(): Firestore { diff --git a/packages/functions-types/index.d.ts b/packages/functions-types/index.d.ts index d43291dabb4..d0ffb8dc2d6 100644 --- a/packages/functions-types/index.d.ts +++ b/packages/functions-types/index.d.ts @@ -133,3 +133,9 @@ export interface HttpsError extends Error { */ readonly details?: any; } + +declare module '@firebase/component' { + interface NameServiceMapping { + 'functions': FirebaseFunctions; + } +} diff --git a/packages/functions/src/api/service.ts b/packages/functions/src/api/service.ts index 3627c195c62..37fc2111fdc 100644 --- a/packages/functions/src/api/service.ts +++ b/packages/functions/src/api/service.ts @@ -27,8 +27,8 @@ import { _errorForResponse, HttpsErrorImpl } from './error'; import { ContextProvider } from '../context'; import { Serializer } from '../serializer'; import { Provider } from '@firebase/component'; -import { FirebaseAuthInternal } from '@firebase/auth-interop-types'; -import { FirebaseMessaging } from '@firebase/messaging-types'; +import { FirebaseAuthInternalName } from '@firebase/auth-interop-types'; +import { FirebaseMessagingName } from '@firebase/messaging-types'; /** * The response to an http request. @@ -83,8 +83,8 @@ export class Service implements FirebaseFunctions, FirebaseService { */ constructor( private app_: FirebaseApp, - authProvider: Provider, - messagingProvider: Provider, + authProvider: Provider, + messagingProvider: Provider, private region_: string = 'us-central1' ) { this.contextProvider = new ContextProvider(authProvider, messagingProvider); diff --git a/packages/functions/src/context.ts b/packages/functions/src/context.ts index f3d6fc787b1..cb570d6a771 100644 --- a/packages/functions/src/context.ts +++ b/packages/functions/src/context.ts @@ -15,8 +15,14 @@ * limitations under the License. */ import { _FirebaseApp } from '@firebase/app-types/private'; -import { FirebaseMessaging } from '@firebase/messaging-types'; -import { FirebaseAuthInternal } from '@firebase/auth-interop-types'; +import { + FirebaseMessaging, + FirebaseMessagingName +} from '@firebase/messaging-types'; +import { + FirebaseAuthInternal, + FirebaseAuthInternalName +} from '@firebase/auth-interop-types'; import { Provider } from '@firebase/component'; /** @@ -34,8 +40,8 @@ export class ContextProvider { private auth: FirebaseAuthInternal | null = null; private messaging: FirebaseMessaging | null = null; constructor( - authProvider: Provider, - messagingProvider: Provider + authProvider: Provider, + messagingProvider: Provider ) { this.auth = authProvider.getImmediate({ optional: true }); this.messaging = messagingProvider.getImmediate({ diff --git a/packages/functions/test/browser/callable.test.ts b/packages/functions/test/browser/callable.test.ts index 9c2b3eebb8f..a45b112b8b2 100644 --- a/packages/functions/test/browser/callable.test.ts +++ b/packages/functions/test/browser/callable.test.ts @@ -19,7 +19,10 @@ import * as sinon from 'sinon'; import { FirebaseApp } from '@firebase/app-types'; import { _FirebaseApp } from '@firebase/app-types/private'; import { makeFakeApp, createTestService } from '../utils'; -import { FirebaseMessaging } from '@firebase/messaging-types'; +import { + FirebaseMessaging, + FirebaseMessagingName +} from '@firebase/messaging-types'; import { Provider, ComponentContainer, @@ -44,7 +47,7 @@ describe('Firebase Functions > Call', () => { const messagingMock: FirebaseMessaging = ({ getToken: () => Promise.resolve('iid') } as unknown) as FirebaseMessaging; - const messagingProvider = new Provider( + const messagingProvider = new Provider( 'messaging', new ComponentContainer('test') ); diff --git a/packages/functions/test/callable.test.ts b/packages/functions/test/callable.test.ts index 2576a10aa4c..b5a62f21563 100644 --- a/packages/functions/test/callable.test.ts +++ b/packages/functions/test/callable.test.ts @@ -25,7 +25,10 @@ import { Component, ComponentType } from '@firebase/component'; -import { FirebaseAuthInternal } from '@firebase/auth-interop-types'; +import { + FirebaseAuthInternal, + FirebaseAuthInternalName +} from '@firebase/auth-interop-types'; import { makeFakeApp, createTestService } from './utils'; // eslint-disable-next-line @typescript-eslint/no-require-imports @@ -100,7 +103,7 @@ describe('Firebase Functions > Call', () => { const authMock: FirebaseAuthInternal = ({ getToken: () => Promise.resolve({ accessToken: 'token' }) } as unknown) as FirebaseAuthInternal; - const authProvider = new Provider( + const authProvider = new Provider( 'auth-internal', new ComponentContainer('test') ); diff --git a/packages/functions/test/utils.ts b/packages/functions/test/utils.ts index ebf65d8e350..d4da7d2ddde 100644 --- a/packages/functions/test/utils.ts +++ b/packages/functions/test/utils.ts @@ -17,8 +17,8 @@ import { FirebaseOptions, FirebaseApp } from '@firebase/app-types'; import { Provider, ComponentContainer } from '@firebase/component'; -import { FirebaseAuthInternal } from '@firebase/auth-interop-types'; -import { FirebaseMessaging } from '@firebase/messaging-types'; +import { FirebaseAuthInternalName } from '@firebase/auth-interop-types'; +import { FirebaseMessagingName } from '@firebase/messaging-types'; import { Service } from '../src/api/service'; export function makeFakeApp(options: FirebaseOptions = {}): FirebaseApp { @@ -43,11 +43,11 @@ export function makeFakeApp(options: FirebaseOptions = {}): FirebaseApp { export function createTestService( app: FirebaseApp, region?: string, - authProvider = new Provider( + authProvider = new Provider( 'auth-internal', new ComponentContainer('test') ), - messagingProvider = new Provider( + messagingProvider = new Provider( 'messaging', new ComponentContainer('test') ) diff --git a/packages/installations-types/index.d.ts b/packages/installations-types/index.d.ts index 2ae578e0a4d..a55a7cb378a 100644 --- a/packages/installations-types/index.d.ts +++ b/packages/installations-types/index.d.ts @@ -38,3 +38,11 @@ export interface FirebaseInstallations { */ delete(): Promise; } + +export type FirebaseInstallationsName = 'installations'; + +declare module '@firebase/component' { + interface NameServiceMapping { + 'installations': FirebaseInstallations; + } +} diff --git a/packages/installations/src/index.ts b/packages/installations/src/index.ts index 159e2cf9df7..3ad37e924d8 100644 --- a/packages/installations/src/index.ts +++ b/packages/installations/src/index.ts @@ -21,7 +21,7 @@ import { FirebaseInstallations } from '@firebase/installations-types'; import { deleteInstallation, getId, getToken } from './functions'; import { extractAppConfig } from './helpers/extract-app-config'; -import { Provider, Component, ComponentType } from '@firebase/component'; +import { Component, ComponentType } from '@firebase/component'; export function registerInstallations(instance: _FirebaseNamespace): void { const installationsName = 'installations'; @@ -59,9 +59,3 @@ declare module '@firebase/app-types' { installations(): FirebaseInstallations; } } - -declare module '@firebase/component' { - interface ComponentContainer { - getProvider(name: 'installations'): Provider; - } -} diff --git a/packages/messaging-types/index.d.ts b/packages/messaging-types/index.d.ts index 870bc02f0bb..8b788af1c20 100644 --- a/packages/messaging-types/index.d.ts +++ b/packages/messaging-types/index.d.ts @@ -50,10 +50,10 @@ export class FirebaseMessaging { usePublicVapidKey(b64PublicKey: string): void; } +export type FirebaseMessagingName = 'messaging'; + declare module '@firebase/component' { - interface ComponentContainer { - getProvider(name: 'messaging'): Provider; + interface NameServiceMapping { + 'messaging': FirebaseMessaging; } - - interface Provider {} } diff --git a/packages/messaging/index.ts b/packages/messaging/index.ts index 2d6ca89aabd..355c2f01997 100644 --- a/packages/messaging/index.ts +++ b/packages/messaging/index.ts @@ -17,10 +17,7 @@ import firebase from '@firebase/app'; import '@firebase/installations'; -import { - _FirebaseNamespace, - FirebaseService -} from '@firebase/app-types/private'; +import { _FirebaseNamespace } from '@firebase/app-types/private'; import { FirebaseMessaging } from '@firebase/messaging-types'; import { SwController } from './src/controllers/sw-controller'; import { WindowController } from './src/controllers/window-controller'; @@ -35,7 +32,7 @@ import { FirebaseInternalServices } from './src/interfaces/internal-services'; export function registerMessaging(instance: _FirebaseNamespace): void { const messagingName = 'messaging'; - const factoryMethod = (container: ComponentContainer): FirebaseService => { + const factoryMethod = (container: ComponentContainer): FirebaseMessaging => { /* Dependencies */ const app = container.getProvider('app').getImmediate(); const installations = container.getProvider('installations').getImmediate(); diff --git a/packages/messaging/src/controllers/base-controller.ts b/packages/messaging/src/controllers/base-controller.ts index f0ee2b3e6e2..632fb93355b 100644 --- a/packages/messaging/src/controllers/base-controller.ts +++ b/packages/messaging/src/controllers/base-controller.ts @@ -16,7 +16,10 @@ */ import { FirebaseApp } from '@firebase/app-types'; -import { FirebaseServiceInternals } from '@firebase/app-types/private'; +import { + FirebaseServiceInternals, + FirebaseService +} from '@firebase/app-types/private'; import { FirebaseMessaging } from '@firebase/messaging-types'; import { CompleteFn, @@ -42,7 +45,8 @@ export type BgMessageHandler = ( // Token should be refreshed once a week. export const TOKEN_EXPIRATION_MILLIS = 7 * 24 * 60 * 60 * 1000; // 7 days -export abstract class BaseController implements FirebaseMessaging { +export abstract class BaseController + implements FirebaseMessaging, FirebaseService { INTERNAL: FirebaseServiceInternals; readonly app: FirebaseApp; private readonly tokenDetailsModel: TokenDetailsModel; diff --git a/packages/messaging/src/interfaces/internal-services.ts b/packages/messaging/src/interfaces/internal-services.ts index b122ddaae83..7d448cc1102 100644 --- a/packages/messaging/src/interfaces/internal-services.ts +++ b/packages/messaging/src/interfaces/internal-services.ts @@ -17,11 +17,11 @@ import { FirebaseApp } from '@firebase/app-types'; import { FirebaseInstallations } from '@firebase/installations-types'; -import { FirebaseAnalyticsInternal } from '@firebase/analytics-interop-types'; +import { FirebaseAnalyticsInternalName } from '@firebase/analytics-interop-types'; import { Provider } from '@firebase/component'; export interface FirebaseInternalServices { app: FirebaseApp; installations: FirebaseInstallations; - analyticsProvider: Provider; + analyticsProvider: Provider; } diff --git a/packages/messaging/test/index.test.ts b/packages/messaging/test/index.test.ts index f5c17df2fdc..baa33ab8aa3 100644 --- a/packages/messaging/test/index.test.ts +++ b/packages/messaging/test/index.test.ts @@ -19,10 +19,7 @@ import { expect } from 'chai'; import { stub, restore, SinonStub } from 'sinon'; import { FirebaseApp } from '@firebase/app-types'; -import { - _FirebaseNamespace, - FirebaseService -} from '@firebase/app-types/private'; +import { _FirebaseNamespace } from '@firebase/app-types/private'; import { registerMessaging } from '../index'; import { ErrorCode } from '../src/models/errors'; @@ -39,6 +36,7 @@ import { Component, ComponentType } from '@firebase/component'; +import { FirebaseMessagingName } from '@firebase/messaging-types'; describe('Firebase Messaging > registerMessaging', () => { let registerComponent: SinonStub; @@ -62,7 +60,7 @@ describe('Firebase Messaging > registerMessaging', () => { }); describe('factoryMethod', () => { - let factoryMethod: InstanceFactory; + let factoryMethod: InstanceFactory; let fakeApp: FirebaseApp; let fakeContainer: ComponentContainer; diff --git a/packages/messaging/test/testing-utils/make-fake-firebase-services.ts b/packages/messaging/test/testing-utils/make-fake-firebase-services.ts index d4ddebb7d35..1a0340bbef7 100644 --- a/packages/messaging/test/testing-utils/make-fake-firebase-services.ts +++ b/packages/messaging/test/testing-utils/make-fake-firebase-services.ts @@ -17,7 +17,7 @@ import { FirebaseApp, FirebaseOptions } from '@firebase/app-types'; import { FirebaseInstallations } from '@firebase/installations-types'; -import { FirebaseAnalyticsInternal } from '@firebase/analytics-interop-types'; +import { FirebaseAnalyticsInternalName } from '@firebase/analytics-interop-types'; import { Provider, ComponentContainer } from '@firebase/component'; import { FirebaseInternalServices } from '../../src/interfaces/internal-services'; @@ -61,10 +61,10 @@ export function makeFakeInstallations(): FirebaseInstallations { } export function makeFakeAnalyticsProvider(): Provider< - FirebaseAnalyticsInternal + FirebaseAnalyticsInternalName > { - return new Provider( - 'analytics-interop', + return new Provider( + 'analytics-internal', new ComponentContainer('test') ); } diff --git a/packages/performance-types/index.d.ts b/packages/performance-types/index.d.ts index c39c7eb9881..9197a734e91 100644 --- a/packages/performance-types/index.d.ts +++ b/packages/performance-types/index.d.ts @@ -109,3 +109,9 @@ export interface PerformanceTrace { */ getAttributes(): { [key: string]: string }; } + +declare module '@firebase/component' { + interface NameServiceMapping { + 'performance': FirebasePerformance; + } +} diff --git a/packages/remote-config-types/index.d.ts b/packages/remote-config-types/index.d.ts index fcbe2341139..f46585d899f 100644 --- a/packages/remote-config-types/index.d.ts +++ b/packages/remote-config-types/index.d.ts @@ -172,3 +172,9 @@ export type FetchStatus = 'no-fetch-yet' | 'success' | 'failure' | 'throttle'; * Defines levels of Remote Config logging. */ export type LogLevel = 'debug' | 'error' | 'silent'; + +declare module '@firebase/component' { + interface NameServiceMapping { + 'remoteConfig': RemoteConfig; + } +} diff --git a/packages/storage-types/index.d.ts b/packages/storage-types/index.d.ts index 29c0c97c6d9..698fae97655 100644 --- a/packages/storage-types/index.d.ts +++ b/packages/storage-types/index.d.ts @@ -126,3 +126,9 @@ export class FirebaseStorage { setMaxOperationRetryTime(time: number): void; setMaxUploadRetryTime(time: number): void; } + +declare module '@firebase/component' { + interface NameServiceMapping { + 'storage': FirebaseStorage; + } +} diff --git a/packages/storage/src/implementation/authwrapper.ts b/packages/storage/src/implementation/authwrapper.ts index 9037743c74c..2caa98bb2c5 100644 --- a/packages/storage/src/implementation/authwrapper.ts +++ b/packages/storage/src/implementation/authwrapper.ts @@ -32,7 +32,7 @@ import { FirebaseAuthTokenData } from '@firebase/app-types/private'; import { Provider } from '@firebase/component'; -import { FirebaseAuthInternal } from '@firebase/auth-interop-types'; +import { FirebaseAuthInternalName } from '@firebase/auth-interop-types'; /** * @param app If null, getAuthToken always resolves with null. @@ -42,7 +42,7 @@ import { FirebaseAuthInternal } from '@firebase/auth-interop-types'; */ export class AuthWrapper { private app_: FirebaseApp | null; - private authProvider_: Provider; + private authProvider_: Provider; private bucket_: string | null = null; private storageRefMaker_: (p1: AuthWrapper, p2: Location) => Reference; @@ -56,7 +56,7 @@ export class AuthWrapper { constructor( app: FirebaseApp | null, - authProvider: Provider, + authProvider: Provider, maker: (p1: AuthWrapper, p2: Location) => Reference, requestMaker: requestMaker, service: Service, diff --git a/packages/storage/src/service.ts b/packages/storage/src/service.ts index 99c24024ac3..88b317fdf2c 100644 --- a/packages/storage/src/service.ts +++ b/packages/storage/src/service.ts @@ -23,7 +23,7 @@ import * as RequestExports from './implementation/request'; import { XhrIoPool } from './implementation/xhriopool'; import { Reference } from './reference'; import { Provider } from '@firebase/component'; -import { FirebaseAuthInternal } from '@firebase/auth-interop-types'; +import { FirebaseAuthInternalName } from '@firebase/auth-interop-types'; /** * A service that provides firebaseStorage.Reference instances. @@ -39,7 +39,7 @@ export class Service { constructor( app: FirebaseApp, - authProvider: Provider, + authProvider: Provider, pool: XhrIoPool, url?: string ) {