@angular/fire 19.0.0-rc.0 → 19.0.0-rc.1
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.
- package/data-connect/data-connect.d.ts +9 -0
- package/data-connect/data-connect.module.d.ts +13 -0
- package/data-connect/firebase.d.ts +12 -0
- package/data-connect/index.d.ts +5 -0
- package/data-connect/package.json +3 -0
- package/data-connect/public_api.d.ts +3 -0
- package/fesm2022/angular-fire-compat-auth.mjs +3 -2
- package/fesm2022/angular-fire-compat-auth.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-database.mjs +13 -12
- package/fesm2022/angular-fire-compat-database.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-firestore.mjs +16 -15
- package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-remote-config.mjs +3 -2
- package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-storage.mjs +4 -3
- package/fesm2022/angular-fire-compat-storage.mjs.map +1 -1
- package/fesm2022/angular-fire-data-connect.mjs +100 -0
- package/fesm2022/angular-fire-data-connect.mjs.map +1 -0
- package/fesm2022/angular-fire.mjs +15 -59
- package/fesm2022/angular-fire.mjs.map +1 -1
- package/package.json +6 -2
- package/schematics/setup/index.js +2 -2
- package/zones.d.ts +1 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"angular-fire-data-connect.mjs","sources":["../../../src/data-connect/data-connect.ts","../../../src/data-connect/data-connect.module.ts","../../../src/data-connect/firebase.ts","../../../src/data-connect/angular-fire-data-connect.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { DataConnect } from 'firebase/data-connect';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\nexport { DataConnect };\n\nexport const DATA_CONNECT_PROVIDER_NAME = 'data-connect';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DataConnectInstances extends Array<DataConnect> {}\n\nexport class DataConnectInstances {\n constructor() {\n return ɵgetAllInstancesOf<DataConnect>(DATA_CONNECT_PROVIDER_NAME);\n }\n}\n\nexport const dataConnectInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<DataConnect>(DATA_CONNECT_PROVIDER_NAME))),\n distinct(),\n);\n","import {\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { DATA_CONNECT_PROVIDER_NAME, DataConnect, DataConnectInstances } from './data-connect';\n\nconst PROVIDED_DATA_CONNECT_INSTANCES = new InjectionToken<DataConnect[]>('angularfire2.data-connect-instances');\n\nexport function defaultDataConnectInstanceFactory(provided: DataConnect[]|undefined, defaultApp: FirebaseApp) {\n return ɵgetDefaultInstanceOf<DataConnect>(DATA_CONNECT_PROVIDER_NAME, provided, defaultApp);\n}\n\nexport function dataConnectInstanceFactory(fn: (injector: Injector) => DataConnect) {\n return (zone: NgZone, injector: Injector) => {\n return zone.runOutsideAngular(() => fn(injector));\n };\n}\n\nconst DATA_CONNECT_INSTANCES_PROVIDER = {\n provide: DataConnectInstances,\n deps: [\n [new Optional(), PROVIDED_DATA_CONNECT_INSTANCES ],\n ]\n};\n\nconst DEFAULT_DATA_CONNECT_INSTANCE_PROVIDER = {\n provide: DataConnect,\n useFactory: defaultDataConnectInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_DATA_CONNECT_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_DATA_CONNECT_INSTANCE_PROVIDER,\n DATA_CONNECT_INSTANCES_PROVIDER,\n ]\n})\nexport class DataConnectModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'fdc');\n }\n}\n\nexport function provideDataConnect(fn: (injector: Injector) => DataConnect, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'fdc');\n\n return makeEnvironmentProviders([\n DEFAULT_DATA_CONNECT_INSTANCE_PROVIDER,\n DATA_CONNECT_INSTANCES_PROVIDER,\n {\n provide: PROVIDED_DATA_CONNECT_INSTANCES,\n useFactory: dataConnectInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n ...deps,\n ],\n }\n ]);\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/data-connect';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n connectDataConnectEmulator as _connectDataConnectEmulator,\n executeMutation as _executeMutation,\n executeQuery as _executeQuery,\n getDataConnect as _getDataConnect,\n mutationRef as _mutationRef,\n queryRef as _queryRef,\n setLogLevel as _setLogLevel,\n subscribe as _subscribe,\n terminate as _terminate,\n toQueryRef as _toQueryRef\n} from 'firebase/data-connect';\n\nexport const connectDataConnectEmulator = ɵzoneWrap(_connectDataConnectEmulator, true);\nexport const executeMutation = ɵzoneWrap(_executeMutation, true);\nexport const executeQuery = ɵzoneWrap(_executeQuery, true);\nexport const getDataConnect = ɵzoneWrap(_getDataConnect, true);\nexport const mutationRef = ɵzoneWrap(_mutationRef, true);\nexport const queryRef = ɵzoneWrap(_queryRef, true);\nexport const setLogLevel = ɵzoneWrap(_setLogLevel, true);\nexport const subscribe = ɵzoneWrap(_subscribe, true);\nexport const terminate = ɵzoneWrap(_terminate, true);\nexport const toQueryRef = ɵzoneWrap(_toQueryRef, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","ɵgetDefaultInstanceOf","ɵAngularFireSchedulers","ɵzoneWrap","_connectDataConnectEmulator","_executeMutation","_executeQuery","_getDataConnect","_mutationRef","_queryRef","_setLogLevel","_subscribe","_terminate","_toQueryRef"],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Version, Injectable } from '@angular/core';
|
|
2
|
+
import { Version, inject, NgZone, Injectable, PendingTasks } from '@angular/core';
|
|
3
3
|
import { getApps } from 'firebase/app';
|
|
4
|
+
import { pendingUntilEvent } from '@angular/core/rxjs-interop';
|
|
4
5
|
import { queueScheduler, asyncScheduler, Observable } from 'rxjs';
|
|
5
|
-
import {
|
|
6
|
+
import { observeOn, subscribeOn } from 'rxjs/operators';
|
|
6
7
|
|
|
7
8
|
const VERSION = new Version('ANGULARFIRE2_VERSION');
|
|
8
9
|
const ɵisSupportedError = (module) => `The APP_INITIALIZER that is "making" isSupported() sync for the sake of convenient DI has not resolved in this
|
|
@@ -79,34 +80,15 @@ class ɵZoneScheduler {
|
|
|
79
80
|
return this.delegate.schedule(workInZone, delay, state);
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
|
-
class BlockUntilFirstOperator {
|
|
83
|
-
zone;
|
|
84
|
-
pendingTasks;
|
|
85
|
-
constructor(zone, pendingTasks) {
|
|
86
|
-
this.zone = zone;
|
|
87
|
-
this.pendingTasks = pendingTasks;
|
|
88
|
-
}
|
|
89
|
-
call(subscriber, source) {
|
|
90
|
-
const taskDone = this.zone.run(() => this.pendingTasks.add());
|
|
91
|
-
// maybe this is a race condition, invoke in a timeout
|
|
92
|
-
// hold for 10ms while I try to figure out what is going on
|
|
93
|
-
const unscheduleTask = () => setTimeout(taskDone, 10);
|
|
94
|
-
return source.pipe(tap({ next: unscheduleTask, complete: unscheduleTask, error: unscheduleTask })).subscribe(subscriber).add(unscheduleTask);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
83
|
class ɵAngularFireSchedulers {
|
|
98
|
-
ngZone;
|
|
99
|
-
pendingTasks;
|
|
100
84
|
outsideAngular;
|
|
101
85
|
insideAngular;
|
|
102
|
-
constructor(
|
|
103
|
-
|
|
104
|
-
this.pendingTasks = pendingTasks;
|
|
86
|
+
constructor() {
|
|
87
|
+
const ngZone = inject(NgZone);
|
|
105
88
|
this.outsideAngular = ngZone.runOutsideAngular(() => new ɵZoneScheduler(typeof Zone === 'undefined' ? undefined : Zone.current));
|
|
106
89
|
this.insideAngular = ngZone.run(() => new ɵZoneScheduler(typeof Zone === 'undefined' ? undefined : Zone.current, asyncScheduler));
|
|
107
|
-
globalThis.ɵAngularFireScheduler ||= this;
|
|
108
90
|
}
|
|
109
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: ɵAngularFireSchedulers, deps: [
|
|
91
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: ɵAngularFireSchedulers, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
110
92
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: ɵAngularFireSchedulers, providedIn: 'root' });
|
|
111
93
|
}
|
|
112
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: ɵAngularFireSchedulers, decorators: [{
|
|
@@ -114,20 +96,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
114
96
|
args: [{
|
|
115
97
|
providedIn: 'root',
|
|
116
98
|
}]
|
|
117
|
-
}], ctorParameters: () => [
|
|
99
|
+
}], ctorParameters: () => [] });
|
|
118
100
|
function getSchedulers() {
|
|
119
|
-
|
|
120
|
-
if (!schedulers) {
|
|
121
|
-
throw new Error(`Either AngularFireModule has not been provided in your AppModule (this can be done manually or implictly using
|
|
122
|
-
provideFirebaseApp) or you're calling an AngularFire method outside of an NgModule (which is not supported).`);
|
|
123
|
-
}
|
|
124
|
-
return schedulers;
|
|
101
|
+
return inject(ɵAngularFireSchedulers);
|
|
125
102
|
}
|
|
126
103
|
function runOutsideAngular(fn) {
|
|
127
|
-
return
|
|
104
|
+
return inject(NgZone).runOutsideAngular(() => fn());
|
|
128
105
|
}
|
|
129
106
|
function run(fn) {
|
|
130
|
-
return
|
|
107
|
+
return inject(NgZone).run(() => fn());
|
|
131
108
|
}
|
|
132
109
|
function observeOutsideAngular(obs$) {
|
|
133
110
|
return obs$.pipe(observeOn(getSchedulers().outsideAngular));
|
|
@@ -135,28 +112,6 @@ function observeOutsideAngular(obs$) {
|
|
|
135
112
|
function observeInsideAngular(obs$) {
|
|
136
113
|
return obs$.pipe(observeOn(getSchedulers().insideAngular));
|
|
137
114
|
}
|
|
138
|
-
function keepUnstableUntilFirst(obs$) {
|
|
139
|
-
return ɵkeepUnstableUntilFirstFactory(getSchedulers())(obs$);
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Operator to block the zone until the first value has been emitted or the observable
|
|
143
|
-
* has completed/errored. This is used to make sure that universal waits until the first
|
|
144
|
-
* value from firebase but doesn't block the zone forever since the firebase subscription
|
|
145
|
-
* is still alive.
|
|
146
|
-
*/
|
|
147
|
-
function ɵkeepUnstableUntilFirstFactory(schedulers) {
|
|
148
|
-
return function keepUnstableUntilFirst(obs$) {
|
|
149
|
-
obs$ = obs$.lift(new BlockUntilFirstOperator(schedulers.ngZone, schedulers.pendingTasks));
|
|
150
|
-
return obs$.pipe(
|
|
151
|
-
// Run the subscribe body outside of Angular (e.g. calling Firebase SDK to add a listener to a change event)
|
|
152
|
-
subscribeOn(schedulers.outsideAngular),
|
|
153
|
-
// Run operators inside the angular zone (e.g. side effects via tap())
|
|
154
|
-
observeOn(schedulers.insideAngular)
|
|
155
|
-
// INVESTIGATE https://github.com/angular/angularfire/pull/2315
|
|
156
|
-
// share()
|
|
157
|
-
);
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
115
|
const zoneWrapFn = (it, taskDone) => {
|
|
161
116
|
return (...args) => {
|
|
162
117
|
if (taskDone) {
|
|
@@ -175,7 +130,7 @@ const ɵzoneWrap = (it, blockUntilFirst) => {
|
|
|
175
130
|
for (let i = 0; i < arguments.length; i++) {
|
|
176
131
|
if (typeof _arguments[i] === 'function') {
|
|
177
132
|
if (blockUntilFirst) {
|
|
178
|
-
taskDone ||= run(() =>
|
|
133
|
+
taskDone ||= run(() => inject(PendingTasks).add());
|
|
179
134
|
}
|
|
180
135
|
// TODO create a microtask to track callback functions
|
|
181
136
|
_arguments[i] = zoneWrapFn(_arguments[i], taskDone);
|
|
@@ -192,12 +147,13 @@ const ɵzoneWrap = (it, blockUntilFirst) => {
|
|
|
192
147
|
}
|
|
193
148
|
}
|
|
194
149
|
if (ret instanceof Observable) {
|
|
195
|
-
|
|
150
|
+
const schedulers = getSchedulers();
|
|
151
|
+
return ret.pipe(subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular), pendingUntilEvent());
|
|
196
152
|
}
|
|
197
153
|
else if (ret instanceof Promise) {
|
|
198
154
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
199
155
|
return run(() => new Promise((resolve, reject) => {
|
|
200
|
-
ret.then((it) => run(() => resolve(it)), (reason) => run(() => reject(reason)));
|
|
156
|
+
inject(PendingTasks).run(() => ret).then((it) => run(() => resolve(it)), (reason) => run(() => reject(reason)));
|
|
201
157
|
}));
|
|
202
158
|
}
|
|
203
159
|
else if (typeof ret === 'function' && taskDone) {
|
|
@@ -219,5 +175,5 @@ const ɵzoneWrap = (it, blockUntilFirst) => {
|
|
|
219
175
|
* Generated bundle index. Do not edit.
|
|
220
176
|
*/
|
|
221
177
|
|
|
222
|
-
export { VERSION,
|
|
178
|
+
export { VERSION, observeInsideAngular, observeOutsideAngular, ɵAPP_CHECK_PROVIDER_NAME, ɵAngularFireSchedulers, ɵAppCheckInstances, ɵZoneScheduler, ɵgetAllInstancesOf, ɵgetDefaultInstanceOf, ɵisSupportedError, ɵzoneWrap };
|
|
223
179
|
//# sourceMappingURL=angular-fire.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-fire.mjs","sources":["../../../src/core.ts","../../../src/zones.ts","../../../src/angular-fire.ts"],"sourcesContent":["import { Version } from '@angular/core';\nimport { ComponentContainer } from '@firebase/component';\nimport { FirebaseApp, getApps } from 'firebase/app';\nimport type { AppCheck } from 'firebase/app-check';\n\nexport const VERSION = new Version('ANGULARFIRE2_VERSION');\n\nexport const ɵisSupportedError = (module: string) =>\n `The APP_INITIALIZER that is \"making\" isSupported() sync for the sake of convenient DI has not resolved in this\ncontext. Rather than injecting ${module} in the constructor, first ensure that ${module} is supported by calling\n\\`await isSupported()\\`, then retrieve the instance from the injector manually \\`injector.get(${module})\\`.`;\n\n// TODO is there a better way to get at the internal types?\ninterface FirebaseAppWithContainer extends FirebaseApp {\n container: ComponentContainer;\n}\n\nexport function ɵgetDefaultInstanceOf<T= unknown>(identifier: string, provided: T[]|undefined, defaultApp: FirebaseApp): T|undefined {\n if (provided) {\n // Was provide* only called once? If so grab that\n if (provided.length === 1) { return provided[0]; }\n const providedUsingDefaultApp = provided.filter((it: any) => it.app === defaultApp);\n // Was provide* only called once, using the default app? If so use that\n if (providedUsingDefaultApp.length === 1) { return providedUsingDefaultApp[0]; }\n }\n // Grab the default instance from the defaultApp\n const defaultAppWithContainer: FirebaseAppWithContainer = defaultApp as any;\n const provider = defaultAppWithContainer.container.getProvider(identifier as never);\n return provider.getImmediate({ optional: true });\n}\n\nexport const ɵgetAllInstancesOf = <T= unknown>(identifier: string, app?: FirebaseApp): T[] => {\n const apps = app ? [app] : getApps();\n const instances: any[] = [];\n apps.forEach((app: FirebaseAppWithContainer) => {\n const provider: any = app.container.getProvider(identifier as never);\n provider.instances.forEach((instance: any) => {\n if (!instances.includes(instance)) {\n instances.push(instance);\n }\n });\n });\n return instances;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ɵAppCheckInstances extends Array<AppCheck> {}\n\nexport class ɵAppCheckInstances {\n constructor() {\n return ɵgetAllInstancesOf<AppCheck>(ɵAPP_CHECK_PROVIDER_NAME);\n }\n}\n\nexport const ɵAPP_CHECK_PROVIDER_NAME = 'app-check';\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport {\n Injectable,\n NgZone,\n PendingTasks\n} from '@angular/core';\nimport {\n Observable,\n Operator,\n SchedulerAction,\n SchedulerLike,\n Subscriber,\n Subscription,\n TeardownLogic,\n asyncScheduler,\n queueScheduler\n} from 'rxjs';\nimport { observeOn, subscribeOn, tap } from 'rxjs/operators';\n\ndeclare const Zone: {current: unknown} | undefined; \n\n/**\n * Schedules tasks so that they are invoked inside the Zone that is passed in the constructor.\n */\nexport class ɵZoneScheduler implements SchedulerLike {\n constructor(private zone: any, private delegate: any = queueScheduler) {\n }\n\n now() {\n return this.delegate.now();\n }\n\n schedule(work: (this: SchedulerAction<any>, state?: any) => void, delay?: number, state?: any): Subscription {\n const targetZone = this.zone;\n // Wrap the specified work function to make sure that if nested scheduling takes place the\n // work is executed in the correct zone\n const workInZone = function(this: SchedulerAction<any>, state: any) {\n if (targetZone) {\n targetZone.runGuarded(() => {\n work.apply(this, [state]);\n });\n } else {\n work.apply(this, [state]);\n }\n };\n\n // Scheduling itself needs to be run in zone to ensure setInterval calls for async scheduling are done\n // inside the correct zone. This scheduler needs to schedule asynchronously always to ensure that\n // firebase emissions are never synchronous. Specifying a delay causes issues with the queueScheduler delegate.\n return this.delegate.schedule(workInZone, delay, state);\n }\n}\n\nclass BlockUntilFirstOperator<T> implements Operator<T, T> {\n constructor(\n private zone: any,\n private pendingTasks: PendingTasks\n ) {}\n\n call(subscriber: Subscriber<T>, source: Observable<T>): TeardownLogic {\n const taskDone: VoidFunction = this.zone.run(() => this.pendingTasks.add());\n // maybe this is a race condition, invoke in a timeout\n // hold for 10ms while I try to figure out what is going on\n const unscheduleTask = () => setTimeout(taskDone, 10);\n\n return source.pipe(\n tap({ next: unscheduleTask, complete: unscheduleTask, error: unscheduleTask })\n ).subscribe(subscriber).add(unscheduleTask);\n }\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ɵAngularFireSchedulers {\n public readonly outsideAngular: ɵZoneScheduler;\n public readonly insideAngular: ɵZoneScheduler;\n\n constructor(public ngZone: NgZone, public pendingTasks: PendingTasks) {\n this.outsideAngular = ngZone.runOutsideAngular(\n () => new ɵZoneScheduler(typeof Zone === 'undefined' ? undefined : Zone.current)\n );\n this.insideAngular = ngZone.run(\n () => new ɵZoneScheduler(\n typeof Zone === 'undefined' ? undefined : Zone.current,\n asyncScheduler\n )\n );\n globalThis.ɵAngularFireScheduler ||= this;\n }\n}\n\nfunction getSchedulers() {\n const schedulers = globalThis.ɵAngularFireScheduler as ɵAngularFireSchedulers|undefined;\n if (!schedulers) {\n throw new Error(\n`Either AngularFireModule has not been provided in your AppModule (this can be done manually or implictly using\nprovideFirebaseApp) or you're calling an AngularFire method outside of an NgModule (which is not supported).`);\n }\n return schedulers;\n}\n\nfunction runOutsideAngular<T>(fn: (...args: any[]) => T): T {\n return getSchedulers().ngZone.runOutsideAngular(() => fn());\n}\n\nfunction run<T>(fn: (...args: any[]) => T): T {\n return getSchedulers().ngZone.run(() => fn());\n}\n\nexport function observeOutsideAngular<T>(obs$: Observable<T>): Observable<T> {\n return obs$.pipe(observeOn(getSchedulers().outsideAngular));\n}\n\nexport function observeInsideAngular<T>(obs$: Observable<T>): Observable<T> {\n return obs$.pipe(observeOn(getSchedulers().insideAngular));\n}\n\nexport function keepUnstableUntilFirst<T>(obs$: Observable<T>): Observable<T> {\n return ɵkeepUnstableUntilFirstFactory(getSchedulers())(obs$);\n}\n\n/**\n * Operator to block the zone until the first value has been emitted or the observable\n * has completed/errored. This is used to make sure that universal waits until the first\n * value from firebase but doesn't block the zone forever since the firebase subscription\n * is still alive.\n */\nexport function ɵkeepUnstableUntilFirstFactory(\n schedulers: ɵAngularFireSchedulers\n) {\n return function keepUnstableUntilFirst<T>(\n obs$: Observable<T>\n ): Observable<T> {\n obs$ = obs$.lift(\n new BlockUntilFirstOperator(schedulers.ngZone, schedulers.pendingTasks)\n );\n\n return obs$.pipe(\n // Run the subscribe body outside of Angular (e.g. calling Firebase SDK to add a listener to a change event)\n subscribeOn(schedulers.outsideAngular),\n // Run operators inside the angular zone (e.g. side effects via tap())\n observeOn(schedulers.insideAngular)\n // INVESTIGATE https://github.com/angular/angularfire/pull/2315\n // share()\n );\n };\n}\n\nconst zoneWrapFn = (\n it: (...args: any[]) => any,\n taskDone: VoidFunction | undefined\n) => {\n return (...args: any[]) => {\n if (taskDone) {\n setTimeout(taskDone, 10);\n }\n return run(() => it.apply(this, args));\n };\n};\n\nexport const ɵzoneWrap = <T= unknown>(it: T, blockUntilFirst: boolean): T => {\n // function() is needed for the arguments object\n return function () {\n let taskDone: VoidFunction | undefined;\n const _arguments = arguments;\n // if this is a callback function, e.g, onSnapshot, we should create a pending task and complete it\n // only once one of the callback functions is tripped.\n for (let i = 0; i < arguments.length; i++) {\n if (typeof _arguments[i] === 'function') {\n if (blockUntilFirst) {\n taskDone ||= run(() => getSchedulers().pendingTasks.add());\n }\n // TODO create a microtask to track callback functions\n _arguments[i] = zoneWrapFn(_arguments[i], taskDone);\n }\n }\n const ret = runOutsideAngular(() => (it as any).apply(this, _arguments));\n if (!blockUntilFirst) {\n if (ret instanceof Observable) {\n const schedulers = getSchedulers();\n return ret.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n );\n } else {\n return run(() => ret);\n }\n }\n if (ret instanceof Observable) {\n return ret.pipe(keepUnstableUntilFirst) as any;\n } else if (ret instanceof Promise) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return run(\n () =>\n new Promise((resolve, reject) => {\n ret.then(\n (it) => run(() => resolve(it)),\n (reason) => run(() => reject(reason))\n );\n })\n );\n } else if (typeof ret === 'function' && taskDone) {\n // Handle unsubscribe\n // function() is needed for the arguments object\n return function () {\n setTimeout(taskDone, 10);\n return ret.apply(this, arguments);\n };\n } else {\n // TODO how do we handle storage uploads in Zone? and other stuff with cancel() etc?\n return run(() => ret);\n }\n } as any;\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["this"],"mappings":";;;;;;MAKa,OAAO,GAAG,IAAI,OAAO,CAAC,sBAAsB;MAE5C,iBAAiB,GAAG,CAAC,MAAc,KAC9C,CAAA;AAC+B,+BAAA,EAAA,MAAM,0CAA0C,MAAM,CAAA;AACS,8FAAA,EAAA,MAAM;SAOtF,qBAAqB,CAAa,UAAkB,EAAE,QAAuB,EAAE,UAAuB,EAAA;IACpH,IAAI,QAAQ,EAAE;;AAEZ,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAAE,YAAA,OAAO,QAAQ,CAAC,CAAC,CAAC;;AAC/C,QAAA,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAO,KAAK,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC;;AAEnF,QAAA,IAAI,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE;AAAE,YAAA,OAAO,uBAAuB,CAAC,CAAC,CAAC;;;;IAG/E,MAAM,uBAAuB,GAA6B,UAAiB;IAC3E,MAAM,QAAQ,GAAG,uBAAuB,CAAC,SAAS,CAAC,WAAW,CAAC,UAAmB,CAAC;IACnF,OAAO,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAClD;MAEa,kBAAkB,GAAG,CAAa,UAAkB,EAAE,GAAiB,KAAS;AAC3F,IAAA,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE;IACpC,MAAM,SAAS,GAAU,EAAE;AAC3B,IAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAA6B,KAAI;QAC7C,MAAM,QAAQ,GAAQ,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,UAAmB,CAAC;QACpE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAa,KAAI;YAC3C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACjC,gBAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAE5B,SAAC,CAAC;AACJ,KAAC,CAAC;AACF,IAAA,OAAO,SAAS;AAClB;MAKa,kBAAkB,CAAA;AAC7B,IAAA,WAAA,GAAA;AACE,QAAA,OAAO,kBAAkB,CAAW,wBAAwB,CAAC;;AAEhE;AAEM,MAAM,wBAAwB,GAAG;;ACtDxC;AAqBA;;AAEG;MACU,cAAc,CAAA;AACL,IAAA,IAAA;AAAmB,IAAA,QAAA;IAAvC,WAAoB,CAAA,IAAS,EAAU,QAAA,GAAgB,cAAc,EAAA;QAAjD,IAAI,CAAA,IAAA,GAAJ,IAAI;QAAe,IAAQ,CAAA,QAAA,GAAR,QAAQ;;IAG/C,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;;AAG5B,IAAA,QAAQ,CAAC,IAAuD,EAAE,KAAc,EAAE,KAAW,EAAA;AAC3F,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI;;;QAG5B,MAAM,UAAU,GAAG,UAAqC,KAAU,EAAA;YAChE,IAAI,UAAU,EAAE;AACd,gBAAA,UAAU,CAAC,UAAU,CAAC,MAAK;oBACzB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;AAC3B,iBAAC,CAAC;;iBACG;gBACL,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;;AAE7B,SAAC;;;;AAKD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC;;AAE1D;AAED,MAAM,uBAAuB,CAAA;AAEjB,IAAA,IAAA;AACA,IAAA,YAAA;IAFV,WACU,CAAA,IAAS,EACT,YAA0B,EAAA;QAD1B,IAAI,CAAA,IAAA,GAAJ,IAAI;QACJ,IAAY,CAAA,YAAA,GAAZ,YAAY;;IAGtB,IAAI,CAAC,UAAyB,EAAE,MAAqB,EAAA;AACnD,QAAA,MAAM,QAAQ,GAAiB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;;;QAG3E,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;AAErD,QAAA,OAAO,MAAM,CAAC,IAAI,CAChB,GAAG,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAC/E,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;;AAE9C;MAKY,sBAAsB,CAAA;AAId,IAAA,MAAA;AAAuB,IAAA,YAAA;AAH1B,IAAA,cAAc;AACd,IAAA,aAAa;IAE7B,WAAmB,CAAA,MAAc,EAAS,YAA0B,EAAA;QAAjD,IAAM,CAAA,MAAA,GAAN,MAAM;QAAiB,IAAY,CAAA,YAAA,GAAZ,YAAY;AACpD,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAC5C,MAAM,IAAI,cAAc,CAAC,OAAO,IAAI,KAAK,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CACjF;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,CAC7B,MAAM,IAAI,cAAc,CACtB,OAAO,IAAI,KAAK,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,EACtD,cAAc,CACf,CACF;AACD,QAAA,UAAU,CAAC,qBAAqB,KAAK,IAAI;;uGAdhC,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA;;2FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;AAmBD,SAAS,aAAa,GAAA;AACpB,IAAA,MAAM,UAAU,GAAG,UAAU,CAAC,qBAAyD;IACvF,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CACnB,CAAA;AAC6G,4GAAA,CAAA,CAAC;;AAE5G,IAAA,OAAO,UAAU;AACnB;AAEA,SAAS,iBAAiB,CAAI,EAAyB,EAAA;AACrD,IAAA,OAAO,aAAa,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;AAC7D;AAEA,SAAS,GAAG,CAAI,EAAyB,EAAA;AACvC,IAAA,OAAO,aAAa,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;AAC/C;AAEM,SAAU,qBAAqB,CAAI,IAAmB,EAAA;AAC1D,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,cAAc,CAAC,CAAC;AAC7D;AAEM,SAAU,oBAAoB,CAAI,IAAmB,EAAA;AACzD,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,CAAC;AAC5D;AAEM,SAAU,sBAAsB,CAAI,IAAmB,EAAA;IAC3D,OAAO,8BAA8B,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC;AAC9D;AAEA;;;;;AAKG;AACG,SAAU,8BAA8B,CAC5C,UAAkC,EAAA;IAElC,OAAO,SAAS,sBAAsB,CACpC,IAAmB,EAAA;AAEnB,QAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CACd,IAAI,uBAAuB,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,CACxE;QAED,OAAO,IAAI,CAAC,IAAI;;AAEd,QAAA,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC;;AAEtC,QAAA,SAAS,CAAC,UAAU,CAAC,aAAa;;;SAGnC;AACH,KAAC;AACH;AAEA,MAAM,UAAU,GAAG,CACjB,EAA2B,EAC3B,QAAkC,KAChC;AACF,IAAA,OAAO,CAAC,GAAG,IAAW,KAAI;QACxB,IAAI,QAAQ,EAAE;AACZ,YAAA,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;;AAE1B,QAAA,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAACA,IAAI,EAAE,IAAI,CAAC,CAAC;AACxC,KAAC;AACH,CAAC;MAEY,SAAS,GAAG,CAAa,EAAK,EAAE,eAAwB,KAAO;;IAE1E,OAAO,YAAA;AACL,QAAA,IAAI,QAAkC;QACtC,MAAM,UAAU,GAAG,SAAS;;;AAG5B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;gBACvC,IAAI,eAAe,EAAE;AACnB,oBAAA,QAAQ,KAAK,GAAG,CAAC,MAAM,aAAa,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;;;AAG5D,gBAAA,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;;;AAGvD,QAAA,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAO,EAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,eAAe,EAAE;AACpB,YAAA,IAAI,GAAG,YAAY,UAAU,EAAE;AAC7B,gBAAA,MAAM,UAAU,GAAG,aAAa,EAAE;AAClC,gBAAA,OAAO,GAAG,CAAC,IAAI,CACb,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC,EACtC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CACpC;;iBACI;AACL,gBAAA,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC;;;AAGzB,QAAA,IAAI,GAAG,YAAY,UAAU,EAAE;AAC7B,YAAA,OAAO,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAQ;;AACzC,aAAA,IAAI,GAAG,YAAY,OAAO,EAAE;;AAEjC,YAAA,OAAO,GAAG,CACR,MACE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AAC9B,gBAAA,GAAG,CAAC,IAAI,CACN,CAAC,EAAE,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,CACtC;aACF,CAAC,CACL;;AACI,aAAA,IAAI,OAAO,GAAG,KAAK,UAAU,IAAI,QAAQ,EAAE;;;YAGhD,OAAO,YAAA;AACL,gBAAA,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACxB,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AACnC,aAAC;;aACI;;AAEL,YAAA,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC;;AAEzB,KAAQ;AACV;;ACtNA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"angular-fire.mjs","sources":["../../../src/core.ts","../../../src/zones.ts","../../../src/angular-fire.ts"],"sourcesContent":["import { Version } from '@angular/core';\nimport { ComponentContainer } from '@firebase/component';\nimport { FirebaseApp, getApps } from 'firebase/app';\nimport type { AppCheck } from 'firebase/app-check';\n\nexport const VERSION = new Version('ANGULARFIRE2_VERSION');\n\nexport const ɵisSupportedError = (module: string) =>\n `The APP_INITIALIZER that is \"making\" isSupported() sync for the sake of convenient DI has not resolved in this\ncontext. Rather than injecting ${module} in the constructor, first ensure that ${module} is supported by calling\n\\`await isSupported()\\`, then retrieve the instance from the injector manually \\`injector.get(${module})\\`.`;\n\n// TODO is there a better way to get at the internal types?\ninterface FirebaseAppWithContainer extends FirebaseApp {\n container: ComponentContainer;\n}\n\nexport function ɵgetDefaultInstanceOf<T= unknown>(identifier: string, provided: T[]|undefined, defaultApp: FirebaseApp): T|undefined {\n if (provided) {\n // Was provide* only called once? If so grab that\n if (provided.length === 1) { return provided[0]; }\n const providedUsingDefaultApp = provided.filter((it: any) => it.app === defaultApp);\n // Was provide* only called once, using the default app? If so use that\n if (providedUsingDefaultApp.length === 1) { return providedUsingDefaultApp[0]; }\n }\n // Grab the default instance from the defaultApp\n const defaultAppWithContainer: FirebaseAppWithContainer = defaultApp as any;\n const provider = defaultAppWithContainer.container.getProvider(identifier as never);\n return provider.getImmediate({ optional: true });\n}\n\nexport const ɵgetAllInstancesOf = <T= unknown>(identifier: string, app?: FirebaseApp): T[] => {\n const apps = app ? [app] : getApps();\n const instances: any[] = [];\n apps.forEach((app: FirebaseAppWithContainer) => {\n const provider: any = app.container.getProvider(identifier as never);\n provider.instances.forEach((instance: any) => {\n if (!instances.includes(instance)) {\n instances.push(instance);\n }\n });\n });\n return instances;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ɵAppCheckInstances extends Array<AppCheck> {}\n\nexport class ɵAppCheckInstances {\n constructor() {\n return ɵgetAllInstancesOf<AppCheck>(ɵAPP_CHECK_PROVIDER_NAME);\n }\n}\n\nexport const ɵAPP_CHECK_PROVIDER_NAME = 'app-check';\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport {\n Injectable,\n NgZone,\n PendingTasks,\n inject\n} from '@angular/core';\nimport { pendingUntilEvent } from '@angular/core/rxjs-interop';\nimport {\n Observable,\n SchedulerAction,\n SchedulerLike,\n Subscription,\n asyncScheduler,\n queueScheduler\n} from 'rxjs';\nimport { observeOn, subscribeOn } from 'rxjs/operators';\n\ndeclare const Zone: {current: unknown} | undefined; \n\n/**\n * Schedules tasks so that they are invoked inside the Zone that is passed in the constructor.\n */\nexport class ɵZoneScheduler implements SchedulerLike {\n constructor(private zone: any, private delegate: any = queueScheduler) {\n }\n\n now() {\n return this.delegate.now();\n }\n\n schedule(work: (this: SchedulerAction<any>, state?: any) => void, delay?: number, state?: any): Subscription {\n const targetZone = this.zone;\n // Wrap the specified work function to make sure that if nested scheduling takes place the\n // work is executed in the correct zone\n const workInZone = function(this: SchedulerAction<any>, state: any) {\n if (targetZone) {\n targetZone.runGuarded(() => {\n work.apply(this, [state]);\n });\n } else {\n work.apply(this, [state]);\n }\n };\n\n // Scheduling itself needs to be run in zone to ensure setInterval calls for async scheduling are done\n // inside the correct zone. This scheduler needs to schedule asynchronously always to ensure that\n // firebase emissions are never synchronous. Specifying a delay causes issues with the queueScheduler delegate.\n return this.delegate.schedule(workInZone, delay, state);\n }\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ɵAngularFireSchedulers {\n public readonly outsideAngular: ɵZoneScheduler;\n public readonly insideAngular: ɵZoneScheduler;\n\n constructor() {\n const ngZone = inject(NgZone);\n this.outsideAngular = ngZone.runOutsideAngular(\n () => new ɵZoneScheduler(typeof Zone === 'undefined' ? undefined : Zone.current)\n );\n this.insideAngular = ngZone.run(\n () => new ɵZoneScheduler(\n typeof Zone === 'undefined' ? undefined : Zone.current,\n asyncScheduler\n )\n );\n }\n}\n\nfunction getSchedulers() {\n return inject(ɵAngularFireSchedulers);\n}\n\nfunction runOutsideAngular<T>(fn: (...args: any[]) => T): T {\n return inject(NgZone).runOutsideAngular(() => fn());\n}\n\nfunction run<T>(fn: (...args: any[]) => T): T {\n return inject(NgZone).run(() => fn());\n}\n\nexport function observeOutsideAngular<T>(obs$: Observable<T>): Observable<T> {\n return obs$.pipe(observeOn(getSchedulers().outsideAngular));\n}\n\nexport function observeInsideAngular<T>(obs$: Observable<T>): Observable<T> {\n return obs$.pipe(observeOn(getSchedulers().insideAngular));\n}\n\nconst zoneWrapFn = (\n it: (...args: any[]) => any,\n taskDone: VoidFunction | undefined\n) => {\n return (...args: any[]) => {\n if (taskDone) {\n setTimeout(taskDone, 10);\n }\n return run(() => it.apply(this, args));\n };\n};\n\nexport const ɵzoneWrap = <T= unknown>(it: T, blockUntilFirst: boolean): T => {\n // function() is needed for the arguments object\n return function () {\n let taskDone: VoidFunction | undefined;\n const _arguments = arguments;\n // if this is a callback function, e.g, onSnapshot, we should create a pending task and complete it\n // only once one of the callback functions is tripped.\n for (let i = 0; i < arguments.length; i++) {\n if (typeof _arguments[i] === 'function') {\n if (blockUntilFirst) {\n taskDone ||= run(() => inject(PendingTasks).add());\n }\n // TODO create a microtask to track callback functions\n _arguments[i] = zoneWrapFn(_arguments[i], taskDone);\n }\n }\n const ret = runOutsideAngular(() => (it as any).apply(this, _arguments));\n if (!blockUntilFirst) {\n if (ret instanceof Observable) {\n const schedulers = getSchedulers();\n return ret.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n );\n } else {\n return run(() => ret);\n }\n }\n if (ret instanceof Observable) {\n const schedulers = getSchedulers();\n return ret.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n pendingUntilEvent(),\n );\n } else if (ret instanceof Promise) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return run(\n () =>\n new Promise((resolve, reject) => {\n inject(PendingTasks).run(() => ret).then(\n (it) => run(() => resolve(it)),\n (reason) => run(() => reject(reason))\n );\n })\n );\n } else if (typeof ret === 'function' && taskDone) {\n // Handle unsubscribe\n // function() is needed for the arguments object\n return function () {\n setTimeout(taskDone, 10);\n return ret.apply(this, arguments);\n };\n } else {\n // TODO how do we handle storage uploads in Zone? and other stuff with cancel() etc?\n return run(() => ret);\n }\n } as any;\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["this"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "../node_modules/ng-packagr/package.schema.json",
|
|
3
3
|
"name": "@angular/fire",
|
|
4
|
-
"version": "19.0.0-rc.
|
|
4
|
+
"version": "19.0.0-rc.1",
|
|
5
5
|
"description": "Angular + Firebase = ❤️",
|
|
6
6
|
"schematics": "./schematics/collection.json",
|
|
7
7
|
"builders": "./schematics/builders.json",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
}
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"firebase": "^11.0.
|
|
43
|
+
"firebase": "^11.0.2",
|
|
44
44
|
"rxfire": "^6.0.5",
|
|
45
45
|
"@angular-devkit/schematics": "^19.0.0",
|
|
46
46
|
"@schematics/angular": "^19.0.0",
|
|
@@ -83,6 +83,10 @@
|
|
|
83
83
|
"types": "./compat/index.d.ts",
|
|
84
84
|
"default": "./fesm2022/angular-fire-compat.mjs"
|
|
85
85
|
},
|
|
86
|
+
"./data-connect": {
|
|
87
|
+
"types": "./data-connect/index.d.ts",
|
|
88
|
+
"default": "./fesm2022/angular-fire-data-connect.mjs"
|
|
89
|
+
},
|
|
86
90
|
"./database": {
|
|
87
91
|
"types": "./database/index.d.ts",
|
|
88
92
|
"default": "./fesm2022/angular-fire-database.mjs"
|
|
@@ -68,11 +68,11 @@ Calls to async() callback can have unexpected results.`),f=!0,function(F,v){F?c(
|
|
|
68
68
|
`+Br.red(">> ")+t),this.firstRender=!1,this.screen.render(r,n)}onSubmit(t){let r=t||this.rl.line;if(this.opt.suggestOnly&&!r&&(r=this.opt.default===null?"":this.opt.default),typeof this.opt.validate=="function"){let n=s=>{s!==!0?this.render(s||"Enter something, tab to autocomplete!"):this.onSubmitAfterValidation(r)},i;if(this.opt.suggestOnly)i=this.opt.validate(r,this.answers);else{let s=this.currentChoices.getChoice(this.selected);i=this.opt.validate(s,this.answers)}Cj(i)?i.then(n):n(i)}else this.onSubmitAfterValidation(r)}onSubmitAfterValidation(t){var r={};if(this.nbChoices<=this.selected&&!this.opt.suggestOnly){this.rl.write(t),this.search(t);return}if(this.opt.suggestOnly)r.value=t||this.rl.line,this.answer=t||this.rl.line,this.answerName=t||this.rl.line,this.shortAnswer=t||this.rl.line,this.rl.line="";else if(this.nbChoices)r=this.currentChoices.getChoice(this.selected),this.answer=r.value,this.answerName=r.name,this.shortAnswer=r.short;else{this.rl.write(t),this.search(t);return}mj(this.opt.filter,(n,i)=>{r.value=i,this.answer=i,this.opt.suggestOnly&&(this.shortAnswer=i),this.status="answered",this.render(),this.screen.done(),this.done(r.value)})(r.value)}search(t){var r=this;r.selected=0,r.searchedOnce?(r.searching=!0,r.currentChoices=new Zu([]),r.render()):r.searchedOnce=!0,r.lastSearchTerm=t;var n;try{var i=r.opt.source(r.answers,t);n=Promise.resolve(i)}catch(s){n=Promise.reject(s)}return r.lastPromise=n,n.then(function(o){if(n===r.lastPromise){r.currentChoices=new Zu(o);var a=o.filter(vj);r.nbChoices=a.length;var u=a.findIndex(c=>c===r.initialValue||c.value===r.initialValue);u>=0&&(r.selected=u),r.searching=!1,r.render()}})}ensureSelectedInRange(){var t=Math.min(this.selected,this.nbChoices);this.selected=Math.max(t,0)}onKeypress(t){var r,n=t.key&&t.key.name||void 0;if(n==="tab"&&this.opt.suggestOnly){if(this.currentChoices.getChoice(this.selected)){this.rl.write(jD.cursorLeft);var i=this.currentChoices.getChoice(this.selected).value;this.rl.write(jD.cursorForward(i.length)),this.rl.line=i,this.render()}}else n==="down"||n==="n"&&t.key.ctrl?(r=this.nbChoices,this.selected=this.selected<r-1?this.selected+1:0,this.ensureSelectedInRange(),this.render(),Dj.up(this.rl,2)):n==="up"||n==="p"&&t.key.ctrl?(r=this.nbChoices,this.selected=this.selected>0?this.selected-1:r-1,this.ensureSelectedInRange(),this.render()):(this.render(),this.lastSearchTerm!==this.rl.line&&this.search(this.rl.line))}};function Fj(e,t){var r="",n=0;return e.forEach(function(i,s){if(i.type==="separator"){n++,r+=" "+i+`
|
|
69
69
|
`;return}if(i.disabled){n++,r+=" - "+i.name,r+=" ("+(typeof i.disabled=="string"?i.disabled:"Disabled")+")",r+=`
|
|
70
70
|
`;return}var o=s-n===t,a=(o?bj.pointer+" ":" ")+i.name;o&&(a=Br.cyan(a)),r+=a+`
|
|
71
|
-
`}),r.replace(/\n$/,"")}function Cj(e){return typeof e=="object"&&typeof e.then=="function"}LD.exports=Ju});var Oj={};i4(Oj,{ngAddSetupProject:()=>Bj,setupProject:()=>YD});module.exports=s4(Oj);var VD=require("fs"),HD=require("path"),Ki=require("@angular-devkit/core"),zD=require("@angular-devkit/schematics"),XD=require("@schematics/angular/utility");var sn=require("child_process"),Jx=Tr(Zs()),e1=Tr(Eo()),Ut=()=>globalThis.firebaseTools?Promise.resolve(globalThis.firebaseTools):new Promise((e,t)=>{var r;(r=process.env).FIREBASE_CLI_EXPERIMENTS||(r.FIREBASE_CLI_EXPERIMENTS="webframeworks");try{e(require("firebase-tools"))}catch(n){try{let i=(0,sn.execSync)("npm root --location=global").toString().trim();e(require(`${i}/firebase-tools`))}catch(i){let s=(0,Jx.default)({text:"Installing firebase-tools...",discardStdin:process.platform!=="win32"}).start();(0,sn.spawn)("npm",["i","--location=global","firebase-tools"],{stdio:"pipe",shell:!0}).on("close",o=>{if(o===0){s.succeed("firebase-tools installed globally."),s.stop();let a=(0,sn.execSync)("npm root -g").toString().trim();e(require(`${a}/firebase-tools`))}else s.fail("Package install failed."),t()})}}}).then(e=>{globalThis.firebaseTools=e;let t=e.cli.version();return console.log(`Using firebase-tools version ${t}`),(0,e1.compare)(t,"13.0.0")===-1?(console.error("firebase-tools version 13.0.0+ is required, please upgrade and run again"),Promise.reject()):e});var Qe=require("@angular-devkit/schematics"),te=require("@schematics/angular/utility");var vv=require("@angular-devkit/schematics"),Fv=Tr(Eo());var t1=(e,t,r)=>{e.exists(t)?e.overwrite(t,r):e.create(t,r)};var r1=[{name:"Authentication",value:0},{name:"Google Analytics",value:1},{name:"App Check",value:2},{name:"Firestore",value:
|
|
71
|
+
`}),r.replace(/\n$/,"")}function Cj(e){return typeof e=="object"&&typeof e.then=="function"}LD.exports=Ju});var Oj={};i4(Oj,{ngAddSetupProject:()=>Bj,setupProject:()=>YD});module.exports=s4(Oj);var VD=require("fs"),HD=require("path"),Ki=require("@angular-devkit/core"),zD=require("@angular-devkit/schematics"),XD=require("@schematics/angular/utility");var sn=require("child_process"),Jx=Tr(Zs()),e1=Tr(Eo()),Ut=()=>globalThis.firebaseTools?Promise.resolve(globalThis.firebaseTools):new Promise((e,t)=>{var r;(r=process.env).FIREBASE_CLI_EXPERIMENTS||(r.FIREBASE_CLI_EXPERIMENTS="webframeworks");try{e(require("firebase-tools"))}catch(n){try{let i=(0,sn.execSync)("npm root --location=global").toString().trim();e(require(`${i}/firebase-tools`))}catch(i){let s=(0,Jx.default)({text:"Installing firebase-tools...",discardStdin:process.platform!=="win32"}).start();(0,sn.spawn)("npm",["i","--location=global","firebase-tools"],{stdio:"pipe",shell:!0}).on("close",o=>{if(o===0){s.succeed("firebase-tools installed globally."),s.stop();let a=(0,sn.execSync)("npm root -g").toString().trim();e(require(`${a}/firebase-tools`))}else s.fail("Package install failed."),t()})}}}).then(e=>{globalThis.firebaseTools=e;let t=e.cli.version();return console.log(`Using firebase-tools version ${t}`),(0,e1.compare)(t,"13.0.0")===-1?(console.error("firebase-tools version 13.0.0+ is required, please upgrade and run again"),Promise.reject()):e});var Qe=require("@angular-devkit/schematics"),te=require("@schematics/angular/utility");var vv=require("@angular-devkit/schematics"),Fv=Tr(Eo());var t1=(e,t,r)=>{e.exists(t)?e.overwrite(t,r):e.create(t,r)};var r1=[{name:"Authentication",value:0},{name:"Google Analytics",value:1},{name:"App Check",value:2},{name:"Firestore",value:8},{name:"Realtime Database",value:3},{name:"Cloud Functions (callable)",value:5},{name:"Cloud Messaging",value:6},{name:"Performance Monitoring",value:7},{name:"Cloud Storage",value:9},{name:"Remote Config",value:10},{name:"Vertex AI",value:11}];var Do=e=>{var t;return(t=e==null?void 0:e.appId)==null?void 0:t.split("/").pop()};function Cv(e){let t="/angular.json",r=t&&e.read(t);if(!r)throw new Qe.SchematicsException("Could not find angular.json");let{parse:n}=require("jsonc-parser"),i=n(r.toString());if(!i)throw new Qe.SchematicsException("Could not parse angular.json");return{path:t,workspace:i}}var yo=(e,t)=>{let{workspace:r}=Cv(t),n=e.project||r.defaultProject;if(!n)throw new Qe.SchematicsException("No Angular project selected and no default project in the workspace");let i=r.projects[n];if(!i)throw new Qe.SchematicsException("The specified Angular project is not defined in this workspace");if(i.projectType!=="application")throw new Qe.SchematicsException('Deploy requires an Angular project type of "application" in angular.json');return{project:i,projectName:n}};function n1(e,t){let r=e.read("/.firebaserc");if(!r)return[void 0,void 0];let n=JSON.parse(r.toString());return wv(n,t)}var wv=(e,t)=>{var s,o,a,u,c;let r=(s=e.projects)==null?void 0:s.default,n=Object.keys(e.targets||{}).find(f=>{var x,h,d;return!!((d=(h=(x=e.targets)==null?void 0:x[f])==null?void 0:h.hosting)!=null&&d[t])}),i=n&&((c=(u=(a=(o=e.targets)==null?void 0:o[n])==null?void 0:a.hosting)==null?void 0:u[t])==null?void 0:c[0]);return[n||r,i]};function i1(e,t){return e.map(r=>{switch(r){case 2:return(0,te.addRootProvider)(t,({code:n,external:i})=>(i("initializeAppCheck","@angular/fire/app-check"),i("ReCaptchaEnterpriseProvider","@angular/fire/app-check"),n`${i("provideAppCheck","@angular/fire/app-check")}(() => {
|
|
72
72
|
// TODO get a reCAPTCHA Enterprise here https://console.cloud.google.com/security/recaptcha?project=_
|
|
73
73
|
const provider = new ReCaptchaEnterpriseProvider(/* reCAPTCHA Enterprise site key */);
|
|
74
74
|
return initializeAppCheck(undefined, { provider, isTokenAutoRefreshEnabled: true });
|
|
75
|
-
})`));case 1:return(0,Qe.chain)([(0,te.addRootProvider)(t,({code:n,external:i})=>(i("getAnalytics","@angular/fire/analytics"),n`${i("provideAnalytics","@angular/fire/analytics")}(() => getAnalytics())`)),(0,te.addRootProvider)(t,({code:n,external:i})=>n`${i("ScreenTrackingService","@angular/fire/analytics")}`),...e.includes(0)?[(0,te.addRootProvider)(t,({code:n,external:i})=>n`${i("UserTrackingService","@angular/fire/analytics")}`)]:[]]);case 0:return(0,te.addRootProvider)(t,({code:n,external:i})=>(i("getAuth","@angular/fire/auth"),n`${i("provideAuth","@angular/fire/auth")}(() => getAuth())`));case 3:return(0,te.addRootProvider)(t,({code:n,external:i})=>(i("getDatabase","@angular/fire/database"),n`${i("provideDatabase","@angular/fire/database")}(() => getDatabase())`));case
|
|
75
|
+
})`));case 1:return(0,Qe.chain)([(0,te.addRootProvider)(t,({code:n,external:i})=>(i("getAnalytics","@angular/fire/analytics"),n`${i("provideAnalytics","@angular/fire/analytics")}(() => getAnalytics())`)),(0,te.addRootProvider)(t,({code:n,external:i})=>n`${i("ScreenTrackingService","@angular/fire/analytics")}`),...e.includes(0)?[(0,te.addRootProvider)(t,({code:n,external:i})=>n`${i("UserTrackingService","@angular/fire/analytics")}`)]:[]]);case 0:return(0,te.addRootProvider)(t,({code:n,external:i})=>(i("getAuth","@angular/fire/auth"),n`${i("provideAuth","@angular/fire/auth")}(() => getAuth())`));case 3:return(0,te.addRootProvider)(t,({code:n,external:i})=>(i("getDatabase","@angular/fire/database"),n`${i("provideDatabase","@angular/fire/database")}(() => getDatabase())`));case 4:throw"unimplemented.";case 8:return(0,te.addRootProvider)(t,({code:n,external:i})=>(i("getFirestore","@angular/fire/firestore"),n`${i("provideFirestore","@angular/fire/firestore")}(() => getFirestore())`));case 5:return(0,te.addRootProvider)(t,({code:n,external:i})=>(i("getFunctions","@angular/fire/functions"),n`${i("provideFunctions","@angular/fire/functions")}(() => getFunctions())`));case 6:return(0,te.addRootProvider)(t,({code:n,external:i})=>(i("getMessaging","@angular/fire/messaging"),n`${i("provideMessaging","@angular/fire/messaging")}(() => getMessaging())`));case 7:return(0,te.addRootProvider)(t,({code:n,external:i})=>(i("getPerformance","@angular/fire/performance"),n`${i("providePerformance","@angular/fire/performance")}(() => getPerformance())`));case 9:return(0,te.addRootProvider)(t,({code:n,external:i})=>(i("getStorage","@angular/fire/storage"),n`${i("provideStorage","@angular/fire/storage")}(() => getStorage())`));case 10:return(0,te.addRootProvider)(t,({code:n,external:i})=>(i("getRemoteConfig","@angular/fire/remote-config"),n`${i("provideRemoteConfig","@angular/fire/remote-config")}(() => getRemoteConfig())`));case 11:return(0,te.addRootProvider)(t,({code:n,external:i})=>(i("getVertexAI","@angular/fire/vertexai"),n`${i("provideVertexAI","@angular/fire/vertexai")}(() => getVertexAI())`));default:return}}).filter(r=>!!r)}var s1=e=>{let t="/.gitignore";if(!e.exists(t))return e;let r=e.read(t);if(!r)return e;let n=r.toString();return n.includes("# Firebase")||t1(e,t,n.concat(`
|
|
76
76
|
# Firebase
|
|
77
77
|
.firebase
|
|
78
78
|
*-debug.log
|
package/zones.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { NgZone, PendingTasks } from '@angular/core';
|
|
2
1
|
import { Observable, SchedulerAction, SchedulerLike, Subscription } from 'rxjs';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
/**
|
|
@@ -12,22 +11,12 @@ export declare class ɵZoneScheduler implements SchedulerLike {
|
|
|
12
11
|
schedule(work: (this: SchedulerAction<any>, state?: any) => void, delay?: number, state?: any): Subscription;
|
|
13
12
|
}
|
|
14
13
|
export declare class ɵAngularFireSchedulers {
|
|
15
|
-
ngZone: NgZone;
|
|
16
|
-
pendingTasks: PendingTasks;
|
|
17
14
|
readonly outsideAngular: ɵZoneScheduler;
|
|
18
15
|
readonly insideAngular: ɵZoneScheduler;
|
|
19
|
-
constructor(
|
|
16
|
+
constructor();
|
|
20
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<ɵAngularFireSchedulers, never>;
|
|
21
18
|
static ɵprov: i0.ɵɵInjectableDeclaration<ɵAngularFireSchedulers>;
|
|
22
19
|
}
|
|
23
20
|
export declare function observeOutsideAngular<T>(obs$: Observable<T>): Observable<T>;
|
|
24
21
|
export declare function observeInsideAngular<T>(obs$: Observable<T>): Observable<T>;
|
|
25
|
-
export declare function keepUnstableUntilFirst<T>(obs$: Observable<T>): Observable<T>;
|
|
26
|
-
/**
|
|
27
|
-
* Operator to block the zone until the first value has been emitted or the observable
|
|
28
|
-
* has completed/errored. This is used to make sure that universal waits until the first
|
|
29
|
-
* value from firebase but doesn't block the zone forever since the firebase subscription
|
|
30
|
-
* is still alive.
|
|
31
|
-
*/
|
|
32
|
-
export declare function ɵkeepUnstableUntilFirstFactory(schedulers: ɵAngularFireSchedulers): <T>(obs$: Observable<T>) => Observable<T>;
|
|
33
22
|
export declare const ɵzoneWrap: <T = unknown>(it: T, blockUntilFirst: boolean) => T;
|