@nx-ddd/firestore-angular-adapter 18.10.0 → 18.12.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.
@@ -101,7 +101,15 @@ export class AngularFirestoreAdapter extends FirestoreAdapter {
101
101
  return runTransaction(this.firestore, fn);
102
102
  }
103
103
  batch() {
104
- return writeBatch(this.firestore);
104
+ const batch = writeBatch(this.firestore);
105
+ const wrapBatch = (_batch) => ({
106
+ create: (ref, data) => wrapBatch(_batch.set(ref, data)),
107
+ set: (ref, data) => wrapBatch(_batch.set(ref, data)),
108
+ update: (ref, data) => wrapBatch(_batch.update(ref, data)),
109
+ delete: (ref) => wrapBatch(_batch.delete(ref)),
110
+ commit: () => _batch.commit(),
111
+ });
112
+ return wrapBatch(batch);
105
113
  }
106
114
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: AngularFirestoreAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
107
115
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: AngularFirestoreAdapter }); }
@@ -116,4 +124,4 @@ export function provideAngularFirestoreAdapter() {
116
124
  export function provideFirestoreAdapter() {
117
125
  return _provideFirestoreAdapter(AngularFirestoreAdapter);
118
126
  }
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1maXJlc3RvcmUuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlLWFuZ3VsYXItYWRhcHRlci9zcmMvbGliL2FuZ3VsYXItZmlyZXN0b3JlLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUNMLEdBQUcsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUNoQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUM3QyxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUM1RCxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQTRCLFVBQVUsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUMvRixrQkFBa0IsRUFDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBR2hCLHVCQUF1QixJQUFJLHdCQUF3QixHQUNwRCxNQUFNLGlDQUFpQyxDQUFDO0FBU3pDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBTyxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBMkNwRCxTQUFTLFlBQVksQ0FDbkIsR0FBcUMsRUFDckMsV0FBOEI7SUFFOUIsT0FBTyxJQUFJLFVBQVUsQ0FBbUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FDL0QsR0FBRyxFQUNILENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUNwQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFD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QkFBdUI7a0JBRG5DLFVBQVU7O0FBK0ZYLDJEQUEyRDtBQUMzRCxNQUFNLFVBQVUsOEJBQThCO0lBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLENBQUM7QUFDMUUsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsT0FBTyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBcbiAgZG9jLCBjb2xsZWN0aW9uLCBjb2xsZWN0aW9uR3JvdXAsXG4gIFRpbWVzdGFtcCwgc2V0RG9jLCBnZXREb2MsIGRlbGV0ZURvYywgZ2V0RG9jcywgXG4gIG9uU25hcHNob3QsIHVwZGF0ZURvYywgRmlyZXN0b3JlLCBydW5UcmFuc2FjdGlvbiwgd3JpdGVCYXRjaCxcbiAgbGltaXQsIG9yZGVyQnksIHF1ZXJ5LCB3aGVyZSwgUXVlcnlTbmFwc2hvdCwgRmllbGRQYXRoLCBkb2N1bWVudElkLCBGaWVsZFZhbHVlLCBzZXJ2ZXJUaW1lc3RhbXAsXG4gIGdldENvdW50RnJvbVNlcnZlclxufSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5pbXBvcnQge1xuICBGaXJlc3RvcmVBZGFwdGVyLFxuICBRdWVyeUZuIGFzIF9RdWVyeUZuLFxuICBXaGVyZUZpbHRlck9wLFxuICBwcm92aWRlRmlyZXN0b3JlQWRhcHRlciBhcyBfcHJvdmlkZUZpcmVzdG9yZUFkYXB0ZXIsXG59IGZyb20gJ0BueC1kZGQvZmlyZXN0b3JlL2FkYXB0ZXJzL2Jhc2UnO1xuaW1wb3J0IHtcbiAgRG9jdW1lbnRTbmFwc2hvdCxcbiAgQ29sbGVjdGlvblJlZmVyZW5jZSBhcyBfQ29sbGVjdGlvblJlZmVyZW5jZSxcbiAgQ29sbGVjdGlvbkdyb3VwIGFzIF9Db2xsZWN0aW9uR3JvdXAsXG4gIFF1ZXJ5IGFzIF9RdWVyeSxcbiAgRG9jdW1lbnREYXRhLFxuICBEb2N1bWVudFJlZmVyZW5jZSxcbn0gZnJvbSAnQG54LWRkZC9maXJlc3RvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwLCB0YXAsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHR5cGUgZmlyZXN0b3JlIGZyb20gJ2ZpcmViYXNlL2ZpcmVzdG9yZSc7XG5cbnR5cGUgQ29sbGVjdGlvblJlZmVyZW5jZTxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbj4gPSBfQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlLCBmaXJlc3RvcmUuQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPj47XG5cbnR5cGUgQ29sbGVjdGlvbkdyb3VwPFxuICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhXG4+ID0gX0NvbGxlY3Rpb25Hcm91cDxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlLCBmaXJlc3RvcmUuUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4+O1xuXG50eXBlIFF1ZXJ5PFxuICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhXG4+ID0gX1F1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGUsIGZpcmVzdG9yZS5RdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPj47XG5cbnR5cGUgUXVlcnlGbjxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YVxuPiA9IF9RdWVyeUZuPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGUsIGZpcmVzdG9yZS5RdWVyeUNvbnN0cmFpbnQ+XG5cbnR5cGUgT3JpZ2luPFxuICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuPiA9IGZpcmVzdG9yZS5Db2xsZWN0aW9uUmVmZXJlbmNlPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+XG4gIHwgZmlyZXN0b3JlLlF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+O1xuXG50eXBlIENvbGxlY3Rpb25MaWtlPFxuICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuPiA9IENvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4gXG4gIHwgQ29sbGVjdGlvbkdyb3VwPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+XG4gIHwgUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG5cbi8vIFV0aWxpdHkgdHlwZSB0byBtYXAgT3JpZ2luIHRvIENvbGxlY3Rpb25MaWtlXG50eXBlIEluZmVyQ29sbGVjdGlvbkxpa2U8TyBleHRlbmRzIE9yaWdpbj4gPSBcbiAgTyBleHRlbmRzIGZpcmVzdG9yZS5Db2xsZWN0aW9uUmVmZXJlbmNlPGluZmVyIEEsIGluZmVyIEI+ID8gQ29sbGVjdGlvblJlZmVyZW5jZTxBLCBCPiA6XG4gIE8gZXh0ZW5kcyBmaXJlc3RvcmUuUXVlcnk8aW5mZXIgQSwgaW5mZXIgQj4gPyBRdWVyeTxBLCBCPiA6XG4gIG5ldmVyO1xuXG5cbmZ1bmN0aW9uIGFzT2JzZXJ2YWJsZTxUID0gdW5rbm93bj4oXG4gIHJlZjogUGFyYW1ldGVyczx0eXBlb2Ygb25TbmFwc2hvdD5bMF0sXG4gIF9vblNuYXBzaG90OiB0eXBlb2Ygb25TbmFwc2hvdCxcbik6IE9ic2VydmFibGU8UXVlcnlTbmFwc2hvdDxUPj4ge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGU8UXVlcnlTbmFwc2hvdDxUPj4oKG9ic2VydmVyKSA9PiBfb25TbmFwc2hvdChcbiAgICByZWYsIFxuICAgICh2YWx1ZTogYW55KSA9PiBvYnNlcnZlci5uZXh0KHZhbHVlKSxcbiAgICAoZXJyb3I6IGFueSkgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpLFxuICAgICgpID0+IG9ic2VydmVyLmNvbXBsZXRlKCkpLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JhcERvY3VtZW50UmVmZXJlbmNlPFxuICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuPihvcmlnaW46IGZpcmVzdG9yZS5Eb2N1bWVudFJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPik6IERvY3VtZW50UmVmZXJlbmNlPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IHtcbiAgcmV0dXJuIHtcbiAgICBfX3JlZjogb3JpZ2luLFxuICAgIGV4aXN0czogKCkgPT4gZ2V0RG9jKG9yaWdpbikudGhlbihzbmFwc2hvdCA9PiBzbmFwc2hvdC5leGlzdHMoKSksXG4gICAgc2V0OiAoZGF0YSkgPT4gc2V0RG9jKG9yaWdpbiwgZGF0YSksXG4gICAgZ2V0OiAoKSA9PiBnZXREb2Mob3JpZ2luKSxcbiAgICB1cGRhdGU6IChkYXRhKSA9PiB1cGRhdGVEb2Mob3JpZ2luLCBkYXRhIGFzIGFueSksXG4gICAgZGVsZXRlOiAoKSA9PiBkZWxldGVEb2Mob3JpZ2luKSxcbiAgICBzdGF0ZUNoYW5nZXM6ICgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxEb2N1bWVudFNuYXBzaG90PGFueT4+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICByZXR1cm4gb25TbmFwc2hvdChvcmlnaW4sIHZhbHVlID0+IG9ic2VydmVyLm5leHQodmFsdWUpLCBlcnJvciA9PiBvYnNlcnZlci5lcnJvcihlcnJvciksICgpID0+IG9ic2VydmVyLmNvbXBsZXRlKCkpO1xuICAgICAgfSkucGlwZShcbiAgICAgICAgZmlsdGVyKChzbmFwc2hvdDogYW55KSA9PiBzbmFwc2hvdC5leGlzdHMoKSksXG4gICAgICAgIG1hcCgoc25hcHNob3QpID0+ICh7XG4gICAgICAgICAgaWQ6IHNuYXBzaG90LmlkLFxuICAgICAgICAgIHJlZjogc25hcHNob3QucmVmLFxuICAgICAgICAgIGRhdGE6ICgpID0+IHNuYXBzaG90LmRhdGEoKSxcbiAgICAgICAgICBnZXQ6IChmaWVsZFBhdGg6IHN0cmluZykgPT4gc25hcHNob3QuZ2V0KGZpZWxkUGF0aCksXG4gICAgICAgIH0pKSxcbiAgICAgICk7XG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JhcENvbGxlY3Rpb25MaWtlPFxuICBPIGV4dGVuZHMgT3JpZ2luLFxuPihvcmlnaW46IE8pOiBJbmZlckNvbGxlY3Rpb25MaWtlPE8+IHtcbiAgcmV0dXJuIHtcbiAgICBfX3JlZjogb3JpZ2luLFxuICAgIHN0YXRlQ2hhbmdlczogKCkgPT4gYXNPYnNlcnZhYmxlPHVua25vd24+KG9yaWdpbiwgb25TbmFwc2hvdCkucGlwZShcbiAgICAgIG1hcCgoc25hcHNob3QpID0+IHNuYXBzaG90LmRvY0NoYW5nZXMoKS5tYXAoY2hhbmdlID0+ICh7XG4gICAgICAgIHR5cGU6IGNoYW5nZS50eXBlLCBwYXlsb2FkOiB7ZG9jOiBjaGFuZ2UuZG9jfSxcbiAgICAgIH0pKSksXG4gICAgKSxcbiAgICBnZXQ6ICgpID0+IGdldERvY3Mob3JpZ2luKSxcbiAgICBjb3VudDogKCkgPT4gZ2V0Q291bnRGcm9tU2VydmVyKG9yaWdpbikudGhlbihjb3VudCA9PiBjb3VudC5kYXRhKCkuY291bnQpLFxuICB9IGFzIG5ldmVyIGFzIEluZmVyQ29sbGVjdGlvbkxpa2U8Tz47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXBDb2xsZWN0aW9uTGlrZTxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YVxuPihcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkxpa2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT5cbik6IE9yaWdpbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gIHJldHVybiBjb2xsZWN0aW9uLl9fcmVmITtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJGaXJlc3RvcmVBZGFwdGVyIGV4dGVuZHMgRmlyZXN0b3JlQWRhcHRlcjxkYXlqcy5EYXlqcz4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmlyZXN0b3JlID0gaW5qZWN0KEZpcmVzdG9yZSk7XG5cbiAgZ2V0IEZpZWxkVmFsdWUoKTogdHlwZW9mIEZpZWxkVmFsdWUgJiB7c2VydmVyVGltZXN0YW1wOiAoKSA9PiBGaWVsZFZhbHVlfSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oRmllbGRWYWx1ZSwge3NlcnZlclRpbWVzdGFtcH0pO1xuICB9XG5cbiAgZ2V0IFRpbWVzdGFtcCgpOiB0eXBlb2YgVGltZXN0YW1wIHtcbiAgICByZXR1cm4gVGltZXN0YW1wOyAgXG4gIH1cblxuICBnZXQgRmllbGRQYXRoKCk6IHtkb2N1bWVudElkOiAoKSA9PiBGaWVsZFBhdGh9IHtcbiAgICByZXR1cm4ge1xuICAgICAgZG9jdW1lbnRJZDogKCkgPT4gZG9jdW1lbnRJZCgpLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNUaW1lc3RhbXAodjogYW55KTogdiBpcyBUaW1lc3RhbXAge1xuICAgIHJldHVybiB2IGluc3RhbmNlb2YgVGltZXN0YW1wO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRmllbGRWYWx1ZSh2OiBhbnkpOiB2IGlzIEZpZWxkVmFsdWUge1xuICAgIHJldHVybiB2IGluc3RhbmNlb2YgdGhpcy5GaWVsZFZhbHVlO1xuICB9XG4gIFxuICBwcm90ZWN0ZWQgaXNEYXRlKHY6IGFueSk6IHYgaXMgZGF5anMuRGF5anMge1xuICAgIHJldHVybiBkYXlqcy5pc0RheWpzKHYpO1xuICB9XG5cbiAgY29udmVydERhdGVUb1RpbWVzdGFtcChkYXRlOiBkYXlqcy5EYXlqcyk6IFRpbWVzdGFtcCB7XG4gICAgcmV0dXJuIFRpbWVzdGFtcC5mcm9tRGF0ZShkYXRlLnRvRGF0ZSgpKTtcbiAgfVxuXG4gIGNvbnZlcnRUaW1lc3RhbXBUb0RhdGUodGltZXN0YW1wOiBUaW1lc3RhbXApOiBkYXlqcy5EYXlqcyB7XG4gICAgcmV0dXJuIGRheWpzKHRpbWVzdGFtcC50b0RhdGUoKSk7XG4gIH1cblxuICBkb2M8XG4gICAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICAgIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuICA+KHBhdGg6IHN0cmluZyk6IERvY3VtZW50UmVmZXJlbmNlPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IHtcbiAgICBjb25zdCBkb2NSZWYgPSBkb2ModGhpcy5maXJlc3RvcmUsIHBhdGgpO1xuICAgIHJldHVybiB3cmFwRG9jdW1lbnRSZWZlcmVuY2UoZG9jUmVmKSBhcyBEb2N1bWVudFJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcbiAgfVxuXG4gIGNvbGxlY3Rpb248XG4gICAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICAgIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuICA+KHBhdGg6IHN0cmluZyk6IENvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4ge1xuICAgIGNvbnN0IHJlZiA9IGNvbGxlY3Rpb24odGhpcy5maXJlc3RvcmUsIHBhdGgpO1xuICAgIHJldHVybiB3cmFwQ29sbGVjdGlvbkxpa2UocmVmKSBhcyBDb2xsZWN0aW9uUmVmZXJlbmNlPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+O1xuICB9XG5cbiAgY29sbGVjdGlvbkdyb3VwPFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihjb2xsZWN0aW9uSWQ6IHN0cmluZyk6IENvbGxlY3Rpb25Hcm91cDxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gICAgY29uc3QgcmVmID0gY29sbGVjdGlvbkdyb3VwKHRoaXMuZmlyZXN0b3JlLCBjb2xsZWN0aW9uSWQpO1xuICAgIHJldHVybiB3cmFwQ29sbGVjdGlvbkxpa2UocmVmKSBhcyBDb2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG4gIH1cblxuICBxdWVyeTxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPixcbiAgICAuLi5xdWVyeUZuQXJyYXk6IFF1ZXJ5Rm5bXVxuICApOiBRdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gICAgY29uc3QgcmVmID0gdW53cmFwQ29sbGVjdGlvbkxpa2UoY29sbGVjdGlvbikgYXMgZmlyZXN0b3JlLlF1ZXJ5PERvY3VtZW50RGF0YSwgRGJNb2RlbFR5cGU+O1xuICAgIGNvbnN0IF9xdWVyeSA9IHF1ZXJ5KHJlZiwgLi4ucXVlcnlGbkFycmF5Lm1hcChxdWVyeUZuID0+IHF1ZXJ5Rm4oKSkpO1xuICAgIHJldHVybiB3cmFwQ29sbGVjdGlvbkxpa2UoX3F1ZXJ5KSBhcyBRdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcbiAgfVxuXG4gIHdoZXJlPERhdGE+KGZpZWxkUGF0aDogc3RyaW5nLCBvcFN0cjogV2hlcmVGaWx0ZXJPcCwgdmFsdWU6IHVua25vd24pOiBRdWVyeUZuPERhdGE+IHtcbiAgICByZXR1cm4gKCkgPT4gd2hlcmUoZmllbGRQYXRoLCBvcFN0ciwgdmFsdWUpO1xuICB9XG5cbiAgb3JkZXJCeTxEYXRhPihrZXk6IHN0cmluZywgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnID0gJ2FzYycpOiBRdWVyeUZuPERhdGE+IHtcbiAgICByZXR1cm4gKCkgPT4gb3JkZXJCeShrZXksIG9yZGVyKTtcbiAgfVxuXG4gIGxpbWl0PERhdGE+KG46IG51bWJlcik6IFF1ZXJ5Rm48RGF0YT4ge1xuICAgIHJldHVybiAoKSA9PiBsaW1pdChuKTtcbiAgfVxuXG4gIHJ1blRyYW5zYWN0aW9uKGZuOiBQYXJhbWV0ZXJzPHR5cGVvZiBydW5UcmFuc2FjdGlvbj5bMV0pIHtcbiAgICByZXR1cm4gcnVuVHJhbnNhY3Rpb24odGhpcy5maXJlc3RvcmUsIGZuKTtcbiAgfVxuXG4gIGJhdGNoKCkge1xuICAgIHJldHVybiB3cml0ZUJhdGNoKHRoaXMuZmlyZXN0b3JlKTtcbiAgfVxufVxuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIGBwcm92aWRlRmlyZXN0b3JlQWRhcHRlcigpYCBpbnN0ZWFkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBbmd1bGFyRmlyZXN0b3JlQWRhcHRlcigpOiBQcm92aWRlciB7XG4gIHJldHVybiB7IHByb3ZpZGU6IEZpcmVzdG9yZUFkYXB0ZXIsIHVzZUNsYXNzOiBBbmd1bGFyRmlyZXN0b3JlQWRhcHRlciB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUZpcmVzdG9yZUFkYXB0ZXIoKTogUHJvdmlkZXIge1xuICByZXR1cm4gX3Byb3ZpZGVGaXJlc3RvcmVBZGFwdGVyKEFuZ3VsYXJGaXJlc3RvcmVBZGFwdGVyKTtcbn1cbiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1maXJlc3RvcmUuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvZmlyZXN0b3JlLWFuZ3VsYXItYWRhcHRlci9zcmMvbGliL2FuZ3VsYXItZmlyZXN0b3JlLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUNMLEdBQUcsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUNoQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUM3QyxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUM1RCxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQTRCLFVBQVUsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUMvRixrQkFBa0IsRUFDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBR2hCLHVCQUF1QixJQUFJLHdCQUF3QixHQUNwRCxNQUFNLGlDQUFpQyxDQUFDO0FBU3pDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBTyxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBMkNwRCxTQUFTLFlBQVksQ0FDbkIsR0FBcUMsRUFDckMsV0FBOEI7SUFFOUIsT0FBTyxJQUFJLFVBQVUsQ0FBbUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FDL0QsR0FBRyxFQUNILENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUNwQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFD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QUFFLENBQUMsQ0FBQztZQUNuRCxNQUFNLEVBQUUsQ0FBQyxHQUFRLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakUsR0FBRyxFQUFFLENBQUMsR0FBUSxFQUFFLElBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzlELE1BQU0sRUFBRSxDQUFDLEdBQVEsRUFBRSxJQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNwRSxNQUFNLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1NBQzlCLENBQUMsQ0FBQTtRQUNGLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7OEdBbkdVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOztBQXVHWCwyREFBMkQ7QUFDM0QsTUFBTSxVQUFVLDhCQUE4QjtJQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxDQUFDO0FBQzFFLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU8sd0JBQXdCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUMzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgXG4gIGRvYywgY29sbGVjdGlvbiwgY29sbGVjdGlvbkdyb3VwLFxuICBUaW1lc3RhbXAsIHNldERvYywgZ2V0RG9jLCBkZWxldGVEb2MsIGdldERvY3MsIFxuICBvblNuYXBzaG90LCB1cGRhdGVEb2MsIEZpcmVzdG9yZSwgcnVuVHJhbnNhY3Rpb24sIHdyaXRlQmF0Y2gsXG4gIGxpbWl0LCBvcmRlckJ5LCBxdWVyeSwgd2hlcmUsIFF1ZXJ5U25hcHNob3QsIEZpZWxkUGF0aCwgZG9jdW1lbnRJZCwgRmllbGRWYWx1ZSwgc2VydmVyVGltZXN0YW1wLFxuICBnZXRDb3VudEZyb21TZXJ2ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9maXJlc3RvcmUnO1xuaW1wb3J0IHtcbiAgRmlyZXN0b3JlQWRhcHRlcixcbiAgUXVlcnlGbiBhcyBfUXVlcnlGbixcbiAgV2hlcmVGaWx0ZXJPcCxcbiAgcHJvdmlkZUZpcmVzdG9yZUFkYXB0ZXIgYXMgX3Byb3ZpZGVGaXJlc3RvcmVBZGFwdGVyLFxufSBmcm9tICdAbngtZGRkL2ZpcmVzdG9yZS9hZGFwdGVycy9iYXNlJztcbmltcG9ydCB7XG4gIERvY3VtZW50U25hcHNob3QsXG4gIENvbGxlY3Rpb25SZWZlcmVuY2UgYXMgX0NvbGxlY3Rpb25SZWZlcmVuY2UsXG4gIENvbGxlY3Rpb25Hcm91cCBhcyBfQ29sbGVjdGlvbkdyb3VwLFxuICBRdWVyeSBhcyBfUXVlcnksXG4gIERvY3VtZW50RGF0YSxcbiAgRG9jdW1lbnRSZWZlcmVuY2UsXG59IGZyb20gJ0BueC1kZGQvZmlyZXN0b3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCwgdGFwLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB0eXBlIGZpcmVzdG9yZSBmcm9tICdmaXJlYmFzZS9maXJlc3RvcmUnO1xuXG50eXBlIENvbGxlY3Rpb25SZWZlcmVuY2U8XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4+ID0gX0NvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgZmlyZXN0b3JlLkNvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4+O1xuXG50eXBlIENvbGxlY3Rpb25Hcm91cDxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YVxuPiA9IF9Db2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZSwgZmlyZXN0b3JlLlF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+PjtcblxudHlwZSBRdWVyeTxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YVxuPiA9IF9RdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlLCBmaXJlc3RvcmUuUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4+O1xuXG50eXBlIFF1ZXJ5Rm48XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGFcbj4gPSBfUXVlcnlGbjxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlLCBmaXJlc3RvcmUuUXVlcnlDb25zdHJhaW50PlxuXG50eXBlIE9yaWdpbjxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbj4gPSBmaXJlc3RvcmUuQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuICB8IGZpcmVzdG9yZS5RdWVyeTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcblxudHlwZSBDb2xsZWN0aW9uTGlrZTxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbj4gPSBDb2xsZWN0aW9uUmVmZXJlbmNlPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IFxuICB8IENvbGxlY3Rpb25Hcm91cDxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPlxuICB8IFF1ZXJ5PEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+O1xuXG4vLyBVdGlsaXR5IHR5cGUgdG8gbWFwIE9yaWdpbiB0byBDb2xsZWN0aW9uTGlrZVxudHlwZSBJbmZlckNvbGxlY3Rpb25MaWtlPE8gZXh0ZW5kcyBPcmlnaW4+ID0gXG4gIE8gZXh0ZW5kcyBmaXJlc3RvcmUuQ29sbGVjdGlvblJlZmVyZW5jZTxpbmZlciBBLCBpbmZlciBCPiA/IENvbGxlY3Rpb25SZWZlcmVuY2U8QSwgQj4gOlxuICBPIGV4dGVuZHMgZmlyZXN0b3JlLlF1ZXJ5PGluZmVyIEEsIGluZmVyIEI+ID8gUXVlcnk8QSwgQj4gOlxuICBuZXZlcjtcblxuXG5mdW5jdGlvbiBhc09ic2VydmFibGU8VCA9IHVua25vd24+KFxuICByZWY6IFBhcmFtZXRlcnM8dHlwZW9mIG9uU25hcHNob3Q+WzBdLFxuICBfb25TbmFwc2hvdDogdHlwZW9mIG9uU25hcHNob3QsXG4pOiBPYnNlcnZhYmxlPFF1ZXJ5U25hcHNob3Q8VD4+IHtcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFF1ZXJ5U25hcHNob3Q8VD4+KChvYnNlcnZlcikgPT4gX29uU25hcHNob3QoXG4gICAgcmVmLCBcbiAgICAodmFsdWU6IGFueSkgPT4gb2JzZXJ2ZXIubmV4dCh2YWx1ZSksXG4gICAgKGVycm9yOiBhbnkpID0+IG9ic2VydmVyLmVycm9yKGVycm9yKSxcbiAgICAoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBEb2N1bWVudFJlZmVyZW5jZTxcbiAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbj4ob3JpZ2luOiBmaXJlc3RvcmUuRG9jdW1lbnRSZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4pOiBEb2N1bWVudFJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gIHJldHVybiB7XG4gICAgX19yZWY6IG9yaWdpbixcbiAgICBleGlzdHM6ICgpID0+IGdldERvYyhvcmlnaW4pLnRoZW4oc25hcHNob3QgPT4gc25hcHNob3QuZXhpc3RzKCkpLFxuICAgIHNldDogKGRhdGEpID0+IHNldERvYyhvcmlnaW4sIGRhdGEpLFxuICAgIGdldDogKCkgPT4gZ2V0RG9jKG9yaWdpbiksXG4gICAgdXBkYXRlOiAoZGF0YSkgPT4gdXBkYXRlRG9jKG9yaWdpbiwgZGF0YSBhcyBhbnkpLFxuICAgIGRlbGV0ZTogKCkgPT4gZGVsZXRlRG9jKG9yaWdpbiksXG4gICAgc3RhdGVDaGFuZ2VzOiAoKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8RG9jdW1lbnRTbmFwc2hvdDxhbnk+Pigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIG9uU25hcHNob3Qob3JpZ2luLCB2YWx1ZSA9PiBvYnNlcnZlci5uZXh0KHZhbHVlKSwgZXJyb3IgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpLCAoKSA9PiBvYnNlcnZlci5jb21wbGV0ZSgpKTtcbiAgICAgIH0pLnBpcGUoXG4gICAgICAgIGZpbHRlcigoc25hcHNob3Q6IGFueSkgPT4gc25hcHNob3QuZXhpc3RzKCkpLFxuICAgICAgICBtYXAoKHNuYXBzaG90KSA9PiAoe1xuICAgICAgICAgIGlkOiBzbmFwc2hvdC5pZCxcbiAgICAgICAgICByZWY6IHNuYXBzaG90LnJlZixcbiAgICAgICAgICBkYXRhOiAoKSA9PiBzbmFwc2hvdC5kYXRhKCksXG4gICAgICAgICAgZ2V0OiAoZmllbGRQYXRoOiBzdHJpbmcpID0+IHNuYXBzaG90LmdldChmaWVsZFBhdGgpLFxuICAgICAgICB9KSksXG4gICAgICApO1xuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBDb2xsZWN0aW9uTGlrZTxcbiAgTyBleHRlbmRzIE9yaWdpbixcbj4ob3JpZ2luOiBPKTogSW5mZXJDb2xsZWN0aW9uTGlrZTxPPiB7XG4gIHJldHVybiB7XG4gICAgX19yZWY6IG9yaWdpbixcbiAgICBzdGF0ZUNoYW5nZXM6ICgpID0+IGFzT2JzZXJ2YWJsZTx1bmtub3duPihvcmlnaW4sIG9uU25hcHNob3QpLnBpcGUoXG4gICAgICBtYXAoKHNuYXBzaG90KSA9PiBzbmFwc2hvdC5kb2NDaGFuZ2VzKCkubWFwKGNoYW5nZSA9PiAoe1xuICAgICAgICB0eXBlOiBjaGFuZ2UudHlwZSwgcGF5bG9hZDoge2RvYzogY2hhbmdlLmRvY30sXG4gICAgICB9KSkpLFxuICAgICksXG4gICAgZ2V0OiAoKSA9PiBnZXREb2NzKG9yaWdpbiksXG4gICAgY291bnQ6ICgpID0+IGdldENvdW50RnJvbVNlcnZlcihvcmlnaW4pLnRoZW4oY291bnQgPT4gY291bnQuZGF0YSgpLmNvdW50KSxcbiAgfSBhcyBuZXZlciBhcyBJbmZlckNvbGxlY3Rpb25MaWtlPE8+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW53cmFwQ29sbGVjdGlvbkxpa2U8XG4gIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGFcbj4oXG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25MaWtlPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+XG4pOiBPcmlnaW48QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4ge1xuICByZXR1cm4gY29sbGVjdGlvbi5fX3JlZiE7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBbmd1bGFyRmlyZXN0b3JlQWRhcHRlciBleHRlbmRzIEZpcmVzdG9yZUFkYXB0ZXI8ZGF5anMuRGF5anM+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpcmVzdG9yZSA9IGluamVjdChGaXJlc3RvcmUpO1xuXG4gIGdldCBGaWVsZFZhbHVlKCk6IHR5cGVvZiBGaWVsZFZhbHVlICYge3NlcnZlclRpbWVzdGFtcDogKCkgPT4gRmllbGRWYWx1ZX0ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKEZpZWxkVmFsdWUsIHtzZXJ2ZXJUaW1lc3RhbXB9KTtcbiAgfVxuXG4gIGdldCBUaW1lc3RhbXAoKTogdHlwZW9mIFRpbWVzdGFtcCB7XG4gICAgcmV0dXJuIFRpbWVzdGFtcDsgIFxuICB9XG5cbiAgZ2V0IEZpZWxkUGF0aCgpOiB7ZG9jdW1lbnRJZDogKCkgPT4gRmllbGRQYXRofSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRvY3VtZW50SWQ6ICgpID0+IGRvY3VtZW50SWQoKSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzVGltZXN0YW1wKHY6IGFueSk6IHYgaXMgVGltZXN0YW1wIHtcbiAgICByZXR1cm4gdiBpbnN0YW5jZW9mIFRpbWVzdGFtcDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0ZpZWxkVmFsdWUodjogYW55KTogdiBpcyBGaWVsZFZhbHVlIHtcbiAgICByZXR1cm4gdiBpbnN0YW5jZW9mIHRoaXMuRmllbGRWYWx1ZTtcbiAgfVxuICBcbiAgcHJvdGVjdGVkIGlzRGF0ZSh2OiBhbnkpOiB2IGlzIGRheWpzLkRheWpzIHtcbiAgICByZXR1cm4gZGF5anMuaXNEYXlqcyh2KTtcbiAgfVxuXG4gIGNvbnZlcnREYXRlVG9UaW1lc3RhbXAoZGF0ZTogZGF5anMuRGF5anMpOiBUaW1lc3RhbXAge1xuICAgIHJldHVybiBUaW1lc3RhbXAuZnJvbURhdGUoZGF0ZS50b0RhdGUoKSk7XG4gIH1cblxuICBjb252ZXJ0VGltZXN0YW1wVG9EYXRlKHRpbWVzdGFtcDogVGltZXN0YW1wKTogZGF5anMuRGF5anMge1xuICAgIHJldHVybiBkYXlqcyh0aW1lc3RhbXAudG9EYXRlKCkpO1xuICB9XG5cbiAgZG9jPFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihwYXRoOiBzdHJpbmcpOiBEb2N1bWVudFJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPiB7XG4gICAgY29uc3QgZG9jUmVmID0gZG9jKHRoaXMuZmlyZXN0b3JlLCBwYXRoKTtcbiAgICByZXR1cm4gd3JhcERvY3VtZW50UmVmZXJlbmNlKGRvY1JlZikgYXMgRG9jdW1lbnRSZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG4gIH1cblxuICBjb2xsZWN0aW9uPFxuICAgIEFwcE1vZGVsVHlwZSA9IERvY3VtZW50RGF0YSxcbiAgICBEYk1vZGVsVHlwZSBleHRlbmRzIERvY3VtZW50RGF0YSA9IERvY3VtZW50RGF0YSxcbiAgPihwYXRoOiBzdHJpbmcpOiBDb2xsZWN0aW9uUmVmZXJlbmNlPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+IHtcbiAgICBjb25zdCByZWYgPSBjb2xsZWN0aW9uKHRoaXMuZmlyZXN0b3JlLCBwYXRoKTtcbiAgICByZXR1cm4gd3JhcENvbGxlY3Rpb25MaWtlKHJlZikgYXMgQ29sbGVjdGlvblJlZmVyZW5jZTxBcHBNb2RlbFR5cGUsIERiTW9kZWxUeXBlPjtcbiAgfVxuXG4gIGNvbGxlY3Rpb25Hcm91cDxcbiAgICBBcHBNb2RlbFR5cGUgPSBEb2N1bWVudERhdGEsXG4gICAgRGJNb2RlbFR5cGUgZXh0ZW5kcyBEb2N1bWVudERhdGEgPSBEb2N1bWVudERhdGEsXG4gID4oY29sbGVjdGlvbklkOiBzdHJpbmcpOiBDb2xsZWN0aW9uR3JvdXA8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4ge1xuICAgIGNvbnN0IHJlZiA9IGNvbGxlY3Rpb25Hcm91cCh0aGlzLmZpcmVzdG9yZSwgY29sbGVjdGlvbklkKTtcbiAgICByZXR1cm4gd3JhcENvbGxlY3Rpb25MaWtlKHJlZikgYXMgQ29sbGVjdGlvbkdyb3VwPEFwcE1vZGVsVHlwZSwgRGJNb2RlbFR5cGU+O1xuICB9XG5cbiAgcXVlcnk8XG4gICAgQXBwTW9kZWxUeXBlID0gRG9jdW1lbnREYXRhLFxuICAgIERiTW9kZWxUeXBlIGV4dGVuZHMgRG9jdW1lbnREYXRhID0gRG9jdW1lbnREYXRhLFxuICA+KFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb25SZWZlcmVuY2U8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4sXG4gICAgLi4ucXVlcnlGbkFycmF5OiBRdWVyeUZuW11cbiAgKTogUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT4ge1xuICAgIGNvbnN0IHJlZiA9IHVud3JhcENvbGxlY3Rpb25MaWtlKGNvbGxlY3Rpb24pIGFzIGZpcmVzdG9yZS5RdWVyeTxEb2N1bWVudERhdGEsIERiTW9kZWxUeXBlPjtcbiAgICBjb25zdCBfcXVlcnkgPSBxdWVyeShyZWYsIC4uLnF1ZXJ5Rm5BcnJheS5tYXAocXVlcnlGbiA9PiBxdWVyeUZuKCkpKTtcbiAgICByZXR1cm4gd3JhcENvbGxlY3Rpb25MaWtlKF9xdWVyeSkgYXMgUXVlcnk8QXBwTW9kZWxUeXBlLCBEYk1vZGVsVHlwZT47XG4gIH1cblxuICB3aGVyZTxEYXRhPihmaWVsZFBhdGg6IHN0cmluZywgb3BTdHI6IFdoZXJlRmlsdGVyT3AsIHZhbHVlOiB1bmtub3duKTogUXVlcnlGbjxEYXRhPiB7XG4gICAgcmV0dXJuICgpID0+IHdoZXJlKGZpZWxkUGF0aCwgb3BTdHIsIHZhbHVlKTtcbiAgfVxuXG4gIG9yZGVyQnk8RGF0YT4oa2V5OiBzdHJpbmcsIG9yZGVyOiAnYXNjJyB8ICdkZXNjJyA9ICdhc2MnKTogUXVlcnlGbjxEYXRhPiB7XG4gICAgcmV0dXJuICgpID0+IG9yZGVyQnkoa2V5LCBvcmRlcik7XG4gIH1cblxuICBsaW1pdDxEYXRhPihuOiBudW1iZXIpOiBRdWVyeUZuPERhdGE+IHtcbiAgICByZXR1cm4gKCkgPT4gbGltaXQobik7XG4gIH1cblxuICBydW5UcmFuc2FjdGlvbihmbjogUGFyYW1ldGVyczx0eXBlb2YgcnVuVHJhbnNhY3Rpb24+WzFdKSB7XG4gICAgcmV0dXJuIHJ1blRyYW5zYWN0aW9uKHRoaXMuZmlyZXN0b3JlLCBmbik7XG4gIH1cblxuICBiYXRjaCgpIHtcbiAgICBjb25zdCBiYXRjaCA9IHdyaXRlQmF0Y2godGhpcy5maXJlc3RvcmUpO1xuICAgIGNvbnN0IHdyYXBCYXRjaCA9IChfYmF0Y2g6IGZpcmVzdG9yZS5Xcml0ZUJhdGNoKSA9PiAoe1xuICAgICAgY3JlYXRlOiAocmVmOiBhbnksIGRhdGE6IGFueSkgPT4gd3JhcEJhdGNoKF9iYXRjaC5zZXQocmVmLCBkYXRhKSksXG4gICAgICBzZXQ6IChyZWY6IGFueSwgZGF0YTogYW55KSA9PiB3cmFwQmF0Y2goX2JhdGNoLnNldChyZWYsIGRhdGEpKSxcbiAgICAgIHVwZGF0ZTogKHJlZjogYW55LCBkYXRhOiBhbnkpID0+IHdyYXBCYXRjaChfYmF0Y2gudXBkYXRlKHJlZiwgZGF0YSkpLFxuICAgICAgZGVsZXRlOiAocmVmOiBhbnkpID0+IHdyYXBCYXRjaChfYmF0Y2guZGVsZXRlKHJlZikpLFxuICAgICAgY29tbWl0OiAoKSA9PiBfYmF0Y2guY29tbWl0KCksXG4gICAgfSlcbiAgICByZXR1cm4gd3JhcEJhdGNoKGJhdGNoKTtcbiAgfVxufVxuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIGBwcm92aWRlRmlyZXN0b3JlQWRhcHRlcigpYCBpbnN0ZWFkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBbmd1bGFyRmlyZXN0b3JlQWRhcHRlcigpOiBQcm92aWRlciB7XG4gIHJldHVybiB7IHByb3ZpZGU6IEZpcmVzdG9yZUFkYXB0ZXIsIHVzZUNsYXNzOiBBbmd1bGFyRmlyZXN0b3JlQWRhcHRlciB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUZpcmVzdG9yZUFkYXB0ZXIoKTogUHJvdmlkZXIge1xuICByZXR1cm4gX3Byb3ZpZGVGaXJlc3RvcmVBZGFwdGVyKEFuZ3VsYXJGaXJlc3RvcmVBZGFwdGVyKTtcbn1cbiJdfQ==
@@ -102,7 +102,15 @@ class AngularFirestoreAdapter extends FirestoreAdapter {
102
102
  return runTransaction(this.firestore, fn);
103
103
  }
104
104
  batch() {
105
- return writeBatch(this.firestore);
105
+ const batch = writeBatch(this.firestore);
106
+ const wrapBatch = (_batch) => ({
107
+ create: (ref, data) => wrapBatch(_batch.set(ref, data)),
108
+ set: (ref, data) => wrapBatch(_batch.set(ref, data)),
109
+ update: (ref, data) => wrapBatch(_batch.update(ref, data)),
110
+ delete: (ref) => wrapBatch(_batch.delete(ref)),
111
+ commit: () => _batch.commit(),
112
+ });
113
+ return wrapBatch(batch);
106
114
  }
107
115
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: AngularFirestoreAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
108
116
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: AngularFirestoreAdapter }); }
@@ -1 +1 @@
1
- {"version":3,"file":"nx-ddd-firestore-angular-adapter.mjs","sources":["../../../../../packages/@nx-ddd/firestore-angular-adapter/src/lib/angular-firestore.adapter.ts","../../../../../packages/@nx-ddd/firestore-angular-adapter/src/nx-ddd-firestore-angular-adapter.ts"],"sourcesContent":["import { inject, Injectable, Provider } from '@angular/core';\nimport { \n doc, collection, collectionGroup,\n Timestamp, setDoc, getDoc, deleteDoc, getDocs, \n onSnapshot, updateDoc, Firestore, runTransaction, writeBatch,\n limit, orderBy, query, where, QuerySnapshot, FieldPath, documentId, FieldValue, serverTimestamp,\n getCountFromServer\n} from '@angular/fire/firestore';\nimport {\n FirestoreAdapter,\n QueryFn as _QueryFn,\n WhereFilterOp,\n provideFirestoreAdapter as _provideFirestoreAdapter,\n} from '@nx-ddd/firestore/adapters/base';\nimport {\n DocumentSnapshot,\n CollectionReference as _CollectionReference,\n CollectionGroup as _CollectionGroup,\n Query as _Query,\n DocumentData,\n DocumentReference,\n} from '@nx-ddd/firestore/interfaces';\nimport dayjs from 'dayjs';\nimport { Observable, map, tap, filter } from 'rxjs';\nimport type firestore from 'firebase/firestore';\n\ntype CollectionReference<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n> = _CollectionReference<AppModelType, DbModelType, firestore.CollectionReference<AppModelType, DbModelType>>;\n\ntype CollectionGroup<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData\n> = _CollectionGroup<AppModelType, DbModelType, firestore.Query<AppModelType, DbModelType>>;\n\ntype Query<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData\n> = _Query<AppModelType, DbModelType, firestore.Query<AppModelType, DbModelType>>;\n\ntype QueryFn<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData\n> = _QueryFn<AppModelType, DbModelType, firestore.QueryConstraint>\n\ntype Origin<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n> = firestore.CollectionReference<AppModelType, DbModelType>\n | firestore.Query<AppModelType, DbModelType>;\n\ntype CollectionLike<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n> = CollectionReference<AppModelType, DbModelType> \n | CollectionGroup<AppModelType, DbModelType>\n | Query<AppModelType, DbModelType>;\n\n// Utility type to map Origin to CollectionLike\ntype InferCollectionLike<O extends Origin> = \n O extends firestore.CollectionReference<infer A, infer B> ? CollectionReference<A, B> :\n O extends firestore.Query<infer A, infer B> ? Query<A, B> :\n never;\n\n\nfunction asObservable<T = unknown>(\n ref: Parameters<typeof onSnapshot>[0],\n _onSnapshot: typeof onSnapshot,\n): Observable<QuerySnapshot<T>> {\n return new Observable<QuerySnapshot<T>>((observer) => _onSnapshot(\n ref, \n (value: any) => observer.next(value),\n (error: any) => observer.error(error),\n () => observer.complete()),\n );\n}\n\nexport function wrapDocumentReference<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n>(origin: firestore.DocumentReference<AppModelType, DbModelType>): DocumentReference<AppModelType, DbModelType> {\n return {\n __ref: origin,\n exists: () => getDoc(origin).then(snapshot => snapshot.exists()),\n set: (data) => setDoc(origin, data),\n get: () => getDoc(origin),\n update: (data) => updateDoc(origin, data as any),\n delete: () => deleteDoc(origin),\n stateChanges: () => {\n return new Observable<DocumentSnapshot<any>>((observer) => {\n return onSnapshot(origin, value => observer.next(value), error => observer.error(error), () => observer.complete());\n }).pipe(\n filter((snapshot: any) => snapshot.exists()),\n map((snapshot) => ({\n id: snapshot.id,\n ref: snapshot.ref,\n data: () => snapshot.data(),\n get: (fieldPath: string) => snapshot.get(fieldPath),\n })),\n );\n },\n }\n}\n\nexport function wrapCollectionLike<\n O extends Origin,\n>(origin: O): InferCollectionLike<O> {\n return {\n __ref: origin,\n stateChanges: () => asObservable<unknown>(origin, onSnapshot).pipe(\n map((snapshot) => snapshot.docChanges().map(change => ({\n type: change.type, payload: {doc: change.doc},\n }))),\n ),\n get: () => getDocs(origin),\n count: () => getCountFromServer(origin).then(count => count.data().count),\n } as never as InferCollectionLike<O>;\n}\n\nexport function unwrapCollectionLike<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData\n>(\n collection: CollectionLike<AppModelType, DbModelType>\n): Origin<AppModelType, DbModelType> {\n return collection.__ref!;\n}\n\n@Injectable()\nexport class AngularFirestoreAdapter extends FirestoreAdapter<dayjs.Dayjs> {\n protected readonly firestore = inject(Firestore);\n\n get FieldValue(): typeof FieldValue & {serverTimestamp: () => FieldValue} {\n return Object.assign(FieldValue, {serverTimestamp});\n }\n\n get Timestamp(): typeof Timestamp {\n return Timestamp; \n }\n\n get FieldPath(): {documentId: () => FieldPath} {\n return {\n documentId: () => documentId(),\n };\n }\n\n protected isTimestamp(v: any): v is Timestamp {\n return v instanceof Timestamp;\n }\n\n protected isFieldValue(v: any): v is FieldValue {\n return v instanceof this.FieldValue;\n }\n \n protected isDate(v: any): v is dayjs.Dayjs {\n return dayjs.isDayjs(v);\n }\n\n convertDateToTimestamp(date: dayjs.Dayjs): Timestamp {\n return Timestamp.fromDate(date.toDate());\n }\n\n convertTimestampToDate(timestamp: Timestamp): dayjs.Dayjs {\n return dayjs(timestamp.toDate());\n }\n\n doc<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n >(path: string): DocumentReference<AppModelType, DbModelType> {\n const docRef = doc(this.firestore, path);\n return wrapDocumentReference(docRef) as DocumentReference<AppModelType, DbModelType>;\n }\n\n collection<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n >(path: string): CollectionReference<AppModelType, DbModelType> {\n const ref = collection(this.firestore, path);\n return wrapCollectionLike(ref) as CollectionReference<AppModelType, DbModelType>;\n }\n\n collectionGroup<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n >(collectionId: string): CollectionGroup<AppModelType, DbModelType> {\n const ref = collectionGroup(this.firestore, collectionId);\n return wrapCollectionLike(ref) as CollectionGroup<AppModelType, DbModelType>;\n }\n\n query<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n >(\n collection: CollectionReference<AppModelType, DbModelType>,\n ...queryFnArray: QueryFn[]\n ): Query<AppModelType, DbModelType> {\n const ref = unwrapCollectionLike(collection) as firestore.Query<DocumentData, DbModelType>;\n const _query = query(ref, ...queryFnArray.map(queryFn => queryFn()));\n return wrapCollectionLike(_query) as Query<AppModelType, DbModelType>;\n }\n\n where<Data>(fieldPath: string, opStr: WhereFilterOp, value: unknown): QueryFn<Data> {\n return () => where(fieldPath, opStr, value);\n }\n\n orderBy<Data>(key: string, order: 'asc' | 'desc' = 'asc'): QueryFn<Data> {\n return () => orderBy(key, order);\n }\n\n limit<Data>(n: number): QueryFn<Data> {\n return () => limit(n);\n }\n\n runTransaction(fn: Parameters<typeof runTransaction>[1]) {\n return runTransaction(this.firestore, fn);\n }\n\n batch() {\n return writeBatch(this.firestore);\n }\n}\n\n/** @deprecated use `provideFirestoreAdapter()` instead. */\nexport function provideAngularFirestoreAdapter(): Provider {\n return { provide: FirestoreAdapter, useClass: AngularFirestoreAdapter };\n}\n\nexport function provideFirestoreAdapter(): Provider {\n return _provideFirestoreAdapter(AngularFirestoreAdapter);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_provideFirestoreAdapter"],"mappings":";;;;;;;AAkEA,SAAS,YAAY,CACnB,GAAqC,EACrC,WAA8B,EAAA;IAE9B,OAAO,IAAI,UAAU,CAAmB,CAAC,QAAQ,KAAK,WAAW,CAC/D,GAAG,EACH,CAAC,KAAU,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EACpC,CAAC,KAAU,KAAK,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EACrC,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAC3B,CAAC;AACJ,CAAC;AAEK,SAAU,qBAAqB,CAGnC,MAA8D,EAAA;IAC9D,OAAO;AACL,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QAChE,GAAG,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AACnC,QAAA,GAAG,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE,IAAW,CAAC;AAChD,QAAA,MAAM,EAAE,MAAM,SAAS,CAAC,MAAM,CAAC;QAC/B,YAAY,EAAE,MAAK;AACjB,YAAA,OAAO,IAAI,UAAU,CAAwB,CAAC,QAAQ,KAAI;AACxD,gBAAA,OAAO,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;aACrH,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,CAAC,QAAa,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC,EAC5C,GAAG,CAAC,CAAC,QAAQ,MAAM;gBACjB,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,GAAG,EAAE,QAAQ,CAAC,GAAG;AACjB,gBAAA,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE;gBAC3B,GAAG,EAAE,CAAC,SAAiB,KAAK,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;aACpD,CAAC,CAAC,CACJ,CAAC;SACH;KACF,CAAA;AACH,CAAC;AAEK,SAAU,kBAAkB,CAEhC,MAAS,EAAA;IACT,OAAO;AACL,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,YAAY,EAAE,MAAM,YAAY,CAAU,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,CAChE,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK;AACrD,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAC;SAC9C,CAAC,CAAC,CAAC,CACL;AACD,QAAA,GAAG,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC;QAC1B,KAAK,EAAE,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;KACvC,CAAC;AACvC,CAAC;AAEK,SAAU,oBAAoB,CAIlC,UAAqD,EAAA;IAErD,OAAO,UAAU,CAAC,KAAM,CAAC;AAC3B,CAAC;AAGK,MAAO,uBAAwB,SAAQ,gBAA6B,CAAA;AAD1E,IAAA,WAAA,GAAA;;AAEqB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AA2FlD,KAAA;AAzFC,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAC,eAAe,EAAC,CAAC,CAAC;KACrD;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO;AACL,YAAA,UAAU,EAAE,MAAM,UAAU,EAAE;SAC/B,CAAC;KACH;AAES,IAAA,WAAW,CAAC,CAAM,EAAA;QAC1B,OAAO,CAAC,YAAY,SAAS,CAAC;KAC/B;AAES,IAAA,YAAY,CAAC,CAAM,EAAA;AAC3B,QAAA,OAAO,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC;KACrC;AAES,IAAA,MAAM,CAAC,CAAM,EAAA;AACrB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACzB;AAED,IAAA,sBAAsB,CAAC,IAAiB,EAAA;QACtC,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;KAC1C;AAED,IAAA,sBAAsB,CAAC,SAAoB,EAAA;AACzC,QAAA,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;KAClC;AAED,IAAA,GAAG,CAGD,IAAY,EAAA;QACZ,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACzC,QAAA,OAAO,qBAAqB,CAAC,MAAM,CAAiD,CAAC;KACtF;AAED,IAAA,UAAU,CAGR,IAAY,EAAA;QACZ,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC7C,QAAA,OAAO,kBAAkB,CAAC,GAAG,CAAmD,CAAC;KAClF;AAED,IAAA,eAAe,CAGb,YAAoB,EAAA;QACpB,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAC1D,QAAA,OAAO,kBAAkB,CAAC,GAAG,CAA+C,CAAC;KAC9E;AAED,IAAA,KAAK,CAIH,UAA0D,EAC1D,GAAG,YAAuB,EAAA;AAE1B,QAAA,MAAM,GAAG,GAAG,oBAAoB,CAAC,UAAU,CAA+C,CAAC;AAC3F,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;AACrE,QAAA,OAAO,kBAAkB,CAAC,MAAM,CAAqC,CAAC;KACvE;AAED,IAAA,KAAK,CAAO,SAAiB,EAAE,KAAoB,EAAE,KAAc,EAAA;QACjE,OAAO,MAAM,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;KAC7C;AAED,IAAA,OAAO,CAAO,GAAW,EAAE,KAAA,GAAwB,KAAK,EAAA;QACtD,OAAO,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KAClC;AAED,IAAA,KAAK,CAAO,CAAS,EAAA;AACnB,QAAA,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;KACvB;AAED,IAAA,cAAc,CAAC,EAAwC,EAAA;QACrD,OAAO,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;KAC3C;IAED,KAAK,GAAA;AACH,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACnC;8GA3FU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAvB,uBAAuB,EAAA,CAAA,CAAA,EAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;;AA+FX;SACgB,8BAA8B,GAAA;IAC5C,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAC;AAC1E,CAAC;SAEe,uBAAuB,GAAA;AACrC,IAAA,OAAOA,yBAAwB,CAAC,uBAAuB,CAAC,CAAC;AAC3D;;ACvOA;;AAEG;;;;"}
1
+ {"version":3,"file":"nx-ddd-firestore-angular-adapter.mjs","sources":["../../../../../packages/@nx-ddd/firestore-angular-adapter/src/lib/angular-firestore.adapter.ts","../../../../../packages/@nx-ddd/firestore-angular-adapter/src/nx-ddd-firestore-angular-adapter.ts"],"sourcesContent":["import { inject, Injectable, Provider } from '@angular/core';\nimport { \n doc, collection, collectionGroup,\n Timestamp, setDoc, getDoc, deleteDoc, getDocs, \n onSnapshot, updateDoc, Firestore, runTransaction, writeBatch,\n limit, orderBy, query, where, QuerySnapshot, FieldPath, documentId, FieldValue, serverTimestamp,\n getCountFromServer\n} from '@angular/fire/firestore';\nimport {\n FirestoreAdapter,\n QueryFn as _QueryFn,\n WhereFilterOp,\n provideFirestoreAdapter as _provideFirestoreAdapter,\n} from '@nx-ddd/firestore/adapters/base';\nimport {\n DocumentSnapshot,\n CollectionReference as _CollectionReference,\n CollectionGroup as _CollectionGroup,\n Query as _Query,\n DocumentData,\n DocumentReference,\n} from '@nx-ddd/firestore/interfaces';\nimport dayjs from 'dayjs';\nimport { Observable, map, tap, filter } from 'rxjs';\nimport type firestore from 'firebase/firestore';\n\ntype CollectionReference<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n> = _CollectionReference<AppModelType, DbModelType, firestore.CollectionReference<AppModelType, DbModelType>>;\n\ntype CollectionGroup<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData\n> = _CollectionGroup<AppModelType, DbModelType, firestore.Query<AppModelType, DbModelType>>;\n\ntype Query<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData\n> = _Query<AppModelType, DbModelType, firestore.Query<AppModelType, DbModelType>>;\n\ntype QueryFn<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData\n> = _QueryFn<AppModelType, DbModelType, firestore.QueryConstraint>\n\ntype Origin<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n> = firestore.CollectionReference<AppModelType, DbModelType>\n | firestore.Query<AppModelType, DbModelType>;\n\ntype CollectionLike<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n> = CollectionReference<AppModelType, DbModelType> \n | CollectionGroup<AppModelType, DbModelType>\n | Query<AppModelType, DbModelType>;\n\n// Utility type to map Origin to CollectionLike\ntype InferCollectionLike<O extends Origin> = \n O extends firestore.CollectionReference<infer A, infer B> ? CollectionReference<A, B> :\n O extends firestore.Query<infer A, infer B> ? Query<A, B> :\n never;\n\n\nfunction asObservable<T = unknown>(\n ref: Parameters<typeof onSnapshot>[0],\n _onSnapshot: typeof onSnapshot,\n): Observable<QuerySnapshot<T>> {\n return new Observable<QuerySnapshot<T>>((observer) => _onSnapshot(\n ref, \n (value: any) => observer.next(value),\n (error: any) => observer.error(error),\n () => observer.complete()),\n );\n}\n\nexport function wrapDocumentReference<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n>(origin: firestore.DocumentReference<AppModelType, DbModelType>): DocumentReference<AppModelType, DbModelType> {\n return {\n __ref: origin,\n exists: () => getDoc(origin).then(snapshot => snapshot.exists()),\n set: (data) => setDoc(origin, data),\n get: () => getDoc(origin),\n update: (data) => updateDoc(origin, data as any),\n delete: () => deleteDoc(origin),\n stateChanges: () => {\n return new Observable<DocumentSnapshot<any>>((observer) => {\n return onSnapshot(origin, value => observer.next(value), error => observer.error(error), () => observer.complete());\n }).pipe(\n filter((snapshot: any) => snapshot.exists()),\n map((snapshot) => ({\n id: snapshot.id,\n ref: snapshot.ref,\n data: () => snapshot.data(),\n get: (fieldPath: string) => snapshot.get(fieldPath),\n })),\n );\n },\n }\n}\n\nexport function wrapCollectionLike<\n O extends Origin,\n>(origin: O): InferCollectionLike<O> {\n return {\n __ref: origin,\n stateChanges: () => asObservable<unknown>(origin, onSnapshot).pipe(\n map((snapshot) => snapshot.docChanges().map(change => ({\n type: change.type, payload: {doc: change.doc},\n }))),\n ),\n get: () => getDocs(origin),\n count: () => getCountFromServer(origin).then(count => count.data().count),\n } as never as InferCollectionLike<O>;\n}\n\nexport function unwrapCollectionLike<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData\n>(\n collection: CollectionLike<AppModelType, DbModelType>\n): Origin<AppModelType, DbModelType> {\n return collection.__ref!;\n}\n\n@Injectable()\nexport class AngularFirestoreAdapter extends FirestoreAdapter<dayjs.Dayjs> {\n protected readonly firestore = inject(Firestore);\n\n get FieldValue(): typeof FieldValue & {serverTimestamp: () => FieldValue} {\n return Object.assign(FieldValue, {serverTimestamp});\n }\n\n get Timestamp(): typeof Timestamp {\n return Timestamp; \n }\n\n get FieldPath(): {documentId: () => FieldPath} {\n return {\n documentId: () => documentId(),\n };\n }\n\n protected isTimestamp(v: any): v is Timestamp {\n return v instanceof Timestamp;\n }\n\n protected isFieldValue(v: any): v is FieldValue {\n return v instanceof this.FieldValue;\n }\n \n protected isDate(v: any): v is dayjs.Dayjs {\n return dayjs.isDayjs(v);\n }\n\n convertDateToTimestamp(date: dayjs.Dayjs): Timestamp {\n return Timestamp.fromDate(date.toDate());\n }\n\n convertTimestampToDate(timestamp: Timestamp): dayjs.Dayjs {\n return dayjs(timestamp.toDate());\n }\n\n doc<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n >(path: string): DocumentReference<AppModelType, DbModelType> {\n const docRef = doc(this.firestore, path);\n return wrapDocumentReference(docRef) as DocumentReference<AppModelType, DbModelType>;\n }\n\n collection<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n >(path: string): CollectionReference<AppModelType, DbModelType> {\n const ref = collection(this.firestore, path);\n return wrapCollectionLike(ref) as CollectionReference<AppModelType, DbModelType>;\n }\n\n collectionGroup<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n >(collectionId: string): CollectionGroup<AppModelType, DbModelType> {\n const ref = collectionGroup(this.firestore, collectionId);\n return wrapCollectionLike(ref) as CollectionGroup<AppModelType, DbModelType>;\n }\n\n query<\n AppModelType = DocumentData,\n DbModelType extends DocumentData = DocumentData,\n >(\n collection: CollectionReference<AppModelType, DbModelType>,\n ...queryFnArray: QueryFn[]\n ): Query<AppModelType, DbModelType> {\n const ref = unwrapCollectionLike(collection) as firestore.Query<DocumentData, DbModelType>;\n const _query = query(ref, ...queryFnArray.map(queryFn => queryFn()));\n return wrapCollectionLike(_query) as Query<AppModelType, DbModelType>;\n }\n\n where<Data>(fieldPath: string, opStr: WhereFilterOp, value: unknown): QueryFn<Data> {\n return () => where(fieldPath, opStr, value);\n }\n\n orderBy<Data>(key: string, order: 'asc' | 'desc' = 'asc'): QueryFn<Data> {\n return () => orderBy(key, order);\n }\n\n limit<Data>(n: number): QueryFn<Data> {\n return () => limit(n);\n }\n\n runTransaction(fn: Parameters<typeof runTransaction>[1]) {\n return runTransaction(this.firestore, fn);\n }\n\n batch() {\n const batch = writeBatch(this.firestore);\n const wrapBatch = (_batch: firestore.WriteBatch) => ({\n create: (ref: any, data: any) => wrapBatch(_batch.set(ref, data)),\n set: (ref: any, data: any) => wrapBatch(_batch.set(ref, data)),\n update: (ref: any, data: any) => wrapBatch(_batch.update(ref, data)),\n delete: (ref: any) => wrapBatch(_batch.delete(ref)),\n commit: () => _batch.commit(),\n })\n return wrapBatch(batch);\n }\n}\n\n/** @deprecated use `provideFirestoreAdapter()` instead. */\nexport function provideAngularFirestoreAdapter(): Provider {\n return { provide: FirestoreAdapter, useClass: AngularFirestoreAdapter };\n}\n\nexport function provideFirestoreAdapter(): Provider {\n return _provideFirestoreAdapter(AngularFirestoreAdapter);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_provideFirestoreAdapter"],"mappings":"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"}
@@ -37,7 +37,13 @@ export declare class AngularFirestoreAdapter extends FirestoreAdapter<dayjs.Dayj
37
37
  orderBy<Data>(key: string, order?: 'asc' | 'desc'): QueryFn<Data>;
