@nx-ddd/firestore-angular-adapter 18.12.0 → 18.13.0-preview-v19f.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -112,10 +112,10 @@ class AngularFirestoreAdapter extends FirestoreAdapter {
112
112
  });
113
113
  return wrapBatch(batch);
114
114
  }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: AngularFirestoreAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
116
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: AngularFirestoreAdapter }); }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: AngularFirestoreAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
116
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: AngularFirestoreAdapter }); }
117
117
  }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: AngularFirestoreAdapter, decorators: [{
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: AngularFirestoreAdapter, decorators: [{
119
119
  type: Injectable
120
120
  }] });
121
121
  /** @deprecated use `provideFirestoreAdapter()` instead. */
@@ -38,10 +38,10 @@ export declare class AngularFirestoreAdapter extends FirestoreAdapter<dayjs.Dayj
38
38
  limit<Data>(n: number): QueryFn<Data>;
39
39
  runTransaction(fn: Parameters<typeof runTransaction>[1]): Promise<unknown>;
40
40
  batch(): {
41
- create: (ref: any, data: any) => any;
42
- set: (ref: any, data: any) => any;
43
- update: (ref: any, data: any) => any;
44
- delete: (ref: any) => any;
41
+ create: (ref: any, data: any) => /*elided*/ any;
42
+ set: (ref: any, data: any) => /*elided*/ any;
43
+ update: (ref: any, data: any) => /*elided*/ any;
44
+ delete: (ref: any) => /*elided*/ any;
45
45
  commit: () => Promise<void>;
46
46
  };
47
47
  static ɵfac: i0.ɵɵFactoryDeclaration<AngularFirestoreAdapter, never>;
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@nx-ddd/firestore-angular-adapter",
3
- "version": "18.12.0",
3
+ "version": "v18.13.0-preview-v19f.1",
4
4
  "homepage": "https://github.com/xx-machina/plaform/tree/main/packages/@nx-ddd/firestore-angular-adapter",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/xx-machina/plaform.git"
8
8
  },
9
9
  "peerDependencies": {
10
- "@angular/core": "^18.0.0",
10
+ "@angular/core": "19.1.4",
11
11
  "@angular/fire": "18.0.1",
12
- "@nx-ddd/firestore": "18.12.0",
13
- "dayjs": "1.11.12",
12
+ "@nx-ddd/firestore": "v18.13.0-preview-v19f.1",
13
+ "dayjs": "1.11.13",
14
14
  "rxjs": "^7.0.0",
15
15
  "firebase": "^10.7.0"
16
16
  },
@@ -25,8 +25,6 @@
25
25
  },
26
26
  ".": {
27
27
  "types": "./index.d.ts",
28
- "esm2022": "./esm2022/nx-ddd-firestore-angular-adapter.mjs",
29
- "esm": "./esm2022/nx-ddd-firestore-angular-adapter.mjs",
30
28
  "default": "./fesm2022/nx-ddd-firestore-angular-adapter.mjs"
31
29
  }
32
30
  },
