@nx-ddd/firestore 19.8.2 → 19.9.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx-ddd-firestore-adapters-admin.mjs","sources":["../tmp-esm2022/adapters/admin/admin.adapter.js","../tmp-esm2022/adapters/admin/nx-ddd-firestore-adapters-admin.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport admin from 'firebase-admin';\nimport { Subject } from 'rxjs';\nimport { FirestoreAdapter, provideFirestoreAdapter as _provideFirestoreAdapter } from '@nx-ddd/firestore';\nimport * as i0 from \"@angular/core\";\nexport function wrapCollectionLike(origin) {\n return {\n __ref: origin,\n stateChanges: () => {\n const subject = new Subject();\n origin.onSnapshot(snapshot => {\n const actions = snapshot.docChanges().map(change => ({\n type: change.type, payload: { doc: change.doc },\n }));\n subject.next(actions);\n });\n return subject.asObservable();\n },\n get: () => origin.get(),\n count: () => origin.get().then(snapshot => snapshot.size),\n };\n}\nexport function unwrapCollectionLike(collection) {\n return collection.__ref;\n}\nexport class AdminFirestoreAdapter extends FirestoreAdapter {\n constructor() {\n super(...arguments);\n this.firestore = admin.firestore();\n }\n get FieldValue() {\n return admin.firestore.FieldValue;\n }\n get Timestamp() {\n return admin.firestore.Timestamp;\n }\n get FieldPath() {\n return admin.firestore.FieldPath;\n }\n isTimestamp(v) {\n return v instanceof this.Timestamp;\n }\n isFieldValue(v) {\n return v instanceof this.FieldValue;\n }\n convertDateToTimestamp(date) {\n if (this.dateAdapter.isDate(date) && this.dateAdapter.isValid(date)) {\n return admin.firestore.Timestamp.fromDate(this.dateAdapter.getJsDate(date));\n }\n throw new Error(`Invalid date: ${date}`);\n }\n doc(path) {\n const docRef = this.firestore.doc(path);\n return {\n __ref: docRef,\n exists: () => docRef.get().then(snapshot => snapshot.exists),\n set: (data, options) => docRef.set(data, options),\n get: () => docRef.get(),\n update: (data) => docRef.update(data),\n delete: () => docRef.delete(),\n };\n }\n collection(path) {\n const collectionRef = this.firestore.collection(path);\n return wrapCollectionLike(collectionRef);\n }\n collectionGroup(collectionId) {\n const collectionRef = this.firestore.collectionGroup(collectionId);\n return wrapCollectionLike(collectionRef);\n }\n runTransaction(updateFunction) {\n return this.firestore.runTransaction(updateFunction);\n }\n query(collection, ...queryFnArray) {\n const ref = unwrapCollectionLike(collection);\n const query = queryFnArray.reduce((_ref, queryFn) => queryFn(_ref), ref);\n return wrapCollectionLike(query);\n }\n where(key, evaluation, value) {\n return (collection) => collection.where(key, evaluation, value);\n }\n orderBy(key, order = 'asc') {\n return (collection) => collection.orderBy(key, order);\n }\n limit(n) {\n return (collection) => collection.limit(n);\n }\n batch() {\n return this.firestore.batch();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AdminFirestoreAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AdminFirestoreAdapter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AdminFirestoreAdapter, decorators: [{\n type: Injectable\n }] });\nexport function provideFirestoreAdapter() {\n return _provideFirestoreAdapter(AdminFirestoreAdapter);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4uYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvYWRhcHRlcnMvYWRtaW4vYWRtaW4uYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFRL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFzQyx1QkFBdUIsSUFBSSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQTJDOUksTUFBTSxVQUFVLGtCQUFrQixDQUFtQixNQUFTO0lBQzVELE9BQU87UUFDTCxLQUFLLEVBQUUsTUFBTTtRQUNiLFlBQVksRUFBRSxHQUFHLEVBQUU7WUFDakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQStCLENBQUM7WUFDM0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDM0IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ25ELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFDO2lCQUM5QyxDQUFDLENBQUMsQ0FBQztnQkFDSixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUNELEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ3ZCLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztLQUN2QixDQUFDO0FBQ3ZDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBSWxDLFVBQXFEO0lBRXJELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQztBQUMxQixDQUFDO0FBR0QsTUFBTSxPQUFPLHFCQUE0QixTQUFRLGdCQUFzQjtJQUR2RTs7UUFFWSxjQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0tBaUd6QztJQS9GQyxJQUFJLFVBQVU7UUFDWixPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFUyxXQUFXLENBQUMsQ0FBTTtRQUMxQixPQUFPLENBQUMsWUFBWSxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFFUyxZQUFZLENBQUMsQ0FBTTtRQUMzQixPQUFPLENBQUMsWUFBWSxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUFVO1FBQy9CLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwRSxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWTtRQUNkLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLE9BQU87WUFDTCxLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUM1RCxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBUSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7WUFDbEQsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNyQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtTQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FHUixJQUFZO1FBQ1osTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsT0FBTyxrQkFBa0IsQ0FBQyxhQUFhLENBQW1ELENBQUM7SUFDN0YsQ0FBQztJQUVELGVBQWUsQ0FHYixZQUFvQjtRQUNwQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRSxPQUFPLGtCQUFrQixDQUFDLGFBQWEsQ0FBK0MsQ0FBQztJQUN6RixDQUFDO0lBRUQsY0FBYyxDQUFJLGNBQXdEO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FJSCxVQUFxRCxFQUNyRCxHQUFHLFlBQWtEO1FBRXJELE1BQU0sR0FBRyxHQUFHLG9CQUFvQixDQUE0QixVQUFVLENBQUMsQ0FBQztRQUN4RSxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFxQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxLQUFLLENBR0gsR0FBVyxFQUFFLFVBQXlCLEVBQUUsS0FBYztRQUN0RCxPQUFPLENBQUMsVUFBNkMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxPQUFPLENBR0wsR0FBVyxFQUFFLFFBQXdCLEtBQUs7UUFDMUMsT0FBTyxDQUFDLFVBQTZDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxLQUFLLENBR0gsQ0FBUztRQUNULE9BQU8sQ0FBQyxVQUE2QyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7OEdBakdVLHFCQUFxQjtrSEFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVOztBQXFHWCxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU8sd0JBQXdCLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGFkbWluIGZyb20gJ2ZpcmViYXNlLWFkbWluJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERvY3VtZW50RGF0YSwgVHJhbnNhY3Rpb24gfSBmcm9tICdmaXJlYmFzZS1hZG1pbi9maXJlc3RvcmUnO1xuaW1wb3J0IHtcbiAgRG9jdW1lbnRDaGFuZ2VBY3Rpb24sXG4gIERvY3VtZW50UmVmZXJlbmNlLFxuICBDb2xsZWN0aW9uUmVmZXJlbmNlIGFzIF9Db2xsZWN0aW9uUmVmZXJlbmNlLFxuICBDb2xsZWN0aW9uR3JvdXAgYXMgX0NvbGxlY3Rpb25Hcm91cCxcbiAgUXVlcnkgYXMgX1F1ZXJ5IH0gZnJvbSAnQG54LWRkZC9maXJlc3RvcmUnO1xuaW1wb3J0IHsgRmlyZXN0b3JlQWRhcHRlciwgUXVlcnlGbiBhcyBfUXVlcnlGbiwgV2hlcmVGaWx0ZXJPcCwgcHJvdmlkZUZpcmVzdG9yZUFkYXB0ZXIgYXMgX3Byb3ZpZGVGaXJlc3RvcmVBZGFwdGVyIH0gZnJvbSAnQG54LWRkZC9maXJlc3RvcmUnO1xuXG50eXBlIENvbGxlY3Rpb25SZWZlcmVuY2U8XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4+ID0gX0NvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgYWRtaW4uZmlyZXN0b3JlLkNvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4+O1xuXG50eXBlIENvbGxlY3Rpb25Hcm91cDxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YVxuPiA9IF9Db2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgYWRtaW4uZmlyZXN0b3JlLkNvbGxlY3Rpb25Hcm91cDxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPj47XG5cbnR5cGUgUXVlcnk8XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGFcbj4gPSBfUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgYWRtaW4uZmlyZXN0b3JlLlF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+PjtcblxudHlwZSBRdWVyeUZuPFxuICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhXG4+ID0gX1F1ZXJ5Rm48QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgYWRtaW4uZmlyZXN0b3JlLlF1ZXJ5PlxuXG50eXBlIE9yaWdpbjxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbj4gPSBhZG1pbi5maXJlc3RvcmUuQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuICB8IGFkbWluLmZpcmVzdG9yZS5Db2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT5cbiAgfCBhZG1pbi5maXJlc3RvcmUuUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG5cbnR5cGUgQ29sbGVjdGlvbkxpa2U8XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4+ID0gQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiBcbiAgfCBDb2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT5cbiAgfCBRdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcblxuLy8gVXRpbGl0eSB0eXBlIHRvIG1hcCBPcmlnaW4gdG8gQ29sbGVjdGlvbkxpa2VcbnR5cGUgSW5mZXJDb2xsZWN0aW9uTGlrZTxPIGV4dGVuZHMgT3JpZ2luPiA9IFxuICBPIGV4dGVuZHMgYWRtaW4uZmlyZXN0b3JlLkNvbGxlY3Rpb25SZWZlcmVuY2U8aW5mZXIgQSwgaW5mZXIgQj4gPyBDb2xsZWN0aW9uUmVmZXJlbmNlPEEsIEI+IDpcbiAgTyBleHRlbmRzIGFkbWluLmZpcmVzdG9yZS5Db2xsZWN0aW9uR3JvdXA8aW5mZXIgQSwgaW5mZXIgQj4gPyBDb2xsZWN0aW9uR3JvdXA8QSwgQj4gOlxuICBPIGV4dGVuZHMgYWRtaW4uZmlyZXN0b3JlLlF1ZXJ5PGluZmVyIEEsIGluZmVyIEI+ID8gUXVlcnk8QSwgQj4gOlxuICBuZXZlcjtcblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBDb2xsZWN0aW9uTGlrZTxPIGV4dGVuZHMgT3JpZ2luPihvcmlnaW46IE8pOiBJbmZlckNvbGxlY3Rpb25MaWtlPE8+IHtcbiAgcmV0dXJuIHtcbiAgICBfX3JlZjogb3JpZ2luLFxuICAgIHN0YXRlQ2hhbmdlczogKCkgPT4ge1xuICAgICAgY29uc3Qgc3ViamVjdCA9IG5ldyBTdWJqZWN0PERvY3VtZW50Q2hhbmdlQWN0aW9uPGFueT5bXT4oKTtcbiAgICAgIG9yaWdpbi5vblNuYXBzaG90KHNuYXBzaG90ID0+IHtcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IHNuYXBzaG90LmRvY0NoYW5nZXMoKS5tYXAoY2hhbmdlID0+ICh7XG4gICAgICAgICAgdHlwZTogY2hhbmdlLnR5cGUsIHBheWxvYWQ6IHtkb2M6IGNoYW5nZS5kb2N9LFxuICAgICAgICB9KSk7XG4gICAgICAgIHN1YmplY3QubmV4dChhY3Rpb25zKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfSxcbiAgICBnZXQ6ICgpID0+IG9yaWdpbi5nZXQoKSxcbiAgICBjb3VudDogKCkgPT4gb3JpZ2luLmdldCgpLnRoZW4oc25hcHNob3QgPT4gc25hcHNob3Quc2l6ZSksXG4gIH0gYXMgbmV2ZXIgYXMgSW5mZXJDb2xsZWN0aW9uTGlrZTxPPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVud3JhcENvbGxlY3Rpb25MaWtlPFxuICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhXG4+KFxuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTGlrZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuKTogT3JpZ2luPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IHtcbiAgcmV0dXJuIGNvbGxlY3Rpb24uX19yZWY7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBZG1pbkZpcmVzdG9yZUFkYXB0ZXI8RGF0ZT4gZXh0ZW5kcyBGaXJlc3RvcmVBZGFwdGVyPERhdGU+IHtcbiAgcHJvdGVjdGVkIGZpcmVzdG9yZSA9IGFkbWluLmZpcmVzdG9yZSgpO1xuXG4gIGdldCBGaWVsZFZhbHVlKCk6IHR5cGVvZiBhZG1pbi5maXJlc3RvcmUuRmllbGRWYWx1ZSB7XG4gICAgcmV0dXJuIGFkbWluLmZpcmVzdG9yZS5GaWVsZFZhbHVlOyAgXG4gIH1cblxuICBnZXQgVGltZXN0YW1wKCk6IHR5cGVvZiBhZG1pbi5maXJlc3RvcmUuVGltZXN0YW1wIHtcbiAgICByZXR1cm4gYWRtaW4uZmlyZXN0b3JlLlRpbWVzdGFtcDsgIFxuICB9XG5cbiAgZ2V0IEZpZWxkUGF0aCgpOiB0eXBlb2YgYWRtaW4uZmlyZXN0b3JlLkZpZWxkUGF0aCB7XG4gICAgcmV0dXJuIGFkbWluLmZpcmVzdG9yZS5GaWVsZFBhdGg7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNUaW1lc3RhbXAodjogYW55KTogdiBpcyBhZG1pbi5maXJlc3RvcmUuVGltZXN0YW1wIHtcbiAgICByZXR1cm4gdiBpbnN0YW5jZW9mIHRoaXMuVGltZXN0YW1wO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRmllbGRWYWx1ZSh2OiBhbnkpOiB2IGlzIGFkbWluLmZpcmVzdG9yZS5GaWVsZFZhbHVlIHtcbiAgICByZXR1cm4gdiBpbnN0YW5jZW9mIHRoaXMuRmllbGRWYWx1ZTtcbiAgfVxuXG4gIGNvbnZlcnREYXRlVG9UaW1lc3RhbXAoZGF0ZTogRGF0ZSk6IGFkbWluLmZpcmVzdG9yZS5UaW1lc3RhbXAge1xuICAgIGlmICh0aGlzLmRhdGVBZGFwdGVyLmlzRGF0ZShkYXRlKSAmJiB0aGlzLmRhdGVBZGFwdGVyLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHJldHVybiBhZG1pbi5maXJlc3RvcmUuVGltZXN0YW1wLmZyb21EYXRlKHRoaXMuZGF0ZUFkYXB0ZXIuZ2V0SnNEYXRlKGRhdGUpKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRhdGU6ICR7ZGF0ZX1gKTtcbiAgfVxuXG4gIGRvYyhwYXRoOiBzdHJpbmcpOiBEb2N1bWVudFJlZmVyZW5jZTxhbnksIGFkbWluLmZpcmVzdG9yZS5Eb2N1bWVudFJlZmVyZW5jZT4ge1xuICAgIGNvbnN0IGRvY1JlZiA9IHRoaXMuZmlyZXN0b3JlLmRvYyhwYXRoKTtcbiAgICByZXR1cm4ge1xuICAgICAgX19yZWY6IGRvY1JlZixcbiAgICAgIGV4aXN0czogKCkgPT4gZG9jUmVmLmdldCgpLnRoZW4oc25hcHNob3QgPT4gc25hcHNob3QuZXhpc3RzKSxcbiAgICAgIHNldDogKGRhdGEsIG9wdGlvbnM/KSA9PiBkb2NSZWYuc2V0KGRhdGEsIG9wdGlvbnMpLFxuICAgICAgZ2V0OiAoKSA9PiBkb2NSZWYuZ2V0KCksXG4gICAgICB1cGRhdGU6IChkYXRhKSA9PiBkb2NSZWYudXBkYXRlKGRhdGEpLFxuICAgICAgZGVsZXRlOiAoKSA9PiBkb2NSZWYuZGVsZXRlKCksXG4gICAgfTtcbiAgfVxuXG4gIGNvbGxlY3Rpb248XG4gICAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICAgIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuICA+KHBhdGg6IHN0cmluZyk6IENvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25SZWYgPSB0aGlzLmZpcmVzdG9yZS5jb2xsZWN0aW9uKHBhdGgpO1xuICAgIHJldHVybiB3cmFwQ29sbGVjdGlvbkxpa2UoY29sbGVjdGlvblJlZikgYXMgQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcbiAgfVxuXG4gIGNvbGxlY3Rpb25Hcm91cDxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oY29sbGVjdGlvbklkOiBzdHJpbmcpOiBDb2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25SZWYgPSB0aGlzLmZpcmVzdG9yZS5jb2xsZWN0aW9uR3JvdXAoY29sbGVjdGlvbklkKTtcbiAgICByZXR1cm4gd3JhcENvbGxlY3Rpb25MaWtlKGNvbGxlY3Rpb25SZWYpIGFzIENvbGxlY3Rpb25Hcm91cDxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcbiAgfVxuICBcbiAgcnVuVHJhbnNhY3Rpb248VD4odXBkYXRlRnVuY3Rpb246ICh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IFByb21pc2U8VD4pIHtcbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmUucnVuVHJhbnNhY3Rpb24odXBkYXRlRnVuY3Rpb24pO1xuICB9XG5cbiAgcXVlcnk8XG4gICAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICAgIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuICA+KFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb25MaWtlPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+LFxuICAgIC4uLnF1ZXJ5Rm5BcnJheTogUXVlcnlGbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPltdXG4gICk6IFF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IHtcbiAgICBjb25zdCByZWYgPSB1bndyYXBDb2xsZWN0aW9uTGlrZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPihjb2xsZWN0aW9uKTtcbiAgICBjb25zdCBxdWVyeSA9IHF1ZXJ5Rm5BcnJheS5yZWR1Y2UoKF9yZWYsIHF1ZXJ5Rm4pID0+IHF1ZXJ5Rm4oX3JlZiksIHJlZik7XG4gICAgcmV0dXJuIHdyYXBDb2xsZWN0aW9uTGlrZShxdWVyeSkgYXMgUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG4gIH1cblxuICB3aGVyZTxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oa2V5OiBzdHJpbmcsIGV2YWx1YXRpb246IFdoZXJlRmlsdGVyT3AsIHZhbHVlOiB1bmtub3duKTogUXVlcnlGbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gICAgcmV0dXJuIChjb2xsZWN0aW9uOiBPcmlnaW48QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4pID0+IGNvbGxlY3Rpb24ud2hlcmUoa2V5LCBldmFsdWF0aW9uLCB2YWx1ZSk7ICBcbiAgfVxuXG4gIG9yZGVyQnk8XG4gICAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICAgIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuICA+KGtleTogc3RyaW5nLCBvcmRlcjogJ2FzYycgfCAnZGVzYycgPSAnYXNjJyk6IFF1ZXJ5Rm48QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4ge1xuICAgIHJldHVybiAoY29sbGVjdGlvbjogT3JpZ2luPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+KSA9PiBjb2xsZWN0aW9uLm9yZGVyQnkoa2V5LCBvcmRlcik7XG4gIH1cblxuICBsaW1pdDxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4objogbnVtYmVyKTogUXVlcnlGbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gICAgcmV0dXJuIChjb2xsZWN0aW9uOiBPcmlnaW48QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4pID0+IGNvbGxlY3Rpb24ubGltaXQobik7XG4gIH1cblxuICBiYXRjaCgpIHtcbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmUuYmF0Y2goKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUZpcmVzdG9yZUFkYXB0ZXIoKSB7XG4gIHJldHVybiBfcHJvdmlkZUZpcmVzdG9yZUFkYXB0ZXIoQWRtaW5GaXJlc3RvcmVBZGFwdGVyKTtcbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWZpcmVzdG9yZS1hZGFwdGVycy1hZG1pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvYWRhcHRlcnMvYWRtaW4vbngtZGRkLWZpcmVzdG9yZS1hZGFwdGVycy1hZG1pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["_provideFirestoreAdapter"],"mappings":";;;;;;AAKO,SAAS,kBAAkB,CAAC,MAAM,EAAE;AAC3C,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,MAAM;AACrB,QAAQ,YAAY,EAAE,MAAM;AAC5B,YAAY,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;AACzC,YAAY,MAAM,CAAC,UAAU,CAAC,QAAQ,IAAI;AAC1C,gBAAgB,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK;AACrE,oBAAoB,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;AACnE,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AACrC,YAAY,CAAC,CAAC;AACd,YAAY,OAAO,OAAO,CAAC,YAAY,EAAE;AACzC,QAAQ,CAAC;AACT,QAAQ,GAAG,EAAE,MAAM,MAAM,CAAC,GAAG,EAAE;AAC/B,QAAQ,KAAK,EAAE,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC;AACjE,KAAK;AACL;AACO,SAAS,oBAAoB,CAAC,UAAU,EAAE;AACjD,IAAI,OAAO,UAAU,CAAC,KAAK;AAC3B;AACO,MAAM,qBAAqB,SAAS,gBAAgB,CAAC;AAC5D,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE;AAC1C,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,KAAK,CAAC,SAAS,CAAC,UAAU;AACzC,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,KAAK,CAAC,SAAS,CAAC,SAAS;AACxC,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,KAAK,CAAC,SAAS,CAAC,SAAS;AACxC,IAAI;AACJ,IAAI,WAAW,CAAC,CAAC,EAAE;AACnB,QAAQ,OAAO,CAAC,YAAY,IAAI,CAAC,SAAS;AAC1C,IAAI;AACJ,IAAI,YAAY,CAAC,CAAC,EAAE;AACpB,QAAQ,OAAO,CAAC,YAAY,IAAI,CAAC,UAAU;AAC3C,IAAI;AACJ,IAAI,sBAAsB,CAAC,IAAI,EAAE;AACjC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC7E,YAAY,OAAO,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACvF,QAAQ;AACR,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;AAChD,IAAI;AACJ,IAAI,GAAG,CAAC,IAAI,EAAE;AACd,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/C,QAAQ,OAAO;AACf,YAAY,KAAK,EAAE,MAAM;AACzB,YAAY,MAAM,EAAE,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC;AACxE,YAAY,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;AAC7D,YAAY,GAAG,EAAE,MAAM,MAAM,CAAC,GAAG,EAAE;AACnC,YAAY,MAAM,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACjD,YAAY,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE;AACzC,SAAS;AACT,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;AAC7D,QAAQ,OAAO,kBAAkB,CAAC,aAAa,CAAC;AAChD,IAAI;AACJ,IAAI,eAAe,CAAC,YAAY,EAAE;AAClC,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,YAAY,CAAC;AAC1E,QAAQ,OAAO,kBAAkB,CAAC,aAAa,CAAC;AAChD,IAAI;AACJ,IAAI,cAAc,CAAC,cAAc,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,cAAc,CAAC;AAC5D,IAAI;AACJ,IAAI,KAAK,CAAC,UAAU,EAAE,GAAG,YAAY,EAAE;AACvC,QAAQ,MAAM,GAAG,GAAG,oBAAoB,CAAC,UAAU,CAAC;AACpD,QAAQ,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;AAChF,QAAQ,OAAO,kBAAkB,CAAC,KAAK,CAAC;AACxC,IAAI;AACJ,IAAI,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE;AAClC,QAAQ,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC;AACvE,IAAI;AACJ,IAAI,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,KAAK,EAAE;AAChC,QAAQ,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;AAC7D,IAAI;AACJ,IAAI,KAAK,CAAC,CAAC,EAAE;AACb,QAAQ,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,IAAI;AACJ,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACrC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC1L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;AAC3I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;AACN,SAAS,uBAAuB,GAAG;AAC1C,IAAI,OAAOA,yBAAwB,CAAC,qBAAqB,CAAC;AAC1D;;AClGA;AACA;AACA;;;;"}
|
|
1
|
+
{"version":3,"file":"nx-ddd-firestore-adapters-admin.mjs","sources":["../tmp-esm2022/adapters/admin/admin.adapter.js","../tmp-esm2022/adapters/admin/nx-ddd-firestore-adapters-admin.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport admin from 'firebase-admin';\nimport { Subject } from 'rxjs';\nimport { FirestoreAdapter, provideFirestoreAdapter as _provideFirestoreAdapter } from '@nx-ddd/firestore';\nimport * as i0 from \"@angular/core\";\nexport function wrapCollectionLike(origin) {\n return {\n __ref: origin,\n stateChanges: () => {\n const subject = new Subject();\n origin.onSnapshot(snapshot => {\n const actions = snapshot.docChanges().map(change => ({\n type: change.type, payload: { doc: change.doc },\n }));\n subject.next(actions);\n });\n return subject.asObservable();\n },\n get: () => origin.get(),\n count: () => origin.get().then(snapshot => snapshot.size),\n };\n}\nexport function unwrapCollectionLike(collection) {\n return collection.__ref;\n}\nexport class AdminFirestoreAdapter extends FirestoreAdapter {\n constructor() {\n super(...arguments);\n this.firestore = admin.firestore();\n }\n get FieldValue() {\n return admin.firestore.FieldValue;\n }\n get Timestamp() {\n return admin.firestore.Timestamp;\n }\n get FieldPath() {\n return admin.firestore.FieldPath;\n }\n isTimestamp(v) {\n return v instanceof this.Timestamp;\n }\n isFieldValue(v) {\n return v instanceof this.FieldValue;\n }\n convertDateToTimestamp(date) {\n if (this.dateAdapter.isDate(date) && this.dateAdapter.isValid(date)) {\n return admin.firestore.Timestamp.fromDate(this.dateAdapter.getJsDate(date));\n }\n throw new Error(`Invalid date: ${date}`);\n }\n doc(path) {\n const docRef = this.firestore.doc(path);\n return {\n __ref: docRef,\n exists: () => docRef.get().then(snapshot => snapshot.exists),\n set: (data, options) => docRef.set(data, options),\n get: () => docRef.get(),\n update: (data) => docRef.update(data),\n delete: () => docRef.delete(),\n };\n }\n collection(path) {\n const collectionRef = this.firestore.collection(path);\n return wrapCollectionLike(collectionRef);\n }\n collectionGroup(collectionId) {\n const collectionRef = this.firestore.collectionGroup(collectionId);\n return wrapCollectionLike(collectionRef);\n }\n runTransaction(updateFunction) {\n return this.firestore.runTransaction(updateFunction);\n }\n query(collection, ...queryFnArray) {\n const ref = unwrapCollectionLike(collection);\n const query = queryFnArray.reduce((_ref, queryFn) => queryFn(_ref), ref);\n return wrapCollectionLike(query);\n }\n where(key, evaluation, value) {\n return (collection) => collection.where(key, evaluation, value);\n }\n orderBy(key, order = 'asc') {\n return (collection) => collection.orderBy(key, order);\n }\n limit(n) {\n return (collection) => collection.limit(n);\n }\n batch() {\n return this.firestore.batch();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AdminFirestoreAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AdminFirestoreAdapter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AdminFirestoreAdapter, decorators: [{\n type: Injectable\n }] });\nexport function provideFirestoreAdapter() {\n return _provideFirestoreAdapter(AdminFirestoreAdapter);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4uYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvYWRhcHRlcnMvYWRtaW4vYWRtaW4uYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFRL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFzQyx1QkFBdUIsSUFBSSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQTJDOUksTUFBTSxVQUFVLGtCQUFrQixDQUFtQixNQUFTO0lBQzVELE9BQU87UUFDTCxLQUFLLEVBQUUsTUFBTTtRQUNiLFlBQVksRUFBRSxHQUFHLEVBQUU7WUFDakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQStCLENBQUM7WUFDM0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDM0IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ25ELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFDO2lCQUM5QyxDQUFDLENBQUMsQ0FBQztnQkFDSixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUNELEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ3ZCLEtBQUssRUFBRSxH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SCxVQUFxRCxFQUNyRCxHQUFHLFlBQWtEO1FBRXJELE1BQU0sR0FBRyxHQUFHLG9CQUFvQixDQUE0QixVQUFVLENBQUMsQ0FBQztRQUN4RSxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFxQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxLQUFLLENBR0gsR0FBVyxFQUFFLFVBQXlCLEVBQUUsS0FBYztRQUN0RCxPQUFPLENBQUMsVUFBNkMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxPQUFPLENBR0wsR0FBVyxFQUFFLFFBQXdCLEtBQUs7UUFDMUMsT0FBTyxDQUFDLFVBQTZDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxLQUFLLENBR0gsQ0FBUztRQUNULE9BQU8sQ0FBQyxVQUE2QyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7OEdBakdVLHFCQUFxQjtrSEFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVOztBQXFHWCxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU8sd0JBQXdCLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGFkbWluIGZyb20gJ2ZpcmViYXNlLWFkbWluJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERvY3VtZW50RGF0YSwgVHJhbnNhY3Rpb24gfSBmcm9tICdmaXJlYmFzZS1hZG1pbi9maXJlc3RvcmUnO1xuaW1wb3J0IHtcbiAgRG9jdW1lbnRDaGFuZ2VBY3Rpb24sXG4gIERvY3VtZW50UmVmZXJlbmNlLFxuICBDb2xsZWN0aW9uUmVmZXJlbmNlIGFzIF9Db2xsZWN0aW9uUmVmZXJlbmNlLFxuICBDb2xsZWN0aW9uR3JvdXAgYXMgX0NvbGxlY3Rpb25Hcm91cCxcbiAgUXVlcnkgYXMgX1F1ZXJ5IH0gZnJvbSAnQG54LWRkZC9maXJlc3RvcmUnO1xuaW1wb3J0IHsgRmlyZXN0b3JlQWRhcHRlciwgUXVlcnlGbiBhcyBfUXVlcnlGbiwgV2hlcmVGaWx0ZXJPcCwgcHJvdmlkZUZpcmVzdG9yZUFkYXB0ZXIgYXMgX3Byb3ZpZGVGaXJlc3RvcmVBZGFwdGVyIH0gZnJvbSAnQG54LWRkZC9maXJlc3RvcmUnO1xuXG50eXBlIENvbGxlY3Rpb25SZWZlcmVuY2U8XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4+ID0gX0NvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgYWRtaW4uZmlyZXN0b3JlLkNvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4+O1xuXG50eXBlIENvbGxlY3Rpb25Hcm91cDxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YVxuPiA9IF9Db2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgYWRtaW4uZmlyZXN0b3JlLkNvbGxlY3Rpb25Hcm91cDxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPj47XG5cbnR5cGUgUXVlcnk8XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGFcbj4gPSBfUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgYWRtaW4uZmlyZXN0b3JlLlF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+PjtcblxudHlwZSBRdWVyeUZuPFxuICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhXG4+ID0gX1F1ZXJ5Rm48QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgYWRtaW4uZmlyZXN0b3JlLlF1ZXJ5PlxuXG50eXBlIE9yaWdpbjxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbj4gPSBhZG1pbi5maXJlc3RvcmUuQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuICB8IGFkbWluLmZpcmVzdG9yZS5Db2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT5cbiAgfCBhZG1pbi5maXJlc3RvcmUuUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG5cbnR5cGUgQ29sbGVjdGlvbkxpa2U8XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4+ID0gQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiBcbiAgfCBDb2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT5cbiAgfCBRdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcblxuLy8gVXRpbGl0eSB0eXBlIHRvIG1hcCBPcmlnaW4gdG8gQ29sbGVjdGlvbkxpa2VcbnR5cGUgSW5mZXJDb2xsZWN0aW9uTGlrZTxPIGV4dGVuZHMgT3JpZ2luPiA9IFxuICBPIGV4dGVuZHMgYWRtaW4uZmlyZXN0b3JlLkNvbGxlY3Rpb25SZWZlcmVuY2U8aW5mZXIgQSwgaW5mZXIgQj4gPyBDb2xsZWN0aW9uUmVmZXJlbmNlPEEsIEI+IDpcbiAgTyBleHRlbmRzIGFkbWluLmZpcmVzdG9yZS5Db2xsZWN0aW9uR3JvdXA8aW5mZXIgQSwgaW5mZXIgQj4gPyBDb2xsZWN0aW9uR3JvdXA8QSwgQj4gOlxuICBPIGV4dGVuZHMgYWRtaW4uZmlyZXN0b3JlLlF1ZXJ5PGluZmVyIEEsIGluZmVyIEI+ID8gUXVlcnk8QSwgQj4gOlxuICBuZXZlcjtcblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBDb2xsZWN0aW9uTGlrZTxPIGV4dGVuZHMgT3JpZ2luPihvcmlnaW46IE8pOiBJbmZlckNvbGxlY3Rpb25MaWtlPE8+IHtcbiAgcmV0dXJuIHtcbiAgICBfX3JlZjogb3JpZ2luLFxuICAgIHN0YXRlQ2hhbmdlczogKCkgPT4ge1xuICAgICAgY29uc3Qgc3ViamVjdCA9IG5ldyBTdWJqZWN0PERvY3VtZW50Q2hhbmdlQWN0aW9uPGFueT5bXT4oKTtcbiAgICAgIG9yaWdpbi5vblNuYXBzaG90KHNuYXBzaG90ID0+IHtcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IHNuYXBzaG90LmRvY0NoYW5nZXMoKS5tYXAoY2hhbmdlID0+ICh7XG4gICAgICAgICAgdHlwZTogY2hhbmdlLnR5cGUsIHBheWxvYWQ6IHtkb2M6IGNoYW5nZS5kb2N9LFxuICAgICAgICB9KSk7XG4gICAgICAgIHN1YmplY3QubmV4dChhY3Rpb25zKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfSxcbiAgICBnZXQ6ICgpID0+IG9yaWdpbi5nZXQoKSxcbiAgICBjb3VudDogKCkgPT4gb3JpZ2luLmdldCgpLnRoZW4oc25hcHNob3QgPT4gc25hcHNob3Quc2l6ZSksXG4gIH0gYXMgbmV2ZXIgYXMgSW5mZXJDb2xsZWN0aW9uTGlrZTxPPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVud3JhcENvbGxlY3Rpb25MaWtlPFxuICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhXG4+KFxuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTGlrZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuKTogT3JpZ2luPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IHtcbiAgcmV0dXJuIGNvbGxlY3Rpb24uX19yZWY7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBZG1pbkZpcmVzdG9yZUFkYXB0ZXI8RGF0ZT4gZXh0ZW5kcyBGaXJlc3RvcmVBZGFwdGVyPERhdGU+IHtcbiAgcHJvdGVjdGVkIGZpcmVzdG9yZSA9IGFkbWluLmZpcmVzdG9yZSgpO1xuXG4gIGdldCBGaWVsZFZhbHVlKCk6IHR5cGVvZiBhZG1pbi5maXJlc3RvcmUuRmllbGRWYWx1ZSB7XG4gICAgcmV0dXJuIGFkbWluLmZpcmVzdG9yZS5GaWVsZFZhbHVlOyAgXG4gIH1cblxuICBnZXQgVGltZXN0YW1wKCk6IHR5cGVvZiBhZG1pbi5maXJlc3RvcmUuVGltZXN0YW1wIHtcbiAgICByZXR1cm4gYWRtaW4uZmlyZXN0b3JlLlRpbWVzdGFtcDsgIFxuICB9XG5cbiAgZ2V0IEZpZWxkUGF0aCgpOiB0eXBlb2YgYWRtaW4uZmlyZXN0b3JlLkZpZWxkUGF0aCB7XG4gICAgcmV0dXJuIGFkbWluLmZpcmVzdG9yZS5GaWVsZFBhdGg7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNUaW1lc3RhbXAodjogYW55KTogdiBpcyBhZG1pbi5maXJlc3RvcmUuVGltZXN0YW1wIHtcbiAgICByZXR1cm4gdiBpbnN0YW5jZW9mIHRoaXMuVGltZXN0YW1wO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRmllbGRWYWx1ZSh2OiBhbnkpOiB2IGlzIGFkbWluLmZpcmVzdG9yZS5GaWVsZFZhbHVlIHtcbiAgICByZXR1cm4gdiBpbnN0YW5jZW9mIHRoaXMuRmllbGRWYWx1ZTtcbiAgfVxuXG4gIGNvbnZlcnREYXRlVG9UaW1lc3RhbXAoZGF0ZTogRGF0ZSk6IGFkbWluLmZpcmVzdG9yZS5UaW1lc3RhbXAge1xuICAgIGlmICh0aGlzLmRhdGVBZGFwdGVyLmlzRGF0ZShkYXRlKSAmJiB0aGlzLmRhdGVBZGFwdGVyLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHJldHVybiBhZG1pbi5maXJlc3RvcmUuVGltZXN0YW1wLmZyb21EYXRlKHRoaXMuZGF0ZUFkYXB0ZXIuZ2V0SnNEYXRlKGRhdGUpKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRhdGU6ICR7ZGF0ZX1gKTtcbiAgfVxuXG4gIGRvYyhwYXRoOiBzdHJpbmcpOiBEb2N1bWVudFJlZmVyZW5jZTxhbnksIGFkbWluLmZpcmVzdG9yZS5Eb2N1bWVudFJlZmVyZW5jZT4ge1xuICAgIGNvbnN0IGRvY1JlZiA9IHRoaXMuZmlyZXN0b3JlLmRvYyhwYXRoKTtcbiAgICByZXR1cm4ge1xuICAgICAgX19yZWY6IGRvY1JlZixcbiAgICAgIGV4aXN0czogKCkgPT4gZG9jUmVmLmdldCgpLnRoZW4oc25hcHNob3QgPT4gc25hcHNob3QuZXhpc3RzKSxcbiAgICAgIHNldDogKGRhdGEsIG9wdGlvbnM/KSA9PiBkb2NSZWYuc2V0KGRhdGEsIG9wdGlvbnMpLFxuICAgICAgZ2V0OiAoKSA9PiBkb2NSZWYuZ2V0KCksXG4gICAgICB1cGRhdGU6IChkYXRhKSA9PiBkb2NSZWYudXBkYXRlKGRhdGEpLFxuICAgICAgZGVsZXRlOiAoKSA9PiBkb2NSZWYuZGVsZXRlKCksXG4gICAgfTtcbiAgfVxuXG4gIGNvbGxlY3Rpb248XG4gICAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICAgIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuICA+KHBhdGg6IHN0cmluZyk6IENvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25SZWYgPSB0aGlzLmZpcmVzdG9yZS5jb2xsZWN0aW9uKHBhdGgpO1xuICAgIHJldHVybiB3cmFwQ29sbGVjdGlvbkxpa2UoY29sbGVjdGlvblJlZikgYXMgQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcbiAgfVxuXG4gIGNvbGxlY3Rpb25Hcm91cDxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oY29sbGVjdGlvbklkOiBzdHJpbmcpOiBDb2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25SZWYgPSB0aGlzLmZpcmVzdG9yZS5jb2xsZWN0aW9uR3JvdXAoY29sbGVjdGlvbklkKTtcbiAgICByZXR1cm4gd3JhcENvbGxlY3Rpb25MaWtlKGNvbGxlY3Rpb25SZWYpIGFzIENvbGxlY3Rpb25Hcm91cDxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcbiAgfVxuICBcbiAgcnVuVHJhbnNhY3Rpb248VD4odXBkYXRlRnVuY3Rpb246ICh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IFByb21pc2U8VD4pIHtcbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmUucnVuVHJhbnNhY3Rpb24odXBkYXRlRnVuY3Rpb24pO1xuICB9XG5cbiAgcXVlcnk8XG4gICAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICAgIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuICA+KFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb25MaWtlPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+LFxuICAgIC4uLnF1ZXJ5Rm5BcnJheTogUXVlcnlGbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPltdXG4gICk6IFF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IHtcbiAgICBjb25zdCByZWYgPSB1bndyYXBDb2xsZWN0aW9uTGlrZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPihjb2xsZWN0aW9uKTtcbiAgICBjb25zdCBxdWVyeSA9IHF1ZXJ5Rm5BcnJheS5yZWR1Y2UoKF9yZWYsIHF1ZXJ5Rm4pID0+IHF1ZXJ5Rm4oX3JlZiksIHJlZik7XG4gICAgcmV0dXJuIHdyYXBDb2xsZWN0aW9uTGlrZShxdWVyeSkgYXMgUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG4gIH1cblxuICB3aGVyZTxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oa2V5OiBzdHJpbmcsIGV2YWx1YXRpb246IFdoZXJlRmlsdGVyT3AsIHZhbHVlOiB1bmtub3duKTogUXVlcnlGbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gICAgcmV0dXJuIChjb2xsZWN0aW9uOiBPcmlnaW48QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4pID0+IGNvbGxlY3Rpb24ud2hlcmUoa2V5LCBldmFsdWF0aW9uLCB2YWx1ZSk7ICBcbiAgfVxuXG4gIG9yZGVyQnk8XG4gICAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICAgIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuICA+KGtleTogc3RyaW5nLCBvcmRlcjogJ2FzYycgfCAnZGVzYycgPSAnYXNjJyk6IFF1ZXJ5Rm48QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4ge1xuICAgIHJldHVybiAoY29sbGVjdGlvbjogT3JpZ2luPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+KSA9PiBjb2xsZWN0aW9uLm9yZGVyQnkoa2V5LCBvcmRlcik7XG4gIH1cblxuICBsaW1pdDxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4objogbnVtYmVyKTogUXVlcnlGbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gICAgcmV0dXJuIChjb2xsZWN0aW9uOiBPcmlnaW48QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4pID0+IGNvbGxlY3Rpb24ubGltaXQobik7XG4gIH1cblxuICBiYXRjaCgpIHtcbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmUuYmF0Y2goKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUZpcmVzdG9yZUFkYXB0ZXIoKSB7XG4gIHJldHVybiBfcHJvdmlkZUZpcmVzdG9yZUFkYXB0ZXIoQWRtaW5GaXJlc3RvcmVBZGFwdGVyKTtcbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWZpcmVzdG9yZS1hZGFwdGVycy1hZG1pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvYWRhcHRlcnMvYWRtaW4vbngtZGRkLWZpcmVzdG9yZS1hZGFwdGVycy1hZG1pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["_provideFirestoreAdapter"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx-ddd-firestore-adapters-firebase.mjs","sources":["../tmp-esm2022/adapters/firebase/firebase.adapter.js","../tmp-esm2022/adapters/firebase/nx-ddd-firestore-adapters-firebase.js"],"sourcesContent":["import { doc, collection, collectionGroup, FieldValue, Timestamp, setDoc, getDoc, getDocs, getFirestore, onSnapshot, deleteDoc, writeBatch, query, orderBy, limit, updateDoc, where, FieldPath } from 'firebase/firestore';\nimport { Subject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { FirestoreAdapter } from '@nx-ddd/firestore';\nimport * as i0 from \"@angular/core\";\nexport function wrapCollectionLike(origin) {\n return {\n __ref: origin,\n stateChanges: () => {\n const subject = new Subject();\n onSnapshot(origin, (snapshot) => subject.next(snapshot.docChanges().map(change => ({\n type: change.type,\n payload: {\n doc: change.doc\n },\n }))));\n return subject.asObservable();\n },\n get: () => getDocs(origin),\n count: () => getDocs(origin).then(snapshot => snapshot.size),\n };\n}\nexport function unwrapCollectionLike(collection) {\n return collection.__ref;\n}\nexport class FirebaseFirestoreAdapter extends FirestoreAdapter {\n constructor(firestore = getFirestore()) {\n super();\n this.firestore = firestore;\n }\n get FieldValue() {\n return FieldValue;\n }\n get Timestamp() {\n return Timestamp;\n }\n get FieldPath() {\n return new FieldPath();\n }\n isTimestamp(v) {\n return v instanceof Timestamp;\n }\n isFieldValue(v) {\n return v instanceof this.FieldValue;\n }\n doc(path) {\n const docRef = doc(this.firestore, path);\n return {\n __ref: docRef,\n exists: () => getDoc(docRef).then(doc => doc.exists()),\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();\n onSnapshot(docRef, (doc) => subject.next({\n id: doc.id,\n ref: doc.ref,\n data: () => doc.data(),\n get: (fieldPath) => doc.get(fieldPath),\n }));\n return subject.asObservable();\n },\n };\n }\n collection(path) {\n const ref = collection(this.firestore, path);\n return wrapCollectionLike(ref);\n }\n collectionGroup(collectionId) {\n const ref = collectionGroup(this.firestore, collectionId);\n return wrapCollectionLike(ref);\n }\n query(collection, ...queryFnArray) {\n const ref = unwrapCollectionLike(collection);\n return wrapCollectionLike(query(ref, ...queryFnArray.map(queryFn => queryFn())));\n }\n where(fieldPath, opStr, value) {\n return () => where(fieldPath, opStr, value);\n }\n orderBy(key, order = 'asc') {\n return () => orderBy(key, order);\n }\n limit(n) {\n return () => limit(n);\n }\n runTransaction() {\n throw new Error('FirebaseFirestoreAdapter#runTransaction is not implemented');\n }\n batch() {\n return writeBatch(this.firestore);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirebaseFirestoreAdapter, deps: \"invalid\", target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirebaseFirestoreAdapter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirebaseFirestoreAdapter, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: undefined }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvYWRhcHRlcnMvZmlyZWJhc2UvZmlyZWJhc2UuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQXNCLE1BQU0sb0JBQW9CLENBQUM7QUFDL08sT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDTCxnQkFBZ0IsRUFVakIsTUFBTSxtQkFBbUIsQ0FBQzs7QUEyQzNCLE1BQU0sVUFBVSxrQkFBa0IsQ0FBbUIsTUFBUztJQUM1RCxPQUFPO1FBQ0wsS0FBSyxFQUFFLE1BQU07UUFDYixZQUFZLEVBQUUsR0FBRyxFQUFFO1lBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUErQixDQUFDO1lBQzNELFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2pGLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsT0FBTyxFQUFFO29CQUNQLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRztpQkFDaEI7YUFDRixDQUFDLENBQUMsQ0FB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UyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzFELE9BQU8sa0JBQWtCLENBQUMsR0FBRyxDQUFtRCxDQUFDO0lBQ25GLENBQUM7SUFFRCxLQUFLLENBSUgsVUFBMEQsRUFDMUQsR0FBRyxZQUF1QjtRQUUxQixNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELEtBQUssQ0FHSCxTQUFpQixFQUFFLEtBQW9CLEVBQUUsS0FBYztRQUN2RCxPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBR0wsR0FBVyxFQUFFLFFBQXdCLEtBQUs7UUFDMUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLLENBR0gsQ0FBUztRQUNULE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OEdBcEdVLHdCQUF3QjtrSEFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZG9jLCBjb2xsZWN0aW9uLCBjb2xsZWN0aW9uR3JvdXAsIEZpZWxkVmFsdWUsIFRpbWVzdGFtcCwgc2V0RG9jLCBnZXREb2MsIGdldERvY3MsIGdldEZpcmVzdG9yZSwgb25TbmFwc2hvdCwgZGVsZXRlRG9jLCB3cml0ZUJhdGNoLCBxdWVyeSwgb3JkZXJCeSwgbGltaXQsIHVwZGF0ZURvYywgd2hlcmUsIEZpZWxkUGF0aCwgZ2V0Q291bnRGcm9tU2VydmVyIH0gZnJvbSAnZmlyZWJhc2UvZmlyZXN0b3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIGZpcmVzdG9yZSBmcm9tICdmaXJlYmFzZS9maXJlc3RvcmUnO1xuaW1wb3J0IHtcbiAgRmlyZXN0b3JlQWRhcHRlcixcbiAgUXVlcnlGbiBhcyBfUXVlcnlGbixcbiAgV2hlcmVGaWx0ZXJPcCxcbiAgRG9jdW1lbnRDaGFuZ2VBY3Rpb24sXG4gIERvY3VtZW50U25hcHNob3QsXG4gIENvbGxlY3Rpb25SZWZlcmVuY2UgYXMgX0NvbGxlY3Rpb25SZWZlcmVuY2UsXG4gIENvbGxlY3Rpb25Hcm91cCBhcyBfQ29sbGVjdGlvbkdyb3VwLFxuICBRdWVyeSBhcyBfUXVlcnksXG4gIERvY3VtZW50UmVmZXJlbmNlLFxuICBEb2N1bWVudERhdGFcbn0gZnJvbSAnQG54LWRkZC9maXJlc3RvcmUnO1xuXG50eXBlIENvbGxlY3Rpb25SZWZlcmVuY2U8XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4+ID0gX0NvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgZmlyZXN0b3JlLkNvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4+O1xuXG50eXBlIENvbGxlY3Rpb25Hcm91cDxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YVxuPiA9IF9Db2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgZmlyZXN0b3JlLlF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+PjtcblxudHlwZSBRdWVyeTxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YVxuPiA9IF9RdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlLCBmaXJlc3RvcmUuUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4+O1xuXG50eXBlIFF1ZXJ5Rm48XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGFcbj4gPSBfUXVlcnlGbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlLCBmaXJlc3RvcmUuUXVlcnlDb25zdHJhaW50PlxuXG50eXBlIE9yaWdpbjxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbj4gPSBmaXJlc3RvcmUuQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuICB8IGZpcmVzdG9yZS5RdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuICB8IGZpcmVzdG9yZS5RdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcblxudHlwZSBDb2xsZWN0aW9uTGlrZTxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbj4gPSBDb2xsZWN0aW9uUmVmZXJlbmNlPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IFxuICB8IENvbGxlY3Rpb25Hcm91cDxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuICB8IFF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+O1xuXG4vLyBVdGlsaXR5IHR5cGUgdG8gbWFwIE9yaWdpbiB0byBDb2xsZWN0aW9uTGlrZVxudHlwZSBJbmZlckNvbGxlY3Rpb25MaWtlPE8gZXh0ZW5kcyBPcmlnaW4+ID0gXG4gIE8gZXh0ZW5kcyBmaXJlc3RvcmUuQ29sbGVjdGlvblJlZmVyZW5jZTxpbmZlciBBLCBpbmZlciBCPiA/IENvbGxlY3Rpb25SZWZlcmVuY2U8QSwgQj4gOlxuICBPIGV4dGVuZHMgZmlyZXN0b3JlLlF1ZXJ5PGluZmVyIEEsIGluZmVyIEI+ID8gQ29sbGVjdGlvbkdyb3VwPEEsIEI+IDpcbiAgTyBleHRlbmRzIGZpcmVzdG9yZS5RdWVyeTxpbmZlciBBLCBpbmZlciBCPiA/IFF1ZXJ5PEEsIEI+IDpcbiAgbmV2ZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwQ29sbGVjdGlvbkxpa2U8TyBleHRlbmRzIE9yaWdpbj4ob3JpZ2luOiBPKTogSW5mZXJDb2xsZWN0aW9uTGlrZTxPPiB7XG4gIHJldHVybiB7XG4gICAgX19yZWY6IG9yaWdpbixcbiAgICBzdGF0ZUNoYW5nZXM6ICgpID0+IHtcbiAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxEb2N1bWVudENoYW5nZUFjdGlvbjxhbnk+W10+KCk7XG4gICAgICBvblNuYXBzaG90KG9yaWdpbiwgKHNuYXBzaG90KSA9PiBzdWJqZWN0Lm5leHQoc25hcHNob3QuZG9jQ2hhbmdlcygpLm1hcChjaGFuZ2UgPT4gKHtcbiAgICAgICAgdHlwZTogY2hhbmdlLnR5cGUsXG4gICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICBkb2M6IGNoYW5nZS5kb2NcbiAgICAgICAgfSxcbiAgICAgIH0pKSkpO1xuICAgICAgcmV0dXJuIHN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfSxcbiAgICBnZXQ6ICgpID0+IGdldERvY3Mob3JpZ2luKSxcbiAgICBjb3VudDogKCkgPT4gZ2V0RG9jcyhvcmlnaW4pLnRoZW4oc25hcHNob3QgPT4gc25hcHNob3Quc2l6ZSksXG4gIH0gYXMgbmV2ZXIgYXMgSW5mZXJDb2xsZWN0aW9uTGlrZTxPPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVud3JhcENvbGxlY3Rpb25MaWtlPFxuICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhXG4+KFxuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTGlrZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuKTogT3JpZ2luPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IHtcbiAgcmV0dXJuIGNvbGxlY3Rpb24uX19yZWY7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGaXJlYmFzZUZpcmVzdG9yZUFkYXB0ZXI8RD4gZXh0ZW5kcyBGaXJlc3RvcmVBZGFwdGVyPEQ+IHtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmlyZXN0b3JlID0gZ2V0RmlyZXN0b3JlKCkpIHsgc3VwZXIoKSB9XG5cbiAgZ2V0IEZpZWxkVmFsdWUoKTogdHlwZW9mIEZpZWxkVmFsdWUge1xuICAgIHJldHVybiBGaWVsZFZhbHVlOyAgXG4gIH1cblxuICBnZXQgVGltZXN0YW1wKCk6IHR5cGVvZiBUaW1lc3RhbXAge1xuICAgIHJldHVybiBUaW1lc3RhbXA7ICBcbiAgfVxuXG4gIGdldCBGaWVsZFBhdGgoKTogRmllbGRQYXRoIHtcbiAgICByZXR1cm4gbmV3IEZpZWxkUGF0aCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzVGltZXN0YW1wKHY6IGFueSk6IHYgaXMgVGltZXN0YW1wIHtcbiAgICByZXR1cm4gdiBpbnN0YW5jZW9mIFRpbWVzdGFtcDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0ZpZWxkVmFsdWUodjogYW55KTogdiBpcyBGaWVsZFZhbHVlIHtcbiAgICByZXR1cm4gdiBpbnN0YW5jZW9mIHRoaXMuRmllbGRWYWx1ZTtcbiAgfVxuXG4gIGRvYyhwYXRoOiBzdHJpbmcpOiBEb2N1bWVudFJlZmVyZW5jZTxhbnk+IHtcbiAgICBjb25zdCBkb2NSZWYgPSBkb2ModGhpcy5maXJlc3RvcmUsIHBhdGgpO1xuICAgIHJldHVybiB7XG4gICAgICBfX3JlZjogZG9jUmVmLFxuICAgICAgZXhpc3RzOiAoKSA9PiBnZXREb2MoZG9jUmVmKS50aGVuKGRvYyA9PiBkb2MuZXhpc3RzKCkpLFxuICAgICAgc2V0OiAoZGF0YSkgPT4gc2V0RG9jKGRvY1JlZiwgZGF0YSksXG4gICAgICBnZXQ6ICgpID0+IGdldERvYyhkb2NSZWYpLFxuICAgICAgdXBkYXRlOiAoZGF0YSkgPT4gdXBkYXRlRG9jKGRvY1JlZiwgZGF0YSksXG4gICAgICBkZWxldGU6ICgpID0+IGRlbGV0ZURvYyhkb2NSZWYpLFxuICAgICAgc3RhdGVDaGFuZ2VzOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxEb2N1bWVudFNuYXBzaG90PGFueT4+KCk7XG4gICAgICAgIG9uU25hcHNob3QoZG9jUmVmLCAoZG9jKSA9PiBzdWJqZWN0Lm5leHQoe1xuICAgICAgICAgIGlkOiBkb2MuaWQsXG4gICAgICAgICAgcmVmOiBkb2MucmVmLFxuICAgICAgICAgIGRhdGE6ICgpID0+IGRvYy5kYXRhKCksXG4gICAgICAgICAgZ2V0OiAoZmllbGRQYXRoOiBzdHJpbmcpID0+IGRvYy5nZXQoZmllbGRQYXRoKSxcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm4gc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICAgIH0sXG4gICAgfVxuICB9XG5cbiAgY29sbGVjdGlvbjxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4ocGF0aDogc3RyaW5nKTogQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gICAgY29uc3QgcmVmID0gY29sbGVjdGlvbih0aGlzLmZpcmVzdG9yZSwgcGF0aCk7XG4gICAgcmV0dXJuIHdyYXBDb2xsZWN0aW9uTGlrZShyZWYpIGFzIENvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG4gIH1cblxuICBjb2xsZWN0aW9uR3JvdXA8XG4gICAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICAgIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuICA+KGNvbGxlY3Rpb25JZDogc3RyaW5nKTogQ29sbGVjdGlvbkdyb3VwPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IHtcbiAgICBjb25zdCByZWYgPSBjb2xsZWN0aW9uR3JvdXAodGhpcy5maXJlc3RvcmUsIGNvbGxlY3Rpb25JZCk7XG4gICAgcmV0dXJuIHdyYXBDb2xsZWN0aW9uTGlrZShyZWYpIGFzIENvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG4gIH1cblxuICBxdWVyeTxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPixcbiAgICAuLi5xdWVyeUZuQXJyYXk6IFF1ZXJ5Rm5bXVxuICApOiBRdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gICAgY29uc3QgcmVmID0gdW53cmFwQ29sbGVjdGlvbkxpa2UoY29sbGVjdGlvbik7XG4gICAgcmV0dXJuIHdyYXBDb2xsZWN0aW9uTGlrZShxdWVyeShyZWYsIC4uLnF1ZXJ5Rm5BcnJheS5tYXAocXVlcnlGbiA9PiBxdWVyeUZuKCkpKSk7XG4gIH1cblxuICB3aGVyZTxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oZmllbGRQYXRoOiBzdHJpbmcsIG9wU3RyOiBXaGVyZUZpbHRlck9wLCB2YWx1ZTogdW5rbm93bik6IFF1ZXJ5Rm4ge1xuICAgIHJldHVybiAoKSA9PiB3aGVyZShmaWVsZFBhdGgsIG9wU3RyLCB2YWx1ZSk7XG4gIH1cblxuICBvcmRlckJ5PFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihrZXk6IHN0cmluZywgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnID0gJ2FzYycpOiBRdWVyeUZuIHtcbiAgICByZXR1cm4gKCkgPT4gb3JkZXJCeShrZXksIG9yZGVyKTtcbiAgfVxuXG4gIGxpbWl0PFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihuOiBudW1iZXIpOiBRdWVyeUZuIHtcbiAgICByZXR1cm4gKCkgPT4gbGltaXQobik7XG4gIH1cblxuICBydW5UcmFuc2FjdGlvbigpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpcmViYXNlRmlyZXN0b3JlQWRhcHRlciNydW5UcmFuc2FjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIGJhdGNoKCkge1xuICAgIHJldHVybiB3cml0ZUJhdGNoKHRoaXMuZmlyZXN0b3JlKTtcbiAgfVxufSJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWZpcmVzdG9yZS1hZGFwdGVycy1maXJlYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvYWRhcHRlcnMvZmlyZWJhc2UvbngtZGRkLWZpcmVzdG9yZS1hZGFwdGVycy1maXJlYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nx-ddd-firestore-adapters-firebase.mjs","sources":["../tmp-esm2022/adapters/firebase/firebase.adapter.js","../tmp-esm2022/adapters/firebase/nx-ddd-firestore-adapters-firebase.js"],"sourcesContent":["import { doc, collection, collectionGroup, FieldValue, Timestamp, setDoc, getDoc, getDocs, getFirestore, onSnapshot, deleteDoc, writeBatch, query, orderBy, limit, updateDoc, where, FieldPath } from 'firebase/firestore';\nimport { Subject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { FirestoreAdapter } from '@nx-ddd/firestore';\nimport * as i0 from \"@angular/core\";\nexport function wrapCollectionLike(origin) {\n return {\n __ref: origin,\n stateChanges: () => {\n const subject = new Subject();\n onSnapshot(origin, (snapshot) => subject.next(snapshot.docChanges().map(change => ({\n type: change.type,\n payload: {\n doc: change.doc\n },\n }))));\n return subject.asObservable();\n },\n get: () => getDocs(origin),\n count: () => getDocs(origin).then(snapshot => snapshot.size),\n };\n}\nexport function unwrapCollectionLike(collection) {\n return collection.__ref;\n}\nexport class FirebaseFirestoreAdapter extends FirestoreAdapter {\n constructor(firestore = getFirestore()) {\n super();\n this.firestore = firestore;\n }\n get FieldValue() {\n return FieldValue;\n }\n get Timestamp() {\n return Timestamp;\n }\n get FieldPath() {\n return new FieldPath();\n }\n isTimestamp(v) {\n return v instanceof Timestamp;\n }\n isFieldValue(v) {\n return v instanceof this.FieldValue;\n }\n doc(path) {\n const docRef = doc(this.firestore, path);\n return {\n __ref: docRef,\n exists: () => getDoc(docRef).then(doc => doc.exists()),\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();\n onSnapshot(docRef, (doc) => subject.next({\n id: doc.id,\n ref: doc.ref,\n data: () => doc.data(),\n get: (fieldPath) => doc.get(fieldPath),\n }));\n return subject.asObservable();\n },\n };\n }\n collection(path) {\n const ref = collection(this.firestore, path);\n return wrapCollectionLike(ref);\n }\n collectionGroup(collectionId) {\n const ref = collectionGroup(this.firestore, collectionId);\n return wrapCollectionLike(ref);\n }\n query(collection, ...queryFnArray) {\n const ref = unwrapCollectionLike(collection);\n return wrapCollectionLike(query(ref, ...queryFnArray.map(queryFn => queryFn())));\n }\n where(fieldPath, opStr, value) {\n return () => where(fieldPath, opStr, value);\n }\n orderBy(key, order = 'asc') {\n return () => orderBy(key, order);\n }\n limit(n) {\n return () => limit(n);\n }\n runTransaction() {\n throw new Error('FirebaseFirestoreAdapter#runTransaction is not implemented');\n }\n batch() {\n return writeBatch(this.firestore);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirebaseFirestoreAdapter, deps: \"invalid\", target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirebaseFirestoreAdapter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirebaseFirestoreAdapter, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: undefined }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvYWRhcHRlcnMvZmlyZWJhc2UvZmlyZWJhc2UuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQXNCLE1BQU0sb0JBQW9CLENBQUM7QUFDL08sT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDTCxnQkFBZ0IsRUFVakIsTUFBTSxtQkFBbUIsQ0FBQzs7QUEyQzNCLE1BQU0sVUFBVSxrQkFBa0IsQ0FBbUIsTUFBUztJQUM1RCxPQUFPO1FBQ0wsS0FBSyxFQUFFLE1BQU07UUFDYixZQUFZLEVBQUUsR0FBRyxFQUFFO1lBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUErQixDQUFDO1lBQzNELFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2pGLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsT0FBTyxFQUFFO29CQUNQLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRztpQkFDaEI7YUFDRixDQUFDLENBQUMsQ0FB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UyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzFELE9BQU8sa0JBQWtCLENBQUMsR0FBRyxDQUFtRCxDQUFDO0lBQ25GLENBQUM7SUFFRCxLQUFLLENBSUgsVUFBMEQsRUFDMUQsR0FBRyxZQUF1QjtRQUUxQixNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELEtBQUssQ0FHSCxTQUFpQixFQUFFLEtBQW9CLEVBQUUsS0FBYztRQUN2RCxPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBR0wsR0FBVyxFQUFFLFFBQXdCLEtBQUs7UUFDMUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLLENBR0gsQ0FBUztRQUNULE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OEdBcEdVLHdCQUF3QjtrSEFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZG9jLCBjb2xsZWN0aW9uLCBjb2xsZWN0aW9uR3JvdXAsIEZpZWxkVmFsdWUsIFRpbWVzdGFtcCwgc2V0RG9jLCBnZXREb2MsIGdldERvY3MsIGdldEZpcmVzdG9yZSwgb25TbmFwc2hvdCwgZGVsZXRlRG9jLCB3cml0ZUJhdGNoLCBxdWVyeSwgb3JkZXJCeSwgbGltaXQsIHVwZGF0ZURvYywgd2hlcmUsIEZpZWxkUGF0aCwgZ2V0Q291bnRGcm9tU2VydmVyIH0gZnJvbSAnZmlyZWJhc2UvZmlyZXN0b3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIGZpcmVzdG9yZSBmcm9tICdmaXJlYmFzZS9maXJlc3RvcmUnO1xuaW1wb3J0IHtcbiAgRmlyZXN0b3JlQWRhcHRlcixcbiAgUXVlcnlGbiBhcyBfUXVlcnlGbixcbiAgV2hlcmVGaWx0ZXJPcCxcbiAgRG9jdW1lbnRDaGFuZ2VBY3Rpb24sXG4gIERvY3VtZW50U25hcHNob3QsXG4gIENvbGxlY3Rpb25SZWZlcmVuY2UgYXMgX0NvbGxlY3Rpb25SZWZlcmVuY2UsXG4gIENvbGxlY3Rpb25Hcm91cCBhcyBfQ29sbGVjdGlvbkdyb3VwLFxuICBRdWVyeSBhcyBfUXVlcnksXG4gIERvY3VtZW50UmVmZXJlbmNlLFxuICBEb2N1bWVudERhdGFcbn0gZnJvbSAnQG54LWRkZC9maXJlc3RvcmUnO1xuXG50eXBlIENvbGxlY3Rpb25SZWZlcmVuY2U8XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4+ID0gX0NvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgZmlyZXN0b3JlLkNvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4+O1xuXG50eXBlIENvbGxlY3Rpb25Hcm91cDxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YVxuPiA9IF9Db2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgZmlyZXN0b3JlLlF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+PjtcblxudHlwZSBRdWVyeTxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YVxuPiA9IF9RdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlLCBmaXJlc3RvcmUuUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4+O1xuXG50eXBlIFF1ZXJ5Rm48XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGFcbj4gPSBfUXVlcnlGbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlLCBmaXJlc3RvcmUuUXVlcnlDb25zdHJhaW50PlxuXG50eXBlIE9yaWdpbjxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbj4gPSBmaXJlc3RvcmUuQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuICB8IGZpcmVzdG9yZS5RdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuICB8IGZpcmVzdG9yZS5RdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcblxudHlwZSBDb2xsZWN0aW9uTGlrZTxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbj4gPSBDb2xsZWN0aW9uUmVmZXJlbmNlPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IFxuICB8IENvbGxlY3Rpb25Hcm91cDxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuICB8IFF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+O1xuXG4vLyBVdGlsaXR5IHR5cGUgdG8gbWFwIE9yaWdpbiB0byBDb2xsZWN0aW9uTGlrZVxudHlwZSBJbmZlckNvbGxlY3Rpb25MaWtlPE8gZXh0ZW5kcyBPcmlnaW4+ID0gXG4gIE8gZXh0ZW5kcyBmaXJlc3RvcmUuQ29sbGVjdGlvblJlZmVyZW5jZTxpbmZlciBBLCBpbmZlciBCPiA/IENvbGxlY3Rpb25SZWZlcmVuY2U8QSwgQj4gOlxuICBPIGV4dGVuZHMgZmlyZXN0b3JlLlF1ZXJ5PGluZmVyIEEsIGluZmVyIEI+ID8gQ29sbGVjdGlvbkdyb3VwPEEsIEI+IDpcbiAgTyBleHRlbmRzIGZpcmVzdG9yZS5RdWVyeTxpbmZlciBBLCBpbmZlciBCPiA/IFF1ZXJ5PEEsIEI+IDpcbiAgbmV2ZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwQ29sbGVjdGlvbkxpa2U8TyBleHRlbmRzIE9yaWdpbj4ob3JpZ2luOiBPKTogSW5mZXJDb2xsZWN0aW9uTGlrZTxPPiB7XG4gIHJldHVybiB7XG4gICAgX19yZWY6IG9yaWdpbixcbiAgICBzdGF0ZUNoYW5nZXM6ICgpID0+IHtcbiAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxEb2N1bWVudENoYW5nZUFjdGlvbjxhbnk+W10+KCk7XG4gICAgICBvblNuYXBzaG90KG9yaWdpbiwgKHNuYXBzaG90KSA9PiBzdWJqZWN0Lm5leHQoc25hcHNob3QuZG9jQ2hhbmdlcygpLm1hcChjaGFuZ2UgPT4gKHtcbiAgICAgICAgdHlwZTogY2hhbmdlLnR5cGUsXG4gICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICBkb2M6IGNoYW5nZS5kb2NcbiAgICAgICAgfSxcbiAgICAgIH0pKSkpO1xuICAgICAgcmV0dXJuIHN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfSxcbiAgICBnZXQ6ICgpID0+IGdldERvY3Mob3JpZ2luKSxcbiAgICBjb3VudDogKCkgPT4gZ2V0RG9jcyhvcmlnaW4pLnRoZW4oc25hcHNob3QgPT4gc25hcHNob3Quc2l6ZSksXG4gIH0gYXMgbmV2ZXIgYXMgSW5mZXJDb2xsZWN0aW9uTGlrZTxPPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVud3JhcENvbGxlY3Rpb25MaWtlPFxuICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhXG4+KFxuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTGlrZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuKTogT3JpZ2luPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IHtcbiAgcmV0dXJuIGNvbGxlY3Rpb24uX19yZWY7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGaXJlYmFzZUZpcmVzdG9yZUFkYXB0ZXI8RD4gZXh0ZW5kcyBGaXJlc3RvcmVBZGFwdGVyPEQ+IHtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmlyZXN0b3JlID0gZ2V0RmlyZXN0b3JlKCkpIHsgc3VwZXIoKSB9XG5cbiAgZ2V0IEZpZWxkVmFsdWUoKTogdHlwZW9mIEZpZWxkVmFsdWUge1xuICAgIHJldHVybiBGaWVsZFZhbHVlOyAgXG4gIH1cblxuICBnZXQgVGltZXN0YW1wKCk6IHR5cGVvZiBUaW1lc3RhbXAge1xuICAgIHJldHVybiBUaW1lc3RhbXA7ICBcbiAgfVxuXG4gIGdldCBGaWVsZFBhdGgoKTogRmllbGRQYXRoIHtcbiAgICByZXR1cm4gbmV3IEZpZWxkUGF0aCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzVGltZXN0YW1wKHY6IGFueSk6IHYgaXMgVGltZXN0YW1wIHtcbiAgICByZXR1cm4gdiBpbnN0YW5jZW9mIFRpbWVzdGFtcDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0ZpZWxkVmFsdWUodjogYW55KTogdiBpcyBGaWVsZFZhbHVlIHtcbiAgICByZXR1cm4gdiBpbnN0YW5jZW9mIHRoaXMuRmllbGRWYWx1ZTtcbiAgfVxuXG4gIGRvYyhwYXRoOiBzdHJpbmcpOiBEb2N1bWVudFJlZmVyZW5jZTxhbnk+IHtcbiAgICBjb25zdCBkb2NSZWYgPSBkb2ModGhpcy5maXJlc3RvcmUsIHBhdGgpO1xuICAgIHJldHVybiB7XG4gICAgICBfX3JlZjogZG9jUmVmLFxuICAgICAgZXhpc3RzOiAoKSA9PiBnZXREb2MoZG9jUmVmKS50aGVuKGRvYyA9PiBkb2MuZXhpc3RzKCkpLFxuICAgICAgc2V0OiAoZGF0YSkgPT4gc2V0RG9jKGRvY1JlZiwgZGF0YSksXG4gICAgICBnZXQ6ICgpID0+IGdldERvYyhkb2NSZWYpLFxuICAgICAgdXBkYXRlOiAoZGF0YSkgPT4gdXBkYXRlRG9jKGRvY1JlZiwgZGF0YSksXG4gICAgICBkZWxldGU6ICgpID0+IGRlbGV0ZURvYyhkb2NSZWYpLFxuICAgICAgc3RhdGVDaGFuZ2VzOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxEb2N1bWVudFNuYXBzaG90PGFueT4+KCk7XG4gICAgICAgIG9uU25hcHNob3QoZG9jUmVmLCAoZG9jKSA9PiBzdWJqZWN0Lm5leHQoe1xuICAgICAgICAgIGlkOiBkb2MuaWQsXG4gICAgICAgICAgcmVmOiBkb2MucmVmLFxuICAgICAgICAgIGRhdGE6ICgpID0+IGRvYy5kYXRhKCksXG4gICAgICAgICAgZ2V0OiAoZmllbGRQYXRoOiBzdHJpbmcpID0+IGRvYy5nZXQoZmllbGRQYXRoKSxcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm4gc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICAgIH0sXG4gICAgfVxuICB9XG5cbiAgY29sbGVjdGlvbjxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4ocGF0aDogc3RyaW5nKTogQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gICAgY29uc3QgcmVmID0gY29sbGVjdGlvbih0aGlzLmZpcmVzdG9yZSwgcGF0aCk7XG4gICAgcmV0dXJuIHdyYXBDb2xsZWN0aW9uTGlrZShyZWYpIGFzIENvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG4gIH1cblxuICBjb2xsZWN0aW9uR3JvdXA8XG4gICAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICAgIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuICA+KGNvbGxlY3Rpb25JZDogc3RyaW5nKTogQ29sbGVjdGlvbkdyb3VwPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IHtcbiAgICBjb25zdCByZWYgPSBjb2xsZWN0aW9uR3JvdXAodGhpcy5maXJlc3RvcmUsIGNvbGxlY3Rpb25JZCk7XG4gICAgcmV0dXJuIHdyYXBDb2xsZWN0aW9uTGlrZShyZWYpIGFzIENvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG4gIH1cblxuICBxdWVyeTxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPixcbiAgICAuLi5xdWVyeUZuQXJyYXk6IFF1ZXJ5Rm5bXVxuICApOiBRdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gICAgY29uc3QgcmVmID0gdW53cmFwQ29sbGVjdGlvbkxpa2UoY29sbGVjdGlvbik7XG4gICAgcmV0dXJuIHdyYXBDb2xsZWN0aW9uTGlrZShxdWVyeShyZWYsIC4uLnF1ZXJ5Rm5BcnJheS5tYXAocXVlcnlGbiA9PiBxdWVyeUZuKCkpKSk7XG4gIH1cblxuICB3aGVyZTxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oZmllbGRQYXRoOiBzdHJpbmcsIG9wU3RyOiBXaGVyZUZpbHRlck9wLCB2YWx1ZTogdW5rbm93bik6IFF1ZXJ5Rm4ge1xuICAgIHJldHVybiAoKSA9PiB3aGVyZShmaWVsZFBhdGgsIG9wU3RyLCB2YWx1ZSk7XG4gIH1cblxuICBvcmRlckJ5PFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihrZXk6IHN0cmluZywgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnID0gJ2FzYycpOiBRdWVyeUZuIHtcbiAgICByZXR1cm4gKCkgPT4gb3JkZXJCeShrZXksIG9yZGVyKTtcbiAgfVxuXG4gIGxpbWl0PFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihuOiBudW1iZXIpOiBRdWVyeUZuIHtcbiAgICByZXR1cm4gKCkgPT4gbGltaXQobik7XG4gIH1cblxuICBydW5UcmFuc2FjdGlvbigpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpcmViYXNlRmlyZXN0b3JlQWRhcHRlciNydW5UcmFuc2FjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIGJhdGNoKCkge1xuICAgIHJldHVybiB3cml0ZUJhdGNoKHRoaXMuZmlyZXN0b3JlKTtcbiAgfVxufSJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWZpcmVzdG9yZS1hZGFwdGVycy1maXJlYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvYWRhcHRlcnMvZmlyZWJhc2UvbngtZGRkLWZpcmVzdG9yZS1hZGFwdGVycy1maXJlYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx-ddd-firestore.mjs","sources":["../tmp-esm2022/decorators/decorators.js","../tmp-esm2022/adapters/dayjs/dayjs.adatper.js","../tmp-esm2022/adapters/base/base.adapter.js","../tmp-esm2022/converter/converter.js","../tmp-esm2022/dao/firestore.dao.js","../tmp-esm2022/path-builder/path-builder.js","../tmp-esm2022/query/firestore.query.js","../tmp-esm2022/query/v2/query.js","../tmp-esm2022/query/v2/cached-query.js","../tmp-esm2022/repository/repository.js","../tmp-esm2022/nx-ddd-firestore.js"],"sourcesContent":["import { makeDecoratorFactories } from '@nx-ddd/core';\nexport const FIRESTORE_ANNOTATIONS = 'firestore_annotations';\nexport const { createDecorator, createPropsDecorator, createClassDecorator, getAnnotations, } = makeDecoratorFactories((type, fieldName, propName, options) => ({ type, fieldName, propName, childType: options.childType }), FIRESTORE_ANNOTATIONS);\n/** @deprecated use getAnnotations */\nexport function getFirestoreAnnotations(target) {\n return getAnnotations(target);\n}\nexport const ID = createDecorator('id');\nexport const String = createDecorator('string');\nexport const Null = createDecorator('null');\nexport const Geopoint = createDecorator('geopoint');\nexport const Boolean = createDecorator('boolean');\nexport const Timestamp = createDecorator('timestamp');\nexport const Number = createDecorator('number');\nexport const Map = (childType, props) => createDecorator('map', { childType })(props);\nexport const Array = (childType, props) => createDecorator('array', { childType })(props);\nexport const Reference = createDecorator('reference');\nexport function getCollection(target) {\n const annotations = getAnnotations(target);\n const annotation = annotations.find((annotation) => annotation.type === 'collection');\n return annotation.name;\n}\nexport const Firestore = {\n Collection: createClassDecorator('collection'),\n ID: ID,\n String: String,\n Null: Null,\n Geopoint: Geopoint,\n Boolean: Boolean,\n Timestamp: Timestamp,\n Number: Number,\n Map: Map,\n Array: Array,\n Reference: Reference,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvZGVjb3JhdG9ycy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyx1QkFBdUIsQ0FBQztBQVc3RCxNQUFNLENBQUMsTUFBTSxFQUNYLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLGNBQWMsR0FDZixHQUFHLHNCQUFzQixDQUt4QixDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFDLENBQUMsRUFDbkcscUJBQXFCLENBQ3RCLENBQUM7QUFFRixxQ0FBcUM7QUFDckMsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE1BQVc7SUFDakQsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDaEMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNsRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDaEQsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsU0FBcUIsRUFBRSxLQUF1QixFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsSCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxTQUFxQixFQUFFLEtBQXVCLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsRUFBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFdEQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFXO0lBQ3ZDLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDO0lBQzNGLE9BQVEsVUFBa0IsQ0FBQyxJQUFJLENBQUM7QUFDbEMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUN2QixVQUFVLEVBQUUsb0JBQW9CLENBQW1CLFlBQVksQ0FBQztJQUNoRSxFQUFFLEVBQUUsRUFBRTtJQUNOLE1BQU0sRUFBRSxNQUFNO0lBQ2QsSUFBSSxFQUFFLElBQUk7SUFDVixRQUFRLEVBQUUsUUFBUTtJQUNsQixPQUFPLEVBQUUsT0FBTztJQUNoQixTQUFTLEVBQUUsU0FBUztJQUNwQixNQUFNLEVBQUUsTUFBTTtJQUNkLEdBQUcsRUFBRSxHQUFHO0lBQ1IsS0FBSyxFQUFFLEtBQUs7SUFDWixTQUFTLEVBQUUsU0FBUztDQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFrZURlY29yYXRvckZhY3RvcmllcyB9IGZyb20gJ0BueC1kZGQvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBGSVJFU1RPUkVfQU5OT1RBVElPTlMgPSAnZmlyZXN0b3JlX2Fubm90YXRpb25zJztcbmV4cG9ydCB0eXBlIEZpcmVzdG9yZUZpZWxkVHlwZSA9ICdpZCcgfCAnYm9vbGVhbicgfCAnbnVtYmVyJyBcbiAgfCAndGltZXN0YW1wJyB8ICdzdHJpbmcnIHwgJ2dlb3BvaW50JyB8ICdudWxsJyBcbiAgfCAnbWFwJyB8ICdhcnJheScgfCAncmVmZXJlbmNlJztcbmV4cG9ydCBpbnRlcmZhY2UgRmlyZXN0b3JlQW5ub3RhdGlvbiB7XG4gIHR5cGU6IEZpcmVzdG9yZUZpZWxkVHlwZTtcbiAgZmllbGROYW1lOiBzdHJpbmc7XG4gIHByb3BOYW1lOiBzdHJpbmc7XG4gIGNoaWxkVHlwZTogYW55O1xufVxuXG5leHBvcnQgY29uc3Qge1xuICBjcmVhdGVEZWNvcmF0b3IsXG4gIGNyZWF0ZVByb3BzRGVjb3JhdG9yLFxuICBjcmVhdGVDbGFzc0RlY29yYXRvcixcbiAgZ2V0QW5ub3RhdGlvbnMsXG59ID0gbWFrZURlY29yYXRvckZhY3RvcmllczxcbiAgRmlyZXN0b3JlRmllbGRUeXBlLFxuICBGaXJlc3RvcmVBbm5vdGF0aW9uLFxuICB7Y2hpbGRUeXBlPzogYW55fVxuPihcbiAgKHR5cGUsIGZpZWxkTmFtZSwgcHJvcE5hbWUsIG9wdGlvbnMpID0+ICh7dHlwZSwgZmllbGROYW1lLCBwcm9wTmFtZSwgY2hpbGRUeXBlOiBvcHRpb25zLmNoaWxkVHlwZX0pLFxuICBGSVJFU1RPUkVfQU5OT1RBVElPTlNcbik7XG5cbi8qKiBAZGVwcmVjYXRlZCB1c2UgZ2V0QW5ub3RhdGlvbnMgKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXJlc3RvcmVBbm5vdGF0aW9ucyh0YXJnZXQ6IGFueSk6IEZpcmVzdG9yZUFubm90YXRpb25bXSB7XG4gIHJldHVybiBnZXRBbm5vdGF0aW9ucyh0YXJnZXQpO1xufVxuXG5leHBvcnQgY29uc3QgSUQgPSBjcmVhdGVEZWNvcmF0b3IoJ2lkJyk7XG5leHBvcnQgY29uc3QgU3RyaW5nID0gY3JlYXRlRGVjb3JhdG9yKCdzdHJpbmcnKTtcbmV4cG9ydCBjb25zdCBOdWxsID0gY3JlYXRlRGVjb3JhdG9yKCdudWxsJyk7XG5leHBvcnQgY29uc3QgR2VvcG9pbnQgPSBjcmVhdGVEZWNvcmF0b3IoJ2dlb3BvaW50Jyk7XG5leHBvcnQgY29uc3QgQm9vbGVhbiA9IGNyZWF0ZURlY29yYXRvcignYm9vbGVhbicpO1xuZXhwb3J0IGNvbnN0IFRpbWVzdGFtcCA9IGNyZWF0ZURlY29yYXRvcigndGltZXN0YW1wJyk7XG5leHBvcnQgY29uc3QgTnVtYmVyID0gY3JlYXRlRGVjb3JhdG9yKCdudW1iZXInKTtcbmV4cG9ydCBjb25zdCBNYXAgPSAoY2hpbGRUeXBlPzogKCkgPT4gYW55LCBwcm9wcz86IHtuYW1lPzogc3RyaW5nfSkgPT4gY3JlYXRlRGVjb3JhdG9yKCdtYXAnLCB7Y2hpbGRUeXBlfSkocHJvcHMpO1xuZXhwb3J0IGNvbnN0IEFycmF5ID0gKGNoaWxkVHlwZT86ICgpID0+IGFueSwgcHJvcHM/OiB7bmFtZT86IHN0cmluZ30pID0+IGNyZWF0ZURlY29yYXRvcignYXJyYXknLCB7Y2hpbGRUeXBlfSkocHJvcHMpO1xuZXhwb3J0IGNvbnN0IFJlZmVyZW5jZSA9IGNyZWF0ZURlY29yYXRvcigncmVmZXJlbmNlJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2xsZWN0aW9uKHRhcmdldDogYW55KTogc3RyaW5nIHtcbiAgY29uc3QgYW5ub3RhdGlvbnMgPSBnZXRBbm5vdGF0aW9ucyh0YXJnZXQpO1xuICBjb25zdCBhbm5vdGF0aW9uID0gYW5ub3RhdGlvbnMuZmluZCgoYW5ub3RhdGlvbjogYW55KSA9PiBhbm5vdGF0aW9uLnR5cGUgPT09ICdjb2xsZWN0aW9uJyk7XG4gIHJldHVybiAoYW5ub3RhdGlvbiBhcyBhbnkpLm5hbWU7XG59XG5cbmV4cG9ydCBjb25zdCBGaXJlc3RvcmUgPSB7XG4gIENvbGxlY3Rpb246IGNyZWF0ZUNsYXNzRGVjb3JhdG9yPHsgbmFtZTogc3RyaW5nIH0+KCdjb2xsZWN0aW9uJyksXG4gIElEOiBJRCxcbiAgU3RyaW5nOiBTdHJpbmcsXG4gIE51bGw6IE51bGwsXG4gIEdlb3BvaW50OiBHZW9wb2ludCxcbiAgQm9vbGVhbjogQm9vbGVhbixcbiAgVGltZXN0YW1wOiBUaW1lc3RhbXAsXG4gIE51bWJlcjogTnVtYmVyLFxuICBNYXA6IE1hcCxcbiAgQXJyYXk6IEFycmF5LFxuICBSZWZlcmVuY2U6IFJlZmVyZW5jZSxcbn07XG4iXX0=","import { Injectable } from '@angular/core';\nimport dayjs from 'dayjs';\nimport * as i0 from \"@angular/core\";\nexport class DateAdapter {\n isDate(value) {\n return value instanceof Date || dayjs.isDayjs(value);\n }\n isValid(value) {\n return this.isDate(value) && !isNaN(value.getTime());\n }\n getJsDate(value) {\n return value;\n }\n convertToDate(value) {\n return value;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DateAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DateAdapter, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DateAdapter, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport class DayjsAdapter {\n constructor(dateAdapter) {\n this.dateAdapter = dateAdapter;\n }\n isDayjs(value) {\n return dayjs.isDayjs(value);\n }\n isValid(value) {\n return this.isDayjs(value) && value.isValid();\n }\n getJsDate(value) {\n return value.toDate();\n }\n convertToDayjs(value) {\n return dayjs(value);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DayjsAdapter, deps: [{ token: DateAdapter }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DayjsAdapter, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DayjsAdapter, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: DateAdapter }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5anMuYWRhdHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvYWRhcHRlcnMvZGF5anMvZGF5anMuYWRhdHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQzs7QUFHMUIsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFJLEtBQVU7UUFDbEIsT0FBTyxLQUFLLFlBQVksSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsU0FBUyxDQUFJLEtBQVU7UUFDckIsT0FBTyxLQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELGFBQWEsQ0FBSSxLQUFXO1FBQzFCLE9BQU8sS0FBVSxDQUFDO0lBQ3BCLENBQUM7OEdBZlUsV0FBVztrSEFBWCxXQUFXLGNBREUsTUFBTTs7MkZBQ25CLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQW9CbEMsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBNkIsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBRyxDQUFDO0lBRXpELE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWtCO1FBQzFCLE9BQU8sS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjLENBQUksS0FBVTtRQUMxQixPQUFPLEtBQUssQ0FBQyxLQUFLLENBQU0sQ0FBQztJQUMzQixDQUFDOzhHQWpCVSxZQUFZO2tIQUFaLFlBQVksY0FEQyxNQUFNOzsyRkFDbkIsWUFBWTtrQkFEeEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIERhdGVBZGFwdGVyIHtcbiAgaXNEYXRlPEQ+KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEIHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlIHx8IGRheWpzLmlzRGF5anModmFsdWUpO1xuICB9XG5cbiAgaXNWYWxpZCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNEYXRlPERhdGU+KHZhbHVlKSAmJiAhaXNOYU4odmFsdWUuZ2V0VGltZSgpKTtcbiAgfVxuXG4gIGdldEpzRGF0ZTxEPih2YWx1ZTogYW55KTogRCB7XG4gICAgcmV0dXJuIHZhbHVlIGFzIEQ7XG4gIH1cblxuICBjb252ZXJ0VG9EYXRlPEQ+KHZhbHVlOiBEYXRlKTogRCB7XG4gICAgcmV0dXJuIHZhbHVlIGFzIEQ7XG4gIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBEYXlqc0FkYXB0ZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcikge31cblxuICBpc0RheWpzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBkYXlqcy5EYXlqcyB7XG4gICAgcmV0dXJuIGRheWpzLmlzRGF5anModmFsdWUpO1xuICB9XG5cbiAgaXNWYWxpZCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNEYXlqcyh2YWx1ZSkgJiYgdmFsdWUuaXNWYWxpZCgpO1xuICB9XG5cbiAgZ2V0SnNEYXRlKHZhbHVlOiBkYXlqcy5EYXlqcyk6IERhdGUge1xuICAgIHJldHVybiB2YWx1ZS50b0RhdGUoKTtcbiAgfVxuXG4gIGNvbnZlcnRUb0RheWpzPEQ+KHZhbHVlOiBhbnkpOiBEIHtcbiAgICByZXR1cm4gZGF5anModmFsdWUpIGFzIEQ7XG4gIH1cbn1cbiJdfQ==","import { inject } from '@angular/core';\nimport { getFirestoreAnnotations } from '../../decorators/decorators';\nimport { walkObj } from '@nx-ddd/core';\nimport { get } from 'lodash-es';\nimport { DateAdapter } from '../dayjs';\nexport class FirestoreAdapter {\n constructor() {\n this.dateAdapter = inject(DateAdapter);\n }\n //** @deprecated */\n toFirestoreData(entity) {\n return Object.entries(entity).reduce((pre, [k, v]) => ({\n ...pre, [k]: this.dateAdapter.isDate(v) ? this.convertDateToTimestamp(v) : v,\n }), {});\n }\n //** @deprecated */\n fromFirestoreData(data) {\n return Object.entries(data).reduce((pre, [k, v]) => ({\n ...pre, [k]: this.isTimestamp(v) ? this.convertTimestampToDate(v) : v,\n }), {});\n }\n toFirestore(obj, Entity) {\n const newObj = {};\n for (const annotation of getFirestoreAnnotations(Entity)) {\n const _value = get(obj, annotation.propName);\n if (_value === null) {\n newObj[annotation.fieldName] = null;\n continue;\n }\n switch (annotation.type) {\n case 'id':\n case 'string':\n case 'number':\n case 'boolean': {\n if (typeof _value === 'undefined')\n break;\n newObj[annotation.fieldName] = _value;\n break;\n }\n case 'timestamp': {\n if (typeof _value === 'undefined')\n break;\n if (!this.dateAdapter.isDate(_value)) {\n console.error('[FirestoreAdapter] _value:', _value);\n throw new Error(`Invalid Date Type: ${_value}`);\n }\n newObj[annotation.fieldName] = this.convertDateToTimestamp(_value);\n break;\n }\n case 'array': {\n if (typeof annotation?.childType === 'undefined') {\n if (_value)\n newObj[annotation.fieldName] = _value;\n }\n else {\n const Type = annotation.childType();\n if (typeof _value === 'undefined')\n break;\n if (!Array.isArray(_value)) {\n newObj[annotation.fieldName] = [];\n break;\n }\n const value = (_value ?? []).map(v => {\n switch (Type) {\n case String:\n case Number:\n return v;\n default:\n return this.toFirestore(v, Type);\n }\n });\n if (value)\n newObj[annotation.fieldName] = value;\n }\n break;\n }\n case 'map': {\n if (typeof _value === 'undefined')\n break;\n if (typeof annotation?.childType === 'undefined') {\n if (_value)\n newObj[annotation.fieldName] = _value;\n }\n else {\n const Type = annotation.childType();\n const value = this.toFirestore(_value, Type);\n if (value)\n newObj[annotation.fieldName] = value;\n }\n break;\n }\n }\n }\n return newObj;\n }\n fromFirestore(data, Entity) {\n const newObj = {};\n for (const annotation of getFirestoreAnnotations(Entity)) {\n const _value = data[annotation.fieldName];\n if (typeof _value === 'undefined')\n continue;\n if (_value === null) {\n newObj[annotation.propName] = null;\n continue;\n }\n switch (annotation.type) {\n case 'id':\n case 'string':\n case 'number':\n case 'boolean': {\n newObj[annotation.propName] = _value;\n break;\n }\n case 'timestamp': {\n try {\n newObj[annotation.propName] = this.convertTimestampToDate(_value);\n }\n catch (e) {\n newObj[annotation.propName] = _value;\n }\n break;\n }\n case 'array': {\n if (typeof annotation?.childType === 'undefined') {\n newObj[annotation.propName] = _value;\n }\n else {\n const Type = annotation.childType();\n const value = _value.map(v => {\n switch (Type) {\n case String:\n case Number:\n return v;\n default:\n return this.fromFirestore(v, Type);\n }\n });\n if (value)\n newObj[annotation.propName] = value;\n }\n break;\n }\n case 'map': {\n if (typeof annotation?.childType === 'undefined') {\n newObj[annotation.propName] = _value;\n }\n else {\n const Type = annotation.childType();\n const value = this.fromFirestore(_value, Type);\n if (value)\n newObj[annotation.propName] = value;\n }\n break;\n }\n }\n }\n return newObj;\n }\n /**\n * @description FirestoreのUpdateは通常のオブジェクトでは孫以下のプロパティが既存データとマージされないので、パスに変換する必要がある。\n */\n flattenForUpdate(obj) {\n const newObj = {};\n walkObj(obj, {\n callback: (paths, value) => newObj[paths.join('.')] = value,\n overwrite: (_, value) => {\n if (Array.isArray(value))\n return [true, value];\n if (this.isTimestamp(value))\n return [true, value];\n if (this.isFieldValue(value))\n return [true, value];\n return [false];\n }\n });\n return newObj;\n }\n convertDateToTimestamp(date) {\n return this.Timestamp.fromDate(date);\n }\n convertTimestampToDate(timestamp) {\n return this.dateAdapter.convertToDate(timestamp.toDate());\n }\n}\nexport function provideFirestoreAdapter(useClass) {\n return { provide: FirestoreAdapter, useClass };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9maXJlc3RvcmUvc3JjL2xpYi9hZGFwdGVycy9iYXNlL2Jhc2UuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVdoQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBUXZDLE1BQU0sT0FBZ0IsZ0JBQWdCO0lBQXRDO1FBQ1ksZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFxTjlDLENBQUM7SUFuS0MsbUJBQW1CO0lBQ25CLGVBQWUsQ0FBUyxNQUFjO1FBQ3BDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckQsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3BGLENBQUMsRUFBRSxFQUFtQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixpQkFBaUIsQ0FBUyxJQUFtQztRQUMzRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFD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LE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBWSxDQUFDLENBQUM7Z0JBQ3pELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7b0JBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDbkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ2hCLENBQUM7U0FDRixDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBVTtRQUMvQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxTQUFvQjtRQUN6QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQzNELENBQUM7Q0FFRjtBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUFvQztJQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldEZpcmVzdG9yZUFubm90YXRpb25zIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IHdhbGtPYmogfSBmcm9tICdAbngtZGRkL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29sbGVjdGlvblJlZmVyZW5jZSxcbiAgQ29sbGVjdGlvbkdyb3VwLFxuICBEb2N1bWVudFJlZmVyZW5jZSxcbiAgVG9GaXJlc3RvcmVEYXRhLFxuICBUaW1lc3RhbXAsXG4gIFF1ZXJ5LFxuICBGaWVsZFZhbHVlLFxuICBEb2N1bWVudERhdGFcbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJy4uL2RheWpzJztcblxuZXhwb3J0IHR5cGUgUXVlcnlGbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlLCBSPiA9IChcbiAgY29sbGVjdGlvbj86IGFueVxuKSA9PiBSO1xuZXhwb3J0IHR5cGUgV2hlcmVGaWx0ZXJPcCA9ICc8JyB8ICc8PScgfCAnPT0nIHwgJyE9JyB8ICc+PScgfCAnPicgfCAnYXJyYXktY29udGFpbnMnIHwgJ2luJyB8ICdhcnJheS1jb250YWlucy1hbnknIHwgJ25vdC1pbic7XG5cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZpcmVzdG9yZUFkYXB0ZXI8RGF0ZSA9IGFueT4ge1xuICBwcm90ZWN0ZWQgZGF0ZUFkYXB0ZXIgPSBpbmplY3QoRGF0ZUFkYXB0ZXIpO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBpc1RpbWVzdGFtcCh2OiBhbnkpOiB2IGlzIFRpbWVzdGFtcDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGlzRmllbGRWYWx1ZSh2OiBhbnkpOiB2IGlzIEZpZWxkVmFsdWU7XG5cbiAgYWJzdHJhY3QgZ2V0IFRpbWVzdGFtcCgpOiBhbnlcbiAgYWJzdHJhY3QgZ2V0IEZpZWxkVmFsdWUoKTogYW55XG4gIGFic3RyYWN0IGdldCBGaWVsZFBhdGgoKTogYW55XG5cbiAgYWJzdHJhY3QgZG9jPFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihwYXRoOiBzdHJpbmcpOiBEb2N1bWVudFJlZmVyZW5jZTxBcHBNb2RlbFR5cGU+O1xuXG4gIGFic3RyYWN0IGNvbGxlY3Rpb248XG4gICAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICAgIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuICA+KHBhdGg6IHN0cmluZyk6IENvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG5cbiAgYWJzdHJhY3QgY29sbGVjdGlvbkdyb3VwPFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihjb2xsZWN0aW9uSWQ6IHN0cmluZyk6IENvbGxlY3Rpb25Hcm91cDxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcblxuICBhYnN0cmFjdCBxdWVyeTxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPixcbiAgICAuLi5xdWVyeUZuQXJyYXk6IFF1ZXJ5Rm48QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgYW55PltdXG4gICk6IFF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+O1xuXG4gIGFic3RyYWN0IHdoZXJlPFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihrZXk6IHN0cmluZywgZXZhbHVhdGlvbjogV2hlcmVGaWx0ZXJPcCwgdmFsdWU6IHVua25vd24pOiBRdWVyeUZuPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGUsIGFueT47XG5cbiAgYWJzdHJhY3Qgb3JkZXJCeTxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oa2V5OiBzdHJpbmcsIG9yZGVyOiAnYXNjJyB8ICdkZXNjJyk6IFF1ZXJ5Rm48QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgYW55PjtcblxuICBhYnN0cmFjdCBsaW1pdDxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4objogbnVtYmVyKTogUXVlcnlGbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlLCBhbnk+O1xuXG4gIGFic3RyYWN0IHJ1blRyYW5zYWN0aW9uKGZuOiBhbnkpOiBhbnk7XG4gIGFic3RyYWN0IGJhdGNoKCk6IGFueTtcblxuICAvLyoqIEBkZXByZWNhdGVkICovXG4gIHRvRmlyZXN0b3JlRGF0YTxFbnRpdHk+KGVudGl0eTogRW50aXR5KTogVG9GaXJlc3RvcmVEYXRhPEVudGl0eSwgRGF0ZT4ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhlbnRpdHkpLnJlZHVjZSgocHJlLCBbaywgdl0pID0+ICh7XG4gICAgICAuLi5wcmUsIFtrXTogdGhpcy5kYXRlQWRhcHRlci5pc0RhdGU8RGF0ZT4odikgPyAgdGhpcy5jb252ZXJ0RGF0ZVRvVGltZXN0YW1wKHYpIDogdixcbiAgICB9KSwge30gYXMgVG9GaXJlc3RvcmVEYXRhPEVudGl0eSwgRGF0ZT4pO1xuICB9XG5cbiAgLy8qKiBAZGVwcmVjYXRlZCAqL1xuICBmcm9tRmlyZXN0b3JlRGF0YTxFbnRpdHk+KGRhdGE6IFRvRmlyZXN0b3JlRGF0YTxFbnRpdHksIERhdGU+KTogRW50aXR5IHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoZGF0YSkucmVkdWNlKChwcmUsIFtrLCB2XSkgPT4gKHtcbiAgICAgIC4uLnByZSwgW2tdOiB0aGlzLmlzVGltZXN0YW1wKHYpID8gdGhpcy5jb252ZXJ0VGltZXN0YW1wVG9EYXRlKHYpIDogdixcbiAgICB9KSwge30gYXMgRW50aXR5KTtcbiAgfVxuXG4gIHRvRmlyZXN0b3JlPFQ+KG9iajogb2JqZWN0LCBFbnRpdHk6IG5ldyAoKSA9PiBUKTogb2JqZWN0IHtcbiAgICBjb25zdCBuZXdPYmogPSB7fTtcbiAgICBmb3IgKGNvbnN0IGFubm90YXRpb24gb2YgZ2V0RmlyZXN0b3JlQW5ub3RhdGlvbnMoRW50aXR5KSkge1xuICAgICAgY29uc3QgX3ZhbHVlID0gZ2V0KG9iaiwgYW5ub3RhdGlvbi5wcm9wTmFtZSk7XG4gICAgICBpZiAoX3ZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIG5ld09ialthbm5vdGF0aW9uLmZpZWxkTmFtZV0gPSBudWxsO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHN3aXRjaChhbm5vdGF0aW9uLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnaWQnOlxuICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICBjYXNlICdudW1iZXInOiBcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6IHtcbiAgICAgICAgICBpZiAodHlwZW9mIF92YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIGJyZWFrO1xuICAgICAgICAgIG5ld09ialthbm5vdGF0aW9uLmZpZWxkTmFtZV0gPSBfdmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAndGltZXN0YW1wJzoge1xuICAgICAgICAgIGlmICh0eXBlb2YgX3ZhbHVlID09PSAndW5kZWZpbmVkJykgYnJlYWs7XG4gICAgICAgICAgaWYgKCF0aGlzLmRhdGVBZGFwdGVyLmlzRGF0ZTxEYXRlPihfdmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbRmlyZXN0b3JlQWRhcHRlcl0gX3ZhbHVlOicsIF92YWx1ZSk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRGF0ZSBUeXBlOiAke192YWx1ZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbmV3T2JqW2Fubm90YXRpb24uZmllbGROYW1lXSA9IHRoaXMuY29udmVydERhdGVUb1RpbWVzdGFtcChfdmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2FycmF5Jzoge1xuICAgICAgICAgIGlmICh0eXBlb2YgYW5ub3RhdGlvbj8uY2hpbGRUeXBlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaWYgKF92YWx1ZSkgbmV3T2JqW2Fubm90YXRpb24uZmllbGROYW1lXSA9IF92YWx1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgVHlwZSA9IChhbm5vdGF0aW9uIGFzIGFueSkuY2hpbGRUeXBlKCk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIF92YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIGJyZWFrO1xuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KF92YWx1ZSkpIHtcbiAgICAgICAgICAgICAgbmV3T2JqW2Fubm90YXRpb24uZmllbGROYW1lXSA9IFtdO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKF92YWx1ZSA/PyBbXSkubWFwKHYgPT4ge1xuICAgICAgICAgICAgICBzd2l0Y2ggKFR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFN0cmluZzpcbiAgICAgICAgICAgICAgICBjYXNlIE51bWJlcjpcbiAgICAgICAgICAgICAgICAgIHJldHVybiB2XG4gICAgICAgICAgICAgICAgZGVmYXVsdDogXG4gICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b0ZpcmVzdG9yZSh2LCBUeXBlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAodmFsdWUpIG5ld09ialthbm5vdGF0aW9uLmZpZWxkTmFtZV0gPSB2YWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdtYXAnOiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBfdmFsdWUgPT09ICd1bmRlZmluZWQnKSBicmVhaztcbiAgICAgICAgICBpZiAodHlwZW9mIChhbm5vdGF0aW9uIGFzIGFueSk/LmNoaWxkVHlwZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGlmIChfdmFsdWUpIG5ld09ialthbm5vdGF0aW9uLmZpZWxkTmFtZV0gPSBfdmFsdWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IFR5cGUgPSAoYW5ub3RhdGlvbiBhcyBhbnkpLmNoaWxkVHlwZSgpO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnRvRmlyZXN0b3JlKF92YWx1ZSwgVHlwZSk7XG4gICAgICAgICAgICBpZiAodmFsdWUpIG5ld09ialthbm5vdGF0aW9uLmZpZWxkTmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld09iajtcbiAgfVxuICBcbiAgZnJvbUZpcmVzdG9yZTxUID0gYW55PihkYXRhOiBhbnksIEVudGl0eTogbmV3KCkgPT4gVCk6IFQge1xuICAgIGNvbnN0IG5ld09iaiA9IHt9O1xuICAgIGZvciAoY29uc3QgYW5ub3RhdGlvbiBvZiBnZXRGaXJlc3RvcmVBbm5vdGF0aW9ucyhFbnRpdHkpKSB7XG4gICAgICBjb25zdCBfdmFsdWUgPSBkYXRhW2Fubm90YXRpb24uZmllbGROYW1lXTtcbiAgICAgIGlmICh0eXBlb2YgX3ZhbHVlID09PSAndW5kZWZpbmVkJykgY29udGludWU7XG4gICAgICBpZiAoX3ZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIG5ld09ialthbm5vdGF0aW9uLnByb3BOYW1lXSA9IG51bGw7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2goYW5ub3RhdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2lkJzpcbiAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6IHtcbiAgICAgICAgICBuZXdPYmpbYW5ub3RhdGlvbi5wcm9wTmFtZV0gPSBfdmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAndGltZXN0YW1wJzoge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBuZXdPYmpbYW5ub3RhdGlvbi5wcm9wTmFtZV0gPSB0aGlzLmNvbnZlcnRUaW1lc3RhbXBUb0RhdGUoX3ZhbHVlKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBuZXdPYmpbYW5ub3RhdGlvbi5wcm9wTmFtZV0gPSBfdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2FycmF5Jzoge1xuICAgICAgICAgIGlmICh0eXBlb2YgYW5ub3RhdGlvbj8uY2hpbGRUeXBlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgbmV3T2JqW2Fubm90YXRpb24ucHJvcE5hbWVdID0gX3ZhbHVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBUeXBlID0gKGFubm90YXRpb24gYXMgYW55KS5jaGlsZFR5cGUoKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gX3ZhbHVlLm1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgc3dpdGNoIChUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBTdHJpbmc6XG4gICAgICAgICAgICAgICAgY2FzZSBOdW1iZXI6XG4gICAgICAgICAgICAgICAgICByZXR1cm4gdlxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mcm9tRmlyZXN0b3JlKHYsIFR5cGUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSkgbmV3T2JqW2Fubm90YXRpb24ucHJvcE5hbWVdID0gdmFsdWVcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnbWFwJzoge1xuICAgICAgICAgIGlmICh0eXBlb2YgYW5ub3RhdGlvbj8uY2hpbGRUeXBlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgbmV3T2JqW2Fubm90YXRpb24ucHJvcE5hbWVdID0gX3ZhbHVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBUeXBlID0gKGFubm90YXRpb24gYXMgYW55KS5jaGlsZFR5cGUoKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mcm9tRmlyZXN0b3JlKF92YWx1ZSwgVHlwZSk7XG4gICAgICAgICAgICBpZiAodmFsdWUpIG5ld09ialthbm5vdGF0aW9uLnByb3BOYW1lXSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3T2JqIGFzIFQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpcmVzdG9yZeOBrlVwZGF0ZeOBr+mAmuW4uOOBruOCquODluOCuOOCp+OCr+ODiOOBp+OBr+Wtq+S7peS4i+OBruODl+ODreODkeODhuOCo+OBjOaXouWtmOODh+ODvOOCv+OBqOODnuODvOOCuOOBleOCjOOBquOBhOOBruOBp+OAgeODkeOCueOBq+WkieaPm+OBmeOCi+W/heimgeOBjOOBguOCi+OAglxuICAgKi9cbiAgZmxhdHRlbkZvclVwZGF0ZShvYmo6IGFueSk6IGFueSB7XG4gICAgY29uc3QgbmV3T2JqID0ge307XG4gICAgd2Fsa09iaihvYmosIHtcbiAgICAgIGNhbGxiYWNrOiAocGF0aHMsIHZhbHVlKSA9PiBuZXdPYmpbcGF0aHMuam9pbignLicpXSA9IHZhbHVlLFxuICAgICAgb3ZlcndyaXRlOiAoXywgdmFsdWUpID0+IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4gW3RydWUsIHZhbHVlXTtcbiAgICAgICAgaWYgKHRoaXMuaXNUaW1lc3RhbXAodmFsdWUpKSByZXR1cm4gW3RydWUsIHZhbHVlIGFzIGFueV07XG4gICAgICAgIGlmICh0aGlzLmlzRmllbGRWYWx1ZSh2YWx1ZSkpIHJldHVybiBbdHJ1ZSwgdmFsdWVdO1xuICAgICAgICByZXR1cm4gW2ZhbHNlXVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBuZXdPYmo7XG4gIH1cblxuICBjb252ZXJ0RGF0ZVRvVGltZXN0YW1wKGRhdGU6IERhdGUpOiBUaW1lc3RhbXAge1xuICAgIHJldHVybiB0aGlzLlRpbWVzdGFtcC5mcm9tRGF0ZShkYXRlKTtcbiAgfVxuXG4gIGNvbnZlcnRUaW1lc3RhbXBUb0RhdGUodGltZXN0YW1wOiBUaW1lc3RhbXApOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlQWRhcHRlci5jb252ZXJ0VG9EYXRlKHRpbWVzdGFtcC50b0RhdGUoKSlcbiAgfVxuICBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVGaXJlc3RvcmVBZGFwdGVyKHVzZUNsYXNzOiBuZXcgKCkgPT4gRmlyZXN0b3JlQWRhcHRlcikge1xuICByZXR1cm4geyBwcm92aWRlOiBGaXJlc3RvcmVBZGFwdGVyLCB1c2VDbGFzcyB9O1xufVxuIl19","import { inject } from '@angular/core';\nimport { plainToInstanceWithValid } from '@nx-ddd/core';\nimport { FirestoreAdapter } from '../adapters/base';\nclass FirestoreHelper {\n static fromFirestore(doc, Entity, adapter) {\n const data = adapter.fromFirestore({ ...doc.data(), id: doc.id }, Entity);\n return plainToInstanceWithValid(Entity, data);\n }\n}\nclass BasicConverter {\n constructor(Entity, adapter) {\n this.Entity = Entity;\n this.adapter = adapter;\n }\n fromFirestore(doc) {\n return this.adapter.fromFirestore({\n ...doc.data(),\n id: doc.id\n }, this.Entity);\n }\n fromFirestoreMany(docs) {\n return docs.map(doc => this.fromFirestore(doc));\n }\n toFirestore(entity) {\n return this.adapter.toFirestore(entity, this.Entity);\n }\n}\nexport function getConverter(Entity, adapter = inject(FirestoreAdapter)) {\n return new BasicConverter(Entity, adapter);\n}\nexport function injectConverter(Entity) {\n return getConverter(Entity, inject(FirestoreAdapter));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9maXJlc3RvcmUvc3JjL2xpYi9jb252ZXJ0ZXIvY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBV3BELE1BQU0sZUFBZTtJQUNuQixNQUFNLENBQUMsYUFBYSxDQUF5QixHQUE2QixFQUFFLE1BQW1CLEVBQUUsT0FBeUI7UUFDeEgsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEUsT0FBTyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNGO0FBRUQsTUFBTSxjQUFjO0lBQ2xCLFlBQ3FCLE1BQW1CLEVBQ25CLE9BQXlCO1FBRHpCLFdBQU0sR0FBTixNQUFNLENBQWE7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7SUFDMUMsQ0FBQztJQUVMLGFBQWEsQ0FBQyxHQUEwQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQ2hDLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRTtZQUNiLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtTQUNYLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUE2QjtRQUM3QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUMxQixNQUF3QixFQUN4QixVQUE0QixNQUFNLENBQUMsZ0JBQWdCLENBQUM7SUFFcEQsT0FBTyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQThCLE1BQXdCO0lBQ25GLE9BQU8sWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBsYWluVG9JbnN0YW5jZVdpdGhWYWxpZCB9IGZyb20gJ0BueC1kZGQvY29yZSc7XG5pbXBvcnQgeyBGaXJlc3RvcmVBZGFwdGVyIH0gZnJvbSAnLi4vYWRhcHRlcnMvYmFzZSc7XG5pbXBvcnQgeyBEb2N1bWVudFNuYXBzaG90IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpcmVzdG9yZUNvbnZlcnRlcjxFIGV4dGVuZHMge2lkOiBzdHJpbmd9PiB7XG4gIGZyb21GaXJlc3RvcmUoZG9jOiBEb2N1bWVudFNuYXBzaG90PG9iamVjdD4pOiBFO1xuICBmcm9tRmlyZXN0b3JlTWFueShkb2NzOiBEb2N1bWVudFNuYXBzaG90PG9iamVjdD5bXSk6IEVbXTtcbiAgdG9GaXJlc3RvcmUoZW50aXR5OiBQYXJ0aWFsPEU+KTogb2JqZWN0O1xuICBmcm9tT2JqZWN0PyhvYmo6IG9iamVjdCk6IEU7XG4gIHRvT2JqZWN0PyhlbnRpdHk6IEUpOiBvYmplY3Q7XG59XG5cbmNsYXNzIEZpcmVzdG9yZUhlbHBlciB7XG4gIHN0YXRpYyBmcm9tRmlyZXN0b3JlPEUgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+KGRvYzogRG9jdW1lbnRTbmFwc2hvdDxvYmplY3Q+LCBFbnRpdHk6IG5ldyAoKSA9PiBFLCBhZGFwdGVyOiBGaXJlc3RvcmVBZGFwdGVyKTogRSB7XG4gICAgY29uc3QgZGF0YSA9IGFkYXB0ZXIuZnJvbUZpcmVzdG9yZSh7Li4uZG9jLmRhdGEoKSwgaWQ6IGRvYy5pZH0sIEVudGl0eSk7XG4gICAgcmV0dXJuIHBsYWluVG9JbnN0YW5jZVdpdGhWYWxpZChFbnRpdHksIGRhdGEpO1xuICB9XG59XG5cbmNsYXNzIEJhc2ljQ29udmVydGVyPEUgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IEVudGl0eTogbmV3ICgpID0+IEUsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFkYXB0ZXI6IEZpcmVzdG9yZUFkYXB0ZXIsXG4gICkgeyB9XG5cbiAgZnJvbUZpcmVzdG9yZShkb2M6IERvY3VtZW50U25hcHNob3Q8YW55Pik6IEUge1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZnJvbUZpcmVzdG9yZSh7XG4gICAgICAuLi5kb2MuZGF0YSgpLFxuICAgICAgaWQ6IGRvYy5pZFxuICAgIH0sIHRoaXMuRW50aXR5KTtcbiAgfVxuXG4gIGZyb21GaXJlc3RvcmVNYW55KGRvY3M6IERvY3VtZW50U25hcHNob3Q8YW55PltdKTogRVtdIHtcbiAgICByZXR1cm4gZG9jcy5tYXAoZG9jID0+IHRoaXMuZnJvbUZpcmVzdG9yZShkb2MpKTtcbiAgfVxuXG4gIHRvRmlyZXN0b3JlKGVudGl0eTogRSk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci50b0ZpcmVzdG9yZShlbnRpdHksIHRoaXMuRW50aXR5KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udmVydGVyPEVudGl0eSBleHRlbmRzIHtpZDogc3RyaW5nfT4oXG4gIEVudGl0eTogbmV3ICgpID0+IEVudGl0eSxcbiAgYWRhcHRlcjogRmlyZXN0b3JlQWRhcHRlciA9IGluamVjdChGaXJlc3RvcmVBZGFwdGVyKSxcbik6IElGaXJlc3RvcmVDb252ZXJ0ZXI8RW50aXR5PiB7XG4gIHJldHVybiBuZXcgQmFzaWNDb252ZXJ0ZXIoRW50aXR5LCBhZGFwdGVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdENvbnZlcnRlcjxFbnRpdHkgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+KEVudGl0eTogbmV3ICgpID0+IEVudGl0eSk6IElGaXJlc3RvcmVDb252ZXJ0ZXI8RW50aXR5PiB7XG4gIHJldHVybiBnZXRDb252ZXJ0ZXIoRW50aXR5LCBpbmplY3QoRmlyZXN0b3JlQWRhcHRlcikpO1xufVxuIl19","export class FirestoreDAO {\n constructor(adapter, pathBuilder) {\n this.adapter = adapter;\n this.pathBuilder = pathBuilder;\n }\n collection(paramMap) {\n const path = this.pathBuilder.collection(paramMap);\n return this.adapter.collection(path);\n }\n collectionGroup() {\n const path = this.pathBuilder.collectionGroup();\n return this.adapter.collectionGroup(path);\n }\n doc(paramMap) {\n const path = this.pathBuilder.doc(paramMap);\n return this.adapter.doc(path);\n }\n getCollection(paramMap) {\n return paramMap ? this.collection(paramMap) : this.collectionGroup();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLmRhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvZGFvL2ZpcmVzdG9yZS5kYW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxPQUFPLFlBQVk7SUFLdkIsWUFDWSxPQUF5QixFQUN6QixXQUF5QztRQUR6QyxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBOEI7SUFDakQsQ0FBQztJQUVMLFVBQVUsQ0FBQyxRQUEwQjtRQUNuQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNsRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFnQixJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELEdBQUcsQ0FBQyxRQUF3QztRQUMxQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFnQixJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQTBCO1FBQ3RDLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdkUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7IEZpcmVzdG9yZUFkYXB0ZXIgfSBmcm9tICcuLi9hZGFwdGVycy9iYXNlJztcbmltcG9ydCB7IENvbGxlY3Rpb25SZWZlcmVuY2UsIENvbGxlY3Rpb25Hcm91cCwgRG9jdW1lbnRSZWZlcmVuY2UsIFRvRmlyZXN0b3JlRGF0YSwgQ29sbGVjdGlvbkxpa2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEZpcmVzdG9yZVBhdGhCdWlsZGVyIH0gZnJvbSAnLi4vcGF0aC1idWlsZGVyJztcblxuXG5leHBvcnQgY2xhc3MgRmlyZXN0b3JlREFPPFxuICBFbnRpdHkgZXh0ZW5kcyB7aWQ6IHN0cmluZ30sIFxuICBGaXJlc3RvcmVEYXRhID0gVG9GaXJlc3RvcmVEYXRhPEVudGl0eSwgZGF5anMuRGF5anM+LFxuPiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGFkYXB0ZXI6IEZpcmVzdG9yZUFkYXB0ZXIsXG4gICAgcHJvdGVjdGVkIHBhdGhCdWlsZGVyOiBGaXJlc3RvcmVQYXRoQnVpbGRlcjxFbnRpdHk+LFxuICApIHsgfVxuXG4gIGNvbGxlY3Rpb24ocGFyYW1NYXA/OiBQYXJ0aWFsPEVudGl0eT4pOiBDb2xsZWN0aW9uUmVmZXJlbmNlPEZpcmVzdG9yZURhdGE+IHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5wYXRoQnVpbGRlci5jb2xsZWN0aW9uKHBhcmFtTWFwKVxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuY29sbGVjdGlvbjxGaXJlc3RvcmVEYXRhPihwYXRoKTtcbiAgfVxuXG4gIGNvbGxlY3Rpb25Hcm91cCgpOkNvbGxlY3Rpb25Hcm91cDxGaXJlc3RvcmVEYXRhPiB7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMucGF0aEJ1aWxkZXIuY29sbGVjdGlvbkdyb3VwKCk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5jb2xsZWN0aW9uR3JvdXA8RmlyZXN0b3JlRGF0YT4ocGF0aCk7XG4gIH1cblxuICBkb2MocGFyYW1NYXA6IFBhcnRpYWw8RW50aXR5PiAmIHtpZDogc3RyaW5nfSk6IERvY3VtZW50UmVmZXJlbmNlPEZpcmVzdG9yZURhdGE+IHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5wYXRoQnVpbGRlci5kb2MocGFyYW1NYXApO1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZG9jPEZpcmVzdG9yZURhdGE+KHBhdGgpO1xuICB9XG5cbiAgZ2V0Q29sbGVjdGlvbihwYXJhbU1hcD86IFBhcnRpYWw8RW50aXR5Pik6IENvbGxlY3Rpb25MaWtlIHtcbiAgICByZXR1cm4gcGFyYW1NYXAgPyB0aGlzLmNvbGxlY3Rpb24ocGFyYW1NYXApIDogdGhpcy5jb2xsZWN0aW9uR3JvdXAoKTtcbiAgfVxufVxuIl19","export class FirestorePathBuilder {\n doc(param) {\n return resolvePaths(param, this.paths);\n }\n collection(param = {}) {\n return resolvePaths(param, this.paths.slice(0, -1));\n }\n collectionGroup() {\n return this.paths[this.paths.length - 2];\n }\n constructor(paths) {\n this.paths = paths;\n }\n}\nexport function pathBuilderFactory(path) {\n const paths = parsePath(path);\n return new FirestorePathBuilder(paths);\n}\nexport function parsePath(path) {\n const paths = path.split('/').filter(p => p.length);\n if (!paths[paths.length - 1].startsWith(':'))\n paths.push(':id');\n return paths;\n}\nexport const resolvePaths = (obj, paths) => {\n return paths.map((path) => path.startsWith(':') ? resolvePath(obj, path.slice(1)) : path).join('/');\n};\nconst resolvePath = (obj, key) => {\n if (!obj?.[key])\n throw new Error(`Invalid key is detected in resolving paths, key: \\`${key}\\`, obj: \\`${JSON.stringify(obj)}\\``);\n return obj?.[key];\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9maXJlc3RvcmUvc3JjL2xpYi9wYXRoLWJ1aWxkZXIvcGF0aC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE1BQU0sT0FBTyxvQkFBb0I7SUFJL0IsR0FBRyxDQUFDLEtBQTBCO1FBQzVCLE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUE4QyxFQUFFO1FBQ3pELE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFvQixLQUFlO1FBQWYsVUFBSyxHQUFMLEtBQUssQ0FBVTtJQUFJLENBQUM7Q0FDekM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBSWhDLElBQVU7SUFFVixNQUFNLEtBQUssR0FBRyxTQUFTLENBQU8sSUFBSSxDQUFDLENBQUM7SUFDcEMsT0FBTyxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUErQixJQUFVO0lBQ2hFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBZSxFQUFVLEVBQUU7SUFDbkUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RHLENBQUMsQ0FBQTtBQUVELE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBVyxFQUFFLEdBQVcsRUFBRSxFQUFFO0lBQy9DLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxHQUFHLGNBQWMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakksT0FBTyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIENvbGxlY3Rpb25QYXJhbU1hcDxFbnRpdHkgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+ID0gUGFydGlhbDxFbnRpdHk+O1xudHlwZSBEb2NQYXJhbU1hcDxFbnRpdHkgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+ID0gQ29sbGVjdGlvblBhcmFtTWFwPEVudGl0eT4gJiBQaWNrPEVudGl0eSwgJ2lkJz47XG5cbmV4cG9ydCB0eXBlIEV4dHJhY3RQYXJhbXM8VCBleHRlbmRzIHN0cmluZz4gPSBcbiAgVCBleHRlbmRzIGAke2luZmVyIF9TdGFydH06JHtpbmZlciBQYXJhbX0vJHtpbmZlciBSZXN0fWBcbiAgICA/IHsgW0sgaW4gUGFyYW0gfCBrZXlvZiBFeHRyYWN0UGFyYW1zPFJlc3Q+XTogc3RyaW5nIH1cbiAgICA6IFQgZXh0ZW5kcyBgJHtpbmZlciBfU3RhcnR9OiR7aW5mZXIgUGFyYW19YFxuICAgID8geyBbSyBpbiBQYXJhbV06IHN0cmluZyB9XG4gICAgOiB7fTtcblxudHlwZSBQYXJhbXMgPSBFeHRyYWN0UGFyYW1zPCd1c2Vycy86dXNlcklkL2ltYWdlcy86aWQnPjtcblxuZXhwb3J0IHR5cGUgQ29sUGFyYW08VCBleHRlbmRzIHtyZWFkb25seSBjb2xsZWN0aW9uUGF0aDogc3RyaW5nfT4gPSBPbWl0PEV4dHJhY3RQYXJhbXM8VFsnY29sbGVjdGlvblBhdGgnXT4sICdpZCc+O1xuZXhwb3J0IHR5cGUgRG9jUGFyYW08VCBleHRlbmRzIHtyZWFkb25seSBjb2xsZWN0aW9uUGF0aDogc3RyaW5nfT4gPSBDb2xQYXJhbTxUPiAmIHtpZDogc3RyaW5nfTsgXG5cbmV4cG9ydCBjbGFzcyBGaXJlc3RvcmVQYXRoQnVpbGRlcjxcbiAgRW50aXR5IGV4dGVuZHMgeyBpZDogc3RyaW5nIH0sXG4gIFBhdGggZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4+IHtcbiAgZG9jKHBhcmFtOiBEb2NQYXJhbU1hcDxFbnRpdHk+KSB7XG4gICAgcmV0dXJuIHJlc29sdmVQYXRocyhwYXJhbSwgdGhpcy5wYXRocyk7XG4gIH1cblxuICBjb2xsZWN0aW9uKHBhcmFtOiBPbWl0PEV4dHJhY3RQYXJhbXM8UGF0aD4sICdpZCc+IHwge30gPSB7fSkge1xuICAgIHJldHVybiByZXNvbHZlUGF0aHMocGFyYW0sIHRoaXMucGF0aHMuc2xpY2UoMCwgLTEpKTtcbiAgfVxuXG4gIGNvbGxlY3Rpb25Hcm91cCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXRoc1t0aGlzLnBhdGhzLmxlbmd0aC0yXTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGF0aHM6IHN0cmluZ1tdKSB7IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhCdWlsZGVyRmFjdG9yeTxcbiAgRSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9LFxuICBQYXRoIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nXG4+KFxuICBwYXRoOiBQYXRoXG4pOiBGaXJlc3RvcmVQYXRoQnVpbGRlcjxFLCBQYXRoPiB7XG4gIGNvbnN0IHBhdGhzID0gcGFyc2VQYXRoPFBhdGg+KHBhdGgpO1xuICByZXR1cm4gbmV3IEZpcmVzdG9yZVBhdGhCdWlsZGVyKHBhdGhzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGF0aDxQYXRoIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPihwYXRoOiBQYXRoKTogc3RyaW5nW10ge1xuICBjb25zdCBwYXRocyA9IHBhdGguc3BsaXQoJy8nKS5maWx0ZXIocCA9PiBwLmxlbmd0aCk7XG4gIGlmICghcGF0aHNbcGF0aHMubGVuZ3RoLTFdLnN0YXJ0c1dpdGgoJzonKSkgcGF0aHMucHVzaCgnOmlkJyk7XG4gIHJldHVybiBwYXRocztcbn1cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVQYXRocyA9IChvYmo6IG9iamVjdCwgcGF0aHM6IHN0cmluZ1tdKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIHBhdGhzLm1hcCgocGF0aCkgPT4gcGF0aC5zdGFydHNXaXRoKCc6JykgPyByZXNvbHZlUGF0aChvYmosIHBhdGguc2xpY2UoMSkpIDogcGF0aCkuam9pbignLycpO1xufVxuXG5jb25zdCByZXNvbHZlUGF0aCA9IChvYmo6IG9iamVjdCwga2V5OiBzdHJpbmcpID0+IHtcbiAgaWYgKCFvYmo/LltrZXldKSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQga2V5IGlzIGRldGVjdGVkIGluIHJlc29sdmluZyBwYXRocywga2V5OiBcXGAke2tleX1cXGAsIG9iajogXFxgJHtKU09OLnN0cmluZ2lmeShvYmopfVxcYGApO1xuICByZXR1cm4gb2JqPy5ba2V5XTtcbn1cbiJdfQ==","import dayjs from 'dayjs';\nimport { ReplaySubject, lastValueFrom, of, throwError } from 'rxjs';\nimport { catchError, distinctUntilChanged, map, shareReplay, switchMap, take, tap } from 'rxjs/operators';\nimport { FirestoreDAO } from '../dao';\nexport class FirestoreQuery extends FirestoreDAO {\n constructor(adapter, converter, pathBuilder) {\n super(adapter, pathBuilder);\n this.converter = converter;\n this.pathBuilder = pathBuilder;\n this.collection$ = new ReplaySubject(1);\n this.list$ = this.collection$.pipe(switchMap((collection) => this.listChangesByCollectionRef(collection).pipe(catchError(error => throwError(() => error)))), shareReplay(1));\n this.switchCollectionRef();\n }\n /** @deprecated */\n listChanges(paramMap, options = { switch: true }) {\n return of(paramMap).pipe(tap((paramMap) => options?.switch && this.switchCollectionRef(paramMap)), switchMap(() => this.list$));\n }\n listChangesV2(paramMap) {\n return of(paramMap).pipe(tap((paramMap) => paramMap && this.switchCollectionRef(paramMap)), switchMap(() => this.list$));\n }\n listChangesAfter(updatedAt, { limit } = {}) {\n const entitiesMap = new Map();\n const _updatedAt = dayjs.isDayjs(updatedAt) ? this.adapter.convertDateToTimestamp(updatedAt) : updatedAt;\n return this.adapter.query(this.collection(), ...[\n this.adapter.where('updatedAt', '>', _updatedAt),\n this.adapter.orderBy('updatedAt', 'asc'),\n limit ? this.adapter.limit(limit) : undefined,\n ].filter(Boolean)).stateChanges().pipe(\n // bufferTime(1_000),\n // map(zippedActions => zippedActions.flat()),\n tap(actions => actions.forEach(({ type, payload: { doc } }) => {\n if (new Set(['added', 'modified']).has(type)) {\n entitiesMap.set(doc.id, this.converter.fromFirestore(doc));\n }\n else if (type === 'removed') {\n entitiesMap.delete(doc.id);\n }\n })), map(() => [...entitiesMap.values()]));\n }\n changes({ id }) {\n if (!id)\n throw new Error(`Invalid Id. it must be Truthy`);\n return this.list$.pipe(map(entities => entities.find(entity => entity.id === id)), distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)));\n }\n changesV2(params) {\n const docRef = this.doc(params);\n return docRef.stateChanges().pipe(map((doc) => this.converter.fromFirestore(doc)));\n }\n get({ id }) {\n return lastValueFrom(this.list$.pipe(take(1), map(entities => entities.find(entity => entity.id === id))));\n }\n list(paramMap) {\n this.switchCollectionRef(paramMap);\n return lastValueFrom(this.list$.pipe(take(1)));\n }\n listChangesByCollectionRef(collection) {\n const entitiesMap = new Map();\n return collection.stateChanges().pipe(tap(actions => actions.forEach(({ type, payload: { doc } }) => {\n if (new Set(['added', 'modified']).has(type)) {\n entitiesMap.set(doc.id, this.converter.fromFirestore(doc));\n }\n else if (type === 'removed') {\n entitiesMap.delete(doc.id);\n }\n })), map(() => [...entitiesMap.values()]));\n }\n switchCollectionRef(paramMap) {\n const collection = this.getCollection(paramMap);\n this.switchCollection(collection);\n }\n switchCollection(collection) {\n this.collection$.next(collection);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLnF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9maXJlc3RvcmUvc3JjL2xpYi9xdWVyeS9maXJlc3RvcmUucXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBYyxhQUFhLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUl0QyxNQUFNLE9BQU8sY0FHWCxTQUFRLFlBQW1DO0lBQzNDLFlBQ0UsT0FBeUIsRUFDZixTQUFzQyxFQUN0QyxXQUF5QztRQUVuRCxLQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBSGxCLGNBQVMsR0FBVCxTQUFTLENBQTZCO1FBQ3RDLGdCQUFXLEdBQVgsV0FBVyxDQUE4QjtRQU1sQyxnQkFBVyxHQUFHLElBQUksYUFBYSxDQUFnQyxDQUFDLENBQUMsQ0FBQztRQUNsRSxVQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzlDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDeEUsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzdDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQTtRQVRDLElBQUksQ0FBQyxtQkFB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SUFBSSxHQUFHLEVBQWUsQ0FBQztRQUMzQyxPQUFPLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQ25DLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBQyxHQUFHLEVBQUMsRUFBQyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUUsR0FBVyxDQUFDLENBQUMsQ0FBQztZQUN0RSxDQUFDO2lCQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM5QixXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUMsRUFDSCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQ3JDLENBQUM7SUFDSixDQUFDO0lBRVMsbUJBQW1CLENBQUMsUUFBMEI7UUFDdEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQStCO1FBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBsYXN0VmFsdWVGcm9tLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmlyZXN0b3JlQWRhcHRlciB9IGZyb20gJy4uL2FkYXB0ZXJzL2Jhc2UnO1xuaW1wb3J0IHsgSUZpcmVzdG9yZUNvbnZlcnRlciB9IGZyb20gJy4uL2NvbnZlcnRlcic7XG5pbXBvcnQgeyBGaXJlc3RvcmVEQU8gfSBmcm9tICcuLi9kYW8nO1xuaW1wb3J0IHsgRmlyZXN0b3JlUGF0aEJ1aWxkZXIgfSBmcm9tICcuLi9wYXRoLWJ1aWxkZXInO1xuaW1wb3J0IHsgRG9jdW1lbnRTbmFwc2hvdCwgQ29sbGVjdGlvblJlZmVyZW5jZSwgIENvbGxlY3Rpb25Hcm91cCwgVG9GaXJlc3RvcmVEYXRhLCBDb2xsZWN0aW9uTGlrZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgY2xhc3MgRmlyZXN0b3JlUXVlcnk8XG4gIEVudGl0eSBleHRlbmRzIHtpZDogc3RyaW5nfSA9IGFueSwgXG4gIEZpcmVzdG9yZURhdGEgPSBUb0ZpcmVzdG9yZURhdGE8RW50aXR5LCBkYXlqcy5EYXlqcz4sXG4+IGV4dGVuZHMgRmlyZXN0b3JlREFPPEVudGl0eSwgRmlyZXN0b3JlRGF0YT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBhZGFwdGVyOiBGaXJlc3RvcmVBZGFwdGVyLFxuICAgIHByb3RlY3RlZCBjb252ZXJ0ZXI6IElGaXJlc3RvcmVDb252ZXJ0ZXI8RW50aXR5PixcbiAgICBwcm90ZWN0ZWQgcGF0aEJ1aWxkZXI6IEZpcmVzdG9yZVBhdGhCdWlsZGVyPEVudGl0eT5cbiAgKSB7XG4gICAgc3VwZXIoYWRhcHRlciwgcGF0aEJ1aWxkZXIpO1xuICAgIHRoaXMuc3dpdGNoQ29sbGVjdGlvblJlZigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbGxlY3Rpb24kID0gbmV3IFJlcGxheVN1YmplY3Q8Q29sbGVjdGlvbkxpa2U8RmlyZXN0b3JlRGF0YT4+KDEpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGlzdCQgPSB0aGlzLmNvbGxlY3Rpb24kLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb2xsZWN0aW9uKSA9PiB0aGlzLmxpc3RDaGFuZ2VzQnlDb2xsZWN0aW9uUmVmKGNvbGxlY3Rpb24pLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHRocm93RXJyb3IoKCkgPT4gZXJyb3IpKSxcbiAgICApKSxcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgKVxuXG4gIC8qKiBAZGVwcmVjYXRlZCAqL1xuICBsaXN0Q2hhbmdlcyhwYXJhbU1hcD86IFBhcnRpYWw8RW50aXR5Piwgb3B0aW9uczoge3N3aXRjaD86IGJvb2xlYW59ID0ge3N3aXRjaDogdHJ1ZX0pOiBPYnNlcnZhYmxlPEVudGl0eVtdPiB7XG4gICAgcmV0dXJuIG9mKHBhcmFtTWFwKS5waXBlKFxuICAgICAgdGFwKChwYXJhbU1hcCkgPT4gb3B0aW9ucz8uc3dpdGNoICYmIHRoaXMuc3dpdGNoQ29sbGVjdGlvblJlZihwYXJhbU1hcCkpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubGlzdCQpLFxuICAgICk7XG4gIH1cblxuICBsaXN0Q2hhbmdlc1YyKHBhcmFtTWFwPzogUGFydGlhbDxFbnRpdHk+KTogT2JzZXJ2YWJsZTxFbnRpdHlbXT4ge1xuICAgIHJldHVybiBvZihwYXJhbU1hcCkucGlwZShcbiAgICAgIHRhcCgocGFyYW1NYXApID0+IHBhcmFtTWFwICYmIHRoaXMuc3dpdGNoQ29sbGVjdGlvblJlZihwYXJhbU1hcCkpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubGlzdCQpLFxuICAgICk7XG4gIH1cblxuICBsaXN0Q2hhbmdlc0FmdGVyKHVwZGF0ZWRBdDogZGF5anMuRGF5anMsIHtsaW1pdH06IHtsaW1pdD86IG51bWJlcn0gPSB7fSkge1xuICAgIGNvbnN0IGVudGl0aWVzTWFwID0gbmV3IE1hcDxzdHJpbmcsIEVudGl0eT4oKTtcbiAgICBjb25zdCBfdXBkYXRlZEF0ID0gZGF5anMuaXNEYXlqcyh1cGRhdGVkQXQpID8gdGhpcy5hZGFwdGVyLmNvbnZlcnREYXRlVG9UaW1lc3RhbXAodXBkYXRlZEF0KSA6IHVwZGF0ZWRBdFxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucXVlcnkoXG4gICAgICB0aGlzLmNvbGxlY3Rpb24oKSxcbiAgICAgIC4uLltcbiAgICAgICAgdGhpcy5hZGFwdGVyLndoZXJlKCd1cGRhdGVkQXQnLCAnPicsIF91cGRhdGVkQXQpLFxuICAgICAgICB0aGlzLmFkYXB0ZXIub3JkZXJCeSgndXBkYXRlZEF0JywgJ2FzYycpLFxuICAgICAgICBsaW1pdCA/IHRoaXMuYWRhcHRlci5saW1pdChsaW1pdCkgOiB1bmRlZmluZWQsXG4gICAgICBdLmZpbHRlcihCb29sZWFuKSxcbiAgICApLnN0YXRlQ2hhbmdlcygpLnBpcGUoXG4gICAgICAvLyBidWZmZXJUaW1lKDFfMDAwKSxcbiAgICAgIC8vIG1hcCh6aXBwZWRBY3Rpb25zID0+IHppcHBlZEFjdGlvbnMuZmxhdCgpKSxcbiAgICAgIHRhcChhY3Rpb25zID0+IGFjdGlvbnMuZm9yRWFjaCgoe3R5cGUsIHBheWxvYWQ6IHtkb2N9fSkgPT4ge1xuICAgICAgICBpZiAobmV3IFNldChbJ2FkZGVkJywgJ21vZGlmaWVkJ10pLmhhcyh0eXBlKSkge1xuICAgICAgICAgIGVudGl0aWVzTWFwLnNldChkb2MuaWQsIHRoaXMuY29udmVydGVyLmZyb21GaXJlc3RvcmUoZG9jIGFzIERvY3VtZW50U25hcHNob3Q8YW55PikpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdyZW1vdmVkJykge1xuICAgICAgICAgIGVudGl0aWVzTWFwLmRlbGV0ZShkb2MuaWQpO1xuICAgICAgICB9XG4gICAgICB9KSksXG4gICAgICBtYXAoKCkgPT4gWy4uLmVudGl0aWVzTWFwLnZhbHVlcygpXSksXG4gICAgKTtcbiAgfVxuXG4gIGNoYW5nZXMoe2lkfTogUGFydGlhbDxFbnRpdHk+KSB7XG4gICAgaWYgKCFpZCkgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIElkLiBpdCBtdXN0IGJlIFRydXRoeWApO1xuICAgIHJldHVybiB0aGlzLmxpc3QkLnBpcGUoXG4gICAgICBtYXAoZW50aXRpZXMgPT4gZW50aXRpZXMuZmluZChlbnRpdHkgPT4gZW50aXR5LmlkID09PSBpZCkpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZSwgY3VyKSA9PiBKU09OLnN0cmluZ2lmeShwcmUpID09PSBKU09OLnN0cmluZ2lmeShjdXIpKSxcbiAgICApO1xuICB9XG5cbiAgY2hhbmdlc1YyKHBhcmFtczogUGFydGlhbDxFbnRpdHk+KTogT2JzZXJ2YWJsZTxFbnRpdHk+IHtcbiAgICBjb25zdCBkb2NSZWYgPSB0aGlzLmRvYyhwYXJhbXMgYXMgYW55KTtcbiAgICByZXR1cm4gZG9jUmVmLnN0YXRlQ2hhbmdlcygpLnBpcGUoXG4gICAgICBtYXAoKGRvYykgPT4gdGhpcy5jb252ZXJ0ZXIuZnJvbUZpcmVzdG9yZSgoZG9jIGFzIGFueSkpKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0KHtpZH06IFBhcnRpYWw8RW50aXR5PiAmIHtpZDogc3RyaW5nfSkge1xuICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKHRoaXMubGlzdCQucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICBtYXAoZW50aXRpZXMgPT4gZW50aXRpZXMuZmluZChlbnRpdHkgPT4gZW50aXR5LmlkID09PSBpZCkpLFxuICAgICkpO1xuICB9XG5cbiAgbGlzdChwYXJhbU1hcD86IFBhcnRpYWw8RW50aXR5Pikge1xuICAgIHRoaXMuc3dpdGNoQ29sbGVjdGlvblJlZihwYXJhbU1hcCk7XG4gICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20odGhpcy5saXN0JC5waXBlKHRha2UoMSkpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsaXN0Q2hhbmdlc0J5Q29sbGVjdGlvblJlZihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uUmVmZXJlbmNlPEZpcmVzdG9yZURhdGE+IHwgQ29sbGVjdGlvbkdyb3VwPEZpcmVzdG9yZURhdGE+XG4gICk6IE9ic2VydmFibGU8RW50aXR5W10+IHtcbiAgICBjb25zdCBlbnRpdGllc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb24uc3RhdGVDaGFuZ2VzKCkucGlwZShcbiAgICAgIHRhcChhY3Rpb25zID0+IGFjdGlvbnMuZm9yRWFjaCgoe3R5cGUsIHBheWxvYWQ6IHtkb2N9fSkgPT4ge1xuICAgICAgICBpZiAobmV3IFNldChbJ2FkZGVkJywgJ21vZGlmaWVkJ10pLmhhcyh0eXBlKSkge1xuICAgICAgICAgIGVudGl0aWVzTWFwLnNldChkb2MuaWQsIHRoaXMuY29udmVydGVyLmZyb21GaXJlc3RvcmUoKGRvYyBhcyBhbnkpKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3JlbW92ZWQnKSB7XG4gICAgICAgICAgZW50aXRpZXNNYXAuZGVsZXRlKGRvYy5pZCk7XG4gICAgICAgIH1cbiAgICAgIH0pKSxcbiAgICAgIG1hcCgoKSA9PiBbLi4uZW50aXRpZXNNYXAudmFsdWVzKCldKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN3aXRjaENvbGxlY3Rpb25SZWYocGFyYW1NYXA/OiBQYXJ0aWFsPEVudGl0eT4pIHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5nZXRDb2xsZWN0aW9uKHBhcmFtTWFwKTtcbiAgICB0aGlzLnN3aXRjaENvbGxlY3Rpb24oY29sbGVjdGlvbik7XG4gIH1cblxuICBzd2l0Y2hDb2xsZWN0aW9uKGNvbGxlY3Rpb246IENvbGxlY3Rpb25MaWtlPGFueT4pIHtcbiAgICB0aGlzLmNvbGxlY3Rpb24kLm5leHQoY29sbGVjdGlvbik7XG4gIH1cbn1cbiJdfQ==","import { inject, Injectable } from '@angular/core';\nimport { FirestoreAdapter } from '../../adapters';\nimport { getConverter } from '../../converter';\nimport { FirestoreDAO } from '../../dao';\nimport { getCollection } from '../../decorators';\nimport { pathBuilderFactory } from '../../path-builder';\nimport { catchError, lastValueFrom, map, NEVER, of, switchMap, take, tap } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class BaseFirestoreQuery {\n count(paramMap) {\n return this.dao.getCollection(paramMap).count();\n }\n changes(params) {\n const docRef = this.dao.doc(params);\n return docRef.stateChanges().pipe(map((doc) => this.converter.fromFirestore(doc)));\n }\n get(paramMap) {\n return lastValueFrom(this.changes(paramMap).pipe(take(1)));\n }\n list(paramMap) {\n return lastValueFrom(this.listChanges(paramMap).pipe(take(1)));\n }\n listChanges(paramMap) {\n return of(paramMap).pipe(map((paramMap) => this.dao.getCollection(paramMap)), switchMap((collection) => {\n return this.getListChanges$ByCollectionLike(collection);\n }));\n }\n getChanges$ByDocument(doc) {\n return doc.stateChanges().pipe(map((doc) => this.converter.fromFirestore(doc)), catchError((error) => {\n console.error(error);\n return NEVER;\n }));\n }\n getListChanges$ByCollectionLike(collection) {\n const entitiesMap = new Map();\n return collection.stateChanges().pipe(tap(actions => actions.forEach(({ type, payload: { doc } }) => {\n if (new Set(['added', 'modified']).has(type)) {\n entitiesMap.set(doc.id, this.converter.fromFirestore(doc));\n }\n else if (type === 'removed') {\n entitiesMap.delete(doc.id);\n }\n })), map(() => [...entitiesMap.values()]), catchError((error) => {\n console.error(error);\n return NEVER;\n }));\n }\n}\nexport class FirestoreQuery extends BaseFirestoreQuery {\n constructor() {\n super(...arguments);\n this.adapter = inject(FirestoreAdapter);\n }\n get pathBuilder() {\n return pathBuilderFactory(this.collectionPath);\n }\n get dao() {\n return new FirestoreDAO(this.adapter, this.pathBuilder);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirestoreQuery, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirestoreQuery }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirestoreQuery, decorators: [{\n type: Injectable\n }] });\nexport function getFirestoreQuery(entity, adapter = inject(FirestoreAdapter)) {\n class FirestoreQuery extends BaseFirestoreQuery {\n constructor(converter, collectionPath, pathBuilder, adapter, dao) {\n super();\n this.converter = converter;\n this.collectionPath = collectionPath;\n this.pathBuilder = pathBuilder;\n this.adapter = adapter;\n this.dao = dao;\n }\n }\n return new FirestoreQuery(getConverter(entity, adapter), getCollection(entity), pathBuilderFactory(getCollection(entity)), adapter, new FirestoreDAO(adapter, pathBuilderFactory(getCollection(entity))));\n}\nexport function injectFirestoreQuery(entity) {\n return getFirestoreQuery(entity, inject(FirestoreAdapter));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2ZpcmVzdG9yZS9zcmMvbGliL3F1ZXJ5L3YyL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsT0FBTyxFQUF1QyxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUtuRyxNQUFNLE9BQWdCLGtCQUFrQjtJQU90QyxLQUFLLENBQUMsUUFBeUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxRQUFlLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQXNCO1FBQzVCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQWEsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDL0IsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBRSxHQUFXLENBQUMsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FB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LFdBQVcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7OEdBWG1CLGNBQWM7a0hBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEbkMsVUFBVTs7QUFnQlgsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixNQUF5QixFQUN6QixVQUE0QixNQUFNLENBQUMsZ0JBQWdCLENBQUM7SUFHcEQsTUFBTSxjQUFlLFNBQVEsa0JBQTBCO1FBQ3JELFlBQ3FCLFNBQXNDLEVBQ3pDLGNBQXNCLEVBQy9CLFdBQThDLEVBQ2xDLE9BQXlCLEVBQ3pCLEdBQXlCO1lBQzFDLEtBQUssRUFBRSxDQUFDO1lBTFMsY0FBUyxHQUFULFNBQVMsQ0FBNkI7WUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQVE7WUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW1DO1lBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQWtCO1lBQ3pCLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBQ2pDLENBQUM7S0FDZjtJQUVELE9BQU8sSUFBSSxjQUFjLENBQ3ZCLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQzdCLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFDckIsa0JBQWtCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQ3pDLE9BQU8sRUFDUCxJQUFJLFlBQVksQ0FBUyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FDN0UsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQThCLE1BQXlCO0lBQ3pGLE9BQU8saUJBQWlCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlyZXN0b3JlQWRhcHRlciB9IGZyb20gJy4uLy4uL2FkYXB0ZXJzJztcbmltcG9ydCB7IGdldENvbnZlcnRlciwgSUZpcmVzdG9yZUNvbnZlcnRlciB9IGZyb20gJy4uLy4uL2NvbnZlcnRlcic7XG5pbXBvcnQgeyBGaXJlc3RvcmVEQU8gfSBmcm9tICcuLi8uLi9kYW8nO1xuaW1wb3J0IHsgZ2V0Q29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkxpa2UsIERvY3VtZW50UmVmZXJlbmNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFeHRyYWN0UGFyYW1zLCBGaXJlc3RvcmVQYXRoQnVpbGRlciwgcGF0aEJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vcGF0aC1idWlsZGVyJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGxhc3RWYWx1ZUZyb20sIG1hcCwgTkVWRVIsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG50eXBlIENvbFBhcmFtPFQgZXh0ZW5kcyBCYXNlRmlyZXN0b3JlUXVlcnk8YW55Pj4gPSBPbWl0PEV4dHJhY3RQYXJhbXM8VFsnY29sbGVjdGlvblBhdGgnXT4sICdpZCc+O1xudHlwZSBEb2NQYXJhbTxUIGV4dGVuZHMgQmFzZUZpcmVzdG9yZVF1ZXJ5PGFueT4+ID0gQ29sUGFyYW08VD4gJiB7aWQ6IHN0cmluZ307IFxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZpcmVzdG9yZVF1ZXJ5PEVudGl0eSBleHRlbmRzIHtpZDogc3RyaW5nfSA9IGFueT4ge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgYWRhcHRlcjogRmlyZXN0b3JlQWRhcHRlcjtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IGNvbnZlcnRlcjogSUZpcmVzdG9yZUNvbnZlcnRlcjxFbnRpdHk+O1xuICBhYnN0cmFjdCByZWFkb25seSBjb2xsZWN0aW9uUGF0aDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcGF0aEJ1aWxkZXI6IEZpcmVzdG9yZVBhdGhCdWlsZGVyPEVudGl0eSwgdHlwZW9mIHRoaXMuY29sbGVjdGlvblBhdGg+O1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZGFvOiBGaXJlc3RvcmVEQU88RW50aXR5PjtcblxuICBjb3VudChwYXJhbU1hcD86IENvbFBhcmFtPHRoaXM+KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5kYW8uZ2V0Q29sbGVjdGlvbihwYXJhbU1hcCBhcyBhbnkpLmNvdW50KCk7XG4gIH1cblxuICBjaGFuZ2VzKHBhcmFtczogRG9jUGFyYW08dGhpcz4pOiBPYnNlcnZhYmxlPEVudGl0eT4ge1xuICAgIGNvbnN0IGRvY1JlZiA9IHRoaXMuZGFvLmRvYyhwYXJhbXMgYXMgYW55KTtcbiAgICByZXR1cm4gZG9jUmVmLnN0YXRlQ2hhbmdlcygpLnBpcGUoXG4gICAgICBtYXAoKGRvYykgPT4gdGhpcy5jb252ZXJ0ZXIuZnJvbUZpcmVzdG9yZSgoZG9jIGFzIGFueSkpKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0KHBhcmFtTWFwOiBEb2NQYXJhbTx0aGlzPik6IFByb21pc2U8RW50aXR5PiB7XG4gICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20odGhpcy5jaGFuZ2VzKHBhcmFtTWFwKS5waXBlKHRha2UoMSkpKTtcbiAgfVxuXG4gIGxpc3QocGFyYW1NYXA/OiBDb2xQYXJhbTx0aGlzPik6IFByb21pc2U8RW50aXR5W10+IHtcbiAgICByZXR1cm4gbGFzdFZhbHVlRnJvbSh0aGlzLmxpc3RDaGFuZ2VzKHBhcmFtTWFwIGFzIGFueSkucGlwZSh0YWtlKDEpKSk7XG4gIH1cblxuICBsaXN0Q2hhbmdlcyhwYXJhbU1hcD86IENvbFBhcmFtPHRoaXM+KTogT2JzZXJ2YWJsZTxFbnRpdHlbXT4ge1xuICAgIHJldHVybiBvZihwYXJhbU1hcCkucGlwZShcbiAgICAgIG1hcCgocGFyYW1NYXApID0+IHRoaXMuZGFvLmdldENvbGxlY3Rpb24ocGFyYW1NYXAgYXMgYW55KSksXG4gICAgICBzd2l0Y2hNYXAoKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TGlzdENoYW5nZXMkQnlDb2xsZWN0aW9uTGlrZShjb2xsZWN0aW9uKVxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDaGFuZ2VzJEJ5RG9jdW1lbnQoXG4gICAgZG9jOiBEb2N1bWVudFJlZmVyZW5jZVxuICApOiBPYnNlcnZhYmxlPEVudGl0eT4ge1xuICAgIHJldHVybiBkb2Muc3RhdGVDaGFuZ2VzKCkucGlwZShcbiAgICAgIG1hcCgoZG9jKSA9PiB0aGlzLmNvbnZlcnRlci5mcm9tRmlyZXN0b3JlKGRvYykpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHJldHVybiBORVZFUjtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TGlzdENoYW5nZXMkQnlDb2xsZWN0aW9uTGlrZShcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTGlrZVxuICApOiBPYnNlcnZhYmxlPEVudGl0eVtdPiB7XG4gICAgY29uc3QgZW50aXRpZXNNYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuICAgIHJldHVybiBjb2xsZWN0aW9uLnN0YXRlQ2hhbmdlcygpLnBpcGUoXG4gICAgICB0YXAoYWN0aW9ucyA9PiBhY3Rpb25zLmZvckVhY2goKHt0eXBlLCBwYXlsb2FkOiB7ZG9jfX0pID0+IHtcbiAgICAgICAgaWYgKG5ldyBTZXQoWydhZGRlZCcsICdtb2RpZmllZCddKS5oYXModHlwZSkpIHtcbiAgICAgICAgICBlbnRpdGllc01hcC5zZXQoZG9jLmlkLCB0aGlzLmNvbnZlcnRlci5mcm9tRmlyZXN0b3JlKChkb2MgYXMgYW55KSkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdyZW1vdmVkJykge1xuICAgICAgICAgIGVudGl0aWVzTWFwLmRlbGV0ZShkb2MuaWQpO1xuICAgICAgICB9XG4gICAgICB9KSksXG4gICAgICBtYXAoKCkgPT4gWy4uLmVudGl0aWVzTWFwLnZhbHVlcygpXSksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgcmV0dXJuIE5FVkVSO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmlyZXN0b3JlUXVlcnk8RW50aXR5IGV4dGVuZHMge2lkOiBzdHJpbmd9ID0gYW55PiBleHRlbmRzIEJhc2VGaXJlc3RvcmVRdWVyeTxFbnRpdHk+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFkYXB0ZXIgPSBpbmplY3QoRmlyZXN0b3JlQWRhcHRlcik7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGNvbGxlY3Rpb25QYXRoOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBjb252ZXJ0ZXI6IElGaXJlc3RvcmVDb252ZXJ0ZXI8RW50aXR5PjtcblxuICBnZXQgcGF0aEJ1aWxkZXIoKTogRmlyZXN0b3JlUGF0aEJ1aWxkZXI8RW50aXR5LCB0eXBlb2YgdGhpcy5jb2xsZWN0aW9uUGF0aD4ge1xuICAgIHJldHVybiBwYXRoQnVpbGRlckZhY3RvcnkodGhpcy5jb2xsZWN0aW9uUGF0aCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGRhbygpIHtcbiAgICByZXR1cm4gbmV3IEZpcmVzdG9yZURBTzxFbnRpdHk+KHRoaXMuYWRhcHRlciwgdGhpcy5wYXRoQnVpbGRlcik7XG4gIH0gIFxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXJlc3RvcmVRdWVyeTxFbnRpdHkgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+KFxuICBlbnRpdHk6IHsgbmV3KCk6IEVudGl0eSB9LFxuICBhZGFwdGVyOiBGaXJlc3RvcmVBZGFwdGVyID0gaW5qZWN0KEZpcmVzdG9yZUFkYXB0ZXIpLFxuKTogQmFzZUZpcmVzdG9yZVF1ZXJ5PEVudGl0eT4ge1xuXG4gIGNsYXNzIEZpcmVzdG9yZVF1ZXJ5IGV4dGVuZHMgQmFzZUZpcmVzdG9yZVF1ZXJ5PEVudGl0eT4ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnZlcnRlcjogSUZpcmVzdG9yZUNvbnZlcnRlcjxFbnRpdHk+LFxuICAgICAgcHVibGljIHJlYWRvbmx5IGNvbGxlY3Rpb25QYXRoOiBzdHJpbmcsXG4gICAgICBwdWJsaWMgcGF0aEJ1aWxkZXI6IEZpcmVzdG9yZVBhdGhCdWlsZGVyPEVudGl0eSwgYW55PixcbiAgICAgIHByb3RlY3RlZCByZWFkb25seSBhZGFwdGVyOiBGaXJlc3RvcmVBZGFwdGVyLFxuICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhbzogRmlyZXN0b3JlREFPPEVudGl0eT4sXG4gICAgKSB7IHN1cGVyKCk7IH1cbiAgfVxuXG4gIHJldHVybiBuZXcgRmlyZXN0b3JlUXVlcnkoXG4gICAgZ2V0Q29udmVydGVyKGVudGl0eSwgYWRhcHRlciksXG4gICAgZ2V0Q29sbGVjdGlvbihlbnRpdHkpLFxuICAgIHBhdGhCdWlsZGVyRmFjdG9yeShnZXRDb2xsZWN0aW9uKGVudGl0eSkpLFxuICAgIGFkYXB0ZXIsXG4gICAgbmV3IEZpcmVzdG9yZURBTzxFbnRpdHk+KGFkYXB0ZXIsIHBhdGhCdWlsZGVyRmFjdG9yeShnZXRDb2xsZWN0aW9uKGVudGl0eSkpKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEZpcmVzdG9yZVF1ZXJ5PEVudGl0eSBleHRlbmRzIHtpZDogc3RyaW5nfT4oZW50aXR5OiB7IG5ldygpOiBFbnRpdHkgfSk6IEJhc2VGaXJlc3RvcmVRdWVyeTxFbnRpdHk+IHtcbiAgcmV0dXJuIGdldEZpcmVzdG9yZVF1ZXJ5KGVudGl0eSwgaW5qZWN0KEZpcmVzdG9yZUFkYXB0ZXIpKTtcbn1cbiJdfQ==","import { Injectable } from \"@angular/core\";\nimport { FirestoreQuery } from \"./query\";\nimport Dexie, { liveQuery } from 'dexie';\nimport { catchError, combineLatest, distinctUntilChanged, map, NEVER, Observable, of, retry, switchMap, tap, throttleTime } from 'rxjs';\nimport dayjs from \"dayjs\";\nimport * as i0 from \"@angular/core\";\nfunction fromDexie(observable) {\n return new Observable(subscriber => observable.subscribe(subscriber));\n}\nclass DexieAdapter extends Dexie {\n constructor() {\n super('@nx-ddd/firestore/cached-query');\n this.version(3).stores({ entities: '++id' });\n }\n count$() {\n return fromDexie(liveQuery(() => this.entities.count()));\n }\n getLastUpdatedAt$(collectionPath) {\n return of(null).pipe(switchMap((() => fromDexie(liveQuery(() => this.entities.toArray())))), map((entities) => entities.filter(entity => entity.collectionPath === collectionPath)), map(entities => entities.sort((a, b) => {\n if (!a?.updatedAt)\n return -1;\n if (!b?.updatedAt)\n return 1;\n return dayjs(a?.updatedAt).diff(dayjs(b?.updatedAt));\n }).at(-1)), map(entity => entity?.updatedAt ? dayjs(entity?.updatedAt) : dayjs('1970-01-01')), distinctUntilChanged((pre, cur) => pre.isSame(cur)));\n }\n async bulkPut(collectionPath, entities) {\n return this.entities.bulkPut(entities.map(entity => {\n const key = `${entity.id}`;\n return {\n id: key,\n collectionPath,\n value: JSON.stringify(entity),\n updatedAt: entity.updatedAt.toISOString(),\n };\n }));\n }\n listChanges(collectionPath) {\n return of(null).pipe(switchMap(() => fromDexie(liveQuery(() => this.entities.toArray()))), map((entities) => entities.filter(entity => entity.collectionPath === collectionPath)), map((entities) => entities.map(entity => JSON.parse(entity.value))));\n }\n}\nclass FirestoreIndexedDbCached {\n constructor(collectionPath) {\n this.collectionPath = collectionPath;\n this.adapter = new DexieAdapter();\n }\n getLastUpdatedAt$() {\n return this.adapter.getLastUpdatedAt$(this.collectionPath);\n }\n async setMany(entities) {\n return this.adapter.bulkPut(this.collectionPath, entities);\n }\n listChanges() {\n return this.adapter.listChanges(this.collectionPath);\n }\n}\nexport class CachedFirestoreQuery extends FirestoreQuery {\n constructor() {\n super(...arguments);\n this.config = {\n throttleTime: 5_000,\n loadChunkSize: 1_000,\n };\n }\n get cached() {\n return this._cached ??= new FirestoreIndexedDbCached(this.collectionPath);\n }\n listChanges(paramMap) {\n const collection = this.dao.getCollection(paramMap);\n return this.cached.getLastUpdatedAt$().pipe(switchMap((lastUpdatedAt) => this._listChangesAfter(collection, lastUpdatedAt, {\n limit: this.config.loadChunkSize,\n }).pipe(retry(3), tap((updated) => this.cached.setMany(updated)), tap((updated) => console.log('updated:', updated)), catchError((error) => (console.error(error), NEVER)))), switchMap(() => this.cached.listChanges()), map((entities) => entities.map(entity => this.converter.fromObject(entity))), throttleTime(this.config.throttleTime));\n }\n _listChange(paramMap) {\n return of(paramMap).pipe(map((paramMap) => this.dao.getCollection(paramMap)), map((collection) => this.adapter.query(collection, this.adapter.limit(10))), switchMap((collection) => this.getListChanges$ByCollectionLike(collection)));\n }\n _listChangesAfter(collection, updatedAt, { limit } = {}) {\n const updatedAtTs = dayjs.isDayjs(updatedAt) ? this.adapter.convertDateToTimestamp(updatedAt) : updatedAt;\n const query = this.adapter.query(collection, ...[\n this.adapter.where('updatedAt', '>', updatedAtTs),\n this.adapter.orderBy('updatedAt', 'asc'),\n limit ? this.adapter.limit(limit) : undefined,\n ].filter(Boolean));\n return this.getListChanges$ByCollectionLike(query);\n }\n progressChanges() {\n return combineLatest({\n cloud: this.count(),\n local: this.listChanges().pipe(map(items => items.length)),\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CachedFirestoreQuery, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CachedFirestoreQuery }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CachedFirestoreQuery, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLXF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9maXJlc3RvcmUvc3JjL2xpYi9xdWVyeS92Mi9jYWNoZWQtcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXpDLE9BQU8sS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFpQyxNQUFNLE9BQU8sQ0FBQztBQUN4RSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hJLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQzs7QUFNMUIsU0FBUyxTQUFTLENBQUksVUFBOEI7SUFDbEQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBU0QsTUFBTSxZQUE2RCxTQUFRLEtBQUs7SUFHOUU7UUFDRSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxjQUFzQjtR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QyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtRQUN6RyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FDOUIsVUFBVSxFQUNWLEdBQUc7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLFdBQVcsQ0FBQztZQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO1lBQ3hDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDOUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQ2xCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sYUFBYSxDQUFDO1lBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzRCxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXREbUIsb0JBQW9CO2tIQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZpcmVzdG9yZVF1ZXJ5IH0gZnJvbSBcIi4vcXVlcnlcIjtcbmltcG9ydCB7IEV4dHJhY3RQYXJhbXMgfSBmcm9tIFwiLi4vLi4vcGF0aC1idWlsZGVyXCI7XG5pbXBvcnQgRGV4aWUsIHsgbGl2ZVF1ZXJ5LCBPYnNlcnZhYmxlIGFzIERleGllT2JzZXJ2YWJsZSB9IGZyb20gJ2RleGllJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE5FVkVSLCBPYnNlcnZhYmxlLCBvZiwgcmV0cnksIHN3aXRjaE1hcCwgdGFwLCB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzJztcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCB7IENvbGxlY3Rpb25MaWtlIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcblxudHlwZSBDb2xQYXJhbTxUIGV4dGVuZHMge3JlYWRvbmx5IGNvbGxlY3Rpb25QYXRoOiBzdHJpbmd9PiA9IE9taXQ8RXh0cmFjdFBhcmFtczxUWydjb2xsZWN0aW9uUGF0aCddPiwgJ2lkJz47XG50eXBlIERvY1BhcmFtPFQgZXh0ZW5kcyB7cmVhZG9ubHkgY29sbGVjdGlvblBhdGg6IHN0cmluZ30+ID0gQ29sUGFyYW08VD4gJiB7aWQ6IHN0cmluZ307IFxuXG5mdW5jdGlvbiBmcm9tRGV4aWU8VD4ob2JzZXJ2YWJsZTogRGV4aWVPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZShzdWJzY3JpYmVyID0+IG9ic2VydmFibGUuc3Vic2NyaWJlKHN1YnNjcmliZXIpKTtcbn1cblxuaW50ZXJmYWNlIEVudGl0eURhdGEge1xuICBpZDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBjb2xsZWN0aW9uUGF0aDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbn1cblxuY2xhc3MgRGV4aWVBZGFwdGVyPEUgZXh0ZW5kcyB7aWQ6IHN0cmluZywgdXBkYXRlZEF0OiBkYXlqcy5EYXlqc30+IGV4dGVuZHMgRGV4aWUge1xuICBlbnRpdGllcyE6IERleGllLlRhYmxlPEVudGl0eURhdGEsIHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ0BueC1kZGQvZmlyZXN0b3JlL2NhY2hlZC1xdWVyeScpO1xuICAgIHRoaXMudmVyc2lvbigzKS5zdG9yZXMoeyBlbnRpdGllczogJysraWQnIH0pO1xuICB9XG5cbiAgY291bnQkKCkge1xuICAgIHJldHVybiBmcm9tRGV4aWUobGl2ZVF1ZXJ5KCgpID0+IHRoaXMuZW50aXRpZXMuY291bnQoKSkpO1xuICB9XG5cbiAgZ2V0TGFzdFVwZGF0ZWRBdCQoY29sbGVjdGlvblBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBvZihudWxsKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgoKSA9PiBmcm9tRGV4aWUobGl2ZVF1ZXJ5KCgpID0+IHRoaXMuZW50aXRpZXMudG9BcnJheSgpKSkpKSxcbiAgICAgIG1hcCgoZW50aXRpZXMpID0+IGVudGl0aWVzLmZpbHRlcihlbnRpdHkgPT4gZW50aXR5LmNvbGxlY3Rpb25QYXRoID09PSBjb2xsZWN0aW9uUGF0aCkpLFxuICAgICAgbWFwKGVudGl0aWVzID0+IGVudGl0aWVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKCFhPy51cGRhdGVkQXQpIHJldHVybiAtMTtcbiAgICAgICAgaWYgKCFiPy51cGRhdGVkQXQpIHJldHVybiAxO1xuICAgICAgICByZXR1cm4gZGF5anMoYT8udXBkYXRlZEF0KS5kaWZmKGRheWpzKGI/LnVwZGF0ZWRBdCkpO1xuICAgICAgfSkuYXQoLTEpKSxcbiAgICAgIG1hcChlbnRpdHkgPT4gZW50aXR5Py51cGRhdGVkQXQgPyBkYXlqcyhlbnRpdHk/LnVwZGF0ZWRBdCkgOiBkYXlqcygnMTk3MC0wMS0wMScpKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmUsIGN1cikgPT4gcHJlLmlzU2FtZShjdXIpKSxcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgYnVsa1B1dChjb2xsZWN0aW9uUGF0aDogc3RyaW5nLCBlbnRpdGllczogRVtdKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXRpZXMuYnVsa1B1dChlbnRpdGllcy5tYXAoZW50aXR5ID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGAke2VudGl0eS5pZH1gO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGtleSxcbiAgICAgICAgY29sbGVjdGlvblBhdGgsXG4gICAgICAgIHZhbHVlOiBKU09OLnN0cmluZ2lmeShlbnRpdHkpLFxuICAgICAgICB1cGRhdGVkQXQ6IGVudGl0eS51cGRhdGVkQXQudG9JU09TdHJpbmcoKSxcbiAgICAgIH07XG4gICAgfSkpO1xuICB9XG5cbiAgbGlzdENoYW5nZXMoY29sbGVjdGlvblBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8RVtdPiB7XG4gICAgcmV0dXJuIG9mKG51bGwpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gZnJvbURleGllKGxpdmVRdWVyeSgoKSA9PiB0aGlzLmVudGl0aWVzLnRvQXJyYXkoKSkpKSxcbiAgICAgIG1hcCgoZW50aXRpZXMpID0+IGVudGl0aWVzLmZpbHRlcihlbnRpdHkgPT4gZW50aXR5LmNvbGxlY3Rpb25QYXRoID09PSBjb2xsZWN0aW9uUGF0aCkpLFxuICAgICAgbWFwKChlbnRpdGllcykgPT4gZW50aXRpZXMubWFwKGVudGl0eSA9PiBKU09OLnBhcnNlKGVudGl0eS52YWx1ZSkgYXMgRSkpLFxuICAgICk7XG4gIH1cbn1cblxuY2xhc3MgRmlyZXN0b3JlSW5kZXhlZERiQ2FjaGVkPEUgZXh0ZW5kcyB7aWQ6IHN0cmluZywgdXBkYXRlZEF0OiBkYXlqcy5EYXlqc30+IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNvbGxlY3Rpb25QYXRoOiBzdHJpbmcpIHsgfVxuXG4gIHJlYWRvbmx5IGFkYXB0ZXIgPSBuZXcgRGV4aWVBZGFwdGVyPEU+KCk7XG5cbiAgZ2V0TGFzdFVwZGF0ZWRBdCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5nZXRMYXN0VXBkYXRlZEF0JCh0aGlzLmNvbGxlY3Rpb25QYXRoKTtcbiAgfVxuXG4gIGFzeW5jIHNldE1hbnkoZW50aXRpZXM6IEVbXSkge1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuYnVsa1B1dCh0aGlzLmNvbGxlY3Rpb25QYXRoLCBlbnRpdGllcyk7XG4gIH1cblxuICBsaXN0Q2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmxpc3RDaGFuZ2VzKHRoaXMuY29sbGVjdGlvblBhdGgpO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDYWNoZWRGaXJlc3RvcmVRdWVyeTxFIGV4dGVuZHMge2lkOiBzdHJpbmcsIHVwZGF0ZWRBdDogZGF5anMuRGF5anN9ID0gYW55PiBleHRlbmRzIEZpcmVzdG9yZVF1ZXJ5PEU+IHtcbiAgcHJvdGVjdGVkIF9jYWNoZWQ6IEZpcmVzdG9yZUluZGV4ZWREYkNhY2hlZDxFPjtcbiAgcHJvdGVjdGVkIGdldCBjYWNoZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlZCA/Pz0gbmV3IEZpcmVzdG9yZUluZGV4ZWREYkNhY2hlZDxFPih0aGlzLmNvbGxlY3Rpb25QYXRoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWcgPSB7XG4gICAgdGhyb3R0bGVUaW1lOiA1XzAwMCxcbiAgICBsb2FkQ2h1bmtTaXplOiAxXzAwMCxcbiAgfTtcblxuICBvdmVycmlkZSBsaXN0Q2hhbmdlcyhwYXJhbU1hcD86IENvbFBhcmFtPHRoaXM+KTogT2JzZXJ2YWJsZTxFW10+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYW8uZ2V0Q29sbGVjdGlvbihwYXJhbU1hcCBhcyBhbnkpO1xuICAgIHJldHVybiB0aGlzLmNhY2hlZC5nZXRMYXN0VXBkYXRlZEF0JCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGxhc3RVcGRhdGVkQXQpID0+IHRoaXMuX2xpc3RDaGFuZ2VzQWZ0ZXIoY29sbGVjdGlvbiwgbGFzdFVwZGF0ZWRBdCwge1xuICAgICAgICBsaW1pdDogdGhpcy5jb25maWcubG9hZENodW5rU2l6ZSxcbiAgICAgIH0pLnBpcGUoXG4gICAgICAgIHJldHJ5KDMpLFxuICAgICAgICB0YXAoKHVwZGF0ZWQpID0+IHRoaXMuY2FjaGVkLnNldE1hbnkodXBkYXRlZCkpLFxuICAgICAgICB0YXAoKHVwZGF0ZWQpID0+IGNvbnNvbGUubG9nKCd1cGRhdGVkOicsIHVwZGF0ZWQpKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IChjb25zb2xlLmVycm9yKGVycm9yKSwgTkVWRVIpKSxcbiAgICAgICkpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY2FjaGVkLmxpc3RDaGFuZ2VzKCkpLFxuICAgICAgbWFwKChlbnRpdGllcykgPT4gZW50aXRpZXMubWFwKGVudGl0eSA9PiB0aGlzLmNvbnZlcnRlci5mcm9tT2JqZWN0KGVudGl0eSkpKSxcbiAgICAgIHRocm90dGxlVGltZSh0aGlzLmNvbmZpZy50aHJvdHRsZVRpbWUpLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2xpc3RDaGFuZ2UocGFyYW1NYXA/OiBDb2xQYXJhbTx0aGlzPik6IE9ic2VydmFibGU8RVtdPiB7XG4gICAgcmV0dXJuIG9mKHBhcmFtTWFwKS5waXBlKFxuICAgICAgbWFwKChwYXJhbU1hcCkgPT4gdGhpcy5kYW8uZ2V0Q29sbGVjdGlvbihwYXJhbU1hcCBhcyBhbnkpKSxcbiAgICAgIG1hcCgoY29sbGVjdGlvbikgPT4gdGhpcy5hZGFwdGVyLnF1ZXJ5KGNvbGxlY3Rpb24sIHRoaXMuYWRhcHRlci5saW1pdCgxMCkpKSxcbiAgICAgIHN3aXRjaE1hcCgoY29sbGVjdGlvbikgPT4gdGhpcy5nZXRMaXN0Q2hhbmdlcyRCeUNvbGxlY3Rpb25MaWtlKGNvbGxlY3Rpb24pKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9saXN0Q2hhbmdlc0FmdGVyKGNvbGxlY3Rpb246IENvbGxlY3Rpb25MaWtlLCB1cGRhdGVkQXQ6IGRheWpzLkRheWpzLCB7bGltaXR9OiB7bGltaXQ/OiBudW1iZXJ9ID0ge30pIHtcbiAgICBjb25zdCB1cGRhdGVkQXRUcyA9IGRheWpzLmlzRGF5anModXBkYXRlZEF0KSA/IHRoaXMuYWRhcHRlci5jb252ZXJ0RGF0ZVRvVGltZXN0YW1wKHVwZGF0ZWRBdCkgOiB1cGRhdGVkQXRcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuYWRhcHRlci5xdWVyeShcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAuLi5bXG4gICAgICAgIHRoaXMuYWRhcHRlci53aGVyZSgndXBkYXRlZEF0JywgJz4nLCB1cGRhdGVkQXRUcyksXG4gICAgICAgIHRoaXMuYWRhcHRlci5vcmRlckJ5KCd1cGRhdGVkQXQnLCAnYXNjJyksXG4gICAgICAgIGxpbWl0ID8gdGhpcy5hZGFwdGVyLmxpbWl0KGxpbWl0KSA6IHVuZGVmaW5lZCxcbiAgICAgIF0uZmlsdGVyKEJvb2xlYW4pLFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGlzdENoYW5nZXMkQnlDb2xsZWN0aW9uTGlrZShxdWVyeSk7XG4gIH1cblxuICBwcm9ncmVzc0NoYW5nZXMoKSB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qoe1xuICAgICAgY2xvdWQ6IHRoaXMuY291bnQoKSxcbiAgICAgIGxvY2FsOiB0aGlzLmxpc3RDaGFuZ2VzKCkucGlwZShtYXAoaXRlbXMgPT4gaXRlbXMubGVuZ3RoKSksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { inject, Injectable } from '@angular/core';\nimport { Repository } from '@nx-ddd/common/domain';\nimport { toObject } from '@nx-ddd/common';\nimport { generateId } from '@nx-ddd/common';\nimport { FirestoreAdapter } from '../adapters/base';\nimport { getConverter } from '../converter';\nimport { pathBuilderFactory } from '../path-builder';\nimport { getCollection } from '../decorators/decorators';\nimport * as i0 from \"@angular/core\";\nconst toPromise = callback => new Promise((resolve, reject) => {\n try {\n resolve(callback());\n }\n catch (error) {\n reject(error);\n }\n});\nfunction doesExist(doc) {\n if (typeof doc.exists === 'function') {\n return doc.exists();\n }\n return doc.exists;\n}\nexport class BaseFirestoreRepository extends Repository {\n constructor() {\n super(...arguments);\n this.genId = () => generateId();\n }\n async list(paramMap, query = q => q) {\n const collection = paramMap ? this.collection(paramMap) : this.collectionGroup();\n return this._list(query(collection));\n }\n listChanges() {\n throw new Error('Method not implemented.');\n }\n async count(paramMap) {\n return this.collection(paramMap).count();\n }\n async get(paramMap) {\n return this._get(this.doc(paramMap));\n }\n async save(entity) {\n const docRef = this.doc({ ...entity, id: entity?.id || this.genId() });\n return this._save(docRef, entity);\n }\n async saveMany(entities) {\n return this.bulkWrite(entities);\n }\n async create(entity) {\n const obj = toObject(entity);\n const id = obj?.id || this.genId();\n return toPromise(() => this.doc({ ...obj, id })).then(doc => this._create(doc, entity));\n }\n async createMany(entities) {\n return Promise.all(entities.map(entity => this.create(entity)));\n }\n async update(entity) {\n return this.doc(entity).update(this.adapter.flattenForUpdate({\n ...this.converter.toFirestore(entity),\n ...this.buildServerTimestampObject(['updatedAt']),\n })).then(() => { });\n }\n async updateMany(data) {\n return this.bulkUpdate(data);\n }\n delete(paramMap) {\n return this.doc(paramMap).delete();\n }\n async deleteMany(params) {\n return params.reduce((batch, param) => {\n const doc = this.doc(param).__ref;\n return batch.delete(doc);\n }, this.adapter.batch()).commit().then(() => params.length);\n }\n async deleteAll() {\n throw new Error('Method not implemented.');\n }\n async bulkWrite(entities, timestamps = []) {\n return entities.reduce((batch, entity) => {\n const doc = this.doc(entity).__ref;\n return batch.set(doc, {\n ...this.converter.toFirestore(entity),\n ...this.buildServerTimestampObject(timestamps),\n });\n }, this.adapter.batch()).commit();\n }\n async bulkCreate(entities) {\n // TODO(nontangent): add maximum 500 record validation\n return entities.reduce((batch, entity) => {\n const doc = this.doc(entity).__ref;\n return batch.create(doc, {\n ...this.converter.toFirestore(entity),\n ...this.buildServerTimestampObject(['createdAt', 'updatedAt']),\n });\n }, this.adapter.batch()).commit();\n }\n async bulkUpdate(entities) {\n // TODO(nontangent): add maximum 500 record validation\n return entities.reduce((batch, entity) => {\n const doc = this.doc(entity).__ref;\n return batch.update(doc, {\n ...this.converter.toFirestore(entity),\n ...this.buildServerTimestampObject(['updatedAt']),\n });\n }, this.adapter.batch()).commit();\n }\n async bulkDelete(paramMaps) {\n // MEMO(@nontangent): 500件以上の削除は未対応\n return paramMaps.reduce((batch, paramMap) => {\n const doc = this.doc(paramMap).__ref;\n return batch.delete(doc);\n }, this.adapter.batch()).commit();\n }\n collection(paramMap) {\n const path = this.pathBuilder.collection(paramMap);\n return this.adapter.collection(path);\n }\n collectionGroup() {\n const path = this.pathBuilder.collectionGroup();\n return this.adapter.collectionGroup(path);\n }\n doc(paramMap) {\n const path = this.pathBuilder.doc(paramMap);\n return this.adapter.doc(path);\n }\n _list(collection) {\n return collection.get().then(({ docs }) => docs.map(doc => {\n if (!doesExist(doc))\n return null;\n return this.converter.fromFirestore(doc);\n }));\n }\n _get(doc) {\n return doc.get().then((doc => {\n if (!doc.data())\n return null;\n return this.converter.fromFirestore(doc);\n }));\n }\n async _save(doc, entity) {\n const exists = await doc.exists();\n if (exists) {\n return this._set(doc, entity).then(doc => [this.converter.fromFirestore(doc), false]);\n }\n else {\n return this._create(doc, entity).then(entity => [entity, true]);\n }\n }\n async _create(doc, entity) {\n const exists = await doc.exists().catch((error) => {\n // MEMO(@nontangent): bunで実行するときだけこのエラーがでるかもしれない。\n if (`${error}`.startsWith('Error: Did not receive document for'))\n return false;\n throw error;\n });\n if (exists)\n throw new Error('Document already exists');\n return doc.set({\n ...this.converter.toFirestore(entity),\n ...this.buildServerTimestampObject(['createdAt', 'updatedAt']),\n }).then(() => doc.get()).then(doc => this.converter.fromFirestore(doc));\n }\n _set(doc, entity, isUpdate = true) {\n const data = this.converter.toFirestore(entity);\n return doc.set({\n ...this.converter.toFirestore(entity),\n ...this.buildServerTimestampObject(isUpdate ? ['updatedAt'] : []),\n }, { merge: isUpdate }).then(() => doc.get());\n }\n buildServerTimestampObject(keys = ['createdAt', 'updatedAt']) {\n return keys.reduce((m, k) => ({ ...m, [k]: this.adapter.FieldValue.serverTimestamp() }), {});\n }\n}\nexport class FirestoreRepository extends BaseFirestoreRepository {\n constructor() {\n super(...arguments);\n this.adapter = inject(FirestoreAdapter);\n }\n get pathBuilder() {\n return pathBuilderFactory(this.collectionPath);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirestoreRepository, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirestoreRepository }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirestoreRepository, decorators: [{\n type: Injectable\n }] });\nexport function getFirestoreRepository(entity, adapter = inject(FirestoreAdapter)) {\n class FirestoreRepository extends BaseFirestoreRepository {\n constructor(converter, collectionPath, pathBuilder, adapter) {\n super();\n this.converter = converter;\n this.collectionPath = collectionPath;\n this.pathBuilder = pathBuilder;\n this.adapter = adapter;\n }\n }\n return new FirestoreRepository(getConverter(entity, adapter), getCollection(entity), pathBuilderFactory(getCollection(entity)), adapter);\n}\nexport function injectFirestoreRepository(entity) {\n return getFirestoreRepository(entity, inject(FirestoreAdapter));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvcmVwb3NpdG9yeS9yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sY0FBYyxDQUFDO0FBQ2pFLE9BQU8sRUFBdUMsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcxRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRXpELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQThCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQ3pGLElBQUksQ0FBQztRQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFBQyxDQUFDO0FBQy9ELENBQUMsQ0FBQyxDQUFDO0FBRUgsU0FBUyxTQUFTLENBQUMsR0FBcUI7SUFDdEMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDckMsT0FBTyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFD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QU8sQ0FDUixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBbUQsTUFBeUI7SUFDbkgsT0FBTyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSAnQG54LWRkZC9jb21tb24vZG9tYWluJztcbmltcG9ydCB7IHRvT2JqZWN0IH0gZnJvbSAnQG54LWRkZC9jb21tb24nO1xuaW1wb3J0IHsgZ2VuZXJhdGVJZCB9IGZyb20gJ0BueC1kZGQvY29tbW9uJztcbmltcG9ydCB7IEZpcmVzdG9yZUFkYXB0ZXIgfSBmcm9tICcuLi9hZGFwdGVycy9iYXNlJztcbmltcG9ydCB7IGdldENvbnZlcnRlciwgSUZpcmVzdG9yZUNvbnZlcnRlciB9IGZyb20gJy4uL2NvbnZlcnRlcic7XG5pbXBvcnQgeyBFeHRyYWN0UGFyYW1zLCBGaXJlc3RvcmVQYXRoQnVpbGRlciwgcGF0aEJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vcGF0aC1idWlsZGVyJztcbmltcG9ydCB7IENvbGxlY3Rpb25SZWZlcmVuY2UsIENvbGxlY3Rpb25Hcm91cCwgRG9jdW1lbnRSZWZlcmVuY2UsIERvY3VtZW50U25hcHNob3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldENvbGxlY3Rpb24gfSBmcm9tICcuLi9kZWNvcmF0b3JzL2RlY29yYXRvcnMnO1xuXG5jb25zdCB0b1Byb21pc2UgPSBjYWxsYmFjayA9PiBuZXcgUHJvbWlzZTxSZXR1cm5UeXBlPHR5cGVvZiBjYWxsYmFjaz4+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgdHJ5IHsgcmVzb2x2ZShjYWxsYmFjaygpKTsgfSBjYXRjaCAoZXJyb3IpIHsgcmVqZWN0KGVycm9yKTsgfVxufSk7XG5cbmZ1bmN0aW9uIGRvZXNFeGlzdChkb2M6IERvY3VtZW50U25hcHNob3QpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBkb2MuZXhpc3RzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGRvYy5leGlzdHMoKTtcbiAgfVxuICByZXR1cm4gZG9jLmV4aXN0cztcbn1cblxuLy8gRmlyZXN0b3JlUmVwb3NpdG9yeeOBi+OCiUVucmlyeeOCkuWPluW+l+OBmeOCi2luZmVyXG5leHBvcnQgdHlwZSBFeHRyYWN0RW50aXR5PFQgZXh0ZW5kcyBCYXNlRmlyZXN0b3JlUmVwb3NpdG9yeTxhbnksIGFueT4+ID0gVCBleHRlbmRzIEJhc2VGaXJlc3RvcmVSZXBvc2l0b3J5PGluZmVyIEVudGl0eSwgYW55PiA/IEVudGl0eSA6IG5ldmVyO1xudHlwZSBDb2xQYXJhbTxUIGV4dGVuZHMgQmFzZUZpcmVzdG9yZVJlcG9zaXRvcnk8YW55LCBhbnk+PiA9IE9taXQ8RXh0cmFjdFBhcmFtczxUWydjb2xsZWN0aW9uUGF0aCddPiwgJ2lkJz47XG50eXBlIERvY1BhcmFtPFQgZXh0ZW5kcyBCYXNlRmlyZXN0b3JlUmVwb3NpdG9yeTxhbnksIGFueT4sIFRFeHRyYSA9IHt9PiA9IENvbFBhcmFtPFQ+ICYgeyBpZDogc3RyaW5nIH0gJiBURXh0cmE7IFxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZpcmVzdG9yZVJlcG9zaXRvcnk8RW50aXR5IGV4dGVuZHMgeyBpZDogc3RyaW5nIH0sIFRFeHRyYVBhcmFtcyA9IHt9PiBleHRlbmRzIFJlcG9zaXRvcnk8RW50aXR5PiB7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGNvbGxlY3Rpb25QYXRoOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBhZGFwdGVyOiBGaXJlc3RvcmVBZGFwdGVyO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY29udmVydGVyOiBJRmlyZXN0b3JlQ29udmVydGVyPEVudGl0eT47XG4gIGFic3RyYWN0IHJlYWRvbmx5IHBhdGhCdWlsZGVyOiBGaXJlc3RvcmVQYXRoQnVpbGRlcjxFbnRpdHksIHR5cGVvZiB0aGlzLmNvbGxlY3Rpb25QYXRoPjtcblxuICBhc3luYyBsaXN0KHBhcmFtTWFwPzogQ29sUGFyYW08dGhpcz4sIHF1ZXJ5OiBhbnkgPSBxID0+IHEpOiBQcm9taXNlPEVudGl0eVtdPiB7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IHBhcmFtTWFwID8gdGhpcy5jb2xsZWN0aW9uKHBhcmFtTWFwKSA6IHRoaXMuY29sbGVjdGlvbkdyb3VwKCk7XG4gICAgcmV0dXJuIHRoaXMuX2xpc3QocXVlcnkoY29sbGVjdGlvbikpO1xuICB9XG5cbiAgbGlzdENoYW5nZXMoKTogT2JzZXJ2YWJsZTxFbnRpdHlbXT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGFzeW5jIGNvdW50KHBhcmFtTWFwPzogQ29sUGFyYW08dGhpcz4pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24ocGFyYW1NYXApLmNvdW50KCk7XG4gIH1cblxuICBhc3luYyBnZXQocGFyYW1NYXA/OiBEb2NQYXJhbTx0aGlzLCBURXh0cmFQYXJhbXM+KSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldCh0aGlzLmRvYyhwYXJhbU1hcCBhcyBhbnkpKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoZW50aXR5OiBEb2NQYXJhbTx0aGlzLCBURXh0cmFQYXJhbXM+ICYgRW50aXR5KTogUHJvbWlzZTxbRW50aXR5LCBib29sZWFuXT4ge1xuICAgIGNvbnN0IGRvY1JlZiA9IHRoaXMuZG9jKHsuLi5lbnRpdHksIGlkOiBlbnRpdHk/LmlkIHx8IHRoaXMuZ2VuSWQoKX0pO1xuICAgIHJldHVybiB0aGlzLl9zYXZlKGRvY1JlZiwgZW50aXR5KTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVNYW55KGVudGl0aWVzOiBFbnRpdHlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmJ1bGtXcml0ZShlbnRpdGllcyBhcyBhbnkpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlKGVudGl0eTogRG9jUGFyYW08dGhpcywgVEV4dHJhUGFyYW1zPiAmIEVudGl0eSk6IFByb21pc2U8RW50aXR5PiB7XG4gICAgY29uc3Qgb2JqID0gdG9PYmplY3QoZW50aXR5KSBhcyBEb2NQYXJhbTx0aGlzLCBURXh0cmFQYXJhbXM+ICYgRW50aXR5O1xuICAgIGNvbnN0IGlkID0gb2JqPy5pZCB8fCB0aGlzLmdlbklkKCk7XG4gICAgcmV0dXJuIHRvUHJvbWlzZSgoKSA9PiB0aGlzLmRvYyh7Li4ub2JqLCBpZH0pKS50aGVuKGRvYyA9PiB0aGlzLl9jcmVhdGUoZG9jLCBlbnRpdHkpKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZU1hbnkoZW50aXRpZXM6IChEb2NQYXJhbTx0aGlzLCBURXh0cmFQYXJhbXM+ICYgRW50aXR5KVtdKTogUHJvbWlzZTxFbnRpdHlbXT4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChlbnRpdGllcy5tYXAoZW50aXR5ID0+IHRoaXMuY3JlYXRlKGVudGl0eSkpKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShlbnRpdHk6IERvY1BhcmFtPHRoaXMsIFRFeHRyYVBhcmFtcz4gJiBQYXJ0aWFsPEVudGl0eT4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5kb2MoZW50aXR5KS51cGRhdGUodGhpcy5hZGFwdGVyLmZsYXR0ZW5Gb3JVcGRhdGUoe1xuICAgICAgLi4udGhpcy5jb252ZXJ0ZXIudG9GaXJlc3RvcmUoZW50aXR5KSxcbiAgICAgIC4uLnRoaXMuYnVpbGRTZXJ2ZXJUaW1lc3RhbXBPYmplY3QoWyd1cGRhdGVkQXQnXSksXG4gICAgfSkpLnRoZW4oKCkgPT4ge30pOyBcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZU1hbnkoZGF0YTogUGFydGlhbDxFbnRpdHk+W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5idWxrVXBkYXRlKGRhdGEgYXMgYW55KTtcbiAgfVxuXG4gIGRlbGV0ZShwYXJhbU1hcDogRG9jUGFyYW08dGhpcywgVEV4dHJhUGFyYW1zPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmRvYyhwYXJhbU1hcCBhcyBhbnkpLmRlbGV0ZSgpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlTWFueShwYXJhbXM6IHsgaWQ6IHN0cmluZzsgfVtdKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gcGFyYW1zLnJlZHVjZSgoYmF0Y2gsIHBhcmFtKSA9PiB7XG4gICAgICBjb25zdCBkb2MgPSB0aGlzLmRvYyhwYXJhbSBhcyBhbnkpLl9fcmVmO1xuICAgICAgcmV0dXJuIGJhdGNoLmRlbGV0ZShkb2MpO1xuICAgIH0sIHRoaXMuYWRhcHRlci5iYXRjaCgpKS5jb21taXQoKS50aGVuKCgpID0+IHBhcmFtcy5sZW5ndGgpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQWxsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGFzeW5jIGJ1bGtXcml0ZShlbnRpdGllczogKERvY1BhcmFtPHRoaXMsIFRFeHRyYVBhcmFtcz4gJiBFbnRpdHkpW10sIHRpbWVzdGFtcHM6IHN0cmluZ1tdID0gW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gZW50aXRpZXMucmVkdWNlKChiYXRjaCwgZW50aXR5KSA9PiB7XG4gICAgICBjb25zdCBkb2MgPSB0aGlzLmRvYyhlbnRpdHkpLl9fcmVmO1xuICAgICAgcmV0dXJuIGJhdGNoLnNldChkb2MsIHtcbiAgICAgICAgLi4udGhpcy5jb252ZXJ0ZXIudG9GaXJlc3RvcmUoZW50aXR5KSxcbiAgICAgICAgLi4udGhpcy5idWlsZFNlcnZlclRpbWVzdGFtcE9iamVjdCh0aW1lc3RhbXBzKSxcbiAgICAgIH0pO1xuICAgIH0sIHRoaXMuYWRhcHRlci5iYXRjaCgpKS5jb21taXQoKTtcbiAgfVxuXG4gIGFzeW5jIGJ1bGtDcmVhdGUoZW50aXRpZXM6IChEb2NQYXJhbTx0aGlzLCBURXh0cmFQYXJhbXM+ICYgRW50aXR5KVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gVE9ETyhub250YW5nZW50KTogYWRkIG1heGltdW0gNTAwIHJlY29yZCB2YWxpZGF0aW9uXG4gICAgcmV0dXJuIGVudGl0aWVzLnJlZHVjZSgoYmF0Y2gsIGVudGl0eSkgPT4ge1xuICAgICAgY29uc3QgZG9jID0gdGhpcy5kb2MoZW50aXR5KS5fX3JlZjtcbiAgICAgIHJldHVybiBiYXRjaC5jcmVhdGUoZG9jLCB7XG4gICAgICAgIC4uLnRoaXMuY29udmVydGVyLnRvRmlyZXN0b3JlKGVudGl0eSksXG4gICAgICAgIC4uLnRoaXMuYnVpbGRTZXJ2ZXJUaW1lc3RhbXBPYmplY3QoWydjcmVhdGVkQXQnLCAndXBkYXRlZEF0J10pLFxuICAgICAgfSk7XG4gICAgfSwgdGhpcy5hZGFwdGVyLmJhdGNoKCkpLmNvbW1pdCgpO1xuICB9XG5cbiAgYXN5bmMgYnVsa1VwZGF0ZShlbnRpdGllczogKERvY1BhcmFtPHRoaXMsIFRFeHRyYVBhcmFtcz4gJiBQYXJ0aWFsPEVudGl0eT4pW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBUT0RPKG5vbnRhbmdlbnQpOiBhZGQgbWF4aW11bSA1MDAgcmVjb3JkIHZhbGlkYXRpb25cbiAgICByZXR1cm4gZW50aXRpZXMucmVkdWNlKChiYXRjaCwgZW50aXR5KSA9PiB7XG4gICAgICBjb25zdCBkb2MgPSB0aGlzLmRvYyhlbnRpdHkpLl9fcmVmO1xuICAgICAgcmV0dXJuIGJhdGNoLnVwZGF0ZShkb2MsIHtcbiAgICAgICAgLi4udGhpcy5jb252ZXJ0ZXIudG9GaXJlc3RvcmUoZW50aXR5KSxcbiAgICAgICAgLi4udGhpcy5idWlsZFNlcnZlclRpbWVzdGFtcE9iamVjdChbJ3VwZGF0ZWRBdCddKSxcbiAgICAgIH0pO1xuICAgIH0sIHRoaXMuYWRhcHRlci5iYXRjaCgpKS5jb21taXQoKTtcbiAgfVxuXG4gIGFzeW5jIGJ1bGtEZWxldGUocGFyYW1NYXBzOiBEb2NQYXJhbTx0aGlzLCBURXh0cmFQYXJhbXM+W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBNRU1PKEBub250YW5nZW50KTogNTAw5Lu25Lul5LiK44Gu5YmK6Zmk44Gv5pyq5a++5b+cXG4gICAgcmV0dXJuIHBhcmFtTWFwcy5yZWR1Y2UoKGJhdGNoLCBwYXJhbU1hcCkgPT4ge1xuICAgICAgY29uc3QgZG9jID0gdGhpcy5kb2MocGFyYW1NYXAgYXMgYW55KS5fX3JlZjtcbiAgICAgIHJldHVybiBiYXRjaC5kZWxldGUoZG9jKTtcbiAgICB9LCB0aGlzLmFkYXB0ZXIuYmF0Y2goKSkuY29tbWl0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29sbGVjdGlvbihwYXJhbU1hcD86IE9taXQ8RXh0cmFjdFBhcmFtczx0eXBlb2YgdGhpcy5jb2xsZWN0aW9uUGF0aD4sICdpZCc+KTogQ29sbGVjdGlvblJlZmVyZW5jZTxvYmplY3Q+IHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5wYXRoQnVpbGRlci5jb2xsZWN0aW9uKHBhcmFtTWFwKVxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuY29sbGVjdGlvbjxvYmplY3Q+KHBhdGgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbGxlY3Rpb25Hcm91cCgpOiBDb2xsZWN0aW9uR3JvdXA8b2JqZWN0PiB7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMucGF0aEJ1aWxkZXIuY29sbGVjdGlvbkdyb3VwKCk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5jb2xsZWN0aW9uR3JvdXA8b2JqZWN0PihwYXRoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkb2MocGFyYW1NYXA6IERvY1BhcmFtPHRoaXMsIFRFeHRyYVBhcmFtcz4pOiBEb2N1bWVudFJlZmVyZW5jZTxvYmplY3Q+IHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5wYXRoQnVpbGRlci5kb2MocGFyYW1NYXAgYXMgYW55KTtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmRvYzxvYmplY3Q+KHBhdGgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdlbklkID0gKCk6IHN0cmluZyA9PiBnZW5lcmF0ZUlkKCk7XG5cbiAgcHJvdGVjdGVkIF9saXN0KGNvbGxlY3Rpb246IENvbGxlY3Rpb25SZWZlcmVuY2U8b2JqZWN0Pikge1xuICAgIHJldHVybiBjb2xsZWN0aW9uLmdldCgpLnRoZW4oKHtkb2NzfSkgPT4gZG9jcy5tYXAoZG9jID0+IHtcbiAgICAgIGlmICghZG9lc0V4aXN0KGRvYykpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIHRoaXMuY29udmVydGVyLmZyb21GaXJlc3RvcmUoZG9jKTtcbiAgICB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2dldChkb2M6IERvY3VtZW50UmVmZXJlbmNlPG9iamVjdD4pIHtcbiAgICByZXR1cm4gZG9jLmdldCgpLnRoZW4oKGRvYyA9PiB7XG4gICAgICBpZiAoIWRvYy5kYXRhKCkpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIHRoaXMuY29udmVydGVyLmZyb21GaXJlc3RvcmUoZG9jKVxuICAgIH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBfc2F2ZShkb2M6IERvY3VtZW50UmVmZXJlbmNlPG9iamVjdD4sIGVudGl0eTogRW50aXR5KTogUHJvbWlzZTxbRW50aXR5LCBib29sZWFuXT4ge1xuICAgIGNvbnN0IGV4aXN0cyA9IGF3YWl0IGRvYy5leGlzdHMoKTtcbiAgICBpZiAoZXhpc3RzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2V0KGRvYywgZW50aXR5KS50aGVuKGRvYyA9PiBbdGhpcy5jb252ZXJ0ZXIuZnJvbUZpcmVzdG9yZShkb2MpLCBmYWxzZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5fY3JlYXRlKGRvYywgZW50aXR5KS50aGVuKGVudGl0eSA9PiBbZW50aXR5LCB0cnVlXSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIF9jcmVhdGUoZG9jOiBEb2N1bWVudFJlZmVyZW5jZTxvYmplY3Q+LCBlbnRpdHk6IEVudGl0eSk6IFByb21pc2U8RW50aXR5PiB7XG4gICAgY29uc3QgZXhpc3RzID0gYXdhaXQgZG9jLmV4aXN0cygpLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgLy8gTUVNTyhAbm9udGFuZ2VudCk6IGJ1buOBp+Wun+ihjOOBmeOCi+OBqOOBjeOBoOOBkeOBk+OBruOCqOODqeODvOOBjOOBp+OCi+OBi+OCguOBl+OCjOOBquOBhOOAglxuICAgICAgaWYgKGAke2Vycm9yfWAuc3RhcnRzV2l0aCgnRXJyb3I6IERpZCBub3QgcmVjZWl2ZSBkb2N1bWVudCBmb3InKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gICAgaWYgKGV4aXN0cykgdGhyb3cgbmV3IEVycm9yKCdEb2N1bWVudCBhbHJlYWR5IGV4aXN0cycpO1xuICAgIHJldHVybiBkb2Muc2V0KHtcbiAgICAgIC4uLnRoaXMuY29udmVydGVyLnRvRmlyZXN0b3JlKGVudGl0eSksXG4gICAgICAuLi50aGlzLmJ1aWxkU2VydmVyVGltZXN0YW1wT2JqZWN0KFsnY3JlYXRlZEF0JywgJ3VwZGF0ZWRBdCddKSxcbiAgICB9IGFzIGFueSkudGhlbigoKSA9PiBkb2MuZ2V0KCkpLnRoZW4oZG9jID0+IHRoaXMuY29udmVydGVyLmZyb21GaXJlc3RvcmUoZG9jKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NldChkb2M6IERvY3VtZW50UmVmZXJlbmNlPG9iamVjdD4sIGVudGl0eTogUGFydGlhbDxFbnRpdHk+LCBpc1VwZGF0ZSA9IHRydWUpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5jb252ZXJ0ZXIudG9GaXJlc3RvcmUoZW50aXR5KTtcbiAgICByZXR1cm4gZG9jLnNldCh7XG4gICAgICAuLi50aGlzLmNvbnZlcnRlci50b0ZpcmVzdG9yZShlbnRpdHkpLFxuICAgICAgLi4udGhpcy5idWlsZFNlcnZlclRpbWVzdGFtcE9iamVjdChpc1VwZGF0ZSA/IFsndXBkYXRlZEF0J10gOiBbXSksXG4gICAgfSBhcyBhbnksIHttZXJnZTogaXNVcGRhdGV9KS50aGVuKCgpID0+IGRvYy5nZXQoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRTZXJ2ZXJUaW1lc3RhbXBPYmplY3Qoa2V5czogc3RyaW5nW10gPSBbJ2NyZWF0ZWRBdCcsICd1cGRhdGVkQXQnXSkge1xuICAgIHJldHVybiBrZXlzLnJlZHVjZSgobSwgaykgPT4gKHsuLi5tLCBba106IHRoaXMuYWRhcHRlci5GaWVsZFZhbHVlLnNlcnZlclRpbWVzdGFtcCgpfSksIHt9KTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmlyZXN0b3JlUmVwb3NpdG9yeTxFbnRpdHkgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSwgVEV4dHJhUGFyYW1zID0ge30+IGV4dGVuZHMgQmFzZUZpcmVzdG9yZVJlcG9zaXRvcnk8RW50aXR5LCBURXh0cmFQYXJhbXM+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFkYXB0ZXIgPSBpbmplY3QoRmlyZXN0b3JlQWRhcHRlcik7XG4gIGdldCBwYXRoQnVpbGRlcigpOiBGaXJlc3RvcmVQYXRoQnVpbGRlcjxFbnRpdHksIHR5cGVvZiB0aGlzLmNvbGxlY3Rpb25QYXRoPiB7XG4gICAgcmV0dXJuIHBhdGhCdWlsZGVyRmFjdG9yeSh0aGlzLmNvbGxlY3Rpb25QYXRoKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlyZXN0b3JlUmVwb3NpdG9yeTxFbnRpdHkgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSwgVEV4dHJhUGFyYW1zID0ge30+KFxuICBlbnRpdHk6IHsgbmV3KCk6IEVudGl0eSB9LFxuICBhZGFwdGVyOiBGaXJlc3RvcmVBZGFwdGVyID0gaW5qZWN0KEZpcmVzdG9yZUFkYXB0ZXIpLFxuKTogQmFzZUZpcmVzdG9yZVJlcG9zaXRvcnk8RW50aXR5LCBURXh0cmFQYXJhbXM+IHtcbiAgY2xhc3MgRmlyZXN0b3JlUmVwb3NpdG9yeSBleHRlbmRzIEJhc2VGaXJlc3RvcmVSZXBvc2l0b3J5PEVudGl0eSwgVEV4dHJhUGFyYW1zPiB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udmVydGVyOiBJRmlyZXN0b3JlQ29udmVydGVyPEVudGl0eT4sXG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY29sbGVjdGlvblBhdGg6IHN0cmluZyxcbiAgICAgIHB1YmxpYyBwYXRoQnVpbGRlcjogRmlyZXN0b3JlUGF0aEJ1aWxkZXI8RW50aXR5LCBhbnk+LFxuICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFkYXB0ZXI6IEZpcmVzdG9yZUFkYXB0ZXIsXG4gICAgKSB7IHN1cGVyKCk7IH1cbiAgfVxuXG4gIHJldHVybiBuZXcgRmlyZXN0b3JlUmVwb3NpdG9yeShcbiAgICBnZXRDb252ZXJ0ZXIoZW50aXR5LCBhZGFwdGVyKSxcbiAgICBnZXRDb2xsZWN0aW9uKGVudGl0eSksXG4gICAgcGF0aEJ1aWxkZXJGYWN0b3J5KGdldENvbGxlY3Rpb24oZW50aXR5KSksXG4gICAgYWRhcHRlclxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RmlyZXN0b3JlUmVwb3NpdG9yeTxFbnRpdHkgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSwgVEV4dHJhUGFyYW1zID0ge30+KGVudGl0eTogeyBuZXcoKTogRW50aXR5IH0pOiBCYXNlRmlyZXN0b3JlUmVwb3NpdG9yeTxFbnRpdHksIFRFeHRyYVBhcmFtcz4ge1xuICByZXR1cm4gZ2V0RmlyZXN0b3JlUmVwb3NpdG9yeShlbnRpdHksIGluamVjdChGaXJlc3RvcmVBZGFwdGVyKSk7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWZpcmVzdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvbngtZGRkLWZpcmVzdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["String","Boolean","Number","Map","Array","map","take","switchMap","catchError","tap","distinctUntilChanged"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nx-ddd-firestore.mjs","sources":["../tmp-esm2022/decorators/decorators.js","../tmp-esm2022/adapters/dayjs/dayjs.adatper.js","../tmp-esm2022/adapters/base/base.adapter.js","../tmp-esm2022/converter/converter.js","../tmp-esm2022/dao/firestore.dao.js","../tmp-esm2022/path-builder/path-builder.js","../tmp-esm2022/query/firestore.query.js","../tmp-esm2022/query/v2/query.js","../tmp-esm2022/query/v2/cached-query.js","../tmp-esm2022/repository/repository.js","../tmp-esm2022/nx-ddd-firestore.js"],"sourcesContent":["import { makeDecoratorFactories } from '@nx-ddd/core';\nexport const FIRESTORE_ANNOTATIONS = 'firestore_annotations';\nexport const { createDecorator, createPropsDecorator, createClassDecorator, getAnnotations, } = makeDecoratorFactories((type, fieldName, propName, options) => ({ type, fieldName, propName, childType: options.childType }), FIRESTORE_ANNOTATIONS);\n/** @deprecated use getAnnotations */\nexport function getFirestoreAnnotations(target) {\n return getAnnotations(target);\n}\nexport const ID = createDecorator('id');\nexport const String = createDecorator('string');\nexport const Null = createDecorator('null');\nexport const Geopoint = createDecorator('geopoint');\nexport const Boolean = createDecorator('boolean');\nexport const Timestamp = createDecorator('timestamp');\nexport const Number = createDecorator('number');\nexport const Map = (childType, props) => createDecorator('map', { childType })(props);\nexport const Array = (childType, props) => createDecorator('array', { childType })(props);\nexport const Reference = createDecorator('reference');\nexport function getCollection(target) {\n const annotations = getAnnotations(target);\n const annotation = annotations.find((annotation) => annotation.type === 'collection');\n return annotation.name;\n}\nexport const Firestore = {\n Collection: createClassDecorator('collection'),\n ID: ID,\n String: String,\n Null: Null,\n Geopoint: Geopoint,\n Boolean: Boolean,\n Timestamp: Timestamp,\n Number: Number,\n Map: Map,\n Array: Array,\n Reference: Reference,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvZGVjb3JhdG9ycy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyx1QkFBdUIsQ0FBQztBQVc3RCxNQUFNLENBQUMsTUFBTSxFQUNYLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLGNBQWMsR0FDZixHQUFHLHNCQUFzQixDQUt4QixDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFDLENBQUMsRUFDbkcscUJBQXFCLENBQ3RCLENBQUM7QUFFRixxQ0FBcUM7QUFDckMsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE1BQVc7SUFDakQsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDaEMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNsRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDaEQsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsU0FBcUIsRUFBRSxLQUF1QixFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsSCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxTQUFxQixFQUFFLEtBQXVCLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsRUFBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFdEQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFXO0lBQ3ZDLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDO0lBQzNGLE9BQVEsVUFBa0IsQ0FBQyxJQUFJLENBQUM7QUFDbEMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUN2QixVQUFVLEVBQUUsb0JBQW9CLENBQW1CLFlBQVksQ0FBQztJQUNoRSxFQUFFLEVBQUUsRUFBRTtJQUNOLE1BQU0sRUFBRSxNQUFNO0lBQ2QsSUFBSSxFQUFFLElBQUk7SUFDVixRQUFRLEVBQUUsUUFBUTtJQUNsQixPQUFPLEVBQUUsT0FBTztJQUNoQixTQUFTLEVBQUUsU0FBUztJQUNwQixNQUFNLEVBQUUsTUFBTTtJQUNkLEdBQUcsRUFBRSxHQUFHO0lBQ1IsS0FBSyxFQUFFLEtBQUs7SUFDWixTQUFTLEVBQUUsU0FBUztDQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFrZURlY29yYXRvckZhY3RvcmllcyB9IGZyb20gJ0BueC1kZGQvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBGSVJFU1RPUkVfQU5OT1RBVElPTlMgPSAnZmlyZXN0b3JlX2Fubm90YXRpb25zJztcbmV4cG9ydCB0eXBlIEZpcmVzdG9yZUZpZWxkVHlwZSA9ICdpZCcgfCAnYm9vbGVhbicgfCAnbnVtYmVyJyBcbiAgfCAndGltZXN0YW1wJyB8ICdzdHJpbmcnIHwgJ2dlb3BvaW50JyB8ICdudWxsJyBcbiAgfCAnbWFwJyB8ICdhcnJheScgfCAncmVmZXJlbmNlJztcbmV4cG9ydCBpbnRlcmZhY2UgRmlyZXN0b3JlQW5ub3RhdGlvbiB7XG4gIHR5cGU6IEZpcmVzdG9yZUZpZWxkVHlwZTtcbiAgZmllbGROYW1lOiBzdHJpbmc7XG4gIHByb3BOYW1lOiBzdHJpbmc7XG4gIGNoaWxkVHlwZTogYW55O1xufVxuXG5leHBvcnQgY29uc3Qge1xuICBjcmVhdGVEZWNvcmF0b3IsXG4gIGNyZWF0ZVByb3BzRGVjb3JhdG9yLFxuICBjcmVhdGVDbGFzc0RlY29yYXRvcixcbiAgZ2V0QW5ub3RhdGlvbnMsXG59ID0gbWFrZURlY29yYXRvckZhY3RvcmllczxcbiAgRmlyZXN0b3JlRmllbGRUeXBlLFxuICBGaXJlc3RvcmVBbm5vdGF0aW9uLFxuICB7Y2hpbGRUeXBlPzogYW55fVxuPihcbiAgKHR5cGUsIGZpZWxkTmFtZSwgcHJvcE5hbWUsIG9wdGlvbnMpID0+ICh7dHlwZSwgZmllbGROYW1lLCBwcm9wTmFtZSwgY2hpbGRUeXBlOiBvcHRpb25zLmNoaWxkVHlwZX0pLFxuICBGSVJFU1RPUkVfQU5OT1RBVElPTlNcbik7XG5cbi8qKiBAZGVwcmVjYXRlZCB1c2UgZ2V0QW5ub3RhdGlvbnMgKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXJlc3RvcmVBbm5vdGF0aW9ucyh0YXJnZXQ6IGFueSk6IEZpcmVzdG9yZUFubm90YXRpb25bXSB7XG4gIHJldHVybiBnZXRBbm5vdGF0aW9ucyh0YXJnZXQpO1xufVxuXG5leHBvcnQgY29uc3QgSUQgPSBjcmVhdGVEZWNvcmF0b3IoJ2lkJyk7XG5leHBvcnQgY29uc3QgU3RyaW5nID0gY3JlYXRlRGVjb3JhdG9yKCdzdHJpbmcnKTtcbmV4cG9ydCBjb25zdCBOdWxsID0gY3JlYXRlRGVjb3JhdG9yKCdudWxsJyk7XG5leHBvcnQgY29uc3QgR2VvcG9pbnQgPSBjcmVhdGVEZWNvcmF0b3IoJ2dlb3BvaW50Jyk7XG5leHBvcnQgY29uc3QgQm9vbGVhbiA9IGNyZWF0ZURlY29yYXRvcignYm9vbGVhbicpO1xuZXhwb3J0IGNvbnN0IFRpbWVzdGFtcCA9IGNyZWF0ZURlY29yYXRvcigndGltZXN0YW1wJyk7XG5leHBvcnQgY29uc3QgTnVtYmVyID0gY3JlYXRlRGVjb3JhdG9yKCdudW1iZXInKTtcbmV4cG9ydCBjb25zdCBNYXAgPSAoY2hpbGRUeXBlPzogKCkgPT4gYW55LCBwcm9wcz86IHtuYW1lPzogc3RyaW5nfSkgPT4gY3JlYXRlRGVjb3JhdG9yKCdtYXAnLCB7Y2hpbGRUeXBlfSkocHJvcHMpO1xuZXhwb3J0IGNvbnN0IEFycmF5ID0gKGNoaWxkVHlwZT86ICgpID0+IGFueSwgcHJvcHM/OiB7bmFtZT86IHN0cmluZ30pID0+IGNyZWF0ZURlY29yYXRvcignYXJyYXknLCB7Y2hpbGRUeXBlfSkocHJvcHMpO1xuZXhwb3J0IGNvbnN0IFJlZmVyZW5jZSA9IGNyZWF0ZURlY29yYXRvcigncmVmZXJlbmNlJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2xsZWN0aW9uKHRhcmdldDogYW55KTogc3RyaW5nIHtcbiAgY29uc3QgYW5ub3RhdGlvbnMgPSBnZXRBbm5vdGF0aW9ucyh0YXJnZXQpO1xuICBjb25zdCBhbm5vdGF0aW9uID0gYW5ub3RhdGlvbnMuZmluZCgoYW5ub3RhdGlvbjogYW55KSA9PiBhbm5vdGF0aW9uLnR5cGUgPT09ICdjb2xsZWN0aW9uJyk7XG4gIHJldHVybiAoYW5ub3RhdGlvbiBhcyBhbnkpLm5hbWU7XG59XG5cbmV4cG9ydCBjb25zdCBGaXJlc3RvcmUgPSB7XG4gIENvbGxlY3Rpb246IGNyZWF0ZUNsYXNzRGVjb3JhdG9yPHsgbmFtZTogc3RyaW5nIH0+KCdjb2xsZWN0aW9uJyksXG4gIElEOiBJRCxcbiAgU3RyaW5nOiBTdHJpbmcsXG4gIE51bGw6IE51bGwsXG4gIEdlb3BvaW50OiBHZW9wb2ludCxcbiAgQm9vbGVhbjogQm9vbGVhbixcbiAgVGltZXN0YW1wOiBUaW1lc3RhbXAsXG4gIE51bWJlcjogTnVtYmVyLFxuICBNYXA6IE1hcCxcbiAgQXJyYXk6IEFycmF5LFxuICBSZWZlcmVuY2U6IFJlZmVyZW5jZSxcbn07XG4iXX0=","import { Injectable } from '@angular/core';\nimport dayjs from 'dayjs';\nimport * as i0 from \"@angular/core\";\nexport class DateAdapter {\n isDate(value) {\n return value instanceof Date || dayjs.isDayjs(value);\n }\n isValid(value) {\n return this.isDate(value) && !isNaN(value.getTime());\n }\n getJsDate(value) {\n return value;\n }\n convertToDate(value) {\n return value;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DateAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DateAdapter, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DateAdapter, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport class DayjsAdapter {\n constructor(dateAdapter) {\n this.dateAdapter = dateAdapter;\n }\n isDayjs(value) {\n return dayjs.isDayjs(value);\n }\n isValid(value) {\n return this.isDayjs(value) && value.isValid();\n }\n getJsDate(value) {\n return value.toDate();\n }\n convertToDayjs(value) {\n return dayjs(value);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DayjsAdapter, deps: [{ token: DateAdapter }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DayjsAdapter, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DayjsAdapter, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: DateAdapter }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5anMuYWRhdHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvYWRhcHRlcnMvZGF5anMvZGF5anMuYWRhdHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQzs7QUFHMUIsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFJLEtBQVU7UUFDbEIsT0FBTyxLQUFLLFlBQVksSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsU0FBUyxDQUFJLEtBQVU7UUFDckIsT0FBTyxLQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELGFBQWEsQ0FBSSxLQUFXO1FBQzFCLE9BQU8sS0FBVSxDQUFDO0lBQ3BCLENBQUM7OEdBZlUsV0FBVztrSEFBWCxXQUFXLGNBREUsTUFBTTs7MkZBQ25CLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQW9CbEMsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBNkIsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFBRyxDQUFDO0lBRXpELE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWtCO1FBQzFCLE9BQU8sS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjLENBQUksS0FBVTtRQUMxQixPQUFPLEtBQUssQ0FBQyxLQUFLLENBQU0sQ0FBQztJQUMzQixDQUFDOzhHQWpCVSxZQUFZO2tIQUFaLFlBQVksY0FEQyxNQUFNOzsyRkFDbkIsWUFBWTtrQkFEeEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIERhdGVBZGFwdGVyIHtcbiAgaXNEYXRlPEQ+KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEIHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlIHx8IGRheWpzLmlzRGF5anModmFsdWUpO1xuICB9XG5cbiAgaXNWYWxpZCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNEYXRlPERhdGU+KHZhbHVlKSAmJiAhaXNOYU4odmFsdWUuZ2V0VGltZSgpKTtcbiAgfVxuXG4gIGdldEpzRGF0ZTxEPih2YWx1ZTogYW55KTogRCB7XG4gICAgcmV0dXJuIHZhbHVlIGFzIEQ7XG4gIH1cblxuICBjb252ZXJ0VG9EYXRlPEQ+KHZhbHVlOiBEYXRlKTogRCB7XG4gICAgcmV0dXJuIHZhbHVlIGFzIEQ7XG4gIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBEYXlqc0FkYXB0ZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcikge31cblxuICBpc0RheWpzKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBkYXlqcy5EYXlqcyB7XG4gICAgcmV0dXJuIGRheWpzLmlzRGF5anModmFsdWUpO1xuICB9XG5cbiAgaXNWYWxpZCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNEYXlqcyh2YWx1ZSkgJiYgdmFsdWUuaXNWYWxpZCgpO1xuICB9XG5cbiAgZ2V0SnNEYXRlKHZhbHVlOiBkYXlqcy5EYXlqcyk6IERhdGUge1xuICAgIHJldHVybiB2YWx1ZS50b0RhdGUoKTtcbiAgfVxuXG4gIGNvbnZlcnRUb0RheWpzPEQ+KHZhbHVlOiBhbnkpOiBEIHtcbiAgICByZXR1cm4gZGF5anModmFsdWUpIGFzIEQ7XG4gIH1cbn1cbiJdfQ==","import { inject } from '@angular/core';\nimport { getFirestoreAnnotations } from '../../decorators/decorators';\nimport { walkObj } from '@nx-ddd/core';\nimport { get } from 'lodash-es';\nimport { DateAdapter } from '../dayjs';\nexport class FirestoreAdapter {\n constructor() {\n this.dateAdapter = inject(DateAdapter);\n }\n //** @deprecated */\n toFirestoreData(entity) {\n return Object.entries(entity).reduce((pre, [k, v]) => ({\n ...pre, [k]: this.dateAdapter.isDate(v) ? this.convertDateToTimestamp(v) : v,\n }), {});\n }\n //** @deprecated */\n fromFirestoreData(data) {\n return Object.entries(data).reduce((pre, [k, v]) => ({\n ...pre, [k]: this.isTimestamp(v) ? this.convertTimestampToDate(v) : v,\n }), {});\n }\n toFirestore(obj, Entity) {\n const newObj = {};\n for (const annotation of getFirestoreAnnotations(Entity)) {\n const _value = get(obj, annotation.propName);\n if (_value === null) {\n newObj[annotation.fieldName] = null;\n continue;\n }\n switch (annotation.type) {\n case 'id':\n case 'string':\n case 'number':\n case 'boolean': {\n if (typeof _value === 'undefined')\n break;\n newObj[annotation.fieldName] = _value;\n break;\n }\n case 'timestamp': {\n if (typeof _value === 'undefined')\n break;\n if (!this.dateAdapter.isDate(_value)) {\n console.error('[FirestoreAdapter] _value:', _value);\n throw new Error(`Invalid Date Type: ${_value}`);\n }\n newObj[annotation.fieldName] = this.convertDateToTimestamp(_value);\n break;\n }\n case 'array': {\n if (typeof annotation?.childType === 'undefined') {\n if (_value)\n newObj[annotation.fieldName] = _value;\n }\n else {\n const Type = annotation.childType();\n if (typeof _value === 'undefined')\n break;\n if (!Array.isArray(_value)) {\n newObj[annotation.fieldName] = [];\n break;\n }\n const value = (_value ?? []).map(v => {\n switch (Type) {\n case String:\n case Number:\n return v;\n default:\n return this.toFirestore(v, Type);\n }\n });\n if (value)\n newObj[annotation.fieldName] = value;\n }\n break;\n }\n case 'map': {\n if (typeof _value === 'undefined')\n break;\n if (typeof annotation?.childType === 'undefined') {\n if (_value)\n newObj[annotation.fieldName] = _value;\n }\n else {\n const Type = annotation.childType();\n const value = this.toFirestore(_value, Type);\n if (value)\n newObj[annotation.fieldName] = value;\n }\n break;\n }\n }\n }\n return newObj;\n }\n fromFirestore(data, Entity) {\n const newObj = {};\n for (const annotation of getFirestoreAnnotations(Entity)) {\n const _value = data[annotation.fieldName];\n if (typeof _value === 'undefined')\n continue;\n if (_value === null) {\n newObj[annotation.propName] = null;\n continue;\n }\n switch (annotation.type) {\n case 'id':\n case 'string':\n case 'number':\n case 'boolean': {\n newObj[annotation.propName] = _value;\n break;\n }\n case 'timestamp': {\n try {\n newObj[annotation.propName] = this.convertTimestampToDate(_value);\n }\n catch (e) {\n newObj[annotation.propName] = _value;\n }\n break;\n }\n case 'array': {\n if (typeof annotation?.childType === 'undefined') {\n newObj[annotation.propName] = _value;\n }\n else {\n const Type = annotation.childType();\n const value = _value.map(v => {\n switch (Type) {\n case String:\n case Number:\n return v;\n default:\n return this.fromFirestore(v, Type);\n }\n });\n if (value)\n newObj[annotation.propName] = value;\n }\n break;\n }\n case 'map': {\n if (typeof annotation?.childType === 'undefined') {\n newObj[annotation.propName] = _value;\n }\n else {\n const Type = annotation.childType();\n const value = this.fromFirestore(_value, Type);\n if (value)\n newObj[annotation.propName] = value;\n }\n break;\n }\n }\n }\n return newObj;\n }\n /**\n * @description FirestoreのUpdateは通常のオブジェクトでは孫以下のプロパティが既存データとマージされないので、パスに変換する必要がある。\n */\n flattenForUpdate(obj) {\n const newObj = {};\n walkObj(obj, {\n callback: (paths, value) => newObj[paths.join('.')] = value,\n overwrite: (_, value) => {\n if (Array.isArray(value))\n return [true, value];\n if (this.isTimestamp(value))\n return [true, value];\n if (this.isFieldValue(value))\n return [true, value];\n return [false];\n }\n });\n return newObj;\n }\n convertDateToTimestamp(date) {\n return this.Timestamp.fromDate(date);\n }\n convertTimestampToDate(timestamp) {\n return this.dateAdapter.convertToDate(timestamp.toDate());\n }\n}\nexport function provideFirestoreAdapter(useClass) {\n return { provide: FirestoreAdapter, useClass };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9maXJlc3RvcmUvc3JjL2xpYi9hZGFwdGVycy9iYXNlL2Jhc2UuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVdoQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBUXZDLE1BQU0sT0FBZ0IsZ0JBQWdCO0lBQXRDO1FBQ1ksZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFxTjlDLENBQUM7SUFuS0MsbUJBQW1CO0lBQ25CLGVBQWUsQ0FBUyxNQUFjO1FBQ3BDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckQsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3BGLENBQUMsRUFBRSxFQUFtQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixpQkFBaUIsQ0FBUyxJQUFtQztRQUMzRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFD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LE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBWSxDQUFDLENBQUM7Z0JBQ3pELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7b0JBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDbkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ2hCLENBQUM7U0FDRixDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBVTtRQUMvQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxTQUFvQjtRQUN6QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQzNELENBQUM7Q0FFRjtBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUFvQztJQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldEZpcmVzdG9yZUFubm90YXRpb25zIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IHdhbGtPYmogfSBmcm9tICdAbngtZGRkL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29sbGVjdGlvblJlZmVyZW5jZSxcbiAgQ29sbGVjdGlvbkdyb3VwLFxuICBEb2N1bWVudFJlZmVyZW5jZSxcbiAgVG9GaXJlc3RvcmVEYXRhLFxuICBUaW1lc3RhbXAsXG4gIFF1ZXJ5LFxuICBGaWVsZFZhbHVlLFxuICBEb2N1bWVudERhdGFcbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJy4uL2RheWpzJztcblxuZXhwb3J0IHR5cGUgUXVlcnlGbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlLCBSPiA9IChcbiAgY29sbGVjdGlvbj86IGFueVxuKSA9PiBSO1xuZXhwb3J0IHR5cGUgV2hlcmVGaWx0ZXJPcCA9ICc8JyB8ICc8PScgfCAnPT0nIHwgJyE9JyB8ICc+PScgfCAnPicgfCAnYXJyYXktY29udGFpbnMnIHwgJ2luJyB8ICdhcnJheS1jb250YWlucy1hbnknIHwgJ25vdC1pbic7XG5cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZpcmVzdG9yZUFkYXB0ZXI8RGF0ZSA9IGFueT4ge1xuICBwcm90ZWN0ZWQgZGF0ZUFkYXB0ZXIgPSBpbmplY3QoRGF0ZUFkYXB0ZXIpO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBpc1RpbWVzdGFtcCh2OiBhbnkpOiB2IGlzIFRpbWVzdGFtcDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGlzRmllbGRWYWx1ZSh2OiBhbnkpOiB2IGlzIEZpZWxkVmFsdWU7XG5cbiAgYWJzdHJhY3QgZ2V0IFRpbWVzdGFtcCgpOiBhbnlcbiAgYWJzdHJhY3QgZ2V0IEZpZWxkVmFsdWUoKTogYW55XG4gIGFic3RyYWN0IGdldCBGaWVsZFBhdGgoKTogYW55XG5cbiAgYWJzdHJhY3QgZG9jPFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihwYXRoOiBzdHJpbmcpOiBEb2N1bWVudFJlZmVyZW5jZTxBcHBNb2RlbFR5cGU+O1xuXG4gIGFic3RyYWN0IGNvbGxlY3Rpb248XG4gICAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICAgIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuICA+KHBhdGg6IHN0cmluZyk6IENvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG5cbiAgYWJzdHJhY3QgY29sbGVjdGlvbkdyb3VwPFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihjb2xsZWN0aW9uSWQ6IHN0cmluZyk6IENvbGxlY3Rpb25Hcm91cDxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcblxuICBhYnN0cmFjdCBxdWVyeTxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPixcbiAgICAuLi5xdWVyeUZuQXJyYXk6IFF1ZXJ5Rm48QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgYW55PltdXG4gICk6IFF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+O1xuXG4gIGFic3RyYWN0IHdoZXJlPFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihrZXk6IHN0cmluZywgZXZhbHVhdGlvbjogV2hlcmVGaWx0ZXJPcCwgdmFsdWU6IHVua25vd24pOiBRdWVyeUZuPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGUsIGFueT47XG5cbiAgYWJzdHJhY3Qgb3JkZXJCeTxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oa2V5OiBzdHJpbmcsIG9yZGVyOiAnYXNjJyB8ICdkZXNjJyk6IFF1ZXJ5Rm48QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgYW55PjtcblxuICBhYnN0cmFjdCBsaW1pdDxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4objogbnVtYmVyKTogUXVlcnlGbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlLCBhbnk+O1xuXG4gIGFic3RyYWN0IHJ1blRyYW5zYWN0aW9uKGZuOiBhbnkpOiBhbnk7XG4gIGFic3RyYWN0IGJhdGNoKCk6IGFueTtcblxuICAvLyoqIEBkZXByZWNhdGVkICovXG4gIHRvRmlyZXN0b3JlRGF0YTxFbnRpdHk+KGVudGl0eTogRW50aXR5KTogVG9GaXJlc3RvcmVEYXRhPEVudGl0eSwgRGF0ZT4ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhlbnRpdHkpLnJlZHVjZSgocHJlLCBbaywgdl0pID0+ICh7XG4gICAgICAuLi5wcmUsIFtrXTogdGhpcy5kYXRlQWRhcHRlci5pc0RhdGU8RGF0ZT4odikgPyAgdGhpcy5jb252ZXJ0RGF0ZVRvVGltZXN0YW1wKHYpIDogdixcbiAgICB9KSwge30gYXMgVG9GaXJlc3RvcmVEYXRhPEVudGl0eSwgRGF0ZT4pO1xuICB9XG5cbiAgLy8qKiBAZGVwcmVjYXRlZCAqL1xuICBmcm9tRmlyZXN0b3JlRGF0YTxFbnRpdHk+KGRhdGE6IFRvRmlyZXN0b3JlRGF0YTxFbnRpdHksIERhdGU+KTogRW50aXR5IHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoZGF0YSkucmVkdWNlKChwcmUsIFtrLCB2XSkgPT4gKHtcbiAgICAgIC4uLnByZSwgW2tdOiB0aGlzLmlzVGltZXN0YW1wKHYpID8gdGhpcy5jb252ZXJ0VGltZXN0YW1wVG9EYXRlKHYpIDogdixcbiAgICB9KSwge30gYXMgRW50aXR5KTtcbiAgfVxuXG4gIHRvRmlyZXN0b3JlPFQ+KG9iajogb2JqZWN0LCBFbnRpdHk6IG5ldyAoKSA9PiBUKTogb2JqZWN0IHtcbiAgICBjb25zdCBuZXdPYmogPSB7fTtcbiAgICBmb3IgKGNvbnN0IGFubm90YXRpb24gb2YgZ2V0RmlyZXN0b3JlQW5ub3RhdGlvbnMoRW50aXR5KSkge1xuICAgICAgY29uc3QgX3ZhbHVlID0gZ2V0KG9iaiwgYW5ub3RhdGlvbi5wcm9wTmFtZSk7XG4gICAgICBpZiAoX3ZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIG5ld09ialthbm5vdGF0aW9uLmZpZWxkTmFtZV0gPSBudWxsO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHN3aXRjaChhbm5vdGF0aW9uLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnaWQnOlxuICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICBjYXNlICdudW1iZXInOiBcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6IHtcbiAgICAgICAgICBpZiAodHlwZW9mIF92YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIGJyZWFrO1xuICAgICAgICAgIG5ld09ialthbm5vdGF0aW9uLmZpZWxkTmFtZV0gPSBfdmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAndGltZXN0YW1wJzoge1xuICAgICAgICAgIGlmICh0eXBlb2YgX3ZhbHVlID09PSAndW5kZWZpbmVkJykgYnJlYWs7XG4gICAgICAgICAgaWYgKCF0aGlzLmRhdGVBZGFwdGVyLmlzRGF0ZTxEYXRlPihfdmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbRmlyZXN0b3JlQWRhcHRlcl0gX3ZhbHVlOicsIF92YWx1ZSk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRGF0ZSBUeXBlOiAke192YWx1ZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbmV3T2JqW2Fubm90YXRpb24uZmllbGROYW1lXSA9IHRoaXMuY29udmVydERhdGVUb1RpbWVzdGFtcChfdmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2FycmF5Jzoge1xuICAgICAgICAgIGlmICh0eXBlb2YgYW5ub3RhdGlvbj8uY2hpbGRUeXBlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaWYgKF92YWx1ZSkgbmV3T2JqW2Fubm90YXRpb24uZmllbGROYW1lXSA9IF92YWx1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgVHlwZSA9IChhbm5vdGF0aW9uIGFzIGFueSkuY2hpbGRUeXBlKCk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIF92YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIGJyZWFrO1xuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KF92YWx1ZSkpIHtcbiAgICAgICAgICAgICAgbmV3T2JqW2Fubm90YXRpb24uZmllbGROYW1lXSA9IFtdO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKF92YWx1ZSA/PyBbXSkubWFwKHYgPT4ge1xuICAgICAgICAgICAgICBzd2l0Y2ggKFR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFN0cmluZzpcbiAgICAgICAgICAgICAgICBjYXNlIE51bWJlcjpcbiAgICAgICAgICAgICAgICAgIHJldHVybiB2XG4gICAgICAgICAgICAgICAgZGVmYXVsdDogXG4gICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b0ZpcmVzdG9yZSh2LCBUeXBlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAodmFsdWUpIG5ld09ialthbm5vdGF0aW9uLmZpZWxkTmFtZV0gPSB2YWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdtYXAnOiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBfdmFsdWUgPT09ICd1bmRlZmluZWQnKSBicmVhaztcbiAgICAgICAgICBpZiAodHlwZW9mIChhbm5vdGF0aW9uIGFzIGFueSk/LmNoaWxkVHlwZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGlmIChfdmFsdWUpIG5ld09ialthbm5vdGF0aW9uLmZpZWxkTmFtZV0gPSBfdmFsdWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IFR5cGUgPSAoYW5ub3RhdGlvbiBhcyBhbnkpLmNoaWxkVHlwZSgpO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnRvRmlyZXN0b3JlKF92YWx1ZSwgVHlwZSk7XG4gICAgICAgICAgICBpZiAodmFsdWUpIG5ld09ialthbm5vdGF0aW9uLmZpZWxkTmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld09iajtcbiAgfVxuICBcbiAgZnJvbUZpcmVzdG9yZTxUID0gYW55PihkYXRhOiBhbnksIEVudGl0eTogbmV3KCkgPT4gVCk6IFQge1xuICAgIGNvbnN0IG5ld09iaiA9IHt9O1xuICAgIGZvciAoY29uc3QgYW5ub3RhdGlvbiBvZiBnZXRGaXJlc3RvcmVBbm5vdGF0aW9ucyhFbnRpdHkpKSB7XG4gICAgICBjb25zdCBfdmFsdWUgPSBkYXRhW2Fubm90YXRpb24uZmllbGROYW1lXTtcbiAgICAgIGlmICh0eXBlb2YgX3ZhbHVlID09PSAndW5kZWZpbmVkJykgY29udGludWU7XG4gICAgICBpZiAoX3ZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIG5ld09ialthbm5vdGF0aW9uLnByb3BOYW1lXSA9IG51bGw7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2goYW5ub3RhdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2lkJzpcbiAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6IHtcbiAgICAgICAgICBuZXdPYmpbYW5ub3RhdGlvbi5wcm9wTmFtZV0gPSBfdmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAndGltZXN0YW1wJzoge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBuZXdPYmpbYW5ub3RhdGlvbi5wcm9wTmFtZV0gPSB0aGlzLmNvbnZlcnRUaW1lc3RhbXBUb0RhdGUoX3ZhbHVlKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBuZXdPYmpbYW5ub3RhdGlvbi5wcm9wTmFtZV0gPSBfdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2FycmF5Jzoge1xuICAgICAgICAgIGlmICh0eXBlb2YgYW5ub3RhdGlvbj8uY2hpbGRUeXBlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgbmV3T2JqW2Fubm90YXRpb24ucHJvcE5hbWVdID0gX3ZhbHVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBUeXBlID0gKGFubm90YXRpb24gYXMgYW55KS5jaGlsZFR5cGUoKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gX3ZhbHVlLm1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgc3dpdGNoIChUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBTdHJpbmc6XG4gICAgICAgICAgICAgICAgY2FzZSBOdW1iZXI6XG4gICAgICAgICAgICAgICAgICByZXR1cm4gdlxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mcm9tRmlyZXN0b3JlKHYsIFR5cGUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSkgbmV3T2JqW2Fubm90YXRpb24ucHJvcE5hbWVdID0gdmFsdWVcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnbWFwJzoge1xuICAgICAgICAgIGlmICh0eXBlb2YgYW5ub3RhdGlvbj8uY2hpbGRUeXBlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgbmV3T2JqW2Fubm90YXRpb24ucHJvcE5hbWVdID0gX3ZhbHVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBUeXBlID0gKGFubm90YXRpb24gYXMgYW55KS5jaGlsZFR5cGUoKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mcm9tRmlyZXN0b3JlKF92YWx1ZSwgVHlwZSk7XG4gICAgICAgICAgICBpZiAodmFsdWUpIG5ld09ialthbm5vdGF0aW9uLnByb3BOYW1lXSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3T2JqIGFzIFQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpcmVzdG9yZeOBrlVwZGF0ZeOBr+mAmuW4uOOBruOCquODluOCuOOCp+OCr+ODiOOBp+OBr+Wtq+S7peS4i+OBruODl+ODreODkeODhuOCo+OBjOaXouWtmOODh+ODvOOCv+OBqOODnuODvOOCuOOBleOCjOOBquOBhOOBruOBp+OAgeODkeOCueOBq+WkieaPm+OBmeOCi+W/heimgeOBjOOBguOCi+OAglxuICAgKi9cbiAgZmxhdHRlbkZvclVwZGF0ZShvYmo6IGFueSk6IGFueSB7XG4gICAgY29uc3QgbmV3T2JqID0ge307XG4gICAgd2Fsa09iaihvYmosIHtcbiAgICAgIGNhbGxiYWNrOiAocGF0aHMsIHZhbHVlKSA9PiBuZXdPYmpbcGF0aHMuam9pbignLicpXSA9IHZhbHVlLFxuICAgICAgb3ZlcndyaXRlOiAoXywgdmFsdWUpID0+IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4gW3RydWUsIHZhbHVlXTtcbiAgICAgICAgaWYgKHRoaXMuaXNUaW1lc3RhbXAodmFsdWUpKSByZXR1cm4gW3RydWUsIHZhbHVlIGFzIGFueV07XG4gICAgICAgIGlmICh0aGlzLmlzRmllbGRWYWx1ZSh2YWx1ZSkpIHJldHVybiBbdHJ1ZSwgdmFsdWVdO1xuICAgICAgICByZXR1cm4gW2ZhbHNlXVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBuZXdPYmo7XG4gIH1cblxuICBjb252ZXJ0RGF0ZVRvVGltZXN0YW1wKGRhdGU6IERhdGUpOiBUaW1lc3RhbXAge1xuICAgIHJldHVybiB0aGlzLlRpbWVzdGFtcC5mcm9tRGF0ZShkYXRlKTtcbiAgfVxuXG4gIGNvbnZlcnRUaW1lc3RhbXBUb0RhdGUodGltZXN0YW1wOiBUaW1lc3RhbXApOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlQWRhcHRlci5jb252ZXJ0VG9EYXRlKHRpbWVzdGFtcC50b0RhdGUoKSlcbiAgfVxuICBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVGaXJlc3RvcmVBZGFwdGVyKHVzZUNsYXNzOiBuZXcgKCkgPT4gRmlyZXN0b3JlQWRhcHRlcikge1xuICByZXR1cm4geyBwcm92aWRlOiBGaXJlc3RvcmVBZGFwdGVyLCB1c2VDbGFzcyB9O1xufVxuIl19","import { inject } from '@angular/core';\nimport { plainToInstanceWithValid } from '@nx-ddd/core';\nimport { FirestoreAdapter } from '../adapters/base';\nclass FirestoreHelper {\n static fromFirestore(doc, Entity, adapter) {\n const data = adapter.fromFirestore({ ...doc.data(), id: doc.id }, Entity);\n return plainToInstanceWithValid(Entity, data);\n }\n}\nclass BasicConverter {\n constructor(Entity, adapter) {\n this.Entity = Entity;\n this.adapter = adapter;\n }\n fromFirestore(doc) {\n return this.adapter.fromFirestore({\n ...doc.data(),\n id: doc.id\n }, this.Entity);\n }\n fromFirestoreMany(docs) {\n return docs.map(doc => this.fromFirestore(doc));\n }\n toFirestore(entity) {\n return this.adapter.toFirestore(entity, this.Entity);\n }\n}\nexport function getConverter(Entity, adapter = inject(FirestoreAdapter)) {\n return new BasicConverter(Entity, adapter);\n}\nexport function injectConverter(Entity) {\n return getConverter(Entity, inject(FirestoreAdapter));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9maXJlc3RvcmUvc3JjL2xpYi9jb252ZXJ0ZXIvY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBV3BELE1BQU0sZUFBZTtJQUNuQixNQUFNLENBQUMsYUFBYSxDQUF5QixHQUE2QixFQUFFLE1BQW1CLEVBQUUsT0FBeUI7UUFDeEgsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEUsT0FBTyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNGO0FBRUQsTUFBTSxjQUFjO0lBQ2xCLFlBQ3FCLE1BQW1CLEVBQ25CLE9BQXlCO1FBRHpCLFdBQU0sR0FBTixNQUFNLENBQWE7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7SUFDMUMsQ0FBQztJQUVMLGFBQWEsQ0FBQyxHQUEwQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQ2hDLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRTtZQUNiLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtTQUNYLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUE2QjtRQUM3QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUMxQixNQUF3QixFQUN4QixVQUE0QixNQUFNLENBQUMsZ0JBQWdCLENBQUM7SUFFcEQsT0FBTyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQThCLE1BQXdCO0lBQ25GLE9BQU8sWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBsYWluVG9JbnN0YW5jZVdpdGhWYWxpZCB9IGZyb20gJ0BueC1kZGQvY29yZSc7XG5pbXBvcnQgeyBGaXJlc3RvcmVBZGFwdGVyIH0gZnJvbSAnLi4vYWRhcHRlcnMvYmFzZSc7XG5pbXBvcnQgeyBEb2N1bWVudFNuYXBzaG90IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpcmVzdG9yZUNvbnZlcnRlcjxFIGV4dGVuZHMge2lkOiBzdHJpbmd9PiB7XG4gIGZyb21GaXJlc3RvcmUoZG9jOiBEb2N1bWVudFNuYXBzaG90PG9iamVjdD4pOiBFO1xuICBmcm9tRmlyZXN0b3JlTWFueShkb2NzOiBEb2N1bWVudFNuYXBzaG90PG9iamVjdD5bXSk6IEVbXTtcbiAgdG9GaXJlc3RvcmUoZW50aXR5OiBQYXJ0aWFsPEU+KTogb2JqZWN0O1xuICBmcm9tT2JqZWN0PyhvYmo6IG9iamVjdCk6IEU7XG4gIHRvT2JqZWN0PyhlbnRpdHk6IEUpOiBvYmplY3Q7XG59XG5cbmNsYXNzIEZpcmVzdG9yZUhlbHBlciB7XG4gIHN0YXRpYyBmcm9tRmlyZXN0b3JlPEUgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+KGRvYzogRG9jdW1lbnRTbmFwc2hvdDxvYmplY3Q+LCBFbnRpdHk6IG5ldyAoKSA9PiBFLCBhZGFwdGVyOiBGaXJlc3RvcmVBZGFwdGVyKTogRSB7XG4gICAgY29uc3QgZGF0YSA9IGFkYXB0ZXIuZnJvbUZpcmVzdG9yZSh7Li4uZG9jLmRhdGEoKSwgaWQ6IGRvYy5pZH0sIEVudGl0eSk7XG4gICAgcmV0dXJuIHBsYWluVG9JbnN0YW5jZVdpdGhWYWxpZChFbnRpdHksIGRhdGEpO1xuICB9XG59XG5cbmNsYXNzIEJhc2ljQ29udmVydGVyPEUgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IEVudGl0eTogbmV3ICgpID0+IEUsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFkYXB0ZXI6IEZpcmVzdG9yZUFkYXB0ZXIsXG4gICkgeyB9XG5cbiAgZnJvbUZpcmVzdG9yZShkb2M6IERvY3VtZW50U25hcHNob3Q8YW55Pik6IEUge1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZnJvbUZpcmVzdG9yZSh7XG4gICAgICAuLi5kb2MuZGF0YSgpLFxuICAgICAgaWQ6IGRvYy5pZFxuICAgIH0sIHRoaXMuRW50aXR5KTtcbiAgfVxuXG4gIGZyb21GaXJlc3RvcmVNYW55KGRvY3M6IERvY3VtZW50U25hcHNob3Q8YW55PltdKTogRVtdIHtcbiAgICByZXR1cm4gZG9jcy5tYXAoZG9jID0+IHRoaXMuZnJvbUZpcmVzdG9yZShkb2MpKTtcbiAgfVxuXG4gIHRvRmlyZXN0b3JlKGVudGl0eTogRSk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci50b0ZpcmVzdG9yZShlbnRpdHksIHRoaXMuRW50aXR5KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udmVydGVyPEVudGl0eSBleHRlbmRzIHtpZDogc3RyaW5nfT4oXG4gIEVudGl0eTogbmV3ICgpID0+IEVudGl0eSxcbiAgYWRhcHRlcjogRmlyZXN0b3JlQWRhcHRlciA9IGluamVjdChGaXJlc3RvcmVBZGFwdGVyKSxcbik6IElGaXJlc3RvcmVDb252ZXJ0ZXI8RW50aXR5PiB7XG4gIHJldHVybiBuZXcgQmFzaWNDb252ZXJ0ZXIoRW50aXR5LCBhZGFwdGVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdENvbnZlcnRlcjxFbnRpdHkgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+KEVudGl0eTogbmV3ICgpID0+IEVudGl0eSk6IElGaXJlc3RvcmVDb252ZXJ0ZXI8RW50aXR5PiB7XG4gIHJldHVybiBnZXRDb252ZXJ0ZXIoRW50aXR5LCBpbmplY3QoRmlyZXN0b3JlQWRhcHRlcikpO1xufVxuIl19","export class FirestoreDAO {\n constructor(adapter, pathBuilder) {\n this.adapter = adapter;\n this.pathBuilder = pathBuilder;\n }\n collection(paramMap) {\n const path = this.pathBuilder.collection(paramMap);\n return this.adapter.collection(path);\n }\n collectionGroup() {\n const path = this.pathBuilder.collectionGroup();\n return this.adapter.collectionGroup(path);\n }\n doc(paramMap) {\n const path = this.pathBuilder.doc(paramMap);\n return this.adapter.doc(path);\n }\n getCollection(paramMap) {\n return paramMap ? this.collection(paramMap) : this.collectionGroup();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLmRhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvZGFvL2ZpcmVzdG9yZS5kYW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxPQUFPLFlBQVk7SUFLdkIsWUFDWSxPQUF5QixFQUN6QixXQUF5QztRQUR6QyxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBOEI7SUFDakQsQ0FBQztJQUVMLFVBQVUsQ0FBQyxRQUEwQjtRQUNuQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNsRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFnQixJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELEdBQUcsQ0FBQyxRQUF3QztRQUMxQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFnQixJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQTBCO1FBQ3RDLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdkUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7IEZpcmVzdG9yZUFkYXB0ZXIgfSBmcm9tICcuLi9hZGFwdGVycy9iYXNlJztcbmltcG9ydCB7IENvbGxlY3Rpb25SZWZlcmVuY2UsIENvbGxlY3Rpb25Hcm91cCwgRG9jdW1lbnRSZWZlcmVuY2UsIFRvRmlyZXN0b3JlRGF0YSwgQ29sbGVjdGlvbkxpa2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEZpcmVzdG9yZVBhdGhCdWlsZGVyIH0gZnJvbSAnLi4vcGF0aC1idWlsZGVyJztcblxuXG5leHBvcnQgY2xhc3MgRmlyZXN0b3JlREFPPFxuICBFbnRpdHkgZXh0ZW5kcyB7aWQ6IHN0cmluZ30sIFxuICBGaXJlc3RvcmVEYXRhID0gVG9GaXJlc3RvcmVEYXRhPEVudGl0eSwgZGF5anMuRGF5anM+LFxuPiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGFkYXB0ZXI6IEZpcmVzdG9yZUFkYXB0ZXIsXG4gICAgcHJvdGVjdGVkIHBhdGhCdWlsZGVyOiBGaXJlc3RvcmVQYXRoQnVpbGRlcjxFbnRpdHk+LFxuICApIHsgfVxuXG4gIGNvbGxlY3Rpb24ocGFyYW1NYXA/OiBQYXJ0aWFsPEVudGl0eT4pOiBDb2xsZWN0aW9uUmVmZXJlbmNlPEZpcmVzdG9yZURhdGE+IHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5wYXRoQnVpbGRlci5jb2xsZWN0aW9uKHBhcmFtTWFwKVxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuY29sbGVjdGlvbjxGaXJlc3RvcmVEYXRhPihwYXRoKTtcbiAgfVxuXG4gIGNvbGxlY3Rpb25Hcm91cCgpOkNvbGxlY3Rpb25Hcm91cDxGaXJlc3RvcmVEYXRhPiB7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMucGF0aEJ1aWxkZXIuY29sbGVjdGlvbkdyb3VwKCk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5jb2xsZWN0aW9uR3JvdXA8RmlyZXN0b3JlRGF0YT4ocGF0aCk7XG4gIH1cblxuICBkb2MocGFyYW1NYXA6IFBhcnRpYWw8RW50aXR5PiAmIHtpZDogc3RyaW5nfSk6IERvY3VtZW50UmVmZXJlbmNlPEZpcmVzdG9yZURhdGE+IHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5wYXRoQnVpbGRlci5kb2MocGFyYW1NYXApO1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZG9jPEZpcmVzdG9yZURhdGE+KHBhdGgpO1xuICB9XG5cbiAgZ2V0Q29sbGVjdGlvbihwYXJhbU1hcD86IFBhcnRpYWw8RW50aXR5Pik6IENvbGxlY3Rpb25MaWtlIHtcbiAgICByZXR1cm4gcGFyYW1NYXAgPyB0aGlzLmNvbGxlY3Rpb24ocGFyYW1NYXApIDogdGhpcy5jb2xsZWN0aW9uR3JvdXAoKTtcbiAgfVxufVxuIl19","export class FirestorePathBuilder {\n doc(param) {\n return resolvePaths(param, this.paths);\n }\n collection(param = {}) {\n return resolvePaths(param, this.paths.slice(0, -1));\n }\n collectionGroup() {\n return this.paths[this.paths.length - 2];\n }\n constructor(paths) {\n this.paths = paths;\n }\n}\nexport function pathBuilderFactory(path) {\n const paths = parsePath(path);\n return new FirestorePathBuilder(paths);\n}\nexport function parsePath(path) {\n const paths = path.split('/').filter(p => p.length);\n if (!paths[paths.length - 1].startsWith(':'))\n paths.push(':id');\n return paths;\n}\nexport const resolvePaths = (obj, paths) => {\n return paths.map((path) => path.startsWith(':') ? resolvePath(obj, path.slice(1)) : path).join('/');\n};\nconst resolvePath = (obj, key) => {\n if (!obj?.[key])\n throw new Error(`Invalid key is detected in resolving paths, key: \\`${key}\\`, obj: \\`${JSON.stringify(obj)}\\``);\n return obj?.[key];\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9maXJlc3RvcmUvc3JjL2xpYi9wYXRoLWJ1aWxkZXIvcGF0aC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE1BQU0sT0FBTyxvQkFBb0I7SUFJL0IsR0FBRyxDQUFDLEtBQTBCO1FBQzVCLE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUE4QyxFQUFFO1FBQ3pELE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFvQixLQUFlO1FBQWYsVUFBSyxHQUFMLEtBQUssQ0FBVTtJQUFJLENBQUM7Q0FDekM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBSWhDLElBQVU7SUFFVixNQUFNLEtBQUssR0FBRyxTQUFTLENBQU8sSUFBSSxDQUFDLENBQUM7SUFDcEMsT0FBTyxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUErQixJQUFVO0lBQ2hFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBZSxFQUFVLEVBQUU7SUFDbkUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3RHLENBQUMsQ0FBQTtBQUVELE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBVyxFQUFFLEdBQVcsRUFBRSxFQUFFO0lBQy9DLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxHQUFHLGNBQWMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakksT0FBTyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIENvbGxlY3Rpb25QYXJhbU1hcDxFbnRpdHkgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+ID0gUGFydGlhbDxFbnRpdHk+O1xudHlwZSBEb2NQYXJhbU1hcDxFbnRpdHkgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+ID0gQ29sbGVjdGlvblBhcmFtTWFwPEVudGl0eT4gJiBQaWNrPEVudGl0eSwgJ2lkJz47XG5cbmV4cG9ydCB0eXBlIEV4dHJhY3RQYXJhbXM8VCBleHRlbmRzIHN0cmluZz4gPSBcbiAgVCBleHRlbmRzIGAke2luZmVyIF9TdGFydH06JHtpbmZlciBQYXJhbX0vJHtpbmZlciBSZXN0fWBcbiAgICA/IHsgW0sgaW4gUGFyYW0gfCBrZXlvZiBFeHRyYWN0UGFyYW1zPFJlc3Q+XTogc3RyaW5nIH1cbiAgICA6IFQgZXh0ZW5kcyBgJHtpbmZlciBfU3RhcnR9OiR7aW5mZXIgUGFyYW19YFxuICAgID8geyBbSyBpbiBQYXJhbV06IHN0cmluZyB9XG4gICAgOiB7fTtcblxudHlwZSBQYXJhbXMgPSBFeHRyYWN0UGFyYW1zPCd1c2Vycy86dXNlcklkL2ltYWdlcy86aWQnPjtcblxuZXhwb3J0IHR5cGUgQ29sUGFyYW08VCBleHRlbmRzIHtyZWFkb25seSBjb2xsZWN0aW9uUGF0aDogc3RyaW5nfT4gPSBPbWl0PEV4dHJhY3RQYXJhbXM8VFsnY29sbGVjdGlvblBhdGgnXT4sICdpZCc+O1xuZXhwb3J0IHR5cGUgRG9jUGFyYW08VCBleHRlbmRzIHtyZWFkb25seSBjb2xsZWN0aW9uUGF0aDogc3RyaW5nfT4gPSBDb2xQYXJhbTxUPiAmIHtpZDogc3RyaW5nfTsgXG5cbmV4cG9ydCBjbGFzcyBGaXJlc3RvcmVQYXRoQnVpbGRlcjxcbiAgRW50aXR5IGV4dGVuZHMgeyBpZDogc3RyaW5nIH0sXG4gIFBhdGggZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4+IHtcbiAgZG9jKHBhcmFtOiBEb2NQYXJhbU1hcDxFbnRpdHk+KSB7XG4gICAgcmV0dXJuIHJlc29sdmVQYXRocyhwYXJhbSwgdGhpcy5wYXRocyk7XG4gIH1cblxuICBjb2xsZWN0aW9uKHBhcmFtOiBPbWl0PEV4dHJhY3RQYXJhbXM8UGF0aD4sICdpZCc+IHwge30gPSB7fSkge1xuICAgIHJldHVybiByZXNvbHZlUGF0aHMocGFyYW0sIHRoaXMucGF0aHMuc2xpY2UoMCwgLTEpKTtcbiAgfVxuXG4gIGNvbGxlY3Rpb25Hcm91cCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXRoc1t0aGlzLnBhdGhzLmxlbmd0aC0yXTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGF0aHM6IHN0cmluZ1tdKSB7IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhCdWlsZGVyRmFjdG9yeTxcbiAgRSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9LFxuICBQYXRoIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nXG4+KFxuICBwYXRoOiBQYXRoXG4pOiBGaXJlc3RvcmVQYXRoQnVpbGRlcjxFLCBQYXRoPiB7XG4gIGNvbnN0IHBhdGhzID0gcGFyc2VQYXRoPFBhdGg+KHBhdGgpO1xuICByZXR1cm4gbmV3IEZpcmVzdG9yZVBhdGhCdWlsZGVyKHBhdGhzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGF0aDxQYXRoIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPihwYXRoOiBQYXRoKTogc3RyaW5nW10ge1xuICBjb25zdCBwYXRocyA9IHBhdGguc3BsaXQoJy8nKS5maWx0ZXIocCA9PiBwLmxlbmd0aCk7XG4gIGlmICghcGF0aHNbcGF0aHMubGVuZ3RoLTFdLnN0YXJ0c1dpdGgoJzonKSkgcGF0aHMucHVzaCgnOmlkJyk7XG4gIHJldHVybiBwYXRocztcbn1cblxuZXhwb3J0IGNvbnN0IHJlc29sdmVQYXRocyA9IChvYmo6IG9iamVjdCwgcGF0aHM6IHN0cmluZ1tdKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIHBhdGhzLm1hcCgocGF0aCkgPT4gcGF0aC5zdGFydHNXaXRoKCc6JykgPyByZXNvbHZlUGF0aChvYmosIHBhdGguc2xpY2UoMSkpIDogcGF0aCkuam9pbignLycpO1xufVxuXG5jb25zdCByZXNvbHZlUGF0aCA9IChvYmo6IG9iamVjdCwga2V5OiBzdHJpbmcpID0+IHtcbiAgaWYgKCFvYmo/LltrZXldKSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQga2V5IGlzIGRldGVjdGVkIGluIHJlc29sdmluZyBwYXRocywga2V5OiBcXGAke2tleX1cXGAsIG9iajogXFxgJHtKU09OLnN0cmluZ2lmeShvYmopfVxcYGApO1xuICByZXR1cm4gb2JqPy5ba2V5XTtcbn1cbiJdfQ==","import dayjs from 'dayjs';\nimport { ReplaySubject, lastValueFrom, of, throwError } from 'rxjs';\nimport { catchError, distinctUntilChanged, map, shareReplay, switchMap, take, tap } from 'rxjs/operators';\nimport { FirestoreDAO } from '../dao';\nexport class FirestoreQuery extends FirestoreDAO {\n constructor(adapter, converter, pathBuilder) {\n super(adapter, pathBuilder);\n this.converter = converter;\n this.pathBuilder = pathBuilder;\n this.collection$ = new ReplaySubject(1);\n this.list$ = this.collection$.pipe(switchMap((collection) => this.listChangesByCollectionRef(collection).pipe(catchError(error => throwError(() => error)))), shareReplay(1));\n this.switchCollectionRef();\n }\n /** @deprecated */\n listChanges(paramMap, options = { switch: true }) {\n return of(paramMap).pipe(tap((paramMap) => options?.switch && this.switchCollectionRef(paramMap)), switchMap(() => this.list$));\n }\n listChangesV2(paramMap) {\n return of(paramMap).pipe(tap((paramMap) => paramMap && this.switchCollectionRef(paramMap)), switchMap(() => this.list$));\n }\n listChangesAfter(updatedAt, { limit } = {}) {\n const entitiesMap = new Map();\n const _updatedAt = dayjs.isDayjs(updatedAt) ? this.adapter.convertDateToTimestamp(updatedAt) : updatedAt;\n return this.adapter.query(this.collection(), ...[\n this.adapter.where('updatedAt', '>', _updatedAt),\n this.adapter.orderBy('updatedAt', 'asc'),\n limit ? this.adapter.limit(limit) : undefined,\n ].filter(Boolean)).stateChanges().pipe(\n // bufferTime(1_000),\n // map(zippedActions => zippedActions.flat()),\n tap(actions => actions.forEach(({ type, payload: { doc } }) => {\n if (new Set(['added', 'modified']).has(type)) {\n entitiesMap.set(doc.id, this.converter.fromFirestore(doc));\n }\n else if (type === 'removed') {\n entitiesMap.delete(doc.id);\n }\n })), map(() => [...entitiesMap.values()]));\n }\n changes({ id }) {\n if (!id)\n throw new Error(`Invalid Id. it must be Truthy`);\n return this.list$.pipe(map(entities => entities.find(entity => entity.id === id)), distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)));\n }\n changesV2(params) {\n const docRef = this.doc(params);\n return docRef.stateChanges().pipe(map((doc) => this.converter.fromFirestore(doc)));\n }\n get({ id }) {\n return lastValueFrom(this.list$.pipe(take(1), map(entities => entities.find(entity => entity.id === id))));\n }\n list(paramMap) {\n this.switchCollectionRef(paramMap);\n return lastValueFrom(this.list$.pipe(take(1)));\n }\n listChangesByCollectionRef(collection) {\n const entitiesMap = new Map();\n return collection.stateChanges().pipe(tap(actions => actions.forEach(({ type, payload: { doc } }) => {\n if (new Set(['added', 'modified']).has(type)) {\n entitiesMap.set(doc.id, this.converter.fromFirestore(doc));\n }\n else if (type === 'removed') {\n entitiesMap.delete(doc.id);\n }\n })), map(() => [...entitiesMap.values()]));\n }\n switchCollectionRef(paramMap) {\n const collection = this.getCollection(paramMap);\n this.switchCollection(collection);\n }\n switchCollection(collection) {\n this.collection$.next(collection);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLnF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9maXJlc3RvcmUvc3JjL2xpYi9xdWVyeS9maXJlc3RvcmUucXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBYyxhQUFhLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUl0QyxNQUFNLE9BQU8sY0FHWCxTQUFRLFlBQW1DO0lBQzNDLFlBQ0UsT0FBeUIsRUFDZixTQUFzQyxFQUN0QyxXQUF5QztRQUVuRCxLQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBSGxCLGNBQVMsR0FBVCxTQUFTLENBQTZCO1FBQ3RDLGdCQUFXLEdBQVgsV0FBVyxDQUE4QjtRQU1sQyxnQkFBVyxHQUFHLElBQUksYUFBYSxDQUFnQyxDQUFDLENBQUMsQ0FBQztRQUNsRSxVQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzlDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDeEUsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzdDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQTtRQVRDLElBQUksQ0FBQyxtQkFB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SUFBSSxHQUFHLEVBQWUsQ0FBQztRQUMzQyxPQUFPLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQ25DLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBQyxHQUFHLEVBQUMsRUFBQyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUUsR0FBVyxDQUFDLENBQUMsQ0FBQztZQUN0RSxDQUFDO2lCQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM5QixXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUMsRUFDSCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQ3JDLENBQUM7SUFDSixDQUFDO0lBRVMsbUJBQW1CLENBQUMsUUFBMEI7UUFDdEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQStCO1FBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBsYXN0VmFsdWVGcm9tLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmlyZXN0b3JlQWRhcHRlciB9IGZyb20gJy4uL2FkYXB0ZXJzL2Jhc2UnO1xuaW1wb3J0IHsgSUZpcmVzdG9yZUNvbnZlcnRlciB9IGZyb20gJy4uL2NvbnZlcnRlcic7XG5pbXBvcnQgeyBGaXJlc3RvcmVEQU8gfSBmcm9tICcuLi9kYW8nO1xuaW1wb3J0IHsgRmlyZXN0b3JlUGF0aEJ1aWxkZXIgfSBmcm9tICcuLi9wYXRoLWJ1aWxkZXInO1xuaW1wb3J0IHsgRG9jdW1lbnRTbmFwc2hvdCwgQ29sbGVjdGlvblJlZmVyZW5jZSwgIENvbGxlY3Rpb25Hcm91cCwgVG9GaXJlc3RvcmVEYXRhLCBDb2xsZWN0aW9uTGlrZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgY2xhc3MgRmlyZXN0b3JlUXVlcnk8XG4gIEVudGl0eSBleHRlbmRzIHtpZDogc3RyaW5nfSA9IGFueSwgXG4gIEZpcmVzdG9yZURhdGEgPSBUb0ZpcmVzdG9yZURhdGE8RW50aXR5LCBkYXlqcy5EYXlqcz4sXG4+IGV4dGVuZHMgRmlyZXN0b3JlREFPPEVudGl0eSwgRmlyZXN0b3JlRGF0YT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBhZGFwdGVyOiBGaXJlc3RvcmVBZGFwdGVyLFxuICAgIHByb3RlY3RlZCBjb252ZXJ0ZXI6IElGaXJlc3RvcmVDb252ZXJ0ZXI8RW50aXR5PixcbiAgICBwcm90ZWN0ZWQgcGF0aEJ1aWxkZXI6IEZpcmVzdG9yZVBhdGhCdWlsZGVyPEVudGl0eT5cbiAgKSB7XG4gICAgc3VwZXIoYWRhcHRlciwgcGF0aEJ1aWxkZXIpO1xuICAgIHRoaXMuc3dpdGNoQ29sbGVjdGlvblJlZigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbGxlY3Rpb24kID0gbmV3IFJlcGxheVN1YmplY3Q8Q29sbGVjdGlvbkxpa2U8RmlyZXN0b3JlRGF0YT4+KDEpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGlzdCQgPSB0aGlzLmNvbGxlY3Rpb24kLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb2xsZWN0aW9uKSA9PiB0aGlzLmxpc3RDaGFuZ2VzQnlDb2xsZWN0aW9uUmVmKGNvbGxlY3Rpb24pLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHRocm93RXJyb3IoKCkgPT4gZXJyb3IpKSxcbiAgICApKSxcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgKVxuXG4gIC8qKiBAZGVwcmVjYXRlZCAqL1xuICBsaXN0Q2hhbmdlcyhwYXJhbU1hcD86IFBhcnRpYWw8RW50aXR5Piwgb3B0aW9uczoge3N3aXRjaD86IGJvb2xlYW59ID0ge3N3aXRjaDogdHJ1ZX0pOiBPYnNlcnZhYmxlPEVudGl0eVtdPiB7XG4gICAgcmV0dXJuIG9mKHBhcmFtTWFwKS5waXBlKFxuICAgICAgdGFwKChwYXJhbU1hcCkgPT4gb3B0aW9ucz8uc3dpdGNoICYmIHRoaXMuc3dpdGNoQ29sbGVjdGlvblJlZihwYXJhbU1hcCkpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubGlzdCQpLFxuICAgICk7XG4gIH1cblxuICBsaXN0Q2hhbmdlc1YyKHBhcmFtTWFwPzogUGFydGlhbDxFbnRpdHk+KTogT2JzZXJ2YWJsZTxFbnRpdHlbXT4ge1xuICAgIHJldHVybiBvZihwYXJhbU1hcCkucGlwZShcbiAgICAgIHRhcCgocGFyYW1NYXApID0+IHBhcmFtTWFwICYmIHRoaXMuc3dpdGNoQ29sbGVjdGlvblJlZihwYXJhbU1hcCkpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubGlzdCQpLFxuICAgICk7XG4gIH1cblxuICBsaXN0Q2hhbmdlc0FmdGVyKHVwZGF0ZWRBdDogZGF5anMuRGF5anMsIHtsaW1pdH06IHtsaW1pdD86IG51bWJlcn0gPSB7fSkge1xuICAgIGNvbnN0IGVudGl0aWVzTWFwID0gbmV3IE1hcDxzdHJpbmcsIEVudGl0eT4oKTtcbiAgICBjb25zdCBfdXBkYXRlZEF0ID0gZGF5anMuaXNEYXlqcyh1cGRhdGVkQXQpID8gdGhpcy5hZGFwdGVyLmNvbnZlcnREYXRlVG9UaW1lc3RhbXAodXBkYXRlZEF0KSA6IHVwZGF0ZWRBdFxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucXVlcnkoXG4gICAgICB0aGlzLmNvbGxlY3Rpb24oKSxcbiAgICAgIC4uLltcbiAgICAgICAgdGhpcy5hZGFwdGVyLndoZXJlKCd1cGRhdGVkQXQnLCAnPicsIF91cGRhdGVkQXQpLFxuICAgICAgICB0aGlzLmFkYXB0ZXIub3JkZXJCeSgndXBkYXRlZEF0JywgJ2FzYycpLFxuICAgICAgICBsaW1pdCA/IHRoaXMuYWRhcHRlci5saW1pdChsaW1pdCkgOiB1bmRlZmluZWQsXG4gICAgICBdLmZpbHRlcihCb29sZWFuKSxcbiAgICApLnN0YXRlQ2hhbmdlcygpLnBpcGUoXG4gICAgICAvLyBidWZmZXJUaW1lKDFfMDAwKSxcbiAgICAgIC8vIG1hcCh6aXBwZWRBY3Rpb25zID0+IHppcHBlZEFjdGlvbnMuZmxhdCgpKSxcbiAgICAgIHRhcChhY3Rpb25zID0+IGFjdGlvbnMuZm9yRWFjaCgoe3R5cGUsIHBheWxvYWQ6IHtkb2N9fSkgPT4ge1xuICAgICAgICBpZiAobmV3IFNldChbJ2FkZGVkJywgJ21vZGlmaWVkJ10pLmhhcyh0eXBlKSkge1xuICAgICAgICAgIGVudGl0aWVzTWFwLnNldChkb2MuaWQsIHRoaXMuY29udmVydGVyLmZyb21GaXJlc3RvcmUoZG9jIGFzIERvY3VtZW50U25hcHNob3Q8YW55PikpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdyZW1vdmVkJykge1xuICAgICAgICAgIGVudGl0aWVzTWFwLmRlbGV0ZShkb2MuaWQpO1xuICAgICAgICB9XG4gICAgICB9KSksXG4gICAgICBtYXAoKCkgPT4gWy4uLmVudGl0aWVzTWFwLnZhbHVlcygpXSksXG4gICAgKTtcbiAgfVxuXG4gIGNoYW5nZXMoe2lkfTogUGFydGlhbDxFbnRpdHk+KSB7XG4gICAgaWYgKCFpZCkgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIElkLiBpdCBtdXN0IGJlIFRydXRoeWApO1xuICAgIHJldHVybiB0aGlzLmxpc3QkLnBpcGUoXG4gICAgICBtYXAoZW50aXRpZXMgPT4gZW50aXRpZXMuZmluZChlbnRpdHkgPT4gZW50aXR5LmlkID09PSBpZCkpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZSwgY3VyKSA9PiBKU09OLnN0cmluZ2lmeShwcmUpID09PSBKU09OLnN0cmluZ2lmeShjdXIpKSxcbiAgICApO1xuICB9XG5cbiAgY2hhbmdlc1YyKHBhcmFtczogUGFydGlhbDxFbnRpdHk+KTogT2JzZXJ2YWJsZTxFbnRpdHk+IHtcbiAgICBjb25zdCBkb2NSZWYgPSB0aGlzLmRvYyhwYXJhbXMgYXMgYW55KTtcbiAgICByZXR1cm4gZG9jUmVmLnN0YXRlQ2hhbmdlcygpLnBpcGUoXG4gICAgICBtYXAoKGRvYykgPT4gdGhpcy5jb252ZXJ0ZXIuZnJvbUZpcmVzdG9yZSgoZG9jIGFzIGFueSkpKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0KHtpZH06IFBhcnRpYWw8RW50aXR5PiAmIHtpZDogc3RyaW5nfSkge1xuICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKHRoaXMubGlzdCQucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICBtYXAoZW50aXRpZXMgPT4gZW50aXRpZXMuZmluZChlbnRpdHkgPT4gZW50aXR5LmlkID09PSBpZCkpLFxuICAgICkpO1xuICB9XG5cbiAgbGlzdChwYXJhbU1hcD86IFBhcnRpYWw8RW50aXR5Pikge1xuICAgIHRoaXMuc3dpdGNoQ29sbGVjdGlvblJlZihwYXJhbU1hcCk7XG4gICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20odGhpcy5saXN0JC5waXBlKHRha2UoMSkpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsaXN0Q2hhbmdlc0J5Q29sbGVjdGlvblJlZihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uUmVmZXJlbmNlPEZpcmVzdG9yZURhdGE+IHwgQ29sbGVjdGlvbkdyb3VwPEZpcmVzdG9yZURhdGE+XG4gICk6IE9ic2VydmFibGU8RW50aXR5W10+IHtcbiAgICBjb25zdCBlbnRpdGllc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb24uc3RhdGVDaGFuZ2VzKCkucGlwZShcbiAgICAgIHRhcChhY3Rpb25zID0+IGFjdGlvbnMuZm9yRWFjaCgoe3R5cGUsIHBheWxvYWQ6IHtkb2N9fSkgPT4ge1xuICAgICAgICBpZiAobmV3IFNldChbJ2FkZGVkJywgJ21vZGlmaWVkJ10pLmhhcyh0eXBlKSkge1xuICAgICAgICAgIGVudGl0aWVzTWFwLnNldChkb2MuaWQsIHRoaXMuY29udmVydGVyLmZyb21GaXJlc3RvcmUoKGRvYyBhcyBhbnkpKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3JlbW92ZWQnKSB7XG4gICAgICAgICAgZW50aXRpZXNNYXAuZGVsZXRlKGRvYy5pZCk7XG4gICAgICAgIH1cbiAgICAgIH0pKSxcbiAgICAgIG1hcCgoKSA9PiBbLi4uZW50aXRpZXNNYXAudmFsdWVzKCldKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN3aXRjaENvbGxlY3Rpb25SZWYocGFyYW1NYXA/OiBQYXJ0aWFsPEVudGl0eT4pIHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5nZXRDb2xsZWN0aW9uKHBhcmFtTWFwKTtcbiAgICB0aGlzLnN3aXRjaENvbGxlY3Rpb24oY29sbGVjdGlvbik7XG4gIH1cblxuICBzd2l0Y2hDb2xsZWN0aW9uKGNvbGxlY3Rpb246IENvbGxlY3Rpb25MaWtlPGFueT4pIHtcbiAgICB0aGlzLmNvbGxlY3Rpb24kLm5leHQoY29sbGVjdGlvbik7XG4gIH1cbn1cbiJdfQ==","import { inject, Injectable } from '@angular/core';\nimport { FirestoreAdapter } from '../../adapters';\nimport { getConverter } from '../../converter';\nimport { FirestoreDAO } from '../../dao';\nimport { getCollection } from '../../decorators';\nimport { pathBuilderFactory } from '../../path-builder';\nimport { catchError, lastValueFrom, map, NEVER, of, switchMap, take, tap } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class BaseFirestoreQuery {\n count(paramMap) {\n return this.dao.getCollection(paramMap).count();\n }\n changes(params) {\n const docRef = this.dao.doc(params);\n return docRef.stateChanges().pipe(map((doc) => this.converter.fromFirestore(doc)));\n }\n get(paramMap) {\n return lastValueFrom(this.changes(paramMap).pipe(take(1)));\n }\n list(paramMap) {\n return lastValueFrom(this.listChanges(paramMap).pipe(take(1)));\n }\n listChanges(paramMap) {\n return of(paramMap).pipe(map((paramMap) => this.dao.getCollection(paramMap)), switchMap((collection) => {\n return this.getListChanges$ByCollectionLike(collection);\n }));\n }\n getChanges$ByDocument(doc) {\n return doc.stateChanges().pipe(map((doc) => this.converter.fromFirestore(doc)), catchError((error) => {\n console.error(error);\n return NEVER;\n }));\n }\n getListChanges$ByCollectionLike(collection) {\n const entitiesMap = new Map();\n return collection.stateChanges().pipe(tap(actions => actions.forEach(({ type, payload: { doc } }) => {\n if (new Set(['added', 'modified']).has(type)) {\n entitiesMap.set(doc.id, this.converter.fromFirestore(doc));\n }\n else if (type === 'removed') {\n entitiesMap.delete(doc.id);\n }\n })), map(() => [...entitiesMap.values()]), catchError((error) => {\n console.error(error);\n return NEVER;\n }));\n }\n}\nexport class FirestoreQuery extends BaseFirestoreQuery {\n constructor() {\n super(...arguments);\n this.adapter = inject(FirestoreAdapter);\n }\n get pathBuilder() {\n return pathBuilderFactory(this.collectionPath);\n }\n get dao() {\n return new FirestoreDAO(this.adapter, this.pathBuilder);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirestoreQuery, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirestoreQuery }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirestoreQuery, decorators: [{\n type: Injectable\n }] });\nexport function getFirestoreQuery(entity, adapter = inject(FirestoreAdapter)) {\n class FirestoreQuery extends BaseFirestoreQuery {\n constructor(converter, collectionPath, pathBuilder, adapter, dao) {\n super();\n this.converter = converter;\n this.collectionPath = collectionPath;\n this.pathBuilder = pathBuilder;\n this.adapter = adapter;\n this.dao = dao;\n }\n }\n return new FirestoreQuery(getConverter(entity, adapter), getCollection(entity), pathBuilderFactory(getCollection(entity)), adapter, new FirestoreDAO(adapter, pathBuilderFactory(getCollection(entity))));\n}\nexport function injectFirestoreQuery(entity) {\n return getFirestoreQuery(entity, inject(FirestoreAdapter));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2ZpcmVzdG9yZS9zcmMvbGliL3F1ZXJ5L3YyL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsT0FBTyxFQUF1QyxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUtuRyxNQUFNLE9BQWdCLGtCQUFrQjtJQU90QyxLQUFLLENBQUMsUUFBeUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxRQUFlLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQXNCO1FBQzVCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQWEsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDL0IsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBRSxHQUFXLENBQUMsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FB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LFdBQVcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7OEdBWG1CLGNBQWM7a0hBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEbkMsVUFBVTs7QUFnQlgsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixNQUF5QixFQUN6QixVQUE0QixNQUFNLENBQUMsZ0JBQWdCLENBQUM7SUFHcEQsTUFBTSxjQUFlLFNBQVEsa0JBQTBCO1FBQ3JELFlBQ3FCLFNBQXNDLEVBQ3pDLGNBQXNCLEVBQy9CLFdBQThDLEVBQ2xDLE9BQXlCLEVBQ3pCLEdBQXlCO1lBQzFDLEtBQUssRUFBRSxDQUFDO1lBTFMsY0FBUyxHQUFULFNBQVMsQ0FBNkI7WUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQVE7WUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW1DO1lBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQWtCO1lBQ3pCLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBQ2pDLENBQUM7S0FDZjtJQUVELE9BQU8sSUFBSSxjQUFjLENBQ3ZCLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQzdCLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFDckIsa0JBQWtCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQ3pDLE9BQU8sRUFDUCxJQUFJLFlBQVksQ0FBUyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FDN0UsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQThCLE1BQXlCO0lBQ3pGLE9BQU8saUJBQWlCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlyZXN0b3JlQWRhcHRlciB9IGZyb20gJy4uLy4uL2FkYXB0ZXJzJztcbmltcG9ydCB7IGdldENvbnZlcnRlciwgSUZpcmVzdG9yZUNvbnZlcnRlciB9IGZyb20gJy4uLy4uL2NvbnZlcnRlcic7XG5pbXBvcnQgeyBGaXJlc3RvcmVEQU8gfSBmcm9tICcuLi8uLi9kYW8nO1xuaW1wb3J0IHsgZ2V0Q29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkxpa2UsIERvY3VtZW50UmVmZXJlbmNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFeHRyYWN0UGFyYW1zLCBGaXJlc3RvcmVQYXRoQnVpbGRlciwgcGF0aEJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vcGF0aC1idWlsZGVyJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGxhc3RWYWx1ZUZyb20sIG1hcCwgTkVWRVIsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG50eXBlIENvbFBhcmFtPFQgZXh0ZW5kcyBCYXNlRmlyZXN0b3JlUXVlcnk8YW55Pj4gPSBPbWl0PEV4dHJhY3RQYXJhbXM8VFsnY29sbGVjdGlvblBhdGgnXT4sICdpZCc+O1xudHlwZSBEb2NQYXJhbTxUIGV4dGVuZHMgQmFzZUZpcmVzdG9yZVF1ZXJ5PGFueT4+ID0gQ29sUGFyYW08VD4gJiB7aWQ6IHN0cmluZ307IFxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZpcmVzdG9yZVF1ZXJ5PEVudGl0eSBleHRlbmRzIHtpZDogc3RyaW5nfSA9IGFueT4ge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgYWRhcHRlcjogRmlyZXN0b3JlQWRhcHRlcjtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IGNvbnZlcnRlcjogSUZpcmVzdG9yZUNvbnZlcnRlcjxFbnRpdHk+O1xuICBhYnN0cmFjdCByZWFkb25seSBjb2xsZWN0aW9uUGF0aDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcGF0aEJ1aWxkZXI6IEZpcmVzdG9yZVBhdGhCdWlsZGVyPEVudGl0eSwgdHlwZW9mIHRoaXMuY29sbGVjdGlvblBhdGg+O1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZGFvOiBGaXJlc3RvcmVEQU88RW50aXR5PjtcblxuICBjb3VudChwYXJhbU1hcD86IENvbFBhcmFtPHRoaXM+KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5kYW8uZ2V0Q29sbGVjdGlvbihwYXJhbU1hcCBhcyBhbnkpLmNvdW50KCk7XG4gIH1cblxuICBjaGFuZ2VzKHBhcmFtczogRG9jUGFyYW08dGhpcz4pOiBPYnNlcnZhYmxlPEVudGl0eT4ge1xuICAgIGNvbnN0IGRvY1JlZiA9IHRoaXMuZGFvLmRvYyhwYXJhbXMgYXMgYW55KTtcbiAgICByZXR1cm4gZG9jUmVmLnN0YXRlQ2hhbmdlcygpLnBpcGUoXG4gICAgICBtYXAoKGRvYykgPT4gdGhpcy5jb252ZXJ0ZXIuZnJvbUZpcmVzdG9yZSgoZG9jIGFzIGFueSkpKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0KHBhcmFtTWFwOiBEb2NQYXJhbTx0aGlzPik6IFByb21pc2U8RW50aXR5PiB7XG4gICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20odGhpcy5jaGFuZ2VzKHBhcmFtTWFwKS5waXBlKHRha2UoMSkpKTtcbiAgfVxuXG4gIGxpc3QocGFyYW1NYXA/OiBDb2xQYXJhbTx0aGlzPik6IFByb21pc2U8RW50aXR5W10+IHtcbiAgICByZXR1cm4gbGFzdFZhbHVlRnJvbSh0aGlzLmxpc3RDaGFuZ2VzKHBhcmFtTWFwIGFzIGFueSkucGlwZSh0YWtlKDEpKSk7XG4gIH1cblxuICBsaXN0Q2hhbmdlcyhwYXJhbU1hcD86IENvbFBhcmFtPHRoaXM+KTogT2JzZXJ2YWJsZTxFbnRpdHlbXT4ge1xuICAgIHJldHVybiBvZihwYXJhbU1hcCkucGlwZShcbiAgICAgIG1hcCgocGFyYW1NYXApID0+IHRoaXMuZGFvLmdldENvbGxlY3Rpb24ocGFyYW1NYXAgYXMgYW55KSksXG4gICAgICBzd2l0Y2hNYXAoKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TGlzdENoYW5nZXMkQnlDb2xsZWN0aW9uTGlrZShjb2xsZWN0aW9uKVxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDaGFuZ2VzJEJ5RG9jdW1lbnQoXG4gICAgZG9jOiBEb2N1bWVudFJlZmVyZW5jZVxuICApOiBPYnNlcnZhYmxlPEVudGl0eT4ge1xuICAgIHJldHVybiBkb2Muc3RhdGVDaGFuZ2VzKCkucGlwZShcbiAgICAgIG1hcCgoZG9jKSA9PiB0aGlzLmNvbnZlcnRlci5mcm9tRmlyZXN0b3JlKGRvYykpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHJldHVybiBORVZFUjtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TGlzdENoYW5nZXMkQnlDb2xsZWN0aW9uTGlrZShcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTGlrZVxuICApOiBPYnNlcnZhYmxlPEVudGl0eVtdPiB7XG4gICAgY29uc3QgZW50aXRpZXNNYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuICAgIHJldHVybiBjb2xsZWN0aW9uLnN0YXRlQ2hhbmdlcygpLnBpcGUoXG4gICAgICB0YXAoYWN0aW9ucyA9PiBhY3Rpb25zLmZvckVhY2goKHt0eXBlLCBwYXlsb2FkOiB7ZG9jfX0pID0+IHtcbiAgICAgICAgaWYgKG5ldyBTZXQoWydhZGRlZCcsICdtb2RpZmllZCddKS5oYXModHlwZSkpIHtcbiAgICAgICAgICBlbnRpdGllc01hcC5zZXQoZG9jLmlkLCB0aGlzLmNvbnZlcnRlci5mcm9tRmlyZXN0b3JlKChkb2MgYXMgYW55KSkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdyZW1vdmVkJykge1xuICAgICAgICAgIGVudGl0aWVzTWFwLmRlbGV0ZShkb2MuaWQpO1xuICAgICAgICB9XG4gICAgICB9KSksXG4gICAgICBtYXAoKCkgPT4gWy4uLmVudGl0aWVzTWFwLnZhbHVlcygpXSksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgcmV0dXJuIE5FVkVSO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmlyZXN0b3JlUXVlcnk8RW50aXR5IGV4dGVuZHMge2lkOiBzdHJpbmd9ID0gYW55PiBleHRlbmRzIEJhc2VGaXJlc3RvcmVRdWVyeTxFbnRpdHk+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFkYXB0ZXIgPSBpbmplY3QoRmlyZXN0b3JlQWRhcHRlcik7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGNvbGxlY3Rpb25QYXRoOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBjb252ZXJ0ZXI6IElGaXJlc3RvcmVDb252ZXJ0ZXI8RW50aXR5PjtcblxuICBnZXQgcGF0aEJ1aWxkZXIoKTogRmlyZXN0b3JlUGF0aEJ1aWxkZXI8RW50aXR5LCB0eXBlb2YgdGhpcy5jb2xsZWN0aW9uUGF0aD4ge1xuICAgIHJldHVybiBwYXRoQnVpbGRlckZhY3RvcnkodGhpcy5jb2xsZWN0aW9uUGF0aCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGRhbygpIHtcbiAgICByZXR1cm4gbmV3IEZpcmVzdG9yZURBTzxFbnRpdHk+KHRoaXMuYWRhcHRlciwgdGhpcy5wYXRoQnVpbGRlcik7XG4gIH0gIFxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXJlc3RvcmVRdWVyeTxFbnRpdHkgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+KFxuICBlbnRpdHk6IHsgbmV3KCk6IEVudGl0eSB9LFxuICBhZGFwdGVyOiBGaXJlc3RvcmVBZGFwdGVyID0gaW5qZWN0KEZpcmVzdG9yZUFkYXB0ZXIpLFxuKTogQmFzZUZpcmVzdG9yZVF1ZXJ5PEVudGl0eT4ge1xuXG4gIGNsYXNzIEZpcmVzdG9yZVF1ZXJ5IGV4dGVuZHMgQmFzZUZpcmVzdG9yZVF1ZXJ5PEVudGl0eT4ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnZlcnRlcjogSUZpcmVzdG9yZUNvbnZlcnRlcjxFbnRpdHk+LFxuICAgICAgcHVibGljIHJlYWRvbmx5IGNvbGxlY3Rpb25QYXRoOiBzdHJpbmcsXG4gICAgICBwdWJsaWMgcGF0aEJ1aWxkZXI6IEZpcmVzdG9yZVBhdGhCdWlsZGVyPEVudGl0eSwgYW55PixcbiAgICAgIHByb3RlY3RlZCByZWFkb25seSBhZGFwdGVyOiBGaXJlc3RvcmVBZGFwdGVyLFxuICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhbzogRmlyZXN0b3JlREFPPEVudGl0eT4sXG4gICAgKSB7IHN1cGVyKCk7IH1cbiAgfVxuXG4gIHJldHVybiBuZXcgRmlyZXN0b3JlUXVlcnkoXG4gICAgZ2V0Q29udmVydGVyKGVudGl0eSwgYWRhcHRlciksXG4gICAgZ2V0Q29sbGVjdGlvbihlbnRpdHkpLFxuICAgIHBhdGhCdWlsZGVyRmFjdG9yeShnZXRDb2xsZWN0aW9uKGVudGl0eSkpLFxuICAgIGFkYXB0ZXIsXG4gICAgbmV3IEZpcmVzdG9yZURBTzxFbnRpdHk+KGFkYXB0ZXIsIHBhdGhCdWlsZGVyRmFjdG9yeShnZXRDb2xsZWN0aW9uKGVudGl0eSkpKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEZpcmVzdG9yZVF1ZXJ5PEVudGl0eSBleHRlbmRzIHtpZDogc3RyaW5nfT4oZW50aXR5OiB7IG5ldygpOiBFbnRpdHkgfSk6IEJhc2VGaXJlc3RvcmVRdWVyeTxFbnRpdHk+IHtcbiAgcmV0dXJuIGdldEZpcmVzdG9yZVF1ZXJ5KGVudGl0eSwgaW5qZWN0KEZpcmVzdG9yZUFkYXB0ZXIpKTtcbn1cbiJdfQ==","import { Injectable } from \"@angular/core\";\nimport { FirestoreQuery } from \"./query\";\nimport Dexie, { liveQuery } from 'dexie';\nimport { catchError, combineLatest, distinctUntilChanged, map, NEVER, Observable, of, retry, switchMap, tap, throttleTime } from 'rxjs';\nimport dayjs from \"dayjs\";\nimport * as i0 from \"@angular/core\";\nfunction fromDexie(observable) {\n return new Observable(subscriber => observable.subscribe(subscriber));\n}\nclass DexieAdapter extends Dexie {\n constructor() {\n super('@nx-ddd/firestore/cached-query');\n this.version(3).stores({ entities: '++id' });\n }\n count$() {\n return fromDexie(liveQuery(() => this.entities.count()));\n }\n getLastUpdatedAt$(collectionPath) {\n return of(null).pipe(switchMap((() => fromDexie(liveQuery(() => this.entities.toArray())))), map((entities) => entities.filter(entity => entity.collectionPath === collectionPath)), map(entities => entities.sort((a, b) => {\n if (!a?.updatedAt)\n return -1;\n if (!b?.updatedAt)\n return 1;\n return dayjs(a?.updatedAt).diff(dayjs(b?.updatedAt));\n }).at(-1)), map(entity => entity?.updatedAt ? dayjs(entity?.updatedAt) : dayjs('1970-01-01')), distinctUntilChanged((pre, cur) => pre.isSame(cur)));\n }\n async bulkPut(collectionPath, entities) {\n return this.entities.bulkPut(entities.map(entity => {\n const key = `${entity.id}`;\n return {\n id: key,\n collectionPath,\n value: JSON.stringify(entity),\n updatedAt: entity.updatedAt.toISOString(),\n };\n }));\n }\n listChanges(collectionPath) {\n return of(null).pipe(switchMap(() => fromDexie(liveQuery(() => this.entities.toArray()))), map((entities) => entities.filter(entity => entity.collectionPath === collectionPath)), map((entities) => entities.map(entity => JSON.parse(entity.value))));\n }\n}\nclass FirestoreIndexedDbCached {\n constructor(collectionPath) {\n this.collectionPath = collectionPath;\n this.adapter = new DexieAdapter();\n }\n getLastUpdatedAt$() {\n return this.adapter.getLastUpdatedAt$(this.collectionPath);\n }\n async setMany(entities) {\n return this.adapter.bulkPut(this.collectionPath, entities);\n }\n listChanges() {\n return this.adapter.listChanges(this.collectionPath);\n }\n}\nexport class CachedFirestoreQuery extends FirestoreQuery {\n constructor() {\n super(...arguments);\n this.config = {\n throttleTime: 5_000,\n loadChunkSize: 1_000,\n };\n }\n get cached() {\n return this._cached ??= new FirestoreIndexedDbCached(this.collectionPath);\n }\n listChanges(paramMap) {\n const collection = this.dao.getCollection(paramMap);\n return this.cached.getLastUpdatedAt$().pipe(switchMap((lastUpdatedAt) => this._listChangesAfter(collection, lastUpdatedAt, {\n limit: this.config.loadChunkSize,\n }).pipe(retry(3), tap((updated) => this.cached.setMany(updated)), tap((updated) => console.log('updated:', updated)), catchError((error) => (console.error(error), NEVER)))), switchMap(() => this.cached.listChanges()), map((entities) => entities.map(entity => this.converter.fromObject(entity))), throttleTime(this.config.throttleTime));\n }\n _listChange(paramMap) {\n return of(paramMap).pipe(map((paramMap) => this.dao.getCollection(paramMap)), map((collection) => this.adapter.query(collection, this.adapter.limit(10))), switchMap((collection) => this.getListChanges$ByCollectionLike(collection)));\n }\n _listChangesAfter(collection, updatedAt, { limit } = {}) {\n const updatedAtTs = dayjs.isDayjs(updatedAt) ? this.adapter.convertDateToTimestamp(updatedAt) : updatedAt;\n const query = this.adapter.query(collection, ...[\n this.adapter.where('updatedAt', '>', updatedAtTs),\n this.adapter.orderBy('updatedAt', 'asc'),\n limit ? this.adapter.limit(limit) : undefined,\n ].filter(Boolean));\n return this.getListChanges$ByCollectionLike(query);\n }\n progressChanges() {\n return combineLatest({\n cloud: this.count(),\n local: this.listChanges().pipe(map(items => items.length)),\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CachedFirestoreQuery, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CachedFirestoreQuery }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CachedFirestoreQuery, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLXF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9maXJlc3RvcmUvc3JjL2xpYi9xdWVyeS92Mi9jYWNoZWQtcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXpDLE9BQU8sS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFpQyxNQUFNLE9BQU8sQ0FBQztBQUN4RSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hJLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQzs7QUFNMUIsU0FBUyxTQUFTLENBQUksVUFBOEI7SUFDbEQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBU0QsTUFBTSxZQUE2RCxTQUFRLEtBQUs7SUFHOUU7UUFDRSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxjQUFzQjtR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QyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtRQUN6RyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FDOUIsVUFBVSxFQUNWLEdBQUc7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLFdBQVcsQ0FBQztZQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO1lBQ3hDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDOUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQ2xCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sYUFBYSxDQUFDO1lBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzRCxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXREbUIsb0JBQW9CO2tIQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZpcmVzdG9yZVF1ZXJ5IH0gZnJvbSBcIi4vcXVlcnlcIjtcbmltcG9ydCB7IEV4dHJhY3RQYXJhbXMgfSBmcm9tIFwiLi4vLi4vcGF0aC1idWlsZGVyXCI7XG5pbXBvcnQgRGV4aWUsIHsgbGl2ZVF1ZXJ5LCBPYnNlcnZhYmxlIGFzIERleGllT2JzZXJ2YWJsZSB9IGZyb20gJ2RleGllJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE5FVkVSLCBPYnNlcnZhYmxlLCBvZiwgcmV0cnksIHN3aXRjaE1hcCwgdGFwLCB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzJztcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCB7IENvbGxlY3Rpb25MaWtlIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcblxudHlwZSBDb2xQYXJhbTxUIGV4dGVuZHMge3JlYWRvbmx5IGNvbGxlY3Rpb25QYXRoOiBzdHJpbmd9PiA9IE9taXQ8RXh0cmFjdFBhcmFtczxUWydjb2xsZWN0aW9uUGF0aCddPiwgJ2lkJz47XG50eXBlIERvY1BhcmFtPFQgZXh0ZW5kcyB7cmVhZG9ubHkgY29sbGVjdGlvblBhdGg6IHN0cmluZ30+ID0gQ29sUGFyYW08VD4gJiB7aWQ6IHN0cmluZ307IFxuXG5mdW5jdGlvbiBmcm9tRGV4aWU8VD4ob2JzZXJ2YWJsZTogRGV4aWVPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZShzdWJzY3JpYmVyID0+IG9ic2VydmFibGUuc3Vic2NyaWJlKHN1YnNjcmliZXIpKTtcbn1cblxuaW50ZXJmYWNlIEVudGl0eURhdGEge1xuICBpZDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBjb2xsZWN0aW9uUGF0aDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbn1cblxuY2xhc3MgRGV4aWVBZGFwdGVyPEUgZXh0ZW5kcyB7aWQ6IHN0cmluZywgdXBkYXRlZEF0OiBkYXlqcy5EYXlqc30+IGV4dGVuZHMgRGV4aWUge1xuICBlbnRpdGllcyE6IERleGllLlRhYmxlPEVudGl0eURhdGEsIHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ0BueC1kZGQvZmlyZXN0b3JlL2NhY2hlZC1xdWVyeScpO1xuICAgIHRoaXMudmVyc2lvbigzKS5zdG9yZXMoeyBlbnRpdGllczogJysraWQnIH0pO1xuICB9XG5cbiAgY291bnQkKCkge1xuICAgIHJldHVybiBmcm9tRGV4aWUobGl2ZVF1ZXJ5KCgpID0+IHRoaXMuZW50aXRpZXMuY291bnQoKSkpO1xuICB9XG5cbiAgZ2V0TGFzdFVwZGF0ZWRBdCQoY29sbGVjdGlvblBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBvZihudWxsKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgoKSA9PiBmcm9tRGV4aWUobGl2ZVF1ZXJ5KCgpID0+IHRoaXMuZW50aXRpZXMudG9BcnJheSgpKSkpKSxcbiAgICAgIG1hcCgoZW50aXRpZXMpID0+IGVudGl0aWVzLmZpbHRlcihlbnRpdHkgPT4gZW50aXR5LmNvbGxlY3Rpb25QYXRoID09PSBjb2xsZWN0aW9uUGF0aCkpLFxuICAgICAgbWFwKGVudGl0aWVzID0+IGVudGl0aWVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKCFhPy51cGRhdGVkQXQpIHJldHVybiAtMTtcbiAgICAgICAgaWYgKCFiPy51cGRhdGVkQXQpIHJldHVybiAxO1xuICAgICAgICByZXR1cm4gZGF5anMoYT8udXBkYXRlZEF0KS5kaWZmKGRheWpzKGI/LnVwZGF0ZWRBdCkpO1xuICAgICAgfSkuYXQoLTEpKSxcbiAgICAgIG1hcChlbnRpdHkgPT4gZW50aXR5Py51cGRhdGVkQXQgPyBkYXlqcyhlbnRpdHk/LnVwZGF0ZWRBdCkgOiBkYXlqcygnMTk3MC0wMS0wMScpKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmUsIGN1cikgPT4gcHJlLmlzU2FtZShjdXIpKSxcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgYnVsa1B1dChjb2xsZWN0aW9uUGF0aDogc3RyaW5nLCBlbnRpdGllczogRVtdKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXRpZXMuYnVsa1B1dChlbnRpdGllcy5tYXAoZW50aXR5ID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGAke2VudGl0eS5pZH1gO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGtleSxcbiAgICAgICAgY29sbGVjdGlvblBhdGgsXG4gICAgICAgIHZhbHVlOiBKU09OLnN0cmluZ2lmeShlbnRpdHkpLFxuICAgICAgICB1cGRhdGVkQXQ6IGVudGl0eS51cGRhdGVkQXQudG9JU09TdHJpbmcoKSxcbiAgICAgIH07XG4gICAgfSkpO1xuICB9XG5cbiAgbGlzdENoYW5nZXMoY29sbGVjdGlvblBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8RVtdPiB7XG4gICAgcmV0dXJuIG9mKG51bGwpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gZnJvbURleGllKGxpdmVRdWVyeSgoKSA9PiB0aGlzLmVudGl0aWVzLnRvQXJyYXkoKSkpKSxcbiAgICAgIG1hcCgoZW50aXRpZXMpID0+IGVudGl0aWVzLmZpbHRlcihlbnRpdHkgPT4gZW50aXR5LmNvbGxlY3Rpb25QYXRoID09PSBjb2xsZWN0aW9uUGF0aCkpLFxuICAgICAgbWFwKChlbnRpdGllcykgPT4gZW50aXRpZXMubWFwKGVudGl0eSA9PiBKU09OLnBhcnNlKGVudGl0eS52YWx1ZSkgYXMgRSkpLFxuICAgICk7XG4gIH1cbn1cblxuY2xhc3MgRmlyZXN0b3JlSW5kZXhlZERiQ2FjaGVkPEUgZXh0ZW5kcyB7aWQ6IHN0cmluZywgdXBkYXRlZEF0OiBkYXlqcy5EYXlqc30+IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNvbGxlY3Rpb25QYXRoOiBzdHJpbmcpIHsgfVxuXG4gIHJlYWRvbmx5IGFkYXB0ZXIgPSBuZXcgRGV4aWVBZGFwdGVyPEU+KCk7XG5cbiAgZ2V0TGFzdFVwZGF0ZWRBdCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5nZXRMYXN0VXBkYXRlZEF0JCh0aGlzLmNvbGxlY3Rpb25QYXRoKTtcbiAgfVxuXG4gIGFzeW5jIHNldE1hbnkoZW50aXRpZXM6IEVbXSkge1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuYnVsa1B1dCh0aGlzLmNvbGxlY3Rpb25QYXRoLCBlbnRpdGllcyk7XG4gIH1cblxuICBsaXN0Q2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmxpc3RDaGFuZ2VzKHRoaXMuY29sbGVjdGlvblBhdGgpO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDYWNoZWRGaXJlc3RvcmVRdWVyeTxFIGV4dGVuZHMge2lkOiBzdHJpbmcsIHVwZGF0ZWRBdDogZGF5anMuRGF5anN9ID0gYW55PiBleHRlbmRzIEZpcmVzdG9yZVF1ZXJ5PEU+IHtcbiAgcHJvdGVjdGVkIF9jYWNoZWQ6IEZpcmVzdG9yZUluZGV4ZWREYkNhY2hlZDxFPjtcbiAgcHJvdGVjdGVkIGdldCBjYWNoZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlZCA/Pz0gbmV3IEZpcmVzdG9yZUluZGV4ZWREYkNhY2hlZDxFPih0aGlzLmNvbGxlY3Rpb25QYXRoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWcgPSB7XG4gICAgdGhyb3R0bGVUaW1lOiA1XzAwMCxcbiAgICBsb2FkQ2h1bmtTaXplOiAxXzAwMCxcbiAgfTtcblxuICBvdmVycmlkZSBsaXN0Q2hhbmdlcyhwYXJhbU1hcD86IENvbFBhcmFtPHRoaXM+KTogT2JzZXJ2YWJsZTxFW10+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYW8uZ2V0Q29sbGVjdGlvbihwYXJhbU1hcCBhcyBhbnkpO1xuICAgIHJldHVybiB0aGlzLmNhY2hlZC5nZXRMYXN0VXBkYXRlZEF0JCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGxhc3RVcGRhdGVkQXQpID0+IHRoaXMuX2xpc3RDaGFuZ2VzQWZ0ZXIoY29sbGVjdGlvbiwgbGFzdFVwZGF0ZWRBdCwge1xuICAgICAgICBsaW1pdDogdGhpcy5jb25maWcubG9hZENodW5rU2l6ZSxcbiAgICAgIH0pLnBpcGUoXG4gICAgICAgIHJldHJ5KDMpLFxuICAgICAgICB0YXAoKHVwZGF0ZWQpID0+IHRoaXMuY2FjaGVkLnNldE1hbnkodXBkYXRlZCkpLFxuICAgICAgICB0YXAoKHVwZGF0ZWQpID0+IGNvbnNvbGUubG9nKCd1cGRhdGVkOicsIHVwZGF0ZWQpKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IChjb25zb2xlLmVycm9yKGVycm9yKSwgTkVWRVIpKSxcbiAgICAgICkpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY2FjaGVkLmxpc3RDaGFuZ2VzKCkpLFxuICAgICAgbWFwKChlbnRpdGllcykgPT4gZW50aXRpZXMubWFwKGVudGl0eSA9PiB0aGlzLmNvbnZlcnRlci5mcm9tT2JqZWN0KGVudGl0eSkpKSxcbiAgICAgIHRocm90dGxlVGltZSh0aGlzLmNvbmZpZy50aHJvdHRsZVRpbWUpLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2xpc3RDaGFuZ2UocGFyYW1NYXA/OiBDb2xQYXJhbTx0aGlzPik6IE9ic2VydmFibGU8RVtdPiB7XG4gICAgcmV0dXJuIG9mKHBhcmFtTWFwKS5waXBlKFxuICAgICAgbWFwKChwYXJhbU1hcCkgPT4gdGhpcy5kYW8uZ2V0Q29sbGVjdGlvbihwYXJhbU1hcCBhcyBhbnkpKSxcbiAgICAgIG1hcCgoY29sbGVjdGlvbikgPT4gdGhpcy5hZGFwdGVyLnF1ZXJ5KGNvbGxlY3Rpb24sIHRoaXMuYWRhcHRlci5saW1pdCgxMCkpKSxcbiAgICAgIHN3aXRjaE1hcCgoY29sbGVjdGlvbikgPT4gdGhpcy5nZXRMaXN0Q2hhbmdlcyRCeUNvbGxlY3Rpb25MaWtlKGNvbGxlY3Rpb24pKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9saXN0Q2hhbmdlc0FmdGVyKGNvbGxlY3Rpb246IENvbGxlY3Rpb25MaWtlLCB1cGRhdGVkQXQ6IGRheWpzLkRheWpzLCB7bGltaXR9OiB7bGltaXQ/OiBudW1iZXJ9ID0ge30pIHtcbiAgICBjb25zdCB1cGRhdGVkQXRUcyA9IGRheWpzLmlzRGF5anModXBkYXRlZEF0KSA/IHRoaXMuYWRhcHRlci5jb252ZXJ0RGF0ZVRvVGltZXN0YW1wKHVwZGF0ZWRBdCkgOiB1cGRhdGVkQXRcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuYWRhcHRlci5xdWVyeShcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAuLi5bXG4gICAgICAgIHRoaXMuYWRhcHRlci53aGVyZSgndXBkYXRlZEF0JywgJz4nLCB1cGRhdGVkQXRUcyksXG4gICAgICAgIHRoaXMuYWRhcHRlci5vcmRlckJ5KCd1cGRhdGVkQXQnLCAnYXNjJyksXG4gICAgICAgIGxpbWl0ID8gdGhpcy5hZGFwdGVyLmxpbWl0KGxpbWl0KSA6IHVuZGVmaW5lZCxcbiAgICAgIF0uZmlsdGVyKEJvb2xlYW4pLFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGlzdENoYW5nZXMkQnlDb2xsZWN0aW9uTGlrZShxdWVyeSk7XG4gIH1cblxuICBwcm9ncmVzc0NoYW5nZXMoKSB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qoe1xuICAgICAgY2xvdWQ6IHRoaXMuY291bnQoKSxcbiAgICAgIGxvY2FsOiB0aGlzLmxpc3RDaGFuZ2VzKCkucGlwZShtYXAoaXRlbXMgPT4gaXRlbXMubGVuZ3RoKSksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { inject, Injectable } from '@angular/core';\nimport { Repository } from '@nx-ddd/common/domain';\nimport { toObject } from '@nx-ddd/common';\nimport { generateId } from '@nx-ddd/common';\nimport { FirestoreAdapter } from '../adapters/base';\nimport { getConverter } from '../converter';\nimport { pathBuilderFactory } from '../path-builder';\nimport { getCollection } from '../decorators/decorators';\nimport * as i0 from \"@angular/core\";\nconst toPromise = callback => new Promise((resolve, reject) => {\n try {\n resolve(callback());\n }\n catch (error) {\n reject(error);\n }\n});\nfunction doesExist(doc) {\n if (typeof doc.exists === 'function') {\n return doc.exists();\n }\n return doc.exists;\n}\nexport class BaseFirestoreRepository extends Repository {\n constructor() {\n super(...arguments);\n this.genId = () => generateId();\n }\n async list(paramMap, query = q => q) {\n const collection = paramMap ? this.collection(paramMap) : this.collectionGroup();\n return this._list(query(collection));\n }\n listChanges() {\n throw new Error('Method not implemented.');\n }\n async count(paramMap) {\n return this.collection(paramMap).count();\n }\n async get(paramMap) {\n return this._get(this.doc(paramMap));\n }\n async save(entity) {\n const docRef = this.doc({ ...entity, id: entity?.id || this.genId() });\n return this._save(docRef, entity);\n }\n async saveMany(entities) {\n return this.bulkWrite(entities);\n }\n async create(entity) {\n const obj = toObject(entity);\n const id = obj?.id || this.genId();\n return toPromise(() => this.doc({ ...obj, id })).then(doc => this._create(doc, entity));\n }\n async createMany(entities) {\n return Promise.all(entities.map(entity => this.create(entity)));\n }\n async update(entity) {\n return this.doc(entity).update(this.adapter.flattenForUpdate({\n ...this.converter.toFirestore(entity),\n ...this.buildServerTimestampObject(['updatedAt']),\n })).then(() => { });\n }\n async updateMany(data) {\n return this.bulkUpdate(data);\n }\n delete(paramMap) {\n return this.doc(paramMap).delete();\n }\n async deleteMany(params) {\n return params.reduce((batch, param) => {\n const doc = this.doc(param).__ref;\n return batch.delete(doc);\n }, this.adapter.batch()).commit().then(() => params.length);\n }\n async deleteAll() {\n throw new Error('Method not implemented.');\n }\n async bulkWrite(entities, timestamps = []) {\n return entities.reduce((batch, entity) => {\n const doc = this.doc(entity).__ref;\n return batch.set(doc, {\n ...this.converter.toFirestore(entity),\n ...this.buildServerTimestampObject(timestamps),\n });\n }, this.adapter.batch()).commit();\n }\n async bulkCreate(entities) {\n // TODO(nontangent): add maximum 500 record validation\n return entities.reduce((batch, entity) => {\n const doc = this.doc(entity).__ref;\n return batch.create(doc, {\n ...this.converter.toFirestore(entity),\n ...this.buildServerTimestampObject(['createdAt', 'updatedAt']),\n });\n }, this.adapter.batch()).commit();\n }\n async bulkUpdate(entities) {\n // TODO(nontangent): add maximum 500 record validation\n return entities.reduce((batch, entity) => {\n const doc = this.doc(entity).__ref;\n return batch.update(doc, {\n ...this.converter.toFirestore(entity),\n ...this.buildServerTimestampObject(['updatedAt']),\n });\n }, this.adapter.batch()).commit();\n }\n async bulkDelete(paramMaps) {\n // MEMO(@nontangent): 500件以上の削除は未対応\n return paramMaps.reduce((batch, paramMap) => {\n const doc = this.doc(paramMap).__ref;\n return batch.delete(doc);\n }, this.adapter.batch()).commit();\n }\n collection(paramMap) {\n const path = this.pathBuilder.collection(paramMap);\n return this.adapter.collection(path);\n }\n collectionGroup() {\n const path = this.pathBuilder.collectionGroup();\n return this.adapter.collectionGroup(path);\n }\n doc(paramMap) {\n const path = this.pathBuilder.doc(paramMap);\n return this.adapter.doc(path);\n }\n _list(collection) {\n return collection.get().then(({ docs }) => docs.map(doc => {\n if (!doesExist(doc))\n return null;\n return this.converter.fromFirestore(doc);\n }));\n }\n _get(doc) {\n return doc.get().then((doc => {\n if (!doc.data())\n return null;\n return this.converter.fromFirestore(doc);\n }));\n }\n async _save(doc, entity) {\n const exists = await doc.exists();\n if (exists) {\n return this._set(doc, entity).then(doc => [this.converter.fromFirestore(doc), false]);\n }\n else {\n return this._create(doc, entity).then(entity => [entity, true]);\n }\n }\n async _create(doc, entity) {\n const exists = await doc.exists().catch((error) => {\n // MEMO(@nontangent): bunで実行するときだけこのエラーがでるかもしれない。\n if (`${error}`.startsWith('Error: Did not receive document for'))\n return false;\n throw error;\n });\n if (exists)\n throw new Error('Document already exists');\n return doc.set({\n ...this.converter.toFirestore(entity),\n ...this.buildServerTimestampObject(['createdAt', 'updatedAt']),\n }).then(() => doc.get()).then(doc => this.converter.fromFirestore(doc));\n }\n _set(doc, entity, isUpdate = true) {\n const data = this.converter.toFirestore(entity);\n return doc.set({\n ...this.converter.toFirestore(entity),\n ...this.buildServerTimestampObject(isUpdate ? ['updatedAt'] : []),\n }, { merge: isUpdate }).then(() => doc.get());\n }\n buildServerTimestampObject(keys = ['createdAt', 'updatedAt']) {\n return keys.reduce((m, k) => ({ ...m, [k]: this.adapter.FieldValue.serverTimestamp() }), {});\n }\n}\nexport class FirestoreRepository extends BaseFirestoreRepository {\n constructor() {\n super(...arguments);\n this.adapter = inject(FirestoreAdapter);\n }\n get pathBuilder() {\n return pathBuilderFactory(this.collectionPath);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirestoreRepository, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirestoreRepository }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: FirestoreRepository, decorators: [{\n type: Injectable\n }] });\nexport function getFirestoreRepository(entity, adapter = inject(FirestoreAdapter)) {\n class FirestoreRepository extends BaseFirestoreRepository {\n constructor(converter, collectionPath, pathBuilder, adapter) {\n super();\n this.converter = converter;\n this.collectionPath = collectionPath;\n this.pathBuilder = pathBuilder;\n this.adapter = adapter;\n }\n }\n return new FirestoreRepository(getConverter(entity, adapter), getCollection(entity), pathBuilderFactory(getCollection(entity)), adapter);\n}\nexport function injectFirestoreRepository(entity) {\n return getFirestoreRepository(entity, inject(FirestoreAdapter));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvcmVwb3NpdG9yeS9yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sY0FBYyxDQUFDO0FBQ2pFLE9BQU8sRUFBdUMsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcxRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRXpELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQThCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQ3pGLElBQUksQ0FBQztRQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFBQyxDQUFDO0FBQy9ELENBQUMsQ0FBQyxDQUFDO0FBRUgsU0FBUyxTQUFTLENBQUMsR0FBcUI7SUFDdEMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDckMsT0FBTyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFD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QU8sQ0FDUixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBbUQsTUFBeUI7SUFDbkgsT0FBTyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSAnQG54LWRkZC9jb21tb24vZG9tYWluJztcbmltcG9ydCB7IHRvT2JqZWN0IH0gZnJvbSAnQG54LWRkZC9jb21tb24nO1xuaW1wb3J0IHsgZ2VuZXJhdGVJZCB9IGZyb20gJ0BueC1kZGQvY29tbW9uJztcbmltcG9ydCB7IEZpcmVzdG9yZUFkYXB0ZXIgfSBmcm9tICcuLi9hZGFwdGVycy9iYXNlJztcbmltcG9ydCB7IGdldENvbnZlcnRlciwgSUZpcmVzdG9yZUNvbnZlcnRlciB9IGZyb20gJy4uL2NvbnZlcnRlcic7XG5pbXBvcnQgeyBFeHRyYWN0UGFyYW1zLCBGaXJlc3RvcmVQYXRoQnVpbGRlciwgcGF0aEJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vcGF0aC1idWlsZGVyJztcbmltcG9ydCB7IENvbGxlY3Rpb25SZWZlcmVuY2UsIENvbGxlY3Rpb25Hcm91cCwgRG9jdW1lbnRSZWZlcmVuY2UsIERvY3VtZW50U25hcHNob3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldENvbGxlY3Rpb24gfSBmcm9tICcuLi9kZWNvcmF0b3JzL2RlY29yYXRvcnMnO1xuXG5jb25zdCB0b1Byb21pc2UgPSBjYWxsYmFjayA9PiBuZXcgUHJvbWlzZTxSZXR1cm5UeXBlPHR5cGVvZiBjYWxsYmFjaz4+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgdHJ5IHsgcmVzb2x2ZShjYWxsYmFjaygpKTsgfSBjYXRjaCAoZXJyb3IpIHsgcmVqZWN0KGVycm9yKTsgfVxufSk7XG5cbmZ1bmN0aW9uIGRvZXNFeGlzdChkb2M6IERvY3VtZW50U25hcHNob3QpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBkb2MuZXhpc3RzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGRvYy5leGlzdHMoKTtcbiAgfVxuICByZXR1cm4gZG9jLmV4aXN0cztcbn1cblxuLy8gRmlyZXN0b3JlUmVwb3NpdG9yeeOBi+OCiUVucmlyeeOCkuWPluW+l+OBmeOCi2luZmVyXG5leHBvcnQgdHlwZSBFeHRyYWN0RW50aXR5PFQgZXh0ZW5kcyBCYXNlRmlyZXN0b3JlUmVwb3NpdG9yeTxhbnksIGFueT4+ID0gVCBleHRlbmRzIEJhc2VGaXJlc3RvcmVSZXBvc2l0b3J5PGluZmVyIEVudGl0eSwgYW55PiA/IEVudGl0eSA6IG5ldmVyO1xudHlwZSBDb2xQYXJhbTxUIGV4dGVuZHMgQmFzZUZpcmVzdG9yZVJlcG9zaXRvcnk8YW55LCBhbnk+PiA9IE9taXQ8RXh0cmFjdFBhcmFtczxUWydjb2xsZWN0aW9uUGF0aCddPiwgJ2lkJz47XG50eXBlIERvY1BhcmFtPFQgZXh0ZW5kcyBCYXNlRmlyZXN0b3JlUmVwb3NpdG9yeTxhbnksIGFueT4sIFRFeHRyYSA9IHt9PiA9IENvbFBhcmFtPFQ+ICYgeyBpZDogc3RyaW5nIH0gJiBURXh0cmE7IFxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZpcmVzdG9yZVJlcG9zaXRvcnk8RW50aXR5IGV4dGVuZHMgeyBpZDogc3RyaW5nIH0sIFRFeHRyYVBhcmFtcyA9IHt9PiBleHRlbmRzIFJlcG9zaXRvcnk8RW50aXR5PiB7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGNvbGxlY3Rpb25QYXRoOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBhZGFwdGVyOiBGaXJlc3RvcmVBZGFwdGVyO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY29udmVydGVyOiBJRmlyZXN0b3JlQ29udmVydGVyPEVudGl0eT47XG4gIGFic3RyYWN0IHJlYWRvbmx5IHBhdGhCdWlsZGVyOiBGaXJlc3RvcmVQYXRoQnVpbGRlcjxFbnRpdHksIHR5cGVvZiB0aGlzLmNvbGxlY3Rpb25QYXRoPjtcblxuICBhc3luYyBsaXN0KHBhcmFtTWFwPzogQ29sUGFyYW08dGhpcz4sIHF1ZXJ5OiBhbnkgPSBxID0+IHEpOiBQcm9taXNlPEVudGl0eVtdPiB7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IHBhcmFtTWFwID8gdGhpcy5jb2xsZWN0aW9uKHBhcmFtTWFwKSA6IHRoaXMuY29sbGVjdGlvbkdyb3VwKCk7XG4gICAgcmV0dXJuIHRoaXMuX2xpc3QocXVlcnkoY29sbGVjdGlvbikpO1xuICB9XG5cbiAgbGlzdENoYW5nZXMoKTogT2JzZXJ2YWJsZTxFbnRpdHlbXT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGFzeW5jIGNvdW50KHBhcmFtTWFwPzogQ29sUGFyYW08dGhpcz4pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24ocGFyYW1NYXApLmNvdW50KCk7XG4gIH1cblxuICBhc3luYyBnZXQocGFyYW1NYXA/OiBEb2NQYXJhbTx0aGlzLCBURXh0cmFQYXJhbXM+KSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldCh0aGlzLmRvYyhwYXJhbU1hcCBhcyBhbnkpKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoZW50aXR5OiBEb2NQYXJhbTx0aGlzLCBURXh0cmFQYXJhbXM+ICYgRW50aXR5KTogUHJvbWlzZTxbRW50aXR5LCBib29sZWFuXT4ge1xuICAgIGNvbnN0IGRvY1JlZiA9IHRoaXMuZG9jKHsuLi5lbnRpdHksIGlkOiBlbnRpdHk/LmlkIHx8IHRoaXMuZ2VuSWQoKX0pO1xuICAgIHJldHVybiB0aGlzLl9zYXZlKGRvY1JlZiwgZW50aXR5KTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVNYW55KGVudGl0aWVzOiBFbnRpdHlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmJ1bGtXcml0ZShlbnRpdGllcyBhcyBhbnkpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlKGVudGl0eTogRG9jUGFyYW08dGhpcywgVEV4dHJhUGFyYW1zPiAmIEVudGl0eSk6IFByb21pc2U8RW50aXR5PiB7XG4gICAgY29uc3Qgb2JqID0gdG9PYmplY3QoZW50aXR5KSBhcyBEb2NQYXJhbTx0aGlzLCBURXh0cmFQYXJhbXM+ICYgRW50aXR5O1xuICAgIGNvbnN0IGlkID0gb2JqPy5pZCB8fCB0aGlzLmdlbklkKCk7XG4gICAgcmV0dXJuIHRvUHJvbWlzZSgoKSA9PiB0aGlzLmRvYyh7Li4ub2JqLCBpZH0pKS50aGVuKGRvYyA9PiB0aGlzLl9jcmVhdGUoZG9jLCBlbnRpdHkpKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZU1hbnkoZW50aXRpZXM6IChEb2NQYXJhbTx0aGlzLCBURXh0cmFQYXJhbXM+ICYgRW50aXR5KVtdKTogUHJvbWlzZTxFbnRpdHlbXT4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChlbnRpdGllcy5tYXAoZW50aXR5ID0+IHRoaXMuY3JlYXRlKGVudGl0eSkpKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShlbnRpdHk6IERvY1BhcmFtPHRoaXMsIFRFeHRyYVBhcmFtcz4gJiBQYXJ0aWFsPEVudGl0eT4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5kb2MoZW50aXR5KS51cGRhdGUodGhpcy5hZGFwdGVyLmZsYXR0ZW5Gb3JVcGRhdGUoe1xuICAgICAgLi4udGhpcy5jb252ZXJ0ZXIudG9GaXJlc3RvcmUoZW50aXR5KSxcbiAgICAgIC4uLnRoaXMuYnVpbGRTZXJ2ZXJUaW1lc3RhbXBPYmplY3QoWyd1cGRhdGVkQXQnXSksXG4gICAgfSkpLnRoZW4oKCkgPT4ge30pOyBcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZU1hbnkoZGF0YTogUGFydGlhbDxFbnRpdHk+W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5idWxrVXBkYXRlKGRhdGEgYXMgYW55KTtcbiAgfVxuXG4gIGRlbGV0ZShwYXJhbU1hcDogRG9jUGFyYW08dGhpcywgVEV4dHJhUGFyYW1zPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmRvYyhwYXJhbU1hcCBhcyBhbnkpLmRlbGV0ZSgpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlTWFueShwYXJhbXM6IHsgaWQ6IHN0cmluZzsgfVtdKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gcGFyYW1zLnJlZHVjZSgoYmF0Y2gsIHBhcmFtKSA9PiB7XG4gICAgICBjb25zdCBkb2MgPSB0aGlzLmRvYyhwYXJhbSBhcyBhbnkpLl9fcmVmO1xuICAgICAgcmV0dXJuIGJhdGNoLmRlbGV0ZShkb2MpO1xuICAgIH0sIHRoaXMuYWRhcHRlci5iYXRjaCgpKS5jb21taXQoKS50aGVuKCgpID0+IHBhcmFtcy5sZW5ndGgpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQWxsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGFzeW5jIGJ1bGtXcml0ZShlbnRpdGllczogKERvY1BhcmFtPHRoaXMsIFRFeHRyYVBhcmFtcz4gJiBFbnRpdHkpW10sIHRpbWVzdGFtcHM6IHN0cmluZ1tdID0gW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gZW50aXRpZXMucmVkdWNlKChiYXRjaCwgZW50aXR5KSA9PiB7XG4gICAgICBjb25zdCBkb2MgPSB0aGlzLmRvYyhlbnRpdHkpLl9fcmVmO1xuICAgICAgcmV0dXJuIGJhdGNoLnNldChkb2MsIHtcbiAgICAgICAgLi4udGhpcy5jb252ZXJ0ZXIudG9GaXJlc3RvcmUoZW50aXR5KSxcbiAgICAgICAgLi4udGhpcy5idWlsZFNlcnZlclRpbWVzdGFtcE9iamVjdCh0aW1lc3RhbXBzKSxcbiAgICAgIH0pO1xuICAgIH0sIHRoaXMuYWRhcHRlci5iYXRjaCgpKS5jb21taXQoKTtcbiAgfVxuXG4gIGFzeW5jIGJ1bGtDcmVhdGUoZW50aXRpZXM6IChEb2NQYXJhbTx0aGlzLCBURXh0cmFQYXJhbXM+ICYgRW50aXR5KVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gVE9ETyhub250YW5nZW50KTogYWRkIG1heGltdW0gNTAwIHJlY29yZCB2YWxpZGF0aW9uXG4gICAgcmV0dXJuIGVudGl0aWVzLnJlZHVjZSgoYmF0Y2gsIGVudGl0eSkgPT4ge1xuICAgICAgY29uc3QgZG9jID0gdGhpcy5kb2MoZW50aXR5KS5fX3JlZjtcbiAgICAgIHJldHVybiBiYXRjaC5jcmVhdGUoZG9jLCB7XG4gICAgICAgIC4uLnRoaXMuY29udmVydGVyLnRvRmlyZXN0b3JlKGVudGl0eSksXG4gICAgICAgIC4uLnRoaXMuYnVpbGRTZXJ2ZXJUaW1lc3RhbXBPYmplY3QoWydjcmVhdGVkQXQnLCAndXBkYXRlZEF0J10pLFxuICAgICAgfSk7XG4gICAgfSwgdGhpcy5hZGFwdGVyLmJhdGNoKCkpLmNvbW1pdCgpO1xuICB9XG5cbiAgYXN5bmMgYnVsa1VwZGF0ZShlbnRpdGllczogKERvY1BhcmFtPHRoaXMsIFRFeHRyYVBhcmFtcz4gJiBQYXJ0aWFsPEVudGl0eT4pW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBUT0RPKG5vbnRhbmdlbnQpOiBhZGQgbWF4aW11bSA1MDAgcmVjb3JkIHZhbGlkYXRpb25cbiAgICByZXR1cm4gZW50aXRpZXMucmVkdWNlKChiYXRjaCwgZW50aXR5KSA9PiB7XG4gICAgICBjb25zdCBkb2MgPSB0aGlzLmRvYyhlbnRpdHkpLl9fcmVmO1xuICAgICAgcmV0dXJuIGJhdGNoLnVwZGF0ZShkb2MsIHtcbiAgICAgICAgLi4udGhpcy5jb252ZXJ0ZXIudG9GaXJlc3RvcmUoZW50aXR5KSxcbiAgICAgICAgLi4udGhpcy5idWlsZFNlcnZlclRpbWVzdGFtcE9iamVjdChbJ3VwZGF0ZWRBdCddKSxcbiAgICAgIH0pO1xuICAgIH0sIHRoaXMuYWRhcHRlci5iYXRjaCgpKS5jb21taXQoKTtcbiAgfVxuXG4gIGFzeW5jIGJ1bGtEZWxldGUocGFyYW1NYXBzOiBEb2NQYXJhbTx0aGlzLCBURXh0cmFQYXJhbXM+W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBNRU1PKEBub250YW5nZW50KTogNTAw5Lu25Lul5LiK44Gu5YmK6Zmk44Gv5pyq5a++5b+cXG4gICAgcmV0dXJuIHBhcmFtTWFwcy5yZWR1Y2UoKGJhdGNoLCBwYXJhbU1hcCkgPT4ge1xuICAgICAgY29uc3QgZG9jID0gdGhpcy5kb2MocGFyYW1NYXAgYXMgYW55KS5fX3JlZjtcbiAgICAgIHJldHVybiBiYXRjaC5kZWxldGUoZG9jKTtcbiAgICB9LCB0aGlzLmFkYXB0ZXIuYmF0Y2goKSkuY29tbWl0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29sbGVjdGlvbihwYXJhbU1hcD86IE9taXQ8RXh0cmFjdFBhcmFtczx0eXBlb2YgdGhpcy5jb2xsZWN0aW9uUGF0aD4sICdpZCc+KTogQ29sbGVjdGlvblJlZmVyZW5jZTxvYmplY3Q+IHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5wYXRoQnVpbGRlci5jb2xsZWN0aW9uKHBhcmFtTWFwKVxuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuY29sbGVjdGlvbjxvYmplY3Q+KHBhdGgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbGxlY3Rpb25Hcm91cCgpOiBDb2xsZWN0aW9uR3JvdXA8b2JqZWN0PiB7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMucGF0aEJ1aWxkZXIuY29sbGVjdGlvbkdyb3VwKCk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5jb2xsZWN0aW9uR3JvdXA8b2JqZWN0PihwYXRoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkb2MocGFyYW1NYXA6IERvY1BhcmFtPHRoaXMsIFRFeHRyYVBhcmFtcz4pOiBEb2N1bWVudFJlZmVyZW5jZTxvYmplY3Q+IHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5wYXRoQnVpbGRlci5kb2MocGFyYW1NYXAgYXMgYW55KTtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmRvYzxvYmplY3Q+KHBhdGgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdlbklkID0gKCk6IHN0cmluZyA9PiBnZW5lcmF0ZUlkKCk7XG5cbiAgcHJvdGVjdGVkIF9saXN0KGNvbGxlY3Rpb246IENvbGxlY3Rpb25SZWZlcmVuY2U8b2JqZWN0Pikge1xuICAgIHJldHVybiBjb2xsZWN0aW9uLmdldCgpLnRoZW4oKHtkb2NzfSkgPT4gZG9jcy5tYXAoZG9jID0+IHtcbiAgICAgIGlmICghZG9lc0V4aXN0KGRvYykpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIHRoaXMuY29udmVydGVyLmZyb21GaXJlc3RvcmUoZG9jKTtcbiAgICB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2dldChkb2M6IERvY3VtZW50UmVmZXJlbmNlPG9iamVjdD4pIHtcbiAgICByZXR1cm4gZG9jLmdldCgpLnRoZW4oKGRvYyA9PiB7XG4gICAgICBpZiAoIWRvYy5kYXRhKCkpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIHRoaXMuY29udmVydGVyLmZyb21GaXJlc3RvcmUoZG9jKVxuICAgIH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBfc2F2ZShkb2M6IERvY3VtZW50UmVmZXJlbmNlPG9iamVjdD4sIGVudGl0eTogRW50aXR5KTogUHJvbWlzZTxbRW50aXR5LCBib29sZWFuXT4ge1xuICAgIGNvbnN0IGV4aXN0cyA9IGF3YWl0IGRvYy5leGlzdHMoKTtcbiAgICBpZiAoZXhpc3RzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2V0KGRvYywgZW50aXR5KS50aGVuKGRvYyA9PiBbdGhpcy5jb252ZXJ0ZXIuZnJvbUZpcmVzdG9yZShkb2MpLCBmYWxzZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5fY3JlYXRlKGRvYywgZW50aXR5KS50aGVuKGVudGl0eSA9PiBbZW50aXR5LCB0cnVlXSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIF9jcmVhdGUoZG9jOiBEb2N1bWVudFJlZmVyZW5jZTxvYmplY3Q+LCBlbnRpdHk6IEVudGl0eSk6IFByb21pc2U8RW50aXR5PiB7XG4gICAgY29uc3QgZXhpc3RzID0gYXdhaXQgZG9jLmV4aXN0cygpLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgLy8gTUVNTyhAbm9udGFuZ2VudCk6IGJ1buOBp+Wun+ihjOOBmeOCi+OBqOOBjeOBoOOBkeOBk+OBruOCqOODqeODvOOBjOOBp+OCi+OBi+OCguOBl+OCjOOBquOBhOOAglxuICAgICAgaWYgKGAke2Vycm9yfWAuc3RhcnRzV2l0aCgnRXJyb3I6IERpZCBub3QgcmVjZWl2ZSBkb2N1bWVudCBmb3InKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gICAgaWYgKGV4aXN0cykgdGhyb3cgbmV3IEVycm9yKCdEb2N1bWVudCBhbHJlYWR5IGV4aXN0cycpO1xuICAgIHJldHVybiBkb2Muc2V0KHtcbiAgICAgIC4uLnRoaXMuY29udmVydGVyLnRvRmlyZXN0b3JlKGVudGl0eSksXG4gICAgICAuLi50aGlzLmJ1aWxkU2VydmVyVGltZXN0YW1wT2JqZWN0KFsnY3JlYXRlZEF0JywgJ3VwZGF0ZWRBdCddKSxcbiAgICB9IGFzIGFueSkudGhlbigoKSA9PiBkb2MuZ2V0KCkpLnRoZW4oZG9jID0+IHRoaXMuY29udmVydGVyLmZyb21GaXJlc3RvcmUoZG9jKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NldChkb2M6IERvY3VtZW50UmVmZXJlbmNlPG9iamVjdD4sIGVudGl0eTogUGFydGlhbDxFbnRpdHk+LCBpc1VwZGF0ZSA9IHRydWUpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5jb252ZXJ0ZXIudG9GaXJlc3RvcmUoZW50aXR5KTtcbiAgICByZXR1cm4gZG9jLnNldCh7XG4gICAgICAuLi50aGlzLmNvbnZlcnRlci50b0ZpcmVzdG9yZShlbnRpdHkpLFxuICAgICAgLi4udGhpcy5idWlsZFNlcnZlclRpbWVzdGFtcE9iamVjdChpc1VwZGF0ZSA/IFsndXBkYXRlZEF0J10gOiBbXSksXG4gICAgfSBhcyBhbnksIHttZXJnZTogaXNVcGRhdGV9KS50aGVuKCgpID0+IGRvYy5nZXQoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRTZXJ2ZXJUaW1lc3RhbXBPYmplY3Qoa2V5czogc3RyaW5nW10gPSBbJ2NyZWF0ZWRBdCcsICd1cGRhdGVkQXQnXSkge1xuICAgIHJldHVybiBrZXlzLnJlZHVjZSgobSwgaykgPT4gKHsuLi5tLCBba106IHRoaXMuYWRhcHRlci5GaWVsZFZhbHVlLnNlcnZlclRpbWVzdGFtcCgpfSksIHt9KTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmlyZXN0b3JlUmVwb3NpdG9yeTxFbnRpdHkgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSwgVEV4dHJhUGFyYW1zID0ge30+IGV4dGVuZHMgQmFzZUZpcmVzdG9yZVJlcG9zaXRvcnk8RW50aXR5LCBURXh0cmFQYXJhbXM+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFkYXB0ZXIgPSBpbmplY3QoRmlyZXN0b3JlQWRhcHRlcik7XG4gIGdldCBwYXRoQnVpbGRlcigpOiBGaXJlc3RvcmVQYXRoQnVpbGRlcjxFbnRpdHksIHR5cGVvZiB0aGlzLmNvbGxlY3Rpb25QYXRoPiB7XG4gICAgcmV0dXJuIHBhdGhCdWlsZGVyRmFjdG9yeSh0aGlzLmNvbGxlY3Rpb25QYXRoKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlyZXN0b3JlUmVwb3NpdG9yeTxFbnRpdHkgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSwgVEV4dHJhUGFyYW1zID0ge30+KFxuICBlbnRpdHk6IHsgbmV3KCk6IEVudGl0eSB9LFxuICBhZGFwdGVyOiBGaXJlc3RvcmVBZGFwdGVyID0gaW5qZWN0KEZpcmVzdG9yZUFkYXB0ZXIpLFxuKTogQmFzZUZpcmVzdG9yZVJlcG9zaXRvcnk8RW50aXR5LCBURXh0cmFQYXJhbXM+IHtcbiAgY2xhc3MgRmlyZXN0b3JlUmVwb3NpdG9yeSBleHRlbmRzIEJhc2VGaXJlc3RvcmVSZXBvc2l0b3J5PEVudGl0eSwgVEV4dHJhUGFyYW1zPiB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udmVydGVyOiBJRmlyZXN0b3JlQ29udmVydGVyPEVudGl0eT4sXG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY29sbGVjdGlvblBhdGg6IHN0cmluZyxcbiAgICAgIHB1YmxpYyBwYXRoQnVpbGRlcjogRmlyZXN0b3JlUGF0aEJ1aWxkZXI8RW50aXR5LCBhbnk+LFxuICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFkYXB0ZXI6IEZpcmVzdG9yZUFkYXB0ZXIsXG4gICAgKSB7IHN1cGVyKCk7IH1cbiAgfVxuXG4gIHJldHVybiBuZXcgRmlyZXN0b3JlUmVwb3NpdG9yeShcbiAgICBnZXRDb252ZXJ0ZXIoZW50aXR5LCBhZGFwdGVyKSxcbiAgICBnZXRDb2xsZWN0aW9uKGVudGl0eSksXG4gICAgcGF0aEJ1aWxkZXJGYWN0b3J5KGdldENvbGxlY3Rpb24oZW50aXR5KSksXG4gICAgYWRhcHRlclxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RmlyZXN0b3JlUmVwb3NpdG9yeTxFbnRpdHkgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSwgVEV4dHJhUGFyYW1zID0ge30+KGVudGl0eTogeyBuZXcoKTogRW50aXR5IH0pOiBCYXNlRmlyZXN0b3JlUmVwb3NpdG9yeTxFbnRpdHksIFRFeHRyYVBhcmFtcz4ge1xuICByZXR1cm4gZ2V0RmlyZXN0b3JlUmVwb3NpdG9yeShlbnRpdHksIGluamVjdChGaXJlc3RvcmVBZGFwdGVyKSk7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWZpcmVzdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlL3NyYy9saWIvbngtZGRkLWZpcmVzdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["String","Boolean","Number","Map","Array","map","take","switchMap","catchError","tap","distinctUntilChanged"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx-ddd/firestore",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.9.0",
|
|
4
4
|
"main": "./index.js",
|
|
5
5
|
"types": "./index.d.ts",
|
|
6
6
|
"homepage": "https://github.com/xx-machina/plaform/tree/main/packages/@nx-ddd/firestore",
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"url": "https://github.com/xx-machina/plaform.git"
|
|
10
10
|
},
|
|
11
11
|
"peerDependencies": {
|
|
12
|
-
"@nx-ddd/common": "19.
|
|
13
|
-
"@nx-ddd/core": "19.
|
|
12
|
+
"@nx-ddd/common": "19.9.0",
|
|
13
|
+
"@nx-ddd/core": "19.9.0"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"tslib": "^2.3.0"
|