38
38
  limit<Data>(n: number): QueryFn<Data>;
39
39
  runTransaction(fn: Parameters<typeof runTransaction>[1]): Promise<unknown>;
40
- batch(): firestore.WriteBatch;
40
+ batch(): {
41
+ create: (ref: any, data: any) => any;
42
+ set: (ref: any, data: any) => any;
43
+ update: (ref: any, data: any) => any;
44
+ delete: (ref: any) => any;
45
+ commit: () => Promise<void>;
46
+ };
41
47
  static ɵfac: i0.ɵɵFactoryDeclaration<AngularFirestoreAdapter, never>;
42
48
  static ɵprov: i0.ɵɵInjectableDeclaration<AngularFirestoreAdapter>;
43
49
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx-ddd/firestore-angular-adapter",
3
- "version": "18.10.0",
3
+ "version": "18.12.0",
4
4
  "homepage": "https://github.com/xx-machina/plaform/tree/main/packages/@nx-ddd/firestore-angular-adapter",
5
5
  "repository": {
6
6
  "type": "git",
@@ -9,7 +9,7 @@
9
9
  "peerDependencies": {
10
10
  "@angular/core": "^18.0.0",
11
11
  "@angular/fire": "18.0.1",
12
- "@nx-ddd/firestore": "18.10.0",
12
+ "@nx-ddd/firestore": "18.12.0",
13
13
  "dayjs": "1.11.12",
14
14
  "rxjs": "^7.0.0",
15
15
  "firebase": "^10.7.0"