@angular/fire 7.2.0 → 7.3.0-canary.a6abd1d

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/compat/proxy.d.ts CHANGED
@@ -1,23 +1,26 @@
1
1
  import { NgZone } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
+ declare type MyFunction = (...args: any[]) => any;
3
4
  declare type FunctionPropertyNames<T> = {
4
- [K in keyof T]: T[K] extends Function ? K : never;
5
+ [K in keyof T]: T[K] extends MyFunction ? K : never;
5
6
  }[keyof T];
7
+ declare type ReturnTypeOrNever<T> = T extends MyFunction ? ReturnType<T> : never;
8
+ declare type ParametersOrNever<T> = T extends MyFunction ? Parameters<T> : never;
6
9
  declare type PromiseReturningFunctionPropertyNames<T> = {
7
- [K in FunctionPropertyNames<T>]: ReturnType<T[K]> extends Promise<any> ? K : never;
10
+ [K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? K : never;
8
11
  }[FunctionPropertyNames<T>];
9
12
  declare type NonPromiseReturningFunctionPropertyNames<T> = {
10
- [K in FunctionPropertyNames<T>]: ReturnType<T[K]> extends Promise<any> ? never : K;
13
+ [K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? never : K;
11
14
  }[FunctionPropertyNames<T>];
12
15
  declare type NonFunctionPropertyNames<T> = {
13
- [K in keyof T]: T[K] extends Function ? never : K;
16
+ [K in keyof T]: T[K] extends MyFunction ? never : K;
14
17
  }[keyof T];
15
18
  export declare type ɵPromiseProxy<T> = {
16
19
  [K in NonFunctionPropertyNames<T>]: Promise<T[K]>;
17
20
  } & {
18
- [K in NonPromiseReturningFunctionPropertyNames<T>]: (...args: Parameters<T[K]>) => Promise<ReturnType<T[K]>>;
21
+ [K in NonPromiseReturningFunctionPropertyNames<T>]: (...args: ParametersOrNever<T[K]>) => Promise<ReturnTypeOrNever<T[K]>>;
19
22
  } & {
20
- [K in PromiseReturningFunctionPropertyNames<T>]: (...args: Parameters<T[K]>) => ReturnType<T[K]>;
23
+ [K in PromiseReturningFunctionPropertyNames<T>]: T[K];
21
24
  };
22
25
  export declare const ɵlazySDKProxy: (klass: any, observable: Observable<any>, zone: NgZone, options?: {
23
26
  spy?: {
@@ -51,7 +51,7 @@ like app verification mode for phone authentication, which is useful for
51
51
  [testing](https://cloud.google.com/identity-platform/docs/test-phone-numbers).
52
52
 
53
53
  ```ts
54
- import { SETTINGS as AUTH_SETTINGS } from '@angular/fire/auth';
54
+ import { SETTINGS as AUTH_SETTINGS } from '@angular/fire/compat/auth';
55
55
 
56
56
  @NgModule({
57
57
  // ... Existing configuration
@@ -73,7 +73,7 @@ preference. This allows to localize emails but be aware that this only applies
73
73
  if you use the standard template provided by Firebase.
74
74
 
75
75
  ```ts
76
- import { USE_DEVICE_LANGUAGE } from '@angular/fire/auth';
76
+ import { USE_DEVICE_LANGUAGE } from '@angular/fire/compat/auth';
77
77
 
78
78
  @NgModule({
79
79
  // ... Existing configuration
@@ -91,7 +91,7 @@ If you want to set a different language, you can use `LANGUAGE_CODE` DI Token
91
91
  More info at the [firebase auth docs](https://firebase.google.com/docs/reference/js/firebase.auth.Auth#languagecode).
92
92
 
93
93
  ```ts
94
- import { LANGUAGE_CODE } from '@angular/fire/auth';
94
+ import { LANGUAGE_CODE } from '@angular/fire/compat/auth';
95
95
 
96
96
  @NgModule({
97
97
  // ... Existing configuration
@@ -115,7 +115,7 @@ The possible types are `'local'`, `'session'` or `'none'`. Read more at
115
115
  [authentication state persistence](https://firebase.google.com/docs/auth/web/auth-state-persistence),
116
116
 
117
117
  ```ts
118
- import { PERSISTENCE } from '@angular/fire/auth';
118
+ import { PERSISTENCE } from '@angular/fire/compat/auth';
119
119
 
120
120
  @NgModule({
121
121
  // ... Existing configuration
@@ -135,7 +135,7 @@ ID using `TENANT_ID` DI Token (*default: null*).
135
135
  More tutorials regarding this topic are _coming soon_.
136
136
 
137
137
  ```ts
138
- import { TENANT_ID } from '@angular/fire/auth';
138
+ import { TENANT_ID } from '@angular/fire/compat/auth';
139
139
 
140
140
  @NgModule({
141
141
  // ... Existing configuration
@@ -58,4 +58,4 @@ export const ɵapplyMixins = (derivedCtor, constructors) => {
58
58
  });
59
59
  });
60
60
  };
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcGF0L3Byb3h5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CQSwwRkFBMEY7QUFDMUYscUdBQXFHO0FBQ3JHLDBHQUEwRztBQUMxRyxxREFBcUQ7QUFDckQsZ0ZBQWdGO0FBRWhGLHdGQUF3RjtBQUN4Rix3REFBd0Q7QUFDeEQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUV0QyxzRUFBc0U7QUFDdEUscUZBQXFGO0FBQ3JGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQVUsRUFBRSxVQUEyQixFQUFFLElBQVksRUFBRSxVQUtqRixFQUFFLEVBQUUsRUFBRTtJQUNSLE9BQU8sSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO1FBQ3RCLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7O1lBQ3BELElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNmLElBQUksTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsR0FBRywwQ0FBRSxHQUFHLEVBQUU7b0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDcEM7Z0JBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEI7WUFDRCxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3BDLE9BQU8sR0FBRyxFQUFFO2dCQUNaLENBQUMsQ0FBQzthQUNIO1lBQ0QsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDaEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0Isa0NBQWtDO2dCQUNsQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFVBQVUsRUFBRTtvQkFDN0IsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN0QjtxQkFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFO29CQUMxQixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDcEQ7cUJBQU07b0JBQ0wsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUM1QjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsb0JBQW9CO1lBQ3BCLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFO2dCQUN2QixHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUMvQixrREFBa0Q7Z0JBQ2xELEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFOztvQkFDMUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO29CQUM5QixJQUFJLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEdBQUcsMENBQUUsS0FBSyxFQUFFO3dCQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUNwQztvQkFDRCxPQUFPLEdBQUcsQ0FBQztnQkFDYixDQUFDLENBQUM7YUFDSCxDQUNGLENBQUM7UUFDSixDQUFDLENBQUM7S0FDSCxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxXQUFnQixFQUFFLFlBQW1CLEVBQUUsRUFBRTtJQUNwRSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDaEMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUUsTUFBTSxDQUFDLGNBQWMsQ0FDbkIsV0FBVyxDQUFDLFNBQVMsRUFDckIsSUFBSSxFQUNKLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxJQUFJLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FDdEUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLy8gdHNsaW50OmRpc2FibGU6YmFuLXR5cGVzXG50eXBlIEZ1bmN0aW9uUHJvcGVydHlOYW1lczxUPiA9IHsgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBGdW5jdGlvbiA/IEsgOiBuZXZlciB9W2tleW9mIFRdO1xudHlwZSBQcm9taXNlUmV0dXJuaW5nRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFQ+ID0ge1xuICBbSyBpbiBGdW5jdGlvblByb3BlcnR5TmFtZXM8VD5dOiBSZXR1cm5UeXBlPFRbS10+IGV4dGVuZHMgUHJvbWlzZTxhbnk+ID8gSyA6IG5ldmVyXG59W0Z1bmN0aW9uUHJvcGVydHlOYW1lczxUPl07XG50eXBlIE5vblByb21pc2VSZXR1cm5pbmdGdW5jdGlvblByb3BlcnR5TmFtZXM8VD4gPSB7XG4gIFtLIGluIEZ1bmN0aW9uUHJvcGVydHlOYW1lczxUPl06IFJldHVyblR5cGU8VFtLXT4gZXh0ZW5kcyBQcm9taXNlPGFueT4gPyBuZXZlciA6IEtcbn1bRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFQ+XTtcbnR5cGUgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFQ+ID0geyBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIEZ1bmN0aW9uID8gbmV2ZXIgOiBLIH1ba2V5b2YgVF07XG4vLyB0c2xpbnQ6ZW5hYmxlOmJhbi10eXBlc1xuXG5leHBvcnQgdHlwZSDJtVByb21pc2VQcm94eTxUPiA9IHsgW0sgaW4gTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFQ+XTogUHJvbWlzZTxUW0tdPiB9ICZcbiAgeyBbSyBpbiBOb25Qcm9taXNlUmV0dXJuaW5nRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFQ+XTogKC4uLmFyZ3M6IFBhcmFtZXRlcnM8VFtLXT4pID0+IFByb21pc2U8UmV0dXJuVHlwZTxUW0tdPj4gfSAmXG4gIHsgW0sgaW4gUHJvbWlzZVJldHVybmluZ0Z1bmN0aW9uUHJvcGVydHlOYW1lczxUPl06ICguLi5hcmdzOiBQYXJhbWV0ZXJzPFRbS10+KSA9PiBSZXR1cm5UeXBlPFRbS10+IH07XG5cblxuLy8gREVCVUcgcXVpY2sgZGVidWdnZXIgZnVuY3Rpb24gZm9yIGlubGluZSBsb2dnaW5nIHRoYXQgdHlwZXNjcmlwdCBkb2Vzbid0IGNvbXBsYWluIGFib3V0XG4vLyAgICAgICB3cm90ZSBpdCBmb3IgZGVidWdnaW5nIHRoZSDJtWxhenlTREtQcm94eSwgY29tbWVudGluZyBvdXQgZm9yIG5vdzsgc2hvdWxkIGNvbnNpZGVyIGV4cG9zaW5nIGFcbi8vICAgICAgIHZlcmJvc2UgbW9kZSBmb3IgQW5ndWxhckZpcmUgaW4gYSBmdXR1cmUgcmVsZWFzZSB0aGF0IHVzZXMgc29tZXRoaW5nIGxpa2UgdGhpcyBpbiBtdWx0aXBsZSBwbGFjZXNcbi8vICAgICAgIHVzYWdlOiAoKSA9PiBsb2coJ3NvbWV0aGluZycpIHx8IHJldHVyblZhbHVlXG4vLyBjb25zdCBsb2cgPSAoLi4uYXJnczogYW55W10pOiBmYWxzZSA9PiB7IGNvbnNvbGUubG9nKC4uLmFyZ3MpOyByZXR1cm4gZmFsc2UgfVxuXG4vLyBUaGUgcHJvYmxlbSBoZXJlIGFyZSB0aGluZ3MgbGlrZSBuZ09uRGVzdHJveSBhcmUgbWlzc2luZywgdGhlbiB0cmlnZ2VyaW5nIHRoZSBzZXJ2aWNlXG4vLyByYXRoZXIgdGhhbiBkaWcgdG9vIGZhcjsgSSdtIGNhcHR1cmluZyB0aGVzZSBhcyBJIGdvLlxuY29uc3Qgbm9vcEZ1bmN0aW9ucyA9IFsnbmdPbkRlc3Ryb3knXTtcblxuLy8gSU5WRVNUSUdBVEUgc2hvdWxkIHdlIG1ha2UgdGhlIFByb3h5IHJldm9rYWJsZSBhbmQgZG8gc29tZSBjbGVhbnVwP1xuLy8gICAgICAgICAgICAgcmlnaHQgbm93IGl0J3MgZmFpcmx5IHNpbXBsZSBidXQgSSdtIHN1cmUgdGhpcyB3aWxsIGdyb3cgaW4gY29tcGxleGl0eVxuZXhwb3J0IGNvbnN0IMm1bGF6eVNES1Byb3h5ID0gKGtsYXNzOiBhbnksIG9ic2VydmFibGU6IE9ic2VydmFibGU8YW55Piwgem9uZTogTmdab25lLCBvcHRpb25zOiB7XG4gIHNweT86IHtcbiAgICBnZXQ/OiAoKG5hbWU6IHN0cmluZywgaXQ6IGFueSkgPT4gdm9pZCksXG4gICAgYXBwbHk/OiAoKG5hbWU6IHN0cmluZywgYXJnczogYW55W10sIGl0OiBhbnkpID0+IHZvaWQpXG4gIH1cbn0gPSB7fSkgPT4ge1xuICByZXR1cm4gbmV3IFByb3h5KGtsYXNzLCB7XG4gICAgZ2V0OiAoXywgbmFtZTogc3RyaW5nKSA9PiB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmIChrbGFzc1tuYW1lXSkge1xuICAgICAgICBpZiAob3B0aW9ucz8uc3B5Py5nZXQpIHtcbiAgICAgICAgICBvcHRpb25zLnNweS5nZXQobmFtZSwga2xhc3NbbmFtZV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrbGFzc1tuYW1lXTtcbiAgICAgIH1cbiAgICAgIGlmIChub29wRnVuY3Rpb25zLmluZGV4T2YobmFtZSkgPiAtMSkge1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3QgcHJvbWlzZSA9IG9ic2VydmFibGUudG9Qcm9taXNlKCkudGhlbihtb2QgPT4ge1xuICAgICAgICBjb25zdCByZXQgPSBtb2QgJiYgbW9kW25hbWVdO1xuICAgICAgICAvLyBUT0RPIG1vdmUgdG8gcHJvcGVyIHR5cGUgZ3VhcmRzXG4gICAgICAgIGlmICh0eXBlb2YgcmV0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIHJldC5iaW5kKG1vZCk7XG4gICAgICAgIH0gZWxzZSBpZiAocmV0ICYmIHJldC50aGVuKSB7XG4gICAgICAgICAgcmV0dXJuIHJldC50aGVuKChyZXM6IGFueSkgPT4gem9uZS5ydW4oKCkgPT4gcmVzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHpvbmUucnVuKCgpID0+IHJldCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgLy8gcmVjdXJzZSB0aGUgcHJveHlcbiAgICAgIHJldHVybiBuZXcgUHJveHkoKCkgPT4ge30sIHtcbiAgICAgICAgICBnZXQ6IChfLCBuYW1lKSA9PiBwcm9taXNlW25hbWVdLFxuICAgICAgICAgIC8vIFRPRE8gaGFuZGxlIGNhbGxiYWNrcyBhcyB0cmFuc3BhcmVudGx5IGFzIEkgY2FuXG4gICAgICAgICAgYXBwbHk6IChzZWxmLCBfLCBhcmdzKSA9PiBwcm9taXNlLnRoZW4oaXQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzID0gaXQgJiYgaXQoLi4uYXJncyk7XG4gICAgICAgICAgICBpZiAob3B0aW9ucz8uc3B5Py5hcHBseSkge1xuICAgICAgICAgICAgICBvcHRpb25zLnNweS5hcHBseShuYW1lLCBhcmdzLCByZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IMm1YXBwbHlNaXhpbnMgPSAoZGVyaXZlZEN0b3I6IGFueSwgY29uc3RydWN0b3JzOiBhbnlbXSkgPT4ge1xuICBjb25zdHJ1Y3RvcnMuZm9yRWFjaCgoYmFzZUN0b3IpID0+IHtcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhiYXNlQ3Rvci5wcm90b3R5cGUgfHwgYmFzZUN0b3IpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcbiAgICAgICAgZGVyaXZlZEN0b3IucHJvdG90eXBlLFxuICAgICAgICBuYW1lLFxuICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGJhc2VDdG9yLnByb3RvdHlwZSB8fCBiYXNlQ3RvciwgbmFtZSlcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufTtcbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcGF0L3Byb3h5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CQSwwRkFBMEY7QUFDMUYscUdBQXFHO0FBQ3JHLDBHQUEwRztBQUMxRyxxREFBcUQ7QUFDckQsZ0ZBQWdGO0FBRWhGLHdGQUF3RjtBQUN4Rix3REFBd0Q7QUFDeEQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUV0QyxzRUFBc0U7QUFDdEUscUZBQXFGO0FBQ3JGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQVUsRUFBRSxVQUEyQixFQUFFLElBQVksRUFBRSxVQUtqRixFQUFFLEVBQUUsRUFBRTtJQUNSLE9BQU8sSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO1FBQ3RCLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7O1lBQ3BELElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNmLElBQUksTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsR0FBRywwQ0FBRSxHQUFHLEVBQUU7b0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDcEM7Z0JBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEI7WUFDRCxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3BDLE9BQU8sR0FBRyxFQUFFO2dCQUNaLENBQUMsQ0FBQzthQUNIO1lBQ0QsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDaEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0Isa0NBQWtDO2dCQUNsQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFVBQVUsRUFBRTtvQkFDN0IsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN0QjtxQkFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFO29CQUMxQixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDcEQ7cUJBQU07b0JBQ0wsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUM1QjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsb0JBQW9CO1lBQ3BCLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFO2dCQUN2QixHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUMvQixrREFBa0Q7Z0JBQ2xELEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFOztvQkFDMUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO29CQUM5QixJQUFJLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEdBQUcsMENBQUUsS0FBSyxFQUFFO3dCQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3FCQUNwQztvQkFDRCxPQUFPLEdBQUcsQ0FBQztnQkFDYixDQUFDLENBQUM7YUFDSCxDQUNGLENBQUM7UUFDSixDQUFDLENBQUM7S0FDSCxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxXQUFnQixFQUFFLFlBQW1CLEVBQUUsRUFBRTtJQUNwRSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDaEMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUUsTUFBTSxDQUFDLGNBQWMsQ0FDbkIsV0FBVyxDQUFDLFNBQVMsRUFDckIsSUFBSSxFQUNKLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxJQUFJLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FDdEUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxudHlwZSBNeUZ1bmN0aW9uID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk7XG50eXBlIEZ1bmN0aW9uUHJvcGVydHlOYW1lczxUPiA9IHsgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBNeUZ1bmN0aW9uID8gSyA6IG5ldmVyIH1ba2V5b2YgVF07XG50eXBlIFJldHVyblR5cGVPck5ldmVyPFQ+ID0gVCBleHRlbmRzIE15RnVuY3Rpb24gPyBSZXR1cm5UeXBlPFQ+IDogbmV2ZXI7XG50eXBlIFBhcmFtZXRlcnNPck5ldmVyPFQ+ID0gVCBleHRlbmRzIE15RnVuY3Rpb24gPyBQYXJhbWV0ZXJzPFQ+IDogbmV2ZXI7XG50eXBlIFByb21pc2VSZXR1cm5pbmdGdW5jdGlvblByb3BlcnR5TmFtZXM8VD4gPSB7XG4gIFtLIGluIEZ1bmN0aW9uUHJvcGVydHlOYW1lczxUPl06IFJldHVyblR5cGVPck5ldmVyPFRbS10+IGV4dGVuZHMgUHJvbWlzZTxhbnk+ID8gSyA6IG5ldmVyXG59W0Z1bmN0aW9uUHJvcGVydHlOYW1lczxUPl07XG50eXBlIE5vblByb21pc2VSZXR1cm5pbmdGdW5jdGlvblByb3BlcnR5TmFtZXM8VD4gPSB7XG4gIFtLIGluIEZ1bmN0aW9uUHJvcGVydHlOYW1lczxUPl06IFJldHVyblR5cGVPck5ldmVyPFRbS10+IGV4dGVuZHMgUHJvbWlzZTxhbnk+ID8gbmV2ZXIgOiBLXG59W0Z1bmN0aW9uUHJvcGVydHlOYW1lczxUPl07XG50eXBlIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUPiA9IHsgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBNeUZ1bmN0aW9uID8gbmV2ZXIgOiBLIH1ba2V5b2YgVF07XG5cbmV4cG9ydCB0eXBlIMm1UHJvbWlzZVByb3h5PFQ+ID0geyBbSyBpbiBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8VD5dOiBQcm9taXNlPFRbS10+IH0gJlxuICB7IFtLIGluIE5vblByb21pc2VSZXR1cm5pbmdGdW5jdGlvblByb3BlcnR5TmFtZXM8VD5dOiAoLi4uYXJnczogUGFyYW1ldGVyc09yTmV2ZXI8VFtLXT4pID0+IFByb21pc2U8UmV0dXJuVHlwZU9yTmV2ZXI8VFtLXT4+IH0gJlxuICB7IFtLIGluIFByb21pc2VSZXR1cm5pbmdGdW5jdGlvblByb3BlcnR5TmFtZXM8VD5dOiBUW0tdIH07XG5cbi8vIERFQlVHIHF1aWNrIGRlYnVnZ2VyIGZ1bmN0aW9uIGZvciBpbmxpbmUgbG9nZ2luZyB0aGF0IHR5cGVzY3JpcHQgZG9lc24ndCBjb21wbGFpbiBhYm91dFxuLy8gICAgICAgd3JvdGUgaXQgZm9yIGRlYnVnZ2luZyB0aGUgybVsYXp5U0RLUHJveHksIGNvbW1lbnRpbmcgb3V0IGZvciBub3c7IHNob3VsZCBjb25zaWRlciBleHBvc2luZyBhXG4vLyAgICAgICB2ZXJib3NlIG1vZGUgZm9yIEFuZ3VsYXJGaXJlIGluIGEgZnV0dXJlIHJlbGVhc2UgdGhhdCB1c2VzIHNvbWV0aGluZyBsaWtlIHRoaXMgaW4gbXVsdGlwbGUgcGxhY2VzXG4vLyAgICAgICB1c2FnZTogKCkgPT4gbG9nKCdzb21ldGhpbmcnKSB8fCByZXR1cm5WYWx1ZVxuLy8gY29uc3QgbG9nID0gKC4uLmFyZ3M6IGFueVtdKTogZmFsc2UgPT4geyBjb25zb2xlLmxvZyguLi5hcmdzKTsgcmV0dXJuIGZhbHNlIH1cblxuLy8gVGhlIHByb2JsZW0gaGVyZSBhcmUgdGhpbmdzIGxpa2UgbmdPbkRlc3Ryb3kgYXJlIG1pc3NpbmcsIHRoZW4gdHJpZ2dlcmluZyB0aGUgc2VydmljZVxuLy8gcmF0aGVyIHRoYW4gZGlnIHRvbyBmYXI7IEknbSBjYXB0dXJpbmcgdGhlc2UgYXMgSSBnby5cbmNvbnN0IG5vb3BGdW5jdGlvbnMgPSBbJ25nT25EZXN0cm95J107XG5cbi8vIElOVkVTVElHQVRFIHNob3VsZCB3ZSBtYWtlIHRoZSBQcm94eSByZXZva2FibGUgYW5kIGRvIHNvbWUgY2xlYW51cD9cbi8vICAgICAgICAgICAgIHJpZ2h0IG5vdyBpdCdzIGZhaXJseSBzaW1wbGUgYnV0IEknbSBzdXJlIHRoaXMgd2lsbCBncm93IGluIGNvbXBsZXhpdHlcbmV4cG9ydCBjb25zdCDJtWxhenlTREtQcm94eSA9IChrbGFzczogYW55LCBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4sIHpvbmU6IE5nWm9uZSwgb3B0aW9uczoge1xuICBzcHk/OiB7XG4gICAgZ2V0PzogKChuYW1lOiBzdHJpbmcsIGl0OiBhbnkpID0+IHZvaWQpLFxuICAgIGFwcGx5PzogKChuYW1lOiBzdHJpbmcsIGFyZ3M6IGFueVtdLCBpdDogYW55KSA9PiB2b2lkKVxuICB9XG59ID0ge30pID0+IHtcbiAgcmV0dXJuIG5ldyBQcm94eShrbGFzcywge1xuICAgIGdldDogKF8sIG5hbWU6IHN0cmluZykgPT4gem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAoa2xhc3NbbmFtZV0pIHtcbiAgICAgICAgaWYgKG9wdGlvbnM/LnNweT8uZ2V0KSB7XG4gICAgICAgICAgb3B0aW9ucy5zcHkuZ2V0KG5hbWUsIGtsYXNzW25hbWVdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ga2xhc3NbbmFtZV07XG4gICAgICB9XG4gICAgICBpZiAobm9vcEZ1bmN0aW9ucy5pbmRleE9mKG5hbWUpID4gLTEpIHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByb21pc2UgPSBvYnNlcnZhYmxlLnRvUHJvbWlzZSgpLnRoZW4obW9kID0+IHtcbiAgICAgICAgY29uc3QgcmV0ID0gbW9kICYmIG1vZFtuYW1lXTtcbiAgICAgICAgLy8gVE9ETyBtb3ZlIHRvIHByb3BlciB0eXBlIGd1YXJkc1xuICAgICAgICBpZiAodHlwZW9mIHJldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHJldHVybiByZXQuYmluZChtb2QpO1xuICAgICAgICB9IGVsc2UgaWYgKHJldCAmJiByZXQudGhlbikge1xuICAgICAgICAgIHJldHVybiByZXQudGhlbigocmVzOiBhbnkpID0+IHpvbmUucnVuKCgpID0+IHJlcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB6b25lLnJ1bigoKSA9PiByZXQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIC8vIHJlY3Vyc2UgdGhlIHByb3h5XG4gICAgICByZXR1cm4gbmV3IFByb3h5KCgpID0+IHt9LCB7XG4gICAgICAgICAgZ2V0OiAoXywgbmFtZSkgPT4gcHJvbWlzZVtuYW1lXSxcbiAgICAgICAgICAvLyBUT0RPIGhhbmRsZSBjYWxsYmFja3MgYXMgdHJhbnNwYXJlbnRseSBhcyBJIGNhblxuICAgICAgICAgIGFwcGx5OiAoc2VsZiwgXywgYXJncykgPT4gcHJvbWlzZS50aGVuKGl0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGl0ICYmIGl0KC4uLmFyZ3MpO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnM/LnNweT8uYXBwbHkpIHtcbiAgICAgICAgICAgICAgb3B0aW9ucy5zcHkuYXBwbHkobmFtZSwgYXJncywgcmVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KVxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCDJtWFwcGx5TWl4aW5zID0gKGRlcml2ZWRDdG9yOiBhbnksIGNvbnN0cnVjdG9yczogYW55W10pID0+IHtcbiAgY29uc3RydWN0b3JzLmZvckVhY2goKGJhc2VDdG9yKSA9PiB7XG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYmFzZUN0b3IucHJvdG90eXBlIHx8IGJhc2VDdG9yKS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoXG4gICAgICAgIGRlcml2ZWRDdG9yLnByb3RvdHlwZSxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiYXNlQ3Rvci5wcm90b3R5cGUgfHwgYmFzZUN0b3IsIG5hbWUpXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn07XG4iXX0=
package/esm2015/core.js CHANGED
@@ -3,16 +3,16 @@ import { getApps } from 'firebase/app';
3
3
  import { isSupported as isRemoteConfigSupported } from 'firebase/remote-config';
4
4
  import { isSupported as isMessagingSupported } from 'firebase/messaging';
5
5
  import { isSupported as isAnalyticsSupported } from 'firebase/analytics';
6
- export const VERSION = new Version('7.2.0');
6
+ export const VERSION = new Version('7.3.0-canary.a6abd1d');
7
7
  const isAnalyticsSupportedValueSymbol = '__angularfire_symbol__analyticsIsSupportedValue';
8
8
  const isAnalyticsSupportedPromiseSymbol = '__angularfire_symbol__analyticsIsSupported';
9
9
  const isRemoteConfigSupportedValueSymbol = '__angularfire_symbol__remoteConfigIsSupportedValue';
10
10
  const isRemoteConfigSupportedPromiseSymbol = '__angularfire_symbol__remoteConfigIsSupported';
11
11
  const isMessagingSupportedValueSymbol = '__angularfire_symbol__messagingIsSupportedValue';
12
12
  const isMessagingSupportedPromiseSymbol = '__angularfire_symbol__messagingIsSupported';
13
- globalThis[isAnalyticsSupportedPromiseSymbol] || (globalThis[isAnalyticsSupportedPromiseSymbol] = isAnalyticsSupported().then(it => globalThis[isAnalyticsSupportedValueSymbol] = it));
14
- globalThis[isMessagingSupportedPromiseSymbol] || (globalThis[isMessagingSupportedPromiseSymbol] = isMessagingSupported().then(it => globalThis[isMessagingSupportedValueSymbol] = it));
15
- globalThis[isRemoteConfigSupportedPromiseSymbol] || (globalThis[isRemoteConfigSupportedPromiseSymbol] = isRemoteConfigSupported().then(it => globalThis[isRemoteConfigSupportedValueSymbol] = it));
13
+ globalThis[isAnalyticsSupportedPromiseSymbol] || (globalThis[isAnalyticsSupportedPromiseSymbol] = isAnalyticsSupported().then(it => globalThis[isAnalyticsSupportedValueSymbol] = it).catch(() => globalThis[isAnalyticsSupportedValueSymbol] = false));
14
+ globalThis[isMessagingSupportedPromiseSymbol] || (globalThis[isMessagingSupportedPromiseSymbol] = isMessagingSupported().then(it => globalThis[isMessagingSupportedValueSymbol] = it).catch(() => globalThis[isMessagingSupportedValueSymbol] = false));
15
+ globalThis[isRemoteConfigSupportedPromiseSymbol] || (globalThis[isRemoteConfigSupportedPromiseSymbol] = isRemoteConfigSupported().then(it => globalThis[isRemoteConfigSupportedValueSymbol] = it).catch(() => globalThis[isRemoteConfigSupportedValueSymbol] = false));
16
16
  const isSupportedError = (module) => `The APP_INITIALIZER that is "making" isSupported() sync for the sake of convenient DI has not resolved in this
17
17
  context. Rather than injecting ${module} in the constructor, first ensure that ${module} is supported by calling
18
18
  \`await isSupported()\`, then retrieve the instance from the injector manually \`injector.get(${module})\`.`;
@@ -76,4 +76,4 @@ export const ɵgetAllInstancesOf = (identifier, app) => {
76
76
  });
77
77
  return instances;
78
78
  };
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFlLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVwRCxPQUFPLEVBQUUsV0FBVyxJQUFJLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLElBQUksb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUUzRCxNQUFNLCtCQUErQixHQUFHLGlEQUFpRCxDQUFDO0FBQzFGLE1BQU0saUNBQWlDLEdBQUcsNENBQTRDLENBQUM7QUFDdkYsTUFBTSxrQ0FBa0MsR0FBRyxvREFBb0QsQ0FBQztBQUNoRyxNQUFNLG9DQUFvQyxHQUFHLCtDQUErQyxDQUFDO0FBQzdGLE1BQU0sK0JBQStCLEdBQUcsaURBQWlELENBQUM7QUFDMUYsTUFBTSxpQ0FBaUMsR0FBRyw0Q0FBNEMsQ0FBQztBQUV2RixVQUFVLENBQUMsaUNBQWlDLE1BQTVDLFVBQVUsQ0FBQyxpQ0FBaUMsSUFBTSxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUNqRixVQUFVLENBQUMsK0JBQStCLENBQUMsR0FBRyxFQUFFLENBQ2pELEVBQUM7QUFFRixVQUFVLENBQUMsaUNBQWlDLE1BQTVDLFVBQVUsQ0FBQyxpQ0FBaUMsSUFBTSxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUNqRixVQUFVLENBQUMsK0JBQStCLENBQUMsR0FBRyxFQUFFLENBQ2pE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LENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckMsTUFBTSxTQUFTLEdBQWUsRUFBRSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUE2QixFQUFFLEVBQUU7UUFDN0MsTUFBTSxRQUFRLEdBQVEsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsVUFBbUIsQ0FBQyxDQUFDO1FBQ3JFLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlyZWJhc2VBcHAsIGdldEFwcHMgfSBmcm9tICdmaXJlYmFzZS9hcHAnO1xuaW1wb3J0IHsgQ29tcG9uZW50Q29udGFpbmVyIH0gZnJvbSAnQGZpcmViYXNlL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBpc1N1cHBvcnRlZCBhcyBpc1JlbW90ZUNvbmZpZ1N1cHBvcnRlZCB9IGZyb20gJ2ZpcmViYXNlL3JlbW90ZS1jb25maWcnO1xuaW1wb3J0IHsgaXNTdXBwb3J0ZWQgYXMgaXNNZXNzYWdpbmdTdXBwb3J0ZWQgfSBmcm9tICdmaXJlYmFzZS9tZXNzYWdpbmcnO1xuaW1wb3J0IHsgaXNTdXBwb3J0ZWQgYXMgaXNBbmFseXRpY3NTdXBwb3J0ZWQgfSBmcm9tICdmaXJlYmFzZS9hbmFseXRpY3MnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCdBTkdVTEFSRklSRTJfVkVSU0lPTicpO1xuXG5jb25zdCBpc0FuYWx5dGljc1N1cHBvcnRlZFZhbHVlU3ltYm9sID0gJ19fYW5ndWxhcmZpcmVfc3ltYm9sX19hbmFseXRpY3NJc1N1cHBvcnRlZFZhbHVlJztcbmNvbnN0IGlzQW5hbHl0aWNzU3VwcG9ydGVkUHJvbWlzZVN5bWJvbCA9ICdfX2FuZ3VsYXJmaXJlX3N5bWJvbF9fYW5hbHl0aWNzSXNTdXBwb3J0ZWQnO1xuY29uc3QgaXNSZW1vdGVDb25maWdTdXBwb3J0ZWRWYWx1ZVN5bWJvbCA9ICdfX2FuZ3VsYXJmaXJlX3N5bWJvbF9fcmVtb3RlQ29uZmlnSXNTdXBwb3J0ZWRWYWx1ZSc7XG5jb25zdCBpc1JlbW90ZUNvbmZpZ1N1cHBvcnRlZFByb21pc2VTeW1ib2wgPSAnX19hbmd1bGFyZmlyZV9zeW1ib2xfX3JlbW90ZUNvbmZpZ0lzU3VwcG9ydGVkJztcbmNvbnN0IGlzTWVzc2FnaW5nU3VwcG9ydGVkVmFsdWVTeW1ib2wgPSAnX19hbmd1bGFyZmlyZV9zeW1ib2xfX21lc3NhZ2luZ0lzU3VwcG9ydGVkVmFsdWUnO1xuY29uc3QgaXNNZXNzYWdpbmdTdXBwb3J0ZWRQcm9taXNlU3ltYm9sID0gJ19fYW5ndWxhcmZpcmVfc3ltYm9sX19tZXNzYWdpbmdJc1N1cHBvcnRlZCc7XG5cbmdsb2JhbFRoaXNbaXNBbmFseXRpY3NTdXBwb3J0ZWRQcm9taXNlU3ltYm9sXSB8fD0gaXNBbmFseXRpY3NTdXBwb3J0ZWQoKS50aGVuKGl0ID0+XG4gIGdsb2JhbFRoaXNbaXNBbmFseXRpY3NTdXBwb3J0ZWRWYWx1ZVN5bWJvbF0gPSBpdFxuKTtcblxuZ2xvYmFsVGhpc1tpc01lc3NhZ2luZ1N1cHBvcnRlZFByb21pc2VTeW1ib2xdIHx8PSBpc01lc3NhZ2luZ1N1cHBvcnRlZCgpLnRoZW4oaXQgPT5cbiAgZ2xvYmFsVGhpc1tpc01lc3NhZ2luZ1N1cHBvcnRlZFZhbHVlU3ltYm9sXSA9IGl0XG4pO1xuXG5nbG9iYWxUaGlzW2lzUmVtb3RlQ29uZmlnU3VwcG9ydGVkUHJvbWlzZVN5bWJvbF0gfHw9IGlzUmVtb3RlQ29uZmlnU3VwcG9ydGVkKCkudGhlbihpdCA9PlxuICBnbG9iYWxUaGlzW2lzUmVtb3RlQ29uZmlnU3VwcG9ydGVkVmFsdWVTeW1ib2xdID0gaXRcbik7XG5cbmNvbnN0IGlzU3VwcG9ydGVkRXJyb3IgPSAobW9kdWxlOiBzdHJpbmcpID0+XG4gIGBUaGUgQVBQX0lOSVRJQUxJWkVSIHRoYXQgaXMgXCJtYWtpbmdcIiBpc1N1cHBvcnRlZCgpIHN5bmMgZm9yIHRoZSBzYWtlIG9mIGNvbnZlbmllbnQgREkgaGFzIG5vdCByZXNvbHZlZCBpbiB0aGlzXG5jb250ZXh0LiBSYXRoZXIgdGhhbiBpbmplY3RpbmcgJHttb2R1bGV9IGluIHRoZSBjb25zdHJ1Y3RvciwgZmlyc3QgZW5zdXJlIHRoYXQgJHttb2R1bGV9IGlzIHN1cHBvcnRlZCBieSBjYWxsaW5nXG5cXGBhd2FpdCBpc1N1cHBvcnRlZCgpXFxgLCB0aGVuIHJldHJpZXZlIHRoZSBpbnN0YW5jZSBmcm9tIHRoZSBpbmplY3RvciBtYW51YWxseSBcXGBpbmplY3Rvci5nZXQoJHttb2R1bGV9KVxcYC5gO1xuXG5leHBvcnQgY29uc3QgybVpc01lc3NhZ2luZ1N1cHBvcnRlZEZhY3RvcnkgPSB7XG4gIGFzeW5jOiAoKSA9PiBnbG9iYWxUaGlzW2lzTWVzc2FnaW5nU3VwcG9ydGVkUHJvbWlzZVN5bWJvbF0sXG4gIHN5bmM6ICgpID0+IHtcbiAgICBjb25zdCByZXQgPSBnbG9iYWxUaGlzW2lzTWVzc2FnaW5nU3VwcG9ydGVkVmFsdWVTeW1ib2xdO1xuICAgIGlmIChyZXQgPT09IHVuZGVmaW5lZCkgeyB0aHJvdyBuZXcgRXJyb3IoaXNTdXBwb3J0ZWRFcnJvcignTWVzc2FnaW5nJykpOyB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IMm1aXNSZW1vdGVDb25maWdTdXBwb3J0ZWRGYWN0b3J5ID0ge1xuICBhc3luYzogKCkgPT4gZ2xvYmFsVGhpc1tpc1JlbW90ZUNvbmZpZ1N1cHBvcnRlZFByb21pc2VTeW1ib2xdLFxuICBzeW5jOiAoKSA9PiB7XG4gICAgY29uc3QgcmV0ID0gZ2xvYmFsVGhpc1tpc1JlbW90ZUNvbmZpZ1N1cHBvcnRlZFZhbHVlU3ltYm9sXTtcbiAgICBpZiAocmV0ID09PSB1bmRlZmluZWQpIHsgdGhyb3cgbmV3IEVycm9yKGlzU3VwcG9ydGVkRXJyb3IoJ1JlbW90ZUNvbmZpZycpKTsgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCDJtWlzQW5hbHl0aWNzU3VwcG9ydGVkRmFjdG9yeSA9IHtcbiAgYXN5bmM6ICgpID0+IGdsb2JhbFRoaXNbaXNBbmFseXRpY3NTdXBwb3J0ZWRQcm9taXNlU3ltYm9sXSxcbiAgc3luYzogKCkgPT4ge1xuICAgIGNvbnN0IHJldCA9IGdsb2JhbFRoaXNbaXNBbmFseXRpY3NTdXBwb3J0ZWRWYWx1ZVN5bWJvbF07XG4gICAgaWYgKHJldCA9PT0gdW5kZWZpbmVkKSB7IHRocm93IG5ldyBFcnJvcihpc1N1cHBvcnRlZEVycm9yKCdBbmFseXRpY3MnKSk7IH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG59O1xuXG4vLyBUT0RPIGlzIHRoZXJlIGEgYmV0dGVyIHdheSB0byBnZXQgYXQgdGhlIGludGVybmFsIHR5cGVzP1xuaW50ZXJmYWNlIEZpcmViYXNlQXBwV2l0aENvbnRhaW5lciBleHRlbmRzIEZpcmViYXNlQXBwIHtcbiAgY29udGFpbmVyOiBDb21wb25lbnRDb250YWluZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiDJtWdldERlZmF1bHRJbnN0YW5jZU9mPFQ9IHVua25vd24+KGlkZW50aWZpZXI6IHN0cmluZywgcHJvdmlkZWQ6IFRbXXx1bmRlZmluZWQsIGRlZmF1bHRBcHA6IEZpcmViYXNlQXBwKTogVHx1bmRlZmluZWQgIHtcbiAgaWYgKHByb3ZpZGVkKSB7XG4gICAgLy8gV2FzIHByb3ZpZGUqIG9ubHkgY2FsbGVkIG9uY2U/IElmIHNvIGdyYWIgdGhhdFxuICAgIGlmIChwcm92aWRlZC5sZW5ndGggPT09IDEpIHsgcmV0dXJuIHByb3ZpZGVkWzBdOyB9XG4gICAgY29uc3QgcHJvdmlkZWRVc2luZ0RlZmF1bHRBcHAgPSBwcm92aWRlZC5maWx0ZXIoKGl0OiBhbnkpID0+IGl0LmFwcCA9PT0gZGVmYXVsdEFwcCk7XG4gICAgLy8gV2FzIHByb3ZpZGUqIG9ubHkgY2FsbGVkIG9uY2UsIHVzaW5nIHRoZSBkZWZhdWx0IGFwcD8gSWYgc28gdXNlIHRoYXRcbiAgICBpZiAocHJvdmlkZWRVc2luZ0RlZmF1bHRBcHAubGVuZ3RoID09PSAxKSB7IHJldHVybiBwcm92aWRlZFVzaW5nRGVmYXVsdEFwcFswXTsgfVxuICB9XG4gIC8vIEdyYWIgdGhlIGRlZmF1bHQgaW5zdGFuY2UgZnJvbSB0aGUgZGVmYXVsdEFwcFxuICBjb25zdCBkZWZhdWx0QXBwV2l0aENvbnRhaW5lcjogRmlyZWJhc2VBcHBXaXRoQ29udGFpbmVyID0gZGVmYXVsdEFwcCBhcyBhbnk7XG4gIGNvbnN0IHByb3ZpZGVyID0gZGVmYXVsdEFwcFdpdGhDb250YWluZXIuY29udGFpbmVyLmdldFByb3ZpZGVyKGlkZW50aWZpZXIgYXMgbmV2ZXIpO1xuICByZXR1cm4gcHJvdmlkZXIuZ2V0SW1tZWRpYXRlKHsgb3B0aW9uYWw6IHRydWUgfSk7XG59XG5cbmV4cG9ydCBjb25zdCDJtWdldEFsbEluc3RhbmNlc09mID0gPFQ9IHVua25vd24+KGlkZW50aWZpZXI6IHN0cmluZywgYXBwPzogRmlyZWJhc2VBcHApOiBBcnJheTxUPiA9PiB7XG4gIGNvbnN0IGFwcHMgPSBhcHAgPyBbYXBwXSA6IGdldEFwcHMoKTtcbiAgY29uc3QgaW5zdGFuY2VzOiBBcnJheTxhbnk+ID0gW107XG4gIGFwcHMuZm9yRWFjaCgoYXBwOiBGaXJlYmFzZUFwcFdpdGhDb250YWluZXIpID0+IHtcbiAgICBjb25zdCBwcm92aWRlcjogYW55ID0gYXBwLmNvbnRhaW5lci5nZXRQcm92aWRlcihpZGVudGlmaWVyIGFzIG5ldmVyKTtcbiAgICBwcm92aWRlci5pbnN0YW5jZXMuZm9yRWFjaCgoaW5zdGFuY2U6IGFueSkgPT4ge1xuICAgICAgaWYgKCFpbnN0YW5jZXMuaW5jbHVkZXMoaW5zdGFuY2UpKSB7XG4gICAgICAgIGluc3RhbmNlcy5wdXNoKGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBpbnN0YW5jZXM7XG59O1xuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFlLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVwRCxPQUFPLEVBQUUsV0FBVyxJQUFJLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLElBQUksb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUUzRCxNQUFNLCtCQUErQixHQUFHLGlEQUFpRCxDQUFDO0FBQzFGLE1BQU0saUNBQWlDLEdBQUcsNENBQTRDLENBQUM7QUFDdkYsTUFBTSxrQ0FBa0MsR0FBRyxvREFBb0QsQ0FBQztBQUNoRyxNQUFNLG9DQUFvQyxHQUFHLCtDQUErQyxDQUFDO0FBQzdGLE1BQU0sK0JBQStCLEdBQUcsaURBQWlELENBQUM7QUFDMUYsTUFBTSxpQ0FBaUMsR0FBRyw0Q0FBNEMsQ0FBQztBQUV2RixVQUFVLENBQUMsaUNBQWlDLE1BQTVDLFVBQVUsQ0FBQyxpQ0FBaUMsSUFBTSxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUNqRixVQUFVLENBQUMsK0JBQStCLENBQUMsR0FBRyxFQUFFLENBQ2pELENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUNYLFVBQVUsQ0FBQywrQkFBK0IsQ0FBQyxHQUFHLEtBQUssQ0FDcEQsRUFBQztBQUVGLFVBQVUsQ0FBQyxpQ0FBaUMsTUFBNUMsVUFBVSxDQUFDLGlDQUFpQyxJQUFNLG9CQUFvQixFQUFFLENBQUMs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bUIsQ0FBQyxDQUFDO0lBQ3BGLE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFhLFVBQWtCLEVBQUUsR0FBaUIsRUFBWSxFQUFFO0lBQ2hHLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckMsTUFBTSxTQUFTLEdBQWUsRUFBRSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUE2QixFQUFFLEVBQUU7UUFDN0MsTUFBTSxRQUFRLEdBQVEsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsVUFBbUIsQ0FBQyxDQUFDO1FBQ3JFLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlyZWJhc2VBcHAsIGdldEFwcHMgfSBmcm9tICdmaXJlYmFzZS9hcHAnO1xuaW1wb3J0IHsgQ29tcG9uZW50Q29udGFpbmVyIH0gZnJvbSAnQGZpcmViYXNlL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBpc1N1cHBvcnRlZCBhcyBpc1JlbW90ZUNvbmZpZ1N1cHBvcnRlZCB9IGZyb20gJ2ZpcmViYXNlL3JlbW90ZS1jb25maWcnO1xuaW1wb3J0IHsgaXNTdXBwb3J0ZWQgYXMgaXNNZXNzYWdpbmdTdXBwb3J0ZWQgfSBmcm9tICdmaXJlYmFzZS9tZXNzYWdpbmcnO1xuaW1wb3J0IHsgaXNTdXBwb3J0ZWQgYXMgaXNBbmFseXRpY3NTdXBwb3J0ZWQgfSBmcm9tICdmaXJlYmFzZS9hbmFseXRpY3MnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCdBTkdVTEFSRklSRTJfVkVSU0lPTicpO1xuXG5jb25zdCBpc0FuYWx5dGljc1N1cHBvcnRlZFZhbHVlU3ltYm9sID0gJ19fYW5ndWxhcmZpcmVfc3ltYm9sX19hbmFseXRpY3NJc1N1cHBvcnRlZFZhbHVlJztcbmNvbnN0IGlzQW5hbHl0aWNzU3VwcG9ydGVkUHJvbWlzZVN5bWJvbCA9ICdfX2FuZ3VsYXJmaXJlX3N5bWJvbF9fYW5hbHl0aWNzSXNTdXBwb3J0ZWQnO1xuY29uc3QgaXNSZW1vdGVDb25maWdTdXBwb3J0ZWRWYWx1ZVN5bWJvbCA9ICdfX2FuZ3VsYXJmaXJlX3N5bWJvbF9fcmVtb3RlQ29uZmlnSXNTdXBwb3J0ZWRWYWx1ZSc7XG5jb25zdCBpc1JlbW90ZUNvbmZpZ1N1cHBvcnRlZFByb21pc2VTeW1ib2wgPSAnX19hbmd1bGFyZmlyZV9zeW1ib2xfX3JlbW90ZUNvbmZpZ0lzU3VwcG9ydGVkJztcbmNvbnN0IGlzTWVzc2FnaW5nU3VwcG9ydGVkVmFsdWVTeW1ib2wgPSAnX19hbmd1bGFyZmlyZV9zeW1ib2xfX21lc3NhZ2luZ0lzU3VwcG9ydGVkVmFsdWUnO1xuY29uc3QgaXNNZXNzYWdpbmdTdXBwb3J0ZWRQcm9taXNlU3ltYm9sID0gJ19fYW5ndWxhcmZpcmVfc3ltYm9sX19tZXNzYWdpbmdJc1N1cHBvcnRlZCc7XG5cbmdsb2JhbFRoaXNbaXNBbmFseXRpY3NTdXBwb3J0ZWRQcm9taXNlU3ltYm9sXSB8fD0gaXNBbmFseXRpY3NTdXBwb3J0ZWQoKS50aGVuKGl0ID0+XG4gIGdsb2JhbFRoaXNbaXNBbmFseXRpY3NTdXBwb3J0ZWRWYWx1ZVN5bWJvbF0gPSBpdFxuKS5jYXRjaCgoKSA9PlxuICBnbG9iYWxUaGlzW2lzQW5hbHl0aWNzU3VwcG9ydGVkVmFsdWVTeW1ib2xdID0gZmFsc2Vcbik7XG5cbmdsb2JhbFRoaXNbaXNNZXNzYWdpbmdTdXBwb3J0ZWRQcm9taXNlU3ltYm9sXSB8fD0gaXNNZXNzYWdpbmdTdXBwb3J0ZWQoKS50aGVuKGl0ID0+XG4gIGdsb2JhbFRoaXNbaXNNZXNzYWdpbmdTdXBwb3J0ZWRWYWx1ZVN5bWJvbF0gPSBpdFxuKS5jYXRjaCgoKSA9PlxuICBnbG9iYWxUaGlzW2lzTWVzc2FnaW5nU3VwcG9ydGVkVmFsdWVTeW1ib2xdID0gZmFsc2Vcbik7XG5cbmdsb2JhbFRoaXNbaXNSZW1vdGVDb25maWdTdXBwb3J0ZWRQcm9taXNlU3ltYm9sXSB8fD0gaXNSZW1vdGVDb25maWdTdXBwb3J0ZWQoKS50aGVuKGl0ID0+XG4gIGdsb2JhbFRoaXNbaXNSZW1vdGVDb25maWdTdXBwb3J0ZWRWYWx1ZVN5bWJvbF0gPSBpdFxuKS5jYXRjaCgoKSA9PlxuICBnbG9iYWxUaGlzW2lzUmVtb3RlQ29uZmlnU3VwcG9ydGVkVmFsdWVTeW1ib2xdID0gZmFsc2Vcbik7XG5cbmNvbnN0IGlzU3VwcG9ydGVkRXJyb3IgPSAobW9kdWxlOiBzdHJpbmcpID0+XG4gIGBUaGUgQVBQX0lOSVRJQUxJWkVSIHRoYXQgaXMgXCJtYWtpbmdcIiBpc1N1cHBvcnRlZCgpIHN5bmMgZm9yIHRoZSBzYWtlIG9mIGNvbnZlbmllbnQgREkgaGFzIG5vdCByZXNvbHZlZCBpbiB0aGlzXG5jb250ZXh0LiBSYXRoZXIgdGhhbiBpbmplY3RpbmcgJHttb2R1bGV9IGluIHRoZSBjb25zdHJ1Y3RvciwgZmlyc3QgZW5zdXJlIHRoYXQgJHttb2R1bGV9IGlzIHN1cHBvcnRlZCBieSBjYWxsaW5nXG5cXGBhd2FpdCBpc1N1cHBvcnRlZCgpXFxgLCB0aGVuIHJldHJpZXZlIHRoZSBpbnN0YW5jZSBmcm9tIHRoZSBpbmplY3RvciBtYW51YWxseSBcXGBpbmplY3Rvci5nZXQoJHttb2R1bGV9KVxcYC5gO1xuXG5leHBvcnQgY29uc3QgybVpc01lc3NhZ2luZ1N1cHBvcnRlZEZhY3RvcnkgPSB7XG4gIGFzeW5jOiAoKSA9PiBnbG9iYWxUaGlzW2lzTWVzc2FnaW5nU3VwcG9ydGVkUHJvbWlzZVN5bWJvbF0sXG4gIHN5bmM6ICgpID0+IHtcbiAgICBjb25zdCByZXQgPSBnbG9iYWxUaGlzW2lzTWVzc2FnaW5nU3VwcG9ydGVkVmFsdWVTeW1ib2xdO1xuICAgIGlmIChyZXQgPT09IHVuZGVmaW5lZCkgeyB0aHJvdyBuZXcgRXJyb3IoaXNTdXBwb3J0ZWRFcnJvcignTWVzc2FnaW5nJykpOyB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IMm1aXNSZW1vdGVDb25maWdTdXBwb3J0ZWRGYWN0b3J5ID0ge1xuICBhc3luYzogKCkgPT4gZ2xvYmFsVGhpc1tpc1JlbW90ZUNvbmZpZ1N1cHBvcnRlZFByb21pc2VTeW1ib2xdLFxuICBzeW5jOiAoKSA9PiB7XG4gICAgY29uc3QgcmV0ID0gZ2xvYmFsVGhpc1tpc1JlbW90ZUNvbmZpZ1N1cHBvcnRlZFZhbHVlU3ltYm9sXTtcbiAgICBpZiAocmV0ID09PSB1bmRlZmluZWQpIHsgdGhyb3cgbmV3IEVycm9yKGlzU3VwcG9ydGVkRXJyb3IoJ1JlbW90ZUNvbmZpZycpKTsgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCDJtWlzQW5hbHl0aWNzU3VwcG9ydGVkRmFjdG9yeSA9IHtcbiAgYXN5bmM6ICgpID0+IGdsb2JhbFRoaXNbaXNBbmFseXRpY3NTdXBwb3J0ZWRQcm9taXNlU3ltYm9sXSxcbiAgc3luYzogKCkgPT4ge1xuICAgIGNvbnN0IHJldCA9IGdsb2JhbFRoaXNbaXNBbmFseXRpY3NTdXBwb3J0ZWRWYWx1ZVN5bWJvbF07XG4gICAgaWYgKHJldCA9PT0gdW5kZWZpbmVkKSB7IHRocm93IG5ldyBFcnJvcihpc1N1cHBvcnRlZEVycm9yKCdBbmFseXRpY3MnKSk7IH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG59O1xuXG4vLyBUT0RPIGlzIHRoZXJlIGEgYmV0dGVyIHdheSB0byBnZXQgYXQgdGhlIGludGVybmFsIHR5cGVzP1xuaW50ZXJmYWNlIEZpcmViYXNlQXBwV2l0aENvbnRhaW5lciBleHRlbmRzIEZpcmViYXNlQXBwIHtcbiAgY29udGFpbmVyOiBDb21wb25lbnRDb250YWluZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiDJtWdldERlZmF1bHRJbnN0YW5jZU9mPFQ9IHVua25vd24+KGlkZW50aWZpZXI6IHN0cmluZywgcHJvdmlkZWQ6IFRbXXx1bmRlZmluZWQsIGRlZmF1bHRBcHA6IEZpcmViYXNlQXBwKTogVHx1bmRlZmluZWQgIHtcbiAgaWYgKHByb3ZpZGVkKSB7XG4gICAgLy8gV2FzIHByb3ZpZGUqIG9ubHkgY2FsbGVkIG9uY2U/IElmIHNvIGdyYWIgdGhhdFxuICAgIGlmIChwcm92aWRlZC5sZW5ndGggPT09IDEpIHsgcmV0dXJuIHByb3ZpZGVkWzBdOyB9XG4gICAgY29uc3QgcHJvdmlkZWRVc2luZ0RlZmF1bHRBcHAgPSBwcm92aWRlZC5maWx0ZXIoKGl0OiBhbnkpID0+IGl0LmFwcCA9PT0gZGVmYXVsdEFwcCk7XG4gICAgLy8gV2FzIHByb3ZpZGUqIG9ubHkgY2FsbGVkIG9uY2UsIHVzaW5nIHRoZSBkZWZhdWx0IGFwcD8gSWYgc28gdXNlIHRoYXRcbiAgICBpZiAocHJvdmlkZWRVc2luZ0RlZmF1bHRBcHAubGVuZ3RoID09PSAxKSB7IHJldHVybiBwcm92aWRlZFVzaW5nRGVmYXVsdEFwcFswXTsgfVxuICB9XG4gIC8vIEdyYWIgdGhlIGRlZmF1bHQgaW5zdGFuY2UgZnJvbSB0aGUgZGVmYXVsdEFwcFxuICBjb25zdCBkZWZhdWx0QXBwV2l0aENvbnRhaW5lcjogRmlyZWJhc2VBcHBXaXRoQ29udGFpbmVyID0gZGVmYXVsdEFwcCBhcyBhbnk7XG4gIGNvbnN0IHByb3ZpZGVyID0gZGVmYXVsdEFwcFdpdGhDb250YWluZXIuY29udGFpbmVyLmdldFByb3ZpZGVyKGlkZW50aWZpZXIgYXMgbmV2ZXIpO1xuICByZXR1cm4gcHJvdmlkZXIuZ2V0SW1tZWRpYXRlKHsgb3B0aW9uYWw6IHRydWUgfSk7XG59XG5cbmV4cG9ydCBjb25zdCDJtWdldEFsbEluc3RhbmNlc09mID0gPFQ9IHVua25vd24+KGlkZW50aWZpZXI6IHN0cmluZywgYXBwPzogRmlyZWJhc2VBcHApOiBBcnJheTxUPiA9PiB7XG4gIGNvbnN0IGFwcHMgPSBhcHAgPyBbYXBwXSA6IGdldEFwcHMoKTtcbiAgY29uc3QgaW5zdGFuY2VzOiBBcnJheTxhbnk+ID0gW107XG4gIGFwcHMuZm9yRWFjaCgoYXBwOiBGaXJlYmFzZUFwcFdpdGhDb250YWluZXIpID0+IHtcbiAgICBjb25zdCBwcm92aWRlcjogYW55ID0gYXBwLmNvbnRhaW5lci5nZXRQcm92aWRlcihpZGVudGlmaWVyIGFzIG5ldmVyKTtcbiAgICBwcm92aWRlci5pbnN0YW5jZXMuZm9yRWFjaCgoaW5zdGFuY2U6IGFueSkgPT4ge1xuICAgICAgaWYgKCFpbnN0YW5jZXMuaW5jbHVkZXMoaW5zdGFuY2UpKSB7XG4gICAgICAgIGluc3RhbmNlcy5wdXNoKGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBpbnN0YW5jZXM7XG59O1xuIl19
@@ -1,12 +1,15 @@
1
1
  // DO NOT MODIFY, this file is autogenerated by tools/build.ts
2
2
  export * from 'firebase/storage';
3
3
  import { ɵzoneWrap } from '@angular/fire';
4
- import { connectStorageEmulator as _connectStorageEmulator, deleteObject as _deleteObject, getDownloadURL as _getDownloadURL, getMetadata as _getMetadata, getStorage as _getStorage, list as _list, listAll as _listAll, ref as _ref, updateMetadata as _updateMetadata, uploadBytes as _uploadBytes, uploadBytesResumable as _uploadBytesResumable, uploadString as _uploadString } from 'firebase/storage';
4
+ import { connectStorageEmulator as _connectStorageEmulator, deleteObject as _deleteObject, getBlob as _getBlob, getBytes as _getBytes, getDownloadURL as _getDownloadURL, getMetadata as _getMetadata, getStorage as _getStorage, getStream as _getStream, list as _list, listAll as _listAll, ref as _ref, updateMetadata as _updateMetadata, uploadBytes as _uploadBytes, uploadBytesResumable as _uploadBytesResumable, uploadString as _uploadString } from 'firebase/storage';
5
5
  export const connectStorageEmulator = ɵzoneWrap(_connectStorageEmulator, true);
6
6
  export const deleteObject = ɵzoneWrap(_deleteObject, true);
7
+ export const getBlob = ɵzoneWrap(_getBlob, true);
8
+ export const getBytes = ɵzoneWrap(_getBytes, true);
7
9
  export const getDownloadURL = ɵzoneWrap(_getDownloadURL, true);
8
10
  export const getMetadata = ɵzoneWrap(_getMetadata, true);
9
11
  export const getStorage = ɵzoneWrap(_getStorage, true);
12
+ export const getStream = ɵzoneWrap(_getStream, true);
10
13
  export const list = ɵzoneWrap(_list, true);
11
14
  export const listAll = ɵzoneWrap(_listAll, true);
12
15
  export const ref = ɵzoneWrap(_ref, true);
@@ -14,4 +17,4 @@ export const updateMetadata = ɵzoneWrap(_updateMetadata, true);
14
17
  export const uploadBytes = ɵzoneWrap(_uploadBytes, true);
15
18
  export const uploadBytesResumable = ɵzoneWrap(_uploadBytesResumable, true);
16
19
  export const uploadString = ɵzoneWrap(_uploadString, true);
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3RvcmFnZS9maXJlYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFDOUQsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFDTCxzQkFBc0IsSUFBSSx1QkFBdUIsRUFDakQsWUFBWSxJQUFJLGFBQWEsRUFDN0IsY0FBYyxJQUFJLGVBQWUsRUFDakMsV0FBVyxJQUFJLFlBQVksRUFDM0IsVUFBVSxJQUFJLFdBQVcsRUFDekIsSUFBSSxJQUFJLEtBQUssRUFDYixPQUFPLElBQUksUUFBUSxFQUNuQixHQUFHLElBQUksSUFBSSxFQUNYLGNBQWMsSUFBSSxlQUFlLEVBQ2pDLFdBQVcsSUFBSSxZQUFZLEVBQzNCLG9CQUFvQixJQUFJLHFCQUFxQixFQUM3QyxZQUFZLElBQUksYUFBYSxFQUM5QixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLFNBQVMsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMvRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMvRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2RCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMzQyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMvRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxTQUFTLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDM0UsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBETyBOT1QgTU9ESUZZLCB0aGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSB0b29scy9idWlsZC50c1xuZXhwb3J0ICogZnJvbSAnZmlyZWJhc2Uvc3RvcmFnZSc7XG5pbXBvcnQgeyDJtXpvbmVXcmFwIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZSc7XG5pbXBvcnQge1xuICBjb25uZWN0U3RvcmFnZUVtdWxhdG9yIGFzIF9jb25uZWN0U3RvcmFnZUVtdWxhdG9yLFxuICBkZWxldGVPYmplY3QgYXMgX2RlbGV0ZU9iamVjdCxcbiAgZ2V0RG93bmxvYWRVUkwgYXMgX2dldERvd25sb2FkVVJMLFxuICBnZXRNZXRhZGF0YSBhcyBfZ2V0TWV0YWRhdGEsXG4gIGdldFN0b3JhZ2UgYXMgX2dldFN0b3JhZ2UsXG4gIGxpc3QgYXMgX2xpc3QsXG4gIGxpc3RBbGwgYXMgX2xpc3RBbGwsXG4gIHJlZiBhcyBfcmVmLFxuICB1cGRhdGVNZXRhZGF0YSBhcyBfdXBkYXRlTWV0YWRhdGEsXG4gIHVwbG9hZEJ5dGVzIGFzIF91cGxvYWRCeXRlcyxcbiAgdXBsb2FkQnl0ZXNSZXN1bWFibGUgYXMgX3VwbG9hZEJ5dGVzUmVzdW1hYmxlLFxuICB1cGxvYWRTdHJpbmcgYXMgX3VwbG9hZFN0cmluZ1xufSBmcm9tICdmaXJlYmFzZS9zdG9yYWdlJztcblxuZXhwb3J0IGNvbnN0IGNvbm5lY3RTdG9yYWdlRW11bGF0b3IgPSDJtXpvbmVXcmFwKF9jb25uZWN0U3RvcmFnZUVtdWxhdG9yLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBkZWxldGVPYmplY3QgPSDJtXpvbmVXcmFwKF9kZWxldGVPYmplY3QsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGdldERvd25sb2FkVVJMID0gybV6b25lV3JhcChfZ2V0RG93bmxvYWRVUkwsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGdldE1ldGFkYXRhID0gybV6b25lV3JhcChfZ2V0TWV0YWRhdGEsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGdldFN0b3JhZ2UgPSDJtXpvbmVXcmFwKF9nZXRTdG9yYWdlLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBsaXN0ID0gybV6b25lV3JhcChfbGlzdCwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgbGlzdEFsbCA9IMm1em9uZVdyYXAoX2xpc3RBbGwsIHRydWUpO1xuZXhwb3J0IGNvbnN0IHJlZiA9IMm1em9uZVdyYXAoX3JlZiwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgdXBkYXRlTWV0YWRhdGEgPSDJtXpvbmVXcmFwKF91cGRhdGVNZXRhZGF0YSwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgdXBsb2FkQnl0ZXMgPSDJtXpvbmVXcmFwKF91cGxvYWRCeXRlcywgdHJ1ZSk7XG5leHBvcnQgY29uc3QgdXBsb2FkQnl0ZXNSZXN1bWFibGUgPSDJtXpvbmVXcmFwKF91cGxvYWRCeXRlc1Jlc3VtYWJsZSwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgdXBsb2FkU3RyaW5nID0gybV6b25lV3JhcChfdXBsb2FkU3RyaW5nLCB0cnVlKTtcbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3RvcmFnZS9maXJlYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFDOUQsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFDTCxzQkFBc0IsSUFBSSx1QkFBdUIsRUFDakQsWUFBWSxJQUFJLGFBQWEsRUFDN0IsT0FBTyxJQUFJLFFBQVEsRUFDbkIsUUFBUSxJQUFJLFNBQVMsRUFDckIsY0FBYyxJQUFJLGVBQWUsRUFDakMsV0FBVyxJQUFJLFlBQVksRUFDM0IsVUFBVSxJQUFJLFdBQVcsRUFDekIsU0FBUyxJQUFJLFVBQVUsRUFDdkIsSUFBSSxJQUFJLEtBQUssRUFDYixPQUFPLElBQUksUUFBUSxFQUNuQixHQUFHLElBQUksSUFBSSxFQUNYLGNBQWMsSUFBSSxlQUFlLEVBQ2pDLFdBQVcsSUFBSSxZQUFZLEVBQzNCLG9CQUFvQixJQUFJLHFCQUFxQixFQUM3QyxZQUFZLElBQUksYUFBYSxFQUM5QixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLFNBQVMsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMvRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMvRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNyRCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMzQyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMvRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxTQUFTLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDM0UsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBETyBOT1QgTU9ESUZZLCB0aGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSB0b29scy9idWlsZC50c1xuZXhwb3J0ICogZnJvbSAnZmlyZWJhc2Uvc3RvcmFnZSc7XG5pbXBvcnQgeyDJtXpvbmVXcmFwIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZSc7XG5pbXBvcnQge1xuICBjb25uZWN0U3RvcmFnZUVtdWxhdG9yIGFzIF9jb25uZWN0U3RvcmFnZUVtdWxhdG9yLFxuICBkZWxldGVPYmplY3QgYXMgX2RlbGV0ZU9iamVjdCxcbiAgZ2V0QmxvYiBhcyBfZ2V0QmxvYixcbiAgZ2V0Qnl0ZXMgYXMgX2dldEJ5dGVzLFxuICBnZXREb3dubG9hZFVSTCBhcyBfZ2V0RG93bmxvYWRVUkwsXG4gIGdldE1ldGFkYXRhIGFzIF9nZXRNZXRhZGF0YSxcbiAgZ2V0U3RvcmFnZSBhcyBfZ2V0U3RvcmFnZSxcbiAgZ2V0U3RyZWFtIGFzIF9nZXRTdHJlYW0sXG4gIGxpc3QgYXMgX2xpc3QsXG4gIGxpc3RBbGwgYXMgX2xpc3RBbGwsXG4gIHJlZiBhcyBfcmVmLFxuICB1cGRhdGVNZXRhZGF0YSBhcyBfdXBkYXRlTWV0YWRhdGEsXG4gIHVwbG9hZEJ5dGVzIGFzIF91cGxvYWRCeXRlcyxcbiAgdXBsb2FkQnl0ZXNSZXN1bWFibGUgYXMgX3VwbG9hZEJ5dGVzUmVzdW1hYmxlLFxuICB1cGxvYWRTdHJpbmcgYXMgX3VwbG9hZFN0cmluZ1xufSBmcm9tICdmaXJlYmFzZS9zdG9yYWdlJztcblxuZXhwb3J0IGNvbnN0IGNvbm5lY3RTdG9yYWdlRW11bGF0b3IgPSDJtXpvbmVXcmFwKF9jb25uZWN0U3RvcmFnZUVtdWxhdG9yLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBkZWxldGVPYmplY3QgPSDJtXpvbmVXcmFwKF9kZWxldGVPYmplY3QsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGdldEJsb2IgPSDJtXpvbmVXcmFwKF9nZXRCbG9iLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBnZXRCeXRlcyA9IMm1em9uZVdyYXAoX2dldEJ5dGVzLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBnZXREb3dubG9hZFVSTCA9IMm1em9uZVdyYXAoX2dldERvd25sb2FkVVJMLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBnZXRNZXRhZGF0YSA9IMm1em9uZVdyYXAoX2dldE1ldGFkYXRhLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBnZXRTdG9yYWdlID0gybV6b25lV3JhcChfZ2V0U3RvcmFnZSwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgZ2V0U3RyZWFtID0gybV6b25lV3JhcChfZ2V0U3RyZWFtLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBsaXN0ID0gybV6b25lV3JhcChfbGlzdCwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgbGlzdEFsbCA9IMm1em9uZVdyYXAoX2xpc3RBbGwsIHRydWUpO1xuZXhwb3J0IGNvbnN0IHJlZiA9IMm1em9uZVdyYXAoX3JlZiwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgdXBkYXRlTWV0YWRhdGEgPSDJtXpvbmVXcmFwKF91cGRhdGVNZXRhZGF0YSwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgdXBsb2FkQnl0ZXMgPSDJtXpvbmVXcmFwKF91cGxvYWRCeXRlcywgdHJ1ZSk7XG5leHBvcnQgY29uc3QgdXBsb2FkQnl0ZXNSZXN1bWFibGUgPSDJtXpvbmVXcmFwKF91cGxvYWRCeXRlc1Jlc3VtYWJsZSwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgdXBsb2FkU3RyaW5nID0gybV6b25lV3JhcChfdXBsb2FkU3RyaW5nLCB0cnVlKTtcbiJdfQ==
package/esm2015/zones.js CHANGED
@@ -117,6 +117,7 @@ const zoneWrapFn = (it, macrotask) => {
117
117
  // function() is needed for the arguments object
118
118
  // tslint:disable-next-line:only-arrow-functions
119
119
  return function () {
120
+ const _arguments = arguments;
120
121
  if (macrotask) {
121
122
  setTimeout(() => {
122
123
  if (macrotask.state === 'scheduled') {
@@ -124,7 +125,7 @@ const zoneWrapFn = (it, macrotask) => {
124
125
  }
125
126
  }, 10);
126
127
  }
127
- return run(() => it.apply(_this, arguments));
128
+ return run(() => it.apply(_this, _arguments));
128
129
  };
129
130
  };
130
131
  export const ɵzoneWrap = (it, blockUntilFirst) => {
@@ -132,18 +133,19 @@ export const ɵzoneWrap = (it, blockUntilFirst) => {
132
133
  // tslint:disable-next-line:only-arrow-functions
133
134
  return function () {
134
135
  let macrotask;
136
+ const _arguments = arguments;
135
137
  // if this is a callback function, e.g, onSnapshot, we should create a microtask and invoke it
136
138
  // only once one of the callback functions is tripped.
137
139
  for (let i = 0; i < arguments.length; i++) {
138
- if (typeof arguments[i] === 'function') {
140
+ if (typeof _arguments[i] === 'function') {
139
141
  if (blockUntilFirst) {
140
142
  macrotask || (macrotask = run(() => Zone.current.scheduleMacroTask('firebaseZoneBlock', noop, {}, noop, noop)));
141
143
  }
142
144
  // TODO create a microtask to track callback functions
143
- arguments[i] = zoneWrapFn(arguments[i], macrotask);
145
+ _arguments[i] = zoneWrapFn(_arguments[i], macrotask);
144
146
  }
145
147
  }
146
- const ret = runOutsideAngular(() => it.apply(this, arguments));
148
+ const ret = runOutsideAngular(() => it.apply(this, _arguments));
147
149
  if (!blockUntilFirst) {
148
150
  if (ret instanceof Observable) {
149
151
  const schedulers = getSchedulers();
@@ -178,4 +180,4 @@ export const ɵzoneWrap = (it, blockUntilFirst) => {
178
180
  }
179
181
  };
180
182
  };
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvem9uZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLGNBQWMsRUFDZCxVQUFVLEVBRVYsY0FBYyxFQU1mLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTdELFNBQVMsSUFBSTtBQUNiLENBQUM7QUFFRDs7R0FFRztBQUNILHNDQUFzQztBQUN0QyxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUFvQixJQUFTLEVBQVUsV0FBZ0IsY0FBYztRQUFqRCxTQUFJLEdBQUosSUFBSSxDQUFLO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7SUFDckUsQ0FBQztJQUVELEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUF1RCxFQUFFLEtBQWMsRUFBRSxLQUFXO1FBQzNGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDN0IsMEZBQTBGO1FBQzFGLHVDQUF1QztRQUN2QyxNQUFNLFVBQVUsR0FBRyxVQUFxQyxLQUFVO1lBQ2hFLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixzR0FBc0c7UUFDdEcsaUdBQWlHO1FBQ2pHLCtHQUErRztRQUMvRyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7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RyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBUSxDQUFDO0FBQ1gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBhc3luY1NjaGVkdWxlcixcbiAgT2JzZXJ2YWJsZSxcbiAgT3BlcmF0b3IsXG4gIHF1ZXVlU2NoZWR1bGVyLFxuICBTY2hlZHVsZXJBY3Rpb24sXG4gIFNjaGVkdWxlckxpa2UsXG4gIFN1YnNjcmliZXIsXG4gIFN1YnNjcmlwdGlvbixcbiAgVGVhcmRvd25Mb2dpY1xufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG9ic2VydmVPbiwgc3Vic2NyaWJlT24sIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZnVuY3Rpb24gbm9vcCgpIHtcbn1cblxuLyoqXG4gKiBTY2hlZHVsZXMgdGFza3Mgc28gdGhhdCB0aGV5IGFyZSBpbnZva2VkIGluc2lkZSB0aGUgWm9uZSB0aGF0IGlzIHBhc3NlZCBpbiB0aGUgY29uc3RydWN0b3IuXG4gKi9cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjbGFzcy1uYW1lXG5leHBvcnQgY2xhc3MgybVab25lU2NoZWR1bGVyIGltcGxlbWVudHMgU2NoZWR1bGVyTGlrZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogYW55LCBwcml2YXRlIGRlbGVnYXRlOiBhbnkgPSBxdWV1ZVNjaGVkdWxlcikge1xuICB9XG5cbiAgbm93KCkge1xuICAgIHJldHVybiB0aGlzLmRlbGVnYXRlLm5vdygpO1xuICB9XG5cbiAgc2NoZWR1bGUod29yazogKHRoaXM6IFNjaGVkdWxlckFjdGlvbjxhbnk+LCBzdGF0ZT86IGFueSkgPT4gdm9pZCwgZGVsYXk/OiBudW1iZXIsIHN0YXRlPzogYW55KTogU3Vic2NyaXB0aW9uIHtcbiAgICBjb25zdCB0YXJnZXRab25lID0gdGhpcy56b25lO1xuICAgIC8vIFdyYXAgdGhlIHNwZWNpZmllZCB3b3JrIGZ1bmN0aW9uIHRvIG1ha2Ugc3VyZSB0aGF0IGlmIG5lc3RlZCBzY2hlZHVsaW5nIHRha2VzIHBsYWNlIHRoZVxuICAgIC8vIHdvcmsgaXMgZXhlY3V0ZWQgaW4gdGhlIGNvcnJlY3Qgem9uZVxuICAgIGNvbnN0IHdvcmtJblpvbmUgPSBmdW5jdGlvbih0aGlzOiBTY2hlZHVsZXJBY3Rpb248YW55Piwgc3RhdGU6IGFueSkge1xuICAgICAgdGFyZ2V0Wm9uZS5ydW5HdWFyZGVkKCgpID0+IHtcbiAgICAgICAgd29yay5hcHBseSh0aGlzLCBbc3RhdGVdKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvLyBTY2hlZHVsaW5nIGl0c2VsZiBuZWVkcyB0byBiZSBydW4gaW4gem9uZSB0byBlbnN1cmUgc2V0SW50ZXJ2YWwgY2FsbHMgZm9yIGFzeW5jIHNjaGVkdWxpbmcgYXJlIGRvbmVcbiAgICAvLyBpbnNpZGUgdGhlIGNvcnJlY3Qgem9uZS4gVGhpcyBzY2hlZHVsZXIgbmVlZHMgdG8gc2NoZWR1bGUgYXN5bmNocm9ub3VzbHkgYWx3YXlzIHRvIGVuc3VyZSB0aGF0XG4gICAgLy8gZmlyZWJhc2UgZW1pc3Npb25zIGFyZSBuZXZlciBzeW5jaHJvbm91cy4gU3BlY2lmeWluZyBhIGRlbGF5IGNhdXNlcyBpc3N1ZXMgd2l0aCB0aGUgcXVldWVTY2hlZHVsZXIgZGVsZWdhdGUuXG4gICAgcmV0dXJuIHRoaXMuZGVsZWdhdGUuc2NoZWR1bGUod29ya0luWm9uZSwgZGVsYXksIHN0YXRlKTtcbiAgfVxufVxuXG5jbGFzcyBCbG9ja1VudGlsRmlyc3RPcGVyYXRvcjxUPiBpbXBsZW1lbnRzIE9wZXJhdG9yPFQsIFQ+IHtcbiAgcHJpdmF0ZSB0YXNrOiBNYWNyb1Rhc2sgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IGFueSkge1xuICB9XG5cbiAgY2FsbChzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPFQ+LCBzb3VyY2U6IE9ic2VydmFibGU8VD4pOiBUZWFyZG93bkxvZ2ljIHtcbiAgICBjb25zdCB1bnNjaGVkdWxlVGFzayA9IHRoaXMudW5zY2hlZHVsZVRhc2suYmluZCh0aGlzKTtcbiAgICB0aGlzLnRhc2sgPSB0aGlzLnpvbmUucnVuKCgpID0+IFpvbmUuY3VycmVudC5zY2hlZHVsZU1hY3JvVGFzaygnZmlyZWJhc2Vab25lQmxvY2snLCBub29wLCB7fSwgbm9vcCwgbm9vcCkpO1xuXG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKFxuICAgICAgdGFwKHsgbmV4dDogdW5zY2hlZHVsZVRhc2ssIGNvbXBsZXRlOiB1bnNjaGVkdWxlVGFzaywgZXJyb3I6IHVuc2NoZWR1bGVUYXNrIH0pXG4gICAgKS5zdWJzY3JpYmUoc3Vic2NyaWJlcikuYWRkKHVuc2NoZWR1bGVUYXNrKTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zY2hlZHVsZVRhc2soKSB7XG4gICAgLy8gbWF5YmUgdGhpcyBpcyBhIHJhY2UgY29uZGl0aW9uLCBpbnZva2UgaW4gYSB0aW1lb3V0XG4gICAgLy8gaG9sZCBmb3IgMTBtcyB3aGlsZSBJIHRyeSB0byBmaWd1cmUgb3V0IHdoYXQgaXMgZ29pbmcgb25cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnRhc2sgIT0gbnVsbCAmJiB0aGlzLnRhc2suc3RhdGUgPT09ICdzY2hlZHVsZWQnKSB7XG4gICAgICAgIHRoaXMudGFzay5pbnZva2UoKTtcbiAgICAgICAgdGhpcy50YXNrID0gbnVsbDtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH1cbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNsYXNzLW5hbWVcbmV4cG9ydCBjbGFzcyDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycyB7XG4gIHB1YmxpYyByZWFkb25seSBvdXRzaWRlQW5ndWxhcjogybVab25lU2NoZWR1bGVyO1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zaWRlQW5ndWxhcjogybVab25lU2NoZWR1bGVyO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuZ1pvbmU6IE5nWm9uZSkge1xuICAgIHRoaXMub3V0c2lkZUFuZ3VsYXIgPSBuZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gbmV3IMm1Wm9uZVNjaGVkdWxlcihab25lLmN1cnJlbnQpKTtcbiAgICB0aGlzLmluc2lkZUFuZ3VsYXIgPSBuZ1pvbmUucnVuKCgpID0+IG5ldyDJtVpvbmVTY2hlZHVsZXIoWm9uZS5jdXJyZW50LCBhc3luY1NjaGVkdWxlcikpO1xuICAgIGdsb2JhbFRoaXMuybVBbmd1bGFyRmlyZVNjaGVkdWxlciB8fD0gdGhpcztcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRTY2hlZHVsZXJzKCkge1xuICBjb25zdCBzY2hlZHVsZXJzID0gZ2xvYmFsVGhpcy7JtUFuZ3VsYXJGaXJlU2NoZWR1bGVyIGFzIMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzfHVuZGVmaW5lZDtcbiAgaWYgKCFzY2hlZHVsZXJzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuYEVpdGhlciBBbmd1bGFyRmlyZU1vZHVsZSBoYXMgbm90IGJlZW4gcHJvdmlkZWQgaW4geW91ciBBcHBNb2R1bGUgKHRoaXMgY2FuIGJlIGRvbmUgbWFudWFsbHkgb3IgaW1wbGljdGx5IHVzaW5nXG5wcm92aWRlRmlyZWJhc2VBcHApIG9yIHlvdSdyZSBjYWxsaW5nIGFuIEFuZ3VsYXJGaXJlIG1ldGhvZCBvdXRzaWRlIG9mIGFuIE5nTW9kdWxlICh3aGljaCBpcyBub3Qgc3VwcG9ydGVkKS5gKTtcbiAgfVxuICByZXR1cm4gc2NoZWR1bGVycztcbn1cblxuZnVuY3Rpb24gcnVuT3V0c2lkZUFuZ3VsYXI8VD4oZm46ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQge1xuICByZXR1cm4gZ2V0U2NoZWR1bGVycygpLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBmbigpKTtcbn1cblxuZnVuY3Rpb24gcnVuPFQ+KGZuOiAoLi4uYXJnczogYW55W10pID0+IFQpOiBUIHtcbiAgcmV0dXJuIGdldFNjaGVkdWxlcnMoKS5uZ1pvbmUucnVuKCgpID0+IGZuKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb2JzZXJ2ZU91dHNpZGVBbmd1bGFyPFQ+KG9icyQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIG9icyQucGlwZShvYnNlcnZlT24oZ2V0U2NoZWR1bGVycygpLm91dHNpZGVBbmd1bGFyKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZlSW5zaWRlQW5ndWxhcjxUPihvYnMkOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBvYnMkLnBpcGUob2JzZXJ2ZU9uKGdldFNjaGVkdWxlcnMoKS5pbnNpZGVBbmd1bGFyKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBrZWVwVW5zdGFibGVVbnRpbEZpcnN0PFQ+KG9icyQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgY29uc3Qgc2NoZWR1bGVyID0gZ2V0U2NoZWR1bGVycygpO1xuICByZXR1cm4gybVrZWVwVW5zdGFibGVVbnRpbEZpcnN0RmFjdG9yeShnZXRTY2hlZHVsZXJzKCkpKG9icyQpO1xufVxuXG4vKipcbiAqIE9wZXJhdG9yIHRvIGJsb2NrIHRoZSB6b25lIHVudGlsIHRoZSBmaXJzdCB2YWx1ZSBoYXMgYmVlbiBlbWl0dGVkIG9yIHRoZSBvYnNlcnZhYmxlXG4gKiBoYXMgY29tcGxldGVkL2Vycm9yZWQuIFRoaXMgaXMgdXNlZCB0byBtYWtlIHN1cmUgdGhhdCB1bml2ZXJzYWwgd2FpdHMgdW50aWwgdGhlIGZpcnN0XG4gKiB2YWx1ZSBmcm9tIGZpcmViYXNlIGJ1dCBkb2Vzbid0IGJsb2NrIHRoZSB6b25lIGZvcmV2ZXIgc2luY2UgdGhlIGZpcmViYXNlIHN1YnNjcmlwdGlvblxuICogaXMgc3RpbGwgYWxpdmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiDJtWtlZXBVbnN0YWJsZVVudGlsRmlyc3RGYWN0b3J5KHNjaGVkdWxlcnM6IMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzKSB7XG4gIHJldHVybiBmdW5jdGlvbiBrZWVwVW5zdGFibGVVbnRpbEZpcnN0PFQ+KG9icyQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBvYnMkID0gb2JzJC5saWZ0KFxuICAgICAgbmV3IEJsb2NrVW50aWxGaXJzdE9wZXJhdG9yKHNjaGVkdWxlcnMubmdab25lKVxuICAgICk7XG5cbiAgICByZXR1cm4gb2JzJC5waXBlKFxuICAgICAgLy8gUnVuIHRoZSBzdWJzY3JpYmUgYm9keSBvdXRzaWRlIG9mIEFuZ3VsYXIgKGUuZy4gY2FsbGluZyBGaXJlYmFzZSBTREsgdG8gYWRkIGEgbGlzdGVuZXIgdG8gYSBjaGFuZ2UgZXZlbnQpXG4gICAgICBzdWJzY3JpYmVPbihzY2hlZHVsZXJzLm91dHNpZGVBbmd1bGFyKSxcbiAgICAgIC8vIFJ1biBvcGVyYXRvcnMgaW5zaWRlIHRoZSBhbmd1bGFyIHpvbmUgKGUuZy4gc2lkZSBlZmZlY3RzIHZpYSB0YXAoKSlcbiAgICAgIG9ic2VydmVPbihzY2hlZHVsZXJzLmluc2lkZUFuZ3VsYXIpXG4gICAgICAvLyBJTlZFU1RJR0FURSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyZmlyZS9wdWxsLzIzMTVcbiAgICAgIC8vIHNoYXJlKClcbiAgICApO1xuICB9O1xufVxuXG5jb25zdCB6b25lV3JhcEZuID0gKGl0OiAoLi4uYXJnczogYW55W10pID0+IGFueSwgbWFjcm90YXNrOiBNYWNyb1Rhc2t8dW5kZWZpbmVkKSA9PiB7XG4gIGNvbnN0IF90aGlzID0gdGhpcztcbiAgLy8gZnVuY3Rpb24oKSBpcyBuZWVkZWQgZm9yIHRoZSBhcmd1bWVudHMgb2JqZWN0XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpvbmx5LWFycm93LWZ1bmN0aW9uc1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgaWYgKG1hY3JvdGFzaykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChtYWNyb3Rhc2suc3RhdGUgPT09ICdzY2hlZHVsZWQnKSB7XG4gICAgICAgICAgbWFjcm90YXNrLmludm9rZSgpO1xuICAgICAgICB9XG4gICAgICB9LCAxMCk7XG4gICAgfVxuICAgIHJldHVybiBydW4oKCkgPT4gaXQuYXBwbHkoX3RoaXMsIGFyZ3VtZW50cykpO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IMm1em9uZVdyYXAgPSA8VD0gdW5rbm93bj4oaXQ6IFQsIGJsb2NrVW50aWxGaXJzdDogYm9vbGVhbik6IFQgPT4ge1xuICAvLyBmdW5jdGlvbigpIGlzIG5lZWRlZCBmb3IgdGhlIGFyZ3VtZW50cyBvYmplY3RcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm9ubHktYXJyb3ctZnVuY3Rpb25zXG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICBsZXQgbWFjcm90YXNrOiBNYWNyb1Rhc2sgfCB1bmRlZmluZWQ7XG4gICAgLy8gaWYgdGhpcyBpcyBhIGNhbGxiYWNrIGZ1bmN0aW9uLCBlLmcsIG9uU25hcHNob3QsIHdlIHNob3VsZCBjcmVhdGUgYSBtaWNyb3Rhc2sgYW5kIGludm9rZSBpdFxuICAgIC8vIG9ubHkgb25jZSBvbmUgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9ucyBpcyB0cmlwcGVkLlxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1tpXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpZiAoYmxvY2tVbnRpbEZpcnN0KSB7XG4gICAgICAgICAgbWFjcm90YXNrIHx8PSBydW4oKCkgPT4gWm9uZS5jdXJyZW50LnNjaGVkdWxlTWFjcm9UYXNrKCdmaXJlYmFzZVpvbmVCbG9jaycsIG5vb3AsIHt9LCBub29wLCBub29wKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVE9ETyBjcmVhdGUgYSBtaWNyb3Rhc2sgdG8gdHJhY2sgY2FsbGJhY2sgZnVuY3Rpb25zXG4gICAgICAgIGFyZ3VtZW50c1tpXSA9IHpvbmVXcmFwRm4oYXJndW1lbnRzW2ldLCBtYWNyb3Rhc2spO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByZXQgPSBydW5PdXRzaWRlQW5ndWxhcigoKSA9PiAoaXQgYXMgYW55KS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICBpZiAoIWJsb2NrVW50aWxGaXJzdCkge1xuICAgICAgaWYgKHJldCBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVycyA9IGdldFNjaGVkdWxlcnMoKTtcbiAgICAgICAgcmV0dXJuIHJldC5waXBlKFxuICAgICAgICAgIHN1YnNjcmliZU9uKHNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpLFxuICAgICAgICAgIG9ic2VydmVPbihzY2hlZHVsZXJzLmluc2lkZUFuZ3VsYXIpLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJ1bigoKSA9PiByZXQpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocmV0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgcmV0dXJuIHJldC5waXBlKGtlZXBVbnN0YWJsZVVudGlsRmlyc3QpIGFzIGFueTtcbiAgICB9IGVsc2UgaWYgKHJldCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIHJldHVybiBydW4oKCkgPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gcmV0LnRoZW4oaXQgPT4gcnVuKCgpID0+IHJlc29sdmUoaXQpKSwgcmVhc29uID0+IHJ1bigoKSA9PiByZWplY3QocmVhc29uKSkpKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcmV0ID09PSAnZnVuY3Rpb24nICYmIG1hY3JvdGFzaykge1xuICAgICAgLy8gSGFuZGxlIHVuc3Vic2NyaWJlXG4gICAgICAvLyBmdW5jdGlvbigpIGlzIG5lZWRlZCBmb3IgdGhlIGFyZ3VtZW50cyBvYmplY3RcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpvbmx5LWFycm93LWZ1bmN0aW9uc1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAobWFjcm90YXNrICYmIG1hY3JvdGFzay5zdGF0ZSA9PT0gJ3NjaGVkdWxlZCcpIHtcbiAgICAgICAgICAgIG1hY3JvdGFzay5pbnZva2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDEwKTtcbiAgICAgICAgcmV0dXJuIHJldC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVE9ETyBob3cgZG8gd2UgaGFuZGxlIHN0b3JhZ2UgdXBsb2FkcyBpbiBab25lPyBhbmQgb3RoZXIgc3R1ZmYgd2l0aCBjYW5jZWwoKSBldGM/XG4gICAgICByZXR1cm4gcnVuKCgpID0+IHJldCk7XG4gICAgfVxuICB9IGFzIGFueTtcbn07XG4iXX0=
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvem9uZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLGNBQWMsRUFDZCxVQUFVLEVBRVYsY0FBYyxFQU1mLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTdELFNBQVMsSUFBSTtBQUNiLENBQUM7QUFFRDs7R0FFRztBQUNILHNDQUFzQztBQUN0QyxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUFvQixJQUFTLEVBQVUsV0FBZ0IsY0FBYztRQUFqRCxTQUFJLEdBQUosSUFBSSxDQUFLO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7SUFDckUsQ0FBQztJQUVELEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUF1RCxFQUFFLEtBQWMsRUFBRSxLQUFXO1FBQzNGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDN0IsMEZBQTBGO1FBQzFGLHVDQUF1QztRQUN2QyxNQUFNLFVBQVUsR0FBRyxVQUFxQyxLQUFVO1lBQ2hFLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixzR0FBc0c7UUFDdEcsaUdBQWlHO1FBQ2pHLCtHQUErRztRQUMvRyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7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Q0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQztTQUNIO2FBQU07WUFDTCxvRkFBb0Y7WUFDcEYsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkI7SUFDSCxDQUFRLENBQUM7QUFDWCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGFzeW5jU2NoZWR1bGVyLFxuICBPYnNlcnZhYmxlLFxuICBPcGVyYXRvcixcbiAgcXVldWVTY2hlZHVsZXIsXG4gIFNjaGVkdWxlckFjdGlvbixcbiAgU2NoZWR1bGVyTGlrZSxcbiAgU3Vic2NyaWJlcixcbiAgU3Vic2NyaXB0aW9uLFxuICBUZWFyZG93bkxvZ2ljXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgb2JzZXJ2ZU9uLCBzdWJzY3JpYmVPbiwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5mdW5jdGlvbiBub29wKCkge1xufVxuXG4vKipcbiAqIFNjaGVkdWxlcyB0YXNrcyBzbyB0aGF0IHRoZXkgYXJlIGludm9rZWQgaW5zaWRlIHRoZSBab25lIHRoYXQgaXMgcGFzc2VkIGluIHRoZSBjb25zdHJ1Y3Rvci5cbiAqL1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNsYXNzLW5hbWVcbmV4cG9ydCBjbGFzcyDJtVpvbmVTY2hlZHVsZXIgaW1wbGVtZW50cyBTY2hlZHVsZXJMaWtlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBhbnksIHByaXZhdGUgZGVsZWdhdGU6IGFueSA9IHF1ZXVlU2NoZWR1bGVyKSB7XG4gIH1cblxuICBub3coKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZWdhdGUubm93KCk7XG4gIH1cblxuICBzY2hlZHVsZSh3b3JrOiAodGhpczogU2NoZWR1bGVyQWN0aW9uPGFueT4sIHN0YXRlPzogYW55KSA9PiB2b2lkLCBkZWxheT86IG51bWJlciwgc3RhdGU/OiBhbnkpOiBTdWJzY3JpcHRpb24ge1xuICAgIGNvbnN0IHRhcmdldFpvbmUgPSB0aGlzLnpvbmU7XG4gICAgLy8gV3JhcCB0aGUgc3BlY2lmaWVkIHdvcmsgZnVuY3Rpb24gdG8gbWFrZSBzdXJlIHRoYXQgaWYgbmVzdGVkIHNjaGVkdWxpbmcgdGFrZXMgcGxhY2UgdGhlXG4gICAgLy8gd29yayBpcyBleGVjdXRlZCBpbiB0aGUgY29ycmVjdCB6b25lXG4gICAgY29uc3Qgd29ya0luWm9uZSA9IGZ1bmN0aW9uKHRoaXM6IFNjaGVkdWxlckFjdGlvbjxhbnk+LCBzdGF0ZTogYW55KSB7XG4gICAgICB0YXJnZXRab25lLnJ1bkd1YXJkZWQoKCkgPT4ge1xuICAgICAgICB3b3JrLmFwcGx5KHRoaXMsIFtzdGF0ZV0pO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8vIFNjaGVkdWxpbmcgaXRzZWxmIG5lZWRzIHRvIGJlIHJ1biBpbiB6b25lIHRvIGVuc3VyZSBzZXRJbnRlcnZhbCBjYWxscyBmb3IgYXN5bmMgc2NoZWR1bGluZyBhcmUgZG9uZVxuICAgIC8vIGluc2lkZSB0aGUgY29ycmVjdCB6b25lLiBUaGlzIHNjaGVkdWxlciBuZWVkcyB0byBzY2hlZHVsZSBhc3luY2hyb25vdXNseSBhbHdheXMgdG8gZW5zdXJlIHRoYXRcbiAgICAvLyBmaXJlYmFzZSBlbWlzc2lvbnMgYXJlIG5ldmVyIHN5bmNocm9ub3VzLiBTcGVjaWZ5aW5nIGEgZGVsYXkgY2F1c2VzIGlzc3VlcyB3aXRoIHRoZSBxdWV1ZVNjaGVkdWxlciBkZWxlZ2F0ZS5cbiAgICByZXR1cm4gdGhpcy5kZWxlZ2F0ZS5zY2hlZHVsZSh3b3JrSW5ab25lLCBkZWxheSwgc3RhdGUpO1xuICB9XG59XG5cbmNsYXNzIEJsb2NrVW50aWxGaXJzdE9wZXJhdG9yPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBwcml2YXRlIHRhc2s6IE1hY3JvVGFzayB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogYW55KSB7XG4gIH1cblxuICBjYWxsKHN1YnNjcmliZXI6IFN1YnNjcmliZXI8VD4sIHNvdXJjZTogT2JzZXJ2YWJsZTxUPik6IFRlYXJkb3duTG9naWMge1xuICAgIGNvbnN0IHVuc2NoZWR1bGVUYXNrID0gdGhpcy51bnNjaGVkdWxlVGFzay5iaW5kKHRoaXMpO1xuICAgIHRoaXMudGFzayA9IHRoaXMuem9uZS5ydW4oKCkgPT4gWm9uZS5jdXJyZW50LnNjaGVkdWxlTWFjcm9UYXNrKCdmaXJlYmFzZVpvbmVCbG9jaycsIG5vb3AsIHt9LCBub29wLCBub29wKSk7XG5cbiAgICByZXR1cm4gc291cmNlLnBpcGUoXG4gICAgICB0YXAoeyBuZXh0OiB1bnNjaGVkdWxlVGFzaywgY29tcGxldGU6IHVuc2NoZWR1bGVUYXNrLCBlcnJvcjogdW5zY2hlZHVsZVRhc2sgfSlcbiAgICApLnN1YnNjcmliZShzdWJzY3JpYmVyKS5hZGQodW5zY2hlZHVsZVRhc2spO1xuICB9XG5cbiAgcHJpdmF0ZSB1bnNjaGVkdWxlVGFzaygpIHtcbiAgICAvLyBtYXliZSB0aGlzIGlzIGEgcmFjZSBjb25kaXRpb24sIGludm9rZSBpbiBhIHRpbWVvdXRcbiAgICAvLyBob2xkIGZvciAxMG1zIHdoaWxlIEkgdHJ5IHRvIGZpZ3VyZSBvdXQgd2hhdCBpcyBnb2luZyBvblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMudGFzayAhPSBudWxsICYmIHRoaXMudGFzay5zdGF0ZSA9PT0gJ3NjaGVkdWxlZCcpIHtcbiAgICAgICAgdGhpcy50YXNrLmludm9rZSgpO1xuICAgICAgICB0aGlzLnRhc2sgPSBudWxsO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y2xhc3MtbmFtZVxuZXhwb3J0IGNsYXNzIMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzIHtcbiAgcHVibGljIHJlYWRvbmx5IG91dHNpZGVBbmd1bGFyOiDJtVpvbmVTY2hlZHVsZXI7XG4gIHB1YmxpYyByZWFkb25seSBpbnNpZGVBbmd1bGFyOiDJtVpvbmVTY2hlZHVsZXI7XG5cbiAgY29uc3RydWN0b3IocHVibGljIG5nWm9uZTogTmdab25lKSB7XG4gICAgdGhpcy5vdXRzaWRlQW5ndWxhciA9IG5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBuZXcgybVab25lU2NoZWR1bGVyKFpvbmUuY3VycmVudCkpO1xuICAgIHRoaXMuaW5zaWRlQW5ndWxhciA9IG5nWm9uZS5ydW4oKCkgPT4gbmV3IMm1Wm9uZVNjaGVkdWxlcihab25lLmN1cnJlbnQsIGFzeW5jU2NoZWR1bGVyKSk7XG4gICAgZ2xvYmFsVGhpcy7JtUFuZ3VsYXJGaXJlU2NoZWR1bGVyIHx8PSB0aGlzO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFNjaGVkdWxlcnMoKSB7XG4gIGNvbnN0IHNjaGVkdWxlcnMgPSBnbG9iYWxUaGlzLsm1QW5ndWxhckZpcmVTY2hlZHVsZXIgYXMgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnN8dW5kZWZpbmVkO1xuICBpZiAoIXNjaGVkdWxlcnMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG5gRWl0aGVyIEFuZ3VsYXJGaXJlTW9kdWxlIGhhcyBub3QgYmVlbiBwcm92aWRlZCBpbiB5b3VyIEFwcE1vZHVsZSAodGhpcyBjYW4gYmUgZG9uZSBtYW51YWxseSBvciBpbXBsaWN0bHkgdXNpbmdcbnByb3ZpZGVGaXJlYmFzZUFwcCkgb3IgeW91J3JlIGNhbGxpbmcgYW4gQW5ndWxhckZpcmUgbWV0aG9kIG91dHNpZGUgb2YgYW4gTmdNb2R1bGUgKHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQpLmApO1xuICB9XG4gIHJldHVybiBzY2hlZHVsZXJzO1xufVxuXG5mdW5jdGlvbiBydW5PdXRzaWRlQW5ndWxhcjxUPihmbjogKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogVCB7XG4gIHJldHVybiBnZXRTY2hlZHVsZXJzKCkubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IGZuKCkpO1xufVxuXG5mdW5jdGlvbiBydW48VD4oZm46ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQge1xuICByZXR1cm4gZ2V0U2NoZWR1bGVycygpLm5nWm9uZS5ydW4oKCkgPT4gZm4oKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZlT3V0c2lkZUFuZ3VsYXI8VD4ob2JzJDogT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4ge1xuICByZXR1cm4gb2JzJC5waXBlKG9ic2VydmVPbihnZXRTY2hlZHVsZXJzKCkub3V0c2lkZUFuZ3VsYXIpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9ic2VydmVJbnNpZGVBbmd1bGFyPFQ+KG9icyQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIG9icyQucGlwZShvYnNlcnZlT24oZ2V0U2NoZWR1bGVycygpLmluc2lkZUFuZ3VsYXIpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGtlZXBVbnN0YWJsZVVudGlsRmlyc3Q8VD4ob2JzJDogT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4ge1xuICBjb25zdCBzY2hlZHVsZXIgPSBnZXRTY2hlZHVsZXJzKCk7XG4gIHJldHVybiDJtWtlZXBVbnN0YWJsZVVudGlsRmlyc3RGYWN0b3J5KGdldFNjaGVkdWxlcnMoKSkob2JzJCk7XG59XG5cbi8qKlxuICogT3BlcmF0b3IgdG8gYmxvY2sgdGhlIHpvbmUgdW50aWwgdGhlIGZpcnN0IHZhbHVlIGhhcyBiZWVuIGVtaXR0ZWQgb3IgdGhlIG9ic2VydmFibGVcbiAqIGhhcyBjb21wbGV0ZWQvZXJyb3JlZC4gVGhpcyBpcyB1c2VkIHRvIG1ha2Ugc3VyZSB0aGF0IHVuaXZlcnNhbCB3YWl0cyB1bnRpbCB0aGUgZmlyc3RcbiAqIHZhbHVlIGZyb20gZmlyZWJhc2UgYnV0IGRvZXNuJ3QgYmxvY2sgdGhlIHpvbmUgZm9yZXZlciBzaW5jZSB0aGUgZmlyZWJhc2Ugc3Vic2NyaXB0aW9uXG4gKiBpcyBzdGlsbCBhbGl2ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1a2VlcFVuc3RhYmxlVW50aWxGaXJzdEZhY3Rvcnkoc2NoZWR1bGVyczogybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGtlZXBVbnN0YWJsZVVudGlsRmlyc3Q8VD4ob2JzJDogT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4ge1xuICAgIG9icyQgPSBvYnMkLmxpZnQoXG4gICAgICBuZXcgQmxvY2tVbnRpbEZpcnN0T3BlcmF0b3Ioc2NoZWR1bGVycy5uZ1pvbmUpXG4gICAgKTtcblxuICAgIHJldHVybiBvYnMkLnBpcGUoXG4gICAgICAvLyBSdW4gdGhlIHN1YnNjcmliZSBib2R5IG91dHNpZGUgb2YgQW5ndWxhciAoZS5nLiBjYWxsaW5nIEZpcmViYXNlIFNESyB0byBhZGQgYSBsaXN0ZW5lciB0byBhIGNoYW5nZSBldmVudClcbiAgICAgIHN1YnNjcmliZU9uKHNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpLFxuICAgICAgLy8gUnVuIG9wZXJhdG9ycyBpbnNpZGUgdGhlIGFuZ3VsYXIgem9uZSAoZS5nLiBzaWRlIGVmZmVjdHMgdmlhIHRhcCgpKVxuICAgICAgb2JzZXJ2ZU9uKHNjaGVkdWxlcnMuaW5zaWRlQW5ndWxhcilcbiAgICAgIC8vIElOVkVTVElHQVRFIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXJmaXJlL3B1bGwvMjMxNVxuICAgICAgLy8gc2hhcmUoKVxuICAgICk7XG4gIH07XG59XG5cbmNvbnN0IHpvbmVXcmFwRm4gPSAoaXQ6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55LCBtYWNyb3Rhc2s6IE1hY3JvVGFza3x1bmRlZmluZWQpID0+IHtcbiAgY29uc3QgX3RoaXMgPSB0aGlzO1xuICAvLyBmdW5jdGlvbigpIGlzIG5lZWRlZCBmb3IgdGhlIGFyZ3VtZW50cyBvYmplY3RcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm9ubHktYXJyb3ctZnVuY3Rpb25zXG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBfYXJndW1lbnRzID0gYXJndW1lbnRzO1xuICAgIGlmIChtYWNyb3Rhc2spIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAobWFjcm90YXNrLnN0YXRlID09PSAnc2NoZWR1bGVkJykge1xuICAgICAgICAgIG1hY3JvdGFzay5pbnZva2UoKTtcbiAgICAgICAgfVxuICAgICAgfSwgMTApO1xuICAgIH1cbiAgICByZXR1cm4gcnVuKCgpID0+IGl0LmFwcGx5KF90aGlzLCBfYXJndW1lbnRzKSk7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgybV6b25lV3JhcCA9IDxUPSB1bmtub3duPihpdDogVCwgYmxvY2tVbnRpbEZpcnN0OiBib29sZWFuKTogVCA9PiB7XG4gIC8vIGZ1bmN0aW9uKCkgaXMgbmVlZGVkIGZvciB0aGUgYXJndW1lbnRzIG9iamVjdFxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6b25seS1hcnJvdy1mdW5jdGlvbnNcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIGxldCBtYWNyb3Rhc2s6IE1hY3JvVGFzayB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBfYXJndW1lbnRzID0gYXJndW1lbnRzO1xuICAgIC8vIGlmIHRoaXMgaXMgYSBjYWxsYmFjayBmdW5jdGlvbiwgZS5nLCBvblNuYXBzaG90LCB3ZSBzaG91bGQgY3JlYXRlIGEgbWljcm90YXNrIGFuZCBpbnZva2UgaXRcbiAgICAvLyBvbmx5IG9uY2Ugb25lIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbnMgaXMgdHJpcHBlZC5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHR5cGVvZiBfYXJndW1lbnRzW2ldID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGlmIChibG9ja1VudGlsRmlyc3QpIHtcbiAgICAgICAgICBtYWNyb3Rhc2sgfHw9IHJ1bigoKSA9PiBab25lLmN1cnJlbnQuc2NoZWR1bGVNYWNyb1Rhc2soJ2ZpcmViYXNlWm9uZUJsb2NrJywgbm9vcCwge30sIG5vb3AsIG5vb3ApKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUT0RPIGNyZWF0ZSBhIG1pY3JvdGFzayB0byB0cmFjayBjYWxsYmFjayBmdW5jdGlvbnNcbiAgICAgICAgX2FyZ3VtZW50c1tpXSA9IHpvbmVXcmFwRm4oX2FyZ3VtZW50c1tpXSwgbWFjcm90YXNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcmV0ID0gcnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gKGl0IGFzIGFueSkuYXBwbHkodGhpcywgX2FyZ3VtZW50cykpO1xuICAgIGlmICghYmxvY2tVbnRpbEZpcnN0KSB7XG4gICAgICBpZiAocmV0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgICBjb25zdCBzY2hlZHVsZXJzID0gZ2V0U2NoZWR1bGVycygpO1xuICAgICAgICByZXR1cm4gcmV0LnBpcGUoXG4gICAgICAgICAgc3Vic2NyaWJlT24oc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhciksXG4gICAgICAgICAgb2JzZXJ2ZU9uKHNjaGVkdWxlcnMuaW5zaWRlQW5ndWxhciksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcnVuKCgpID0+IHJldCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChyZXQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICByZXR1cm4gcmV0LnBpcGUoa2VlcFVuc3RhYmxlVW50aWxGaXJzdCkgYXMgYW55O1xuICAgIH0gZWxzZSBpZiAocmV0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgcmV0dXJuIHJ1bigoKSA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiByZXQudGhlbihpdCA9PiBydW4oKCkgPT4gcmVzb2x2ZShpdCkpLCByZWFzb24gPT4gcnVuKCgpID0+IHJlamVjdChyZWFzb24pKSkpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXQgPT09ICdmdW5jdGlvbicgJiYgbWFjcm90YXNrKSB7XG4gICAgICAvLyBIYW5kbGUgdW5zdWJzY3JpYmVcbiAgICAgIC8vIGZ1bmN0aW9uKCkgaXMgbmVlZGVkIGZvciB0aGUgYXJndW1lbnRzIG9iamVjdFxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm9ubHktYXJyb3ctZnVuY3Rpb25zXG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmIChtYWNyb3Rhc2sgJiYgbWFjcm90YXNrLnN0YXRlID09PSAnc2NoZWR1bGVkJykge1xuICAgICAgICAgICAgbWFjcm90YXNrLmludm9rZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTApO1xuICAgICAgICByZXR1cm4gcmV0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUT0RPIGhvdyBkbyB3ZSBoYW5kbGUgc3RvcmFnZSB1cGxvYWRzIGluIFpvbmU/IGFuZCBvdGhlciBzdHVmZiB3aXRoIGNhbmNlbCgpIGV0Yz9cbiAgICAgIHJldHVybiBydW4oKCkgPT4gcmV0KTtcbiAgICB9XG4gIH0gYXMgYW55O1xufTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"angular-fire-compat.js","sources":["../../../src/compat/proxy.ts","../../../src/compat/firebase.app.ts","../../../src/compat/firebase.app.module.ts","../../../src/compat/cache.ts","../../../src/compat/angular-fire-compat.ts"],"sourcesContent":["import { NgZone } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n// tslint:disable:ban-types\ntype FunctionPropertyNames<T> = { [K in keyof T]: T[K] extends Function ? K : never }[keyof T];\ntype PromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnType<T[K]> extends Promise<any> ? K : never\n}[FunctionPropertyNames<T>];\ntype NonPromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnType<T[K]> extends Promise<any> ? never : K\n}[FunctionPropertyNames<T>];\ntype NonFunctionPropertyNames<T> = { [K in keyof T]: T[K] extends Function ? never : K }[keyof T];\n// tslint:enable:ban-types\n\nexport type ɵPromiseProxy<T> = { [K in NonFunctionPropertyNames<T>]: Promise<T[K]> } &\n { [K in NonPromiseReturningFunctionPropertyNames<T>]: (...args: Parameters<T[K]>) => Promise<ReturnType<T[K]>> } &\n { [K in PromiseReturningFunctionPropertyNames<T>]: (...args: Parameters<T[K]>) => ReturnType<T[K]> };\n\n\n// DEBUG quick debugger function for inline logging that typescript doesn't complain about\n// wrote it for debugging the ɵlazySDKProxy, commenting out for now; should consider exposing a\n// verbose mode for AngularFire in a future release that uses something like this in multiple places\n// usage: () => log('something') || returnValue\n// const log = (...args: any[]): false => { console.log(...args); return false }\n\n// The problem here are things like ngOnDestroy are missing, then triggering the service\n// rather than dig too far; I'm capturing these as I go.\nconst noopFunctions = ['ngOnDestroy'];\n\n// INVESTIGATE should we make the Proxy revokable and do some cleanup?\n// right now it's fairly simple but I'm sure this will grow in complexity\nexport const ɵlazySDKProxy = (klass: any, observable: Observable<any>, zone: NgZone, options: {\n spy?: {\n get?: ((name: string, it: any) => void),\n apply?: ((name: string, args: any[], it: any) => void)\n }\n} = {}) => {\n return new Proxy(klass, {\n get: (_, name: string) => zone.runOutsideAngular(() => {\n if (klass[name]) {\n if (options?.spy?.get) {\n options.spy.get(name, klass[name]);\n }\n return klass[name];\n }\n if (noopFunctions.indexOf(name) > -1) {\n return () => {\n };\n }\n const promise = observable.toPromise().then(mod => {\n const ret = mod && mod[name];\n // TODO move to proper type guards\n if (typeof ret === 'function') {\n return ret.bind(mod);\n } else if (ret && ret.then) {\n return ret.then((res: any) => zone.run(() => res));\n } else {\n return zone.run(() => ret);\n }\n });\n // recurse the proxy\n return new Proxy(() => {}, {\n get: (_, name) => promise[name],\n // TODO handle callbacks as transparently as I can\n apply: (self, _, args) => promise.then(it => {\n const res = it && it(...args);\n if (options?.spy?.apply) {\n options.spy.apply(name, args, res);\n }\n return res;\n })\n }\n );\n })\n });\n};\n\nexport const ɵapplyMixins = (derivedCtor: any, constructors: any[]) => {\n constructors.forEach((baseCtor) => {\n Object.getOwnPropertyNames(baseCtor.prototype || baseCtor).forEach((name) => {\n Object.defineProperty(\n derivedCtor.prototype,\n name,\n Object.getOwnPropertyDescriptor(baseCtor.prototype || baseCtor, name)\n );\n });\n });\n};\n","import firebase from 'firebase/compat/app';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface FirebaseApp extends firebase.app.App {}\n\nexport class FirebaseApp {\n constructor(app: firebase.app.App) {\n return app;\n }\n}\n","import {\n InjectionToken, Inject, isDevMode, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, VERSION as NG_VERSION, Version\n} from '@angular/core';\nimport firebase from 'firebase/compat/app';\nimport { FirebaseOptions, FirebaseAppSettings } from 'firebase/app';\nimport { VERSION } from '@angular/fire';\nimport { FirebaseApp } from './firebase.app';\n\nexport const FIREBASE_OPTIONS = new InjectionToken<FirebaseOptions>('angularfire2.app.options');\nexport const FIREBASE_APP_NAME = new InjectionToken<string | undefined>('angularfire2.app.name');\n\n\nexport function ɵfirebaseAppFactory(options: FirebaseOptions, zone: NgZone, nameOrConfig?: string | FirebaseAppSettings | null) {\n const name = typeof nameOrConfig === 'string' && nameOrConfig || '[DEFAULT]';\n const config = typeof nameOrConfig === 'object' && nameOrConfig || {};\n config.name = config.name || name;\n // Added any due to some inconsistency between @firebase/app and firebase types\n const existingApp = firebase.apps.filter(app => app && app.name === config.name)[0];\n // We support FirebaseConfig, initializeApp's public type only accepts string; need to cast as any\n // Could be solved with https://github.com/firebase/firebase-js-sdk/pull/1206\n const app = (existingApp || zone.runOutsideAngular(() => firebase.initializeApp(options, config as any)));\n try {\n if (JSON.stringify(options) !== JSON.stringify(app.options)) {\n const hmr = !!(module as any).hot;\n log('error', `${app.name} Firebase App already initialized with different options${hmr ? ', you may need to reload as Firebase is not HMR aware.' : '.'}`);\n }\n } catch (e) { }\n return new FirebaseApp(app);\n}\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n console[level](...args);\n }\n};\n\nconst FIREBASE_APP_PROVIDER = {\n provide: FirebaseApp,\n useFactory: ɵfirebaseAppFactory,\n deps: [\n FIREBASE_OPTIONS,\n NgZone,\n [new Optional(), FIREBASE_APP_NAME]\n ]\n};\n\n@NgModule({\n providers: [FIREBASE_APP_PROVIDER]\n})\nexport class AngularFireModule {\n static initializeApp(options: FirebaseOptions, nameOrConfig?: string | FirebaseAppSettings): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularFireModule,\n providers: [\n {provide: FIREBASE_OPTIONS, useValue: options},\n {provide: FIREBASE_APP_NAME, useValue: nameOrConfig}\n ]\n };\n }\n\n // tslint:disable-next-line:ban-types\n constructor(@Inject(PLATFORM_ID) platformId: Object) {\n firebase.registerVersion('angularfire', VERSION.full, 'core');\n firebase.registerVersion('angularfire', VERSION.full, 'app-compat');\n firebase.registerVersion('angular', NG_VERSION.full, platformId.toString());\n }\n}\n","import { isDevMode } from '@angular/core';\n\nexport function ɵcacheInstance<T>(cacheKey: any, moduleName: string, appName: string, fn: () => T, deps: any): T {\n const [, instance, cachedDeps] = globalThis.ɵAngularfireInstanceCache.find((it: any) => it[0] === cacheKey) || [];\n if (instance) {\n if (!matchDep(deps, cachedDeps)) {\n log('error', `${moduleName} was already initialized on the ${appName} Firebase App with different settings.${IS_HMR ? ' You may need to reload as Firebase is not HMR aware.' : ''}`);\n log('warn', {is: deps, was: cachedDeps});\n }\n return instance;\n } else {\n const newInstance = fn();\n globalThis.ɵAngularfireInstanceCache.push([cacheKey, newInstance, deps]);\n return newInstance;\n }\n}\n\nfunction matchDep(a: any, b: any) {\n try {\n return a.toString() === b.toString();\n } catch (_) {\n return a === b;\n }\n}\n\nconst IS_HMR = !!(module as any).hot;\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n console[level](...args);\n }\n};\n\nglobalThis.ɵAngularfireInstanceCache ||= [];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["log","NG_VERSION"],"mappings":"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"}
1
+ {"version":3,"file":"angular-fire-compat.js","sources":["../../../src/compat/proxy.ts","../../../src/compat/firebase.app.ts","../../../src/compat/firebase.app.module.ts","../../../src/compat/cache.ts","../../../src/compat/angular-fire-compat.ts"],"sourcesContent":["import { NgZone } from '@angular/core';\nimport { Observable } from 'rxjs';\n\ntype MyFunction = (...args: any[]) => any;\ntype FunctionPropertyNames<T> = { [K in keyof T]: T[K] extends MyFunction ? K : never }[keyof T];\ntype ReturnTypeOrNever<T> = T extends MyFunction ? ReturnType<T> : never;\ntype ParametersOrNever<T> = T extends MyFunction ? Parameters<T> : never;\ntype PromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? K : never\n}[FunctionPropertyNames<T>];\ntype NonPromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? never : K\n}[FunctionPropertyNames<T>];\ntype NonFunctionPropertyNames<T> = { [K in keyof T]: T[K] extends MyFunction ? never : K }[keyof T];\n\nexport type ɵPromiseProxy<T> = { [K in NonFunctionPropertyNames<T>]: Promise<T[K]> } &\n { [K in NonPromiseReturningFunctionPropertyNames<T>]: (...args: ParametersOrNever<T[K]>) => Promise<ReturnTypeOrNever<T[K]>> } &\n { [K in PromiseReturningFunctionPropertyNames<T>]: T[K] };\n\n// DEBUG quick debugger function for inline logging that typescript doesn't complain about\n// wrote it for debugging the ɵlazySDKProxy, commenting out for now; should consider exposing a\n// verbose mode for AngularFire in a future release that uses something like this in multiple places\n// usage: () => log('something') || returnValue\n// const log = (...args: any[]): false => { console.log(...args); return false }\n\n// The problem here are things like ngOnDestroy are missing, then triggering the service\n// rather than dig too far; I'm capturing these as I go.\nconst noopFunctions = ['ngOnDestroy'];\n\n// INVESTIGATE should we make the Proxy revokable and do some cleanup?\n// right now it's fairly simple but I'm sure this will grow in complexity\nexport const ɵlazySDKProxy = (klass: any, observable: Observable<any>, zone: NgZone, options: {\n spy?: {\n get?: ((name: string, it: any) => void),\n apply?: ((name: string, args: any[], it: any) => void)\n }\n} = {}) => {\n return new Proxy(klass, {\n get: (_, name: string) => zone.runOutsideAngular(() => {\n if (klass[name]) {\n if (options?.spy?.get) {\n options.spy.get(name, klass[name]);\n }\n return klass[name];\n }\n if (noopFunctions.indexOf(name) > -1) {\n return () => {\n };\n }\n const promise = observable.toPromise().then(mod => {\n const ret = mod && mod[name];\n // TODO move to proper type guards\n if (typeof ret === 'function') {\n return ret.bind(mod);\n } else if (ret && ret.then) {\n return ret.then((res: any) => zone.run(() => res));\n } else {\n return zone.run(() => ret);\n }\n });\n // recurse the proxy\n return new Proxy(() => {}, {\n get: (_, name) => promise[name],\n // TODO handle callbacks as transparently as I can\n apply: (self, _, args) => promise.then(it => {\n const res = it && it(...args);\n if (options?.spy?.apply) {\n options.spy.apply(name, args, res);\n }\n return res;\n })\n }\n );\n })\n });\n};\n\nexport const ɵapplyMixins = (derivedCtor: any, constructors: any[]) => {\n constructors.forEach((baseCtor) => {\n Object.getOwnPropertyNames(baseCtor.prototype || baseCtor).forEach((name) => {\n Object.defineProperty(\n derivedCtor.prototype,\n name,\n Object.getOwnPropertyDescriptor(baseCtor.prototype || baseCtor, name)\n );\n });\n });\n};\n","import firebase from 'firebase/compat/app';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface FirebaseApp extends firebase.app.App {}\n\nexport class FirebaseApp {\n constructor(app: firebase.app.App) {\n return app;\n }\n}\n","import {\n InjectionToken, Inject, isDevMode, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, VERSION as NG_VERSION, Version\n} from '@angular/core';\nimport firebase from 'firebase/compat/app';\nimport { FirebaseOptions, FirebaseAppSettings } from 'firebase/app';\nimport { VERSION } from '@angular/fire';\nimport { FirebaseApp } from './firebase.app';\n\nexport const FIREBASE_OPTIONS = new InjectionToken<FirebaseOptions>('angularfire2.app.options');\nexport const FIREBASE_APP_NAME = new InjectionToken<string | undefined>('angularfire2.app.name');\n\n\nexport function ɵfirebaseAppFactory(options: FirebaseOptions, zone: NgZone, nameOrConfig?: string | FirebaseAppSettings | null) {\n const name = typeof nameOrConfig === 'string' && nameOrConfig || '[DEFAULT]';\n const config = typeof nameOrConfig === 'object' && nameOrConfig || {};\n config.name = config.name || name;\n // Added any due to some inconsistency between @firebase/app and firebase types\n const existingApp = firebase.apps.filter(app => app && app.name === config.name)[0];\n // We support FirebaseConfig, initializeApp's public type only accepts string; need to cast as any\n // Could be solved with https://github.com/firebase/firebase-js-sdk/pull/1206\n const app = (existingApp || zone.runOutsideAngular(() => firebase.initializeApp(options, config as any)));\n try {\n if (JSON.stringify(options) !== JSON.stringify(app.options)) {\n const hmr = !!(module as any).hot;\n log('error', `${app.name} Firebase App already initialized with different options${hmr ? ', you may need to reload as Firebase is not HMR aware.' : '.'}`);\n }\n } catch (e) { }\n return new FirebaseApp(app);\n}\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n console[level](...args);\n }\n};\n\nconst FIREBASE_APP_PROVIDER = {\n provide: FirebaseApp,\n useFactory: ɵfirebaseAppFactory,\n deps: [\n FIREBASE_OPTIONS,\n NgZone,\n [new Optional(), FIREBASE_APP_NAME]\n ]\n};\n\n@NgModule({\n providers: [FIREBASE_APP_PROVIDER]\n})\nexport class AngularFireModule {\n static initializeApp(options: FirebaseOptions, nameOrConfig?: string | FirebaseAppSettings): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularFireModule,\n providers: [\n {provide: FIREBASE_OPTIONS, useValue: options},\n {provide: FIREBASE_APP_NAME, useValue: nameOrConfig}\n ]\n };\n }\n\n // tslint:disable-next-line:ban-types\n constructor(@Inject(PLATFORM_ID) platformId: Object) {\n firebase.registerVersion('angularfire', VERSION.full, 'core');\n firebase.registerVersion('angularfire', VERSION.full, 'app-compat');\n firebase.registerVersion('angular', NG_VERSION.full, platformId.toString());\n }\n}\n","import { isDevMode } from '@angular/core';\n\nexport function ɵcacheInstance<T>(cacheKey: any, moduleName: string, appName: string, fn: () => T, deps: any): T {\n const [, instance, cachedDeps] = globalThis.ɵAngularfireInstanceCache.find((it: any) => it[0] === cacheKey) || [];\n if (instance) {\n if (!matchDep(deps, cachedDeps)) {\n log('error', `${moduleName} was already initialized on the ${appName} Firebase App with different settings.${IS_HMR ? ' You may need to reload as Firebase is not HMR aware.' : ''}`);\n log('warn', {is: deps, was: cachedDeps});\n }\n return instance;\n } else {\n const newInstance = fn();\n globalThis.ɵAngularfireInstanceCache.push([cacheKey, newInstance, deps]);\n return newInstance;\n }\n}\n\nfunction matchDep(a: any, b: any) {\n try {\n return a.toString() === b.toString();\n } catch (_) {\n return a === b;\n }\n}\n\nconst IS_HMR = !!(module as any).hot;\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n console[level](...args);\n }\n};\n\nglobalThis.ɵAngularfireInstanceCache ||= [];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["log","NG_VERSION"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { AuthInstances } from '@angular/fire/auth';
8
8
  import { registerVersion } from 'firebase/app';
9
9
  import { AppCheckInstances } from '@angular/fire/app-check';
10
10
  import { fromTask as fromTask$1, percentage as percentage$1 } from 'rxfire/storage';
11
- import { connectStorageEmulator as connectStorageEmulator$1, deleteObject as deleteObject$1, getDownloadURL as getDownloadURL$1, getMetadata as getMetadata$1, getStorage as getStorage$1, list as list$1, listAll as listAll$1, ref as ref$1, updateMetadata as updateMetadata$1, uploadBytes as uploadBytes$1, uploadBytesResumable as uploadBytesResumable$1, uploadString as uploadString$1 } from 'firebase/storage';
11
+ import { connectStorageEmulator as connectStorageEmulator$1, deleteObject as deleteObject$1, getBlob as getBlob$1, getBytes as getBytes$1, getDownloadURL as getDownloadURL$1, getMetadata as getMetadata$1, getStorage as getStorage$1, getStream as getStream$1, list as list$1, listAll as listAll$1, ref as ref$1, updateMetadata as updateMetadata$1, uploadBytes as uploadBytes$1, uploadBytesResumable as uploadBytesResumable$1, uploadString as uploadString$1 } from 'firebase/storage';
12
12
  export * from 'firebase/storage';
13
13
 
14
14
  class Storage {
@@ -97,9 +97,12 @@ const percentage = ɵzoneWrap(percentage$1, true);
97
97
  // DO NOT MODIFY, this file is autogenerated by tools/build.ts
98
98
  const connectStorageEmulator = ɵzoneWrap(connectStorageEmulator$1, true);
99
99
  const deleteObject = ɵzoneWrap(deleteObject$1, true);
100
+ const getBlob = ɵzoneWrap(getBlob$1, true);
101
+ const getBytes = ɵzoneWrap(getBytes$1, true);
100
102
  const getDownloadURL = ɵzoneWrap(getDownloadURL$1, true);
101
103
  const getMetadata = ɵzoneWrap(getMetadata$1, true);
102
104
  const getStorage = ɵzoneWrap(getStorage$1, true);
105
+ const getStream = ɵzoneWrap(getStream$1, true);
103
106
  const list = ɵzoneWrap(list$1, true);
104
107
  const listAll = ɵzoneWrap(listAll$1, true);
105
108
  const ref = ɵzoneWrap(ref$1, true);
@@ -112,5 +115,5 @@ const uploadString = ɵzoneWrap(uploadString$1, true);
112
115
  * Generated bundle index. Do not edit.
113
116
  */
114
117
 
115
- export { Storage, StorageInstances, StorageModule, connectStorageEmulator, deleteObject, fromTask, getDownloadURL, getMetadata, getStorage, list, listAll, percentage, provideStorage, ref, storageInstance$, updateMetadata, uploadBytes, uploadBytesResumable, uploadString };
118
+ export { Storage, StorageInstances, StorageModule, connectStorageEmulator, deleteObject, fromTask, getBlob, getBytes, getDownloadURL, getMetadata, getStorage, getStream, list, listAll, percentage, provideStorage, ref, storageInstance$, updateMetadata, uploadBytes, uploadBytesResumable, uploadString };
116
119
  //# sourceMappingURL=angular-fire-storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"angular-fire-storage.js","sources":["../../../src/storage/storage.ts","../../../src/storage/storage.module.ts","../../../src/storage/rxfire.ts","../../../src/storage/firebase.ts","../../../src/storage/angular-fire-storage.ts"],"sourcesContent":["import { FirebaseStorage } from 'firebase/storage';\nimport { ɵgetAllInstancesOf } from '@angular/fire';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// tslint:disable-next-line:no-empty-interface\nexport interface Storage extends FirebaseStorage {}\n\nexport class Storage {\n constructor(auth: FirebaseStorage) {\n return auth;\n }\n}\n\nexport const STORAGE_PROVIDER_NAME = 'storage';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface StorageInstances extends Array<FirebaseStorage> {}\n\nexport class StorageInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseStorage>(STORAGE_PROVIDER_NAME);\n }\n}\n\nexport const storageInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseStorage>(STORAGE_PROVIDER_NAME))),\n distinct(),\n);\n","import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders, Injector } from '@angular/core';\nimport { FirebaseStorage } from 'firebase/storage';\nimport { ɵgetDefaultInstanceOf, ɵAngularFireSchedulers, VERSION } from '@angular/fire';\nimport { Storage, StorageInstances, STORAGE_PROVIDER_NAME } from './storage';\nimport { FirebaseApps, FirebaseApp } from '@angular/fire/app';\nimport { AuthInstances } from '@angular/fire/auth';\nimport { registerVersion } from 'firebase/app';\nimport { AppCheckInstances } from '@angular/fire/app-check';\n\nexport const PROVIDED_STORAGE_INSTANCES = new InjectionToken<Storage[]>('angularfire2.storage-instances');\n\nexport function defaultStorageInstanceFactory(provided: FirebaseStorage[]|undefined, defaultApp: FirebaseApp) {\n const defaultStorage = ɵgetDefaultInstanceOf<FirebaseStorage>(STORAGE_PROVIDER_NAME, provided, defaultApp);\n return defaultStorage && new Storage(defaultStorage);\n}\n\nexport function storageInstanceFactory(fn: (injector: Injector) => FirebaseStorage) {\n return (zone: NgZone, injector: Injector) => {\n const storage = zone.runOutsideAngular(() => fn(injector));\n return new Storage(storage);\n };\n}\n\nconst STORAGE_INSTANCES_PROVIDER = {\n provide: StorageInstances,\n deps: [\n [new Optional(), PROVIDED_STORAGE_INSTANCES ],\n ]\n};\n\nconst DEFAULT_STORAGE_INSTANCE_PROVIDER = {\n provide: Storage,\n useFactory: defaultStorageInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_STORAGE_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_STORAGE_INSTANCE_PROVIDER,\n STORAGE_INSTANCES_PROVIDER,\n ]\n})\nexport class StorageModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'gcs');\n }\n}\n\nexport function provideStorage(fn: () => FirebaseStorage, ...deps: any[]): ModuleWithProviders<StorageModule> {\n return {\n ngModule: StorageModule,\n providers: [{\n provide: PROVIDED_STORAGE_INSTANCES,\n useFactory: storageInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n // Defensively load Auth first, if provided\n [new Optional(), AuthInstances ],\n [new Optional(), AppCheckInstances ],\n ...deps,\n ]\n }]\n };\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n fromTask as _fromTask,\n percentage as _percentage\n} from 'rxfire/storage';\n\nexport const fromTask = ɵzoneWrap(_fromTask, true);\nexport const percentage = ɵzoneWrap(_percentage, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/storage';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n connectStorageEmulator as _connectStorageEmulator,\n deleteObject as _deleteObject,\n getDownloadURL as _getDownloadURL,\n getMetadata as _getMetadata,\n getStorage as _getStorage,\n list as _list,\n listAll as _listAll,\n ref as _ref,\n updateMetadata as _updateMetadata,\n uploadBytes as _uploadBytes,\n uploadBytesResumable as _uploadBytesResumable,\n uploadString as _uploadString\n} from 'firebase/storage';\n\nexport const connectStorageEmulator = ɵzoneWrap(_connectStorageEmulator, true);\nexport const deleteObject = ɵzoneWrap(_deleteObject, true);\nexport const getDownloadURL = ɵzoneWrap(_getDownloadURL, true);\nexport const getMetadata = ɵzoneWrap(_getMetadata, true);\nexport const getStorage = ɵzoneWrap(_getStorage, true);\nexport const list = ɵzoneWrap(_list, true);\nexport const listAll = ɵzoneWrap(_listAll, true);\nexport const ref = ɵzoneWrap(_ref, true);\nexport const updateMetadata = ɵzoneWrap(_updateMetadata, true);\nexport const uploadBytes = ɵzoneWrap(_uploadBytes, true);\nexport const uploadBytesResumable = ɵzoneWrap(_uploadBytesResumable, true);\nexport const uploadString = ɵzoneWrap(_uploadString, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_fromTask","_percentage","_connectStorageEmulator","_deleteObject","_getDownloadURL","_getMetadata","_getStorage","_list","_listAll","_ref","_updateMetadata","_uploadBytes","_uploadBytesResumable","_uploadString"],"mappings":"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"}
1
+ {"version":3,"file":"angular-fire-storage.js","sources":["../../../src/storage/storage.ts","../../../src/storage/storage.module.ts","../../../src/storage/rxfire.ts","../../../src/storage/firebase.ts","../../../src/storage/angular-fire-storage.ts"],"sourcesContent":["import { FirebaseStorage } from 'firebase/storage';\nimport { ɵgetAllInstancesOf } from '@angular/fire';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// tslint:disable-next-line:no-empty-interface\nexport interface Storage extends FirebaseStorage {}\n\nexport class Storage {\n constructor(auth: FirebaseStorage) {\n return auth;\n }\n}\n\nexport const STORAGE_PROVIDER_NAME = 'storage';\n\n// tslint:disable-next-line:no-empty-interface\nexport interface StorageInstances extends Array<FirebaseStorage> {}\n\nexport class StorageInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseStorage>(STORAGE_PROVIDER_NAME);\n }\n}\n\nexport const storageInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseStorage>(STORAGE_PROVIDER_NAME))),\n distinct(),\n);\n","import { NgModule, Optional, NgZone, InjectionToken, ModuleWithProviders, Injector } from '@angular/core';\nimport { FirebaseStorage } from 'firebase/storage';\nimport { ɵgetDefaultInstanceOf, ɵAngularFireSchedulers, VERSION } from '@angular/fire';\nimport { Storage, StorageInstances, STORAGE_PROVIDER_NAME } from './storage';\nimport { FirebaseApps, FirebaseApp } from '@angular/fire/app';\nimport { AuthInstances } from '@angular/fire/auth';\nimport { registerVersion } from 'firebase/app';\nimport { AppCheckInstances } from '@angular/fire/app-check';\n\nexport const PROVIDED_STORAGE_INSTANCES = new InjectionToken<Storage[]>('angularfire2.storage-instances');\n\nexport function defaultStorageInstanceFactory(provided: FirebaseStorage[]|undefined, defaultApp: FirebaseApp) {\n const defaultStorage = ɵgetDefaultInstanceOf<FirebaseStorage>(STORAGE_PROVIDER_NAME, provided, defaultApp);\n return defaultStorage && new Storage(defaultStorage);\n}\n\nexport function storageInstanceFactory(fn: (injector: Injector) => FirebaseStorage) {\n return (zone: NgZone, injector: Injector) => {\n const storage = zone.runOutsideAngular(() => fn(injector));\n return new Storage(storage);\n };\n}\n\nconst STORAGE_INSTANCES_PROVIDER = {\n provide: StorageInstances,\n deps: [\n [new Optional(), PROVIDED_STORAGE_INSTANCES ],\n ]\n};\n\nconst DEFAULT_STORAGE_INSTANCE_PROVIDER = {\n provide: Storage,\n useFactory: defaultStorageInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_STORAGE_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_STORAGE_INSTANCE_PROVIDER,\n STORAGE_INSTANCES_PROVIDER,\n ]\n})\nexport class StorageModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'gcs');\n }\n}\n\nexport function provideStorage(fn: () => FirebaseStorage, ...deps: any[]): ModuleWithProviders<StorageModule> {\n return {\n ngModule: StorageModule,\n providers: [{\n provide: PROVIDED_STORAGE_INSTANCES,\n useFactory: storageInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n // Defensively load Auth first, if provided\n [new Optional(), AuthInstances ],\n [new Optional(), AppCheckInstances ],\n ...deps,\n ]\n }]\n };\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n fromTask as _fromTask,\n percentage as _percentage\n} from 'rxfire/storage';\n\nexport const fromTask = ɵzoneWrap(_fromTask, true);\nexport const percentage = ɵzoneWrap(_percentage, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/storage';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n connectStorageEmulator as _connectStorageEmulator,\n deleteObject as _deleteObject,\n getBlob as _getBlob,\n getBytes as _getBytes,\n getDownloadURL as _getDownloadURL,\n getMetadata as _getMetadata,\n getStorage as _getStorage,\n getStream as _getStream,\n list as _list,\n listAll as _listAll,\n ref as _ref,\n updateMetadata as _updateMetadata,\n uploadBytes as _uploadBytes,\n uploadBytesResumable as _uploadBytesResumable,\n uploadString as _uploadString\n} from 'firebase/storage';\n\nexport const connectStorageEmulator = ɵzoneWrap(_connectStorageEmulator, true);\nexport const deleteObject = ɵzoneWrap(_deleteObject, true);\nexport const getBlob = ɵzoneWrap(_getBlob, true);\nexport const getBytes = ɵzoneWrap(_getBytes, true);\nexport const getDownloadURL = ɵzoneWrap(_getDownloadURL, true);\nexport const getMetadata = ɵzoneWrap(_getMetadata, true);\nexport const getStorage = ɵzoneWrap(_getStorage, true);\nexport const getStream = ɵzoneWrap(_getStream, true);\nexport const list = ɵzoneWrap(_list, true);\nexport const listAll = ɵzoneWrap(_listAll, true);\nexport const ref = ɵzoneWrap(_ref, true);\nexport const updateMetadata = ɵzoneWrap(_updateMetadata, true);\nexport const uploadBytes = ɵzoneWrap(_uploadBytes, true);\nexport const uploadBytesResumable = ɵzoneWrap(_uploadBytesResumable, true);\nexport const uploadString = ɵzoneWrap(_uploadString, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_fromTask","_percentage","_connectStorageEmulator","_deleteObject","_getBlob","_getBytes","_getDownloadURL","_getMetadata","_getStorage","_getStream","_list","_listAll","_ref","_updateMetadata","_uploadBytes","_uploadBytesResumable","_uploadString"],"mappings":"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"}
@@ -7,16 +7,16 @@ import { isSupported } from 'firebase/analytics';
7
7
  import { queueScheduler, asyncScheduler, Observable } from 'rxjs';
8
8
  import { tap, observeOn, subscribeOn } from 'rxjs/operators';
9
9
 
10
- const VERSION = new Version('7.2.0');
10
+ const VERSION = new Version('7.3.0-canary.a6abd1d');
11
11
  const isAnalyticsSupportedValueSymbol = '__angularfire_symbol__analyticsIsSupportedValue';
12
12
  const isAnalyticsSupportedPromiseSymbol = '__angularfire_symbol__analyticsIsSupported';
13
13
  const isRemoteConfigSupportedValueSymbol = '__angularfire_symbol__remoteConfigIsSupportedValue';
14
14
  const isRemoteConfigSupportedPromiseSymbol = '__angularfire_symbol__remoteConfigIsSupported';
15
15
  const isMessagingSupportedValueSymbol = '__angularfire_symbol__messagingIsSupportedValue';
16
16
  const isMessagingSupportedPromiseSymbol = '__angularfire_symbol__messagingIsSupported';
17
- globalThis[isAnalyticsSupportedPromiseSymbol] || (globalThis[isAnalyticsSupportedPromiseSymbol] = isSupported().then(it => globalThis[isAnalyticsSupportedValueSymbol] = it));
18
- globalThis[isMessagingSupportedPromiseSymbol] || (globalThis[isMessagingSupportedPromiseSymbol] = isSupported$1().then(it => globalThis[isMessagingSupportedValueSymbol] = it));
19
- globalThis[isRemoteConfigSupportedPromiseSymbol] || (globalThis[isRemoteConfigSupportedPromiseSymbol] = isSupported$2().then(it => globalThis[isRemoteConfigSupportedValueSymbol] = it));
17
+ globalThis[isAnalyticsSupportedPromiseSymbol] || (globalThis[isAnalyticsSupportedPromiseSymbol] = isSupported().then(it => globalThis[isAnalyticsSupportedValueSymbol] = it).catch(() => globalThis[isAnalyticsSupportedValueSymbol] = false));
18
+ globalThis[isMessagingSupportedPromiseSymbol] || (globalThis[isMessagingSupportedPromiseSymbol] = isSupported$1().then(it => globalThis[isMessagingSupportedValueSymbol] = it).catch(() => globalThis[isMessagingSupportedValueSymbol] = false));
19
+ globalThis[isRemoteConfigSupportedPromiseSymbol] || (globalThis[isRemoteConfigSupportedPromiseSymbol] = isSupported$2().then(it => globalThis[isRemoteConfigSupportedValueSymbol] = it).catch(() => globalThis[isRemoteConfigSupportedValueSymbol] = false));
20
20
  const isSupportedError = (module) => `The APP_INITIALIZER that is "making" isSupported() sync for the sake of convenient DI has not resolved in this
21
21
  context. Rather than injecting ${module} in the constructor, first ensure that ${module} is supported by calling
22
22
  \`await isSupported()\`, then retrieve the instance from the injector manually \`injector.get(${module})\`.`;
@@ -196,6 +196,7 @@ const zoneWrapFn = (it, macrotask) => {
196
196
  // function() is needed for the arguments object
197
197
  // tslint:disable-next-line:only-arrow-functions
198
198
  return function () {
199
+ const _arguments = arguments;
199
200
  if (macrotask) {
200
201
  setTimeout(() => {
201
202
  if (macrotask.state === 'scheduled') {
@@ -203,7 +204,7 @@ const zoneWrapFn = (it, macrotask) => {
203
204
  }
204
205
  }, 10);
205
206
  }
206
- return run(() => it.apply(_this, arguments));
207
+ return run(() => it.apply(_this, _arguments));
207
208
  };
208
209
  };
209
210
  const ɵzoneWrap = (it, blockUntilFirst) => {
@@ -211,18 +212,19 @@ const ɵzoneWrap = (it, blockUntilFirst) => {
211
212
  // tslint:disable-next-line:only-arrow-functions
212
213
  return function () {
213
214
  let macrotask;
215
+ const _arguments = arguments;
214
216
  // if this is a callback function, e.g, onSnapshot, we should create a microtask and invoke it
215
217
  // only once one of the callback functions is tripped.
216
218
  for (let i = 0; i < arguments.length; i++) {
217
- if (typeof arguments[i] === 'function') {
219
+ if (typeof _arguments[i] === 'function') {
218
220
  if (blockUntilFirst) {
219
221
  macrotask || (macrotask = run(() => Zone.current.scheduleMacroTask('firebaseZoneBlock', noop, {}, noop, noop)));
220
222
  }
221
223
  // TODO create a microtask to track callback functions
222
- arguments[i] = zoneWrapFn(arguments[i], macrotask);
224
+ _arguments[i] = zoneWrapFn(_arguments[i], macrotask);
223
225
  }
224
226
  }
225
- const ret = runOutsideAngular(() => it.apply(this, arguments));
227
+ const ret = runOutsideAngular(() => it.apply(this, _arguments));
226
228
  if (!blockUntilFirst) {
227
229
  if (ret instanceof Observable) {
228
230
  const schedulers = getSchedulers();