@ngxs/hmr-plugin 3.8.2-dev.master-a836c51 → 3.8.2-dev.master-42a8ed3

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,5 +1,5 @@
1
1
  import { ApplicationRef } from '@angular/core';
2
- import { InitialState, NgxsBootstrapper } from '@ngxs/store/internals';
2
+ import { ɵInitialState, ɵNgxsAppBootstrappedState } from '@ngxs/store/internals';
3
3
  import { HmrStateContextFactory } from './internal/hmr-state-context-factory';
4
4
  import { HmrOptionBuilder } from './internal/hmr-options-builder';
5
5
  import { HmrInitAction } from './actions/hmr-init.action';
@@ -12,16 +12,16 @@ export class HmrManager {
12
12
  get applicationRef() {
13
13
  return this.ngModule.injector.get(ApplicationRef);
14
14
  }
15
- get bootstrap() {
16
- return this.ngModule.injector.get(NgxsBootstrapper);
15
+ get appBootstrappedState() {
16
+ return this.ngModule.injector.get(ɵNgxsAppBootstrappedState);
17
17
  }
18
18
  async hmrModule(bootstrapFn, tick) {
19
- InitialState.set(this.storage.snapshot);
19
+ ɵInitialState.set(this.storage.snapshot);
20
20
  this.ngModule = await bootstrapFn();
21
21
  this.context = new HmrStateContextFactory(this.ngModule);
22
22
  this.lifecycle = this.createLifecycle();
23
23
  tick();
24
- InitialState.pop();
24
+ ɵInitialState.pop();
25
25
  return this.ngModule;
26
26
  }
27
27
  beforeModuleBootstrap() {
@@ -40,7 +40,7 @@ export class HmrManager {
40
40
  removeOldHosts();
41
41
  }
42
42
  createLifecycle() {
43
- return new HmrLifecycle(this.ngModule.instance, this.bootstrap, this.storage, this.context, this.optionsBuilder);
43
+ return new HmrLifecycle(this.ngModule.instance, this.appBootstrappedState, this.storage, this.context, this.optionsBuilder);
44
44
  }
45
45
  cloneHostsBeforeDestroy() {
46
46
  const elements = this.applicationRef.components.map((component) => component.location.nativeElement);
@@ -70,4 +70,4 @@ export class HmrManager {
70
70
  .map((style) => head.removeChild(style));
71
71
  }
72
72
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1yLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9obXItcGx1Z2luL3NyYy9obXItbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFTdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl4RCxNQUFNLE9BQU8sVUFBVTtJQU9yQixZQUFZLE9BQXVCLEVBQUUsT0FBc0I7UUFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFZLGNBQWM7UUFDeEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVksU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxLQUFLLENBQUMsU0FBUyxDQUNwQixXQUFpQyxFQUNqQyxJQUFnQjtRQUVoQixZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLFdBQVcsRUFBRSxD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LENBQUMsQ0FBQzthQUNwRSxHQUFHLENBQUMsQ0FBQyxLQUF1QixFQUFFLEVBQUUsQ0FBQyxJQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIENvbXBvbmVudFJlZiwgTmdNb2R1bGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEluaXRpYWxTdGF0ZSwgTmd4c0Jvb3RzdHJhcHBlciB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7IEhtclN0b3JhZ2UgfSBmcm9tICcuL2ludGVybmFsL2htci1zdG9yYWdlJztcbmltcG9ydCB7XG4gIEJvb3RzdHJhcE1vZHVsZUZuLFxuICBOZ3hzSG1yTGlmZUN5Y2xlLFxuICBOZ3hzSG1yT3B0aW9ucyxcbiAgTmd4c0htclNuYXBzaG90XG59IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgeyBIbXJTdGF0ZUNvbnRleHRGYWN0b3J5IH0gZnJvbSAnLi9pbnRlcm5hbC9obXItc3RhdGUtY29udGV4dC1mYWN0b3J5JztcbmltcG9ydCB7IEhtck9wdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2ludGVybmFsL2htci1vcHRpb25zLWJ1aWxkZXInO1xuaW1wb3J0IHsgSG1ySW5pdEFjdGlvbiB9IGZyb20gJy4vYWN0aW9ucy9obXItaW5pdC5hY3Rpb24nO1xuaW1wb3J0IHsgSG1yTGlmZWN5Y2xlIH0gZnJvbSAnLi9pbnRlcm5hbC9obXItbGlmZWN5Y2xlJztcblxudHlwZSBPbGRIb3N0UmVtb3ZlckZuID0gKCkgPT4gdm9pZDtcblxuZXhwb3J0IGNsYXNzIEhtck1hbmFnZXI8VCBleHRlbmRzIFBhcnRpYWw8Tmd4c0htckxpZmVDeWNsZTxTPj4sIFMgPSBOZ3hzSG1yU25hcHNob3Q+IHtcbiAgcHVibGljIHN0b3JhZ2U6IEhtclN0b3JhZ2U8Uz47XG4gIHB1YmxpYyBjb250ZXh0OiBIbXJTdGF0ZUNvbnRleHRGYWN0b3J5PFQsIFM+O1xuICBwdWJsaWMgbGlmZWN5Y2xlOiBIbXJMaWZlY3ljbGU8VCwgUz47XG4gIHB1YmxpYyBvcHRpb25zQnVpbGRlcjogSG1yT3B0aW9uQnVpbGRlcjtcbiAgcHJpdmF0ZSBuZ01vZHVsZTogTmdNb2R1bGVSZWY8VD47XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTmd4c0htck9wdGlvbnMsIHN0b3JhZ2U6IEhtclN0b3JhZ2U8Uz4pIHtcbiAgICB0aGlzLnN0b3JhZ2UgPSBzdG9yYWdlO1xuICAgIHRoaXMub3B0aW9uc0J1aWxkZXIgPSBuZXcgSG1yT3B0aW9uQnVpbGRlcihvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGFwcGxpY2F0aW9uUmVmKCk6IEFwcGxpY2F0aW9uUmVmIHtcbiAgICByZXR1cm4gdGhpcy5uZ01vZHVsZS5pbmplY3Rvci5nZXQoQXBwbGljYXRpb25SZWYpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgYm9vdHN0cmFwKCk6IE5neHNCb290c3RyYXBwZXIge1xuICAgIHJldHVybiB0aGlzLm5nTW9kdWxlLmluamVjdG9yLmdldChOZ3hzQm9vdHN0cmFwcGVyKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBobXJNb2R1bGUoXG4gICAgYm9vdHN0cmFwRm46IEJvb3RzdHJhcE1vZHVsZUZuPFQ+LFxuICAgIHRpY2s6ICgpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxOZ01vZHVsZVJlZjxUPj4ge1xuICAgIEluaXRpYWxTdGF0ZS5zZXQodGhpcy5zdG9yYWdlLnNuYXBzaG90KTtcbiAgICB0aGlzLm5nTW9kdWxlID0gYXdhaXQgYm9vdHN0cmFwRm4oKTtcbiAgICB0aGlzLmNvbnRleHQgPSBuZXcgSG1yU3RhdGVDb250ZXh0RmFjdG9yeSh0aGlzLm5nTW9kdWxlKTtcbiAgICB0aGlzLmxpZmVjeWNsZSA9IHRoaXMuY3JlYXRlTGlmZWN5Y2xlKCk7XG5cbiAgICB0aWNrKCk7XG5cbiAgICBJbml0aWFsU3RhdGUucG9wKCk7XG4gICAgcmV0dXJuIHRoaXMubmdNb2R1bGU7XG4gIH1cblxuICBwdWJsaWMgYmVmb3JlTW9kdWxlQm9vdHN0cmFwKCk6IHZvaWQge1xuICAgIHRoaXMubGlmZWN5Y2xlLmhtck5neHNTdG9yZU9uSW5pdCgoY3R4LCBzdGF0ZSkgPT4ge1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBIbXJJbml0QWN0aW9uKHN0YXRlKSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYmVmb3JlTW9kdWxlT25EZXN0cm95KCk6IFBhcnRpYWw8Uz4ge1xuICAgIHRoaXMub3B0aW9uc0J1aWxkZXIuY2xlYXJMb2dzKCk7XG4gICAgcmV0dXJuIHRoaXMubGlmZWN5Y2xlLmhtck5neHNTdG9yZUJlZm9yZU9uRGVzdHJveSgpO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZU5ld01vZHVsZSgpOiB2b2lkIHtcbiAgICBjb25zdCByZW1vdmVPbGRIb3N0czogKCkgPT4gdm9pZCA9IHRoaXMuY2xvbmVIb3N0c0JlZm9yZURlc3Ryb3koKTtcbiAgICB0aGlzLnJlbW92ZU5nU3R5bGVzKCk7XG4gICAgdGhpcy5uZ01vZHVsZS5kZXN0cm95KCk7XG4gICAgcmVtb3ZlT2xkSG9zdHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTGlmZWN5Y2xlKCk6IEhtckxpZmVjeWNsZTxULCBTPiB7XG4gICAgcmV0dXJuIG5ldyBIbXJMaWZlY3ljbGUoXG4gICAgICB0aGlzLm5nTW9kdWxlLmluc3RhbmNlLFxuICAgICAgdGhpcy5ib290c3RyYXAsXG4gICAgICB0aGlzLnN0b3JhZ2UsXG4gICAgICB0aGlzLmNvbnRleHQsXG4gICAgICB0aGlzLm9wdGlvbnNCdWlsZGVyXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvbmVIb3N0c0JlZm9yZURlc3Ryb3koKTogKCkgPT4gdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudHM6IEVsZW1lbnRbXSA9IHRoaXMuYXBwbGljYXRpb25SZWYuY29tcG9uZW50cy5tYXAoXG4gICAgICAoY29tcG9uZW50OiBDb21wb25lbnRSZWY8RWxlbWVudD4pID0+IGNvbXBvbmVudC5sb2NhdGlvbi5uYXRpdmVFbGVtZW50XG4gICAgKTtcblxuICAgIGNvbnN0IHJlbW92YWJsZUxpc3Q6IE9sZEhvc3RSZW1vdmVyRm5bXSA9IGVsZW1lbnRzLm1hcCgoY29tcG9uZW50Tm9kZTogRWxlbWVudCkgPT4ge1xuICAgICAgY29uc3QgbmV3Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoY29tcG9uZW50Tm9kZS50YWdOYW1lKTtcbiAgICAgIGNvbnN0IHBhcmVudE5vZGU6IE5vZGUgPSBjb21wb25lbnROb2RlLnBhcmVudE5vZGUgYXMgTm9kZTtcbiAgICAgIGNvbnN0IGN1cnJlbnREaXNwbGF5OiBzdHJpbmcgfCBudWxsID0gbmV3Tm9kZS5zdHlsZS5kaXNwbGF5O1xuXG4gICAgICBuZXdOb2RlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShuZXdOb2RlLCBjb21wb25lbnROb2RlKTtcblxuICAgICAgcmV0dXJuICgpOiB2b2lkID0+IHtcbiAgICAgICAgbmV3Tm9kZS5zdHlsZS5kaXNwbGF5ID0gY3VycmVudERpc3BsYXk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjb21wb25lbnROb2RlKTtcbiAgICAgICAgfSBjYXRjaCB7fVxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiBmdW5jdGlvbiByZW1vdmVPbGRIb3N0cygpOiB2b2lkIHtcbiAgICAgIHJlbW92YWJsZUxpc3QuZm9yRWFjaCgocmVtb3ZlT2xkSG9zdDogT2xkSG9zdFJlbW92ZXJGbikgPT4gcmVtb3ZlT2xkSG9zdCgpKTtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVOZ1N0eWxlcygpOiB2b2lkIHtcbiAgICBjb25zdCBoZWFkOiBIVE1MSGVhZEVsZW1lbnQgPSBkb2N1bWVudC5oZWFkITtcbiAgICBjb25zdCBzdHlsZXM6IEhUTUxTdHlsZUVsZW1lbnRbXSA9IEFycmF5LmZyb20oaGVhZCEucXVlcnlTZWxlY3RvckFsbCgnc3R5bGUnKSk7XG5cbiAgICBzdHlsZXNcbiAgICAgIC5maWx0ZXIoKHN0eWxlOiBIVE1MU3R5bGVFbGVtZW50KSA9PiBzdHlsZS5pbm5lclRleHQuaW5jbHVkZXMoJ19uZycpKVxuICAgICAgLm1hcCgoc3R5bGU6IEhUTUxTdHlsZUVsZW1lbnQpID0+IGhlYWQhLnJlbW92ZUNoaWxkKHN0eWxlKSk7XG4gIH1cbn1cbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1yLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9obXItcGx1Z2luL3NyYy9obXItbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFTakYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl4RCxNQUFNLE9BQU8sVUFBVTtJQU9yQixZQUFZLE9BQXVCLEVBQUUsT0FBc0I7UUFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFZLGNBQWM7UUFDeEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVksb0JBQW9CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTLENBQ3BCLFdBQWlDLEVBQ2pDLElBQWdCO1FBRWhCLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sV0FBVyxFQUFF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LEtBQUssQ0FBQyxDQUFDO2FBQ3BFLEdBQUcsQ0FBQyxDQUFDLEtBQXVCLEVBQUUsRUFBRSxDQUFDLElBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgQ29tcG9uZW50UmVmLCBOZ01vZHVsZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgybVJbml0aWFsU3RhdGUsIMm1Tmd4c0FwcEJvb3RzdHJhcHBlZFN0YXRlIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgSG1yU3RvcmFnZSB9IGZyb20gJy4vaW50ZXJuYWwvaG1yLXN0b3JhZ2UnO1xuaW1wb3J0IHtcbiAgQm9vdHN0cmFwTW9kdWxlRm4sXG4gIE5neHNIbXJMaWZlQ3ljbGUsXG4gIE5neHNIbXJPcHRpb25zLFxuICBOZ3hzSG1yU25hcHNob3Rcbn0gZnJvbSAnLi9zeW1ib2xzJztcbmltcG9ydCB7IEhtclN0YXRlQ29udGV4dEZhY3RvcnkgfSBmcm9tICcuL2ludGVybmFsL2htci1zdGF0ZS1jb250ZXh0LWZhY3RvcnknO1xuaW1wb3J0IHsgSG1yT3B0aW9uQnVpbGRlciB9IGZyb20gJy4vaW50ZXJuYWwvaG1yLW9wdGlvbnMtYnVpbGRlcic7XG5pbXBvcnQgeyBIbXJJbml0QWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zL2htci1pbml0LmFjdGlvbic7XG5pbXBvcnQgeyBIbXJMaWZlY3ljbGUgfSBmcm9tICcuL2ludGVybmFsL2htci1saWZlY3ljbGUnO1xuXG50eXBlIE9sZEhvc3RSZW1vdmVyRm4gPSAoKSA9PiB2b2lkO1xuXG5leHBvcnQgY2xhc3MgSG1yTWFuYWdlcjxUIGV4dGVuZHMgUGFydGlhbDxOZ3hzSG1yTGlmZUN5Y2xlPFM+PiwgUyA9IE5neHNIbXJTbmFwc2hvdD4ge1xuICBwdWJsaWMgc3RvcmFnZTogSG1yU3RvcmFnZTxTPjtcbiAgcHVibGljIGNvbnRleHQ6IEhtclN0YXRlQ29udGV4dEZhY3Rvcnk8VCwgUz47XG4gIHB1YmxpYyBsaWZlY3ljbGU6IEhtckxpZmVjeWNsZTxULCBTPjtcbiAgcHVibGljIG9wdGlvbnNCdWlsZGVyOiBIbXJPcHRpb25CdWlsZGVyO1xuICBwcml2YXRlIG5nTW9kdWxlOiBOZ01vZHVsZVJlZjxUPjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBOZ3hzSG1yT3B0aW9ucywgc3RvcmFnZTogSG1yU3RvcmFnZTxTPikge1xuICAgIHRoaXMuc3RvcmFnZSA9IHN0b3JhZ2U7XG4gICAgdGhpcy5vcHRpb25zQnVpbGRlciA9IG5ldyBIbXJPcHRpb25CdWlsZGVyKG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgYXBwbGljYXRpb25SZWYoKTogQXBwbGljYXRpb25SZWYge1xuICAgIHJldHVybiB0aGlzLm5nTW9kdWxlLmluamVjdG9yLmdldChBcHBsaWNhdGlvblJlZik7XG4gIH1cblxuICBwcml2YXRlIGdldCBhcHBCb290c3RyYXBwZWRTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uZ01vZHVsZS5pbmplY3Rvci5nZXQoybVOZ3hzQXBwQm9vdHN0cmFwcGVkU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGhtck1vZHVsZShcbiAgICBib290c3RyYXBGbjogQm9vdHN0cmFwTW9kdWxlRm48VD4sXG4gICAgdGljazogKCkgPT4gdm9pZFxuICApOiBQcm9taXNlPE5nTW9kdWxlUmVmPFQ+PiB7XG4gICAgybVJbml0aWFsU3RhdGUuc2V0KHRoaXMuc3RvcmFnZS5zbmFwc2hvdCk7XG4gICAgdGhpcy5uZ01vZHVsZSA9IGF3YWl0IGJvb3RzdHJhcEZuKCk7XG4gICAgdGhpcy5jb250ZXh0ID0gbmV3IEhtclN0YXRlQ29udGV4dEZhY3RvcnkodGhpcy5uZ01vZHVsZSk7XG4gICAgdGhpcy5saWZlY3ljbGUgPSB0aGlzLmNyZWF0ZUxpZmVjeWNsZSgpO1xuXG4gICAgdGljaygpO1xuXG4gICAgybVJbml0aWFsU3RhdGUucG9wKCk7XG4gICAgcmV0dXJuIHRoaXMubmdNb2R1bGU7XG4gIH1cblxuICBwdWJsaWMgYmVmb3JlTW9kdWxlQm9vdHN0cmFwKCk6IHZvaWQge1xuICAgIHRoaXMubGlmZWN5Y2xlLmhtck5neHNTdG9yZU9uSW5pdCgoY3R4LCBzdGF0ZSkgPT4ge1xuICAgICAgY3R4LmRpc3BhdGNoKG5ldyBIbXJJbml0QWN0aW9uKHN0YXRlKSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYmVmb3JlTW9kdWxlT25EZXN0cm95KCk6IFBhcnRpYWw8Uz4ge1xuICAgIHRoaXMub3B0aW9uc0J1aWxkZXIuY2xlYXJMb2dzKCk7XG4gICAgcmV0dXJuIHRoaXMubGlmZWN5Y2xlLmhtck5neHNTdG9yZUJlZm9yZU9uRGVzdHJveSgpO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZU5ld01vZHVsZSgpOiB2b2lkIHtcbiAgICBjb25zdCByZW1vdmVPbGRIb3N0czogKCkgPT4gdm9pZCA9IHRoaXMuY2xvbmVIb3N0c0JlZm9yZURlc3Ryb3koKTtcbiAgICB0aGlzLnJlbW92ZU5nU3R5bGVzKCk7XG4gICAgdGhpcy5uZ01vZHVsZS5kZXN0cm95KCk7XG4gICAgcmVtb3ZlT2xkSG9zdHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTGlmZWN5Y2xlKCk6IEhtckxpZmVjeWNsZTxULCBTPiB7XG4gICAgcmV0dXJuIG5ldyBIbXJMaWZlY3ljbGUoXG4gICAgICB0aGlzLm5nTW9kdWxlLmluc3RhbmNlLFxuICAgICAgdGhpcy5hcHBCb290c3RyYXBwZWRTdGF0ZSxcbiAgICAgIHRoaXMuc3RvcmFnZSxcbiAgICAgIHRoaXMuY29udGV4dCxcbiAgICAgIHRoaXMub3B0aW9uc0J1aWxkZXJcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9uZUhvc3RzQmVmb3JlRGVzdHJveSgpOiAoKSA9PiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50czogRWxlbWVudFtdID0gdGhpcy5hcHBsaWNhdGlvblJlZi5jb21wb25lbnRzLm1hcChcbiAgICAgIChjb21wb25lbnQ6IENvbXBvbmVudFJlZjxFbGVtZW50PikgPT4gY29tcG9uZW50LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnRcbiAgICApO1xuXG4gICAgY29uc3QgcmVtb3ZhYmxlTGlzdDogT2xkSG9zdFJlbW92ZXJGbltdID0gZWxlbWVudHMubWFwKChjb21wb25lbnROb2RlOiBFbGVtZW50KSA9PiB7XG4gICAgICBjb25zdCBuZXdOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChjb21wb25lbnROb2RlLnRhZ05hbWUpO1xuICAgICAgY29uc3QgcGFyZW50Tm9kZTogTm9kZSA9IGNvbXBvbmVudE5vZGUucGFyZW50Tm9kZSBhcyBOb2RlO1xuICAgICAgY29uc3QgY3VycmVudERpc3BsYXk6IHN0cmluZyB8IG51bGwgPSBuZXdOb2RlLnN0eWxlLmRpc3BsYXk7XG5cbiAgICAgIG5ld05vZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG5ld05vZGUsIGNvbXBvbmVudE5vZGUpO1xuXG4gICAgICByZXR1cm4gKCk6IHZvaWQgPT4ge1xuICAgICAgICBuZXdOb2RlLnN0eWxlLmRpc3BsYXkgPSBjdXJyZW50RGlzcGxheTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBwYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNvbXBvbmVudE5vZGUpO1xuICAgICAgICB9IGNhdGNoIHt9XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIHJlbW92ZU9sZEhvc3RzKCk6IHZvaWQge1xuICAgICAgcmVtb3ZhYmxlTGlzdC5mb3JFYWNoKChyZW1vdmVPbGRIb3N0OiBPbGRIb3N0UmVtb3ZlckZuKSA9PiByZW1vdmVPbGRIb3N0KCkpO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZU5nU3R5bGVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGhlYWQ6IEhUTUxIZWFkRWxlbWVudCA9IGRvY3VtZW50LmhlYWQhO1xuICAgIGNvbnN0IHN0eWxlczogSFRNTFN0eWxlRWxlbWVudFtdID0gQXJyYXkuZnJvbShoZWFkIS5xdWVyeVNlbGVjdG9yQWxsKCdzdHlsZScpKTtcblxuICAgIHN0eWxlc1xuICAgICAgLmZpbHRlcigoc3R5bGU6IEhUTUxTdHlsZUVsZW1lbnQpID0+IHN0eWxlLmlubmVyVGV4dC5pbmNsdWRlcygnX25nJykpXG4gICAgICAubWFwKChzdHlsZTogSFRNTFN0eWxlRWxlbWVudCkgPT4gaGVhZCEucmVtb3ZlQ2hpbGQoc3R5bGUpKTtcbiAgfVxufVxuIl19
@@ -1,8 +1,8 @@
1
1
  import { HmrBeforeDestroyAction } from '../actions/hmr-before-destroy.action';
2
2
  export class HmrLifecycle {
3
- constructor(ngAppModule, bootstrap, storage, context, options) {
3
+ constructor(ngAppModule, appBootstrappedState, storage, context, options) {
4
4
  this.ngAppModule = ngAppModule;
5
- this.bootstrap = bootstrap;
5
+ this.appBootstrappedState = appBootstrappedState;
6
6
  this.storage = storage;
7
7
  this.context = context;
8
8
  this.options = options;
@@ -39,9 +39,8 @@ export class HmrLifecycle {
39
39
  stateEventLoop(callback) {
40
40
  if (!this.storage.hasData())
41
41
  return;
42
- const appBootstrapped$ = this.bootstrap.appBootstrapped$;
43
42
  const state$ = this.context.store.select(state => state);
44
- appBootstrapped$.subscribe(() => {
43
+ this.appBootstrappedState.subscribe(() => {
45
44
  let eventId;
46
45
  const storeEventId = state$.subscribe(() => {
47
46
  // setTimeout used for zone detection after set hmr state
@@ -64,4 +63,4 @@ export class HmrLifecycle {
64
63
  }
65
64
  }
66
65
  }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1yLWxpZmVjeWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2htci1wbHVnaW4vc3JjL2ludGVybmFsL2htci1saWZlY3ljbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHOUUsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFDVSxXQUFjLEVBQ2QsU0FBMkIsRUFDM0IsT0FBc0IsRUFDdEIsT0FBcUMsRUFDckMsT0FBeUI7UUFKekIsZ0JBQVcsR0FBWCxXQUFXLENBQUc7UUFDZCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBQ2hDLENBQUM7SUFFRyxrQkFBa0IsQ0FBQyxjQUE4QjtRQUN0RCxJQUFJLGFBQWEsR0FBbUIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDcEUsYUFBYSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDakMsYUFBYSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxQixjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsS0FBSyxVQUFVLEVBQUU7WUFDN0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDO1NBQzVDO1FBQ0QsT0FBTyxTQUFTLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxLQUFLO1lBQzdDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLDJCQUEyQjtRQUNoQyxJQUFJLEtBQUssR0FBZSxFQUFFLENBQUM7UUFDM0IsTUFBTSxHQUFHLEdBQW9CLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMvRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsS0FBSyxVQUFVLEVBQUU7WUFDdEUsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0Q7YUFBTTtZQUNMLEtBQUssR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDeEI7UUFFRCxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNoRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxjQUFjLENBQUMsUUFBd0I7UUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQUUsT0FBTztRQUVwQyxNQUFNLGdCQUFnQixHQUF3QixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDO1FBQzlFLE1BQU0sTUFBTSxHQUFvQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzlCLElBQUksT0FBZSxDQUFDO1lBQ3BCLE1BQU0sWUFBWSxHQUFpQixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDdkQseURBQXlEO2dCQUN6RCxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZCLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDL0IsbUNBQW1DO29CQUNuQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQzNCLHFEQUFxRDtvQkFDckQsK0JBQStCO29CQUMvQixRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBc0IsQ0FBQyxDQUFDO2dCQUNuRixDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLEdBQUcsR0FBWSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNwRixNQUFNLEdBQUcsR0FBWSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekUsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FDYixrRkFBa0YsQ0FDbkYsQ0FBQztTQUNIO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmd4c0Jvb3RzdHJhcHBlciB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN0YXRlQ29udGV4dCB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuaW1wb3J0IHsgSG1yT3B0aW9uQnVpbGRlciB9IGZyb20gJy4vaG1yLW9wdGlvbnMtYnVpbGRlcic7XG5pbXBvcnQgeyBIbXJDYWxsYmFjaywgTmd4c0htckxpZmVDeWNsZSB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgSG1yU3RhdGVDb250ZXh0RmFjdG9yeSB9IGZyb20gJy4vaG1yLXN0YXRlLWNvbnRleHQtZmFjdG9yeSc7XG5pbXBvcnQgeyBIbXJCZWZvcmVEZXN0cm95QWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucy9obXItYmVmb3JlLWRlc3Ryb3kuYWN0aW9uJztcbmltcG9ydCB7IEhtclN0b3JhZ2UgfSBmcm9tICcuL2htci1zdG9yYWdlJztcblxuZXhwb3J0IGNsYXNzIEhtckxpZmVjeWNsZTxUIGV4dGVuZHMgUGFydGlhbDxOZ3hzSG1yTGlmZUN5Y2xlPFM+PiwgUz4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nQXBwTW9kdWxlOiBULFxuICAgIHByaXZhdGUgYm9vdHN0cmFwOiBOZ3hzQm9vdHN0cmFwcGVyLFxuICAgIHByaXZhdGUgc3RvcmFnZTogSG1yU3RvcmFnZTxTPixcbiAgICBwcml2YXRlIGNvbnRleHQ6IEhtclN0YXRlQ29udGV4dEZhY3Rvcnk8VCwgUz4sXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBIbXJPcHRpb25CdWlsZGVyXG4gICkge31cblxuICBwdWJsaWMgaG1yTmd4c1N0b3JlT25Jbml0KGhtckFmdGVyT25Jbml0OiBIbXJDYWxsYmFjazxTPikge1xuICAgIGxldCBtb2R1bGVIbXJJbml0OiBIbXJDYWxsYmFjazxTPiA9IHRoaXMuZ2V0TW9kdWxlSG1ySW5pdENhbGxiYWNrKCk7XG4gICAgbW9kdWxlSG1ySW5pdCA9IG1vZHVsZUhtckluaXQuYmluZCh0aGlzLm5nQXBwTW9kdWxlKTtcbiAgICB0aGlzLmRldGVjdEl2eVdpdGhKSVQoKTtcbiAgICB0aGlzLnN0YXRlRXZlbnRMb29wKChjdHgsIHN0YXRlKSA9PiB7XG4gICAgICBtb2R1bGVIbXJJbml0KGN0eCwgc3RhdGUpO1xuICAgICAgaG1yQWZ0ZXJPbkluaXQoY3R4LCBzdGF0ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldE1vZHVsZUhtckluaXRDYWxsYmFjaygpOiBIbXJDYWxsYmFjazxTPiB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLm5nQXBwTW9kdWxlLmhtck5neHNTdG9yZU9uSW5pdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHRoaXMubmdBcHBNb2R1bGUuaG1yTmd4c1N0b3JlT25Jbml0O1xuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb24gZGVmYXVsdE1vZHVsZUhtckluaXQoY3R4LCBzdGF0ZSkge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoc3RhdGUpO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgaG1yTmd4c1N0b3JlQmVmb3JlT25EZXN0cm95KCk6IFBhcnRpYWw8Uz4ge1xuICAgIGxldCBzdGF0ZTogUGFydGlhbDxTPiA9IHt9O1xuICAgIGNvbnN0IGN0eDogU3RhdGVDb250ZXh0PFM+ID0gdGhpcy5jb250ZXh0LmNyZWF0ZVN0YXRlQ29udGV4dCgpO1xuICAgIGlmICh0eXBlb2YgdGhpcy5uZ0FwcE1vZHVsZS5obXJOZ3hzU3RvcmVCZWZvcmVPbkRlc3Ryb3kgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHN0YXRlID0gdGhpcy5uZ0FwcE1vZHVsZS5obXJOZ3hzU3RvcmVCZWZvcmVPbkRlc3Ryb3koY3R4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUgPSBjdHguZ2V0U3RhdGUoKTtcbiAgICB9XG5cbiAgICBjdHguZGlzcGF0Y2gobmV3IEhtckJlZm9yZURlc3Ryb3lBY3Rpb24oc3RhdGUpKTtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICBwcml2YXRlIHN0YXRlRXZlbnRMb29wKGNhbGxiYWNrOiBIbXJDYWxsYmFjazxTPik6IHZvaWQge1xuICAgIGlmICghdGhpcy5zdG9yYWdlLmhhc0RhdGEoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgYXBwQm9vdHN0cmFwcGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuYm9vdHN0cmFwLmFwcEJvb3RzdHJhcHBlZCQ7XG4gICAgY29uc3Qgc3RhdGUkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmNvbnRleHQuc3RvcmUuc2VsZWN0KHN0YXRlID0+IHN0YXRlKTtcblxuICAgIGFwcEJvb3RzdHJhcHBlZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGxldCBldmVudElkOiBudW1iZXI7XG4gICAgICBjb25zdCBzdG9yZUV2ZW50SWQ6IFN1YnNjcmlwdGlvbiA9IHN0YXRlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyBzZXRUaW1lb3V0IHVzZWQgZm9yIHpvbmUgZGV0ZWN0aW9uIGFmdGVyIHNldCBobXIgc3RhdGVcbiAgICAgICAgY2xlYXJJbnRlcnZhbChldmVudElkKTtcbiAgICAgICAgZXZlbnRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAvLyBjbG9zZSBjaGVjayBvbiB0aGUgbWVzc2FnZSBxdWV1ZVxuICAgICAgICAgIHN0b3JlRXZlbnRJZC51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIC8vIGlmIGV2ZW50cyBhcmUgbm8gbG9uZ2VyIHJ1bm5pbmcgb24gdGhlIGNhbGwgc3RhY2ssXG4gICAgICAgICAgLy8gdGhlbiB3ZSBjYW4gdXBkYXRlIHRoZSBzdGF0ZVxuICAgICAgICAgIGNhbGxiYWNrKHRoaXMuY29udGV4dC5jcmVhdGVTdGF0ZUNvbnRleHQoKSwgdGhpcy5zdG9yYWdlLnNuYXBzaG90IGFzIFBhcnRpYWw8Uz4pO1xuICAgICAgICB9LCB0aGlzLm9wdGlvbnMuZGVmZXJUaW1lKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlY3RJdnlXaXRoSklUKCk6IHZvaWQge1xuICAgIGNvbnN0IGppdDogYm9vbGVhbiA9IHRoaXMubmdBcHBNb2R1bGUuY29uc3RydWN0b3IuaGFzT3duUHJvcGVydHkoJ19fYW5ub3RhdGlvbnNfXycpO1xuICAgIGNvbnN0IGl2eTogYm9vbGVhbiA9IHRoaXMubmdBcHBNb2R1bGUuY29uc3RydWN0b3IuaGFzT3duUHJvcGVydHkoJ8m1bW9kJyk7XG4gICAgaWYgKGppdCAmJiBpdnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEBuZ3hzL2htci1wbHVnaW4gZG9lc24ndCB3b3JrIHdpdGggSklUIG1vZGUgaW4gQW5ndWxhciBJdnkuIFBsZWFzZSB1c2UgQU9UIG1vZGUuYFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1yLWxpZmVjeWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2htci1wbHVnaW4vc3JjL2ludGVybmFsL2htci1saWZlY3ljbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHOUUsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFDVSxXQUFjLEVBQ2Qsb0JBQStDLEVBQy9DLE9BQXNCLEVBQ3RCLE9BQXFDLEVBQ3JDLE9BQXlCO1FBSnpCLGdCQUFXLEdBQVgsV0FBVyxDQUFHO1FBQ2QseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEyQjtRQUMvQyxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBQ2hDLENBQUM7SUFFRyxrQkFBa0IsQ0FBQyxjQUE4QjtRQUN0RCxJQUFJLGFBQWEsR0FBbUIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDcEUsYUFBYSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDakMsYUFBYSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxQixjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsS0FBSyxVQUFVLEVBQUU7WUFDN0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDO1NBQzVDO1FBQ0QsT0FBTyxTQUFTLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxLQUFLO1lBQzdDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLDJCQUEyQjtRQUNoQyxJQUFJLEtBQUssR0FBZSxFQUFFLENBQUM7UUFDM0IsTUFBTSxHQUFHLEdBQW9CLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMvRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsS0FBSyxVQUFVLEVBQUU7WUFDdEUsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0Q7YUFBTTtZQUNMLEtBQUssR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDeEI7UUFFRCxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNoRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxjQUFjLENBQUMsUUFBd0I7UUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQUUsT0FBTztRQUVwQyxNQUFNLE1BQU0sR0FBb0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsSUFBSSxPQUFlLENBQUM7WUFDcEIsTUFBTSxZQUFZLEdBQWlCLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUN2RCx5REFBeUQ7Z0JBQ3pELGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdkIsT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUMvQixtQ0FBbUM7b0JBQ25DLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDM0IscURBQXFEO29CQUNyRCwrQkFBK0I7b0JBQy9CLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFzQixDQUFDLENBQUM7Z0JBQ25GLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sR0FBRyxHQUFZLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BGLE1BQU0sR0FBRyxHQUFZLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDZCxNQUFNLElBQUksS0FBSyxDQUNiLGtGQUFrRixDQUNuRixDQUFDO1NBQ0g7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyDJtU5neHNBcHBCb290c3RyYXBwZWRTdGF0ZSB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN0YXRlQ29udGV4dCB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuaW1wb3J0IHsgSG1yT3B0aW9uQnVpbGRlciB9IGZyb20gJy4vaG1yLW9wdGlvbnMtYnVpbGRlcic7XG5pbXBvcnQgeyBIbXJDYWxsYmFjaywgTmd4c0htckxpZmVDeWNsZSB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgSG1yU3RhdGVDb250ZXh0RmFjdG9yeSB9IGZyb20gJy4vaG1yLXN0YXRlLWNvbnRleHQtZmFjdG9yeSc7XG5pbXBvcnQgeyBIbXJCZWZvcmVEZXN0cm95QWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucy9obXItYmVmb3JlLWRlc3Ryb3kuYWN0aW9uJztcbmltcG9ydCB7IEhtclN0b3JhZ2UgfSBmcm9tICcuL2htci1zdG9yYWdlJztcblxuZXhwb3J0IGNsYXNzIEhtckxpZmVjeWNsZTxUIGV4dGVuZHMgUGFydGlhbDxOZ3hzSG1yTGlmZUN5Y2xlPFM+PiwgUz4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nQXBwTW9kdWxlOiBULFxuICAgIHByaXZhdGUgYXBwQm9vdHN0cmFwcGVkU3RhdGU6IMm1Tmd4c0FwcEJvb3RzdHJhcHBlZFN0YXRlLFxuICAgIHByaXZhdGUgc3RvcmFnZTogSG1yU3RvcmFnZTxTPixcbiAgICBwcml2YXRlIGNvbnRleHQ6IEhtclN0YXRlQ29udGV4dEZhY3Rvcnk8VCwgUz4sXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBIbXJPcHRpb25CdWlsZGVyXG4gICkge31cblxuICBwdWJsaWMgaG1yTmd4c1N0b3JlT25Jbml0KGhtckFmdGVyT25Jbml0OiBIbXJDYWxsYmFjazxTPikge1xuICAgIGxldCBtb2R1bGVIbXJJbml0OiBIbXJDYWxsYmFjazxTPiA9IHRoaXMuZ2V0TW9kdWxlSG1ySW5pdENhbGxiYWNrKCk7XG4gICAgbW9kdWxlSG1ySW5pdCA9IG1vZHVsZUhtckluaXQuYmluZCh0aGlzLm5nQXBwTW9kdWxlKTtcbiAgICB0aGlzLmRldGVjdEl2eVdpdGhKSVQoKTtcbiAgICB0aGlzLnN0YXRlRXZlbnRMb29wKChjdHgsIHN0YXRlKSA9PiB7XG4gICAgICBtb2R1bGVIbXJJbml0KGN0eCwgc3RhdGUpO1xuICAgICAgaG1yQWZ0ZXJPbkluaXQoY3R4LCBzdGF0ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldE1vZHVsZUhtckluaXRDYWxsYmFjaygpOiBIbXJDYWxsYmFjazxTPiB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLm5nQXBwTW9kdWxlLmhtck5neHNTdG9yZU9uSW5pdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHRoaXMubmdBcHBNb2R1bGUuaG1yTmd4c1N0b3JlT25Jbml0O1xuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb24gZGVmYXVsdE1vZHVsZUhtckluaXQoY3R4LCBzdGF0ZSkge1xuICAgICAgY3R4LnBhdGNoU3RhdGUoc3RhdGUpO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgaG1yTmd4c1N0b3JlQmVmb3JlT25EZXN0cm95KCk6IFBhcnRpYWw8Uz4ge1xuICAgIGxldCBzdGF0ZTogUGFydGlhbDxTPiA9IHt9O1xuICAgIGNvbnN0IGN0eDogU3RhdGVDb250ZXh0PFM+ID0gdGhpcy5jb250ZXh0LmNyZWF0ZVN0YXRlQ29udGV4dCgpO1xuICAgIGlmICh0eXBlb2YgdGhpcy5uZ0FwcE1vZHVsZS5obXJOZ3hzU3RvcmVCZWZvcmVPbkRlc3Ryb3kgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHN0YXRlID0gdGhpcy5uZ0FwcE1vZHVsZS5obXJOZ3hzU3RvcmVCZWZvcmVPbkRlc3Ryb3koY3R4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUgPSBjdHguZ2V0U3RhdGUoKTtcbiAgICB9XG5cbiAgICBjdHguZGlzcGF0Y2gobmV3IEhtckJlZm9yZURlc3Ryb3lBY3Rpb24oc3RhdGUpKTtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICBwcml2YXRlIHN0YXRlRXZlbnRMb29wKGNhbGxiYWNrOiBIbXJDYWxsYmFjazxTPik6IHZvaWQge1xuICAgIGlmICghdGhpcy5zdG9yYWdlLmhhc0RhdGEoKSkgcmV0dXJuO1xuXG4gICAgY29uc3Qgc3RhdGUkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmNvbnRleHQuc3RvcmUuc2VsZWN0KHN0YXRlID0+IHN0YXRlKTtcblxuICAgIHRoaXMuYXBwQm9vdHN0cmFwcGVkU3RhdGUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGxldCBldmVudElkOiBudW1iZXI7XG4gICAgICBjb25zdCBzdG9yZUV2ZW50SWQ6IFN1YnNjcmlwdGlvbiA9IHN0YXRlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyBzZXRUaW1lb3V0IHVzZWQgZm9yIHpvbmUgZGV0ZWN0aW9uIGFmdGVyIHNldCBobXIgc3RhdGVcbiAgICAgICAgY2xlYXJJbnRlcnZhbChldmVudElkKTtcbiAgICAgICAgZXZlbnRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAvLyBjbG9zZSBjaGVjayBvbiB0aGUgbWVzc2FnZSBxdWV1ZVxuICAgICAgICAgIHN0b3JlRXZlbnRJZC51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIC8vIGlmIGV2ZW50cyBhcmUgbm8gbG9uZ2VyIHJ1bm5pbmcgb24gdGhlIGNhbGwgc3RhY2ssXG4gICAgICAgICAgLy8gdGhlbiB3ZSBjYW4gdXBkYXRlIHRoZSBzdGF0ZVxuICAgICAgICAgIGNhbGxiYWNrKHRoaXMuY29udGV4dC5jcmVhdGVTdGF0ZUNvbnRleHQoKSwgdGhpcy5zdG9yYWdlLnNuYXBzaG90IGFzIFBhcnRpYWw8Uz4pO1xuICAgICAgICB9LCB0aGlzLm9wdGlvbnMuZGVmZXJUaW1lKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlY3RJdnlXaXRoSklUKCk6IHZvaWQge1xuICAgIGNvbnN0IGppdDogYm9vbGVhbiA9IHRoaXMubmdBcHBNb2R1bGUuY29uc3RydWN0b3IuaGFzT3duUHJvcGVydHkoJ19fYW5ub3RhdGlvbnNfXycpO1xuICAgIGNvbnN0IGl2eTogYm9vbGVhbiA9IHRoaXMubmdBcHBNb2R1bGUuY29uc3RydWN0b3IuaGFzT3duUHJvcGVydHkoJ8m1bW9kJyk7XG4gICAgaWYgKGppdCAmJiBpdnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEBuZ3hzL2htci1wbHVnaW4gZG9lc24ndCB3b3JrIHdpdGggSklUIG1vZGUgaW4gQW5ndWxhciBJdnkuIFBsZWFzZSB1c2UgQU9UIG1vZGUuYFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { ApplicationRef } from '@angular/core';
2
- import { NgxsBootstrapper, InitialState } from '@ngxs/store/internals';
2
+ import { ɵNgxsAppBootstrappedState as _NgxsAppBootstrappedState, ɵInitialState as _InitialState } from '@ngxs/store/internals';
3
3
  import { Store } from '@ngxs/store';
4
4
  import { isStateOperator } from '@ngxs/store/operators';
5
5
 
@@ -70,9 +70,9 @@ class HmrOptionBuilder {
70
70
  }
71
71
 
72
72
  class HmrLifecycle {
73
- constructor(ngAppModule, bootstrap, storage, context, options) {
73
+ constructor(ngAppModule, appBootstrappedState, storage, context, options) {
74
74
  this.ngAppModule = ngAppModule;
75
- this.bootstrap = bootstrap;
75
+ this.appBootstrappedState = appBootstrappedState;
76
76
  this.storage = storage;
77
77
  this.context = context;
78
78
  this.options = options;
@@ -109,9 +109,8 @@ class HmrLifecycle {
109
109
  stateEventLoop(callback) {
110
110
  if (!this.storage.hasData())
111
111
  return;
112
- const appBootstrapped$ = this.bootstrap.appBootstrapped$;
113
112
  const state$ = this.context.store.select(state => state);
114
- appBootstrapped$.subscribe(() => {
113
+ this.appBootstrappedState.subscribe(() => {
115
114
  let eventId;
116
115
  const storeEventId = state$.subscribe(() => {
117
116
  // setTimeout used for zone detection after set hmr state
@@ -143,16 +142,16 @@ class HmrManager {
143
142
  get applicationRef() {
144
143
  return this.ngModule.injector.get(ApplicationRef);
145
144
  }
146
- get bootstrap() {
147
- return this.ngModule.injector.get(NgxsBootstrapper);
145
+ get appBootstrappedState() {
146
+ return this.ngModule.injector.get(_NgxsAppBootstrappedState);
148
147
  }
149
148
  async hmrModule(bootstrapFn, tick) {
150
- InitialState.set(this.storage.snapshot);
149
+ _InitialState.set(this.storage.snapshot);
151
150
  this.ngModule = await bootstrapFn();
152
151
  this.context = new HmrStateContextFactory(this.ngModule);
153
152
  this.lifecycle = this.createLifecycle();
154
153
  tick();
155
- InitialState.pop();
154
+ _InitialState.pop();
156
155
  return this.ngModule;
157
156
  }
158
157
  beforeModuleBootstrap() {
@@ -171,7 +170,7 @@ class HmrManager {
171
170
  removeOldHosts();
172
171
  }
173
172
  createLifecycle() {
174
- return new HmrLifecycle(this.ngModule.instance, this.bootstrap, this.storage, this.context, this.optionsBuilder);
173
+ return new HmrLifecycle(this.ngModule.instance, this.appBootstrappedState, this.storage, this.context, this.optionsBuilder);
175
174
  }
176
175
  cloneHostsBeforeDestroy() {
177
176
  const elements = this.applicationRef.components.map((component) => component.location.nativeElement);
@@ -1 +1 @@
1
- {"version":3,"file":"ngxs-hmr-plugin.mjs","sources":["../../../packages/hmr-plugin/src/actions/hmr-init.action.ts","../../../packages/hmr-plugin/src/actions/hmr-before-destroy.action.ts","../../../packages/hmr-plugin/src/internal/hmr-state-context-factory.ts","../../../packages/hmr-plugin/src/internal/hmr-options-builder.ts","../../../packages/hmr-plugin/src/internal/hmr-lifecycle.ts","../../../packages/hmr-plugin/src/hmr-manager.ts","../../../packages/hmr-plugin/src/internal/hmr-storage.ts","../../../packages/hmr-plugin/src/utils/internals.ts","../../../packages/hmr-plugin/src/hmr-bootstrap.ts","../../../packages/hmr-plugin/src/utils/externals.ts","../../../packages/hmr-plugin/index.ts","../../../packages/hmr-plugin/ngxs-hmr-plugin.ts"],"sourcesContent":["import { NgxsHmrSnapshot } from '../symbols';\n\nexport class HmrInitAction {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '@@HMR_INIT';\n }\n\n constructor(public payload: Partial<NgxsHmrSnapshot>) {}\n}\n","import { NgxsHmrSnapshot } from '../symbols';\n\nexport class HmrBeforeDestroyAction {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '@@HMR_BEFORE_DESTROY';\n }\n\n constructor(public payload: Partial<NgxsHmrSnapshot>) {}\n}\n","import { StateContext, Store } from '@ngxs/store';\nimport { isStateOperator } from '@ngxs/store/operators';\nimport { NgModuleRef } from '@angular/core';\n\nexport class HmrStateContextFactory<T, S> {\n public store: Store;\n\n constructor(module: NgModuleRef<T>) {\n const store = module.injector.get<Store>(Store, undefined);\n\n if (!store) {\n throw new Error('Store not found, maybe you forgot to import the NgxsModule');\n }\n\n this.store = store;\n }\n\n /**\n * @description\n * must be taken out into @ngxs/store/internals\n */\n public createStateContext(): StateContext<S> {\n return {\n dispatch: actions => this.store!.dispatch(actions),\n getState: () => <S>this.store!.snapshot(),\n setState: val => {\n if (isStateOperator(val)) {\n const currentState = this.store!.snapshot();\n val = val(currentState);\n }\n\n this.store!.reset(val);\n return <S>val;\n },\n patchState: val => {\n const currentState = this.store!.snapshot();\n const newState = { ...currentState, ...(<object>val) };\n this.store!.reset(newState);\n return newState;\n }\n };\n }\n}\n","import { NgxsHmrOptions } from '../symbols';\n\nexport class HmrOptionBuilder {\n public readonly deferTime: number;\n public readonly autoClearLogs: boolean;\n\n constructor({ deferTime, autoClearLogs }: NgxsHmrOptions) {\n this.deferTime = deferTime || 100;\n this.autoClearLogs = autoClearLogs === undefined ? true : autoClearLogs;\n }\n\n public clearLogs(): void {\n if (this.autoClearLogs) {\n console.clear();\n }\n }\n}\n","import { NgxsBootstrapper } from '@ngxs/store/internals';\nimport { Observable, Subscription } from 'rxjs';\nimport { StateContext } from '@ngxs/store';\n\nimport { HmrOptionBuilder } from './hmr-options-builder';\nimport { HmrCallback, NgxsHmrLifeCycle } from '../symbols';\nimport { HmrStateContextFactory } from './hmr-state-context-factory';\nimport { HmrBeforeDestroyAction } from '../actions/hmr-before-destroy.action';\nimport { HmrStorage } from './hmr-storage';\n\nexport class HmrLifecycle<T extends Partial<NgxsHmrLifeCycle<S>>, S> {\n constructor(\n private ngAppModule: T,\n private bootstrap: NgxsBootstrapper,\n private storage: HmrStorage<S>,\n private context: HmrStateContextFactory<T, S>,\n private options: HmrOptionBuilder\n ) {}\n\n public hmrNgxsStoreOnInit(hmrAfterOnInit: HmrCallback<S>) {\n let moduleHmrInit: HmrCallback<S> = this.getModuleHmrInitCallback();\n moduleHmrInit = moduleHmrInit.bind(this.ngAppModule);\n this.detectIvyWithJIT();\n this.stateEventLoop((ctx, state) => {\n moduleHmrInit(ctx, state);\n hmrAfterOnInit(ctx, state);\n });\n }\n\n private getModuleHmrInitCallback(): HmrCallback<S> {\n if (typeof this.ngAppModule.hmrNgxsStoreOnInit === 'function') {\n return this.ngAppModule.hmrNgxsStoreOnInit;\n }\n return function defaultModuleHmrInit(ctx, state) {\n ctx.patchState(state);\n };\n }\n\n public hmrNgxsStoreBeforeOnDestroy(): Partial<S> {\n let state: Partial<S> = {};\n const ctx: StateContext<S> = this.context.createStateContext();\n if (typeof this.ngAppModule.hmrNgxsStoreBeforeOnDestroy === 'function') {\n state = this.ngAppModule.hmrNgxsStoreBeforeOnDestroy(ctx);\n } else {\n state = ctx.getState();\n }\n\n ctx.dispatch(new HmrBeforeDestroyAction(state));\n return state;\n }\n\n private stateEventLoop(callback: HmrCallback<S>): void {\n if (!this.storage.hasData()) return;\n\n const appBootstrapped$: Observable<boolean> = this.bootstrap.appBootstrapped$;\n const state$: Observable<any> = this.context.store.select(state => state);\n\n appBootstrapped$.subscribe(() => {\n let eventId: number;\n const storeEventId: Subscription = state$.subscribe(() => {\n // setTimeout used for zone detection after set hmr state\n clearInterval(eventId);\n eventId = window.setTimeout(() => {\n // close check on the message queue\n storeEventId.unsubscribe();\n // if events are no longer running on the call stack,\n // then we can update the state\n callback(this.context.createStateContext(), this.storage.snapshot as Partial<S>);\n }, this.options.deferTime);\n });\n });\n }\n\n private detectIvyWithJIT(): void {\n const jit: boolean = this.ngAppModule.constructor.hasOwnProperty('__annotations__');\n const ivy: boolean = this.ngAppModule.constructor.hasOwnProperty('ɵmod');\n if (jit && ivy) {\n throw new Error(\n `@ngxs/hmr-plugin doesn't work with JIT mode in Angular Ivy. Please use AOT mode.`\n );\n }\n }\n}\n","import { ApplicationRef, ComponentRef, NgModuleRef } from '@angular/core';\nimport { InitialState, NgxsBootstrapper } from '@ngxs/store/internals';\n\nimport { HmrStorage } from './internal/hmr-storage';\nimport {\n BootstrapModuleFn,\n NgxsHmrLifeCycle,\n NgxsHmrOptions,\n NgxsHmrSnapshot\n} from './symbols';\nimport { HmrStateContextFactory } from './internal/hmr-state-context-factory';\nimport { HmrOptionBuilder } from './internal/hmr-options-builder';\nimport { HmrInitAction } from './actions/hmr-init.action';\nimport { HmrLifecycle } from './internal/hmr-lifecycle';\n\ntype OldHostRemoverFn = () => void;\n\nexport class HmrManager<T extends Partial<NgxsHmrLifeCycle<S>>, S = NgxsHmrSnapshot> {\n public storage: HmrStorage<S>;\n public context: HmrStateContextFactory<T, S>;\n public lifecycle: HmrLifecycle<T, S>;\n public optionsBuilder: HmrOptionBuilder;\n private ngModule: NgModuleRef<T>;\n\n constructor(options: NgxsHmrOptions, storage: HmrStorage<S>) {\n this.storage = storage;\n this.optionsBuilder = new HmrOptionBuilder(options);\n }\n\n private get applicationRef(): ApplicationRef {\n return this.ngModule.injector.get(ApplicationRef);\n }\n\n private get bootstrap(): NgxsBootstrapper {\n return this.ngModule.injector.get(NgxsBootstrapper);\n }\n\n public async hmrModule(\n bootstrapFn: BootstrapModuleFn<T>,\n tick: () => void\n ): Promise<NgModuleRef<T>> {\n InitialState.set(this.storage.snapshot);\n this.ngModule = await bootstrapFn();\n this.context = new HmrStateContextFactory(this.ngModule);\n this.lifecycle = this.createLifecycle();\n\n tick();\n\n InitialState.pop();\n return this.ngModule;\n }\n\n public beforeModuleBootstrap(): void {\n this.lifecycle.hmrNgxsStoreOnInit((ctx, state) => {\n ctx.dispatch(new HmrInitAction(state));\n });\n }\n\n public beforeModuleOnDestroy(): Partial<S> {\n this.optionsBuilder.clearLogs();\n return this.lifecycle.hmrNgxsStoreBeforeOnDestroy();\n }\n\n public createNewModule(): void {\n const removeOldHosts: () => void = this.cloneHostsBeforeDestroy();\n this.removeNgStyles();\n this.ngModule.destroy();\n removeOldHosts();\n }\n\n private createLifecycle(): HmrLifecycle<T, S> {\n return new HmrLifecycle(\n this.ngModule.instance,\n this.bootstrap,\n this.storage,\n this.context,\n this.optionsBuilder\n );\n }\n\n private cloneHostsBeforeDestroy(): () => void {\n const elements: Element[] = this.applicationRef.components.map(\n (component: ComponentRef<Element>) => component.location.nativeElement\n );\n\n const removableList: OldHostRemoverFn[] = elements.map((componentNode: Element) => {\n const newNode = document.createElement(componentNode.tagName);\n const parentNode: Node = componentNode.parentNode as Node;\n const currentDisplay: string | null = newNode.style.display;\n\n newNode.style.display = 'none';\n parentNode.insertBefore(newNode, componentNode);\n\n return (): void => {\n newNode.style.display = currentDisplay;\n try {\n parentNode.removeChild(componentNode);\n } catch {}\n };\n });\n\n return function removeOldHosts(): void {\n removableList.forEach((removeOldHost: OldHostRemoverFn) => removeOldHost());\n };\n }\n\n private removeNgStyles(): void {\n const head: HTMLHeadElement = document.head!;\n const styles: HTMLStyleElement[] = Array.from(head!.querySelectorAll('style'));\n\n styles\n .filter((style: HTMLStyleElement) => style.innerText.includes('_ng'))\n .map((style: HTMLStyleElement) => head!.removeChild(style));\n }\n}\n","export class HmrStorage<S> {\n constructor(private _snapshot: Partial<S> = {}) {}\n\n public hasData(): boolean {\n return Object.keys(this._snapshot).length > 0;\n }\n\n public get snapshot(): Partial<S> {\n return this._snapshot;\n }\n}\n","import { HmrRuntime } from '../symbols';\n\ndeclare const window: any;\n\nexport function setHmrReloadedTo(value: boolean): void {\n if (window[HmrRuntime.Status]) {\n window[HmrRuntime.Status].hmrReloaded = value;\n }\n}\n\nexport function markApplicationAsHmrReloaded(): void {\n window[HmrRuntime.Status] = window[HmrRuntime.Status] || {\n hmrReloaded: false\n };\n}\n","import { NgModuleRef } from '@angular/core';\nimport { HmrManager } from './hmr-manager';\nimport { BootstrapModuleFn, NgxsHmrOptions, WebpackModule } from './symbols';\nimport { HmrStorage } from './internal/hmr-storage';\nimport { markApplicationAsHmrReloaded, setHmrReloadedTo } from './utils/internals';\n\n/**\n * Hot Module Replacement plugin for NGXS\n * @deprecated As of Angular v10, HMR is no longer supported and will be deprecated.\n * More information [here](https://www.ngxs.io/plugins/hmr).\n */\nexport async function hmr<T>(\n webpackModule: WebpackModule,\n bootstrapFn: BootstrapModuleFn<T>,\n options: NgxsHmrOptions = {}\n): Promise<NgModuleRef<T>> {\n if (!webpackModule.hot) {\n console.error('Are you using the --hmr flag for ng serve?');\n throw new Error('HMR is not enabled for webpack-dev-server!');\n }\n\n markApplicationAsHmrReloaded();\n\n webpackModule.hot.accept();\n\n interface HmrDataTransfer {\n snapshot?: any;\n }\n const dataTransfer: HmrDataTransfer = webpackModule.hot.data || {};\n\n const storage = new HmrStorage<any>(dataTransfer.snapshot || {});\n const manager = new HmrManager<any>(options, storage);\n\n return await manager.hmrModule(bootstrapFn, () => {\n manager.beforeModuleBootstrap();\n\n webpackModule.hot!.dispose((data: HmrDataTransfer) => {\n setHmrReloadedTo(true);\n data.snapshot = manager.beforeModuleOnDestroy();\n manager.createNewModule();\n });\n });\n}\n","import { HmrRuntime } from '../symbols';\n\ndeclare const window: any;\n\nexport function hmrIsReloaded(): boolean {\n return !!(window[HmrRuntime.Status] && window[HmrRuntime.Status].hmrReloaded);\n}\n","/**\n * The public api for consumers of @ngxs/hmr-plugin\n */\nexport * from './src/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngxs-hmr-plugin.mjs","sources":["../../../packages/hmr-plugin/src/actions/hmr-init.action.ts","../../../packages/hmr-plugin/src/actions/hmr-before-destroy.action.ts","../../../packages/hmr-plugin/src/internal/hmr-state-context-factory.ts","../../../packages/hmr-plugin/src/internal/hmr-options-builder.ts","../../../packages/hmr-plugin/src/internal/hmr-lifecycle.ts","../../../packages/hmr-plugin/src/hmr-manager.ts","../../../packages/hmr-plugin/src/internal/hmr-storage.ts","../../../packages/hmr-plugin/src/utils/internals.ts","../../../packages/hmr-plugin/src/hmr-bootstrap.ts","../../../packages/hmr-plugin/src/utils/externals.ts","../../../packages/hmr-plugin/index.ts","../../../packages/hmr-plugin/ngxs-hmr-plugin.ts"],"sourcesContent":["import { NgxsHmrSnapshot } from '../symbols';\n\nexport class HmrInitAction {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '@@HMR_INIT';\n }\n\n constructor(public payload: Partial<NgxsHmrSnapshot>) {}\n}\n","import { NgxsHmrSnapshot } from '../symbols';\n\nexport class HmrBeforeDestroyAction {\n static get type() {\n // NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138\n return '@@HMR_BEFORE_DESTROY';\n }\n\n constructor(public payload: Partial<NgxsHmrSnapshot>) {}\n}\n","import { StateContext, Store } from '@ngxs/store';\nimport { isStateOperator } from '@ngxs/store/operators';\nimport { NgModuleRef } from '@angular/core';\n\nexport class HmrStateContextFactory<T, S> {\n public store: Store;\n\n constructor(module: NgModuleRef<T>) {\n const store = module.injector.get<Store>(Store, undefined);\n\n if (!store) {\n throw new Error('Store not found, maybe you forgot to import the NgxsModule');\n }\n\n this.store = store;\n }\n\n /**\n * @description\n * must be taken out into @ngxs/store/internals\n */\n public createStateContext(): StateContext<S> {\n return {\n dispatch: actions => this.store!.dispatch(actions),\n getState: () => <S>this.store!.snapshot(),\n setState: val => {\n if (isStateOperator(val)) {\n const currentState = this.store!.snapshot();\n val = val(currentState);\n }\n\n this.store!.reset(val);\n return <S>val;\n },\n patchState: val => {\n const currentState = this.store!.snapshot();\n const newState = { ...currentState, ...(<object>val) };\n this.store!.reset(newState);\n return newState;\n }\n };\n }\n}\n","import { NgxsHmrOptions } from '../symbols';\n\nexport class HmrOptionBuilder {\n public readonly deferTime: number;\n public readonly autoClearLogs: boolean;\n\n constructor({ deferTime, autoClearLogs }: NgxsHmrOptions) {\n this.deferTime = deferTime || 100;\n this.autoClearLogs = autoClearLogs === undefined ? true : autoClearLogs;\n }\n\n public clearLogs(): void {\n if (this.autoClearLogs) {\n console.clear();\n }\n }\n}\n","import { ɵNgxsAppBootstrappedState } from '@ngxs/store/internals';\nimport { Observable, Subscription } from 'rxjs';\nimport { StateContext } from '@ngxs/store';\n\nimport { HmrOptionBuilder } from './hmr-options-builder';\nimport { HmrCallback, NgxsHmrLifeCycle } from '../symbols';\nimport { HmrStateContextFactory } from './hmr-state-context-factory';\nimport { HmrBeforeDestroyAction } from '../actions/hmr-before-destroy.action';\nimport { HmrStorage } from './hmr-storage';\n\nexport class HmrLifecycle<T extends Partial<NgxsHmrLifeCycle<S>>, S> {\n constructor(\n private ngAppModule: T,\n private appBootstrappedState: ɵNgxsAppBootstrappedState,\n private storage: HmrStorage<S>,\n private context: HmrStateContextFactory<T, S>,\n private options: HmrOptionBuilder\n ) {}\n\n public hmrNgxsStoreOnInit(hmrAfterOnInit: HmrCallback<S>) {\n let moduleHmrInit: HmrCallback<S> = this.getModuleHmrInitCallback();\n moduleHmrInit = moduleHmrInit.bind(this.ngAppModule);\n this.detectIvyWithJIT();\n this.stateEventLoop((ctx, state) => {\n moduleHmrInit(ctx, state);\n hmrAfterOnInit(ctx, state);\n });\n }\n\n private getModuleHmrInitCallback(): HmrCallback<S> {\n if (typeof this.ngAppModule.hmrNgxsStoreOnInit === 'function') {\n return this.ngAppModule.hmrNgxsStoreOnInit;\n }\n return function defaultModuleHmrInit(ctx, state) {\n ctx.patchState(state);\n };\n }\n\n public hmrNgxsStoreBeforeOnDestroy(): Partial<S> {\n let state: Partial<S> = {};\n const ctx: StateContext<S> = this.context.createStateContext();\n if (typeof this.ngAppModule.hmrNgxsStoreBeforeOnDestroy === 'function') {\n state = this.ngAppModule.hmrNgxsStoreBeforeOnDestroy(ctx);\n } else {\n state = ctx.getState();\n }\n\n ctx.dispatch(new HmrBeforeDestroyAction(state));\n return state;\n }\n\n private stateEventLoop(callback: HmrCallback<S>): void {\n if (!this.storage.hasData()) return;\n\n const state$: Observable<any> = this.context.store.select(state => state);\n\n this.appBootstrappedState.subscribe(() => {\n let eventId: number;\n const storeEventId: Subscription = state$.subscribe(() => {\n // setTimeout used for zone detection after set hmr state\n clearInterval(eventId);\n eventId = window.setTimeout(() => {\n // close check on the message queue\n storeEventId.unsubscribe();\n // if events are no longer running on the call stack,\n // then we can update the state\n callback(this.context.createStateContext(), this.storage.snapshot as Partial<S>);\n }, this.options.deferTime);\n });\n });\n }\n\n private detectIvyWithJIT(): void {\n const jit: boolean = this.ngAppModule.constructor.hasOwnProperty('__annotations__');\n const ivy: boolean = this.ngAppModule.constructor.hasOwnProperty('ɵmod');\n if (jit && ivy) {\n throw new Error(\n `@ngxs/hmr-plugin doesn't work with JIT mode in Angular Ivy. Please use AOT mode.`\n );\n }\n }\n}\n","import { ApplicationRef, ComponentRef, NgModuleRef } from '@angular/core';\nimport { ɵInitialState, ɵNgxsAppBootstrappedState } from '@ngxs/store/internals';\n\nimport { HmrStorage } from './internal/hmr-storage';\nimport {\n BootstrapModuleFn,\n NgxsHmrLifeCycle,\n NgxsHmrOptions,\n NgxsHmrSnapshot\n} from './symbols';\nimport { HmrStateContextFactory } from './internal/hmr-state-context-factory';\nimport { HmrOptionBuilder } from './internal/hmr-options-builder';\nimport { HmrInitAction } from './actions/hmr-init.action';\nimport { HmrLifecycle } from './internal/hmr-lifecycle';\n\ntype OldHostRemoverFn = () => void;\n\nexport class HmrManager<T extends Partial<NgxsHmrLifeCycle<S>>, S = NgxsHmrSnapshot> {\n public storage: HmrStorage<S>;\n public context: HmrStateContextFactory<T, S>;\n public lifecycle: HmrLifecycle<T, S>;\n public optionsBuilder: HmrOptionBuilder;\n private ngModule: NgModuleRef<T>;\n\n constructor(options: NgxsHmrOptions, storage: HmrStorage<S>) {\n this.storage = storage;\n this.optionsBuilder = new HmrOptionBuilder(options);\n }\n\n private get applicationRef(): ApplicationRef {\n return this.ngModule.injector.get(ApplicationRef);\n }\n\n private get appBootstrappedState() {\n return this.ngModule.injector.get(ɵNgxsAppBootstrappedState);\n }\n\n public async hmrModule(\n bootstrapFn: BootstrapModuleFn<T>,\n tick: () => void\n ): Promise<NgModuleRef<T>> {\n ɵInitialState.set(this.storage.snapshot);\n this.ngModule = await bootstrapFn();\n this.context = new HmrStateContextFactory(this.ngModule);\n this.lifecycle = this.createLifecycle();\n\n tick();\n\n ɵInitialState.pop();\n return this.ngModule;\n }\n\n public beforeModuleBootstrap(): void {\n this.lifecycle.hmrNgxsStoreOnInit((ctx, state) => {\n ctx.dispatch(new HmrInitAction(state));\n });\n }\n\n public beforeModuleOnDestroy(): Partial<S> {\n this.optionsBuilder.clearLogs();\n return this.lifecycle.hmrNgxsStoreBeforeOnDestroy();\n }\n\n public createNewModule(): void {\n const removeOldHosts: () => void = this.cloneHostsBeforeDestroy();\n this.removeNgStyles();\n this.ngModule.destroy();\n removeOldHosts();\n }\n\n private createLifecycle(): HmrLifecycle<T, S> {\n return new HmrLifecycle(\n this.ngModule.instance,\n this.appBootstrappedState,\n this.storage,\n this.context,\n this.optionsBuilder\n );\n }\n\n private cloneHostsBeforeDestroy(): () => void {\n const elements: Element[] = this.applicationRef.components.map(\n (component: ComponentRef<Element>) => component.location.nativeElement\n );\n\n const removableList: OldHostRemoverFn[] = elements.map((componentNode: Element) => {\n const newNode = document.createElement(componentNode.tagName);\n const parentNode: Node = componentNode.parentNode as Node;\n const currentDisplay: string | null = newNode.style.display;\n\n newNode.style.display = 'none';\n parentNode.insertBefore(newNode, componentNode);\n\n return (): void => {\n newNode.style.display = currentDisplay;\n try {\n parentNode.removeChild(componentNode);\n } catch {}\n };\n });\n\n return function removeOldHosts(): void {\n removableList.forEach((removeOldHost: OldHostRemoverFn) => removeOldHost());\n };\n }\n\n private removeNgStyles(): void {\n const head: HTMLHeadElement = document.head!;\n const styles: HTMLStyleElement[] = Array.from(head!.querySelectorAll('style'));\n\n styles\n .filter((style: HTMLStyleElement) => style.innerText.includes('_ng'))\n .map((style: HTMLStyleElement) => head!.removeChild(style));\n }\n}\n","export class HmrStorage<S> {\n constructor(private _snapshot: Partial<S> = {}) {}\n\n public hasData(): boolean {\n return Object.keys(this._snapshot).length > 0;\n }\n\n public get snapshot(): Partial<S> {\n return this._snapshot;\n }\n}\n","import { HmrRuntime } from '../symbols';\n\ndeclare const window: any;\n\nexport function setHmrReloadedTo(value: boolean): void {\n if (window[HmrRuntime.Status]) {\n window[HmrRuntime.Status].hmrReloaded = value;\n }\n}\n\nexport function markApplicationAsHmrReloaded(): void {\n window[HmrRuntime.Status] = window[HmrRuntime.Status] || {\n hmrReloaded: false\n };\n}\n","import { NgModuleRef } from '@angular/core';\nimport { HmrManager } from './hmr-manager';\nimport { BootstrapModuleFn, NgxsHmrOptions, WebpackModule } from './symbols';\nimport { HmrStorage } from './internal/hmr-storage';\nimport { markApplicationAsHmrReloaded, setHmrReloadedTo } from './utils/internals';\n\n/**\n * Hot Module Replacement plugin for NGXS\n * @deprecated As of Angular v10, HMR is no longer supported and will be deprecated.\n * More information [here](https://www.ngxs.io/plugins/hmr).\n */\nexport async function hmr<T>(\n webpackModule: WebpackModule,\n bootstrapFn: BootstrapModuleFn<T>,\n options: NgxsHmrOptions = {}\n): Promise<NgModuleRef<T>> {\n if (!webpackModule.hot) {\n console.error('Are you using the --hmr flag for ng serve?');\n throw new Error('HMR is not enabled for webpack-dev-server!');\n }\n\n markApplicationAsHmrReloaded();\n\n webpackModule.hot.accept();\n\n interface HmrDataTransfer {\n snapshot?: any;\n }\n const dataTransfer: HmrDataTransfer = webpackModule.hot.data || {};\n\n const storage = new HmrStorage<any>(dataTransfer.snapshot || {});\n const manager = new HmrManager<any>(options, storage);\n\n return await manager.hmrModule(bootstrapFn, () => {\n manager.beforeModuleBootstrap();\n\n webpackModule.hot!.dispose((data: HmrDataTransfer) => {\n setHmrReloadedTo(true);\n data.snapshot = manager.beforeModuleOnDestroy();\n manager.createNewModule();\n });\n });\n}\n","import { HmrRuntime } from '../symbols';\n\ndeclare const window: any;\n\nexport function hmrIsReloaded(): boolean {\n return !!(window[HmrRuntime.Status] && window[HmrRuntime.Status].hmrReloaded);\n}\n","/**\n * The public api for consumers of @ngxs/hmr-plugin\n */\nexport * from './src/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ɵNgxsAppBootstrappedState","ɵInitialState"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngxs/hmr-plugin",
3
- "version": "3.8.2-dev.master-a836c51",
3
+ "version": "3.8.2-dev.master-42a8ed3",
4
4
  "license": "MIT",
5
5
  "sideEffects": true,
6
6
  "peerDependencies": {
@@ -12,7 +12,7 @@ export declare class HmrManager<T extends Partial<NgxsHmrLifeCycle<S>>, S = Ngxs
12
12
  private ngModule;
13
13
  constructor(options: NgxsHmrOptions, storage: HmrStorage<S>);
14
14
  private get applicationRef();
15
- private get bootstrap();
15
+ private get appBootstrappedState();
16
16
  hmrModule(bootstrapFn: BootstrapModuleFn<T>, tick: () => void): Promise<NgModuleRef<T>>;
17
17
  beforeModuleBootstrap(): void;
18
18
  beforeModuleOnDestroy(): Partial<S>;
@@ -1,15 +1,15 @@
1
- import { NgxsBootstrapper } from '@ngxs/store/internals';
1
+ import { ɵNgxsAppBootstrappedState } from '@ngxs/store/internals';
2
2
  import { HmrOptionBuilder } from './hmr-options-builder';
3
3
  import { HmrCallback, NgxsHmrLifeCycle } from '../symbols';
4
4
  import { HmrStateContextFactory } from './hmr-state-context-factory';
5
5
  import { HmrStorage } from './hmr-storage';
6
6
  export declare class HmrLifecycle<T extends Partial<NgxsHmrLifeCycle<S>>, S> {
7
7
  private ngAppModule;
8
- private bootstrap;
8
+ private appBootstrappedState;
9
9
  private storage;
10
10
  private context;
11
11
  private options;
12
- constructor(ngAppModule: T, bootstrap: NgxsBootstrapper, storage: HmrStorage<S>, context: HmrStateContextFactory<T, S>, options: HmrOptionBuilder);
12
+ constructor(ngAppModule: T, appBootstrappedState: ɵNgxsAppBootstrappedState, storage: HmrStorage<S>, context: HmrStateContextFactory<T, S>, options: HmrOptionBuilder);
13
13
  hmrNgxsStoreOnInit(hmrAfterOnInit: HmrCallback<S>): void;
14
14
  private getModuleHmrInitCallback;
15
15
  hmrNgxsStoreBeforeOnDestroy(): Partial<S>;