@nx-ddd/firestore-angular-adapter 0.0.0-PLACEHOLDER

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/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # firestore-angular-adapter
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Running unit tests
6
+
7
+ Run `nx test firestore-angular-adapter` to execute the unit tests.
@@ -0,0 +1,2 @@
1
+ export * from './lib/firestore-angular-adapter.module';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2ZpcmVzdG9yZS1hbmd1bGFyLWFkYXB0ZXIvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9maXJlc3RvcmUtYW5ndWxhci1hZGFwdGVyLm1vZHVsZSc7XG4iXX0=
@@ -0,0 +1,91 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { doc, collection, collectionGroup, serverTimestamp, Timestamp, setDoc, getDoc, deleteDoc, getDocs, onSnapshot, updateDoc, Firestore, runTransaction, writeBatch, limit, orderBy, query } from '@angular/fire/firestore';
3
+ import dayjs from 'dayjs';
4
+ import { Subject } from 'rxjs';
5
+ import { FirestoreAdapter } from '@nx-ddd/firestore/adapters/base';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/fire/firestore";
8
+ export class AngularFireFirestoreAdapter extends FirestoreAdapter {
9
+ constructor(firestore) {
10
+ super();
11
+ this.firestore = firestore;
12
+ this.isTimestamp = (v) => v instanceof Timestamp;
13
+ this.isDate = (v) => dayjs.isDayjs(v);
14
+ }
15
+ get FieldValue() {
16
+ return { serverTimestamp };
17
+ }
18
+ get Timestamp() {
19
+ return Timestamp;
20
+ }
21
+ convertDateToTimestamp(date) {
22
+ return Timestamp.fromDate(date.toDate());
23
+ }
24
+ convertTimestampToDate(timestamp) {
25
+ return dayjs(timestamp.toDate());
26
+ }
27
+ doc(path) {
28
+ const docRef = doc(this.firestore, path);
29
+ return {
30
+ __ref: docRef,
31
+ set: (data) => setDoc(docRef, data),
32
+ get: () => getDoc(docRef),
33
+ update: (data) => updateDoc(docRef, data),
34
+ delete: () => deleteDoc(docRef),
35
+ stateChanges: () => {
36
+ const subject = new Subject();
37
+ onSnapshot(docRef, (doc) => subject.next({ id: doc.id, ref: doc.ref, data: () => doc.data() }));
38
+ return subject.asObservable();
39
+ },
40
+ };
41
+ }
42
+ collection(path) {
43
+ const ref = collection(this.firestore, path);
44
+ return {
45
+ __ref: ref,
46
+ stateChanges: () => {
47
+ const subject = new Subject();
48
+ onSnapshot(ref, (snapshot) => subject.next(snapshot.docChanges().map(change => ({
49
+ type: change.type, payload: { doc: change.doc },
50
+ }))));
51
+ return subject.asObservable();
52
+ },
53
+ get: () => getDocs(ref),
54
+ };
55
+ }
56
+ collectionGroup(collectionId) {
57
+ const ref = collectionGroup(this.firestore, collectionId);
58
+ return {
59
+ __ref: ref,
60
+ stateChanges: () => {
61
+ const subject = new Subject();
62
+ onSnapshot(ref, (snapshot) => subject.next(snapshot.docChanges().map(change => ({
63
+ type: change.type, payload: { doc: change.doc },
64
+ }))));
65
+ return subject.asObservable();
66
+ },
67
+ get: () => getDocs(ref),
68
+ };
69
+ }
70
+ runTransaction(fn) {
71
+ return runTransaction(this.firestore, fn);
72
+ }
73
+ query(collection, ...queryFnArray) {
74
+ return query(collection.__ref, ...queryFnArray.map(queryFn => queryFn()));
75
+ }
76
+ orderBy(key, order = 'asc') {
77
+ return () => orderBy(key, order);
78
+ }
79
+ limit(n) {
80
+ return () => limit(n);
81
+ }
82
+ batch() {
83
+ return writeBatch(this.firestore);
84
+ }
85
+ }
86
+ AngularFireFirestoreAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: AngularFireFirestoreAdapter, deps: [{ token: i1.Firestore }], target: i0.ɵɵFactoryTarget.Injectable });
87
+ AngularFireFirestoreAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: AngularFireFirestoreAdapter });
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: AngularFireFirestoreAdapter, decorators: [{
89
+ type: Injectable
90
+ }], ctorParameters: function () { return [{ type: i1.Firestore }]; } });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhcmZpcmUuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlLWFuZ3VsYXItYWRhcHRlci9zcmMvbGliL2FuZ3VsYXJmaXJlL2FuZ3VsYXJmaXJlLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsR0FBRyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUNqRCxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUM3QyxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUM1RCxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFDdEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQVcsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBVzVFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxnQkFBNkI7SUFFNUUsWUFBbUIsU0FBb0I7UUFBSSxLQUFLLEVBQUUsQ0FBQTtRQUEvQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBVTdCLGdCQUFXLEdBQUcsQ0FBQyxDQUFNLEVBQWtCLEVBQUUsQ0FBQyxDQUFDLFlBQVksU0FBUyxDQUFDO1FBQ2pFLFdBQU0sR0FBRyxDQUFDLENBQU0sRUFBb0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFYZixDQUFDO0lBRXBELElBQUksVUFBVTtRQUNaLE9BQU8sRUFBQyxlQUFlLEVBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FB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RUFBRSxPQUFPLEVBQUUsRUFBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBQztpQkFDOUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNOLE9BQU8sT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2hDLENBQUM7WUFDRCxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztTQUN4QixDQUFBO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxFQUF3QztRQUNyRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxLQUFLLENBQU8sVUFBcUMsRUFBRSxHQUFHLFlBQTZCO1FBQ2pGLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxPQUFPLENBQU8sR0FBVyxFQUFFLFFBQXdCLEtBQUs7UUFDdEQsT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLLENBQU8sQ0FBUztRQUNuQixPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDOzt3SEF2RlUsMkJBQTJCOzRIQUEzQiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBcbiAgZG9jLCBjb2xsZWN0aW9uLCBjb2xsZWN0aW9uR3JvdXAsIHNlcnZlclRpbWVzdGFtcCwgXG4gIFRpbWVzdGFtcCwgc2V0RG9jLCBnZXREb2MsIGRlbGV0ZURvYywgZ2V0RG9jcywgXG4gIG9uU25hcHNob3QsIHVwZGF0ZURvYywgRmlyZXN0b3JlLCBydW5UcmFuc2FjdGlvbiwgd3JpdGVCYXRjaCxcbiAgbGltaXQsIG9yZGVyQnksIHF1ZXJ5XG59IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaXJlc3RvcmVBZGFwdGVyLCBRdWVyeUZuIH0gZnJvbSAnQG54LWRkZC9maXJlc3RvcmUvYWRhcHRlcnMvYmFzZSc7XG5pbXBvcnQge1xuICBEb2N1bWVudENoYW5nZUFjdGlvbiwgXG4gIERvY3VtZW50U25hcHNob3QsXG4gIEZpcmVzdG9yZUNvbGxlY3Rpb24sXG4gIEZpcmVzdG9yZUNvbGxlY3Rpb25Hcm91cCxcbiAgRmlyZXN0b3JlRG9jdW1lbnRcbn0gZnJvbSAnQG54LWRkZC9maXJlc3RvcmUvaW50ZXJmYWNlcyc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJGaXJlRmlyZXN0b3JlQWRhcHRlciBleHRlbmRzIEZpcmVzdG9yZUFkYXB0ZXI8ZGF5anMuRGF5anM+IHtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmlyZXN0b3JlOiBGaXJlc3RvcmUpIHsgc3VwZXIoKSB9XG5cbiAgZ2V0IEZpZWxkVmFsdWUoKSB7XG4gICAgcmV0dXJuIHtzZXJ2ZXJUaW1lc3RhbXB9OyAgXG4gIH1cblxuICBnZXQgVGltZXN0YW1wKCk6IHR5cGVvZiBUaW1lc3RhbXAge1xuICAgIHJldHVybiBUaW1lc3RhbXA7ICBcbiAgfVxuXG4gIHByb3RlY3RlZCBpc1RpbWVzdGFtcCA9ICh2OiBhbnkpOiB2IGlzIFRpbWVzdGFtcCA9PiB2IGluc3RhbmNlb2YgVGltZXN0YW1wO1xuICBwcm90ZWN0ZWQgaXNEYXRlID0gKHY6IGFueSk6IHYgaXMgZGF5anMuRGF5anMgPT4gZGF5anMuaXNEYXlqcyh2KTtcblxuICBwcm90ZWN0ZWQgY29udmVydERhdGVUb1RpbWVzdGFtcChkYXRlOiBkYXlqcy5EYXlqcyk6IFRpbWVzdGFtcCB7XG4gICAgcmV0dXJuIFRpbWVzdGFtcC5mcm9tRGF0ZShkYXRlLnRvRGF0ZSgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb252ZXJ0VGltZXN0YW1wVG9EYXRlKHRpbWVzdGFtcDogVGltZXN0YW1wKTogZGF5anMuRGF5anMge1xuICAgIHJldHVybiBkYXlqcyh0aW1lc3RhbXAudG9EYXRlKCkpXG4gIH1cblxuICBkb2MocGF0aDogc3RyaW5nKTogRmlyZXN0b3JlRG9jdW1lbnQ8YW55PiB7XG4gICAgY29uc3QgZG9jUmVmID0gZG9jKHRoaXMuZmlyZXN0b3JlLCBwYXRoKTtcbiAgICByZXR1cm4ge1xuICAgICAgX19yZWY6IGRvY1JlZixcbiAgICAgIHNldDogKGRhdGEpID0+IHNldERvYyhkb2NSZWYsIGRhdGEpLFxuICAgICAgZ2V0OiAoKSA9PiBnZXREb2MoZG9jUmVmKSxcbiAgICAgIHVwZGF0ZTogKGRhdGEpID0+IHVwZGF0ZURvYyhkb2NSZWYsIGRhdGEpLFxuICAgICAgZGVsZXRlOiAoKSA9PiBkZWxldGVEb2MoZG9jUmVmKSxcbiAgICAgIHN0YXRlQ2hhbmdlczogKCkgPT4ge1xuICAgICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8RG9jdW1lbnRTbmFwc2hvdDxhbnk+PigpO1xuICAgICAgICBvblNuYXBzaG90KGRvY1JlZiwgKGRvYykgPT4gc3ViamVjdC5uZXh0KHtpZDogZG9jLmlkLCByZWY6IGRvYy5yZWYsIGRhdGE6ICgpID0+IGRvYy5kYXRhKCl9KSk7XG4gICAgICAgIHJldHVybiBzdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgfSxcbiAgICB9XG4gIH1cblxuICBjb2xsZWN0aW9uKHBhdGg6IHN0cmluZyk6IEZpcmVzdG9yZUNvbGxlY3Rpb248YW55PiB7XG4gICAgY29uc3QgcmVmID0gY29sbGVjdGlvbih0aGlzLmZpcmVzdG9yZSwgcGF0aCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIF9fcmVmOiByZWYsXG4gICAgICBzdGF0ZUNoYW5nZXM6ICgpID0+IHtcbiAgICAgICAgY29uc3Qgc3ViamVjdCA9IG5ldyBTdWJqZWN0PERvY3VtZW50Q2hhbmdlQWN0aW9uPGFueT5bXT4oKTtcbiAgICAgICAgb25TbmFwc2hvdChyZWYsIChzbmFwc2hvdCkgPT4gc3ViamVjdC5uZXh0KHNuYXBzaG90LmRvY0NoYW5nZXMoKS5tYXAoY2hhbmdlID0+ICh7XG4gICAgICAgICAgdHlwZTogY2hhbmdlLnR5cGUsIHBheWxvYWQ6IHtkb2M6IGNoYW5nZS5kb2N9LFxuICAgICAgICB9KSkpKTtcbiAgICAgICAgcmV0dXJuIHN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgICB9LFxuICAgICAgZ2V0OiAoKSA9PiBnZXREb2NzKHJlZiksXG4gICAgfVxuICB9XG5cbiAgY29sbGVjdGlvbkdyb3VwKGNvbGxlY3Rpb25JZDogc3RyaW5nKTogRmlyZXN0b3JlQ29sbGVjdGlvbkdyb3VwPGFueT4ge1xuICAgIGNvbnN0IHJlZiA9IGNvbGxlY3Rpb25Hcm91cCh0aGlzLmZpcmVzdG9yZSwgY29sbGVjdGlvbklkKTtcbiAgICByZXR1cm4gIHtcbiAgICAgIF9fcmVmOiByZWYsXG4gICAgICBzdGF0ZUNoYW5nZXM6ICgpID0+IHtcbiAgICAgICAgY29uc3Qgc3ViamVjdCA9IG5ldyBTdWJqZWN0PERvY3VtZW50Q2hhbmdlQWN0aW9uPGFueT5bXT4oKTtcbiAgICAgICAgb25TbmFwc2hvdChyZWYsIChzbmFwc2hvdCkgPT4gc3ViamVjdC5uZXh0KHNuYXBzaG90LmRvY0NoYW5nZXMoKS5tYXAoY2hhbmdlID0+ICh7XG4gICAgICAgICAgdHlwZTogY2hhbmdlLnR5cGUsIHBheWxvYWQ6IHtkb2M6IGNoYW5nZS5kb2N9LFxuICAgICAgICB9KSkpKTtcbiAgICAgICAgcmV0dXJuIHN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgICB9LFxuICAgICAgZ2V0OiAoKSA9PiBnZXREb2NzKHJlZiksXG4gICAgfVxuICB9XG5cbiAgcnVuVHJhbnNhY3Rpb24oZm46IFBhcmFtZXRlcnM8dHlwZW9mIHJ1blRyYW5zYWN0aW9uPlsxXSkge1xuICAgIHJldHVybiBydW5UcmFuc2FjdGlvbih0aGlzLmZpcmVzdG9yZSwgZm4pO1xuICB9XG5cbiAgcXVlcnk8RGF0YT4oY29sbGVjdGlvbjogRmlyZXN0b3JlQ29sbGVjdGlvbjxEYXRhPiwgLi4ucXVlcnlGbkFycmF5OiBRdWVyeUZuPERhdGE+W10pOiBhbnkge1xuICAgIHJldHVybiBxdWVyeShjb2xsZWN0aW9uLl9fcmVmLCAuLi5xdWVyeUZuQXJyYXkubWFwKHF1ZXJ5Rm4gPT4gcXVlcnlGbigpKSk7XG4gIH1cblxuICBvcmRlckJ5PERhdGE+KGtleTogc3RyaW5nLCBvcmRlcjogJ2FzYycgfCAnZGVzYycgPSAnYXNjJyk6IFF1ZXJ5Rm48RGF0YT4ge1xuICAgIHJldHVybiAoKSA9PiBvcmRlckJ5KGtleSwgb3JkZXIpO1xuICB9XG5cbiAgbGltaXQ8RGF0YT4objogbnVtYmVyKTogUXVlcnlGbjxEYXRhPiB7XG4gICAgcmV0dXJuICgpID0+IGxpbWl0KG4pO1xuICB9XG4gIFxuICBiYXRjaCgpIHtcbiAgICByZXR1cm4gd3JpdGVCYXRjaCh0aGlzLmZpcmVzdG9yZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './angularfire.adapter';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2ZpcmVzdG9yZS1hbmd1bGFyLWFkYXB0ZXIvc3JjL2xpYi9hbmd1bGFyZmlyZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hbmd1bGFyZmlyZS5hZGFwdGVyJztcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AngularFireFirestoreAdapter } from './angularfire';
4
+ import * as i0 from "@angular/core";
5
+ export class FirestoreAngularAdapterModule {
6
+ }
7
+ FirestoreAngularAdapterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FirestoreAngularAdapterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ FirestoreAngularAdapterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: FirestoreAngularAdapterModule, imports: [CommonModule] });
9
+ FirestoreAngularAdapterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FirestoreAngularAdapterModule, providers: [AngularFireFirestoreAdapter], imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FirestoreAngularAdapterModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [CommonModule],
14
+ providers: [AngularFireFirestoreAdapter],
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLWFuZ3VsYXItYWRhcHRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2ZpcmVzdG9yZS1hbmd1bGFyLWFkYXB0ZXIvc3JjL2xpYi9maXJlc3RvcmUtYW5ndWxhci1hZGFwdGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTVELE1BQU0sT0FBTyw2QkFBNkI7OzBIQUE3Qiw2QkFBNkI7MkhBQTdCLDZCQUE2QixZQUg5QixZQUFZOzJIQUdYLDZCQUE2QixhQUY3QixDQUFDLDJCQUEyQixDQUFDLFlBRDlCLFlBQVk7MkZBR1gsNkJBQTZCO2tCQUp6QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUM7aUJBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZUZpcmVzdG9yZUFkYXB0ZXIgfSBmcm9tICcuL2FuZ3VsYXJmaXJlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHByb3ZpZGVyczogW0FuZ3VsYXJGaXJlRmlyZXN0b3JlQWRhcHRlcl0sXG59KVxuZXhwb3J0IGNsYXNzIEZpcmVzdG9yZUFuZ3VsYXJBZGFwdGVyTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWZpcmVzdG9yZS1hbmd1bGFyLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2ZpcmVzdG9yZS1hbmd1bGFyLWFkYXB0ZXIvc3JjL254LWRkZC1maXJlc3RvcmUtYW5ndWxhci1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,112 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i1 from '@angular/fire/firestore';
5
+ import { Timestamp, serverTimestamp, doc, setDoc, getDoc, updateDoc, deleteDoc, onSnapshot, collection, getDocs, collectionGroup, runTransaction, query, orderBy, limit, writeBatch } from '@angular/fire/firestore';
6
+ import dayjs from 'dayjs';
7
+ import { Subject } from 'rxjs';
8
+ import { FirestoreAdapter } from '@nx-ddd/firestore/adapters/base';
9
+
10
+ class AngularFireFirestoreAdapter extends FirestoreAdapter {
11
+ constructor(firestore) {
12
+ super();
13
+ this.firestore = firestore;
14
+ this.isTimestamp = (v) => v instanceof Timestamp;
15
+ this.isDate = (v) => dayjs.isDayjs(v);
16
+ }
17
+ get FieldValue() {
18
+ return { serverTimestamp };
19
+ }
20
+ get Timestamp() {
21
+ return Timestamp;
22
+ }
23
+ convertDateToTimestamp(date) {
24
+ return Timestamp.fromDate(date.toDate());
25
+ }
26
+ convertTimestampToDate(timestamp) {
27
+ return dayjs(timestamp.toDate());
28
+ }
29
+ doc(path) {
30
+ const docRef = doc(this.firestore, path);
31
+ return {
32
+ __ref: docRef,
33
+ set: (data) => setDoc(docRef, data),
34
+ get: () => getDoc(docRef),
35
+ update: (data) => updateDoc(docRef, data),
36
+ delete: () => deleteDoc(docRef),
37
+ stateChanges: () => {
38
+ const subject = new Subject();
39
+ onSnapshot(docRef, (doc) => subject.next({ id: doc.id, ref: doc.ref, data: () => doc.data() }));
40
+ return subject.asObservable();
41
+ },
42
+ };
43
+ }
44
+ collection(path) {
45
+ const ref = collection(this.firestore, path);
46
+ return {
47
+ __ref: ref,
48
+ stateChanges: () => {
49
+ const subject = new Subject();
50
+ onSnapshot(ref, (snapshot) => subject.next(snapshot.docChanges().map(change => ({
51
+ type: change.type, payload: { doc: change.doc },
52
+ }))));
53
+ return subject.asObservable();
54
+ },
55
+ get: () => getDocs(ref),
56
+ };
57
+ }
58
+ collectionGroup(collectionId) {
59
+ const ref = collectionGroup(this.firestore, collectionId);
60
+ return {
61
+ __ref: ref,
62
+ stateChanges: () => {
63
+ const subject = new Subject();
64
+ onSnapshot(ref, (snapshot) => subject.next(snapshot.docChanges().map(change => ({
65
+ type: change.type, payload: { doc: change.doc },
66
+ }))));
67
+ return subject.asObservable();
68
+ },
69
+ get: () => getDocs(ref),
70
+ };
71
+ }
72
+ runTransaction(fn) {
73
+ return runTransaction(this.firestore, fn);
74
+ }
75
+ query(collection, ...queryFnArray) {
76
+ return query(collection.__ref, ...queryFnArray.map(queryFn => queryFn()));
77
+ }
78
+ orderBy(key, order = 'asc') {
79
+ return () => orderBy(key, order);
80
+ }
81
+ limit(n) {
82
+ return () => limit(n);
83
+ }
84
+ batch() {
85
+ return writeBatch(this.firestore);
86
+ }
87
+ }
88
+ AngularFireFirestoreAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: AngularFireFirestoreAdapter, deps: [{ token: i1.Firestore }], target: i0.ɵɵFactoryTarget.Injectable });
89
+ AngularFireFirestoreAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: AngularFireFirestoreAdapter });
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: AngularFireFirestoreAdapter, decorators: [{
91
+ type: Injectable
92
+ }], ctorParameters: function () { return [{ type: i1.Firestore }]; } });
93
+
94
+ class FirestoreAngularAdapterModule {
95
+ }
96
+ FirestoreAngularAdapterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FirestoreAngularAdapterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
97
+ FirestoreAngularAdapterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: FirestoreAngularAdapterModule, imports: [CommonModule] });
98
+ FirestoreAngularAdapterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FirestoreAngularAdapterModule, providers: [AngularFireFirestoreAdapter], imports: [CommonModule] });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FirestoreAngularAdapterModule, decorators: [{
100
+ type: NgModule,
101
+ args: [{
102
+ imports: [CommonModule],
103
+ providers: [AngularFireFirestoreAdapter],
104
+ }]
105
+ }] });
106
+
107
+ /**
108
+ * Generated bundle index. Do not edit.
109
+ */
110
+
111
+ export { FirestoreAngularAdapterModule };
112
+ //# sourceMappingURL=nx-ddd-firestore-angular-adapter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nx-ddd-firestore-angular-adapter.mjs","sources":["../../../../../packages/@nx-ddd/firestore-angular-adapter/src/lib/angularfire/angularfire.adapter.ts","../../../../../packages/@nx-ddd/firestore-angular-adapter/src/lib/firestore-angular-adapter.module.ts","../../../../../packages/@nx-ddd/firestore-angular-adapter/src/nx-ddd-firestore-angular-adapter.ts"],"sourcesContent":["import { Injectable, NgModule } from '@angular/core';\nimport { \n doc, collection, collectionGroup, serverTimestamp, \n Timestamp, setDoc, getDoc, deleteDoc, getDocs, \n onSnapshot, updateDoc, Firestore, runTransaction, writeBatch,\n limit, orderBy, query\n} from '@angular/fire/firestore';\nimport dayjs from 'dayjs';\nimport { Subject } from 'rxjs';\nimport { FirestoreAdapter, QueryFn } from '@nx-ddd/firestore/adapters/base';\nimport {\n DocumentChangeAction, \n DocumentSnapshot,\n FirestoreCollection,\n FirestoreCollectionGroup,\n FirestoreDocument\n} from '@nx-ddd/firestore/interfaces';\n\n\n@Injectable()\nexport class AngularFireFirestoreAdapter extends FirestoreAdapter<dayjs.Dayjs> {\n\n constructor(public firestore: Firestore) { super() }\n\n get FieldValue() {\n return {serverTimestamp}; \n }\n\n get Timestamp(): typeof Timestamp {\n return Timestamp; \n }\n\n protected isTimestamp = (v: any): v is Timestamp => v instanceof Timestamp;\n protected isDate = (v: any): v is dayjs.Dayjs => dayjs.isDayjs(v);\n\n protected convertDateToTimestamp(date: dayjs.Dayjs): Timestamp {\n return Timestamp.fromDate(date.toDate());\n }\n\n protected convertTimestampToDate(timestamp: Timestamp): dayjs.Dayjs {\n return dayjs(timestamp.toDate())\n }\n\n doc(path: string): FirestoreDocument<any> {\n const docRef = doc(this.firestore, path);\n return {\n __ref: docRef,\n set: (data) => setDoc(docRef, data),\n get: () => getDoc(docRef),\n update: (data) => updateDoc(docRef, data),\n delete: () => deleteDoc(docRef),\n stateChanges: () => {\n const subject = new Subject<DocumentSnapshot<any>>();\n onSnapshot(docRef, (doc) => subject.next({id: doc.id, ref: doc.ref, data: () => doc.data()}));\n return subject.asObservable();\n },\n }\n }\n\n collection(path: string): FirestoreCollection<any> {\n const ref = collection(this.firestore, path);\n return {\n __ref: ref,\n stateChanges: () => {\n const subject = new Subject<DocumentChangeAction<any>[]>();\n onSnapshot(ref, (snapshot) => subject.next(snapshot.docChanges().map(change => ({\n type: change.type, payload: {doc: change.doc},\n }))));\n return subject.asObservable();\n },\n get: () => getDocs(ref),\n }\n }\n\n collectionGroup(collectionId: string): FirestoreCollectionGroup<any> {\n const ref = collectionGroup(this.firestore, collectionId);\n return {\n __ref: ref,\n stateChanges: () => {\n const subject = new Subject<DocumentChangeAction<any>[]>();\n onSnapshot(ref, (snapshot) => subject.next(snapshot.docChanges().map(change => ({\n type: change.type, payload: {doc: change.doc},\n }))));\n return subject.asObservable();\n },\n get: () => getDocs(ref),\n }\n }\n\n runTransaction(fn: Parameters<typeof runTransaction>[1]) {\n return runTransaction(this.firestore, fn);\n }\n\n query<Data>(collection: FirestoreCollection<Data>, ...queryFnArray: QueryFn<Data>[]): any {\n return query(collection.__ref, ...queryFnArray.map(queryFn => queryFn()));\n }\n\n orderBy<Data>(key: string, order: 'asc' | 'desc' = 'asc'): QueryFn<Data> {\n return () => orderBy(key, order);\n }\n\n limit<Data>(n: number): QueryFn<Data> {\n return () => limit(n);\n }\n \n batch() {\n return writeBatch(this.firestore);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularFireFirestoreAdapter } from './angularfire';\n\n@NgModule({\n imports: [CommonModule],\n providers: [AngularFireFirestoreAdapter],\n})\nexport class FirestoreAngularAdapterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i1 from '@angular/fire/firestore';
5
+ import { Timestamp, serverTimestamp, doc, setDoc, getDoc, updateDoc, deleteDoc, onSnapshot, collection, getDocs, collectionGroup, runTransaction, query, orderBy, limit, writeBatch } from '@angular/fire/firestore';
6
+ import dayjs from 'dayjs';
7
+ import { Subject } from 'rxjs';
8
+ import { FirestoreAdapter } from '@nx-ddd/firestore/adapters/base';
9
+
10
+ class AngularFireFirestoreAdapter extends FirestoreAdapter {
11
+ constructor(firestore) {
12
+ super();
13
+ this.firestore = firestore;
14
+ this.isTimestamp = (v) => v instanceof Timestamp;
15
+ this.isDate = (v) => dayjs.isDayjs(v);
16
+ }
17
+ get FieldValue() {
18
+ return { serverTimestamp };
19
+ }
20
+ get Timestamp() {
21
+ return Timestamp;
22
+ }
23
+ convertDateToTimestamp(date) {
24
+ return Timestamp.fromDate(date.toDate());
25
+ }
26
+ convertTimestampToDate(timestamp) {
27
+ return dayjs(timestamp.toDate());
28
+ }
29
+ doc(path) {
30
+ const docRef = doc(this.firestore, path);
31
+ return {
32
+ __ref: docRef,
33
+ set: (data) => setDoc(docRef, data),
34
+ get: () => getDoc(docRef),
35
+ update: (data) => updateDoc(docRef, data),
36
+ delete: () => deleteDoc(docRef),
37
+ stateChanges: () => {
38
+ const subject = new Subject();
39
+ onSnapshot(docRef, (doc) => subject.next({ id: doc.id, ref: doc.ref, data: () => doc.data() }));
40
+ return subject.asObservable();
41
+ },
42
+ };
43
+ }
44
+ collection(path) {
45
+ const ref = collection(this.firestore, path);
46
+ return {
47
+ __ref: ref,
48
+ stateChanges: () => {
49
+ const subject = new Subject();
50
+ onSnapshot(ref, (snapshot) => subject.next(snapshot.docChanges().map(change => ({
51
+ type: change.type, payload: { doc: change.doc },
52
+ }))));
53
+ return subject.asObservable();
54
+ },
55
+ get: () => getDocs(ref),
56
+ };
57
+ }
58
+ collectionGroup(collectionId) {
59
+ const ref = collectionGroup(this.firestore, collectionId);
60
+ return {
61
+ __ref: ref,
62
+ stateChanges: () => {
63
+ const subject = new Subject();
64
+ onSnapshot(ref, (snapshot) => subject.next(snapshot.docChanges().map(change => ({
65
+ type: change.type, payload: { doc: change.doc },
66
+ }))));
67
+ return subject.asObservable();
68
+ },
69
+ get: () => getDocs(ref),
70
+ };
71
+ }
72
+ runTransaction(fn) {
73
+ return runTransaction(this.firestore, fn);
74
+ }
75
+ query(collection, ...queryFnArray) {
76
+ return query(collection.__ref, ...queryFnArray.map(queryFn => queryFn()));
77
+ }
78
+ orderBy(key, order = 'asc') {
79
+ return () => orderBy(key, order);
80
+ }
81
+ limit(n) {
82
+ return () => limit(n);
83
+ }
84
+ batch() {
85
+ return writeBatch(this.firestore);
86
+ }
87
+ }
88
+ AngularFireFirestoreAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: AngularFireFirestoreAdapter, deps: [{ token: i1.Firestore }], target: i0.ɵɵFactoryTarget.Injectable });
89
+ AngularFireFirestoreAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: AngularFireFirestoreAdapter });
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: AngularFireFirestoreAdapter, decorators: [{
91
+ type: Injectable
92
+ }], ctorParameters: function () { return [{ type: i1.Firestore }]; } });
93
+
94
+ class FirestoreAngularAdapterModule {
95
+ }
96
+ FirestoreAngularAdapterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FirestoreAngularAdapterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
97
+ FirestoreAngularAdapterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: FirestoreAngularAdapterModule, imports: [CommonModule] });
98
+ FirestoreAngularAdapterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FirestoreAngularAdapterModule, providers: [AngularFireFirestoreAdapter], imports: [CommonModule] });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: FirestoreAngularAdapterModule, decorators: [{
100
+ type: NgModule,
101
+ args: [{
102
+ imports: [CommonModule],
103
+ providers: [AngularFireFirestoreAdapter],
104
+ }]
105
+ }] });
106
+
107
+ /**
108
+ * Generated bundle index. Do not edit.
109
+ */
110
+
111
+ export { FirestoreAngularAdapterModule };
112
+ //# sourceMappingURL=nx-ddd-firestore-angular-adapter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nx-ddd-firestore-angular-adapter.mjs","sources":["../../../../../packages/@nx-ddd/firestore-angular-adapter/src/lib/angularfire/angularfire.adapter.ts","../../../../../packages/@nx-ddd/firestore-angular-adapter/src/lib/firestore-angular-adapter.module.ts","../../../../../packages/@nx-ddd/firestore-angular-adapter/src/nx-ddd-firestore-angular-adapter.ts"],"sourcesContent":["import { Injectable, NgModule } from '@angular/core';\nimport { \n doc, collection, collectionGroup, serverTimestamp, \n Timestamp, setDoc, getDoc, deleteDoc, getDocs, \n onSnapshot, updateDoc, Firestore, runTransaction, writeBatch,\n limit, orderBy, query\n} from '@angular/fire/firestore';\nimport dayjs from 'dayjs';\nimport { Subject } from 'rxjs';\nimport { FirestoreAdapter, QueryFn } from '@nx-ddd/firestore/adapters/base';\nimport {\n DocumentChangeAction, \n DocumentSnapshot,\n FirestoreCollection,\n FirestoreCollectionGroup,\n FirestoreDocument\n} from '@nx-ddd/firestore/interfaces';\n\n\n@Injectable()\nexport class AngularFireFirestoreAdapter extends FirestoreAdapter<dayjs.Dayjs> {\n\n constructor(public firestore: Firestore) { super() }\n\n get FieldValue() {\n return {serverTimestamp}; \n }\n\n get Timestamp(): typeof Timestamp {\n return Timestamp; \n }\n\n protected isTimestamp = (v: any): v is Timestamp => v instanceof Timestamp;\n protected isDate = (v: any): v is dayjs.Dayjs => dayjs.isDayjs(v);\n\n protected convertDateToTimestamp(date: dayjs.Dayjs): Timestamp {\n return Timestamp.fromDate(date.toDate());\n }\n\n protected convertTimestampToDate(timestamp: Timestamp): dayjs.Dayjs {\n return dayjs(timestamp.toDate())\n }\n\n doc(path: string): FirestoreDocument<any> {\n const docRef = doc(this.firestore, path);\n return {\n __ref: docRef,\n set: (data) => setDoc(docRef, data),\n get: () => getDoc(docRef),\n update: (data) => updateDoc(docRef, data),\n delete: () => deleteDoc(docRef),\n stateChanges: () => {\n const subject = new Subject<DocumentSnapshot<any>>();\n onSnapshot(docRef, (doc) => subject.next({id: doc.id, ref: doc.ref, data: () => doc.data()}));\n return subject.asObservable();\n },\n }\n }\n\n collection(path: string): FirestoreCollection<any> {\n const ref = collection(this.firestore, path);\n return {\n __ref: ref,\n stateChanges: () => {\n const subject = new Subject<DocumentChangeAction<any>[]>();\n onSnapshot(ref, (snapshot) => subject.next(snapshot.docChanges().map(change => ({\n type: change.type, payload: {doc: change.doc},\n }))));\n return subject.asObservable();\n },\n get: () => getDocs(ref),\n }\n }\n\n collectionGroup(collectionId: string): FirestoreCollectionGroup<any> {\n const ref = collectionGroup(this.firestore, collectionId);\n return {\n __ref: ref,\n stateChanges: () => {\n const subject = new Subject<DocumentChangeAction<any>[]>();\n onSnapshot(ref, (snapshot) => subject.next(snapshot.docChanges().map(change => ({\n type: change.type, payload: {doc: change.doc},\n }))));\n return subject.asObservable();\n },\n get: () => getDocs(ref),\n }\n }\n\n runTransaction(fn: Parameters<typeof runTransaction>[1]) {\n return runTransaction(this.firestore, fn);\n }\n\n query<Data>(collection: FirestoreCollection<Data>, ...queryFnArray: QueryFn<Data>[]): any {\n return query(collection.__ref, ...queryFnArray.map(queryFn => queryFn()));\n }\n\n orderBy<Data>(key: string, order: 'asc' | 'desc' = 'asc'): QueryFn<Data> {\n return () => orderBy(key, order);\n }\n\n limit<Data>(n: number): QueryFn<Data> {\n return () => limit(n);\n }\n \n batch() {\n return writeBatch(this.firestore);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularFireFirestoreAdapter } from './angularfire';\n\n@NgModule({\n imports: [CommonModule],\n providers: [AngularFireFirestoreAdapter],\n})\nexport class FirestoreAngularAdapterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './lib/firestore-angular-adapter.module';
@@ -0,0 +1,27 @@
1
+ import { Timestamp, Firestore, runTransaction } from '@angular/fire/firestore';
2
+ import dayjs from 'dayjs';
3
+ import { FirestoreAdapter, QueryFn } from '@nx-ddd/firestore/adapters/base';
4
+ import { FirestoreCollection, FirestoreCollectionGroup, FirestoreDocument } from '@nx-ddd/firestore/interfaces';
5
+ import * as i0 from "@angular/core";
6
+ export declare class AngularFireFirestoreAdapter extends FirestoreAdapter<dayjs.Dayjs> {
7
+ firestore: Firestore;
8
+ constructor(firestore: Firestore);
9
+ get FieldValue(): {
10
+ serverTimestamp: typeof import("@firebase/firestore").serverTimestamp;
11
+ };
12
+ get Timestamp(): typeof Timestamp;
13
+ protected isTimestamp: (v: any) => v is Timestamp;
14
+ protected isDate: (v: any) => v is dayjs.Dayjs;
15
+ protected convertDateToTimestamp(date: dayjs.Dayjs): Timestamp;
16
+ protected convertTimestampToDate(timestamp: Timestamp): dayjs.Dayjs;
17
+ doc(path: string): FirestoreDocument<any>;
18
+ collection(path: string): FirestoreCollection<any>;
19
+ collectionGroup(collectionId: string): FirestoreCollectionGroup<any>;
20
+ runTransaction(fn: Parameters<typeof runTransaction>[1]): Promise<unknown>;
21
+ query<Data>(collection: FirestoreCollection<Data>, ...queryFnArray: QueryFn<Data>[]): any;
22
+ orderBy<Data>(key: string, order?: 'asc' | 'desc'): QueryFn<Data>;
23
+ limit<Data>(n: number): QueryFn<Data>;
24
+ batch(): import("@firebase/firestore").WriteBatch;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<AngularFireFirestoreAdapter, never>;
26
+ static ɵprov: i0.ɵɵInjectableDeclaration<AngularFireFirestoreAdapter>;
27
+ }
@@ -0,0 +1 @@
1
+ export * from './angularfire.adapter';
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ export declare class FirestoreAngularAdapterModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<FirestoreAngularAdapterModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FirestoreAngularAdapterModule, never, [typeof i1.CommonModule], never>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<FirestoreAngularAdapterModule>;
7
+ }
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@nx-ddd/firestore-angular-adapter",
3
+ "version": "0.0.0-PLACEHOLDER",
4
+ "dependencies": {
5
+ "tslib": "^2.3.0"
6
+ },
7
+ "module": "fesm2015/nx-ddd-firestore-angular-adapter.mjs",
8
+ "es2020": "fesm2020/nx-ddd-firestore-angular-adapter.mjs",
9
+ "esm2020": "esm2020/nx-ddd-firestore-angular-adapter.mjs",
10
+ "fesm2020": "fesm2020/nx-ddd-firestore-angular-adapter.mjs",
11
+ "fesm2015": "fesm2015/nx-ddd-firestore-angular-adapter.mjs",
12
+ "typings": "index.d.ts",
13
+ "exports": {
14
+ "./package.json": {
15
+ "default": "./package.json"
16
+ },
17
+ ".": {
18
+ "types": "./index.d.ts",
19
+ "esm2020": "./esm2020/nx-ddd-firestore-angular-adapter.mjs",
20
+ "es2020": "./fesm2020/nx-ddd-firestore-angular-adapter.mjs",
21
+ "es2015": "./fesm2015/nx-ddd-firestore-angular-adapter.mjs",
22
+ "node": "./fesm2015/nx-ddd-firestore-angular-adapter.mjs",
23
+ "default": "./fesm2020/nx-ddd-firestore-angular-adapter.mjs"
24
+ }
25
+ },
26
+ "sideEffects": false,
27
+ "peerDependencies": {
28
+ "@angular/core": "15.2.3",
29
+ "@angular/fire": "7.5.0",
30
+ "dayjs": "1.10.7",
31
+ "rxjs": "7.5.0",
32
+ "@nx-ddd/firestore": "0.0.0-PLACEHOLDER",
33
+ "@angular/common": "15.2.3"
34
+ }
35
+ }