@dereekb/dbx-firebase 9.5.2 → 9.5.5

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,6 +1,6 @@
1
1
  import { lazyFrom, loadingStateFromObs } from '@dereekb/rxjs';
2
2
  import { firstValue } from '@dereekb/util';
3
- import { first, from, switchMap } from 'rxjs';
3
+ import { shareReplay, exhaustMap, first, from } from 'rxjs';
4
4
  /**
5
5
  * Creates a function for a store that DbxFirebaseDocumentStore captures the ModelFirebaseCreateFunction result and sets the key of the created value.
6
6
  *
@@ -25,7 +25,7 @@ export function firebaseDocumentStoreCreateFunction(store, fn) {
25
25
  * @returns
26
26
  */
27
27
  export function firebaseDocumentStoreCrudFunction(fn) {
28
- return (params) => loadingStateFromObs(from(fn(params)));
28
+ return (params) => loadingStateFromObs(from(fn(params)).pipe(shareReplay(1)));
29
29
  }
30
30
  // MARK: Update
31
31
  /**
@@ -38,10 +38,10 @@ export function firebaseDocumentStoreCrudFunction(fn) {
38
38
  * @returns
39
39
  */
40
40
  export function firebaseDocumentStoreUpdateFunction(store, fn) {
41
- return (params) => loadingStateFromObs(store.key$.pipe(first(), switchMap((key) => fn({
41
+ return (params) => loadingStateFromObs(store.key$.pipe(first(), exhaustMap((key) => fn({
42
42
  ...params,
43
43
  key // inject key into the parameters.
44
- }))));
44
+ })), shareReplay(1)));
45
45
  }
46
46
  // MARK: Delete
47
47
  /**
@@ -54,12 +54,12 @@ export function firebaseDocumentStoreUpdateFunction(store, fn) {
54
54
  * @returns
55
55
  */
