diff --git a/libs/ngfire/analytics/src/tokens.ts b/libs/ngfire/analytics/src/tokens.ts index 7288249..0e36852 100644 --- a/libs/ngfire/analytics/src/tokens.ts +++ b/libs/ngfire/analytics/src/tokens.ts @@ -1,4 +1,4 @@ -import { inject, InjectFlags, InjectionToken } from "@angular/core"; +import { inject, InjectionToken } from "@angular/core"; import { Analytics, initializeAnalytics } from "firebase/analytics"; import { ANALYTICS_SETTINGS, getConfig } from "ngfire/tokens"; import { FIREBASE_APP } from "ngfire/app"; @@ -8,7 +8,7 @@ export const FIRE_ANALYTICS = new InjectionToken('Firebase Analytics providedIn: 'root', factory: () => { const config = getConfig(); - const settings = inject(ANALYTICS_SETTINGS, InjectFlags.Optional); + const settings = inject(ANALYTICS_SETTINGS, { optional: true }); const app = inject(FIREBASE_APP); if (config.analytics) { return config.analytics(app, settings ?? {}); diff --git a/libs/ngfire/app/src/index.ts b/libs/ngfire/app/src/index.ts index 6b784b6..642f134 100644 --- a/libs/ngfire/app/src/index.ts +++ b/libs/ngfire/app/src/index.ts @@ -1,4 +1,4 @@ -import { inject, InjectFlags, InjectionToken } from "@angular/core"; +import { inject, InjectionToken } from "@angular/core"; import { FirebaseApp, initializeApp } from "firebase/app"; import { FIREBASE_APP_SETTINGS, FIREBASE_CONFIG } from "ngfire/tokens"; @@ -6,9 +6,9 @@ export const FIREBASE_APP = new InjectionToken('Firebase applicatio providedIn: 'root', factory: () => { const config = inject(FIREBASE_CONFIG); - const settings = inject(FIREBASE_APP_SETTINGS, InjectFlags.Optional); + const settings = inject(FIREBASE_APP_SETTINGS, { optional: true }); if (config.app) { - return config.app(config.options, settings ?? {}); + return config.app(); } else { return initializeApp(config.options, settings ?? {}); } diff --git a/libs/ngfire/auth/src/tokens.ts b/libs/ngfire/auth/src/tokens.ts index eae76cc..4901068 100644 --- a/libs/ngfire/auth/src/tokens.ts +++ b/libs/ngfire/auth/src/tokens.ts @@ -1,4 +1,4 @@ -import { inject, InjectFlags, InjectionToken } from "@angular/core"; +import { inject, InjectionToken } from "@angular/core"; import { Auth, getAuth, initializeAuth } from "firebase/auth"; import { FIREBASE_APP } from "ngfire/app"; import { AUTH_DEPS, getConfig } from "ngfire/tokens"; @@ -8,7 +8,7 @@ export const FIRE_AUTH = new InjectionToken('Fire auth instance', { factory: () => { const config = getConfig(); const app = inject(FIREBASE_APP); - const deps = inject(AUTH_DEPS, InjectFlags.Optional) || undefined; + const deps = inject(AUTH_DEPS, { optional: true }) || undefined; if (config.auth) { return config.auth(app, deps); } else { diff --git a/libs/ngfire/core/src/zone.ts b/libs/ngfire/core/src/zone.ts index c11a46c..d729634 100644 --- a/libs/ngfire/core/src/zone.ts +++ b/libs/ngfire/core/src/zone.ts @@ -3,7 +3,7 @@ import { SchedulerAction, SchedulerLike, queueScheduler, Subscription, Observabl import { observeOn, subscribeOn, tap } from "rxjs/operators"; export class ɵZoneScheduler implements SchedulerLike { - constructor(private zone: Zone, private delegate: SchedulerLike = queueScheduler) {} + constructor(private zone: any, private delegate: SchedulerLike = queueScheduler) {} now() { return this.delegate.now(); @@ -29,9 +29,10 @@ export class ɵZoneScheduler implements SchedulerLike { // eslint-disable-next-line @typescript-eslint/no-empty-function function noop() {} +declare const Zone: any; class BlockUntilFirstOperator implements Operator { - private task: MacroTask | null = null; + private task: any = null; constructor(private zone: NgZone) {} diff --git a/libs/ngfire/database/src/tokens.ts b/libs/ngfire/database/src/tokens.ts index 904f8a9..7384a20 100644 --- a/libs/ngfire/database/src/tokens.ts +++ b/libs/ngfire/database/src/tokens.ts @@ -1,4 +1,4 @@ -import { inject, InjectFlags, InjectionToken } from "@angular/core"; +import { inject, InjectionToken } from "@angular/core"; import { Database, getDatabase } from "firebase/database"; import { FIREBASE_APP } from "ngfire/app"; import { DB_URL, getConfig } from "ngfire/tokens"; @@ -9,7 +9,7 @@ export const DATABASE = new InjectionToken('Database instance', { factory: () => { const config = getConfig(); const app = inject(FIREBASE_APP); - const url = inject(DB_URL, InjectFlags.Optional); + const url = inject(DB_URL, { optional: true }); if (config.database) { return config.database(app, url ?? undefined) } else { diff --git a/libs/ngfire/firestore/src/collection.ts b/libs/ngfire/firestore/src/collection.ts index 44b4bfa..55c5ea9 100644 --- a/libs/ngfire/firestore/src/collection.ts +++ b/libs/ngfire/firestore/src/collection.ts @@ -45,7 +45,7 @@ export abstract class FireCollection { protected useCache(ref: DocumentReference): Observable protected useCache(ref: Query): Observable - protected useCache(ref: DocumentReference | Query): Observable + protected useCache(ref: DocumentReference | Query): Observable protected useCache(ref: DocumentReference | Query): Observable { if (isPlatformServer(this.platformId)) { return this.zone.runOutsideAngular(() => fromRef(ref as Query)).pipe( @@ -177,11 +177,11 @@ export abstract class FireCollection { if (!arguments.length) return this.firestore.getRef(this.path); // Id is undefined or null if (!ids) return undefined; - + if (Array.isArray(ids)) { // List of ref if ((ids as any[]).every(isPathRef)) return this.firestore.getRef(ids as string[]); - + const path = pathWithParams(this.path, parameters); // List of ids if (isIdList(ids)) return this.firestore.getRef(ids.map((id) => getDocPath(path, id))); @@ -273,7 +273,7 @@ export abstract class FireCollection { const doesExist = async (doc: FireEntity) => { const id: string | FieldValue | undefined = doc[this.idKey]; if (typeof id !== 'string') return false; - const ref = this.getRef(id, options.params); + const ref: any = this.getRef(id, options.params); const snap = (options.write instanceof Transaction) ? await options.write?.get(ref) : await getDoc(ref); diff --git a/libs/ngfire/firestore/src/firestore.ts b/libs/ngfire/firestore/src/firestore.ts index b746111..a9decb5 100644 --- a/libs/ngfire/firestore/src/firestore.ts +++ b/libs/ngfire/firestore/src/firestore.ts @@ -1,10 +1,9 @@ -import { inject, Injectable, InjectFlags, Injector, PLATFORM_ID } from "@angular/core"; +import { inject, Injectable, Injector, PLATFORM_ID, makeStateKey, TransferState } from "@angular/core"; import { collection, doc, DocumentData, DocumentSnapshot, query, queryEqual, QuerySnapshot, runTransaction, writeBatch } from 'firebase/firestore'; import type { Transaction, CollectionReference, DocumentReference, Query, QueryConstraint } from 'firebase/firestore'; import { FIRESTORE } from "./tokens"; import { shareWithDelay, assertCollection, assertPath, isCollectionRef, isDocPath, isQuery } from "ngfire/core"; import { fromRef } from "./operators"; -import { makeStateKey, TransferState } from "@angular/platform-browser"; import { isPlatformBrowser, isPlatformServer } from "@angular/common"; import { Observable } from "rxjs"; import { stringifyQuery } from "./query"; @@ -18,7 +17,7 @@ export class FirestoreService { private injector = inject(Injector); private plateformId = inject(PLATFORM_ID); /** Transfer state between server and */ - private transferState = inject(TransferState, InjectFlags.Optional); + private transferState = inject(TransferState, { optional: true }); /** Cache based state for document */ private state: Map> = new Map(); @@ -138,7 +137,7 @@ export class FirestoreService { if (Array.isArray(paths)) { return paths.map((path) => this.getRef(path) as DocumentReference); } - + const hasContraints = Array.isArray(constraints); if (hasContraints) { assertPath(paths); diff --git a/libs/ngfire/firestore/src/query.ts b/libs/ngfire/firestore/src/query.ts index e157a38..b96fac4 100644 --- a/libs/ngfire/firestore/src/query.ts +++ b/libs/ngfire/firestore/src/query.ts @@ -1,10 +1,12 @@ -import type { Target, OrderBy, FieldFilter } from '@firebase/firestore/dist/firestore/src/core/target'; +import type { Target } from '@firebase/firestore/dist/firestore/src/core/target'; +import type { OrderBy } from '@firebase/firestore/dist/firestore/src/core/order_by'; +import type { FieldFilter } from '@firebase/firestore/dist/firestore/src/core/filter'; import type { Value, ArrayValue, MapValue, Timestamp, LatLng } from '@firebase/firestore/dist/firestore/src/protos/firestore_proto_api'; import type { Query } from 'firebase/firestore'; import { exist } from 'ngfire/core'; -// Simplfied version of +// Simplfied version of // https://github.com/firebase/firebase-js-sdk/blob/master/packages/firestore/src/core/query.ts#L442 export function stringifyQuery(query: Query) { if ('_query' in query) { diff --git a/libs/ngfire/firestore/src/tokens.ts b/libs/ngfire/firestore/src/tokens.ts index da98111..3918c6a 100644 --- a/libs/ngfire/firestore/src/tokens.ts +++ b/libs/ngfire/firestore/src/tokens.ts @@ -1,4 +1,4 @@ -import { inject, InjectFlags, InjectionToken } from "@angular/core"; +import { inject, InjectionToken } from "@angular/core"; import { Firestore } from 'firebase/firestore'; import { initializeFirestore } from "firebase/firestore"; import { FIRESTORE_SETTINGS, getConfig } from "ngfire/tokens"; @@ -9,7 +9,7 @@ export const FIRESTORE = new InjectionToken('Firestore instance', { providedIn: 'root', factory: () => { const config = getConfig(); - const settings = inject(FIRESTORE_SETTINGS, InjectFlags.Optional); + const settings = inject(FIRESTORE_SETTINGS, { optional: true }); const app = inject(FIREBASE_APP); if (config.firestore) { return config.firestore(app, settings ?? {}); diff --git a/libs/ngfire/functions/src/tokens.ts b/libs/ngfire/functions/src/tokens.ts index 8749018..ce84b73 100644 --- a/libs/ngfire/functions/src/tokens.ts +++ b/libs/ngfire/functions/src/tokens.ts @@ -1,4 +1,4 @@ -import { inject, InjectFlags, InjectionToken } from "@angular/core"; +import { inject, InjectionToken } from "@angular/core"; import { Functions, getFunctions } from "firebase/functions"; import { FIREBASE_APP } from "ngfire/app"; import { getConfig, REGION_OR_DOMAIN } from "ngfire/tokens"; @@ -7,7 +7,7 @@ export const CLOUD_FUNCTIONS = new InjectionToken('Firebase cloud fun providedIn: 'root', factory: () => { const config = getConfig(); - const regionOrDomain = inject(REGION_OR_DOMAIN, InjectFlags.Optional); + const regionOrDomain = inject(REGION_OR_DOMAIN, { optional: true }); const app = inject(FIREBASE_APP); if (config.functions) { return config.functions(app, regionOrDomain ?? undefined); diff --git a/libs/ngfire/package.json b/libs/ngfire/package.json index b4aeebe..e5d3ae7 100644 --- a/libs/ngfire/package.json +++ b/libs/ngfire/package.json @@ -1,13 +1,13 @@ { "name": "ngfire", - "version": "0.0.50", + "version": "0.0.54", "homepage": "https://github.com/dappsnation/ngfire", "peerDependencies": { - "@angular/common": ">12.2.0", - "@angular/core": ">12.2.0", - "@angular/platform-browser": ">12.2.0", - "@nrwl/devkit": ">13.0.0", - "firebase": ">9.0.0", + "@angular/common": ">20.0.3", + "@angular/core": ">20.0.3", + "@angular/platform-browser": ">20.0.3", + "@nrwl/devkit": ">19.0.0", + "firebase": ">11.0.0", "rxjs": ">7.0.0" }, "dependencies": { diff --git a/libs/ngfire/storage/src/tokens.ts b/libs/ngfire/storage/src/tokens.ts index c2c47b3..1ae68e2 100644 --- a/libs/ngfire/storage/src/tokens.ts +++ b/libs/ngfire/storage/src/tokens.ts @@ -1,4 +1,4 @@ -import { inject, InjectFlags, InjectionToken } from "@angular/core"; +import { inject, InjectionToken } from "@angular/core"; import { FirebaseStorage, getStorage } from "firebase/storage"; import { FIREBASE_APP } from "ngfire/app"; import { getConfig, STORAGE_BUCKET } from "ngfire/tokens"; @@ -9,7 +9,7 @@ export const FIRE_STORAGE = new InjectionToken('Firebase Storag factory: () => { const config = getConfig(); const app = inject(FIREBASE_APP); - const bucket = inject(STORAGE_BUCKET, InjectFlags.Optional); + const bucket = inject(STORAGE_BUCKET, { optional: true }); if (config.storage) { return config.storage(app, bucket ?? undefined); } else {