@dereekb/dbx-firebase 12.5.9 → 12.6.0
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/esm2022/lib/development/development.widget.service.mjs +1 -1
- package/esm2022/lib/modules/storagefile/container/index.mjs +2 -1
- package/esm2022/lib/modules/storagefile/container/storagefile.download.button.component.mjs +244 -0
- package/esm2022/lib/modules/storagefile/index.mjs +3 -1
- package/esm2022/lib/modules/storagefile/service/index.mjs +3 -0
- package/esm2022/lib/modules/storagefile/service/storagefile.download.service.mjs +158 -0
- package/esm2022/lib/modules/storagefile/service/storagefile.download.storage.service.mjs +91 -0
- package/esm2022/lib/modules/storagefile/storagefile.providers.mjs +33 -0
- package/esm2022/lib/modules/storagefile/store/storagefile.document.store.mjs +3 -2
- package/esm2022/lib/providers.mjs +6 -2
- package/fesm2022/dereekb-dbx-firebase.mjs +512 -8
- package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/development/development.widget.service.d.ts +1 -1
- package/lib/modules/storagefile/container/index.d.ts +1 -0
- package/lib/modules/storagefile/container/storagefile.download.button.component.d.ts +133 -0
- package/lib/modules/storagefile/index.d.ts +2 -0
- package/lib/modules/storagefile/service/index.d.ts +2 -0
- package/lib/modules/storagefile/service/storagefile.download.service.d.ts +79 -0
- package/lib/modules/storagefile/service/storagefile.download.storage.service.d.ts +56 -0
- package/lib/modules/storagefile/storagefile.providers.d.ts +13 -0
- package/lib/modules/storagefile/storagefile.upload.module.d.ts +1 -1
- package/lib/modules/storagefile/store/storagefile.document.store.d.ts +1 -0
- package/lib/providers.d.ts +4 -0
- package/package.json +1 -1
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Injectable, InjectionToken, inject } from '@angular/core';
|
|
2
|
+
import { map, mergeMap, catchError, of, switchMap, first } from 'rxjs';
|
|
3
|
+
import { firestoreModelId } from '@dereekb/firebase';
|
|
4
|
+
import { DbxFirebaseAuthService } from '../../../auth/service/firebase.auth.service';
|
|
5
|
+
import { splitJoinRemainder } from '@dereekb/util';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Token that corresponds to a StorageAccessor<DbxFirebaseStorageFileDownloadUserCache> that is used by DbxModelViewTrackerStorage.
|
|
9
|
+
*/
|
|
10
|
+
export const DBX_FIREBASE_STORAGEFILE_DOWNLOAD_STORAGE_ACCESSOR_TOKEN = new InjectionToken('DbxFirebaseStorageFileDownloadStorageAccessor');
|
|
11
|
+
/**
|
|
12
|
+
* Used for managing DbxModelViewTrackerEvent storage.
|
|
13
|
+
*/
|
|
14
|
+
export class DbxFirebaseStorageFileDownloadStorage {
|
|
15
|
+
static DEFAULT_MAX_DOWNLOAD_URLS = 100;
|
|
16
|
+
authService = inject(DbxFirebaseAuthService);
|
|
17
|
+
storageAccessor = inject(DBX_FIREBASE_STORAGEFILE_DOWNLOAD_STORAGE_ACCESSOR_TOKEN);
|
|
18
|
+
addDownloadUrl({ id, downloadUrl, expiresAt, mimeType }) {
|
|
19
|
+
return this.getCurrentUserDownloadCache().pipe(mergeMap((cache) => {
|
|
20
|
+
const { uid, pairs: currentPairs } = cache;
|
|
21
|
+
const storageKey = this.getStorageKeyForUid(uid);
|
|
22
|
+
const pairs = {
|
|
23
|
+
...currentPairs,
|
|
24
|
+
[id]: `${expiresAt}_${mimeType}_${downloadUrl}`
|
|
25
|
+
};
|
|
26
|
+
return this.storageAccessor.set(storageKey, {
|
|
27
|
+
uid,
|
|
28
|
+
pairs
|
|
29
|
+
});
|
|
30
|
+
}), first());
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Returns the cached download URL pair for the given key.
|
|
34
|
+
*
|
|
35
|
+
* The pair may be expired.
|
|
36
|
+
*
|
|
37
|
+
* @param key
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
40
|
+
getDownloadUrlPair(input) {
|
|
41
|
+
const id = firestoreModelId(input);
|
|
42
|
+
return this.authService.uid$.pipe(switchMap((uid) => {
|
|
43
|
+
return this.getUserDownloadCache(uid).pipe(map((cache) => {
|
|
44
|
+
const pair = cache?.pairs[id];
|
|
45
|
+
let result;
|
|
46
|
+
if (pair) {
|
|
47
|
+
const [expiresAt, mimeType, downloadUrl] = splitJoinRemainder(pair, '_', 3);
|
|
48
|
+
result = {
|
|
49
|
+
id,
|
|
50
|
+
downloadUrl,
|
|
51
|
+
expiresAt: Number(expiresAt),
|
|
52
|
+
mimeType
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return result;
|
|
56
|
+
}));
|
|
57
|
+
}), first());
|
|
58
|
+
}
|
|
59
|
+
getAllDownloadUrlPairsRecord(uid) {
|
|
60
|
+
return this.getUserDownloadCache(uid).pipe(map((x) => x.pairs));
|
|
61
|
+
}
|
|
62
|
+
getCurrentUserDownloadCache() {
|
|
63
|
+
return this.authService.uid$.pipe(switchMap((uid) => this.getUserDownloadCache(uid)));
|
|
64
|
+
}
|
|
65
|
+
getUserDownloadCache(uid) {
|
|
66
|
+
const storageKey = this.getStorageKeyForUid(uid);
|
|
67
|
+
return this._getUserDownloadCacheForStorageKey(storageKey, uid);
|
|
68
|
+
}
|
|
69
|
+
clearCurrentUserDownloadCache() {
|
|
70
|
+
return this.authService.uid$.pipe(switchMap((uid) => this.clearUserDownloadCache(uid)));
|
|
71
|
+
}
|
|
72
|
+
clearUserDownloadCache(uid) {
|
|
73
|
+
const storageKey = this.getStorageKeyForUid(uid);
|
|
74
|
+
return this.storageAccessor.remove(storageKey);
|
|
75
|
+
}
|
|
76
|
+
_getUserDownloadCacheForStorageKey(storageKey, uid) {
|
|
77
|
+
return this.storageAccessor.get(storageKey).pipe(catchError((e) => {
|
|
78
|
+
return of(undefined);
|
|
79
|
+
}), map((result) => result ?? { uid, pairs: {} }));
|
|
80
|
+
}
|
|
81
|
+
getStorageKeyForUid(uid) {
|
|
82
|
+
const storageKey = `sf_dl_cache_${uid}`;
|
|
83
|
+
return storageKey;
|
|
84
|
+
}
|
|
85
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileDownloadStorage, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
86
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileDownloadStorage });
|
|
87
|
+
}
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseStorageFileDownloadStorage, decorators: [{
|
|
89
|
+
type: Injectable
|
|
90
|
+
}] });
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZWZpbGUuZG93bmxvYWQuc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kdWxlcy9zdG9yYWdlZmlsZS9zZXJ2aWNlL3N0b3JhZ2VmaWxlLmRvd25sb2FkLnN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25GLE9BQU8sRUFBc0IsZ0JBQWdCLEVBQXNFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0ksT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUE4QixrQkFBa0IsRUFBNkIsTUFBTSxlQUFlLENBQUM7O0FBd0IxRzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdEQUF3RCxHQUFHLElBQUksY0FBYyxDQUFDLCtDQUErQyxDQUFDLENBQUM7QUFFNUk7O0dBRUc7QUFFSCxNQUFNLE9BQU8scUNBQXFDO0lBQ2hELE1BQU0sQ0FBVSx5QkFBeUIsR0FBRyxHQUFHLENBQUM7SUFFdkMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzdDLGVBQWUsR0FBRyxNQUFNLENBQTJELHdEQUF3RCxDQUFDLENBQUM7SUFFdEosY0FBYyxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUF5QztRQUM1RixPQUFPLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDLElBQUksQ0FDNUMsUUFBUSxDQUFDLENBQUMsS0FBSyxFQUFFLEVB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LENBQUM7SUFFTyxrQ0FBa0MsQ0FBQyxVQUFrQixFQUFFLEdBQXVCO1FBQ3BGLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUM5QyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNmLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVELG1CQUFtQixDQUFDLEdBQXVCO1FBQ3pDLE1BQU0sVUFBVSxHQUFHLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDeEMsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzt3R0FqR1UscUNBQXFDOzRHQUFyQyxxQ0FBcUM7OzRGQUFyQyxxQ0FBcUM7a0JBRGpELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yYWdlQWNjZXNzb3IgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwLCBjYXRjaEVycm9yLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCBmaXJzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmlyZWJhc2VBdXRoVXNlcklkLCBmaXJlc3RvcmVNb2RlbElkLCBGaXJlc3RvcmVNb2RlbElkSW5wdXQsIFN0b3JhZ2VGaWxlSWQsIFN0b3JhZ2VGaWxlU2lnbmVkRG93bmxvYWRVcmwgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXV0aC9zZXJ2aWNlL2ZpcmViYXNlLmF1dGguc2VydmljZSc7XG5pbXBvcnQgeyBDb250ZW50VHlwZU1pbWVUeXBlLCBNYXliZSwgc3BsaXRKb2luUmVtYWluZGVyLCBVbml4RGF0ZVRpbWVTZWNvbmRzTnVtYmVyIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkVXJsUGFpciB7XG4gIHJlYWRvbmx5IGlkOiBTdG9yYWdlRmlsZUlkO1xuICByZWFkb25seSBkb3dubG9hZFVybDogU3RvcmFnZUZpbGVTaWduZWREb3dubG9hZFVybDtcbiAgLyoqXG4gICAqIE1pbWUgdHlwZSwgaWYgYXZhaWxhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWltZVR5cGU/OiBNYXliZTxDb250ZW50VHlwZU1pbWVUeXBlPjtcbiAgLyoqXG4gICAqIEV4cGlyYXRpb24gaW4gc2Vjb25kcyBzaW5jZSBlcG9jaC5cbiAgICovXG4gIHJlYWRvbmx5IGV4cGlyZXNBdDogVW5peERhdGVUaW1lU2Vjb25kc051bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkVXJsUGFpclN0cmluZyA9IGAke1VuaXhEYXRlVGltZVNlY29uZHNOdW1iZXJ9XyR7U3RvcmFnZUZpbGVTaWduZWREb3dubG9hZFVybH1gO1xuXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRVcmxQYWlyc1JlY29yZCA9IFJlY29yZDxTdG9yYWdlRmlsZUlkLCBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRVcmxQYWlyU3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRVc2VyQ2FjaGUge1xuICByZWFkb25seSB1aWQ6IEZpcmViYXNlQXV0aFVzZXJJZDtcbiAgcmVhZG9ubHkgcGFpcnM6IERieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZFVybFBhaXJzUmVjb3JkO1xufVxuXG4vKipcbiAqIFRva2VuIHRoYXQgY29ycmVzcG9uZHMgdG8gYSBTdG9yYWdlQWNjZXNzb3I8RGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkVXNlckNhY2hlPiB0aGF0IGlzIHVzZWQgYnkgRGJ4TW9kZWxWaWV3VHJhY2tlclN0b3JhZ2UuXG4gKi9cbmV4cG9ydCBjb25zdCBEQlhfRklSRUJBU0VfU1RPUkFHRUZJTEVfRE9XTkxPQURfU1RPUkFHRV9BQ0NFU1NPUl9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbignRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkU3RvcmFnZUFjY2Vzc29yJyk7XG5cbi8qKlxuICogVXNlZCBmb3IgbWFuYWdpbmcgRGJ4TW9kZWxWaWV3VHJhY2tlckV2ZW50IHN0b3JhZ2UuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRTdG9yYWdlIHtcbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfTUFYX0RPV05MT0FEX1VSTFMgPSAxMDA7XG5cbiAgcmVhZG9ubHkgYXV0aFNlcnZpY2UgPSBpbmplY3QoRGJ4RmlyZWJhc2VBdXRoU2VydmljZSk7XG4gIHJlYWRvbmx5IHN0b3JhZ2VBY2Nlc3NvciA9IGluamVjdDxTdG9yYWdlQWNjZXNzb3I8RGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkVXNlckNhY2hlPj4oREJYX0ZJUkVCQVNFX1NUT1JBR0VGSUxFX0RPV05MT0FEX1NUT1JBR0VfQUNDRVNTT1JfVE9LRU4pO1xuXG4gIGFkZERvd25sb2FkVXJsKHsgaWQsIGRvd25sb2FkVXJsLCBleHBpcmVzQXQsIG1pbWVUeXBlIH06IERieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZFVybFBhaXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRDdXJyZW50VXNlckRvd25sb2FkQ2FjaGUoKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKGNhY2hlKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgdWlkLCBwYWlyczogY3VycmVudFBhaXJzIH0gPSBjYWNoZTtcblxuICAgICAgICBjb25zdCBzdG9yYWdlS2V5ID0gdGhpcy5nZXRTdG9yYWdlS2V5Rm9yVWlkKHVpZCk7XG4gICAgICAgIGNvbnN0IHBhaXJzOiBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRVcmxQYWlyc1JlY29yZCA9IHtcbiAgICAgICAgICAuLi5jdXJyZW50UGFpcnMsXG4gICAgICAgICAgW2lkXTogYCR7ZXhwaXJlc0F0fV8ke21pbWVUeXBlfV8ke2Rvd25sb2FkVXJsfWBcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlQWNjZXNzb3Iuc2V0KHN0b3JhZ2VLZXksIHtcbiAgICAgICAgICB1aWQsXG4gICAgICAgICAgcGFpcnNcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGZpcnN0KClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNhY2hlZCBkb3dubG9hZCBVUkwgcGFpciBmb3IgdGhlIGdpdmVuIGtleS5cbiAgICpcbiAgICogVGhlIHBhaXIgbWF5IGJlIGV4cGlyZWQuXG4gICAqXG4gICAqIEBwYXJhbSBrZXlcbiAgICogQHJldHVybnNcbiAgICovXG4gIGdldERvd25sb2FkVXJsUGFpcihpbnB1dDogRmlyZXN0b3JlTW9kZWxJZElucHV0KTogT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRVcmxQYWlyIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgaWQgPSBmaXJlc3RvcmVNb2RlbElkKGlucHV0KTtcbiAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS51aWQkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHVpZCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRVc2VyRG93bmxvYWRDYWNoZSh1aWQpLnBpcGUoXG4gICAgICAgICAgbWFwKChjYWNoZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFpciA9IGNhY2hlPy5wYWlyc1tpZF07XG5cbiAgICAgICAgICAgIGxldCByZXN1bHQ6IERieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZFVybFBhaXIgfCB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIGlmIChwYWlyKSB7XG4gICAgICAgICAgICAgIGNvbnN0IFtleHBpcmVzQXQsIG1pbWVUeXBlLCBkb3dubG9hZFVybF0gPSBzcGxpdEpvaW5SZW1haW5kZXIocGFpciwgJ18nLCAzKTtcblxuICAgICAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgZG93bmxvYWRVcmwsXG4gICAgICAgICAgICAgICAgZXhwaXJlc0F0OiBOdW1iZXIoZXhwaXJlc0F0KSxcbiAgICAgICAgICAgICAgICBtaW1lVHlwZVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIGZpcnN0KClcbiAgICApO1xuICB9XG5cbiAgZ2V0QWxsRG93bmxvYWRVcmxQYWlyc1JlY29yZCh1aWQ6IEZpcmViYXNlQXV0aFVzZXJJZCk6IE9ic2VydmFibGU8RGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkVXJsUGFpcnNSZWNvcmQ+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRVc2VyRG93bmxvYWRDYWNoZSh1aWQpLnBpcGUobWFwKCh4KSA9PiB4LnBhaXJzKSk7XG4gIH1cblxuICBnZXRDdXJyZW50VXNlckRvd25sb2FkQ2FjaGUoKTogT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRVc2VyQ2FjaGU+IHtcbiAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS51aWQkLnBpcGUoc3dpdGNoTWFwKCh1aWQpID0+IHRoaXMuZ2V0VXNlckRvd25sb2FkQ2FjaGUodWlkKSkpO1xuICB9XG5cbiAgZ2V0VXNlckRvd25sb2FkQ2FjaGUodWlkOiBGaXJlYmFzZUF1dGhVc2VySWQpOiBPYnNlcnZhYmxlPERieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZFVzZXJDYWNoZT4ge1xuICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSB0aGlzLmdldFN0b3JhZ2VLZXlGb3JVaWQodWlkKTtcbiAgICByZXR1cm4gdGhpcy5fZ2V0VXNlckRvd25sb2FkQ2FjaGVGb3JTdG9yYWdlS2V5KHN0b3JhZ2VLZXksIHVpZCk7XG4gIH1cblxuICBjbGVhckN1cnJlbnRVc2VyRG93bmxvYWRDYWNoZSgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS51aWQkLnBpcGUoc3dpdGNoTWFwKCh1aWQpID0+IHRoaXMuY2xlYXJVc2VyRG93bmxvYWRDYWNoZSh1aWQpKSk7XG4gIH1cblxuICBjbGVhclVzZXJEb3dubG9hZENhY2hlKHVpZDogRmlyZWJhc2VBdXRoVXNlcklkKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3Qgc3RvcmFnZUtleSA9IHRoaXMuZ2V0U3RvcmFnZUtleUZvclVpZCh1aWQpO1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VBY2Nlc3Nvci5yZW1vdmUoc3RvcmFnZUtleSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRVc2VyRG93bmxvYWRDYWNoZUZvclN0b3JhZ2VLZXkoc3RvcmFnZUtleTogc3RyaW5nLCB1aWQ6IEZpcmViYXNlQXV0aFVzZXJJZCk6IE9ic2VydmFibGU8RGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkVXNlckNhY2hlPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZUFjY2Vzc29yLmdldChzdG9yYWdlS2V5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKChyZXN1bHQpID0+IHJlc3VsdCA/PyB7IHVpZCwgcGFpcnM6IHt9IH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldFN0b3JhZ2VLZXlGb3JVaWQodWlkOiBGaXJlYmFzZUF1dGhVc2VySWQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSBgc2ZfZGxfY2FjaGVfJHt1aWR9YDtcbiAgICByZXR1cm4gc3RvcmFnZUtleTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { makeEnvironmentProviders } from '@angular/core';
|
|
2
|
+
import { SimpleStorageAccessorFactory } from '@dereekb/dbx-core';
|
|
3
|
+
import { DBX_FIREBASE_STORAGEFILE_DOWNLOAD_STORAGE_ACCESSOR_TOKEN, DbxFirebaseStorageFileDownloadStorage } from './service/storagefile.download.storage.service';
|
|
4
|
+
import { DbxFirebaseStorageFileDownloadService } from './service/storagefile.download.service';
|
|
5
|
+
/**
|
|
6
|
+
* Factory function for creating a StorageAccessor for the model view tracker.
|
|
7
|
+
*/
|
|
8
|
+
export function defaultDbxFirebaseStorageFileDownloadStorageAccessorFactory(storageAccessorFactory) {
|
|
9
|
+
const accessor = storageAccessorFactory.createStorageAccessor({
|
|
10
|
+
prefix: 'sfds'
|
|
11
|
+
});
|
|
12
|
+
return accessor;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Creates EnvironmentProviders for providing DbxModelTrackerService, DbxModelObjectStateService and sets up the NgRx store for DbxModelTrackerEffects.
|
|
16
|
+
*
|
|
17
|
+
* @returns EnvironmentProviders
|
|
18
|
+
*/
|
|
19
|
+
export function provideDbxFirebaseStorageFileService() {
|
|
20
|
+
const providers = [
|
|
21
|
+
// Storage accessor
|
|
22
|
+
{
|
|
23
|
+
provide: DBX_FIREBASE_STORAGEFILE_DOWNLOAD_STORAGE_ACCESSOR_TOKEN,
|
|
24
|
+
useFactory: defaultDbxFirebaseStorageFileDownloadStorageAccessorFactory,
|
|
25
|
+
deps: [SimpleStorageAccessorFactory]
|
|
26
|
+
},
|
|
27
|
+
// Service
|
|
28
|
+
DbxFirebaseStorageFileDownloadStorage,
|
|
29
|
+
DbxFirebaseStorageFileDownloadService
|
|
30
|
+
];
|
|
31
|
+
return makeEnvironmentProviders(providers);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZWZpbGUucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kdWxlcy9zdG9yYWdlZmlsZS9zdG9yYWdlZmlsZS5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0Qyx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsNEJBQTRCLEVBQXdCLE1BQU0sbUJBQW1CLENBQUM7QUFDdkYsT0FBTyxFQUFFLHdEQUF3RCxFQUFFLHFDQUFxQyxFQUFnRCxNQUFNLGdEQUFnRCxDQUFDO0FBQy9NLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRS9GOztHQUVHO0FBQ0gsTUFBTSxVQUFVLDJEQUEyRCxDQUFDLHNCQUFvRDtJQUM5SCxNQUFNLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBMEM7UUFDckcsTUFBTSxFQUFFLE1BQU07S0FDZixDQUFDLENBQUM7SUFFSCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxvQ0FBb0M7SUFDbEQsTUFBTSxTQUFTLEdBQXdDO1FBQ3JELG1CQUFtQjtRQUNuQjtZQUNFLE9BQU8sRUFBRSx3REFBd0Q7WUFDakUsVUFBVSxFQUFFLDJEQUEyRDtZQUN2RSxJQUFJLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztTQUNyQztRQUNELFVBQVU7UUFDVixxQ0FBcUM7UUFDckMscUNBQXFDO0tBQ3RDLENBQUM7SUFFRixPQUFPLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEVudmlyb25tZW50UHJvdmlkZXJzLCB0eXBlIFByb3ZpZGVyLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNpbXBsZVN0b3JhZ2VBY2Nlc3NvckZhY3RvcnksIHR5cGUgU3RvcmFnZUFjY2Vzc29yIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgREJYX0ZJUkVCQVNFX1NUT1JBR0VGSUxFX0RPV05MT0FEX1NUT1JBR0VfQUNDRVNTT1JfVE9LRU4sIERieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZFN0b3JhZ2UsIHR5cGUgRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkVXNlckNhY2hlIH0gZnJvbSAnLi9zZXJ2aWNlL3N0b3JhZ2VmaWxlLmRvd25sb2FkLnN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL3N0b3JhZ2VmaWxlLmRvd25sb2FkLnNlcnZpY2UnO1xuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIGEgU3RvcmFnZUFjY2Vzc29yIGZvciB0aGUgbW9kZWwgdmlldyB0cmFja2VyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdERieEZpcmViYXNlU3RvcmFnZUZpbGVEb3dubG9hZFN0b3JhZ2VBY2Nlc3NvckZhY3Rvcnkoc3RvcmFnZUFjY2Vzc29yRmFjdG9yeTogU2ltcGxlU3RvcmFnZUFjY2Vzc29yRmFjdG9yeSk6IFN0b3JhZ2VBY2Nlc3NvcjxEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRVc2VyQ2FjaGU+IHtcbiAgY29uc3QgYWNjZXNzb3IgPSBzdG9yYWdlQWNjZXNzb3JGYWN0b3J5LmNyZWF0ZVN0b3JhZ2VBY2Nlc3NvcjxEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRVc2VyQ2FjaGU+KHtcbiAgICBwcmVmaXg6ICdzZmRzJ1xuICB9KTtcblxuICByZXR1cm4gYWNjZXNzb3I7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBFbnZpcm9ubWVudFByb3ZpZGVycyBmb3IgcHJvdmlkaW5nIERieE1vZGVsVHJhY2tlclNlcnZpY2UsIERieE1vZGVsT2JqZWN0U3RhdGVTZXJ2aWNlIGFuZCBzZXRzIHVwIHRoZSBOZ1J4IHN0b3JlIGZvciBEYnhNb2RlbFRyYWNrZXJFZmZlY3RzLlxuICpcbiAqIEByZXR1cm5zIEVudmlyb25tZW50UHJvdmlkZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZVNlcnZpY2UoKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICBjb25zdCBwcm92aWRlcnM6IChQcm92aWRlciB8IEVudmlyb25tZW50UHJvdmlkZXJzKVtdID0gW1xuICAgIC8vIFN0b3JhZ2UgYWNjZXNzb3JcbiAgICB7XG4gICAgICBwcm92aWRlOiBEQlhfRklSRUJBU0VfU1RPUkFHRUZJTEVfRE9XTkxPQURfU1RPUkFHRV9BQ0NFU1NPUl9UT0tFTixcbiAgICAgIHVzZUZhY3Rvcnk6IGRlZmF1bHREYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRTdG9yYWdlQWNjZXNzb3JGYWN0b3J5LFxuICAgICAgZGVwczogW1NpbXBsZVN0b3JhZ2VBY2Nlc3NvckZhY3RvcnldXG4gICAgfSxcbiAgICAvLyBTZXJ2aWNlXG4gICAgRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZURvd25sb2FkU3RvcmFnZSxcbiAgICBEYnhGaXJlYmFzZVN0b3JhZ2VGaWxlRG93bmxvYWRTZXJ2aWNlXG4gIF07XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhwcm92aWRlcnMpO1xufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Injectable, inject } from '@angular/core';
|
|
2
|
-
import { AbstractDbxFirebaseDocumentStore, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreUpdateFunction } from '../../../model/modules/store';
|
|
2
|
+
import { AbstractDbxFirebaseDocumentStore, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction } from '../../../model/modules/store';
|
|
3
3
|
import { StorageFileFirestoreCollections, StorageFileFunctions } from '@dereekb/firebase';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class StorageFileDocumentStore extends AbstractDbxFirebaseDocumentStore {
|
|
@@ -13,10 +13,11 @@ export class StorageFileDocumentStore extends AbstractDbxFirebaseDocumentStore {
|
|
|
13
13
|
updateStorageFile = firebaseDocumentStoreUpdateFunction(this, this.storageFileFunctions.storageFile.updateStorageFile.update);
|
|
14
14
|
processStorageFile = firebaseDocumentStoreUpdateFunction(this, this.storageFileFunctions.storageFile.updateStorageFile.process);
|
|
15
15
|
deleteStorageFile = firebaseDocumentStoreDeleteFunction(this, this.storageFileFunctions.storageFile.deleteStorageFile.delete);
|
|
16
|
+
downloadStorageFile = firebaseDocumentStoreReadFunction(this, this.storageFileFunctions.storageFile.readStorageFile.download);
|
|
16
17
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageFileDocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17
18
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageFileDocumentStore });
|
|
18
19
|
}
|
|
19
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageFileDocumentStore, decorators: [{
|
|
20
21
|
type: Injectable
|
|
21
22
|
}], ctorParameters: () => [] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZWZpbGUuZG9jdW1lbnQuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2R1bGVzL3N0b3JhZ2VmaWxlL3N0b3JlL3N0b3JhZ2VmaWxlLmRvY3VtZW50LnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxtQ0FBbUMsRUFBRSxpQ0FBaUMsRUFBRSxtQ0FBbUMsRUFBRSxpQ0FBaUMsRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3JRLE9BQU8sRUFBb0MsK0JBQStCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHNUgsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGdDQUFrRTtJQUNyRyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUU3RDtRQUNFLEtBQUssQ0FBQyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRVEsMkJBQTJCLEdBQUcsbUNBQW1DLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEksK0JBQStCLEdBQUcsbUNBQW1DLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEosbUNBQW1DLEdBQUcsaUNBQWlDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUUvSSxpQkFBaUIsR0FBRyxtQ0FBbUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5SCxrQkFBa0IsR0FBRyxtQ0FBbUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVoSSxpQkFBaUIsR0FBRyxtQ0FBbUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU5SCxtQkFBbUIsR0FBRyxpQ0FBaUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7d0dBaEI1SCx3QkFBd0I7NEdBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3REYnhGaXJlYmFzZURvY3VtZW50U3RvcmUsIGZpcmViYXNlRG9jdW1lbnRTdG9yZUNyZWF0ZUZ1bmN0aW9uLCBmaXJlYmFzZURvY3VtZW50U3RvcmVDcnVkRnVuY3Rpb24sIGZpcmViYXNlRG9jdW1lbnRTdG9yZURlbGV0ZUZ1bmN0aW9uLCBmaXJlYmFzZURvY3VtZW50U3RvcmVSZWFkRnVuY3Rpb24sIGZpcmViYXNlRG9jdW1lbnRTdG9yZVVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvbW9kdWxlcy9zdG9yZSc7XG5pbXBvcnQgeyBTdG9yYWdlRmlsZSwgU3RvcmFnZUZpbGVEb2N1bWVudCwgU3RvcmFnZUZpbGVGaXJlc3RvcmVDb2xsZWN0aW9ucywgU3RvcmFnZUZpbGVGdW5jdGlvbnMgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTdG9yYWdlRmlsZURvY3VtZW50U3RvcmUgZXh0ZW5kcyBBYnN0cmFjdERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxTdG9yYWdlRmlsZSwgU3RvcmFnZUZpbGVEb2N1bWVudD4ge1xuICByZWFkb25seSBzdG9yYWdlRmlsZUZ1bmN0aW9ucyA9IGluamVjdChTdG9yYWdlRmlsZUZ1bmN0aW9ucyk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoeyBmaXJlc3RvcmVDb2xsZWN0aW9uOiBpbmplY3QoU3RvcmFnZUZpbGVGaXJlc3RvcmVDb2xsZWN0aW9ucykuc3RvcmFnZUZpbGVDb2xsZWN0aW9uIH0pO1xuICB9XG5cbiAgcmVhZG9ubHkgY3JlYXRlU3RvcmFnZUZpbGVGcm9tVXBsb2FkID0gZmlyZWJhc2VEb2N1bWVudFN0b3JlQ3JlYXRlRnVuY3Rpb24odGhpcywgdGhpcy5zdG9yYWdlRmlsZUZ1bmN0aW9ucy5zdG9yYWdlRmlsZS5jcmVhdGVTdG9yYWdlRmlsZS5jcmVhdGUpO1xuICByZWFkb25seSBpbml0aWFsaXplU3RvcmFnZUZpbGVGcm9tVXBsb2FkID0gZmlyZWJhc2VEb2N1bWVudFN0b3JlQ3JlYXRlRnVuY3Rpb24odGhpcywgdGhpcy5zdG9yYWdlRmlsZUZ1bmN0aW9ucy5zdG9yYWdlRmlsZS5jcmVhdGVTdG9yYWdlRmlsZS5mcm9tVXBsb2FkKTtcbiAgcmVhZG9ubHkgaW5pdGlhbGl6ZUFsbFN0b3JhZ2VGaWxlc0Zyb21VcGxvYWQgPSBmaXJlYmFzZURvY3VtZW50U3RvcmVDcnVkRnVuY3Rpb24odGhpcy5zdG9yYWdlRmlsZUZ1bmN0aW9ucy5zdG9yYWdlRmlsZS5jcmVhdGVTdG9yYWdlRmlsZS5hbGxGcm9tVXBsb2FkKTtcblxuICByZWFkb25seSB1cGRhdGVTdG9yYWdlRmlsZSA9IGZpcmViYXNlRG9jdW1lbnRTdG9yZVVwZGF0ZUZ1bmN0aW9uKHRoaXMsIHRoaXMuc3RvcmFnZUZpbGVGdW5jdGlvbnMuc3RvcmFnZUZpbGUudXBkYXRlU3RvcmFnZUZpbGUudXBkYXRlKTtcbiAgcmVhZG9ubHkgcHJvY2Vzc1N0b3JhZ2VGaWxlID0gZmlyZWJhc2VEb2N1bWVudFN0b3JlVXBkYXRlRnVuY3Rpb24odGhpcywgdGhpcy5zdG9yYWdlRmlsZUZ1bmN0aW9ucy5zdG9yYWdlRmlsZS51cGRhdGVTdG9yYWdlRmlsZS5wcm9jZXNzKTtcblxuICByZWFkb25seSBkZWxldGVTdG9yYWdlRmlsZSA9IGZpcmViYXNlRG9jdW1lbnRTdG9yZURlbGV0ZUZ1bmN0aW9uKHRoaXMsIHRoaXMuc3RvcmFnZUZpbGVGdW5jdGlvbnMuc3RvcmFnZUZpbGUuZGVsZXRlU3RvcmFnZUZpbGUuZGVsZXRlKTtcblxuICByZWFkb25seSBkb3dubG9hZFN0b3JhZ2VGaWxlID0gZmlyZWJhc2VEb2N1bWVudFN0b3JlUmVhZEZ1bmN0aW9uKHRoaXMsIHRoaXMuc3RvcmFnZUZpbGVGdW5jdGlvbnMuc3RvcmFnZUZpbGUucmVhZFN0b3JhZ2VGaWxlLmRvd25sb2FkKTtcbn1cbiJdfQ==
|
|
@@ -11,6 +11,7 @@ import { provideDbxFirebaseNotifications } from './modules/notification/notifica
|
|
|
11
11
|
import { provideDbxFirebaseModelContextService } from './model/service/model.context.providers';
|
|
12
12
|
import { provideDbxFirebaseModelTypesService } from './model/modules/model/model.types.providers';
|
|
13
13
|
import { provideDbxFirebaseAnalyticsUserEventsListenerService } from './analytics';
|
|
14
|
+
import { provideDbxFirebaseStorageFileService } from './modules/storagefile/storagefile.providers';
|
|
14
15
|
/**
|
|
15
16
|
* All-in-one provider for providing the main configurations for DbxFirebase.
|
|
16
17
|
*
|
|
@@ -21,7 +22,7 @@ import { provideDbxFirebaseAnalyticsUserEventsListenerService } from './analytic
|
|
|
21
22
|
* @returns EnvironmentProviders for the DbxFirebase configuration.
|
|
22
23
|
*/
|
|
23
24
|
export function provideDbxFirebase(config) {
|
|
24
|
-
const { app, emulator, storage, auth, functions, firestores, modelContextService, modelTypesService, development, notifications, provideAnalyticsUserEventsListener } = config;
|
|
25
|
+
const { app, emulator, storage, auth, functions, firestores, modelContextService, modelTypesService, development, notifications, provideAnalyticsUserEventsListener, provideStorageFileService } = config;
|
|
25
26
|
const providers = [provideDbxFirebaseApp(app), provideDbxFirebaseEmulator(emulator), providedDbxFirebaseStorage(storage), provideDbxFirebaseAuth(auth), provideDbxFirebaseFunctions(functions), provideDbxFirebaseModelContextService(modelContextService), provideDbxFirebaseModelTypesService(modelTypesService)];
|
|
26
27
|
asArray(firestores).forEach((firestore) => {
|
|
27
28
|
providers.push(provideDbxFirestoreCollection(firestore));
|
|
@@ -35,6 +36,9 @@ export function provideDbxFirebase(config) {
|
|
|
35
36
|
if (notifications != null) {
|
|
36
37
|
providers.push(provideDbxFirebaseNotifications(notifications));
|
|
37
38
|
}
|
|
39
|
+
if (provideStorageFileService) {
|
|
40
|
+
providers.push(provideDbxFirebaseStorageFileService());
|
|
41
|
+
}
|
|
38
42
|
return makeEnvironmentProviders(providers);
|
|
39
43
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsT0FBTyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBNkIsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFxQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzVHLE9BQU8sRUFBRSwwQkFBMEIsRUFBMEMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1SCxPQUFPLEVBQUUscUJBQXFCLEVBQW9DLE1BQU0sK0JBQStCLENBQUM7QUFDeEcsT0FBTyxFQUFvRCw2QkFBNkIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNJLE9BQU8sRUFBRSwyQkFBMkIsRUFBMEMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3SCxPQUFPLEVBQXdDLDBCQUEwQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEgsT0FBTyxFQUFFLDZCQUE2QixFQUE0QyxNQUFNLHFDQUFxQyxDQUFDO0FBQzlILE9BQU8sRUFBRSwrQkFBK0IsRUFBOEMsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1SSxPQUFPLEVBQUUscUNBQXFDLEVBQW9ELE1BQU0seUNBQXlDLENBQUM7QUFDbEosT0FBTyxFQUFFLG1DQUFtQyxFQUFrRCxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xKLE9BQU8sRUFBRSxvREFBb0QsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuRixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQTRDbkc7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQTJELE1BQXNDO0lBQ2pJLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGtDQUFrQyxFQUFFLHlCQUF5QixFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTFNLE1BQU0sU0FBUyxHQUEyQixDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxFQUFFLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxFQUFFLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxFQUFFLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLDJCQUEyQixDQUFDLFNBQVMsQ0FBQyxFQUFFLHFDQUFxQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsbUNBQW1DLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBRTVVLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUN4QyxTQUFTLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLGtDQUFrQyxFQUFFLENBQUM7UUFDdkMsU0FBUyxDQUFDLElBQUksQ0FBQyxvREFBb0QsRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELElBQUksV0FBVyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELElBQUksYUFBYSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxJQUFJLENBQUMsb0NBQW9DLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxPQUFPLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEFycmF5T3JWYWx1ZSwgYXNBcnJheSwgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgdHlwZSBFbnZpcm9ubWVudFByb3ZpZGVycywgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIEZpcmViYXNlRnVuY3Rpb25zTWFwIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgcHJvdmlkZURieEZpcmViYXNlQXV0aCwgdHlwZSBQcm92aWRlRGJ4RmlyZWJhc2VBdXRoQ29uZmlnIH0gZnJvbSAnLi9hdXRoLy9maXJlYmFzZS5hdXRoLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBwcm92aWRlRGJ4RmlyZWJhc2VFbXVsYXRvciwgdHlwZSBQcm92aWRlRGJ4RmlyZWJhc2VFbXVsYXRvcnNDb25maWcgfSBmcm9tICcuL2ZpcmViYXNlL2ZpcmViYXNlLmVtdWxhdG9yLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBwcm92aWRlRGJ4RmlyZWJhc2VBcHAsIHR5cGUgUHJvdmlkZURieEZpcmViYXNlQXBwQ29uZmlnIH0gZnJvbSAnLi9maXJlYmFzZS9maXJlYmFzZS5wcm92aWRlcnMnO1xuaW1wb3J0IHsgdHlwZSBQcm92aWRlRGJ4RmlyZWJhc2VGaXJlc3RvcmVDb2xsZWN0aW9uQ29uZmlnLCBwcm92aWRlRGJ4RmlyZXN0b3JlQ29sbGVjdGlvbiB9IGZyb20gJy4vZmlyZXN0b3JlL2ZpcmViYXNlLmZpcmVzdG9yZS5wcm92aWRlcnMnO1xuaW1wb3J0IHsgcHJvdmlkZURieEZpcmViYXNlRnVuY3Rpb25zLCB0eXBlIFByb3ZpZGVEYnhGaXJlYmFzZUZ1bmN0aW9uc0NvbmZpZyB9IGZyb20gJy4vZnVuY3Rpb24vZmlyZWJhc2UuZnVuY3Rpb24ucHJvdmlkZXJzJztcbmltcG9ydCB7IHR5cGUgUHJvdmlkZURieEZpcmViYXNlU3RvcmFnZUNvbmZpZywgcHJvdmlkZWREYnhGaXJlYmFzZVN0b3JhZ2UgfSBmcm9tICcuL3N0b3JhZ2UvZmlyZWJhc2Uuc3RvcmFnZS5wcm92aWRlcnMnO1xuaW1wb3J0IHsgcHJvdmlkZURieEZpcmViYXNlRGV2ZWxvcG1lbnQsIHR5cGUgUHJvdmlkZURieEZpcmViYXNlRGV2ZWxvcG1lbnRDb25maWcgfSBmcm9tICcuL2RldmVsb3BtZW50L2RldmVsb3BtZW50LnByb3ZpZGVycyc7XG5pbXBvcnQgeyBwcm92aWRlRGJ4RmlyZWJhc2VOb3RpZmljYXRpb25zLCB0eXBlIFByb3ZpZGVEYnhGaXJlYmFzZU5vdGlmaWNhdGlvbnNDb25maWcgfSBmcm9tICcuL21vZHVsZXMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5wcm92aWRlcnMnO1xuaW1wb3J0IHsgcHJvdmlkZURieEZpcmViYXNlTW9kZWxDb250ZXh0U2VydmljZSwgdHlwZSBQcm92aWRlRGJ4RmlyZWJhc2VNb2RlbENvbnRleHRTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi9tb2RlbC9zZXJ2aWNlL21vZGVsLmNvbnRleHQucHJvdmlkZXJzJztcbmltcG9ydCB7IHByb3ZpZGVEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlLCB0eXBlIFByb3ZpZGVEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi9tb2RlbC9tb2R1bGVzL21vZGVsL21vZGVsLnR5cGVzLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBwcm92aWRlRGJ4RmlyZWJhc2VBbmFseXRpY3NVc2VyRXZlbnRzTGlzdGVuZXJTZXJ2aWNlIH0gZnJvbSAnLi9hbmFseXRpY3MnO1xuaW1wb3J0IHsgcHJvdmlkZURieEZpcmViYXNlU3RvcmFnZUZpbGVTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGVzL3N0b3JhZ2VmaWxlL3N0b3JhZ2VmaWxlLnByb3ZpZGVycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZURieEZpcmViYXNlQ29uZmlnPFQsIE0gZXh0ZW5kcyBGaXJlYmFzZUZ1bmN0aW9uc01hcCA9IEZpcmViYXNlRnVuY3Rpb25zTWFwPiB7XG4gIC8vIFJlcXVpcmVkIENvbmZpZ3VyYXRpb25zXG4gIHJlYWRvbmx5IGFwcDogUHJvdmlkZURieEZpcmViYXNlQXBwQ29uZmlnO1xuICByZWFkb25seSBlbXVsYXRvcjogUHJvdmlkZURieEZpcmViYXNlRW11bGF0b3JzQ29uZmlnO1xuICByZWFkb25seSBzdG9yYWdlOiBQcm92aWRlRGJ4RmlyZWJhc2VTdG9yYWdlQ29uZmlnO1xuICByZWFkb25seSBhdXRoOiBQcm92aWRlRGJ4RmlyZWJhc2VBdXRoQ29uZmlnO1xuICByZWFkb25seSBmdW5jdGlvbnM6IFByb3ZpZGVEYnhGaXJlYmFzZUZ1bmN0aW9uc0NvbmZpZzxULCBNPjtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlczogQXJyYXlPclZhbHVlPFByb3ZpZGVEYnhGaXJlYmFzZUZpcmVzdG9yZUNvbGxlY3Rpb25Db25maWc8YW55Pj47XG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciBwcm92aWRlRGJ4RmlyZWJhc2VNb2RlbENvbnRleHRTZXJ2aWNlKCkuXG4gICAqL1xuICByZWFkb25seSBtb2RlbENvbnRleHRTZXJ2aWNlOiBQcm92aWRlRGJ4RmlyZWJhc2VNb2RlbENvbnRleHRTZXJ2aWNlQ29uZmlnPGFueT47XG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciBwcm92aWRlRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZSgpLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWxUeXBlc1NlcnZpY2U6IFByb3ZpZGVEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlQ29uZmlnO1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgcHJvdmlkZURieEZpcmViYXNlRGV2ZWxvcG1lbnQuXG4gICAqXG4gICAqIElmIGZhbHNlLCBwcm92aWRlRGJ4RmlyZWJhc2VEZXZlbG9wbWVudCgpIHdpbGwgbm90IGJlIHByb3ZpZGVkL2NhbGxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRldmVsb3BtZW50PzogUHJvdmlkZURieEZpcmViYXNlRGV2ZWxvcG1lbnRDb25maWcgfCBmYWxzZTtcblxuICAvLyBPcHRpb25hbFxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgcHJvdmlkZURieEZpcmViYXNlTm90aWZpY2F0aW9ucygpLlxuICAgKlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIHByb3ZpZGVEYnhGaXJlYmFzZU5vdGlmaWNhdGlvbnMoKSB3aWxsIG5vdCBiZSBwcm92aWRlZC9jYWxsZWQuXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25zPzogUHJvdmlkZURieEZpcmViYXNlTm90aWZpY2F0aW9uc0NvbmZpZztcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgcHJvdmlkZURieEZpcmViYXNlQW5hbHl0aWNzVXNlckV2ZW50c0xpc3RlbmVyU2VydmljZSgpIHdpbGwgYmUgcHJvdmlkZWQvY2FsbGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZUFuYWx5dGljc1VzZXJFdmVudHNMaXN0ZW5lcj86IE1heWJlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCBwcm92aWRlRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZVNlcnZpY2UoKSB3aWxsIGJlIHByb3ZpZGVkL2NhbGxlZC5cbiAgICovXG4gIHJlYWRvbmx5IHByb3ZpZGVTdG9yYWdlRmlsZVNlcnZpY2U/OiBNYXliZTxib29sZWFuPjtcbn1cblxuLyoqXG4gKiBBbGwtaW4tb25lIHByb3ZpZGVyIGZvciBwcm92aWRpbmcgdGhlIG1haW4gY29uZmlndXJhdGlvbnMgZm9yIERieEZpcmViYXNlLlxuICpcbiAqIFJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgYWxyZWFkeSBiZSBwcm92aWRlZC9jYWxsZWQ6XG4gKiAtIHByb3ZpZGVEYnhNb2RlbFNlcnZpY2UoKVxuICpcbiAqIEBwYXJhbSBjb25maWcgQ29uZmlndXJhdGlvbiBmb3IgcHJvdmlkZURieEZpcmViYXNlKCkuXG4gKiBAcmV0dXJucyBFbnZpcm9ubWVudFByb3ZpZGVycyBmb3IgdGhlIERieEZpcmViYXNlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGJ4RmlyZWJhc2U8VCwgTSBleHRlbmRzIEZpcmViYXNlRnVuY3Rpb25zTWFwID0gRmlyZWJhc2VGdW5jdGlvbnNNYXA+KGNvbmZpZzogUHJvdmlkZURieEZpcmViYXNlQ29uZmlnPFQsIE0+KSB7XG4gIGNvbnN0IHsgYXBwLCBlbXVsYXRvciwgc3RvcmFnZSwgYXV0aCwgZnVuY3Rpb25zLCBmaXJlc3RvcmVzLCBtb2RlbENvbnRleHRTZXJ2aWNlLCBtb2RlbFR5cGVzU2VydmljZSwgZGV2ZWxvcG1lbnQsIG5vdGlmaWNhdGlvbnMsIHByb3ZpZGVBbmFseXRpY3NVc2VyRXZlbnRzTGlzdGVuZXIsIHByb3ZpZGVTdG9yYWdlRmlsZVNlcnZpY2UgfSA9IGNvbmZpZztcblxuICBjb25zdCBwcm92aWRlcnM6IEVudmlyb25tZW50UHJvdmlkZXJzW10gPSBbcHJvdmlkZURieEZpcmViYXNlQXBwKGFwcCksIHByb3ZpZGVEYnhGaXJlYmFzZUVtdWxhdG9yKGVtdWxhdG9yKSwgcHJvdmlkZWREYnhGaXJlYmFzZVN0b3JhZ2Uoc3RvcmFnZSksIHByb3ZpZGVEYnhGaXJlYmFzZUF1dGgoYXV0aCksIHByb3ZpZGVEYnhGaXJlYmFzZUZ1bmN0aW9ucyhmdW5jdGlvbnMpLCBwcm92aWRlRGJ4RmlyZWJhc2VNb2RlbENvbnRleHRTZXJ2aWNlKG1vZGVsQ29udGV4dFNlcnZpY2UpLCBwcm92aWRlRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZShtb2RlbFR5cGVzU2VydmljZSldO1xuXG4gIGFzQXJyYXkoZmlyZXN0b3JlcykuZm9yRWFjaCgoZmlyZXN0b3JlKSA9PiB7XG4gICAgcHJvdmlkZXJzLnB1c2gocHJvdmlkZURieEZpcmVzdG9yZUNvbGxlY3Rpb24oZmlyZXN0b3JlKSk7XG4gIH0pO1xuXG4gIGlmIChwcm92aWRlQW5hbHl0aWNzVXNlckV2ZW50c0xpc3RlbmVyKSB7XG4gICAgcHJvdmlkZXJzLnB1c2gocHJvdmlkZURieEZpcmViYXNlQW5hbHl0aWNzVXNlckV2ZW50c0xpc3RlbmVyU2VydmljZSgpKTtcbiAgfVxuXG4gIGlmIChkZXZlbG9wbWVudCAhPT0gZmFsc2UpIHtcbiAgICBwcm92aWRlcnMucHVzaChwcm92aWRlRGJ4RmlyZWJhc2VEZXZlbG9wbWVudChkZXZlbG9wbWVudCA/PyB7fSkpO1xuICB9XG5cbiAgaWYgKG5vdGlmaWNhdGlvbnMgIT0gbnVsbCkge1xuICAgIHByb3ZpZGVycy5wdXNoKHByb3ZpZGVEYnhGaXJlYmFzZU5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9ucykpO1xuICB9XG5cbiAgaWYgKHByb3ZpZGVTdG9yYWdlRmlsZVNlcnZpY2UpIHtcbiAgICBwcm92aWRlcnMucHVzaChwcm92aWRlRGJ4RmlyZWJhc2VTdG9yYWdlRmlsZVNlcnZpY2UoKSk7XG4gIH1cblxuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKHByb3ZpZGVycyk7XG59XG4iXX0=
|