code: function Store(config, options) {
            var _this = this;
            this.config = config;
            this.options = options;
            this._actions$ = new rxjs.Subject();
            var _a = getDefaults(this.config, this.options), actionMap$ = _a.actionMap$, actionStream$ = _a.actionStream$, actionFactory$ = _a.actionFactory$, transducers$ = _a.transducers$, actionFlatten = _a.actionFlatten, initialState$ = _a.initialState$, flattenState$ = _a.flattenState$, destroy$ = _a.destroy$, shareReplayConfig = _a.shareReplayConfig;
            this.state$ = rxjs.combineLatest(actionMap$, transducers$, initialState$).pipe(operators.map(reducerFactory$), operators.concatMap(function (reducer$) {
                return actionStream$.pipe(operators.filter(isObject), operators.map(mapToObservable), actionFlatten(flatCatch), operators.tap(_this._actions$), reducer$, operators.map(mapToObservable));
            }), operators.startWith(initialState$), flattenState$, operators.takeUntil(destroy$), operators.shareReplay(shareReplayConfig));
            this.state$.subscribe();
            this.actionFactory$ = actionFactory$;
            this.actions$ = this._actions$.asObservable();
        }
docs: Default configuration
  
  @param {Object} config
  {
  reducers$: of([]),
  actionStream$: EMPTY, // if not defined, no actions will be dispatched in the store
  initialState$: of({}),
  transducers$: of({}),
  destroy$: NEVER // if not defined, the state subscription will live forever
  }
  
  @param {Object} options
  {
  actionFop: FlattenOps.concatMap, // actions are executed in order of propagation
  stateFop: FlattenOps.switchMap // will update to the latest received state, without waiting for previous async operations to finish
  windowTime: undefined
  bufferSize: 1
  }