package/esm2022/index.mjs DELETED
@@ -1,2 +0,0 @@
1
- export * from './lib';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2ZpcmVzdG9yZS1hbmd1bGFyLWFkYXB0ZXIvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWInO1xuIl19
@@ -1,127 +0,0 @@
1
- import { inject, Injectable } from '@angular/core';
2
- import { doc, collection, collectionGroup, Timestamp, setDoc, getDoc, deleteDoc, getDocs, onSnapshot, updateDoc, Firestore, runTransaction, writeBatch, limit, orderBy, query, where, documentId, FieldValue, serverTimestamp, getCountFromServer } from '@angular/fire/firestore';
3
- import { FirestoreAdapter, provideFirestoreAdapter as _provideFirestoreAdapter, } from '@nx-ddd/firestore/adapters/base';
4
- import dayjs from 'dayjs';
5
- import { Observable, map, filter } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- function asObservable(ref, _onSnapshot) {
8
- return new Observable((observer) => _onSnapshot(ref, (value) => observer.next(value), (error) => observer.error(error), () => observer.complete()));
9
- }
10
- export function wrapDocumentReference(origin) {
11
- return {
12
- __ref: origin,
13
- exists: () => getDoc(origin).then(snapshot => snapshot.exists()),
14
- set: (data) => setDoc(origin, data),
15
- get: () => getDoc(origin),
16
- update: (data) => updateDoc(origin, data),
17
- delete: () => deleteDoc(origin),
18
- stateChanges: () => {
19
- return new Observable((observer) => {
20
- return onSnapshot(origin, value => observer.next(value), error => observer.error(error), () => observer.complete());
21
- }).pipe(filter((snapshot) => snapshot.exists()), map((snapshot) => ({
22
- id: snapshot.id,
23
- ref: snapshot.ref,
24
- data: () => snapshot.data(),
25
- get: (fieldPath) => snapshot.get(fieldPath),
26
- })));
27
- },
28
- };
29
- }
30
- export function wrapCollectionLike(origin) {
31
- return {
32
- __ref: origin,
33
- stateChanges: () => asObservable(origin, onSnapshot).pipe(map((snapshot) => snapshot.docChanges().map(change => ({
34
- type: change.type, payload: { doc: change.doc },
35
- })))),
36
- get: () => getDocs(origin),
37
- count: () => getCountFromServer(origin).then(count => count.data().count),
38
- };
39
- }
40
- export function unwrapCollectionLike(collection) {
41
- return collection.__ref;
42
- }
43
- export class AngularFirestoreAdapter extends FirestoreAdapter {
44
- constructor() {
45
- super(...arguments);
46
- this.firestore = inject(Firestore);
47
- }
48
- get FieldValue() {
49
- return Object.assign(FieldValue, { serverTimestamp });
50
- }
51
- get Timestamp() {
52
- return Timestamp;
53
- }
54
- get FieldPath() {
55
- return {
56
- documentId: () => documentId(),
57
- };
58
- }
59
- isTimestamp(v) {
60
- return v instanceof Timestamp;
61
- }
62
- isFieldValue(v) {
63
- return v instanceof this.FieldValue;
64
- }
65
- isDate(v) {
66
- return dayjs.isDayjs(v);
67
- }
68
- convertDateToTimestamp(date) {
69
- return Timestamp.fromDate(date.toDate());
70
- }
71
- convertTimestampToDate(timestamp) {
72
- return dayjs(timestamp.toDate());
73
- }
74
- doc(path) {
75
- const docRef = doc(this.firestore, path);
76
- return wrapDocumentReference(docRef);
77
- }
78
- collection(path) {
79
- const ref = collection(this.firestore, path);
80
- return wrapCollectionLike(ref);
81
- }
82
- collectionGroup(collectionId) {
83
- const ref = collectionGroup(this.firestore, collectionId);
84
- return wrapCollectionLike(ref);
85
- }
86
- query(collection, ...queryFnArray) {
87
- const ref = unwrapCollectionLike(collection);
88
- const _query = query(ref, ...queryFnArray.map(queryFn => queryFn()));
89
- return wrapCollectionLike(_query);
90
- }
91
- where(fieldPath, opStr, value) {
92
- return () => where(fieldPath, opStr, value);
93
- }
94
- orderBy(key, order = 'asc') {
95
- return () => orderBy(key, order);
96
- }
97
- limit(n) {
98
- return () => limit(n);
99
- }
100
- runTransaction(fn) {
101
- return runTransaction(this.firestore, fn);
102
- }
103
- batch() {
104
- const batch = writeBatch(this.firestore);
105
- const wrapBatch = (_batch) => ({
106
- create: (ref, data) => wrapBatch(_batch.set(ref, data)),
107
- set: (ref, data) => wrapBatch(_batch.set(ref, data)),
108
- update: (ref, data) => wrapBatch(_batch.update(ref, data)),
109
- delete: (ref) => wrapBatch(_batch.delete(ref)),
110
- commit: () => _batch.commit(),
111
- });
112
- return wrapBatch(batch);
113
- }
114
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: AngularFirestoreAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
115
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: AngularFirestoreAdapter }); }
116
- }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: AngularFirestoreAdapter, decorators: [{
118
- type: Injectable
119
- }] });
120
- /** @deprecated use `provideFirestoreAdapter()` instead. */
121
- export function provideAngularFirestoreAdapter() {
122
- return { provide: FirestoreAdapter, useClass: AngularFirestoreAdapter };
123
- }
124
- export function provideFirestoreAdapter() {
125
- return _provideFirestoreAdapter(AngularFirestoreAdapter);
126
- }
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1maXJlc3RvcmUuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlLWFuZ3VsYXItYWRhcHRlci9zcmMvbGliL2FuZ3VsYXItZmlyZXN0b3JlLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUNMLEdBQUcsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUNoQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUM3QyxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUM1RCxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQTRCLFVBQVUsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUMvRixrQkFBa0IsRUFDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBR2hCLHVCQUF1QixJQUFJLHdCQUF3QixHQUNwRCxNQUFNLGlDQUFpQyxDQUFDO0FBU3pDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBTyxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBMkNwRCxTQUFTLFlBQVksQ0FDbkIsR0FBcUMsRUFDckMsV0FBOEI7SUFFOUIsT0FBTyxJQUFJLFVBQVUsQ0FBbUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FDL0QsR0FBRyxFQUNILENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUNwQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFD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QUFFLENBQUMsQ0FBQztZQUNuRCxNQUFNLEVBQUUsQ0FBQyxHQUFRLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakUsR0FBRyxFQUFFLENBQUMsR0FBUSxFQUFFLElBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzlELE1BQU0sRUFBRSxDQUFDLEdBQVEsRUFBRSxJQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNwRSxNQUFNLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1NBQzlCLENBQUMsQ0FBQTtRQUNGLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7OEdBbkdVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOztBQXVHWCwyREFBMkQ7QUFDM0QsTUFBTSxVQUFVLDhCQUE4QjtJQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxDQUFDO0FBQzFFLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU8sd0JBQXdCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUMzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgXG4gIGRvYywgY29sbGVjdGlvbiwgY29sbGVjdGlvbkdyb3VwLFxuICBUaW1lc3RhbXAsIHNldERvYywgZ2V0RG9jLCBkZWxldGVEb2MsIGdldERvY3MsIFxuICBvblNuYXBzaG90LCB1cGRhdGVEb2MsIEZpcmVzdG9yZSwgcnVuVHJhbnNhY3Rpb24sIHdyaXRlQmF0Y2gsXG4gIGxpbWl0LCBvcmRlckJ5LCBxdWVyeSwgd2hlcmUsIFF1ZXJ5U25hcHNob3QsIEZpZWxkUGF0aCwgZG9jdW1lbnRJZCwgRmllbGRWYWx1ZSwgc2VydmVyVGltZXN0YW1wLFxuICBnZXRDb3VudEZyb21TZXJ2ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9maXJlc3RvcmUnO1xuaW1wb3J0IHtcbiAgRmlyZXN0b3JlQWRhcHRlcixcbiAgUXVlcnlGbiBhcyBfUXVlcnlGbixcbiAgV2hlcmVGaWx0ZXJPcCxcbiAgcHJvdmlkZUZpcmVzdG9yZUFkYXB0ZXIgYXMgX3Byb3ZpZGVGaXJlc3RvcmVBZGFwdGVyLFxufSBmcm9tICdAbngtZGRkL2ZpcmVzdG9yZS9hZGFwdGVycy9iYXNlJztcbmltcG9ydCB7XG4gIERvY3VtZW50U25hcHNob3QsXG4gIENvbGxlY3Rpb25SZWZlcmVuY2UgYXMgX0NvbGxlY3Rpb25SZWZlcmVuY2UsXG4gIENvbGxlY3Rpb25Hcm91cCBhcyBfQ29sbGVjdGlvbkdyb3VwLFxuICBRdWVyeSBhcyBfUXVlcnksXG4gIERvY3VtZW50RGF0YSxcbiAgRG9jdW1lbnRSZWZlcmVuY2UsXG59IGZyb20gJ0BueC1kZGQvZmlyZXN0b3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCwgdGFwLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB0eXBlIGZpcmVzdG9yZSBmcm9tICdmaXJlYmFzZS9maXJlc3RvcmUnO1xuXG50eXBlIENvbGxlY3Rpb25SZWZlcmVuY2U8XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4+ID0gX0NvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgZmlyZXN0b3JlLkNvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4+O1xuXG50eXBlIENvbGxlY3Rpb25Hcm91cDxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YVxuPiA9IF9Db2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgZmlyZXN0b3JlLlF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+PjtcblxudHlwZSBRdWVyeTxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YVxuPiA9IF9RdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlLCBmaXJlc3RvcmUuUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4+O1xuXG50eXBlIFF1ZXJ5Rm48XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGFcbj4gPSBfUXVlcnlGbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlLCBmaXJlc3RvcmUuUXVlcnlDb25zdHJhaW50PlxuXG50eXBlIE9yaWdpbjxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbj4gPSBmaXJlc3RvcmUuQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuICB8IGZpcmVzdG9yZS5RdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcblxudHlwZSBDb2xsZWN0aW9uTGlrZTxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbj4gPSBDb2xsZWN0aW9uUmVmZXJlbmNlPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IFxuICB8IENvbGxlY3Rpb25Hcm91cDxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuICB8IFF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+O1xuXG4vLyBVdGlsaXR5IHR5cGUgdG8gbWFwIE9yaWdpbiB0byBDb2xsZWN0aW9uTGlrZVxudHlwZSBJbmZlckNvbGxlY3Rpb25MaWtlPE8gZXh0ZW5kcyBPcmlnaW4+ID0gXG4gIE8gZXh0ZW5kcyBmaXJlc3RvcmUuQ29sbGVjdGlvblJlZmVyZW5jZTxpbmZlciBBLCBpbmZlciBCPiA/IENvbGxlY3Rpb25SZWZlcmVuY2U8QSwgQj4gOlxuICBPIGV4dGVuZHMgZmlyZXN0b3JlLlF1ZXJ5PGluZmVyIEEsIGluZmVyIEI+ID8gUXVlcnk8QSwgQj4gOlxuICBuZXZlcjtcblxuXG5mdW5jdGlvbiBhc09ic2VydmFibGU8VCA9IHVua25vd24+KFxuICByZWY6IFBhcmFtZXRlcnM8dHlwZW9mIG9uU25hcHNob3Q+WzBdLFxuICBfb25TbmFwc2hvdDogdHlwZW9mIG9uU25hcHNob3QsXG4pOiBPYnNlcnZhYmxlPFF1ZXJ5U25hcHNob3Q8VD4+IHtcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFF1ZXJ5U25hcHNob3Q8VD4+KChvYnNlcnZlcikgPT4gX29uU25hcHNob3QoXG4gICAgcmVmLCBcbiAgICAodmFsdWU6IGFueSkgPT4gb2JzZXJ2ZXIubmV4dCh2YWx1ZSksXG4gICAgKGVycm9yOiBhbnkpID0+IG9ic2VydmVyLmVycm9yKGVycm9yKSxcbiAgICAoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBEb2N1bWVudFJlZmVyZW5jZTxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbj4ob3JpZ2luOiBmaXJlc3RvcmUuRG9jdW1lbnRSZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4pOiBEb2N1bWVudFJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gIHJldHVybiB7XG4gICAgX19yZWY6IG9yaWdpbixcbiAgICBleGlzdHM6ICgpID0+IGdldERvYyhvcmlnaW4pLnRoZW4oc25hcHNob3QgPT4gc25hcHNob3QuZXhpc3RzKCkpLFxuICAgIHNldDogKGRhdGEpID0+IHNldERvYyhvcmlnaW4sIGRhdGEpLFxuICAgIGdldDogKCkgPT4gZ2V0RG9jKG9yaWdpbiksXG4gICAgdXBkYXRlOiAoZGF0YSkgPT4gdXBkYXRlRG9jKG9yaWdpbiwgZGF0YSBhcyBhbnkpLFxuICAgIGRlbGV0ZTogKCkgPT4gZGVsZXRlRG9jKG9yaWdpbiksXG4gICAgc3RhdGVDaGFuZ2VzOiAoKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8RG9jdW1lbnRTbmFwc2hvdDxhbnk+Pigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIG9uU25hcHNob3Qob3JpZ2luLCB2YWx1ZSA9PiBvYnNlcnZlci5uZXh0KHZhbHVlKSwgZXJyb3IgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpLCAoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpKTtcbiAgICAgIH0pLnBpcGUoXG4gICAgICAgIGZpbHRlcigoc25hcHNob3Q6IGFueSkgPT4gc25hcHNob3QuZXhpc3RzKCkpLFxuICAgICAgICBtYXAoKHNuYXBzaG90KSA9PiAoe1xuICAgICAgICAgIGlkOiBzbmFwc2hvdC5pZCxcbiAgICAgICAgICByZWY6IHNuYXBzaG90LnJlZixcbiAgICAgICAgICBkYXRhOiAoKSA9PiBzbmFwc2hvdC5kYXRhKCksXG4gICAgICAgICAgZ2V0OiAoZmllbGRQYXRoOiBzdHJpbmcpID0+IHNuYXBzaG90LmdldChmaWVsZFBhdGgpLFxuICAgICAgICB9KSksXG4gICAgICApO1xuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBDb2xsZWN0aW9uTGlrZTxcbiAgTyBleHRlbmRzIE9yaWdpbixcbj4ob3JpZ2luOiBPKTogSW5mZXJDb2xsZWN0aW9uTGlrZTxPPiB7XG4gIHJldHVybiB7XG4gICAgX19yZWY6IG9yaWdpbixcbiAgICBzdGF0ZUNoYW5nZXM6ICgpID0+IGFzT2JzZXJ2YWJsZTx1bmtub3duPihvcmlnaW4sIG9uU25hcHNob3QpLnBpcGUoXG4gICAgICBtYXAoKHNuYXBzaG90KSA9PiBzbmFwc2hvdC5kb2NDaGFuZ2VzKCkubWFwKGNoYW5nZSA9PiAoe1xuICAgICAgICB0eXBlOiBjaGFuZ2UudHlwZSwgcGF5bG9hZDoge2RvYzogY2hhbmdlLmRvY30sXG4gICAgICB9KSkpLFxuICAgICksXG4gICAgZ2V0OiAoKSA9PiBnZXREb2NzKG9yaWdpbiksXG4gICAgY291bnQ6ICgpID0+IGdldENvdW50RnJvbVNlcnZlcihvcmlnaW4pLnRoZW4oY291bnQgPT4gY291bnQuZGF0YSgpLmNvdW50KSxcbiAgfSBhcyBuZXZlciBhcyBJbmZlckNvbGxlY3Rpb25MaWtlPE8+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW53cmFwQ29sbGVjdGlvbkxpa2U8XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGFcbj4oXG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25MaWtlPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+XG4pOiBPcmlnaW48QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4ge1xuICByZXR1cm4gY29sbGVjdGlvbi5fX3JlZiE7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBbmd1bGFyRmlyZXN0b3JlQWRhcHRlciBleHRlbmRzIEZpcmVzdG9yZUFkYXB0ZXI8ZGF5anMuRGF5anM+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpcmVzdG9yZSA9IGluamVjdChGaXJlc3RvcmUpO1xuXG4gIGdldCBGaWVsZFZhbHVlKCk6IHR5cGVvZiBGaWVsZFZhbHVlICYge3NlcnZlclRpbWVzdGFtcDogKCkgPT4gRmllbGRWYWx1ZX0ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKEZpZWxkVmFsdWUsIHtzZXJ2ZXJUaW1lc3RhbXB9KTtcbiAgfVxuXG4gIGdldCBUaW1lc3RhbXAoKTogdHlwZW9mIFRpbWVzdGFtcCB7XG4gICAgcmV0dXJuIFRpbWVzdGFtcDsgIFxuICB9XG5cbiAgZ2V0IEZpZWxkUGF0aCgpOiB7ZG9jdW1lbnRJZDogKCkgPT4gRmllbGRQYXRofSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRvY3VtZW50SWQ6ICgpID0+IGRvY3VtZW50SWQoKSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzVGltZXN0YW1wKHY6IGFueSk6IHYgaXMgVGltZXN0YW1wIHtcbiAgICByZXR1cm4gdiBpbnN0YW5jZW9mIFRpbWVzdGFtcDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0ZpZWxkVmFsdWUodjogYW55KTogdiBpcyBGaWVsZFZhbHVlIHtcbiAgICByZXR1cm4gdiBpbnN0YW5jZW9mIHRoaXMuRmllbGRWYWx1ZTtcbiAgfVxuICBcbiAgcHJvdGVjdGVkIGlzRGF0ZSh2OiBhbnkpOiB2IGlzIGRheWpzLkRheWpzIHtcbiAgICByZXR1cm4gZGF5anMuaXNEYXlqcyh2KTtcbiAgfVxuXG4gIGNvbnZlcnREYXRlVG9UaW1lc3RhbXAoZGF0ZTogZGF5anMuRGF5anMpOiBUaW1lc3RhbXAge1xuICAgIHJldHVybiBUaW1lc3RhbXAuZnJvbURhdGUoZGF0ZS50b0RhdGUoKSk7XG4gIH1cblxuICBjb252ZXJ0VGltZXN0YW1wVG9EYXRlKHRpbWVzdGFtcDogVGltZXN0YW1wKTogZGF5anMuRGF5anMge1xuICAgIHJldHVybiBkYXlqcyh0aW1lc3RhbXAudG9EYXRlKCkpO1xuICB9XG5cbiAgZG9jPFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihwYXRoOiBzdHJpbmcpOiBEb2N1bWVudFJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gICAgY29uc3QgZG9jUmVmID0gZG9jKHRoaXMuZmlyZXN0b3JlLCBwYXRoKTtcbiAgICByZXR1cm4gd3JhcERvY3VtZW50UmVmZXJlbmNlKGRvY1JlZikgYXMgRG9jdW1lbnRSZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG4gIH1cblxuICBjb2xsZWN0aW9uPFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihwYXRoOiBzdHJpbmcpOiBDb2xsZWN0aW9uUmVmZXJlbmNlPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IHtcbiAgICBjb25zdCByZWYgPSBjb2xsZWN0aW9uKHRoaXMuZmlyZXN0b3JlLCBwYXRoKTtcbiAgICByZXR1cm4gd3JhcENvbGxlY3Rpb25MaWtlKHJlZikgYXMgQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcbiAgfVxuXG4gIGNvbGxlY3Rpb25Hcm91cDxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oY29sbGVjdGlvbklkOiBzdHJpbmcpOiBDb2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4ge1xuICAgIGNvbnN0IHJlZiA9IGNvbGxlY3Rpb25Hcm91cCh0aGlzLmZpcmVzdG9yZSwgY29sbGVjdGlvbklkKTtcbiAgICByZXR1cm4gd3JhcENvbGxlY3Rpb25MaWtlKHJlZikgYXMgQ29sbGVjdGlvbkdyb3VwPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+O1xuICB9XG5cbiAgcXVlcnk8XG4gICAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICAgIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuICA+KFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4sXG4gICAgLi4ucXVlcnlGbkFycmF5OiBRdWVyeUZuW11cbiAgKTogUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4ge1xuICAgIGNvbnN0IHJlZiA9IHVud3JhcENvbGxlY3Rpb25MaWtlKGNvbGxlY3Rpb24pIGFzIGZpcmVzdG9yZS5RdWVyeTxEb2N1bWVudERhdGEsIERiTW9kZWxUeXBlPjtcbiAgICBjb25zdCBfcXVlcnkgPSBxdWVyeShyZWYsIC4uLnF1ZXJ5Rm5BcnJheS5tYXAocXVlcnlGbiA9PiBxdWVyeUZuKCkpKTtcbiAgICByZXR1cm4gd3JhcENvbGxlY3Rpb25MaWtlKF9xdWVyeSkgYXMgUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG4gIH1cblxuICB3aGVyZTxEYXRhPihmaWVsZFBhdGg6IHN0cmluZywgb3BTdHI6IFdoZXJlRmlsdGVyT3AsIHZhbHVlOiB1bmtub3duKTogUXVlcnlGbjxEYXRhPiB7XG4gICAgcmV0dXJuICgpID0+IHdoZXJlKGZpZWxkUGF0aCwgb3BTdHIsIHZhbHVlKTtcbiAgfVxuXG4gIG9yZGVyQnk8RGF0YT4oa2V5OiBzdHJpbmcsIG9yZGVyOiAnYXNjJyB8ICdkZXNjJyA9ICdhc2MnKTogUXVlcnlGbjxEYXRhPiB7XG4gICAgcmV0dXJuICgpID0+IG9yZGVyQnkoa2V5LCBvcmRlcik7XG4gIH1cblxuICBsaW1pdDxEYXRhPihuOiBudW1iZXIpOiBRdWVyeUZuPERhdGE+IHtcbiAgICByZXR1cm4gKCkgPT4gbGltaXQobik7XG4gIH1cblxuICBydW5UcmFuc2FjdGlvbihmbjogUGFyYW1ldGVyczx0eXBlb2YgcnVuVHJhbnNhY3Rpb24+WzFdKSB7XG4gICAgcmV0dXJuIHJ1blRyYW5zYWN0aW9uKHRoaXMuZmlyZXN0b3JlLCBmbik7XG4gIH1cblxuICBiYXRjaCgpIHtcbiAgICBjb25zdCBiYXRjaCA9IHdyaXRlQmF0Y2godGhpcy5maXJlc3RvcmUpO1xuICAgIGNvbnN0IHdyYXBCYXRjaCA9IChfYmF0Y2g6IGZpcmVzdG9yZS5Xcml0ZUJhdGNoKSA9PiAoe1xuICAgICAgY3JlYXRlOiAocmVmOiBhbnksIGRhdGE6IGFueSkgPT4gd3JhcEJhdGNoKF9iYXRjaC5zZXQocmVmLCBkYXRhKSksXG4gICAgICBzZXQ6IChyZWY6IGFueSwgZGF0YTogYW55KSA9PiB3cmFwQmF0Y2goX2JhdGNoLnNldChyZWYsIGRhdGEpKSxcbiAgICAgIHVwZGF0ZTogKHJlZjogYW55LCBkYXRhOiBhbnkpID0+IHdyYXBCYXRjaChfYmF0Y2gudXBkYXRlKHJlZiwgZGF0YSkpLFxuICAgICAgZGVsZXRlOiAocmVmOiBhbnkpID0+IHdyYXBCYXRjaChfYmF0Y2guZGVsZXRlKHJlZikpLFxuICAgICAgY29tbWl0OiAoKSA9PiBfYmF0Y2guY29tbWl0KCksXG4gICAgfSlcbiAgICByZXR1cm4gd3JhcEJhdGNoKGJhdGNoKTtcbiAgfVxufVxuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIGBwcm92aWRlRmlyZXN0b3JlQWRhcHRlcigpYCBpbnN0ZWFkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBbmd1bGFyRmlyZXN0b3JlQWRhcHRlcigpOiBQcm92aWRlciB7XG4gIHJldHVybiB7IHByb3ZpZGU6IEZpcmVzdG9yZUFkYXB0ZXIsIHVzZUNsYXNzOiBBbmd1bGFyRmlyZXN0b3JlQWRhcHRlciB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUZpcmVzdG9yZUFkYXB0ZXIoKTogUHJvdmlkZXIge1xuICByZXR1cm4gX3Byb3ZpZGVGaXJlc3RvcmVBZGFwdGVyKEFuZ3VsYXJGaXJlc3RvcmVBZGFwdGVyKTtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './angular-firestore.adapter';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2ZpcmVzdG9yZS1hbmd1bGFyLWFkYXB0ZXIvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hbmd1bGFyLWZpcmVzdG9yZS5hZGFwdGVyJztcbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWZpcmVzdG9yZS1hbmd1bGFyLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2ZpcmVzdG9yZS1hbmd1bGFyLWFkYXB0ZXIvc3JjL254LWRkZC1maXJlc3RvcmUtYW5ndWxhci1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19