56
56
  export function firebaseDocumentStoreDeleteFunction(store, fn) {
57
- return (params) => loadingStateFromObs(store.key$.pipe(first(), switchMap((key) => fn({
57
+ return (params) => loadingStateFromObs(store.key$.pipe(first(), exhaustMap((key) => fn({
58
58
  ...params,
59
59
  key // inject key into the parameters.
60
60
  }).then((result) => {
61
61
  store.clearRefs();
62
62
  return result;
63
- }))));
63
+ })), shareReplay(1)));
64
64
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuY3J1ZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL3N0b3JlL3N0b3JlLmRvY3VtZW50LmNydWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBZ0IsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQWMsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTTFEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxtQ0FBbUMsQ0FBaUUsS0FBeUMsRUFBRSxFQUFxQztJQUNsTSxPQUFPLENBQUMsTUFBUyxFQUFFLEVBQUUsQ0FDbkIsbUJBQW1CLENBQ2pCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDWixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDekIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNuQyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdkMsSUFBSSxRQUFRLEVBQUU7WUFDWixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3hCO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO0FBQ04sQ0FBQztBQUlEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGlDQUFpQyxDQUFjLEVBQW1DO0lBQ2hHLE9BQU8sQ0FBQyxNQUFTLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFjRCxlQUFlO0FBQ2Y7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsbUNBQW1DLENBQTZELEtBQXlDLEVBQUUsRUFBcUM7SUFDOUwsT0FBTyxDQUFDLE1BQXNELEVBQUUsRUFBRSxDQUNoRSxtQkFBbUIsQ0FDakIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2IsS0FBSyxFQUFFLEVBQ1AsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDaEIsRUFBRSxDQUFDO1FBQ0QsR0FBRyxNQUFNO1FBQ1QsR0FBRyxDQUFDLGtDQUFrQztLQUNsQyxDQUFDLENBQ1IsQ0FDRixDQUNGLENBQUM7QUFDTixDQUFDO0FBRUQsZUFBZTtBQUNmOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLG1DQUFtQyxDQUE2RCxLQUF5QyxFQUFFLEVBQXFDO0lBQzlMLE9BQU8sQ0FBQyxNQUFzRCxFQUFFLEVBQUUsQ0FDaEUsbUJBQW1CLENBQ2pCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNiLEtBQUssRUFBRSxFQUNQLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ2hCLEVBQUUsQ0FBQztRQUNELEdBQUcsTUFBTTtRQUNULEdBQUcsQ0FBQyxrQ0FBa0M7S0FDbEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ3RCLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FDSCxDQUNGLENBQ0YsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbEZpcmViYXNlQ3JlYXRlRnVuY3Rpb24sIE1vZGVsRmlyZWJhc2VEZWxldGVGdW5jdGlvbiwgTW9kZWxGaXJlYmFzZVVwZGF0ZUZ1bmN0aW9uLCBPbkNhbGxDcmVhdGVNb2RlbFJlc3VsdCwgVGFyZ2V0TW9kZWxQYXJhbXMsIEluZmVycmVkVGFyZ2V0TW9kZWxQYXJhbXMsIE1vZGVsRmlyZWJhc2VDcnVkRnVuY3Rpb24gfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBsYXp5RnJvbSwgTG9hZGluZ1N0YXRlLCBsb2FkaW5nU3RhdGVGcm9tT2JzIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlLCBQYXJ0aWFsT25LZXlzIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBmaXJzdCwgZnJvbSwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmUgfSBmcm9tICcuL3N0b3JlLmRvY3VtZW50JztcblxuLy8gTUFSSzogQ3JlYXRlXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDcmVhdGVGdW5jdGlvbjxJLCBPIGV4dGVuZHMgT25DYWxsQ3JlYXRlTW9kZWxSZXN1bHQgPSBPbkNhbGxDcmVhdGVNb2RlbFJlc3VsdD4gPSAocGFyYW1zOiBJKSA9PiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxPPj47XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGZvciBhIHN0b3JlIHRoYXQgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlIGNhcHR1cmVzIHRoZSBNb2RlbEZpcmViYXNlQ3JlYXRlRnVuY3Rpb24gcmVzdWx0IGFuZCBzZXRzIHRoZSBrZXkgb2YgdGhlIGNyZWF0ZWQgdmFsdWUuXG4gKlxuICogQHBhcmFtIHN0b3JlXG4gKiBAcGFyYW0gZm5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJlYmFzZURvY3VtZW50U3RvcmVDcmVhdGVGdW5jdGlvbjxJLCBPIGV4dGVuZHMgT25DYWxsQ3JlYXRlTW9kZWxSZXN1bHQgPSBPbkNhbGxDcmVhdGVNb2RlbFJlc3VsdD4oc3RvcmU6IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxhbnksIGFueT4sIGZuOiBNb2RlbEZpcmViYXNlQ3JlYXRlRnVuY3Rpb248SSwgTz4pOiBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDcmVhdGVGdW5jdGlvbjxJLCBPPiB7XG4gIHJldHVybiAocGFyYW1zOiBJKSA9PlxuICAgIGxvYWRpbmdTdGF0ZUZyb21PYnMoXG4gICAgICBsYXp5RnJvbSgoKSA9PlxuICAgICAgICBmbihwYXJhbXMpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1vZGVsS2V5cyA9IHJlc3VsdC5tb2RlbEtleXM7XG4gICAgICAgICAgY29uc3QgZmlyc3RLZXkgPSBmaXJzdFZhbHVlKG1vZGVsS2V5cyk7XG5cbiAgICAgICAgICBpZiAoZmlyc3RLZXkpIHtcbiAgICAgICAgICAgIHN0b3JlLnNldEtleShmaXJzdEtleSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xufVxuXG5leHBvcnQgdHlwZSBEYnhmaXJlYmFzZURvY3VtZW50U3RvcmVDcnVkRnVuY3Rpb248SSwgTyA9IHZvaWQ+ID0gKGlucHV0OiBJKSA9PiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxPPj47XG5cbi8qKlxuICogQ3JlYXRlcyBhIERieGZpcmViYXNlRG9jdW1lbnRTdG9yZUNydWRGdW5jdGlvbiBmcm9tIHRoZSBpbnB1dCBNb2RlbEZpcmViYXNlQ3J1ZEZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBmblxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpcmViYXNlRG9jdW1lbnRTdG9yZUNydWRGdW5jdGlvbjxJLCBPID0gdm9pZD4oZm46IE1vZGVsRmlyZWJhc2VDcnVkRnVuY3Rpb248SSwgTz4pOiBEYnhmaXJlYmFzZURvY3VtZW50U3RvcmVDcnVkRnVuY3Rpb248SSwgTz4ge1xuICByZXR1cm4gKHBhcmFtczogSSkgPT4gbG9hZGluZ1N0YXRlRnJvbU9icyhmcm9tKGZuKHBhcmFtcykpKTtcbn1cblxuLy8gTUFSSzogVGFyZ2V0ZWQgRnVuY3Rpb25zXG4vKipcbiAqIEEgcGFyYW1ldGVyIHRoYXQgcmVmZXJzIHRvIGEgc3BlY2lmaWMga2V5LlxuICovXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVGdW5jdGlvblBhcmFtcyA9IFRhcmdldE1vZGVsUGFyYW1zIHwgSW5mZXJyZWRUYXJnZXRNb2RlbFBhcmFtcztcblxuLyoqXG4gKiBVc2VkIGZvciB0aGUgaW5wdXQgdG8gcmVsYXRlZCBmdW5jdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb25QYXJhbXNJbnB1dDxJIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb25QYXJhbXM+ID0gUGFydGlhbE9uS2V5czxJLCAna2V5Jz47XG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVGdW5jdGlvbjxJIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb25QYXJhbXMsIE8gPSB2b2lkPiA9IERieGZpcmViYXNlRG9jdW1lbnRTdG9yZUNydWRGdW5jdGlvbjxEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVGdW5jdGlvblBhcmFtc0lucHV0PEk+LCBPPjtcblxuLy8gTUFSSzogVXBkYXRlXG4vKipcbiAqIENyZWF0ZXMgYSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVGdW5jdGlvbiBmb3IgdXBkYXRlLlxuICpcbiAqIFRoZSBzdG9yZSdzIGN1cnJlbnQga2V5IGlzIGFsd2F5cyBpbmplY3RlZCBpbnRvIHRoZSBwYXJhbXMgb2YgdGhlIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIHN0b3JlXG4gKiBAcGFyYW0gZm5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJlYmFzZURvY3VtZW50U3RvcmVVcGRhdGVGdW5jdGlvbjxJIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb25QYXJhbXMsIE8gPSB2b2lkPihzdG9yZTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPGFueSwgYW55PiwgZm46IE1vZGVsRmlyZWJhc2VVcGRhdGVGdW5jdGlvbjxJLCBPPik6IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUZ1bmN0aW9uPEksIE8+IHtcbiAgcmV0dXJuIChwYXJhbXM6IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUZ1bmN0aW9uUGFyYW1zSW5wdXQ8ST4pID0+XG4gICAgbG9hZGluZ1N0YXRlRnJvbU9icyhcbiAgICAgIHN0b3JlLmtleSQucGlwZShcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgc3dpdGNoTWFwKChrZXkpID0+XG4gICAgICAgICAgZm4oe1xuICAgICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgICAga2V5IC8vIGluamVjdCBrZXkgaW50byB0aGUgcGFyYW1ldGVycy5cbiAgICAgICAgICB9IGFzIEkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xufVxuXG4vLyBNQVJLOiBEZWxldGVcbi8qKlxuICogQ3JlYXRlcyBhIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUZ1bmN0aW9uIGZvciBkZWxldGUuXG4gKlxuICogVGhlIHN0b3JlJ3MgY3VycmVudCBrZXkgaXMgYWx3YXlzIGluamVjdGVkIGludG8gdGhlIHBhcmFtcyBvZiB0aGUgcmVxdWVzdC5cbiAqXG4gKiBAcGFyYW0gc3RvcmVcbiAqIEBwYXJhbSBmblxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpcmViYXNlRG9jdW1lbnRTdG9yZURlbGV0ZUZ1bmN0aW9uPEkgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVGdW5jdGlvblBhcmFtcywgTyA9IHZvaWQ+KHN0b3JlOiBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmU8YW55LCBhbnk+LCBmbjogTW9kZWxGaXJlYmFzZURlbGV0ZUZ1bmN0aW9uPEksIE8+KTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb248SSwgTz4ge1xuICByZXR1cm4gKHBhcmFtczogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb25QYXJhbXNJbnB1dDxJPikgPT5cbiAgICBsb2FkaW5nU3RhdGVGcm9tT2JzKFxuICAgICAgc3RvcmUua2V5JC5waXBlKFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgICBzd2l0Y2hNYXAoKGtleSkgPT5cbiAgICAgICAgICBmbih7XG4gICAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgICBrZXkgLy8gaW5qZWN0IGtleSBpbnRvIHRoZSBwYXJhbWV0ZXJzLlxuICAgICAgICAgIH0gYXMgSSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBzdG9yZS5jbGVhclJlZnMoKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG59XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuY3J1ZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL3N0b3JlL3N0b3JlLmRvY3VtZW50LmNydWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBZ0IsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQztBQU14RTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsbUNBQW1DLENBQWlFLEtBQXlDLEVBQUUsRUFBcUM7SUFDbE0sT0FBTyxDQUFDLE1BQVMsRUFBRSxFQUFFLENBQ25CLG1CQUFtQixDQUNqQixRQUFRLENBQUMsR0FBRyxFQUFFLENBQ1osRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDbkMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXZDLElBQUksUUFBUSxFQUFFO1lBQ1osS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN4QjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FBQztBQUNOLENBQUM7QUFJRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxpQ0FBaUMsQ0FBYyxFQUFtQztJQUNoRyxPQUFPLENBQUMsTUFBUyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkYsQ0FBQztBQWNELGVBQWU7QUFDZjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxtQ0FBbUMsQ0FBNkQsS0FBeUMsRUFBRSxFQUFxQztJQUM5TCxPQUFPLENBQUMsTUFBc0QsRUFBRSxFQUFFLENBQ2hFLG1CQUFtQixDQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDYixLQUFLLEVBQUUsRUFDUCxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNqQixFQUFFLENBQUM7UUFDRCxHQUFHLE1BQU07UUFDVCxHQUFHLENBQUMsa0NBQWtDO0tBQ2xDLENBQUMsQ0FDUixFQUNELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUNGLENBQUM7QUFDTixDQUFDO0FBRUQsZUFBZTtBQUNmOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLG1DQUFtQyxDQUE2RCxLQUF5QyxFQUFFLEVBQXFDO0lBQzlMLE9BQU8sQ0FBQyxNQUFzRCxFQUFFLEVBQUUsQ0FDaEUsbUJBQW1CLENBQ2pCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNiLEtBQUssRUFBRSxFQUNQLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ2pCLEVBQUUsQ0FBQztRQUNELEdBQUcsTUFBTTtRQUNULEdBQUcsQ0FBQyxrQ0FBa0M7S0FDbEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ3RCLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FDSCxFQUNELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUNGLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxGaXJlYmFzZUNyZWF0ZUZ1bmN0aW9uLCBNb2RlbEZpcmViYXNlRGVsZXRlRnVuY3Rpb24sIE1vZGVsRmlyZWJhc2VVcGRhdGVGdW5jdGlvbiwgT25DYWxsQ3JlYXRlTW9kZWxSZXN1bHQsIFRhcmdldE1vZGVsUGFyYW1zLCBJbmZlcnJlZFRhcmdldE1vZGVsUGFyYW1zLCBNb2RlbEZpcmViYXNlQ3J1ZEZ1bmN0aW9uIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgbGF6eUZyb20sIExvYWRpbmdTdGF0ZSwgbG9hZGluZ1N0YXRlRnJvbU9icyB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZSwgUGFydGlhbE9uS2V5cyB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgc2hhcmVSZXBsYXksIGV4aGF1c3RNYXAsIGZpcnN0LCBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmUgfSBmcm9tICcuL3N0b3JlLmRvY3VtZW50JztcblxuLy8gTUFSSzogQ3JlYXRlXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDcmVhdGVGdW5jdGlvbjxJLCBPIGV4dGVuZHMgT25DYWxsQ3JlYXRlTW9kZWxSZXN1bHQgPSBPbkNhbGxDcmVhdGVNb2RlbFJlc3VsdD4gPSAocGFyYW1zOiBJKSA9PiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxPPj47XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGZvciBhIHN0b3JlIHRoYXQgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlIGNhcHR1cmVzIHRoZSBNb2RlbEZpcmViYXNlQ3JlYXRlRnVuY3Rpb24gcmVzdWx0IGFuZCBzZXRzIHRoZSBrZXkgb2YgdGhlIGNyZWF0ZWQgdmFsdWUuXG4gKlxuICogQHBhcmFtIHN0b3JlXG4gKiBAcGFyYW0gZm5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJlYmFzZURvY3VtZW50U3RvcmVDcmVhdGVGdW5jdGlvbjxJLCBPIGV4dGVuZHMgT25DYWxsQ3JlYXRlTW9kZWxSZXN1bHQgPSBPbkNhbGxDcmVhdGVNb2RlbFJlc3VsdD4oc3RvcmU6IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxhbnksIGFueT4sIGZuOiBNb2RlbEZpcmViYXNlQ3JlYXRlRnVuY3Rpb248SSwgTz4pOiBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDcmVhdGVGdW5jdGlvbjxJLCBPPiB7XG4gIHJldHVybiAocGFyYW1zOiBJKSA9PlxuICAgIGxvYWRpbmdTdGF0ZUZyb21PYnMoXG4gICAgICBsYXp5RnJvbSgoKSA9PlxuICAgICAgICBmbihwYXJhbXMpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1vZGVsS2V5cyA9IHJlc3VsdC5tb2RlbEtleXM7XG4gICAgICAgICAgY29uc3QgZmlyc3RLZXkgPSBmaXJzdFZhbHVlKG1vZGVsS2V5cyk7XG5cbiAgICAgICAgICBpZiAoZmlyc3RLZXkpIHtcbiAgICAgICAgICAgIHN0b3JlLnNldEtleShmaXJzdEtleSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xufVxuXG5leHBvcnQgdHlwZSBEYnhmaXJlYmFzZURvY3VtZW50U3RvcmVDcnVkRnVuY3Rpb248SSwgTyA9IHZvaWQ+ID0gKGlucHV0OiBJKSA9PiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxPPj47XG5cbi8qKlxuICogQ3JlYXRlcyBhIERieGZpcmViYXNlRG9jdW1lbnRTdG9yZUNydWRGdW5jdGlvbiBmcm9tIHRoZSBpbnB1dCBNb2RlbEZpcmViYXNlQ3J1ZEZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBmblxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpcmViYXNlRG9jdW1lbnRTdG9yZUNydWRGdW5jdGlvbjxJLCBPID0gdm9pZD4oZm46IE1vZGVsRmlyZWJhc2VDcnVkRnVuY3Rpb248SSwgTz4pOiBEYnhmaXJlYmFzZURvY3VtZW50U3RvcmVDcnVkRnVuY3Rpb248SSwgTz4ge1xuICByZXR1cm4gKHBhcmFtczogSSkgPT4gbG9hZGluZ1N0YXRlRnJvbU9icyhmcm9tKGZuKHBhcmFtcykpLnBpcGUoc2hhcmVSZXBsYXkoMSkpKTtcbn1cblxuLy8gTUFSSzogVGFyZ2V0ZWQgRnVuY3Rpb25zXG4vKipcbiAqIEEgcGFyYW1ldGVyIHRoYXQgcmVmZXJzIHRvIGEgc3BlY2lmaWMga2V5LlxuICovXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVGdW5jdGlvblBhcmFtcyA9IFRhcmdldE1vZGVsUGFyYW1zIHwgSW5mZXJyZWRUYXJnZXRNb2RlbFBhcmFtcztcblxuLyoqXG4gKiBVc2VkIGZvciB0aGUgaW5wdXQgdG8gcmVsYXRlZCBmdW5jdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb25QYXJhbXNJbnB1dDxJIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb25QYXJhbXM+ID0gUGFydGlhbE9uS2V5czxJLCAna2V5Jz47XG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVGdW5jdGlvbjxJIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb25QYXJhbXMsIE8gPSB2b2lkPiA9IERieGZpcmViYXNlRG9jdW1lbnRTdG9yZUNydWRGdW5jdGlvbjxEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVGdW5jdGlvblBhcmFtc0lucHV0PEk+LCBPPjtcblxuLy8gTUFSSzogVXBkYXRlXG4vKipcbiAqIENyZWF0ZXMgYSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVGdW5jdGlvbiBmb3IgdXBkYXRlLlxuICpcbiAqIFRoZSBzdG9yZSdzIGN1cnJlbnQga2V5IGlzIGFsd2F5cyBpbmplY3RlZCBpbnRvIHRoZSBwYXJhbXMgb2YgdGhlIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIHN0b3JlXG4gKiBAcGFyYW0gZm5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJlYmFzZURvY3VtZW50U3RvcmVVcGRhdGVGdW5jdGlvbjxJIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb25QYXJhbXMsIE8gPSB2b2lkPihzdG9yZTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPGFueSwgYW55PiwgZm46IE1vZGVsRmlyZWJhc2VVcGRhdGVGdW5jdGlvbjxJLCBPPik6IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUZ1bmN0aW9uPEksIE8+IHtcbiAgcmV0dXJuIChwYXJhbXM6IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUZ1bmN0aW9uUGFyYW1zSW5wdXQ8ST4pID0+XG4gICAgbG9hZGluZ1N0YXRlRnJvbU9icyhcbiAgICAgIHN0b3JlLmtleSQucGlwZShcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgZXhoYXVzdE1hcCgoa2V5KSA9PlxuICAgICAgICAgIGZuKHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICAgIGtleSAvLyBpbmplY3Qga2V5IGludG8gdGhlIHBhcmFtZXRlcnMuXG4gICAgICAgICAgfSBhcyBJKVxuICAgICAgICApLFxuICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgKVxuICAgICk7XG59XG5cbi8vIE1BUks6IERlbGV0ZVxuLyoqXG4gKiBDcmVhdGVzIGEgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb24gZm9yIGRlbGV0ZS5cbiAqXG4gKiBUaGUgc3RvcmUncyBjdXJyZW50IGtleSBpcyBhbHdheXMgaW5qZWN0ZWQgaW50byB0aGUgcGFyYW1zIG9mIHRoZSByZXF1ZXN0LlxuICpcbiAqIEBwYXJhbSBzdG9yZVxuICogQHBhcmFtIGZuXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmlyZWJhc2VEb2N1bWVudFN0b3JlRGVsZXRlRnVuY3Rpb248SSBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUZ1bmN0aW9uUGFyYW1zLCBPID0gdm9pZD4oc3RvcmU6IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxhbnksIGFueT4sIGZuOiBNb2RlbEZpcmViYXNlRGVsZXRlRnVuY3Rpb248SSwgTz4pOiBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVGdW5jdGlvbjxJLCBPPiB7XG4gIHJldHVybiAocGFyYW1zOiBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVGdW5jdGlvblBhcmFtc0lucHV0PEk+KSA9PlxuICAgIGxvYWRpbmdTdGF0ZUZyb21PYnMoXG4gICAgICBzdG9yZS5rZXkkLnBpcGUoXG4gICAgICAgIGZpcnN0KCksXG4gICAgICAgIGV4aGF1c3RNYXAoKGtleSkgPT5cbiAgICAgICAgICBmbih7XG4gICAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgICBrZXkgLy8gaW5qZWN0IGtleSBpbnRvIHRoZSBwYXJhbWV0ZXJzLlxuICAgICAgICAgIH0gYXMgSSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBzdG9yZS5jbGVhclJlZnMoKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgIClcbiAgICApO1xufVxuIl19
@@ -2752,7 +2752,7 @@ function firebaseDocumentStoreCreateFunction(store, fn) {
2752
2752
  * @returns
2753
2753
  */
2754
2754
  function firebaseDocumentStoreCrudFunction(fn) {
2755
- return (params) => loadingStateFromObs(from(fn(params)));
2755
+ return (params) => loadingStateFromObs(from(fn(params)).pipe(shareReplay(1)));
2756
2756
  }
2757
2757
  // MARK: Update
2758
2758
  /**
@@ -2765,8 +2765,8 @@ function firebaseDocumentStoreCrudFunction(fn) {
2765
2765
  * @returns
2766
2766
  */
2767
2767
  function firebaseDocumentStoreUpdateFunction(store, fn) {
2768
- return (params) => loadingStateFromObs(store.key$.pipe(first(), switchMap((key) => fn(Object.assign(Object.assign({}, params), { key // inject key into the parameters.
2769
- })))));
2768
+ return (params) => loadingStateFromObs(store.key$.pipe(first(), exhaustMap((key) => fn(Object.assign(Object.assign({}, params), { key // inject key into the parameters.
2769
+ }))), shareReplay(1)));
2770
2770
  }
2771
2771
  // MARK: Delete
2772
2772
  /**
@@ -2779,11 +2779,11 @@ function firebaseDocumentStoreUpdateFunction(store, fn) {
2779
2779
  * @returns
2780
2780
  */
2781
2781
  function firebaseDocumentStoreDeleteFunction(store, fn) {
2782
- return (params) => loadingStateFromObs(store.key$.pipe(first(), switchMap((key) => fn(Object.assign(Object.assign({}, params), { key // inject key into the parameters.
2782
+ return (params) => loadingStateFromObs(store.key$.pipe(first(), exhaustMap((key) => fn(Object.assign(Object.assign({}, params), { key // inject key into the parameters.
2783
2783
  })).then((result) => {
2784
2784
  store.clearRefs();
2785
2785
  return result;
2786
- }))));
2786
+ })), shareReplay(1)));
2787
2787
  }
2788
2788
 
2789
2789
  function setParentStoreEffect(store) {