@rxap/firebase
Version:
This package provides Angular modules and services to integrate with Firebase, including App Check, Messaging, and Storage. It offers providers for configuring Firebase options and emulators, as well as an HTTP interceptor for App Check. The package also
1 lines • 32 kB
Source Map (JSON)
{"version":3,"file":"rxap-firebase.mjs","sources":["../../../../../packages/angular/firebase/src/lib/tokens.ts","../../../../../packages/angular/firebase/src/lib/app-check.ts","../../../../../packages/angular/firebase/src/lib/firebase-app-check.http-interceptor.ts","../../../../../packages/angular/firebase/src/lib/firebase-messaging.service.ts","../../../../../packages/angular/firebase/src/lib/firebase.provider.ts","../../../../../packages/angular/firebase/src/lib/storage.ts","../../../../../packages/angular/firebase/src/index.ts","../../../../../packages/angular/firebase/src/rxap-firebase.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const RXAP_REQUEST_CLOUD_MESSAGING_TOKEN = new InjectionToken('rxap/firebase/request-cloud-messaging-token');\nexport const APP_CHECK_ENABLED = new InjectionToken('rxap/firebase/app-check-enabled');\nexport const APP_CHECK_SITE_KEY = new InjectionToken('rxap/firebase/app-check-site-key');\nexport const APP_CHECK_IS_TOKEN_AUTO_REFRESH_ENABLED = new InjectionToken(\n 'rxap/firebase/app-check-is-token-auto-refresh-enabled');\nexport const FIREBASE_APP_CHECK_HTTP_INTERCEPTOR_URL_PATTERN = new InjectionToken<RegExp>(\n 'firebase-app-check-http-interceptor-url-pattern');\n","import {\n Inject,\n Injectable,\n isDevMode,\n NgModule,\n NgZone,\n Optional,\n} from '@angular/core';\nimport { ConfigService } from '@rxap/config';\nimport {\n EMPTY,\n Observable,\n} from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\nimport {\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n ɵfirebaseAppFactory,\n} from '@angular/fire/compat';\nimport { FirebaseOptions } from 'firebase/app';\nimport {\n AppCheck,\n AppCheckTokenResult,\n getToken,\n onTokenChanged,\n setTokenAutoRefreshEnabled,\n} from '@angular/fire/app-check';\nimport {\n APP_CHECK_ENABLED,\n APP_CHECK_IS_TOKEN_AUTO_REFRESH_ENABLED,\n APP_CHECK_SITE_KEY,\n} from './tokens';\n\n@Injectable()\nexport class AppCheckService {\n\n public readonly onTokenChanged$: Observable<AppCheckTokenResult> = EMPTY;\n private readonly _appCheck: AppCheck | null = null;\n\n constructor(\n @Inject(FIREBASE_OPTIONS)\n options: FirebaseOptions,\n @Optional()\n @Inject(FIREBASE_APP_NAME)\n nameOrConfig: string,\n @Inject(NgZone)\n zone: NgZone,\n private readonly config: ConfigService,\n @Optional()\n @Inject(APP_CHECK_ENABLED)\n private readonly enabled: boolean | null,\n @Optional()\n @Inject(APP_CHECK_SITE_KEY)\n siteKey: string | null,\n @Optional()\n @Inject(APP_CHECK_IS_TOKEN_AUTO_REFRESH_ENABLED)\n isTokenAutoRefreshEnabled: boolean | null,\n ) {\n if (this.enabled) {\n if (siteKey) {\n const app: any = ɵfirebaseAppFactory(options, zone, nameOrConfig);\n const appCheck = this._appCheck = app.appCheck();\n appCheck.activate(\n siteKey,\n isTokenAutoRefreshEnabled ?? undefined,\n );\n this.onTokenChanged$ = (new Observable<AppCheckTokenResult>(subscriber => {\n onTokenChanged(\n appCheck,\n tokenResult => subscriber.next(tokenResult),\n error => subscriber.error(error),\n () => subscriber.complete(),\n );\n })).pipe(\n shareReplay(1),\n );\n } else {\n if (isDevMode()) {\n console.error('The app check site key is not provided');\n }\n }\n } else {\n if (isDevMode()) {\n console.warn('App check is disabled');\n }\n }\n }\n\n public getToken(forceRefresh?: boolean): Promise<string> {\n if (this._appCheck) {\n return getToken(this._appCheck, forceRefresh).then(result => result.token) ??\n Promise.reject(new Error('firebase app check is not initialized'));\n }\n return Promise.reject(new Error('firebase app check is not initialized'));\n }\n\n public setTokenAutoRefreshEnabled(isTokenAutoRefreshEnabled: boolean): void {\n if (this._appCheck) {\n setTokenAutoRefreshEnabled(this._appCheck, isTokenAutoRefreshEnabled);\n }\n }\n\n}\n\n@NgModule({\n providers: [ AppCheckService ],\n})\nexport class RxapAngularFireAppCheckModule {\n\n constructor(\n @Inject(AppCheckService)\n public readonly appCheck: AppCheckService,\n ) {\n }\n\n}\n","import {\n Inject,\n Injectable,\n Optional,\n Provider,\n} from '@angular/core';\nimport { HTTP_INTERCEPTORS, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { coerceArray } from '@rxap/utilities';\nimport {\n map,\n switchMap,\n} from 'rxjs/operators';\nimport {\n from,\n Observable,\n} from 'rxjs';\nimport {\n AppCheck,\n getToken,\n} from '@angular/fire/app-check';\nimport {\n APP_CHECK_ENABLED,\n FIREBASE_APP_CHECK_HTTP_INTERCEPTOR_URL_PATTERN,\n} from './tokens';\n\n@Injectable()\nexport class FirebaseAppCheckHttpInterceptor implements HttpInterceptor {\n\n private readonly urlPattern: RegExp[] = [];\n\n constructor(\n public readonly appCheck: AppCheck,\n @Inject(FIREBASE_APP_CHECK_HTTP_INTERCEPTOR_URL_PATTERN)\n urlPattern: RegExp | RegExp[],\n @Optional()\n @Inject(APP_CHECK_ENABLED)\n private readonly enabled: boolean | null,\n ) {\n this.urlPattern = coerceArray(urlPattern);\n }\n\n public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (this.enabled && this.isMatch(req)) {\n return from(getToken(this.appCheck)).pipe(\n map(response => response.token),\n switchMap(token => next.handle(req.clone({\n setHeaders: {\n 'X-Firebase-AppCheck': token,\n },\n }))),\n );\n }\n return next.handle(req);\n }\n\n private isMatch(req: HttpRequest<any>) {\n return this.urlPattern.some(pattern => req.url.match(pattern));\n }\n\n}\n\nexport const FIREBASE_APP_CHECK_HTTP_INTERCEPTOR: Provider = {\n provide: HTTP_INTERCEPTORS,\n useClass: FirebaseAppCheckHttpInterceptor,\n multi: true,\n};\n","import {\n Inject,\n Injectable,\n Optional,\n} from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport {\n mergeMapTo,\n tap,\n} from 'rxjs/operators';\nimport { RXAP_REQUEST_CLOUD_MESSAGING_TOKEN } from './tokens';\nimport { AngularFireMessaging } from '@angular/fire/compat/messaging';\n\nexport interface Message {\n collapse_key: string;\n from: string;\n notification: {\n body: string;\n click_action: string;\n title: string;\n };\n}\n\n@Injectable({ providedIn: 'root' })\nexport class RxapFirebaseMessagingService {\n public token$ = new ReplaySubject<string | null>(1);\n\n constructor(\n @Inject(AngularFireMessaging)\n public readonly messaging: AngularFireMessaging,\n @Optional()\n @Inject(RXAP_REQUEST_CLOUD_MESSAGING_TOKEN)\n public readonly requestPermissionImminently = false,\n ) {\n this.messaging.messages\n .pipe(\n tap((message: any) =>\n this.showNotification(\n message.notification.title,\n message.notification.body,\n ),\n ),\n )\n .subscribe();\n if (this.requestPermissionImminently) {\n this.requestPermission();\n }\n }\n\n public requestPermission() {\n console.log('request notification permission');\n this.messaging.requestPermission\n .pipe(mergeMapTo(this.messaging.tokenChanges))\n .subscribe(\n (token) => {\n console.info('cloud messaging permission is granted');\n this.token$.next(token);\n },\n () => console.error('cloud messaging permission is denied'),\n );\n }\n\n public showNotification(title: string, body: string): void {\n // Let's check if the browser supports notifications\n if (!('Notification' in window)) {\n alert('This browser does not support desktop notification');\n }\n\n // Let's check whether notification permissions have already been granted\n else if (Notification.permission === 'granted') {\n // If it's okay let's create a notification\n new Notification(title, { body });\n } else {\n console.warn('Notification permission is not granted');\n }\n }\n}\n","import {\n NgZone,\n Optional,\n Provider,\n} from '@angular/core';\nimport { ConfigService } from '@rxap/config';\nimport { FirebaseConfig } from './firebase.config';\nimport { FirebaseApp } from '@angular/fire/app';\nimport {\n LANGUAGE_CODE,\n PERSISTENCE,\n SETTINGS as AUTH_SETTINGS,\n TENANT_ID,\n USE_DEVICE_LANGUAGE,\n USE_EMULATOR as USE_AUTH_EMULATOR,\n} from '@angular/fire/compat/auth';\nimport {\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n ɵfirebaseAppFactory,\n} from '@angular/fire/compat';\nimport {\n DATA_COLLECTION_ENABLED,\n INSTRUMENTATION_ENABLED,\n} from '@angular/fire/compat/performance';\nimport {\n BUCKET,\n MAX_OPERATION_RETRY_TIME,\n MAX_UPLOAD_RETRY_TIME,\n} from '@angular/fire/compat/storage';\nimport {\n APP_NAME,\n COLLECTION_ENABLED,\n} from '@angular/fire/compat/analytics';\nimport {\n SERVICE_WORKER,\n VAPID_KEY,\n} from '@angular/fire/compat/messaging';\nimport {\n ENABLE_PERSISTENCE,\n PERSISTENCE_SETTINGS,\n SETTINGS as FIRESTORE_SETTINGS,\n USE_EMULATOR as USE_FIRESTORE_EMULATOR,\n} from '@angular/fire/compat/firestore';\nimport {\n ORIGIN,\n REGION,\n USE_EMULATOR as USE_FUNCTIONS_EMULATOR,\n} from '@angular/fire/compat/functions';\nimport {\n APP_CHECK_ENABLED,\n APP_CHECK_IS_TOKEN_AUTO_REFRESH_ENABLED,\n APP_CHECK_SITE_KEY,\n} from './tokens';\nimport { AppCheckService } from './app-check';\n\nexport function FirebaseOptionsTokenFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.options');\n}\n\nexport function FirebaseNameOrConfigTokenFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.name', null);\n}\n\nexport function EnablePersistenceTokenFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.firestore.enablePersistence', false);\n}\n\nexport function PersistenceSettingsTokenFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.firestore.persistenceSettings', null);\n}\n\nexport function FirestoreSettingsTokenFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.firestore.settings', null);\n}\n\nexport function FunctionsRegionFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.functions.region', configService.get('firebase.region', null));\n}\n\nexport function FunctionsOriginFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.functions.origin', configService.get('firebase.origin', null));\n}\n\nexport function FunctionsNewOriginBehaviorFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.functions.newOriginBehavior');\n}\n\nexport function InstrumentationEnabledFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.performance.instrumentationEnabled');\n}\n\nexport function DataCollectionEnabledFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.performance.dataCollectionEnabled');\n}\n\nexport function VapidKeyFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.messaging.vapid', configService.get('firebase.vapid'));\n}\n\nexport function AnalyticsEnabledFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.analytics.enabled', null);\n}\n\nexport function GetAnalyticsAppName(config: ConfigService): string | undefined {\n return config.get('appName');\n}\n\nexport function UseFirestoreEmulatorFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.emulator.firestore', null);\n}\n\nexport function UseFunctionsEmulatorFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.emulator.functions', null);\n}\n\nexport function UseAuthEmulatorFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.emulator.auth', null);\n}\n\nexport function AuthTenantIdFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.auth.tenantId', null);\n}\n\nexport function AuthLanguageCodeFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.auth.languageCode', null);\n}\n\nexport function AuthUseDeviceLanguageFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.auth.useDeviceLanguage', null);\n}\n\nexport function AuthPersistenceFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.auth.persistence', null);\n}\n\nexport function AuthSettingsFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.auth.settings', null);\n}\n\nexport function AppCheckEnabledFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.appCheck.enabled', null);\n}\n\nexport function AppCheckSiteKeyFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.appCheck.siteKey', null);\n}\n\nexport function AppIsTokenAutoRefreshEnabledFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.appCheck.isTokenAutoRefreshEnabled', null);\n}\n\nexport function StorageBucketFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.storage.bucket', configService.get('firebase.storageBucket', null));\n}\n\nexport function StorageMaxUploadRetryTimeFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.storage.maxUploadRetryTime', null);\n}\n\nexport function StorageMaxOperationRetryTimeFactory(configService: ConfigService<FirebaseConfig>) {\n return configService.get('firebase.storage.maxOperationRetryTime', null);\n}\n\nexport function ServiceWorkerFactory() {\n return (typeof navigator !== 'undefined' && navigator.serviceWorker?.getRegistration()) ?? undefined;\n}\n\nexport const FIREBASE_APP_PROVIDERS: Provider[] = [\n {\n provide: FIREBASE_OPTIONS,\n useFactory: FirebaseOptionsTokenFactory,\n deps: [ ConfigService ],\n },\n {\n provide: FIREBASE_APP_NAME,\n useFactory: FirebaseNameOrConfigTokenFactory,\n deps: [ ConfigService ],\n },\n {\n provide: FirebaseApp,\n useFactory: ɵfirebaseAppFactory,\n deps: [\n FIREBASE_OPTIONS,\n NgZone,\n [ new Optional(), FIREBASE_APP_NAME ],\n ],\n },\n];\n\nexport const FIREBASE_FIRESTORE_PROVIDERS: Provider[] = [\n {\n provide: ENABLE_PERSISTENCE,\n useFactory: EnablePersistenceTokenFactory,\n deps: [ ConfigService ],\n },\n {\n provide: PERSISTENCE_SETTINGS,\n useFactory: PersistenceSettingsTokenFactory,\n deps: [ ConfigService ],\n },\n {\n provide: FIRESTORE_SETTINGS,\n useFactory: FirestoreSettingsTokenFactory,\n deps: [ ConfigService ],\n },\n {\n provide: USE_FIRESTORE_EMULATOR,\n useFactory: UseFirestoreEmulatorFactory,\n deps: [ ConfigService ],\n },\n];\n\nexport const FIREBASE_FUNCTIONS_PROVIDERS: Provider[] = [\n {\n provide: REGION,\n useFactory: FunctionsRegionFactory,\n deps: [ ConfigService ],\n },\n {\n provide: ORIGIN,\n useFactory: FunctionsOriginFactory,\n deps: [ ConfigService ],\n },\n {\n provide: USE_FUNCTIONS_EMULATOR,\n useFactory: UseFunctionsEmulatorFactory,\n deps: [ ConfigService ],\n },\n];\n\nexport const FIREBASE_MESSAGING_PROVIDERS: Provider[] = [\n {\n provide: VAPID_KEY,\n useFactory: VapidKeyFactory,\n deps: [ ConfigService ],\n },\n {\n provide: SERVICE_WORKER,\n useFactory: ServiceWorkerFactory,\n deps: [],\n },\n];\n\nexport const FIREBASE_PERFORMANCE_PROVIDERS: Provider[] = [\n {\n provide: INSTRUMENTATION_ENABLED,\n useFactory: InstrumentationEnabledFactory,\n deps: [ ConfigService ],\n },\n {\n provide: DATA_COLLECTION_ENABLED,\n useFactory: DataCollectionEnabledFactory,\n deps: [ ConfigService ],\n },\n];\n\nexport const FIREBASE_ANALYTICS_PROVIDERS: Provider[] = [\n {\n provide: COLLECTION_ENABLED,\n useFactory: AnalyticsEnabledFactory,\n deps: [ ConfigService ],\n },\n {\n provide: APP_NAME,\n useFactory: GetAnalyticsAppName,\n deps: [ ConfigService ],\n },\n];\n\nexport const FIREBASE_AUTH_PROVIDERS: Provider[] = [\n {\n provide: USE_AUTH_EMULATOR,\n useFactory: UseAuthEmulatorFactory,\n deps: [ ConfigService ],\n },\n {\n provide: TENANT_ID,\n useFactory: AuthTenantIdFactory,\n deps: [ ConfigService ],\n },\n {\n provide: LANGUAGE_CODE,\n useFactory: AuthLanguageCodeFactory,\n deps: [ ConfigService ],\n },\n {\n provide: USE_DEVICE_LANGUAGE,\n useFactory: AuthUseDeviceLanguageFactory,\n deps: [ ConfigService ],\n },\n {\n provide: PERSISTENCE,\n useFactory: AuthPersistenceFactory,\n deps: [ ConfigService ],\n },\n {\n provide: AUTH_SETTINGS,\n useFactory: AuthSettingsFactory,\n deps: [ ConfigService ],\n },\n];\n\nexport const FIREBASE_APP_CHECK_PROVIDERS: Provider[] = [\n {\n provide: APP_CHECK_ENABLED,\n useFactory: AppCheckEnabledFactory,\n deps: [ ConfigService ],\n },\n {\n provide: APP_CHECK_IS_TOKEN_AUTO_REFRESH_ENABLED,\n useFactory: AppIsTokenAutoRefreshEnabledFactory,\n deps: [ ConfigService ],\n },\n {\n provide: APP_CHECK_SITE_KEY,\n useFactory: AppCheckSiteKeyFactory,\n deps: [ ConfigService ],\n },\n AppCheckService,\n];\n\nexport const FIREBASE_STORAGE_PROVIDERS: Provider[] = [\n {\n provide: BUCKET,\n useFactory: StorageBucketFactory,\n deps: [ ConfigService ],\n },\n {\n provide: MAX_UPLOAD_RETRY_TIME,\n useFactory: StorageMaxUploadRetryTimeFactory,\n deps: [ ConfigService ],\n },\n {\n provide: MAX_OPERATION_RETRY_TIME,\n useFactory: StorageMaxOperationRetryTimeFactory,\n deps: [ ConfigService ],\n },\n];\n\nexport const FIREBASE_PROVIDERS: Provider[] = [\n FIREBASE_APP_PROVIDERS,\n FIREBASE_FIRESTORE_PROVIDERS,\n FIREBASE_FUNCTIONS_PROVIDERS,\n FIREBASE_MESSAGING_PROVIDERS,\n FIREBASE_PERFORMANCE_PROVIDERS,\n FIREBASE_ANALYTICS_PROVIDERS,\n FIREBASE_AUTH_PROVIDERS,\n FIREBASE_APP_CHECK_PROVIDERS,\n FIREBASE_STORAGE_PROVIDERS,\n];\n","import {\n Inject,\n InjectionToken,\n NgModule,\n Optional,\n} from '@angular/core';\nimport { AngularFireStorage } from '@angular/fire/compat/storage';\n\nexport const USE_STORAGE_EMULATOR = new InjectionToken<[ string, number ]>('rxap/firebase/use-storage-emulator');\n\n@NgModule({})\nexport class RxapAngularFireStorageModule {\n\n constructor(\n private readonly storage: AngularFireStorage,\n @Optional()\n @Inject(USE_STORAGE_EMULATOR)\n useEmulator: [ string, number ] | null,\n ) {\n if (useEmulator) {\n this.storage.storage.useEmulator(...useEmulator);\n }\n }\n\n}\n","// region \nexport * from './lib/app-check';\nexport * from './lib/firebase-app-check.http-interceptor';\nexport * from './lib/firebase-messaging.service';\nexport * from './lib/firebase.config';\nexport * from './lib/firebase.provider';\nexport * from './lib/storage';\nexport * from './lib/tokens';\n// endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ɵfirebaseAppFactory","i1","FIRESTORE_SETTINGS","USE_FIRESTORE_EMULATOR","USE_FUNCTIONS_EMULATOR","USE_AUTH_EMULATOR","AUTH_SETTINGS"],"mappings":"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"}