@angular/fire 18.0.1-canary.3639e41 → 18.0.1-canary.6982c75
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/analytics/firebase.d.ts +2 -2
- package/auth/rxfire.d.ts +2 -2
- package/database/rxfire.d.ts +4 -4
- package/esm2022/analytics/firebase.mjs +3 -3
- package/esm2022/auth/rxfire.mjs +3 -3
- package/esm2022/compat/firestore/collection/changes.mjs +3 -3
- package/esm2022/database/rxfire.mjs +5 -5
- package/esm2022/firestore/lite/rxfire.mjs +5 -5
- package/esm2022/firestore/rxfire.mjs +8 -8
- package/esm2022/performance/rxfire.mjs +3 -3
- package/esm2022/remote-config/rxfire.mjs +6 -6
- package/esm2022/vertexai-preview/firebase.mjs +3 -3
- package/esm2022/zones.mjs +37 -57
- package/fesm2022/angular-fire-analytics.mjs +2 -2
- package/fesm2022/angular-fire-analytics.mjs.map +1 -1
- package/fesm2022/angular-fire-auth.mjs +2 -2
- package/fesm2022/angular-fire-auth.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-firestore.mjs +2 -2
- package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -1
- package/fesm2022/angular-fire-database.mjs +4 -4
- package/fesm2022/angular-fire-database.mjs.map +1 -1
- package/fesm2022/angular-fire-firestore-lite.mjs +4 -4
- package/fesm2022/angular-fire-firestore-lite.mjs.map +1 -1
- package/fesm2022/angular-fire-firestore.mjs +7 -7
- package/fesm2022/angular-fire-firestore.mjs.map +1 -1
- package/fesm2022/angular-fire-performance.mjs +2 -2
- package/fesm2022/angular-fire-performance.mjs.map +1 -1
- package/fesm2022/angular-fire-remote-config.mjs +5 -5
- package/fesm2022/angular-fire-remote-config.mjs.map +1 -1
- package/fesm2022/angular-fire-vertexai-preview.mjs +2 -2
- package/fesm2022/angular-fire-vertexai-preview.mjs.map +1 -1
- package/fesm2022/angular-fire.mjs +35 -55
- package/fesm2022/angular-fire.mjs.map +1 -1
- package/firestore/lite/rxfire.d.ts +4 -4
- package/firestore/rxfire.d.ts +7 -7
- package/package.json +1 -1
- package/performance/rxfire.d.ts +2 -2
- package/remote-config/rxfire.d.ts +5 -5
- package/vertexai-preview/firebase.d.ts +2 -2
- package/zones.d.ts +3 -2
package/analytics/firebase.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from 'firebase/analytics';
|
|
2
|
-
import { getAnalytics as _getAnalytics, getGoogleAnalyticsClientId as _getGoogleAnalyticsClientId, initializeAnalytics as _initializeAnalytics, logEvent as _logEvent, setAnalyticsCollectionEnabled as _setAnalyticsCollectionEnabled, setConsent as _setConsent, setCurrentScreen as _setCurrentScreen, setDefaultEventParameters as _setDefaultEventParameters,
|
|
2
|
+
import { getAnalytics as _getAnalytics, getGoogleAnalyticsClientId as _getGoogleAnalyticsClientId, initializeAnalytics as _initializeAnalytics, logEvent as _logEvent, setAnalyticsCollectionEnabled as _setAnalyticsCollectionEnabled, setConsent as _setConsent, setCurrentScreen as _setCurrentScreen, setDefaultEventParameters as _setDefaultEventParameters, setUserId as _setUserId, setUserProperties as _setUserProperties, settings as _settings } from 'firebase/analytics';
|
|
3
3
|
export { isSupported } from './overrides';
|
|
4
4
|
export declare const getAnalytics: typeof _getAnalytics;
|
|
5
5
|
export declare const getGoogleAnalyticsClientId: typeof _getGoogleAnalyticsClientId;
|
|
@@ -9,6 +9,6 @@ export declare const setAnalyticsCollectionEnabled: typeof _setAnalyticsCollecti
|
|
|
9
9
|
export declare const setConsent: typeof _setConsent;
|
|
10
10
|
export declare const setCurrentScreen: typeof _setCurrentScreen;
|
|
11
11
|
export declare const setDefaultEventParameters: typeof _setDefaultEventParameters;
|
|
12
|
-
export declare const settings: typeof _settings;
|
|
13
12
|
export declare const setUserId: typeof _setUserId;
|
|
14
13
|
export declare const setUserProperties: typeof _setUserProperties;
|
|
14
|
+
export declare const settings: typeof _settings;
|
package/auth/rxfire.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { authState as _authState,
|
|
1
|
+
import { authState as _authState, idToken as _idToken, user as _user } from 'rxfire/auth';
|
|
2
2
|
export declare const authState: typeof _authState;
|
|
3
|
-
export declare const user: typeof _user;
|
|
4
3
|
export declare const idToken: typeof _idToken;
|
|
4
|
+
export declare const user: typeof _user;
|
package/database/rxfire.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { auditTrail as _auditTrail, changeToData as _changeToData, fromRef as _fromRef, list as _list, listVal as _listVal, object as _object, objectVal as _objectVal, stateChanges as _stateChanges } from 'rxfire/database';
|
|
2
2
|
export { ListenEvent, ListenerMethods } from 'rxfire/database';
|
|
3
|
+
export declare const auditTrail: typeof _auditTrail;
|
|
4
|
+
export declare const changeToData: typeof _changeToData;
|
|
3
5
|
export declare const fromRef: typeof _fromRef;
|
|
4
|
-
export declare const stateChanges: typeof _stateChanges;
|
|
5
6
|
export declare const list: typeof _list;
|
|
6
7
|
export declare const listVal: typeof _listVal;
|
|
7
|
-
export declare const auditTrail: typeof _auditTrail;
|
|
8
8
|
export declare const object: typeof _object;
|
|
9
9
|
export declare const objectVal: typeof _objectVal;
|
|
10
|
-
export declare const
|
|
10
|
+
export declare const stateChanges: typeof _stateChanges;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
|
|
2
2
|
export * from 'firebase/analytics';
|
|
3
3
|
import { ɵzoneWrap } from '@angular/fire';
|
|
4
|
-
import { getAnalytics as _getAnalytics, getGoogleAnalyticsClientId as _getGoogleAnalyticsClientId, initializeAnalytics as _initializeAnalytics, logEvent as _logEvent, setAnalyticsCollectionEnabled as _setAnalyticsCollectionEnabled, setConsent as _setConsent, setCurrentScreen as _setCurrentScreen, setDefaultEventParameters as _setDefaultEventParameters,
|
|
4
|
+
import { getAnalytics as _getAnalytics, getGoogleAnalyticsClientId as _getGoogleAnalyticsClientId, initializeAnalytics as _initializeAnalytics, logEvent as _logEvent, setAnalyticsCollectionEnabled as _setAnalyticsCollectionEnabled, setConsent as _setConsent, setCurrentScreen as _setCurrentScreen, setDefaultEventParameters as _setDefaultEventParameters, setUserId as _setUserId, setUserProperties as _setUserProperties, settings as _settings } from 'firebase/analytics';
|
|
5
5
|
export { isSupported } from './overrides';
|
|
6
6
|
export const getAnalytics = ɵzoneWrap(_getAnalytics, true);
|
|
7
7
|
export const getGoogleAnalyticsClientId = ɵzoneWrap(_getGoogleAnalyticsClientId, true);
|
|
@@ -11,7 +11,7 @@ export const setAnalyticsCollectionEnabled = ɵzoneWrap(_setAnalyticsCollectionE
|
|
|
11
11
|
export const setConsent = ɵzoneWrap(_setConsent, true);
|
|
12
12
|
export const setCurrentScreen = ɵzoneWrap(_setCurrentScreen, true);
|
|
13
13
|
export const setDefaultEventParameters = ɵzoneWrap(_setDefaultEventParameters, true);
|
|
14
|
-
export const settings = ɵzoneWrap(_settings, true);
|
|
15
14
|
export const setUserId = ɵzoneWrap(_setUserId, true);
|
|
16
15
|
export const setUserProperties = ɵzoneWrap(_setUserProperties, true);
|
|
17
|
-
|
|
16
|
+
export const settings = ɵzoneWrap(_settings, true);
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYW5hbHl0aWNzL2ZpcmViYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhEQUE4RDtBQUM5RCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUNMLFlBQVksSUFBSSxhQUFhLEVBQzdCLDBCQUEwQixJQUFJLDJCQUEyQixFQUN6RCxtQkFBbUIsSUFBSSxvQkFBb0IsRUFDM0MsUUFBUSxJQUFJLFNBQVMsRUFDckIsNkJBQTZCLElBQUksOEJBQThCLEVBQy9ELFVBQVUsSUFBSSxXQUFXLEVBQ3pCLGdCQUFnQixJQUFJLGlCQUFpQixFQUNyQyx5QkFBeUIsSUFBSSwwQkFBMEIsRUFDdkQsU0FBUyxJQUFJLFVBQVUsRUFDdkIsaUJBQWlCLElBQUksa0JBQWtCLEVBQ3ZDLFFBQVEsSUFBSSxTQUFTLEVBQ3RCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUNMLFdBQVcsRUFDWixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxTQUFTLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3pFLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLFNBQVMsQ0FBQyw4QkFBOEIsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM3RixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsU0FBUyxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIERPIE5PVCBNT0RJRlksIHRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IHRvb2xzL2J1aWxkLnRzXG5leHBvcnQgKiBmcm9tICdmaXJlYmFzZS9hbmFseXRpY3MnO1xuaW1wb3J0IHsgybV6b25lV3JhcCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHtcbiAgZ2V0QW5hbHl0aWNzIGFzIF9nZXRBbmFseXRpY3MsXG4gIGdldEdvb2dsZUFuYWx5dGljc0NsaWVudElkIGFzIF9nZXRHb29nbGVBbmFseXRpY3NDbGllbnRJZCxcbiAgaW5pdGlhbGl6ZUFuYWx5dGljcyBhcyBfaW5pdGlhbGl6ZUFuYWx5dGljcyxcbiAgbG9nRXZlbnQgYXMgX2xvZ0V2ZW50LFxuICBzZXRBbmFseXRpY3NDb2xsZWN0aW9uRW5hYmxlZCBhcyBfc2V0QW5hbHl0aWNzQ29sbGVjdGlvbkVuYWJsZWQsXG4gIHNldENvbnNlbnQgYXMgX3NldENvbnNlbnQsXG4gIHNldEN1cnJlbnRTY3JlZW4gYXMgX3NldEN1cnJlbnRTY3JlZW4sXG4gIHNldERlZmF1bHRFdmVudFBhcmFtZXRlcnMgYXMgX3NldERlZmF1bHRFdmVudFBhcmFtZXRlcnMsXG4gIHNldFVzZXJJZCBhcyBfc2V0VXNlcklkLFxuICBzZXRVc2VyUHJvcGVydGllcyBhcyBfc2V0VXNlclByb3BlcnRpZXMsXG4gIHNldHRpbmdzIGFzIF9zZXR0aW5nc1xufSBmcm9tICdmaXJlYmFzZS9hbmFseXRpY3MnO1xuXG5leHBvcnQge1xuICBpc1N1cHBvcnRlZFxufSBmcm9tICcuL292ZXJyaWRlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRBbmFseXRpY3MgPSDJtXpvbmVXcmFwKF9nZXRBbmFseXRpY3MsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGdldEdvb2dsZUFuYWx5dGljc0NsaWVudElkID0gybV6b25lV3JhcChfZ2V0R29vZ2xlQW5hbHl0aWNzQ2xpZW50SWQsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGluaXRpYWxpemVBbmFseXRpY3MgPSDJtXpvbmVXcmFwKF9pbml0aWFsaXplQW5hbHl0aWNzLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBsb2dFdmVudCA9IMm1em9uZVdyYXAoX2xvZ0V2ZW50LCB0cnVlKTtcbmV4cG9ydCBjb25zdCBzZXRBbmFseXRpY3NDb2xsZWN0aW9uRW5hYmxlZCA9IMm1em9uZVdyYXAoX3NldEFuYWx5dGljc0NvbGxlY3Rpb25FbmFibGVkLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBzZXRDb25zZW50ID0gybV6b25lV3JhcChfc2V0Q29uc2VudCwgdHJ1ZSk7XG5leHBvcnQgY29uc3Qgc2V0Q3VycmVudFNjcmVlbiA9IMm1em9uZVdyYXAoX3NldEN1cnJlbnRTY3JlZW4sIHRydWUpO1xuZXhwb3J0IGNvbnN0IHNldERlZmF1bHRFdmVudFBhcmFtZXRlcnMgPSDJtXpvbmVXcmFwKF9zZXREZWZhdWx0RXZlbnRQYXJhbWV0ZXJzLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBzZXRVc2VySWQgPSDJtXpvbmVXcmFwKF9zZXRVc2VySWQsIHRydWUpO1xuZXhwb3J0IGNvbnN0IHNldFVzZXJQcm9wZXJ0aWVzID0gybV6b25lV3JhcChfc2V0VXNlclByb3BlcnRpZXMsIHRydWUpO1xuZXhwb3J0IGNvbnN0IHNldHRpbmdzID0gybV6b25lV3JhcChfc2V0dGluZ3MsIHRydWUpO1xuIl19
|
package/esm2022/auth/rxfire.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
|
|
2
2
|
import { ɵzoneWrap } from '@angular/fire';
|
|
3
|
-
import { authState as _authState,
|
|
3
|
+
import { authState as _authState, idToken as _idToken, user as _user } from 'rxfire/auth';
|
|
4
4
|
export const authState = ɵzoneWrap(_authState, true);
|
|
5
|
-
export const user = ɵzoneWrap(_user, true);
|
|
6
5
|
export const idToken = ɵzoneWrap(_idToken, true);
|
|
7
|
-
|
|
6
|
+
export const user = ɵzoneWrap(_user, true);
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhmaXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F1dGgvcnhmaXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhEQUE4RDtBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFDTCxTQUFTLElBQUksVUFBVSxFQUN2QixPQUFPLElBQUksUUFBUSxFQUNuQixJQUFJLElBQUksS0FBSyxFQUNkLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRE8gTk9UIE1PRElGWSwgdGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgdG9vbHMvYnVpbGQudHNcbmltcG9ydCB7IMm1em9uZVdyYXAgfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7XG4gIGF1dGhTdGF0ZSBhcyBfYXV0aFN0YXRlLFxuICBpZFRva2VuIGFzIF9pZFRva2VuLFxuICB1c2VyIGFzIF91c2VyXG59IGZyb20gJ3J4ZmlyZS9hdXRoJztcblxuZXhwb3J0IGNvbnN0IGF1dGhTdGF0ZSA9IMm1em9uZVdyYXAoX2F1dGhTdGF0ZSwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgaWRUb2tlbiA9IMm1em9uZVdyYXAoX2lkVG9rZW4sIHRydWUpO1xuZXhwb3J0IGNvbnN0IHVzZXIgPSDJtXpvbmVXcmFwKF91c2VyLCB0cnVlKTtcbiJdfQ==
|
|
@@ -75,7 +75,7 @@ function sliceAndSplice(original, start, deleteCount, ...args) {
|
|
|
75
75
|
export function combineChange(combined, change) {
|
|
76
76
|
switch (change.type) {
|
|
77
77
|
case 'added':
|
|
78
|
-
if (combined[change.newIndex]
|
|
78
|
+
if (combined[change.newIndex]?.doc.ref.isEqual(change.doc.ref)) {
|
|
79
79
|
// Not sure why the duplicates are getting fired
|
|
80
80
|
}
|
|
81
81
|
else {
|
|
@@ -98,11 +98,11 @@ export function combineChange(combined, change) {
|
|
|
98
98
|
}
|
|
99
99
|
break;
|
|
100
100
|
case 'removed':
|
|
101
|
-
if (combined[change.oldIndex]
|
|
101
|
+
if (combined[change.oldIndex]?.doc.ref.isEqual(change.doc.ref)) {
|
|
102
102
|
return sliceAndSplice(combined, change.oldIndex, 1);
|
|
103
103
|
}
|
|
104
104
|
break;
|
|
105
105
|
}
|
|
106
106
|
return combined;
|
|
107
107
|
}
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZmlyZXN0b3JlL2NvbGxlY3Rpb24vY2hhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJMUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBSSxLQUFZLEVBQUUsU0FBeUI7SUFDbkUsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO1NBQ3ZDLElBQUksQ0FDSCxTQUFTLENBQW9FLFNBQVMsQ0FBQyxFQUN2RixRQUFRLEVBQUUsRUFDVixHQUFHLENBQUMsQ0FBQyxXQUF1QixFQUFFLEVBQUU7UUFDOUIsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsR0FBRyxXQUFXLENBQUM7UUFDMUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkYsbURBQW1EO1FBQ25ELElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM1Ryx1RUFBdUU7WUFDdkUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENB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LEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQy9DLE9BQU8sV0FBVyxDQUFDO2dCQUNyQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxjQUFjLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO1lBQ0gsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLFNBQVM7WUFDWixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzNGLE9BQU8sY0FBYyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RELENBQUM7WUFDRCxNQUFNO0lBQ1YsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmlyZWJhc2UgZnJvbSAnZmlyZWJhc2UvY29tcGF0L2FwcCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBwYWlyd2lzZSwgc2Nhbiwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWN0aW9uLCBEb2N1bWVudENoYW5nZSwgRG9jdW1lbnRDaGFuZ2VBY3Rpb24sIERvY3VtZW50Q2hhbmdlVHlwZSwgUXVlcnksIFF1ZXJ5U25hcHNob3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGZyb21Db2xsZWN0aW9uUmVmIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9mcm9tUmVmJztcblxuXG50eXBlIEFjdGlvblR1cGUgPSBbQWN0aW9uPFF1ZXJ5U25hcHNob3Q8ZmlyZWJhc2UuZmlyZXN0b3JlLkRvY3VtZW50RGF0YT4+LCBBY3Rpb248UXVlcnlTbmFwc2hvdDxmaXJlYmFzZS5maXJlc3RvcmUuRG9jdW1lbnREYXRhPj5dXG4vKipcbiAqIFJldHVybiBhIHN0cmVhbSBvZiBkb2N1bWVudCBjaGFuZ2VzIG9uIGEgcXVlcnkuIFRoZXNlIHJlc3VsdHMgYXJlIG5vdCBpbiBzb3J0IG9yZGVyIGJ1dCBpblxuICogb3JkZXIgb2Ygb2NjdXJlbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZG9jQ2hhbmdlczxUPihxdWVyeTogUXVlcnksIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UpOiBPYnNlcnZhYmxlPERvY3VtZW50Q2hhbmdlQWN0aW9uPFQ+W10+IHtcbiAgcmV0dXJuIGZyb21Db2xsZWN0aW9uUmVmKHF1ZXJ5LCBzY2hlZHVsZXIpXG4gICAgLnBpcGUoXG4gICAgICBzdGFydFdpdGg8QWN0aW9uPFF1ZXJ5U25hcHNob3Q8ZmlyZWJhc2UuZmlyZXN0b3JlLkRvY3VtZW50RGF0YT4+LCB1bmRlZmluZWQ+KHVuZGVmaW5lZCksXG4gICAgICBwYWlyd2lzZSgpLFxuICAgICAgbWFwKChhY3Rpb25UdXBsZTogQWN0aW9uVHVwZSkgPT4ge1xuICAgICAgICBjb25zdCBbcHJpb3JBY3Rpb24sIGFjdGlvbl0gPSBhY3Rpb25UdXBsZTtcbiAgICAgICAgY29uc3QgZG9jQ2hhbmdlcyA9IGFjdGlvbi5wYXlsb2FkLmRvY0NoYW5nZXMoKTtcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IGRvY0NoYW5nZXMubWFwKGNoYW5nZSA9PiAoeyB0eXBlOiBjaGFuZ2UudHlwZSwgcGF5bG9hZDogY2hhbmdlIH0pKTtcbiAgICAgICAgLy8gdGhlIG1ldGFkYXRhIGhhcyBjaGFuZ2VkIGZyb20gdGhlIHByaW9yIGVtaXNzaW9uXG4gICAgICAgIGlmIChwcmlvckFjdGlvbiAmJiBKU09OLnN0cmluZ2lmeShwcmlvckFjdGlvbi5wYXlsb2FkLm1ldGFkYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkoYWN0aW9uLnBheWxvYWQubWV0YWRhdGEpKSB7XG4gICAgICAgICAgLy8gZ28gdGhyb3VnaCBhbGwgdGhlIGRvY3MgaW4gcGF5bG9hZCBhbmQgZmlndXJlIG91dCB3aGljaCBvbmVzIGNoYW5nZWRcbiAgICAgICAgICBhY3Rpb24ucGF5bG9hZC5kb2NzLmZvckVhY2goKGN1cnJlbnREb2MsIGN1cnJlbnRJbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZG9jQ2hhbmdlID0gZG9jQ2hhbmdlcy5maW5kKGQgPT4gZC5kb2MucmVmLmlzRXF1YWwoY3VycmVudERvYy5yZWYpKTtcbiAgICAgICAgICAgIGNvbnN0IHByaW9yRG9jID0gcHJpb3JBY3Rpb24/LnBheWxvYWQuZG9jcy5maW5kKGQgPT4gZC5yZWYuaXNFcXVhbChjdXJyZW50RG9jLnJlZikpO1xuICAgICAgICAgICAgaWYgKGRvY0NoYW5nZSAmJiBKU09OLnN0cmluZ2lmeShkb2NDaGFuZ2UuZG9jLm1ldGFkYXRhKSA9PT0gSlNPTi5zdHJpbmdpZnkoY3VycmVudERvYy5tZXRhZGF0YSkgfHxcbiAgICAgICAgICAgICAgIWRvY0NoYW5nZSAmJiBwcmlvckRvYyAmJiBKU09OLnN0cmluZ2lmeShwcmlvckRvYy5tZXRhZGF0YSkgPT09IEpTT04uc3RyaW5naWZ5KGN1cnJlbnREb2MubWV0YWRhdGEpKSB7XG4gICAgICAgICAgICAgIC8vIGRvY3VtZW50IGRvZXNuJ3QgYXBwZWFyIHRvIGhhdmUgY2hhbmdlZCwgZG9uJ3QgbG9nIGFub3RoZXIgYWN0aW9uXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBzaW5jZSB0aGUgYWN0aW9ucyBhcmUgcHJvY2Vzc2VkIGluIG9yZGVyIGp1c3QgcHVzaCBvbnRvIHRoZSBhcnJheVxuICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdtb2RpZmllZCcsXG4gICAgICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICAgICAgb2xkSW5kZXg6IGN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgICAgICAgIG5ld0luZGV4OiBjdXJyZW50SW5kZXgsXG4gICAgICAgICAgICAgICAgICB0eXBlOiAnbW9kaWZpZWQnLFxuICAgICAgICAgICAgICAgICAgZG9jOiBjdXJyZW50RG9jXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWN0aW9ucyBhcyBEb2N1bWVudENoYW5nZUFjdGlvbjxUPltdO1xuICAgICAgfSksXG4gICk7XG59XG5cbi8qKlxuICogUmV0dXJuIGEgc3RyZWFtIG9mIGRvY3VtZW50IGNoYW5nZXMgb24gYSBxdWVyeS4gVGhlc2UgcmVzdWx0cyBhcmUgaW4gc29ydCBvcmRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNvcnRlZENoYW5nZXM8VD4oXG4gIHF1ZXJ5OiBRdWVyeSxcbiAgZXZlbnRzOiBEb2N1bWVudENoYW5nZVR5cGVbXSxcbiAgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSk6IE9ic2VydmFibGU8RG9jdW1lbnRDaGFuZ2VBY3Rpb248VD5bXT4ge1xuICByZXR1cm4gZG9jQ2hhbmdlczxUPihxdWVyeSwgc2NoZWR1bGVyKVxuICAgIC5waXBlKFxuICAgICAgc2NhbigoY3VycmVudCwgY2hhbmdlcykgPT4gY29tYmluZUNoYW5nZXM8VD4oY3VycmVudCwgY2hhbmdlcy5tYXAoaXQgPT4gaXQucGF5bG9hZCksIGV2ZW50cyksIFtdKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIC8vIGN1dCBkb3duIG9uIHVubmVlZCBjaGFuZ2UgY3ljbGVzXG4gICAgICBtYXAoY2hhbmdlcyA9PiBjaGFuZ2VzLm1hcChjID0+ICh7IHR5cGU6IGMudHlwZSwgcGF5bG9hZDogYyB9IGFzIERvY3VtZW50Q2hhbmdlQWN0aW9uPFQ+KSkpKTtcbn1cblxuLyoqXG4gKiBDb21iaW5lcyB0aGUgdG90YWwgcmVzdWx0IHNldCBmcm9tIHRoZSBjdXJyZW50IHNldCBvZiBjaGFuZ2VzIGZyb20gYW4gaW5jb21pbmcgc2V0XG4gKiBvZiBjaGFuZ2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUNoYW5nZXM8VD4oY3VycmVudDogRG9jdW1lbnRDaGFuZ2U8VD5bXSwgY2hhbmdlczogRG9jdW1lbnRDaGFuZ2U8VD5bXSwgZXZlbnRzOiBEb2N1bWVudENoYW5nZVR5cGVbXSkge1xuICBjaGFuZ2VzLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAvLyBza2lwIHVud2FudGVkIGNoYW5nZSB0eXBlc1xuICAgIGlmIChldmVudHMuaW5kZXhPZihjaGFuZ2UudHlwZSkgPiAtMSkge1xuICAgICAgY3VycmVudCA9IGNvbWJpbmVDaGFuZ2UoY3VycmVudCwgY2hhbmdlKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gY3VycmVudDtcbn1cblxuLyoqXG4gKiBTcGxpY2UgYXJndW1lbnRzIG9uIHRvcCBvZiBhIHNsaWNlZCBhcnJheSwgdG8gYnJlYWsgdG9wLWxldmVsID09PVxuICogdGhpcyBpcyB1c2VmdWwgZm9yIGNoYW5nZS1kZXRlY3Rpb25cbiAqL1xuZnVuY3Rpb24gc2xpY2VBbmRTcGxpY2U8VD4oXG4gIG9yaWdpbmFsOiBUW10sXG4gIHN0YXJ0OiBudW1iZXIsXG4gIGRlbGV0ZUNvdW50OiBudW1iZXIsXG4gIC4uLmFyZ3M6IFRbXVxuKTogVFtdIHtcbiAgY29uc3QgcmV0dXJuQXJyYXkgPSBvcmlnaW5hbC5zbGljZSgpO1xuICByZXR1cm5BcnJheS5zcGxpY2Uoc3RhcnQsIGRlbGV0ZUNvdW50LCAuLi5hcmdzKTtcbiAgcmV0dXJuIHJldHVybkFycmF5O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgc29ydGVkIGFycmF5IGZyb20gYSBuZXcgY2hhbmdlLlxuICogQnVpbGQgb3VyIG93biBiZWNhdXNlIHdlIGFsbG93IGZpbHRlcmluZyBvZiBhY3Rpb24gdHlwZXMgKCdhZGRlZCcsICdyZW1vdmVkJywgJ21vZGlmaWVkJykgYmVmb3JlIHNjYW5uaW5nXG4gKiBhbmQgc28gd2UgaGF2ZSBncmVhdGVyIGNvbnRyb2wgb3ZlciBjaGFuZ2UgZGV0ZWN0aW9uIChieSBicmVha2luZyA9PT0pXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lQ2hhbmdlPFQ+KGNvbWJpbmVkOiBEb2N1bWVudENoYW5nZTxUPltdLCBjaGFuZ2U6IERvY3VtZW50Q2hhbmdlPFQ+KTogRG9jdW1lbnRDaGFuZ2U8VD5bXSB7XG4gIHN3aXRjaCAoY2hhbmdlLnR5cGUpIHtcbiAgICBjYXNlICdhZGRlZCc6XG4gICAgICBpZiAoY29tYmluZWRbY2hhbmdlLm5ld0luZGV4XSAmJiBjb21iaW5lZFtjaGFuZ2UubmV3SW5kZXhdLmRvYy5yZWYuaXNFcXVhbChjaGFuZ2UuZG9jLnJlZikpIHtcbiAgICAgICAgLy8gTm90IHN1cmUgd2h5IHRoZSBkdXBsaWNhdGVzIGFyZSBnZXR0aW5nIGZpcmVkXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gc2xpY2VBbmRTcGxpY2UoY29tYmluZWQsIGNoYW5nZS5uZXdJbmRleCwgMCwgY2hhbmdlKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ21vZGlmaWVkJzpcbiAgICAgIGlmIChjb21iaW5lZFtjaGFuZ2Uub2xkSW5kZXhdID09IG51bGwgfHwgY29tYmluZWRbY2hhbmdlLm9sZEluZGV4XS5kb2MucmVmLmlzRXF1YWwoY2hhbmdlLmRvYy5yZWYpKSB7XG4gICAgICAgIC8vIFdoZW4gYW4gaXRlbSBjaGFuZ2VzIHBvc2l0aW9uIHdlIGZpcnN0IHJlbW92ZSBpdFxuICAgICAgICAvLyBhbmQgdGhlbiBhZGQgaXQncyBuZXcgcG9zaXRpb25cbiAgICAgICAgaWYgKGNoYW5nZS5vbGRJbmRleCAhPT0gY2hhbmdlLm5ld0luZGV4KSB7XG4gICAgICAgICAgY29uc3QgY29waWVkQXJyYXkgPSBjb21iaW5lZC5zbGljZSgpO1xuICAgICAgICAgIGNvcGllZEFycmF5LnNwbGljZShjaGFuZ2Uub2xkSW5kZXgsIDEpO1xuICAgICAgICAgIGNvcGllZEFycmF5LnNwbGljZShjaGFuZ2UubmV3SW5kZXgsIDAsIGNoYW5nZSk7XG4gICAgICAgICAgcmV0dXJuIGNvcGllZEFycmF5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBzbGljZUFuZFNwbGljZShjb21iaW5lZCwgY2hhbmdlLm5ld0luZGV4LCAxLCBjaGFuZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdyZW1vdmVkJzpcbiAgICAgIGlmIChjb21iaW5lZFtjaGFuZ2Uub2xkSW5kZXhdICYmIGNvbWJpbmVkW2NoYW5nZS5vbGRJbmRleF0uZG9jLnJlZi5pc0VxdWFsKGNoYW5nZS5kb2MucmVmKSkge1xuICAgICAgICByZXR1cm4gc2xpY2VBbmRTcGxpY2UoY29tYmluZWQsIGNoYW5nZS5vbGRJbmRleCwgMSk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gY29tYmluZWQ7XG59XG4iXX0=
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZmlyZXN0b3JlL2NvbGxlY3Rpb24vY2hhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJMUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBSSxLQUFZLEVBQUUsU0FBeUI7SUFDbkUsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO1NBQ3ZDLElBQUksQ0FDSCxTQUFTLENBQW9FLFNBQVMsQ0FBQyxFQUN2RixRQUFRLEVBQUUsRUFDVixHQUFHLENBQUMsQ0FBQyxXQUF1QixFQUFFLEVBQUU7UUFDOUIsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsR0FBRyxXQUFXLENBQUM7UUFDMUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkYsbURBQW1EO1FBQ25ELElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM1Ryx1RUFBdUU7WUFDdkUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENB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QVcsQ0FBQztnQkFDckIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sY0FBYyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDOUQsQ0FBQztZQUNILENBQUM7WUFDRCxNQUFNO1FBQ1IsS0FBSyxTQUFTO1lBQ1osSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0QsT0FBTyxjQUFjLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUNELE1BQU07SUFDVixDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmaXJlYmFzZSBmcm9tICdmaXJlYmFzZS9jb21wYXQvYXBwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFNjaGVkdWxlckxpa2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHBhaXJ3aXNlLCBzY2FuLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3Rpb24sIERvY3VtZW50Q2hhbmdlLCBEb2N1bWVudENoYW5nZUFjdGlvbiwgRG9jdW1lbnRDaGFuZ2VUeXBlLCBRdWVyeSwgUXVlcnlTbmFwc2hvdCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZnJvbUNvbGxlY3Rpb25SZWYgfSBmcm9tICcuLi9vYnNlcnZhYmxlL2Zyb21SZWYnO1xuXG5cbnR5cGUgQWN0aW9uVHVwZSA9IFtBY3Rpb248UXVlcnlTbmFwc2hvdDxmaXJlYmFzZS5maXJlc3RvcmUuRG9jdW1lbnREYXRhPj4sIEFjdGlvbjxRdWVyeVNuYXBzaG90PGZpcmViYXNlLmZpcmVzdG9yZS5Eb2N1bWVudERhdGE+Pl1cbi8qKlxuICogUmV0dXJuIGEgc3RyZWFtIG9mIGRvY3VtZW50IGNoYW5nZXMgb24gYSBxdWVyeS4gVGhlc2UgcmVzdWx0cyBhcmUgbm90IGluIHNvcnQgb3JkZXIgYnV0IGluXG4gKiBvcmRlciBvZiBvY2N1cmVuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb2NDaGFuZ2VzPFQ+KHF1ZXJ5OiBRdWVyeSwgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSk6IE9ic2VydmFibGU8RG9jdW1lbnRDaGFuZ2VBY3Rpb248VD5bXT4ge1xuICByZXR1cm4gZnJvbUNvbGxlY3Rpb25SZWYocXVlcnksIHNjaGVkdWxlcilcbiAgICAucGlwZShcbiAgICAgIHN0YXJ0V2l0aDxBY3Rpb248UXVlcnlTbmFwc2hvdDxmaXJlYmFzZS5maXJlc3RvcmUuRG9jdW1lbnREYXRhPj4sIHVuZGVmaW5lZD4odW5kZWZpbmVkKSxcbiAgICAgIHBhaXJ3aXNlKCksXG4gICAgICBtYXAoKGFjdGlvblR1cGxlOiBBY3Rpb25UdXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IFtwcmlvckFjdGlvbiwgYWN0aW9uXSA9IGFjdGlvblR1cGxlO1xuICAgICAgICBjb25zdCBkb2NDaGFuZ2VzID0gYWN0aW9uLnBheWxvYWQuZG9jQ2hhbmdlcygpO1xuICAgICAgICBjb25zdCBhY3Rpb25zID0gZG9jQ2hhbmdlcy5tYXAoY2hhbmdlID0+ICh7IHR5cGU6IGNoYW5nZS50eXBlLCBwYXlsb2FkOiBjaGFuZ2UgfSkpO1xuICAgICAgICAvLyB0aGUgbWV0YWRhdGEgaGFzIGNoYW5nZWQgZnJvbSB0aGUgcHJpb3IgZW1pc3Npb25cbiAgICAgICAgaWYgKHByaW9yQWN0aW9uICYmIEpTT04uc3RyaW5naWZ5KHByaW9yQWN0aW9uLnBheWxvYWQubWV0YWRhdGEpICE9PSBKU09OLnN0cmluZ2lmeShhY3Rpb24ucGF5bG9hZC5tZXRhZGF0YSkpIHtcbiAgICAgICAgICAvLyBnbyB0aHJvdWdoIGFsbCB0aGUgZG9jcyBpbiBwYXlsb2FkIGFuZCBmaWd1cmUgb3V0IHdoaWNoIG9uZXMgY2hhbmdlZFxuICAgICAgICAgIGFjdGlvbi5wYXlsb2FkLmRvY3MuZm9yRWFjaCgoY3VycmVudERvYywgY3VycmVudEluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkb2NDaGFuZ2UgPSBkb2NDaGFuZ2VzLmZpbmQoZCA9PiBkLmRvYy5yZWYuaXNFcXVhbChjdXJyZW50RG9jLnJlZikpO1xuICAgICAgICAgICAgY29uc3QgcHJpb3JEb2MgPSBwcmlvckFjdGlvbj8ucGF5bG9hZC5kb2NzLmZpbmQoZCA9PiBkLnJlZi5pc0VxdWFsKGN1cnJlbnREb2MucmVmKSk7XG4gICAgICAgICAgICBpZiAoZG9jQ2hhbmdlICYmIEpTT04uc3RyaW5naWZ5KGRvY0NoYW5nZS5kb2MubWV0YWRhdGEpID09PSBKU09OLnN0cmluZ2lmeShjdXJyZW50RG9jLm1ldGFkYXRhKSB8fFxuICAgICAgICAgICAgICAhZG9jQ2hhbmdlICYmIHByaW9yRG9jICYmIEpTT04uc3RyaW5naWZ5KHByaW9yRG9jLm1ldGFkYXRhKSA9PT0gSlNPTi5zdHJpbmdpZnkoY3VycmVudERvYy5tZXRhZGF0YSkpIHtcbiAgICAgICAgICAgICAgLy8gZG9jdW1lbnQgZG9lc24ndCBhcHBlYXIgdG8gaGF2ZSBjaGFuZ2VkLCBkb24ndCBsb2cgYW5vdGhlciBhY3Rpb25cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIHNpbmNlIHRoZSBhY3Rpb25zIGFyZSBwcm9jZXNzZWQgaW4gb3JkZXIganVzdCBwdXNoIG9udG8gdGhlIGFycmF5XG4gICAgICAgICAgICAgIGFjdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgdHlwZTogJ21vZGlmaWVkJyxcbiAgICAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgICAgICBvbGRJbmRleDogY3VycmVudEluZGV4LFxuICAgICAgICAgICAgICAgICAgbmV3SW5kZXg6IGN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdtb2RpZmllZCcsXG4gICAgICAgICAgICAgICAgICBkb2M6IGN1cnJlbnREb2NcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY3Rpb25zIGFzIERvY3VtZW50Q2hhbmdlQWN0aW9uPFQ+W107XG4gICAgICB9KSxcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYSBzdHJlYW0gb2YgZG9jdW1lbnQgY2hhbmdlcyBvbiBhIHF1ZXJ5LiBUaGVzZSByZXN1bHRzIGFyZSBpbiBzb3J0IG9yZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc29ydGVkQ2hhbmdlczxUPihcbiAgcXVlcnk6IFF1ZXJ5LFxuICBldmVudHM6IERvY3VtZW50Q2hhbmdlVHlwZVtdLFxuICBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKTogT2JzZXJ2YWJsZTxEb2N1bWVudENoYW5nZUFjdGlvbjxUPltdPiB7XG4gIHJldHVybiBkb2NDaGFuZ2VzPFQ+KHF1ZXJ5LCBzY2hlZHVsZXIpXG4gICAgLnBpcGUoXG4gICAgICBzY2FuKChjdXJyZW50LCBjaGFuZ2VzKSA9PiBjb21iaW5lQ2hhbmdlczxUPihjdXJyZW50LCBjaGFuZ2VzLm1hcChpdCA9PiBpdC5wYXlsb2FkKSwgZXZlbnRzKSwgW10pLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgLy8gY3V0IGRvd24gb24gdW5uZWVkIGNoYW5nZSBjeWNsZXNcbiAgICAgIG1hcChjaGFuZ2VzID0+IGNoYW5nZXMubWFwKGMgPT4gKHsgdHlwZTogYy50eXBlLCBwYXlsb2FkOiBjIH0gYXMgRG9jdW1lbnRDaGFuZ2VBY3Rpb248VD4pKSkpO1xufVxuXG4vKipcbiAqIENvbWJpbmVzIHRoZSB0b3RhbCByZXN1bHQgc2V0IGZyb20gdGhlIGN1cnJlbnQgc2V0IG9mIGNoYW5nZXMgZnJvbSBhbiBpbmNvbWluZyBzZXRcbiAqIG9mIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lQ2hhbmdlczxUPihjdXJyZW50OiBEb2N1bWVudENoYW5nZTxUPltdLCBjaGFuZ2VzOiBEb2N1bWVudENoYW5nZTxUPltdLCBldmVudHM6IERvY3VtZW50Q2hhbmdlVHlwZVtdKSB7XG4gIGNoYW5nZXMuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgIC8vIHNraXAgdW53YW50ZWQgY2hhbmdlIHR5cGVzXG4gICAgaWYgKGV2ZW50cy5pbmRleE9mKGNoYW5nZS50eXBlKSA+IC0xKSB7XG4gICAgICBjdXJyZW50ID0gY29tYmluZUNoYW5nZShjdXJyZW50LCBjaGFuZ2UpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBjdXJyZW50O1xufVxuXG4vKipcbiAqIFNwbGljZSBhcmd1bWVudHMgb24gdG9wIG9mIGEgc2xpY2VkIGFycmF5LCB0byBicmVhayB0b3AtbGV2ZWwgPT09XG4gKiB0aGlzIGlzIHVzZWZ1bCBmb3IgY2hhbmdlLWRldGVjdGlvblxuICovXG5mdW5jdGlvbiBzbGljZUFuZFNwbGljZTxUPihcbiAgb3JpZ2luYWw6IFRbXSxcbiAgc3RhcnQ6IG51bWJlcixcbiAgZGVsZXRlQ291bnQ6IG51bWJlcixcbiAgLi4uYXJnczogVFtdXG4pOiBUW10ge1xuICBjb25zdCByZXR1cm5BcnJheSA9IG9yaWdpbmFsLnNsaWNlKCk7XG4gIHJldHVybkFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQsIC4uLmFyZ3MpO1xuICByZXR1cm4gcmV0dXJuQXJyYXk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBzb3J0ZWQgYXJyYXkgZnJvbSBhIG5ldyBjaGFuZ2UuXG4gKiBCdWlsZCBvdXIgb3duIGJlY2F1c2Ugd2UgYWxsb3cgZmlsdGVyaW5nIG9mIGFjdGlvbiB0eXBlcyAoJ2FkZGVkJywgJ3JlbW92ZWQnLCAnbW9kaWZpZWQnKSBiZWZvcmUgc2Nhbm5pbmdcbiAqIGFuZCBzbyB3ZSBoYXZlIGdyZWF0ZXIgY29udHJvbCBvdmVyIGNoYW5nZSBkZXRlY3Rpb24gKGJ5IGJyZWFraW5nID09PSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVDaGFuZ2U8VD4oY29tYmluZWQ6IERvY3VtZW50Q2hhbmdlPFQ+W10sIGNoYW5nZTogRG9jdW1lbnRDaGFuZ2U8VD4pOiBEb2N1bWVudENoYW5nZTxUPltdIHtcbiAgc3dpdGNoIChjaGFuZ2UudHlwZSkge1xuICAgIGNhc2UgJ2FkZGVkJzpcbiAgICAgIGlmIChjb21iaW5lZFtjaGFuZ2UubmV3SW5kZXhdPy5kb2MucmVmLmlzRXF1YWwoY2hhbmdlLmRvYy5yZWYpKSB7XG4gICAgICAgIC8vIE5vdCBzdXJlIHdoeSB0aGUgZHVwbGljYXRlcyBhcmUgZ2V0dGluZyBmaXJlZFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHNsaWNlQW5kU3BsaWNlKGNvbWJpbmVkLCBjaGFuZ2UubmV3SW5kZXgsIDAsIGNoYW5nZSk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdtb2RpZmllZCc6XG4gICAgICBpZiAoY29tYmluZWRbY2hhbmdlLm9sZEluZGV4XSA9PSBudWxsIHx8IGNvbWJpbmVkW2NoYW5nZS5vbGRJbmRleF0uZG9jLnJlZi5pc0VxdWFsKGNoYW5nZS5kb2MucmVmKSkge1xuICAgICAgICAvLyBXaGVuIGFuIGl0ZW0gY2hhbmdlcyBwb3NpdGlvbiB3ZSBmaXJzdCByZW1vdmUgaXRcbiAgICAgICAgLy8gYW5kIHRoZW4gYWRkIGl0J3MgbmV3IHBvc2l0aW9uXG4gICAgICAgIGlmIChjaGFuZ2Uub2xkSW5kZXggIT09IGNoYW5nZS5uZXdJbmRleCkge1xuICAgICAgICAgIGNvbnN0IGNvcGllZEFycmF5ID0gY29tYmluZWQuc2xpY2UoKTtcbiAgICAgICAgICBjb3BpZWRBcnJheS5zcGxpY2UoY2hhbmdlLm9sZEluZGV4LCAxKTtcbiAgICAgICAgICBjb3BpZWRBcnJheS5zcGxpY2UoY2hhbmdlLm5ld0luZGV4LCAwLCBjaGFuZ2UpO1xuICAgICAgICAgIHJldHVybiBjb3BpZWRBcnJheTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gc2xpY2VBbmRTcGxpY2UoY29tYmluZWQsIGNoYW5nZS5uZXdJbmRleCwgMSwgY2hhbmdlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncmVtb3ZlZCc6XG4gICAgICBpZiAoY29tYmluZWRbY2hhbmdlLm9sZEluZGV4XT8uZG9jLnJlZi5pc0VxdWFsKGNoYW5nZS5kb2MucmVmKSkge1xuICAgICAgICByZXR1cm4gc2xpY2VBbmRTcGxpY2UoY29tYmluZWQsIGNoYW5nZS5vbGRJbmRleCwgMSk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gY29tYmluZWQ7XG59XG4iXX0=
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
|
|
2
2
|
import { ɵzoneWrap } from '@angular/fire';
|
|
3
|
-
import {
|
|
3
|
+
import { auditTrail as _auditTrail, changeToData as _changeToData, fromRef as _fromRef, list as _list, listVal as _listVal, object as _object, objectVal as _objectVal, stateChanges as _stateChanges } from 'rxfire/database';
|
|
4
4
|
export { ListenEvent, ListenerMethods } from 'rxfire/database';
|
|
5
|
+
export const auditTrail = ɵzoneWrap(_auditTrail, true);
|
|
6
|
+
export const changeToData = ɵzoneWrap(_changeToData, true);
|
|
5
7
|
export const fromRef = ɵzoneWrap(_fromRef, true);
|
|
6
|
-
export const stateChanges = ɵzoneWrap(_stateChanges, true);
|
|
7
8
|
export const list = ɵzoneWrap(_list, true);
|
|
8
9
|
export const listVal = ɵzoneWrap(_listVal, true);
|
|
9
|
-
export const auditTrail = ɵzoneWrap(_auditTrail, true);
|
|
10
10
|
export const object = ɵzoneWrap(_object, true);
|
|
11
11
|
export const objectVal = ɵzoneWrap(_objectVal, true);
|
|
12
|
-
export const
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
export const stateChanges = ɵzoneWrap(_stateChanges, true);
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhmaXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3J4ZmlyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsVUFBVSxJQUFJLFdBQVcsRUFDekIsWUFBWSxJQUFJLGFBQWEsRUFDN0IsT0FBTyxJQUFJLFFBQVEsRUFDbkIsSUFBSSxJQUFJLEtBQUssRUFDYixPQUFPLElBQUksUUFBUSxFQUNuQixNQUFNLElBQUksT0FBTyxFQUNqQixTQUFTLElBQUksVUFBVSxFQUN2QixZQUFZLElBQUksYUFBYSxFQUM5QixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsZUFBZSxFQUNoQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzNDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRE8gTk9UIE1PRElGWSwgdGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgdG9vbHMvYnVpbGQudHNcbmltcG9ydCB7IMm1em9uZVdyYXAgfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7XG4gIGF1ZGl0VHJhaWwgYXMgX2F1ZGl0VHJhaWwsXG4gIGNoYW5nZVRvRGF0YSBhcyBfY2hhbmdlVG9EYXRhLFxuICBmcm9tUmVmIGFzIF9mcm9tUmVmLFxuICBsaXN0IGFzIF9saXN0LFxuICBsaXN0VmFsIGFzIF9saXN0VmFsLFxuICBvYmplY3QgYXMgX29iamVjdCxcbiAgb2JqZWN0VmFsIGFzIF9vYmplY3RWYWwsXG4gIHN0YXRlQ2hhbmdlcyBhcyBfc3RhdGVDaGFuZ2VzXG59IGZyb20gJ3J4ZmlyZS9kYXRhYmFzZSc7XG5cbmV4cG9ydCB7XG4gIExpc3RlbkV2ZW50LFxuICBMaXN0ZW5lck1ldGhvZHNcbn0gZnJvbSAncnhmaXJlL2RhdGFiYXNlJztcblxuZXhwb3J0IGNvbnN0IGF1ZGl0VHJhaWwgPSDJtXpvbmVXcmFwKF9hdWRpdFRyYWlsLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBjaGFuZ2VUb0RhdGEgPSDJtXpvbmVXcmFwKF9jaGFuZ2VUb0RhdGEsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGZyb21SZWYgPSDJtXpvbmVXcmFwKF9mcm9tUmVmLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBsaXN0ID0gybV6b25lV3JhcChfbGlzdCwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgbGlzdFZhbCA9IMm1em9uZVdyYXAoX2xpc3RWYWwsIHRydWUpO1xuZXhwb3J0IGNvbnN0IG9iamVjdCA9IMm1em9uZVdyYXAoX29iamVjdCwgdHJ1ZSk7XG5leHBvcnQgY29uc3Qgb2JqZWN0VmFsID0gybV6b25lV3JhcChfb2JqZWN0VmFsLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBzdGF0ZUNoYW5nZXMgPSDJtXpvbmVXcmFwKF9zdGF0ZUNoYW5nZXMsIHRydWUpO1xuIl19
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
|
|
2
2
|
import { ɵzoneWrap } from '@angular/fire';
|
|
3
|
-
import { collection as _collection,
|
|
3
|
+
import { collection as _collection, collectionCount as _collectionCount, collectionCountSnap as _collectionCountSnap, collectionData as _collectionData, doc as _doc, docData as _docData, fromRef as _fromRef, snapToData as _snapToData } from 'rxfire/firestore/lite';
|
|
4
4
|
export const collectionSnapshots = ɵzoneWrap(_collection, true);
|
|
5
|
-
export const collectionData = ɵzoneWrap(_collectionData, true);
|
|
6
|
-
export const collectionCountSnap = ɵzoneWrap(_collectionCountSnap, true);
|
|
7
5
|
export const collectionCount = ɵzoneWrap(_collectionCount, true);
|
|
6
|
+
export const collectionCountSnap = ɵzoneWrap(_collectionCountSnap, true);
|
|
7
|
+
export const collectionData = ɵzoneWrap(_collectionData, true);
|
|
8
8
|
export const docSnapshots = ɵzoneWrap(_doc, true);
|
|
9
9
|
export const docData = ɵzoneWrap(_docData, true);
|
|
10
|
-
export const snapToData = ɵzoneWrap(_snapToData, true);
|
|
11
10
|
export const fromRef = ɵzoneWrap(_fromRef, true);
|
|
12
|
-
|
|
11
|
+
export const snapToData = ɵzoneWrap(_snapToData, true);
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhmaXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ZpcmVzdG9yZS9saXRlL3J4ZmlyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsVUFBVSxJQUFJLFdBQVcsRUFDekIsZUFBZSxJQUFJLGdCQUFnQixFQUNuQyxtQkFBbUIsSUFBSSxvQkFBb0IsRUFDM0MsY0FBYyxJQUFJLGVBQWUsRUFDakMsR0FBRyxJQUFJLElBQUksRUFDWCxPQUFPLElBQUksUUFBUSxFQUNuQixPQUFPLElBQUksUUFBUSxFQUNuQixVQUFVLElBQUksV0FBVyxFQUMxQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDaEUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDL0QsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBETyBOT1QgTU9ESUZZLCB0aGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSB0b29scy9idWlsZC50c1xuaW1wb3J0IHsgybV6b25lV3JhcCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHtcbiAgY29sbGVjdGlvbiBhcyBfY29sbGVjdGlvbixcbiAgY29sbGVjdGlvbkNvdW50IGFzIF9jb2xsZWN0aW9uQ291bnQsXG4gIGNvbGxlY3Rpb25Db3VudFNuYXAgYXMgX2NvbGxlY3Rpb25Db3VudFNuYXAsXG4gIGNvbGxlY3Rpb25EYXRhIGFzIF9jb2xsZWN0aW9uRGF0YSxcbiAgZG9jIGFzIF9kb2MsXG4gIGRvY0RhdGEgYXMgX2RvY0RhdGEsXG4gIGZyb21SZWYgYXMgX2Zyb21SZWYsXG4gIHNuYXBUb0RhdGEgYXMgX3NuYXBUb0RhdGFcbn0gZnJvbSAncnhmaXJlL2ZpcmVzdG9yZS9saXRlJztcblxuZXhwb3J0IGNvbnN0IGNvbGxlY3Rpb25TbmFwc2hvdHMgPSDJtXpvbmVXcmFwKF9jb2xsZWN0aW9uLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBjb2xsZWN0aW9uQ291bnQgPSDJtXpvbmVXcmFwKF9jb2xsZWN0aW9uQ291bnQsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGNvbGxlY3Rpb25Db3VudFNuYXAgPSDJtXpvbmVXcmFwKF9jb2xsZWN0aW9uQ291bnRTbmFwLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBjb2xsZWN0aW9uRGF0YSA9IMm1em9uZVdyYXAoX2NvbGxlY3Rpb25EYXRhLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBkb2NTbmFwc2hvdHMgPSDJtXpvbmVXcmFwKF9kb2MsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGRvY0RhdGEgPSDJtXpvbmVXcmFwKF9kb2NEYXRhLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBmcm9tUmVmID0gybV6b25lV3JhcChfZnJvbVJlZiwgdHJ1ZSk7XG5leHBvcnQgY29uc3Qgc25hcFRvRGF0YSA9IMm1em9uZVdyYXAoX3NuYXBUb0RhdGEsIHRydWUpO1xuIl19
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
|
|
2
2
|
import { ɵzoneWrap } from '@angular/fire';
|
|
3
|
-
import {
|
|
4
|
-
export const collectionChanges = ɵzoneWrap(_collectionChanges, true);
|
|
5
|
-
export const collectionSnapshots = ɵzoneWrap(_collection, true);
|
|
6
|
-
export const sortedChanges = ɵzoneWrap(_sortedChanges, true);
|
|
3
|
+
import { auditTrail as _auditTrail, collection as _collection, collectionChanges as _collectionChanges, collectionCount as _collectionCount, collectionCountSnap as _collectionCountSnap, collectionData as _collectionData, doc as _doc, docData as _docData, fromRef as _fromRef, snapToData as _snapToData, sortedChanges as _sortedChanges } from 'rxfire/firestore';
|
|
7
4
|
export const auditTrail = ɵzoneWrap(_auditTrail, true);
|
|
8
|
-
export const
|
|
9
|
-
export const
|
|
5
|
+
export const collectionSnapshots = ɵzoneWrap(_collection, true);
|
|
6
|
+
export const collectionChanges = ɵzoneWrap(_collectionChanges, true);
|
|
10
7
|
export const collectionCount = ɵzoneWrap(_collectionCount, true);
|
|
8
|
+
export const collectionCountSnap = ɵzoneWrap(_collectionCountSnap, true);
|
|
9
|
+
export const collectionData = ɵzoneWrap(_collectionData, true);
|
|
11
10
|
export const docSnapshots = ɵzoneWrap(_doc, true);
|
|
12
11
|
export const docData = ɵzoneWrap(_docData, true);
|
|
13
|
-
export const snapToData = ɵzoneWrap(_snapToData, true);
|
|
14
12
|
export const fromRef = ɵzoneWrap(_fromRef, true);
|
|
15
|
-
|
|
13
|
+
export const snapToData = ɵzoneWrap(_snapToData, true);
|
|
14
|
+
export const sortedChanges = ɵzoneWrap(_sortedChanges, true);
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhmaXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ZpcmVzdG9yZS9yeGZpcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOERBQThEO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUNMLFVBQVUsSUFBSSxXQUFXLEVBQ3pCLFVBQVUsSUFBSSxXQUFXLEVBQ3pCLGlCQUFpQixJQUFJLGtCQUFrQixFQUN2QyxlQUFlLElBQUksZ0JBQWdCLEVBQ25DLG1CQUFtQixJQUFJLG9CQUFvQixFQUMzQyxjQUFjLElBQUksZUFBZSxFQUNqQyxHQUFHLElBQUksSUFBSSxFQUNYLE9BQU8sSUFBSSxRQUFRLEVBQ25CLE9BQU8sSUFBSSxRQUFRLEVBQ25CLFVBQVUsSUFBSSxXQUFXLEVBQ3pCLGFBQWEsSUFBSSxjQUFjLEVBQ2hDLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNoRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDckUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDL0QsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBETyBOT1QgTU9ESUZZLCB0aGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSB0b29scy9idWlsZC50c1xuaW1wb3J0IHsgybV6b25lV3JhcCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHtcbiAgYXVkaXRUcmFpbCBhcyBfYXVkaXRUcmFpbCxcbiAgY29sbGVjdGlvbiBhcyBfY29sbGVjdGlvbixcbiAgY29sbGVjdGlvbkNoYW5nZXMgYXMgX2NvbGxlY3Rpb25DaGFuZ2VzLFxuICBjb2xsZWN0aW9uQ291bnQgYXMgX2NvbGxlY3Rpb25Db3VudCxcbiAgY29sbGVjdGlvbkNvdW50U25hcCBhcyBfY29sbGVjdGlvbkNvdW50U25hcCxcbiAgY29sbGVjdGlvbkRhdGEgYXMgX2NvbGxlY3Rpb25EYXRhLFxuICBkb2MgYXMgX2RvYyxcbiAgZG9jRGF0YSBhcyBfZG9jRGF0YSxcbiAgZnJvbVJlZiBhcyBfZnJvbVJlZixcbiAgc25hcFRvRGF0YSBhcyBfc25hcFRvRGF0YSxcbiAgc29ydGVkQ2hhbmdlcyBhcyBfc29ydGVkQ2hhbmdlc1xufSBmcm9tICdyeGZpcmUvZmlyZXN0b3JlJztcblxuZXhwb3J0IGNvbnN0IGF1ZGl0VHJhaWwgPSDJtXpvbmVXcmFwKF9hdWRpdFRyYWlsLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBjb2xsZWN0aW9uU25hcHNob3RzID0gybV6b25lV3JhcChfY29sbGVjdGlvbiwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgY29sbGVjdGlvbkNoYW5nZXMgPSDJtXpvbmVXcmFwKF9jb2xsZWN0aW9uQ2hhbmdlcywgdHJ1ZSk7XG5leHBvcnQgY29uc3QgY29sbGVjdGlvbkNvdW50ID0gybV6b25lV3JhcChfY29sbGVjdGlvbkNvdW50LCB0cnVlKTtcbmV4cG9ydCBjb25zdCBjb2xsZWN0aW9uQ291bnRTbmFwID0gybV6b25lV3JhcChfY29sbGVjdGlvbkNvdW50U25hcCwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgY29sbGVjdGlvbkRhdGEgPSDJtXpvbmVXcmFwKF9jb2xsZWN0aW9uRGF0YSwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgZG9jU25hcHNob3RzID0gybV6b25lV3JhcChfZG9jLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBkb2NEYXRhID0gybV6b25lV3JhcChfZG9jRGF0YSwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgZnJvbVJlZiA9IMm1em9uZVdyYXAoX2Zyb21SZWYsIHRydWUpO1xuZXhwb3J0IGNvbnN0IHNuYXBUb0RhdGEgPSDJtXpvbmVXcmFwKF9zbmFwVG9EYXRhLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBzb3J0ZWRDaGFuZ2VzID0gybV6b25lV3JhcChfc29ydGVkQ2hhbmdlcywgdHJ1ZSk7XG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
|
|
2
2
|
import { ɵzoneWrap } from '@angular/fire';
|
|
3
|
-
import { traceUntil as _traceUntil,
|
|
3
|
+
import { traceUntil as _traceUntil, traceUntilComplete as _traceUntilComplete, traceUntilFirst as _traceUntilFirst, traceWhile as _traceWhile } from 'rxfire/performance';
|
|
4
4
|
export const traceUntil = ɵzoneWrap(_traceUntil, true);
|
|
5
|
-
export const traceWhile = ɵzoneWrap(_traceWhile, true);
|
|
6
5
|
export const traceUntilComplete = ɵzoneWrap(_traceUntilComplete, true);
|
|
7
6
|
export const traceUntilFirst = ɵzoneWrap(_traceUntilFirst, true);
|
|
8
|
-
|
|
7
|
+
export const traceWhile = ɵzoneWrap(_traceWhile, true);
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhmaXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BlcmZvcm1hbmNlL3J4ZmlyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsVUFBVSxJQUFJLFdBQVcsRUFDekIsa0JBQWtCLElBQUksbUJBQW1CLEVBQ3pDLGVBQWUsSUFBSSxnQkFBZ0IsRUFDbkMsVUFBVSxJQUFJLFdBQVcsRUFDMUIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2RCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxTQUFTLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIERPIE5PVCBNT0RJRlksIHRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IHRvb2xzL2J1aWxkLnRzXG5pbXBvcnQgeyDJtXpvbmVXcmFwIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZSc7XG5pbXBvcnQge1xuICB0cmFjZVVudGlsIGFzIF90cmFjZVVudGlsLFxuICB0cmFjZVVudGlsQ29tcGxldGUgYXMgX3RyYWNlVW50aWxDb21wbGV0ZSxcbiAgdHJhY2VVbnRpbEZpcnN0IGFzIF90cmFjZVVudGlsRmlyc3QsXG4gIHRyYWNlV2hpbGUgYXMgX3RyYWNlV2hpbGVcbn0gZnJvbSAncnhmaXJlL3BlcmZvcm1hbmNlJztcblxuZXhwb3J0IGNvbnN0IHRyYWNlVW50aWwgPSDJtXpvbmVXcmFwKF90cmFjZVVudGlsLCB0cnVlKTtcbmV4cG9ydCBjb25zdCB0cmFjZVVudGlsQ29tcGxldGUgPSDJtXpvbmVXcmFwKF90cmFjZVVudGlsQ29tcGxldGUsIHRydWUpO1xuZXhwb3J0IGNvbnN0IHRyYWNlVW50aWxGaXJzdCA9IMm1em9uZVdyYXAoX3RyYWNlVW50aWxGaXJzdCwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgdHJhY2VXaGlsZSA9IMm1em9uZVdyYXAoX3RyYWNlV2hpbGUsIHRydWUpO1xuIl19
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
|
|
2
2
|
import { ɵzoneWrap } from '@angular/fire';
|
|
3
|
-
import {
|
|
4
|
-
export const getValueChanges = ɵzoneWrap(_getValue, true);
|
|
5
|
-
export const getStringChanges = ɵzoneWrap(_getString, true);
|
|
6
|
-
export const getNumberChanges = ɵzoneWrap(_getNumber, true);
|
|
7
|
-
export const getBooleanChanges = ɵzoneWrap(_getBoolean, true);
|
|
3
|
+
import { getAll as _getAll, getBoolean as _getBoolean, getNumber as _getNumber, getString as _getString, getValue as _getValue } from 'rxfire/remote-config';
|
|
8
4
|
export const getAllChanges = ɵzoneWrap(_getAll, true);
|
|
9
|
-
|
|
5
|
+
export const getBooleanChanges = ɵzoneWrap(_getBoolean, true);
|
|
6
|
+
export const getNumberChanges = ɵzoneWrap(_getNumber, true);
|
|
7
|
+
export const getStringChanges = ɵzoneWrap(_getString, true);
|
|
8
|
+
export const getValueChanges = ɵzoneWrap(_getValue, true);
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhmaXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3JlbW90ZS1jb25maWcvcnhmaXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhEQUE4RDtBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFDTCxNQUFNLElBQUksT0FBTyxFQUNqQixVQUFVLElBQUksV0FBVyxFQUN6QixTQUFTLElBQUksVUFBVSxFQUN2QixTQUFTLElBQUksVUFBVSxFQUN2QixRQUFRLElBQUksU0FBUyxFQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRE8gTk9UIE1PRElGWSwgdGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgdG9vbHMvYnVpbGQudHNcbmltcG9ydCB7IMm1em9uZVdyYXAgfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7XG4gIGdldEFsbCBhcyBfZ2V0QWxsLFxuICBnZXRCb29sZWFuIGFzIF9nZXRCb29sZWFuLFxuICBnZXROdW1iZXIgYXMgX2dldE51bWJlcixcbiAgZ2V0U3RyaW5nIGFzIF9nZXRTdHJpbmcsXG4gIGdldFZhbHVlIGFzIF9nZXRWYWx1ZVxufSBmcm9tICdyeGZpcmUvcmVtb3RlLWNvbmZpZyc7XG5cbmV4cG9ydCBjb25zdCBnZXRBbGxDaGFuZ2VzID0gybV6b25lV3JhcChfZ2V0QWxsLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBnZXRCb29sZWFuQ2hhbmdlcyA9IMm1em9uZVdyYXAoX2dldEJvb2xlYW4sIHRydWUpO1xuZXhwb3J0IGNvbnN0IGdldE51bWJlckNoYW5nZXMgPSDJtXpvbmVXcmFwKF9nZXROdW1iZXIsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGdldFN0cmluZ0NoYW5nZXMgPSDJtXpvbmVXcmFwKF9nZXRTdHJpbmcsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGdldFZhbHVlQ2hhbmdlcyA9IMm1em9uZVdyYXAoX2dldFZhbHVlLCB0cnVlKTtcbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
|
|
2
2
|
export * from 'firebase/vertexai-preview';
|
|
3
3
|
import { ɵzoneWrap } from '@angular/fire';
|
|
4
|
-
import {
|
|
5
|
-
export const getVertexAI = ɵzoneWrap(_getVertexAI, true);
|
|
4
|
+
import { getGenerativeModel as _getGenerativeModel, getVertexAI as _getVertexAI } from 'firebase/vertexai-preview';
|
|
6
5
|
export const getGenerativeModel = ɵzoneWrap(_getGenerativeModel, true);
|
|
7
|
-
|
|
6
|
+
export const getVertexAI = ɵzoneWrap(_getVertexAI, true);
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdmVydGV4YWktcHJldmlldy9maXJlYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFDOUQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFDTCxrQkFBa0IsSUFBSSxtQkFBbUIsRUFDekMsV0FBVyxJQUFJLFlBQVksRUFDNUIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxTQUFTLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBETyBOT1QgTU9ESUZZLCB0aGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSB0b29scy9idWlsZC50c1xuZXhwb3J0ICogZnJvbSAnZmlyZWJhc2UvdmVydGV4YWktcHJldmlldyc7XG5pbXBvcnQgeyDJtXpvbmVXcmFwIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZSc7XG5pbXBvcnQge1xuICBnZXRHZW5lcmF0aXZlTW9kZWwgYXMgX2dldEdlbmVyYXRpdmVNb2RlbCxcbiAgZ2V0VmVydGV4QUkgYXMgX2dldFZlcnRleEFJXG59IGZyb20gJ2ZpcmViYXNlL3ZlcnRleGFpLXByZXZpZXcnO1xuXG5leHBvcnQgY29uc3QgZ2V0R2VuZXJhdGl2ZU1vZGVsID0gybV6b25lV3JhcChfZ2V0R2VuZXJhdGl2ZU1vZGVsLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBnZXRWZXJ0ZXhBSSA9IMm1em9uZVdyYXAoX2dldFZlcnRleEFJLCB0cnVlKTtcbiJdfQ==
|
package/esm2022/zones.mjs
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
2
|
-
import { Injectable, NgZone } from '@angular/core';
|
|
2
|
+
import { ExperimentalPendingTasks, Injectable, NgZone } from '@angular/core';
|
|
3
3
|
import { Observable, asyncScheduler, queueScheduler } from 'rxjs';
|
|
4
4
|
import { observeOn, subscribeOn, tap } from 'rxjs/operators';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
7
|
-
function noop() {
|
|
8
|
-
}
|
|
9
6
|
/**
|
|
10
7
|
* Schedules tasks so that they are invoked inside the Zone that is passed in the constructor.
|
|
11
8
|
*/
|
|
@@ -24,9 +21,14 @@ export class ɵZoneScheduler {
|
|
|
24
21
|
// Wrap the specified work function to make sure that if nested scheduling takes place the
|
|
25
22
|
// work is executed in the correct zone
|
|
26
23
|
const workInZone = function (state) {
|
|
27
|
-
targetZone
|
|
24
|
+
if (targetZone) {
|
|
25
|
+
targetZone.runGuarded(() => {
|
|
26
|
+
work.apply(this, [state]);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
28
30
|
work.apply(this, [state]);
|
|
29
|
-
}
|
|
31
|
+
}
|
|
30
32
|
};
|
|
31
33
|
// Scheduling itself needs to be run in zone to ensure setInterval calls for async scheduling are done
|
|
32
34
|
// inside the correct zone. This scheduler needs to schedule asynchronously always to ensure that
|
|
@@ -36,41 +38,32 @@ export class ɵZoneScheduler {
|
|
|
36
38
|
}
|
|
37
39
|
class BlockUntilFirstOperator {
|
|
38
40
|
zone;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
constructor(zone) {
|
|
41
|
+
pendingTasks;
|
|
42
|
+
constructor(zone, pendingTasks) {
|
|
42
43
|
this.zone = zone;
|
|
44
|
+
this.pendingTasks = pendingTasks;
|
|
43
45
|
}
|
|
44
46
|
call(subscriber, source) {
|
|
45
|
-
const
|
|
46
|
-
// @ts-ignore
|
|
47
|
-
this.task = this.zone.run(() => Zone.current.scheduleMacroTask('firebaseZoneBlock', noop, {}, noop, noop));
|
|
48
|
-
return source.pipe(tap({ next: unscheduleTask, complete: unscheduleTask, error: unscheduleTask })).subscribe(subscriber).add(unscheduleTask);
|
|
49
|
-
}
|
|
50
|
-
unscheduleTask() {
|
|
47
|
+
const taskDone = this.zone.run(() => this.pendingTasks.add());
|
|
51
48
|
// maybe this is a race condition, invoke in a timeout
|
|
52
49
|
// hold for 10ms while I try to figure out what is going on
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
this.task.invoke();
|
|
56
|
-
this.task = null;
|
|
57
|
-
}
|
|
58
|
-
}, 10);
|
|
50
|
+
const unscheduleTask = () => setTimeout(taskDone, 10);
|
|
51
|
+
return source.pipe(tap({ next: unscheduleTask, complete: unscheduleTask, error: unscheduleTask })).subscribe(subscriber).add(unscheduleTask);
|
|
59
52
|
}
|
|
60
53
|
}
|
|
61
54
|
export class ɵAngularFireSchedulers {
|
|
62
55
|
ngZone;
|
|
56
|
+
pendingTasks;
|
|
63
57
|
outsideAngular;
|
|
64
58
|
insideAngular;
|
|
65
|
-
constructor(ngZone) {
|
|
59
|
+
constructor(ngZone, pendingTasks) {
|
|
66
60
|
this.ngZone = ngZone;
|
|
67
|
-
|
|
68
|
-
this.outsideAngular = ngZone.runOutsideAngular(() => new ɵZoneScheduler(Zone.current));
|
|
69
|
-
|
|
70
|
-
this.insideAngular = ngZone.run(() => new ɵZoneScheduler(Zone.current, asyncScheduler));
|
|
61
|
+
this.pendingTasks = pendingTasks;
|
|
62
|
+
this.outsideAngular = ngZone.runOutsideAngular(() => new ɵZoneScheduler(typeof Zone === 'undefined' ? undefined : Zone.current));
|
|
63
|
+
this.insideAngular = ngZone.run(() => new ɵZoneScheduler(typeof Zone === 'undefined' ? undefined : Zone.current, asyncScheduler));
|
|
71
64
|
globalThis.ɵAngularFireScheduler ||= this;
|
|
72
65
|
}
|
|
73
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ɵAngularFireSchedulers, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
66
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ɵAngularFireSchedulers, deps: [{ token: i0.NgZone }, { token: i0.ExperimentalPendingTasks }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
74
67
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ɵAngularFireSchedulers, providedIn: 'root' });
|
|
75
68
|
}
|
|
76
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ɵAngularFireSchedulers, decorators: [{
|
|
@@ -78,7 +71,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
78
71
|
args: [{
|
|
79
72
|
providedIn: 'root',
|
|
80
73
|
}]
|
|
81
|
-
}], ctorParameters: () => [{ type: i0.NgZone }] });
|
|
74
|
+
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ExperimentalPendingTasks }] });
|
|
82
75
|
function getSchedulers() {
|
|
83
76
|
const schedulers = globalThis.ɵAngularFireScheduler;
|
|
84
77
|
if (!schedulers) {
|
|
@@ -110,7 +103,7 @@ export function keepUnstableUntilFirst(obs$) {
|
|
|
110
103
|
*/
|
|
111
104
|
export function ɵkeepUnstableUntilFirstFactory(schedulers) {
|
|
112
105
|
return function keepUnstableUntilFirst(obs$) {
|
|
113
|
-
obs$ = obs$.lift(new BlockUntilFirstOperator(schedulers.ngZone));
|
|
106
|
+
obs$ = obs$.lift(new BlockUntilFirstOperator(schedulers.ngZone, schedulers.pendingTasks));
|
|
114
107
|
return obs$.pipe(
|
|
115
108
|
// Run the subscribe body outside of Angular (e.g. calling Firebase SDK to add a listener to a change event)
|
|
116
109
|
subscribeOn(schedulers.outsideAngular),
|
|
@@ -121,39 +114,28 @@ export function ɵkeepUnstableUntilFirstFactory(schedulers) {
|
|
|
121
114
|
);
|
|
122
115
|
};
|
|
123
116
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
// function() is needed for the arguments object
|
|
129
|
-
return function () {
|
|
130
|
-
const _arguments = arguments;
|
|
131
|
-
if (macrotask) {
|
|
132
|
-
setTimeout(() => {
|
|
133
|
-
if (macrotask.state === 'scheduled') {
|
|
134
|
-
macrotask.invoke();
|
|
135
|
-
}
|
|
136
|
-
}, 10);
|
|
117
|
+
const zoneWrapFn = (it, taskDone) => {
|
|
118
|
+
return (...args) => {
|
|
119
|
+
if (taskDone) {
|
|
120
|
+
setTimeout(taskDone, 10);
|
|
137
121
|
}
|
|
138
|
-
return run(() => it.apply(
|
|
122
|
+
return run(() => it.apply(this, args));
|
|
139
123
|
};
|
|
140
124
|
};
|
|
141
125
|
export const ɵzoneWrap = (it, blockUntilFirst) => {
|
|
142
126
|
// function() is needed for the arguments object
|
|
143
127
|
return function () {
|
|
144
|
-
|
|
145
|
-
let macrotask;
|
|
128
|
+
let taskDone;
|
|
146
129
|
const _arguments = arguments;
|
|
147
|
-
// if this is a callback function, e.g, onSnapshot, we should create a
|
|
130
|
+
// if this is a callback function, e.g, onSnapshot, we should create a pending task and complete it
|
|
148
131
|
// only once one of the callback functions is tripped.
|
|
149
132
|
for (let i = 0; i < arguments.length; i++) {
|
|
150
133
|
if (typeof _arguments[i] === 'function') {
|
|
151
134
|
if (blockUntilFirst) {
|
|
152
|
-
|
|
153
|
-
macrotask ||= run(() => Zone.current.scheduleMacroTask('firebaseZoneBlock', noop, {}, noop, noop));
|
|
135
|
+
taskDone ||= run(() => getSchedulers().pendingTasks.add());
|
|
154
136
|
}
|
|
155
137
|
// TODO create a microtask to track callback functions
|
|
156
|
-
_arguments[i] = zoneWrapFn(_arguments[i],
|
|
138
|
+
_arguments[i] = zoneWrapFn(_arguments[i], taskDone);
|
|
157
139
|
}
|
|
158
140
|
}
|
|
159
141
|
const ret = runOutsideAngular(() => it.apply(this, _arguments));
|
|
@@ -171,17 +153,15 @@ export const ɵzoneWrap = (it, blockUntilFirst) => {
|
|
|
171
153
|
}
|
|
172
154
|
else if (ret instanceof Promise) {
|
|
173
155
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
174
|
-
return run(() => new Promise((resolve, reject) =>
|
|
156
|
+
return run(() => new Promise((resolve, reject) => {
|
|
157
|
+
ret.then((it) => run(() => resolve(it)), (reason) => run(() => reject(reason)));
|
|
158
|
+
}));
|
|
175
159
|
}
|
|
176
|
-
else if (typeof ret === 'function' &&
|
|
160
|
+
else if (typeof ret === 'function' && taskDone) {
|
|
177
161
|
// Handle unsubscribe
|
|
178
162
|
// function() is needed for the arguments object
|
|
179
163
|
return function () {
|
|
180
|
-
setTimeout(
|
|
181
|
-
if (macrotask && macrotask.state === 'scheduled') {
|
|
182
|
-
macrotask.invoke();
|
|
183
|
-
}
|
|
184
|
-
}, 10);
|
|
164
|
+
setTimeout(taskDone, 10);
|
|
185
165
|
return ret.apply(this, arguments);
|
|
186
166
|
};
|
|
187
167
|
}
|
|
@@ -191,4 +171,4 @@ export const ɵzoneWrap = (it, blockUntilFirst) => {
|
|
|
191
171
|
}
|
|
192
172
|
};
|
|
193
173
|
};
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvem9uZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFDTCxVQUFVLEVBT1YsY0FBYyxFQUNkLGNBQWMsRUFDZixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUU3RCxnRUFBZ0U7QUFDaEUsU0FBUyxJQUFJO0FBQ2IsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFDTDtJQUFtQjtJQUF2QyxZQUFvQixJQUFTLEVBQVUsV0FBZ0IsY0FBYztRQUFqRCxTQUFJLEdBQUosSUFBSSxDQUFLO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7SUFDckUsQ0FBQztJQUVELEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUF1RCxFQUFFLEtBQWMsRUFBRSxLQUFXO1FBQzNGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDN0IsMEZBQTBGO1FBQzFGLHVDQUF1QztRQUN2QyxNQUFNLFVBQVUsR0FBRyxVQUFxQyxLQUFVO1lBQ2hFLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixzR0FBc0c7UUFDdEcsaUdBQWlHO1FBQ2pHLCtHQUErRztRQUMvRyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxL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RTtvQkFDZCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsS0FBSyxLQUFLLFdBQVcsRUFBRSxDQUFDO3dCQUNqRCxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3JCLENBQUM7Z0JBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNQLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixvRkFBb0Y7WUFDcEYsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQVEsQ0FBQztBQUNYLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudCAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBPcGVyYXRvcixcbiAgU2NoZWR1bGVyQWN0aW9uLFxuICBTY2hlZHVsZXJMaWtlLFxuICBTdWJzY3JpYmVyLFxuICBTdWJzY3JpcHRpb24sXG4gIFRlYXJkb3duTG9naWMsXG4gIGFzeW5jU2NoZWR1bGVyLFxuICBxdWV1ZVNjaGVkdWxlclxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG9ic2VydmVPbiwgc3Vic2NyaWJlT24sIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuZnVuY3Rpb24gbm9vcCgpIHtcbn1cblxuLyoqXG4gKiBTY2hlZHVsZXMgdGFza3Mgc28gdGhhdCB0aGV5IGFyZSBpbnZva2VkIGluc2lkZSB0aGUgWm9uZSB0aGF0IGlzIHBhc3NlZCBpbiB0aGUgY29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCBjbGFzcyDJtVpvbmVTY2hlZHVsZXIgaW1wbGVtZW50cyBTY2hlZHVsZXJMaWtlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBhbnksIHByaXZhdGUgZGVsZWdhdGU6IGFueSA9IHF1ZXVlU2NoZWR1bGVyKSB7XG4gIH1cblxuICBub3coKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZWdhdGUubm93KCk7XG4gIH1cblxuICBzY2hlZHVsZSh3b3JrOiAodGhpczogU2NoZWR1bGVyQWN0aW9uPGFueT4sIHN0YXRlPzogYW55KSA9PiB2b2lkLCBkZWxheT86IG51bWJlciwgc3RhdGU/OiBhbnkpOiBTdWJzY3JpcHRpb24ge1xuICAgIGNvbnN0IHRhcmdldFpvbmUgPSB0aGlzLnpvbmU7XG4gICAgLy8gV3JhcCB0aGUgc3BlY2lmaWVkIHdvcmsgZnVuY3Rpb24gdG8gbWFrZSBzdXJlIHRoYXQgaWYgbmVzdGVkIHNjaGVkdWxpbmcgdGFrZXMgcGxhY2UgdGhlXG4gICAgLy8gd29yayBpcyBleGVjdXRlZCBpbiB0aGUgY29ycmVjdCB6b25lXG4gICAgY29uc3Qgd29ya0luWm9uZSA9IGZ1bmN0aW9uKHRoaXM6IFNjaGVkdWxlckFjdGlvbjxhbnk+LCBzdGF0ZTogYW55KSB7XG4gICAgICB0YXJnZXRab25lLnJ1bkd1YXJkZWQoKCkgPT4ge1xuICAgICAgICB3b3JrLmFwcGx5KHRoaXMsIFtzdGF0ZV0pO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8vIFNjaGVkdWxpbmcgaXRzZWxmIG5lZWRzIHRvIGJlIHJ1biBpbiB6b25lIHRvIGVuc3VyZSBzZXRJbnRlcnZhbCBjYWxscyBmb3IgYXN5bmMgc2NoZWR1bGluZyBhcmUgZG9uZVxuICAgIC8vIGluc2lkZSB0aGUgY29ycmVjdCB6b25lLiBUaGlzIHNjaGVkdWxlciBuZWVkcyB0byBzY2hlZHVsZSBhc3luY2hyb25vdXNseSBhbHdheXMgdG8gZW5zdXJlIHRoYXRcbiAgICAvLyBmaXJlYmFzZSBlbWlzc2lvbnMgYXJlIG5ldmVyIHN5bmNocm9ub3VzLiBTcGVjaWZ5aW5nIGEgZGVsYXkgY2F1c2VzIGlzc3VlcyB3aXRoIHRoZSBxdWV1ZVNjaGVkdWxlciBkZWxlZ2F0ZS5cbiAgICByZXR1cm4gdGhpcy5kZWxlZ2F0ZS5zY2hlZHVsZSh3b3JrSW5ab25lLCBkZWxheSwgc3RhdGUpO1xuICB9XG59XG5cbmNsYXNzIEJsb2NrVW50aWxGaXJzdE9wZXJhdG9yPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICAvLyBAdHMtaWdub3JlXG4gIHByaXZhdGUgdGFzazogTWFjcm9UYXNrIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBhbnkpIHtcbiAgfVxuXG4gIGNhbGwoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUPiwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KTogVGVhcmRvd25Mb2dpYyB7XG4gICAgY29uc3QgdW5zY2hlZHVsZVRhc2sgPSB0aGlzLnVuc2NoZWR1bGVUYXNrLmJpbmQodGhpcyk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMudGFzayA9IHRoaXMuem9uZS5ydW4oKCkgPT4gWm9uZS5jdXJyZW50LnNjaGVkdWxlTWFjcm9UYXNrKCdmaXJlYmFzZVpvbmVCbG9jaycsIG5vb3AsIHt9LCBub29wLCBub29wKSk7XG5cbiAgICByZXR1cm4gc291cmNlLnBpcGUoXG4gICAgICB0YXAoeyBuZXh0OiB1bnNjaGVkdWxlVGFzaywgY29tcGxldGU6IHVuc2NoZWR1bGVUYXNrLCBlcnJvcjogdW5zY2hlZHVsZVRhc2sgfSlcbiAgICApLnN1YnNjcmliZShzdWJzY3JpYmVyKS5hZGQodW5zY2hlZHVsZVRhc2spO1xuICB9XG5cbiAgcHJpdmF0ZSB1bnNjaGVkdWxlVGFzaygpIHtcbiAgICAvLyBtYXliZSB0aGlzIGlzIGEgcmFjZSBjb25kaXRpb24sIGludm9rZSBpbiBhIHRpbWVvdXRcbiAgICAvLyBob2xkIGZvciAxMG1zIHdoaWxlIEkgdHJ5IHRvIGZpZ3VyZSBvdXQgd2hhdCBpcyBnb2luZyBvblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMudGFzayAhPSBudWxsICYmIHRoaXMudGFzay5zdGF0ZSA9PT0gJ3NjaGVkdWxlZCcpIHtcbiAgICAgICAgdGhpcy50YXNrLmludm9rZSgpO1xuICAgICAgICB0aGlzLnRhc2sgPSBudWxsO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMge1xuICBwdWJsaWMgcmVhZG9ubHkgb3V0c2lkZUFuZ3VsYXI6IMm1Wm9uZVNjaGVkdWxlcjtcbiAgcHVibGljIHJlYWRvbmx5IGluc2lkZUFuZ3VsYXI6IMm1Wm9uZVNjaGVkdWxlcjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmdab25lOiBOZ1pvbmUpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5vdXRzaWRlQW5ndWxhciA9IG5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBuZXcgybVab25lU2NoZWR1bGVyKFpvbmUuY3VycmVudCkpO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLmluc2lkZUFuZ3VsYXIgPSBuZ1pvbmUucnVuKCgpID0+IG5ldyDJtVpvbmVTY2hlZHVsZXIoWm9uZS5jdXJyZW50LCBhc3luY1NjaGVkdWxlcikpO1xuICAgIGdsb2JhbFRoaXMuybVBbmd1bGFyRmlyZVNjaGVkdWxlciB8fD0gdGhpcztcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRTY2hlZHVsZXJzKCkge1xuICBjb25zdCBzY2hlZHVsZXJzID0gZ2xvYmFsVGhpcy7JtUFuZ3VsYXJGaXJlU2NoZWR1bGVyIGFzIMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzfHVuZGVmaW5lZDtcbiAgaWYgKCFzY2hlZHVsZXJzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuYEVpdGhlciBBbmd1bGFyRmlyZU1vZHVsZSBoYXMgbm90IGJlZW4gcHJvdmlkZWQgaW4geW91ciBBcHBNb2R1bGUgKHRoaXMgY2FuIGJlIGRvbmUgbWFudWFsbHkgb3IgaW1wbGljdGx5IHVzaW5nXG5wcm92aWRlRmlyZWJhc2VBcHApIG9yIHlvdSdyZSBjYWxsaW5nIGFuIEFuZ3VsYXJGaXJlIG1ldGhvZCBvdXRzaWRlIG9mIGFuIE5nTW9kdWxlICh3aGljaCBpcyBub3Qgc3VwcG9ydGVkKS5gKTtcbiAgfVxuICByZXR1cm4gc2NoZWR1bGVycztcbn1cblxuZnVuY3Rpb24gcnVuT3V0c2lkZUFuZ3VsYXI8VD4oZm46ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQge1xuICByZXR1cm4gZ2V0U2NoZWR1bGVycygpLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBmbigpKTtcbn1cblxuZnVuY3Rpb24gcnVuPFQ+KGZuOiAoLi4uYXJnczogYW55W10pID0+IFQpOiBUIHtcbiAgcmV0dXJuIGdldFNjaGVkdWxlcnMoKS5uZ1pvbmUucnVuKCgpID0+IGZuKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb2JzZXJ2ZU91dHNpZGVBbmd1bGFyPFQ+KG9icyQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIG9icyQucGlwZShvYnNlcnZlT24oZ2V0U2NoZWR1bGVycygpLm91dHNpZGVBbmd1bGFyKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZlSW5zaWRlQW5ndWxhcjxUPihvYnMkOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBvYnMkLnBpcGUob2JzZXJ2ZU9uKGdldFNjaGVkdWxlcnMoKS5pbnNpZGVBbmd1bGFyKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBrZWVwVW5zdGFibGVVbnRpbEZpcnN0PFQ+KG9icyQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIMm1a2VlcFVuc3RhYmxlVW50aWxGaXJzdEZhY3RvcnkoZ2V0U2NoZWR1bGVycygpKShvYnMkKTtcbn1cblxuLyoqXG4gKiBPcGVyYXRvciB0byBibG9jayB0aGUgem9uZSB1bnRpbCB0aGUgZmlyc3QgdmFsdWUgaGFzIGJlZW4gZW1pdHRlZCBvciB0aGUgb2JzZXJ2YWJsZVxuICogaGFzIGNvbXBsZXRlZC9lcnJvcmVkLiBUaGlzIGlzIHVzZWQgdG8gbWFrZSBzdXJlIHRoYXQgdW5pdmVyc2FsIHdhaXRzIHVudGlsIHRoZSBmaXJzdFxuICogdmFsdWUgZnJvbSBmaXJlYmFzZSBidXQgZG9lc24ndCBibG9jayB0aGUgem9uZSBmb3JldmVyIHNpbmNlIHRoZSBmaXJlYmFzZSBzdWJzY3JpcHRpb25cbiAqIGlzIHN0aWxsIGFsaXZlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gybVrZWVwVW5zdGFibGVVbnRpbEZpcnN0RmFjdG9yeShzY2hlZHVsZXJzOiDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycykge1xuICByZXR1cm4gZnVuY3Rpb24ga2VlcFVuc3RhYmxlVW50aWxGaXJzdDxUPihvYnMkOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgb2JzJCA9IG9icyQubGlmdChcbiAgICAgIG5ldyBCbG9ja1VudGlsRmlyc3RPcGVyYXRvcihzY2hlZHVsZXJzLm5nWm9uZSlcbiAgICApO1xuXG4gICAgcmV0dXJuIG9icyQucGlwZShcbiAgICAgIC8vIFJ1biB0aGUgc3Vic2NyaWJlIGJvZHkgb3V0c2lkZSBvZiBBbmd1bGFyIChlLmcuIGNhbGxpbmcgRmlyZWJhc2UgU0RLIHRvIGFkZCBhIGxpc3RlbmVyIHRvIGEgY2hhbmdlIGV2ZW50KVxuICAgICAgc3Vic2NyaWJlT24oc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhciksXG4gICAgICAvLyBSdW4gb3BlcmF0b3JzIGluc2lkZSB0aGUgYW5ndWxhciB6b25lIChlLmcuIHNpZGUgZWZmZWN0cyB2aWEgdGFwKCkpXG4gICAgICBvYnNlcnZlT24oc2NoZWR1bGVycy5pbnNpZGVBbmd1bGFyKVxuICAgICAgLy8gSU5WRVNUSUdBVEUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhcmZpcmUvcHVsbC8yMzE1XG4gICAgICAvLyBzaGFyZSgpXG4gICAgKTtcbiAgfTtcbn1cblxuLy8gQHRzLWlnbm9yZVxuY29uc3Qgem9uZVdyYXBGbiA9IChpdDogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnksIG1hY3JvdGFzazogTWFjcm9UYXNrfHVuZGVmaW5lZCkgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgY29uc3QgX3RoaXMgPSB0aGlzO1xuICAvLyBmdW5jdGlvbigpIGlzIG5lZWRlZCBmb3IgdGhlIGFyZ3VtZW50cyBvYmplY3RcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IF9hcmd1bWVudHMgPSBhcmd1bWVudHM7XG4gICAgaWYgKG1hY3JvdGFzaykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChtYWNyb3Rhc2suc3RhdGUgPT09ICdzY2hlZHVsZWQnKSB7XG4gICAgICAgICAgbWFjcm90YXNrLmludm9rZSgpO1xuICAgICAgICB9XG4gICAgICB9LCAxMCk7XG4gICAgfVxuICAgIHJldHVybiBydW4oKCkgPT4gaXQuYXBwbHkoX3RoaXMsIF9hcmd1bWVudHMpKTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCDJtXpvbmVXcmFwID0gPFQ9IHVua25vd24+KGl0OiBULCBibG9ja1VudGlsRmlyc3Q6IGJvb2xlYW4pOiBUID0+IHtcbiAgLy8gZnVuY3Rpb24oKSBpcyBuZWVkZWQgZm9yIHRoZSBhcmd1bWVudHMgb2JqZWN0XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbGV0IG1hY3JvdGFzazogTWFjcm9UYXNrIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IF9hcmd1bWVudHMgPSBhcmd1bWVudHM7XG4gICAgLy8gaWYgdGhpcyBpcyBhIGNhbGxiYWNrIGZ1bmN0aW9uLCBlLmcsIG9uU25hcHNob3QsIHdlIHNob3VsZCBjcmVhdGUgYSBtaWNyb3Rhc2sgYW5kIGludm9rZSBpdFxuICAgIC8vIG9ubHkgb25jZSBvbmUgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9ucyBpcyB0cmlwcGVkLlxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodHlwZW9mIF9hcmd1bWVudHNbaV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWYgKGJsb2NrVW50aWxGaXJzdCkge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBtYWNyb3Rhc2sgfHw9IHJ1bigoKSA9PiBab25lLmN1cnJlbnQuc2NoZWR1bGVNYWNyb1Rhc2soJ2ZpcmViYXNlWm9uZUJsb2NrJywgbm9vcCwge30sIG5vb3AsIG5vb3ApKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUT0RPIGNyZWF0ZSBhIG1pY3JvdGFzayB0byB0cmFjayBjYWxsYmFjayBmdW5jdGlvbnNcbiAgICAgICAgX2FyZ3VtZW50c1tpXSA9IHpvbmVXcmFwRm4oX2FyZ3VtZW50c1tpXSwgbWFjcm90YXNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcmV0ID0gcnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gKGl0IGFzIGFueSkuYXBwbHkodGhpcywgX2FyZ3VtZW50cykpO1xuICAgIGlmICghYmxvY2tVbnRpbEZpcnN0KSB7XG4gICAgICBpZiAocmV0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgICBjb25zdCBzY2hlZHVsZXJzID0gZ2V0U2NoZWR1bGVycygpO1xuICAgICAgICByZXR1cm4gcmV0LnBpcGUoXG4gICAgICAgICAgc3Vic2NyaWJlT24oc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhciksXG4gICAgICAgICAgb2JzZXJ2ZU9uKHNjaGVkdWxlcnMuaW5zaWRlQW5ndWxhciksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcnVuKCgpID0+IHJldCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChyZXQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICByZXR1cm4gcmV0LnBpcGUoa2VlcFVuc3RhYmxlVW50aWxGaXJzdCkgYXMgYW55O1xuICAgIH0gZWxzZSBpZiAocmV0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1taXN1c2VkLXByb21pc2VzXG4gICAgICByZXR1cm4gcnVuKCgpID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHJldC50aGVuKGl0ID0+IHJ1bigoKSA9PiByZXNvbHZlKGl0KSksIHJlYXNvbiA9PiBydW4oKCkgPT4gcmVqZWN0KHJlYXNvbikpKSkpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJldCA9PT0gJ2Z1bmN0aW9uJyAmJiBtYWNyb3Rhc2spIHtcbiAgICAgIC8vIEhhbmRsZSB1bnN1YnNjcmliZVxuICAgICAgLy8gZnVuY3Rpb24oKSBpcyBuZWVkZWQgZm9yIHRoZSBhcmd1bWVudHMgb2JqZWN0XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmIChtYWNyb3Rhc2sgJiYgbWFjcm90YXNrLnN0YXRlID09PSAnc2NoZWR1bGVkJykge1xuICAgICAgICAgICAgbWFjcm90YXNrLmludm9rZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTApO1xuICAgICAgICByZXR1cm4gcmV0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUT0RPIGhvdyBkbyB3ZSBoYW5kbGUgc3RvcmFnZSB1cGxvYWRzIGluIFpvbmU/IGFuZCBvdGhlciBzdHVmZiB3aXRoIGNhbmNlbCgpIGV0Yz9cbiAgICAgIHJldHVybiBydW4oKCkgPT4gcmV0KTtcbiAgICB9XG4gIH0gYXMgYW55O1xufTtcbiJdfQ==
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvem9uZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsVUFBVSxFQU9WLGNBQWMsRUFDZCxjQUFjLEVBQ2YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFJN0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQUNMO0lBQW1CO0lBQXZDLFlBQW9CLElBQVMsRUFBVSxXQUFnQixjQUFjO1FBQWpELFNBQUksR0FBSixJQUFJLENBQUs7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFzQjtJQUNyRSxDQUFDO0lBRUQsR0FBRztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQXVELEVBQUUsS0FBYyxFQUFFLEtBQVc7UUFDM0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM3QiwwRkFBMEY7UUFDMUYsdUNBQXVDO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLFVBQXFDLEtBQVU7WUFDaEUsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUMs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aW50L2Jhbi10cy1jb21tZW50ICovXG5pbXBvcnQge1xuICBFeHBlcmltZW50YWxQZW5kaW5nVGFza3MsXG4gIEluamVjdGFibGUsXG4gIE5nWm9uZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIE9wZXJhdG9yLFxuICBTY2hlZHVsZXJBY3Rpb24sXG4gIFNjaGVkdWxlckxpa2UsXG4gIFN1YnNjcmliZXIsXG4gIFN1YnNjcmlwdGlvbixcbiAgVGVhcmRvd25Mb2dpYyxcbiAgYXN5bmNTY2hlZHVsZXIsXG4gIHF1ZXVlU2NoZWR1bGVyXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgb2JzZXJ2ZU9uLCBzdWJzY3JpYmVPbiwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5kZWNsYXJlIGNvbnN0IFpvbmU6IHtjdXJyZW50OiB1bmtub3dufSB8IHVuZGVmaW5lZDsgXG5cbi8qKlxuICogU2NoZWR1bGVzIHRhc2tzIHNvIHRoYXQgdGhleSBhcmUgaW52b2tlZCBpbnNpZGUgdGhlIFpvbmUgdGhhdCBpcyBwYXNzZWQgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICovXG5leHBvcnQgY2xhc3MgybVab25lU2NoZWR1bGVyIGltcGxlbWVudHMgU2NoZWR1bGVyTGlrZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogYW55LCBwcml2YXRlIGRlbGVnYXRlOiBhbnkgPSBxdWV1ZVNjaGVkdWxlcikge1xuICB9XG5cbiAgbm93KCkge1xuICAgIHJldHVybiB0aGlzLmRlbGVnYXRlLm5vdygpO1xuICB9XG5cbiAgc2NoZWR1bGUod29yazogKHRoaXM6IFNjaGVkdWxlckFjdGlvbjxhbnk+LCBzdGF0ZT86IGFueSkgPT4gdm9pZCwgZGVsYXk/OiBudW1iZXIsIHN0YXRlPzogYW55KTogU3Vic2NyaXB0aW9uIHtcbiAgICBjb25zdCB0YXJnZXRab25lID0gdGhpcy56b25lO1xuICAgIC8vIFdyYXAgdGhlIHNwZWNpZmllZCB3b3JrIGZ1bmN0aW9uIHRvIG1ha2Ugc3VyZSB0aGF0IGlmIG5lc3RlZCBzY2hlZHVsaW5nIHRha2VzIHBsYWNlIHRoZVxuICAgIC8vIHdvcmsgaXMgZXhlY3V0ZWQgaW4gdGhlIGNvcnJlY3Qgem9uZVxuICAgIGNvbnN0IHdvcmtJblpvbmUgPSBmdW5jdGlvbih0aGlzOiBTY2hlZHVsZXJBY3Rpb248YW55Piwgc3RhdGU6IGFueSkge1xuICAgICAgaWYgKHRhcmdldFpvbmUpIHtcbiAgICAgICAgdGFyZ2V0Wm9uZS5ydW5HdWFyZGVkKCgpID0+IHtcbiAgICAgICAgICB3b3JrLmFwcGx5KHRoaXMsIFtzdGF0ZV0pO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdvcmsuYXBwbHkodGhpcywgW3N0YXRlXSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIFNjaGVkdWxpbmcgaXRzZWxmIG5lZWRzIHRvIGJlIHJ1biBpbiB6b25lIHRvIGVuc3VyZSBzZXRJbnRlcnZhbCBjYWxscyBmb3IgYXN5bmMgc2NoZWR1bGluZyBhcmUgZG9uZVxuICAgIC8vIGluc2lkZSB0aGUgY29ycmVjdCB6b25lLiBUaGlzIHNjaGVkdWxlciBuZWVkcyB0byBzY2hlZHVsZSBhc3luY2hyb25vdXNseSBhbHdheXMgdG8gZW5zdXJlIHRoYXRcbiAgICAvLyBmaXJlYmFzZSBlbWlzc2lvbnMgYXJlIG5ldmVyIHN5bmNocm9ub3VzLiBTcGVjaWZ5aW5nIGEgZGVsYXkgY2F1c2VzIGlzc3VlcyB3aXRoIHRoZSBxdWV1ZVNjaGVkdWxlciBkZWxlZ2F0ZS5cbiAgICByZXR1cm4gdGhpcy5kZWxlZ2F0ZS5zY2hlZHVsZSh3b3JrSW5ab25lLCBkZWxheSwgc3RhdGUpO1xuICB9XG59XG5cbmNsYXNzIEJsb2NrVW50aWxGaXJzdE9wZXJhdG9yPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHpvbmU6IGFueSxcbiAgICBwcml2YXRlIHBlbmRpbmdUYXNrczogRXhwZXJpbWVudGFsUGVuZGluZ1Rhc2tzXG4gICkge31cblxuICBjYWxsKHN1YnNjcmliZXI6IFN1YnNjcmliZXI8VD4sIHNvdXJjZTogT2JzZXJ2YWJsZTxUPik6IFRlYXJkb3duTG9naWMge1xuICAgIGNvbnN0IHRhc2tEb25lOiBWb2lkRnVuY3Rpb24gPSB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMucGVuZGluZ1Rhc2tzLmFkZCgpKTtcbiAgICAvLyBtYXliZSB0aGlzIGlzIGEgcmFjZSBjb25kaXRpb24sIGludm9rZSBpbiBhIHRpbWVvdXRcbiAgICAvLyBob2xkIGZvciAxMG1zIHdoaWxlIEkgdHJ5IHRvIGZpZ3VyZSBvdXQgd2hhdCBpcyBnb2luZyBvblxuICAgIGNvbnN0IHVuc2NoZWR1bGVUYXNrID0gKCkgPT4gc2V0VGltZW91dCh0YXNrRG9uZSwgMTApO1xuXG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKFxuICAgICAgdGFwKHsgbmV4dDogdW5zY2hlZHVsZVRhc2ssIGNvbXBsZXRlOiB1bnNjaGVkdWxlVGFzaywgZXJyb3I6IHVuc2NoZWR1bGVUYXNrIH0pXG4gICAgKS5zdWJzY3JpYmUoc3Vic2NyaWJlcikuYWRkKHVuc2NoZWR1bGVUYXNrKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMge1xuICBwdWJsaWMgcmVhZG9ubHkgb3V0c2lkZUFuZ3VsYXI6IMm1Wm9uZVNjaGVkdWxlcjtcbiAgcHVibGljIHJlYWRvbmx5IGluc2lkZUFuZ3VsYXI6IMm1Wm9uZVNjaGVkdWxlcjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmdab25lOiBOZ1pvbmUsIHB1YmxpYyBwZW5kaW5nVGFza3M6IEV4cGVyaW1lbnRhbFBlbmRpbmdUYXNrcykge1xuICAgIHRoaXMub3V0c2lkZUFuZ3VsYXIgPSBuZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoXG4gICAgICAoKSA9PiBuZXcgybVab25lU2NoZWR1bGVyKHR5cGVvZiBab25lID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IFpvbmUuY3VycmVudClcbiAgICApO1xuICAgIHRoaXMuaW5zaWRlQW5ndWxhciA9IG5nWm9uZS5ydW4oXG4gICAgICAoKSA9PiBuZXcgybVab25lU2NoZWR1bGVyKFxuICAgICAgICB0eXBlb2YgWm9uZSA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBab25lLmN1cnJlbnQsXG4gICAgICAgIGFzeW5jU2NoZWR1bGVyXG4gICAgICApXG4gICAgKTtcbiAgICBnbG9iYWxUaGlzLsm1QW5ndWxhckZpcmVTY2hlZHVsZXIgfHw9IHRoaXM7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0U2NoZWR1bGVycygpIHtcbiAgY29uc3Qgc2NoZWR1bGVycyA9IGdsb2JhbFRoaXMuybVBbmd1bGFyRmlyZVNjaGVkdWxlciBhcyDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVyc3x1bmRlZmluZWQ7XG4gIGlmICghc2NoZWR1bGVycykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbmBFaXRoZXIgQW5ndWxhckZpcmVNb2R1bGUgaGFzIG5vdCBiZWVuIHByb3ZpZGVkIGluIHlvdXIgQXBwTW9kdWxlICh0aGlzIGNhbiBiZSBkb25lIG1hbnVhbGx5IG9yIGltcGxpY3RseSB1c2luZ1xucHJvdmlkZUZpcmViYXNlQXBwKSBvciB5b3UncmUgY2FsbGluZyBhbiBBbmd1bGFyRmlyZSBtZXRob2Qgb3V0c2lkZSBvZiBhbiBOZ01vZHVsZSAod2hpY2ggaXMgbm90IHN1cHBvcnRlZCkuYCk7XG4gIH1cbiAgcmV0dXJuIHNjaGVkdWxlcnM7XG59XG5cbmZ1bmN0aW9uIHJ1bk91dHNpZGVBbmd1bGFyPFQ+KGZuOiAoLi4uYXJnczogYW55W10pID0+IFQpOiBUIHtcbiAgcmV0dXJuIGdldFNjaGVkdWxlcnMoKS5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gZm4oKSk7XG59XG5cbmZ1bmN0aW9uIHJ1bjxUPihmbjogKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogVCB7XG4gIHJldHVybiBnZXRTY2hlZHVsZXJzKCkubmdab25lLnJ1bigoKSA9PiBmbigpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9ic2VydmVPdXRzaWRlQW5ndWxhcjxUPihvYnMkOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBvYnMkLnBpcGUob2JzZXJ2ZU9uKGdldFNjaGVkdWxlcnMoKS5vdXRzaWRlQW5ndWxhcikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb2JzZXJ2ZUluc2lkZUFuZ3VsYXI8VD4ob2JzJDogT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4ge1xuICByZXR1cm4gb2JzJC5waXBlKG9ic2VydmVPbihnZXRTY2hlZHVsZXJzKCkuaW5zaWRlQW5ndWxhcikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24ga2VlcFVuc3RhYmxlVW50aWxGaXJzdDxUPihvYnMkOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiDJtWtlZXBVbnN0YWJsZVVudGlsRmlyc3RGYWN0b3J5KGdldFNjaGVkdWxlcnMoKSkob2JzJCk7XG59XG5cbi8qKlxuICogT3BlcmF0b3IgdG8gYmxvY2sgdGhlIHpvbmUgdW50aWwgdGhlIGZpcnN0IHZhbHVlIGhhcyBiZWVuIGVtaXR0ZWQgb3IgdGhlIG9ic2VydmFibGVcbiAqIGhhcyBjb21wbGV0ZWQvZXJyb3JlZC4gVGhpcyBpcyB1c2VkIHRvIG1ha2Ugc3VyZSB0aGF0IHVuaXZlcnNhbCB3YWl0cyB1bnRpbCB0aGUgZmlyc3RcbiAqIHZhbHVlIGZyb20gZmlyZWJhc2UgYnV0IGRvZXNuJ3QgYmxvY2sgdGhlIHpvbmUgZm9yZXZlciBzaW5jZSB0aGUgZmlyZWJhc2Ugc3Vic2NyaXB0aW9uXG4gKiBpcyBzdGlsbCBhbGl2ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1a2VlcFVuc3RhYmxlVW50aWxGaXJzdEZhY3RvcnkoXG4gIHNjaGVkdWxlcnM6IMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGtlZXBVbnN0YWJsZVVudGlsRmlyc3Q8VD4oXG4gICAgb2JzJDogT2JzZXJ2YWJsZTxUPlxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBvYnMkID0gb2JzJC5saWZ0KFxuICAgICAgbmV3IEJsb2NrVW50aWxGaXJzdE9wZXJhdG9yKHNjaGVkdWxlcnMubmdab25lLCBzY2hlZHVsZXJzLnBlbmRpbmdUYXNrcylcbiAgICApO1xuXG4gICAgcmV0dXJuIG9icyQucGlwZShcbiAgICAgIC8vIFJ1biB0aGUgc3Vic2NyaWJlIGJvZHkgb3V0c2lkZSBvZiBBbmd1bGFyIChlLmcuIGNhbGxpbmcgRmlyZWJhc2UgU0RLIHRvIGFkZCBhIGxpc3RlbmVyIHRvIGEgY2hhbmdlIGV2ZW50KVxuICAgICAgc3Vic2NyaWJlT24oc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhciksXG4gICAgICAvLyBSdW4gb3BlcmF0b3JzIGluc2lkZSB0aGUgYW5ndWxhciB6b25lIChlLmcuIHNpZGUgZWZmZWN0cyB2aWEgdGFwKCkpXG4gICAgICBvYnNlcnZlT24oc2NoZWR1bGVycy5pbnNpZGVBbmd1bGFyKVxuICAgICAgLy8gSU5WRVNUSUdBVEUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhcmZpcmUvcHVsbC8yMzE1XG4gICAgICAvLyBzaGFyZSgpXG4gICAgKTtcbiAgfTtcbn1cblxuY29uc3Qgem9uZVdyYXBGbiA9IChcbiAgaXQ6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55LFxuICB0YXNrRG9uZTogVm9pZEZ1bmN0aW9uIHwgdW5kZWZpbmVkXG4pID0+IHtcbiAgcmV0dXJuICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGlmICh0YXNrRG9uZSkge1xuICAgICAgc2V0VGltZW91dCh0YXNrRG9uZSwgMTApO1xuICAgIH1cbiAgICByZXR1cm4gcnVuKCgpID0+IGl0LmFwcGx5KHRoaXMsIGFyZ3MpKTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCDJtXpvbmVXcmFwID0gPFQ9IHVua25vd24+KGl0OiBULCBibG9ja1VudGlsRmlyc3Q6IGJvb2xlYW4pOiBUID0+IHtcbiAgLy8gZnVuY3Rpb24oKSBpcyBuZWVkZWQgZm9yIHRoZSBhcmd1bWVudHMgb2JqZWN0XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IHRhc2tEb25lOiBWb2lkRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgX2FyZ3VtZW50cyA9IGFyZ3VtZW50cztcbiAgICAvLyBpZiB0aGlzIGlzIGEgY2FsbGJhY2sgZnVuY3Rpb24sIGUuZywgb25TbmFwc2hvdCwgd2Ugc2hvdWxkIGNyZWF0ZSBhIHBlbmRpbmcgdGFzayBhbmQgY29tcGxldGUgaXRcbiAgICAvLyBvbmx5IG9uY2Ugb25lIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbnMgaXMgdHJpcHBlZC5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHR5cGVvZiBfYXJndW1lbnRzW2ldID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGlmIChibG9ja1VudGlsRmlyc3QpIHtcbiAgICAgICAgICB0YXNrRG9uZSB8fD0gcnVuKCgpID0+IGdldFNjaGVkdWxlcnMoKS5wZW5kaW5nVGFza3MuYWRkKCkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRPRE8gY3JlYXRlIGEgbWljcm90YXNrIHRvIHRyYWNrIGNhbGxiYWNrIGZ1bmN0aW9uc1xuICAgICAgICBfYXJndW1lbnRzW2ldID0gem9uZVdyYXBGbihfYXJndW1lbnRzW2ldLCB0YXNrRG9uZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJldCA9IHJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IChpdCBhcyBhbnkpLmFwcGx5KHRoaXMsIF9hcmd1bWVudHMpKTtcbiAgICBpZiAoIWJsb2NrVW50aWxGaXJzdCkge1xuICAgICAgaWYgKHJldCBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVycyA9IGdldFNjaGVkdWxlcnMoKTtcbiAgICAgICAgcmV0dXJuIHJldC5waXBlKFxuICAgICAgICAgIHN1YnNjcmliZU9uKHNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpLFxuICAgICAgICAgIG9ic2VydmVPbihzY2hlZHVsZXJzLmluc2lkZUFuZ3VsYXIpLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJ1bigoKSA9PiByZXQpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocmV0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgcmV0dXJuIHJldC5waXBlKGtlZXBVbnN0YWJsZVVudGlsRmlyc3QpIGFzIGFueTtcbiAgICB9IGVsc2UgaWYgKHJldCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbWlzdXNlZC1wcm9taXNlc1xuICAgICAgcmV0dXJuIHJ1bihcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICByZXQudGhlbihcbiAgICAgICAgICAgICAgKGl0KSA9PiBydW4oKCkgPT4gcmVzb2x2ZShpdCkpLFxuICAgICAgICAgICAgICAocmVhc29uKSA9PiBydW4oKCkgPT4gcmVqZWN0KHJlYXNvbikpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJldCA9PT0gJ2Z1bmN0aW9uJyAmJiB0YXNrRG9uZSkge1xuICAgICAgLy8gSGFuZGxlIHVuc3Vic2NyaWJlXG4gICAgICAvLyBmdW5jdGlvbigpIGlzIG5lZWRlZCBmb3IgdGhlIGFyZ3VtZW50cyBvYmplY3RcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNldFRpbWVvdXQodGFza0RvbmUsIDEwKTtcbiAgICAgICAgcmV0dXJuIHJldC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVE9ETyBob3cgZG8gd2UgaGFuZGxlIHN0b3JhZ2UgdXBsb2FkcyBpbiBab25lPyBhbmQgb3RoZXIgc3R1ZmYgd2l0aCBjYW5jZWwoKSBldGM/XG4gICAgICByZXR1cm4gcnVuKCgpID0+IHJldCk7XG4gICAgfVxuICB9IGFzIGFueTtcbn07XG4iXX0=
|