@ngxs/store 3.7.3 → 3.7.4

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.
Files changed (121) hide show
  1. package/bundles/ngxs-store-internals-testing.umd.js +114 -11
  2. package/bundles/ngxs-store-internals-testing.umd.js.map +1 -1
  3. package/bundles/ngxs-store-internals-testing.umd.min.js +1 -1
  4. package/bundles/ngxs-store-internals-testing.umd.min.js.map +1 -1
  5. package/bundles/ngxs-store-internals.umd.js +278 -91
  6. package/bundles/ngxs-store-internals.umd.js.map +1 -1
  7. package/bundles/ngxs-store-internals.umd.min.js +1 -1
  8. package/bundles/ngxs-store-internals.umd.min.js.map +1 -1
  9. package/bundles/ngxs-store.umd.js +457 -484
  10. package/bundles/ngxs-store.umd.js.map +1 -1
  11. package/bundles/ngxs-store.umd.min.js +1 -1
  12. package/bundles/ngxs-store.umd.min.js.map +1 -1
  13. package/esm2015/internals/angular.js +12 -32
  14. package/esm2015/internals/decorator-injector-adapter.js +204 -0
  15. package/esm2015/internals/index.js +2 -1
  16. package/esm2015/internals/ngxs-store-internals.js +2 -2
  17. package/esm2015/internals/testing/fresh-platform.js +46 -7
  18. package/esm2015/internals/testing/index.js +2 -1
  19. package/esm2015/internals/testing/ngxs-store-internals-testing.js +2 -2
  20. package/esm2015/internals/testing/skip-console-logging.js +62 -0
  21. package/esm2015/internals/testing/symbol.js +1 -1
  22. package/esm2015/ngxs-store.js +14 -18
  23. package/esm2015/src/configs/messages.config.js +74 -82
  24. package/esm2015/src/decorators/action.js +10 -6
  25. package/esm2015/src/decorators/select/select-factory.js +8 -5
  26. package/esm2015/src/decorators/select/select.js +39 -3
  27. package/esm2015/src/decorators/select/symbols.js +56 -12
  28. package/esm2015/src/decorators/selector/selector.js +10 -6
  29. package/esm2015/src/decorators/state.js +12 -4
  30. package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +25 -18
  31. package/esm2015/src/execution/noop-ngxs-execution-strategy.js +4 -2
  32. package/esm2015/src/execution/symbols.js +26 -3
  33. package/esm2015/src/internal/internals.js +8 -4
  34. package/esm2015/src/internal/state-factory.js +46 -26
  35. package/esm2015/src/internal/state-operations.js +47 -39
  36. package/esm2015/src/internal/state-operators.js +4 -4
  37. package/esm2015/src/internal/state-stream.js +10 -1
  38. package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +18 -30
  39. package/esm2015/src/module.js +7 -22
  40. package/esm2015/src/modules/ngxs-root.module.js +8 -8
  41. package/esm2015/src/store.js +20 -4
  42. package/esm2015/src/symbols.js +4 -5
  43. package/esm2015/src/utils/store-validators.js +24 -29
  44. package/esm5/internals/angular.js +12 -32
  45. package/esm5/internals/decorator-injector-adapter.js +204 -0
  46. package/esm5/internals/index.js +2 -1
  47. package/esm5/internals/ngxs-store-internals.js +2 -2
  48. package/esm5/internals/testing/fresh-platform.js +53 -13
  49. package/esm5/internals/testing/index.js +2 -1
  50. package/esm5/internals/testing/ngxs-store-internals-testing.js +2 -2
  51. package/esm5/internals/testing/skip-console-logging.js +62 -0
  52. package/esm5/internals/testing/symbol.js +1 -1
  53. package/esm5/ngxs-store.js +14 -18
  54. package/esm5/src/configs/messages.config.js +75 -100
  55. package/esm5/src/decorators/action.js +10 -6
  56. package/esm5/src/decorators/select/select-factory.js +8 -5
  57. package/esm5/src/decorators/select/select.js +40 -3
  58. package/esm5/src/decorators/select/symbols.js +56 -12
  59. package/esm5/src/decorators/selector/selector.js +10 -6
  60. package/esm5/src/decorators/state.js +12 -4
  61. package/esm5/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +25 -23
  62. package/esm5/src/execution/noop-ngxs-execution-strategy.js +4 -2
  63. package/esm5/src/execution/symbols.js +26 -3
  64. package/esm5/src/internal/internals.js +8 -4
  65. package/esm5/src/internal/state-factory.js +39 -27
  66. package/esm5/src/internal/state-operations.js +47 -43
  67. package/esm5/src/internal/state-operators.js +4 -4
  68. package/esm5/src/internal/state-stream.js +13 -1
  69. package/esm5/src/ivy/ivy-enabled-in-dev-mode.js +18 -30
  70. package/esm5/src/module.js +7 -22
  71. package/esm5/src/modules/ngxs-root.module.js +7 -7
  72. package/esm5/src/store.js +20 -4
  73. package/esm5/src/symbols.js +4 -5
  74. package/esm5/src/utils/store-validators.js +28 -36
  75. package/fesm2015/ngxs-store-internals-testing.js +108 -7
  76. package/fesm2015/ngxs-store-internals-testing.js.map +1 -1
  77. package/fesm2015/ngxs-store-internals.js +263 -79
  78. package/fesm2015/ngxs-store-internals.js.map +1 -1
  79. package/fesm2015/ngxs-store.js +429 -413
  80. package/fesm2015/ngxs-store.js.map +1 -1
  81. package/fesm5/ngxs-store-internals-testing.js +115 -13
  82. package/fesm5/ngxs-store-internals-testing.js.map +1 -1
  83. package/fesm5/ngxs-store-internals.js +277 -93
  84. package/fesm5/ngxs-store-internals.js.map +1 -1
  85. package/fesm5/ngxs-store.js +443 -465
  86. package/fesm5/ngxs-store.js.map +1 -1
  87. package/internals/angular.d.ts +1 -3
  88. package/internals/decorator-injector-adapter.d.ts +15 -0
  89. package/internals/index.d.ts +1 -0
  90. package/internals/ngxs-store-internals.metadata.json +1 -1
  91. package/internals/testing/fresh-platform.d.ts +1 -1
  92. package/internals/testing/index.d.ts +1 -0
  93. package/internals/testing/ngxs-store-internals-testing.metadata.json +1 -1
  94. package/internals/testing/skip-console-logging.d.ts +1 -0
  95. package/internals/testing/symbol.d.ts +1 -1
  96. package/ngxs-store.d.ts +14 -18
  97. package/ngxs-store.metadata.json +1 -1
  98. package/package.json +2 -2
  99. package/src/configs/messages.config.d.ts +11 -30
  100. package/src/decorators/select/select-factory.d.ts +2 -3
  101. package/src/decorators/select/symbols.d.ts +6 -2
  102. package/src/execution/dispatch-outside-zone-ngxs-execution-strategy.d.ts +0 -1
  103. package/src/execution/symbols.d.ts +5 -1
  104. package/src/internal/internals.d.ts +0 -1
  105. package/src/internal/state-factory.d.ts +2 -3
  106. package/src/internal/state-operations.d.ts +1 -3
  107. package/src/internal/state-stream.d.ts +3 -1
  108. package/src/ivy/ivy-enabled-in-dev-mode.d.ts +4 -12
  109. package/src/modules/ngxs-root.module.d.ts +2 -2
  110. package/src/store.d.ts +6 -0
  111. package/src/symbols.d.ts +4 -3
  112. package/src/utils/store-validators.d.ts +5 -6
  113. package/esm2015/src/host-environment/host-environment.js +0 -31
  114. package/esm2015/src/internal/config-validator.js +0 -67
  115. package/esm2015/src/ivy/ensure-state-class-is-injectable.js +0 -34
  116. package/esm5/src/host-environment/host-environment.js +0 -29
  117. package/esm5/src/internal/config-validator.js +0 -76
  118. package/esm5/src/ivy/ensure-state-class-is-injectable.js +0 -34
  119. package/src/host-environment/host-environment.d.ts +0 -6
  120. package/src/internal/config-validator.d.ts +0 -10
  121. package/src/ivy/ensure-state-class-is-injectable.d.ts +0 -6
@@ -11,10 +11,6 @@ export const FEATURE_STATE_TOKEN = new InjectionToken('FEATURE_STATE_TOKEN');
11
11
  /** @type {?} */
12
12
  export const NGXS_PLUGINS = new InjectionToken('NGXS_PLUGINS');
13
13
  /** @type {?} */
14
- export const NG_TEST_MODE = new InjectionToken('NG_TEST_MODE');
15
- /** @type {?} */
16
- export const NG_DEV_MODE = new InjectionToken('NG_DEV_MODE');
17
- /** @type {?} */
18
14
  export const META_KEY = 'NGXS_META';
19
15
  /** @type {?} */
20
16
  export const META_OPTIONS_KEY = 'NGXS_OPTIONS_META';
@@ -56,6 +52,9 @@ if (false) {
56
52
  * Run in development mode. This will add additional debugging features:
57
53
  * - Object.freeze on the state and actions to guarantee immutability
58
54
  * (default: false)
55
+ *
56
+ * @deprecated This property is no longer necessary when the Ivy compiler is used.
57
+ * We'll determine the development mode through the `ngDevMode`. It's still essential with View Engine.
59
58
  * @type {?}
60
59
  */
61
60
  NgxsConfig.prototype.developmentMode;
@@ -218,4 +217,4 @@ if (false) {
218
217
  */
219
218
  NgxsAfterBootstrap.prototype.ngxsAfterBootstrap = function (ctx) { };
220
219
  }
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBTWpFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLDJEQUEyRCxDQUFDOztBQUdySCxNQUFNLE9BQU8sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQU0sa0JBQWtCLENBQUM7O0FBQzNFLE1BQU0sT0FBTyxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBTSxxQkFBcUIsQ0FBQzs7QUFDakYsTUFBTSxPQUFPLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUM7O0FBQzlELE1BQU0sT0FBTyxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQW9CLGNBQWMsQ0FBQzs7QUFDakYsTUFBTSxPQUFPLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBb0IsYUFBYSxDQUFDOztBQUUvRSxNQUFNLE9BQU8sUUFBUSxHQUFHLFdBQVc7O0FBQ25DLE1BQU0sT0FBTyxnQkFBZ0IsR0FBRyxtQkFBbUI7O0FBQ25ELE1BQU0sT0FBTyxpQkFBaUIsR0FBRyxvQkFBb0I7Ozs7QUFZckQsTUFBTSxPQUFPLFVBQVU7SUEwQ3JCOzs7Ozs7O1FBVEEsa0JBQWEsR0FBZ0IsRUFBRSxDQUFDOzs7O1FBSWhDLG9CQUFlLEdBQTBCO1lBQ3ZDLG9CQUFvQixFQUFFLElBQUk7O1lBQzFCLGNBQWMsRUFBRSxJQUFJLENBQUMsaURBQWlEO1NBQ3ZFLENBQUM7UUFHQSxJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLDJCQUEyQixFQUFFLEtBQUs7U0FDbkMsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyx3Q0FBd0MsQ0FBQztJQUNwRSxDQUFDOzs7WUFoREYsVUFBVTs7Ozs7Ozs7Ozs7SUFPVCxxQ0FBeUI7O0lBQ3pCLG1DQU9FOzs7Ozs7Ozs7Ozs7O0lBWUYsdUNBQStDOzs7Ozs7OztJQU8vQyxtQ0FBZ0M7Ozs7O0lBSWhDLHFDQUdFOzs7Ozs7O0FBZUosa0NBb0JDOzs7Ozs7SUFoQkMsa0RBQWM7Ozs7OztJQUtkLHFEQUF1Qzs7Ozs7O0lBS3ZDLHVEQUErQjs7Ozs7O0lBSy9CLHlEQUFpRDs7Ozs7O0FBUW5ELGdDQUtDOzs7Ozs7Ozs7SUFEQyxpRUFBNkQ7Ozs7Ozs7QUFNL0Qsa0NBZUM7Ozs7OztJQVhDLDRCQUE2Qjs7Ozs7SUFLN0IsZ0NBQWE7Ozs7O0lBS2IsZ0NBQXdCOzs7Ozs7O0FBTzFCLE1BQU0sT0FBTyxnQkFBZ0I7Ozs7OztJQUMzQixZQUNrQixhQUFnQixFQUNoQixZQUFlLEVBQ2YsV0FBb0I7UUFGcEIsa0JBQWEsR0FBYixhQUFhLENBQUc7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQUc7UUFDZixnQkFBVyxHQUFYLFdBQVcsQ0FBUztJQUNuQyxDQUFDO0NBQ0w7OztJQUpHLHlDQUFnQzs7SUFDaEMsd0NBQStCOztJQUMvQix1Q0FBb0M7Ozs7OztBQU94QyxnQ0FFQzs7Ozs7O0lBREMscURBQWdEOzs7Ozs7QUFNbEQsbUNBRUM7Ozs7OztJQURDLDhEQUE4Qzs7Ozs7O0FBTWhELHdDQUVDOzs7Ozs7SUFEQyxxRUFBa0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBQbGFpbk9iamVjdCwgU3RhdGVDbGFzcyB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XHJcbmltcG9ydCB7IFNoYXJlZFNlbGVjdG9yT3B0aW9ucywgQ2FsbGJhY2sgfSBmcm9tICcuL2ludGVybmFsL2ludGVybmFscyc7XHJcbmltcG9ydCB7IE5neHNFeGVjdXRpb25TdHJhdGVneSB9IGZyb20gJy4vZXhlY3V0aW9uL3N5bWJvbHMnO1xyXG5pbXBvcnQgeyBEaXNwYXRjaE91dHNpZGVab25lTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9leGVjdXRpb24vZGlzcGF0Y2gtb3V0c2lkZS16b25lLW5neHMtZXhlY3V0aW9uLXN0cmF0ZWd5JztcclxuaW1wb3J0IHsgU3RhdGVUb2tlbiB9IGZyb20gJy4vc3RhdGUtdG9rZW4vc3RhdGUtdG9rZW4nO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJPT1RfU1RBVEVfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignUk9PVF9TVEFURV9UT0tFTicpO1xyXG5leHBvcnQgY29uc3QgRkVBVFVSRV9TVEFURV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdGRUFUVVJFX1NUQVRFX1RPS0VOJyk7XHJcbmV4cG9ydCBjb25zdCBOR1hTX1BMVUdJTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ05HWFNfUExVR0lOUycpO1xyXG5leHBvcnQgY29uc3QgTkdfVEVTVF9NT0RFID0gbmV3IEluamVjdGlvblRva2VuPENhbGxiYWNrPGJvb2xlYW4+PignTkdfVEVTVF9NT0RFJyk7XHJcbmV4cG9ydCBjb25zdCBOR19ERVZfTU9ERSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDYWxsYmFjazxib29sZWFuPj4oJ05HX0RFVl9NT0RFJyk7XHJcblxyXG5leHBvcnQgY29uc3QgTUVUQV9LRVkgPSAnTkdYU19NRVRBJztcclxuZXhwb3J0IGNvbnN0IE1FVEFfT1BUSU9OU19LRVkgPSAnTkdYU19PUFRJT05TX01FVEEnO1xyXG5leHBvcnQgY29uc3QgU0VMRUNUT1JfTUVUQV9LRVkgPSAnTkdYU19TRUxFQ1RPUl9NRVRBJztcclxuXHJcbmV4cG9ydCB0eXBlIE5neHNMaWZlQ3ljbGUgPSBQYXJ0aWFsPE5neHNPbkNoYW5nZXM+ICZcclxuICBQYXJ0aWFsPE5neHNPbkluaXQ+ICZcclxuICBQYXJ0aWFsPE5neHNBZnRlckJvb3RzdHJhcD47XHJcblxyXG5leHBvcnQgdHlwZSBOZ3hzUGx1Z2luRm4gPSAoc3RhdGU6IGFueSwgbXV0YXRpb246IGFueSwgbmV4dDogTmd4c05leHRQbHVnaW5GbikgPT4gYW55O1xyXG5cclxuLyoqXHJcbiAqIFRoZSBOR1hTIGNvbmZpZyBzZXR0aW5ncy5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE5neHNDb25maWcge1xyXG4gIC8qKlxyXG4gICAqIFJ1biBpbiBkZXZlbG9wbWVudCBtb2RlLiBUaGlzIHdpbGwgYWRkIGFkZGl0aW9uYWwgZGVidWdnaW5nIGZlYXR1cmVzOlxyXG4gICAqIC0gT2JqZWN0LmZyZWV6ZSBvbiB0aGUgc3RhdGUgYW5kIGFjdGlvbnMgdG8gZ3VhcmFudGVlIGltbXV0YWJpbGl0eVxyXG4gICAqIChkZWZhdWx0OiBmYWxzZSlcclxuICAgKi9cclxuICBkZXZlbG9wbWVudE1vZGU6IGJvb2xlYW47XHJcbiAgY29tcGF0aWJpbGl0eToge1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdXBwb3J0IGEgc3RyaWN0IENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LlxyXG4gICAgICogVGhpcyB3aWxsIGNpcmN1bXZlbnQgc29tZSBvcHRpbWlzYXRpb25zIHRoYXQgdmlvbGF0ZSBhIHN0cmljdCBDU1AgdGhyb3VnaCB0aGUgdXNlIG9mIGBuZXcgRnVuY3Rpb24oLi4uKWAuXHJcbiAgICAgKiAoZGVmYXVsdDogZmFsc2UpXHJcbiAgICAgKi9cclxuICAgIHN0cmljdENvbnRlbnRTZWN1cml0eVBvbGljeTogYm9vbGVhbjtcclxuICB9O1xyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgdGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRvIHBlcmZvcm0gYXN5bmMgb3BlcmF0aW9ucyBpbnNpZGUuIEFuIGltcGxlbWVudGF0aW9uIGNhbiBiZVxyXG4gICAqIHByb3ZpZGVkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGJlaGF2aW91ciB3aGVyZSB0aGUgYXN5bmMgb3BlcmF0aW9ucyBhcmUgcnVuXHJcbiAgICogb3V0c2lkZSBBbmd1bGFyJ3Mgem9uZSBidXQgYWxsIG9ic2VydmFibGUgYmVoYXZpb3VycyBvZiBOR1hTIGFyZSBydW4gYmFjayBpbnNpZGUgQW5ndWxhcidzIHpvbmUuXHJcbiAgICogVGhlc2Ugb2JzZXJ2YWJsZSBiZWhhdmlvdXJzIGFyZSBmcm9tOlxyXG4gICAqICAgYEBTZWxlY3QoLi4uKWAsIGBzdG9yZS5zZWxlY3QoLi4uKWAsIGBhY3Rpb25zLnN1YnNjcmliZSguLi4pYCBvciBgc3RvcmUuZGlzcGF0Y2goLi4uKS5zdWJzY3JpYmUoLi4uKWBcclxuICAgKiBFdmVyeSBgem9uZS5ydW5gIGNhdXNlcyBBbmd1bGFyIHRvIHJ1biBjaGFuZ2UgZGV0ZWN0aW9uIG9uIHRoZSB3aG9sZSB0cmVlIChgYXBwLnRpY2soKWApIHNvIG9mIHlvdXJcclxuICAgKiBhcHBsaWNhdGlvbiBkb2Vzbid0IHJlbHkgb24gem9uZS5qcyBydW5uaW5nIGNoYW5nZSBkZXRlY3Rpb24gdGhlbiB5b3UgY2FuIHN3aXRjaCB0byB0aGVcclxuICAgKiBgTm9vcE5neHNFeGVjdXRpb25TdHJhdGVneWAgdGhhdCBkb2Vzbid0IGludGVyYWN0IHdpdGggem9uZXMuXHJcbiAgICogKGRlZmF1bHQ6IG51bGwpXHJcbiAgICovXHJcbiAgZXhlY3V0aW9uU3RyYXRlZ3k6IFR5cGU8Tmd4c0V4ZWN1dGlvblN0cmF0ZWd5PjtcclxuICAvKipcclxuICAgKiBEZWZpbmluZyB0aGUgZGVmYXVsdCBzdGF0ZSBiZWZvcmUgbW9kdWxlIGluaXRpYWxpemF0aW9uXHJcbiAgICogVGhpcyBpcyBjb252ZW5pZW50IGlmIHdlIG5lZWQgdG8gY3JlYXRlIGEgZGVmaW5lIG91ciBvd24gc2V0IG9mIHN0YXRlcy5cclxuICAgKiBAZGVwcmVjYXRlZCB3aWxsIGJlIHJlbW92ZWQgYWZ0ZXIgdjRcclxuICAgKiAoZGVmYXVsdDoge30pXHJcbiAgICovXHJcbiAgZGVmYXVsdHNTdGF0ZTogUGxhaW5PYmplY3QgPSB7fTtcclxuICAvKipcclxuICAgKiBEZWZpbmluZyBzaGFyZWQgc2VsZWN0b3Igb3B0aW9uc1xyXG4gICAqL1xyXG4gIHNlbGVjdG9yT3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zID0ge1xyXG4gICAgaW5qZWN0Q29udGFpbmVyU3RhdGU6IHRydWUsIC8vIFRPRE86IGRlZmF1bHQgaXMgdHJ1ZSBpbiB2Mywgd2lsbCBjaGFuZ2UgaW4gdjRcclxuICAgIHN1cHByZXNzRXJyb3JzOiB0cnVlIC8vIFRPRE86IGRlZmF1bHQgaXMgdHJ1ZSBpbiB2Mywgd2lsbCBjaGFuZ2UgaW4gdjRcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuY29tcGF0aWJpbGl0eSA9IHtcclxuICAgICAgc3RyaWN0Q29udGVudFNlY3VyaXR5UG9saWN5OiBmYWxzZVxyXG4gICAgfTtcclxuICAgIHRoaXMuZXhlY3V0aW9uU3RyYXRlZ3kgPSBEaXNwYXRjaE91dHNpZGVab25lTmd4c0V4ZWN1dGlvblN0cmF0ZWd5O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU3RhdGVPcGVyYXRvcjxUPiA9IChleGlzdGluZzogUmVhZG9ubHk8VD4pID0+IFQ7XHJcblxyXG4vKipcclxuICogU3RhdGUgY29udGV4dCBwcm92aWRlZCB0byB0aGUgYWN0aW9ucyBpbiB0aGUgc3RhdGUuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlQ29udGV4dDxUPiB7XHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBjdXJyZW50IHN0YXRlLlxyXG4gICAqL1xyXG4gIGdldFN0YXRlKCk6IFQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0IHRoZSBzdGF0ZSB0byBhIG5ldyB2YWx1ZS5cclxuICAgKi9cclxuICBzZXRTdGF0ZSh2YWw6IFQgfCBTdGF0ZU9wZXJhdG9yPFQ+KTogVDtcclxuXHJcbiAgLyoqXHJcbiAgICogUGF0Y2ggdGhlIGV4aXN0aW5nIHN0YXRlIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlLlxyXG4gICAqL1xyXG4gIHBhdGNoU3RhdGUodmFsOiBQYXJ0aWFsPFQ+KTogVDtcclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGF0Y2ggYSBuZXcgYWN0aW9uIGFuZCByZXR1cm4gdGhlIGRpc3BhdGNoZWQgb2JzZXJ2YWJsZS5cclxuICAgKi9cclxuICBkaXNwYXRjaChhY3Rpb25zOiBhbnkgfCBhbnlbXSk6IE9ic2VydmFibGU8dm9pZD47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE5neHNOZXh0UGx1Z2luRm4gPSAoc3RhdGU6IGFueSwgbXV0YXRpb246IGFueSkgPT4gYW55O1xyXG5cclxuLyoqXHJcbiAqIFBsdWdpbiBpbnRlcmZhY2VcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmd4c1BsdWdpbiB7XHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIHRoZSBzdGF0ZS9hY3Rpb24gYmVmb3JlIGl0cyBzdWJtaXR0ZWQgdG8gdGhlIHN0YXRlIGhhbmRsZXJzLlxyXG4gICAqL1xyXG4gIGhhbmRsZShzdGF0ZTogYW55LCBhY3Rpb246IGFueSwgbmV4dDogTmd4c05leHRQbHVnaW5Gbik6IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIE9wdGlvbnMgdGhhdCBjYW4gYmUgcHJvdmlkZWQgdG8gdGhlIHN0b3JlLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBTdG9yZU9wdGlvbnM8VD4ge1xyXG4gIC8qKlxyXG4gICAqIE5hbWUgb2YgdGhlIHN0YXRlLiBSZXF1aXJlZC5cclxuICAgKi9cclxuICBuYW1lOiBzdHJpbmcgfCBTdGF0ZVRva2VuPFQ+O1xyXG5cclxuICAvKipcclxuICAgKiBEZWZhdWx0IHZhbHVlcyBmb3IgdGhlIHN0YXRlLiBJZiBub3QgcHJvdmlkZWQsIHVzZXMgZW1wdHkgb2JqZWN0LlxyXG4gICAqL1xyXG4gIGRlZmF1bHRzPzogVDtcclxuXHJcbiAgLyoqXHJcbiAgICogU3ViIHN0YXRlcyBmb3IgdGhlIGdpdmVuIHN0YXRlLlxyXG4gICAqL1xyXG4gIGNoaWxkcmVuPzogU3RhdGVDbGFzc1tdO1xyXG59XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIGJhc2ljIGNoYW5nZSBmcm9tIGEgcHJldmlvdXMgdG8gYSBuZXcgdmFsdWUgZm9yIGEgc2luZ2xlIHN0YXRlIGluc3RhbmNlLlxyXG4gKiBQYXNzZWQgYXMgYSB2YWx1ZSBpbiBhIE5neHNTaW1wbGVDaGFuZ2VzIG9iamVjdCB0byB0aGUgbmd4c09uQ2hhbmdlcyBob29rLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE5neHNTaW1wbGVDaGFuZ2U8VCA9IGFueT4ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHByZXZpb3VzVmFsdWU6IFQsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudFZhbHVlOiBULFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGZpcnN0Q2hhbmdlOiBib29sZWFuXHJcbiAgKSB7fVxyXG59XHJcblxyXG4vKipcclxuICogT24gaW5pdCBpbnRlcmZhY2VcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmd4c09uSW5pdCB7XHJcbiAgbmd4c09uSW5pdChjdHg/OiBTdGF0ZUNvbnRleHQ8YW55Pik6IHZvaWQgfCBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBPbiBjaGFuZ2UgaW50ZXJmYWNlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE5neHNPbkNoYW5nZXMge1xyXG4gIG5neHNPbkNoYW5nZXMoY2hhbmdlOiBOZ3hzU2ltcGxlQ2hhbmdlKTogdm9pZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFmdGVyIGJvb3RzdHJhcCBpbnRlcmZhY2VcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmd4c0FmdGVyQm9vdHN0cmFwIHtcclxuICBuZ3hzQWZ0ZXJCb290c3RyYXAoY3R4PzogU3RhdGVDb250ZXh0PGFueT4pOiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBOZ3hzTW9kdWxlT3B0aW9ucyA9IFBhcnRpYWw8Tmd4c0NvbmZpZz47XHJcbiJdfQ==
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBTWpFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLDJEQUEyRCxDQUFDOztBQUdySCxNQUFNLE9BQU8sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQU0sa0JBQWtCLENBQUM7O0FBQzNFLE1BQU0sT0FBTyxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBTSxxQkFBcUIsQ0FBQzs7QUFDakYsTUFBTSxPQUFPLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUM7O0FBRTlELE1BQU0sT0FBTyxRQUFRLEdBQUcsV0FBVzs7QUFDbkMsTUFBTSxPQUFPLGdCQUFnQixHQUFHLG1CQUFtQjs7QUFDbkQsTUFBTSxPQUFPLGlCQUFpQixHQUFHLG9CQUFvQjs7OztBQVlyRCxNQUFNLE9BQU8sVUFBVTtJQTZDckI7Ozs7Ozs7UUFUQSxrQkFBYSxHQUFnQixFQUFFLENBQUM7Ozs7UUFJaEMsb0JBQWUsR0FBMEI7WUFDdkMsb0JBQW9CLEVBQUUsSUFBSTs7WUFDMUIsY0FBYyxFQUFFLElBQUksQ0FBQyxpREFBaUQ7U0FDdkUsQ0FBQztRQUdBLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsMkJBQTJCLEVBQUUsS0FBSztTQUNuQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHdDQUF3QyxDQUFDO0lBQ3BFLENBQUM7OztZQW5ERixVQUFVOzs7Ozs7Ozs7Ozs7OztJQVVULHFDQUF5Qjs7SUFDekIsbUNBT0U7Ozs7Ozs7Ozs7Ozs7SUFZRix1Q0FBK0M7Ozs7Ozs7O0lBTy9DLG1DQUFnQzs7Ozs7SUFJaEMscUNBR0U7Ozs7Ozs7QUFlSixrQ0FvQkM7Ozs7OztJQWhCQyxrREFBYzs7Ozs7O0lBS2QscURBQXVDOzs7Ozs7SUFLdkMsdURBQStCOzs7Ozs7SUFLL0IseURBQWlEOzs7Ozs7QUFRbkQsZ0NBS0M7Ozs7Ozs7OztJQURDLGlFQUE2RDs7Ozs7OztBQU0vRCxrQ0FlQzs7Ozs7O0lBWEMsNEJBQTZCOzs7OztJQUs3QixnQ0FBYTs7Ozs7SUFLYixnQ0FBd0I7Ozs7Ozs7QUFPMUIsTUFBTSxPQUFPLGdCQUFnQjs7Ozs7O0lBQzNCLFlBQ2tCLGFBQWdCLEVBQ2hCLFlBQWUsRUFDZixXQUFvQjtRQUZwQixrQkFBYSxHQUFiLGFBQWEsQ0FBRztRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBRztRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFTO0lBQ25DLENBQUM7Q0FDTDs7O0lBSkcseUNBQWdDOztJQUNoQyx3Q0FBK0I7O0lBQy9CLHVDQUFvQzs7Ozs7O0FBT3hDLGdDQUVDOzs7Ozs7SUFEQyxxREFBZ0Q7Ozs7OztBQU1sRCxtQ0FFQzs7Ozs7O0lBREMsOERBQThDOzs7Ozs7QUFNaEQsd0NBRUM7Ozs7OztJQURDLHFFQUFrRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFBsYWluT2JqZWN0LCBTdGF0ZUNsYXNzIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcclxuaW1wb3J0IHsgU2hhcmVkU2VsZWN0b3JPcHRpb25zIH0gZnJvbSAnLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xyXG5pbXBvcnQgeyBOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2V4ZWN1dGlvbi9zeW1ib2xzJztcclxuaW1wb3J0IHsgRGlzcGF0Y2hPdXRzaWRlWm9uZU5neHNFeGVjdXRpb25TdHJhdGVneSB9IGZyb20gJy4vZXhlY3V0aW9uL2Rpc3BhdGNoLW91dHNpZGUtem9uZS1uZ3hzLWV4ZWN1dGlvbi1zdHJhdGVneSc7XHJcbmltcG9ydCB7IFN0YXRlVG9rZW4gfSBmcm9tICcuL3N0YXRlLXRva2VuL3N0YXRlLXRva2VuJztcclxuXHJcbmV4cG9ydCBjb25zdCBST09UX1NUQVRFX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ1JPT1RfU1RBVEVfVE9LRU4nKTtcclxuZXhwb3J0IGNvbnN0IEZFQVRVUkVfU1RBVEVfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignRkVBVFVSRV9TVEFURV9UT0tFTicpO1xyXG5leHBvcnQgY29uc3QgTkdYU19QTFVHSU5TID0gbmV3IEluamVjdGlvblRva2VuKCdOR1hTX1BMVUdJTlMnKTtcclxuXHJcbmV4cG9ydCBjb25zdCBNRVRBX0tFWSA9ICdOR1hTX01FVEEnO1xyXG5leHBvcnQgY29uc3QgTUVUQV9PUFRJT05TX0tFWSA9ICdOR1hTX09QVElPTlNfTUVUQSc7XHJcbmV4cG9ydCBjb25zdCBTRUxFQ1RPUl9NRVRBX0tFWSA9ICdOR1hTX1NFTEVDVE9SX01FVEEnO1xyXG5cclxuZXhwb3J0IHR5cGUgTmd4c0xpZmVDeWNsZSA9IFBhcnRpYWw8Tmd4c09uQ2hhbmdlcz4gJlxyXG4gIFBhcnRpYWw8Tmd4c09uSW5pdD4gJlxyXG4gIFBhcnRpYWw8Tmd4c0FmdGVyQm9vdHN0cmFwPjtcclxuXHJcbmV4cG9ydCB0eXBlIE5neHNQbHVnaW5GbiA9IChzdGF0ZTogYW55LCBtdXRhdGlvbjogYW55LCBuZXh0OiBOZ3hzTmV4dFBsdWdpbkZuKSA9PiBhbnk7XHJcblxyXG4vKipcclxuICogVGhlIE5HWFMgY29uZmlnIHNldHRpbmdzLlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTmd4c0NvbmZpZyB7XHJcbiAgLyoqXHJcbiAgICogUnVuIGluIGRldmVsb3BtZW50IG1vZGUuIFRoaXMgd2lsbCBhZGQgYWRkaXRpb25hbCBkZWJ1Z2dpbmcgZmVhdHVyZXM6XHJcbiAgICogLSBPYmplY3QuZnJlZXplIG9uIHRoZSBzdGF0ZSBhbmQgYWN0aW9ucyB0byBndWFyYW50ZWUgaW1tdXRhYmlsaXR5XHJcbiAgICogKGRlZmF1bHQ6IGZhbHNlKVxyXG4gICAqXHJcbiAgICogQGRlcHJlY2F0ZWQgVGhpcyBwcm9wZXJ0eSBpcyBubyBsb25nZXIgbmVjZXNzYXJ5IHdoZW4gdGhlIEl2eSBjb21waWxlciBpcyB1c2VkLlxyXG4gICAqIFdlJ2xsIGRldGVybWluZSB0aGUgZGV2ZWxvcG1lbnQgbW9kZSB0aHJvdWdoIHRoZSBgbmdEZXZNb2RlYC4gSXQncyBzdGlsbCBlc3NlbnRpYWwgd2l0aCBWaWV3IEVuZ2luZS5cclxuICAgKi9cclxuICBkZXZlbG9wbWVudE1vZGU6IGJvb2xlYW47XHJcbiAgY29tcGF0aWJpbGl0eToge1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdXBwb3J0IGEgc3RyaWN0IENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LlxyXG4gICAgICogVGhpcyB3aWxsIGNpcmN1bXZlbnQgc29tZSBvcHRpbWlzYXRpb25zIHRoYXQgdmlvbGF0ZSBhIHN0cmljdCBDU1AgdGhyb3VnaCB0aGUgdXNlIG9mIGBuZXcgRnVuY3Rpb24oLi4uKWAuXHJcbiAgICAgKiAoZGVmYXVsdDogZmFsc2UpXHJcbiAgICAgKi9cclxuICAgIHN0cmljdENvbnRlbnRTZWN1cml0eVBvbGljeTogYm9vbGVhbjtcclxuICB9O1xyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgdGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRvIHBlcmZvcm0gYXN5bmMgb3BlcmF0aW9ucyBpbnNpZGUuIEFuIGltcGxlbWVudGF0aW9uIGNhbiBiZVxyXG4gICAqIHByb3ZpZGVkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGJlaGF2aW91ciB3aGVyZSB0aGUgYXN5bmMgb3BlcmF0aW9ucyBhcmUgcnVuXHJcbiAgICogb3V0c2lkZSBBbmd1bGFyJ3Mgem9uZSBidXQgYWxsIG9ic2VydmFibGUgYmVoYXZpb3VycyBvZiBOR1hTIGFyZSBydW4gYmFjayBpbnNpZGUgQW5ndWxhcidzIHpvbmUuXHJcbiAgICogVGhlc2Ugb2JzZXJ2YWJsZSBiZWhhdmlvdXJzIGFyZSBmcm9tOlxyXG4gICAqICAgYEBTZWxlY3QoLi4uKWAsIGBzdG9yZS5zZWxlY3QoLi4uKWAsIGBhY3Rpb25zLnN1YnNjcmliZSguLi4pYCBvciBgc3RvcmUuZGlzcGF0Y2goLi4uKS5zdWJzY3JpYmUoLi4uKWBcclxuICAgKiBFdmVyeSBgem9uZS5ydW5gIGNhdXNlcyBBbmd1bGFyIHRvIHJ1biBjaGFuZ2UgZGV0ZWN0aW9uIG9uIHRoZSB3aG9sZSB0cmVlIChgYXBwLnRpY2soKWApIHNvIG9mIHlvdXJcclxuICAgKiBhcHBsaWNhdGlvbiBkb2Vzbid0IHJlbHkgb24gem9uZS5qcyBydW5uaW5nIGNoYW5nZSBkZXRlY3Rpb24gdGhlbiB5b3UgY2FuIHN3aXRjaCB0byB0aGVcclxuICAgKiBgTm9vcE5neHNFeGVjdXRpb25TdHJhdGVneWAgdGhhdCBkb2Vzbid0IGludGVyYWN0IHdpdGggem9uZXMuXHJcbiAgICogKGRlZmF1bHQ6IG51bGwpXHJcbiAgICovXHJcbiAgZXhlY3V0aW9uU3RyYXRlZ3k6IFR5cGU8Tmd4c0V4ZWN1dGlvblN0cmF0ZWd5PjtcclxuICAvKipcclxuICAgKiBEZWZpbmluZyB0aGUgZGVmYXVsdCBzdGF0ZSBiZWZvcmUgbW9kdWxlIGluaXRpYWxpemF0aW9uXHJcbiAgICogVGhpcyBpcyBjb252ZW5pZW50IGlmIHdlIG5lZWQgdG8gY3JlYXRlIGEgZGVmaW5lIG91ciBvd24gc2V0IG9mIHN0YXRlcy5cclxuICAgKiBAZGVwcmVjYXRlZCB3aWxsIGJlIHJlbW92ZWQgYWZ0ZXIgdjRcclxuICAgKiAoZGVmYXVsdDoge30pXHJcbiAgICovXHJcbiAgZGVmYXVsdHNTdGF0ZTogUGxhaW5PYmplY3QgPSB7fTtcclxuICAvKipcclxuICAgKiBEZWZpbmluZyBzaGFyZWQgc2VsZWN0b3Igb3B0aW9uc1xyXG4gICAqL1xyXG4gIHNlbGVjdG9yT3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zID0ge1xyXG4gICAgaW5qZWN0Q29udGFpbmVyU3RhdGU6IHRydWUsIC8vIFRPRE86IGRlZmF1bHQgaXMgdHJ1ZSBpbiB2Mywgd2lsbCBjaGFuZ2UgaW4gdjRcclxuICAgIHN1cHByZXNzRXJyb3JzOiB0cnVlIC8vIFRPRE86IGRlZmF1bHQgaXMgdHJ1ZSBpbiB2Mywgd2lsbCBjaGFuZ2UgaW4gdjRcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuY29tcGF0aWJpbGl0eSA9IHtcclxuICAgICAgc3RyaWN0Q29udGVudFNlY3VyaXR5UG9saWN5OiBmYWxzZVxyXG4gICAgfTtcclxuICAgIHRoaXMuZXhlY3V0aW9uU3RyYXRlZ3kgPSBEaXNwYXRjaE91dHNpZGVab25lTmd4c0V4ZWN1dGlvblN0cmF0ZWd5O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU3RhdGVPcGVyYXRvcjxUPiA9IChleGlzdGluZzogUmVhZG9ubHk8VD4pID0+IFQ7XHJcblxyXG4vKipcclxuICogU3RhdGUgY29udGV4dCBwcm92aWRlZCB0byB0aGUgYWN0aW9ucyBpbiB0aGUgc3RhdGUuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlQ29udGV4dDxUPiB7XHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBjdXJyZW50IHN0YXRlLlxyXG4gICAqL1xyXG4gIGdldFN0YXRlKCk6IFQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0IHRoZSBzdGF0ZSB0byBhIG5ldyB2YWx1ZS5cclxuICAgKi9cclxuICBzZXRTdGF0ZSh2YWw6IFQgfCBTdGF0ZU9wZXJhdG9yPFQ+KTogVDtcclxuXHJcbiAgLyoqXHJcbiAgICogUGF0Y2ggdGhlIGV4aXN0aW5nIHN0YXRlIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlLlxyXG4gICAqL1xyXG4gIHBhdGNoU3RhdGUodmFsOiBQYXJ0aWFsPFQ+KTogVDtcclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGF0Y2ggYSBuZXcgYWN0aW9uIGFuZCByZXR1cm4gdGhlIGRpc3BhdGNoZWQgb2JzZXJ2YWJsZS5cclxuICAgKi9cclxuICBkaXNwYXRjaChhY3Rpb25zOiBhbnkgfCBhbnlbXSk6IE9ic2VydmFibGU8dm9pZD47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE5neHNOZXh0UGx1Z2luRm4gPSAoc3RhdGU6IGFueSwgbXV0YXRpb246IGFueSkgPT4gYW55O1xyXG5cclxuLyoqXHJcbiAqIFBsdWdpbiBpbnRlcmZhY2VcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmd4c1BsdWdpbiB7XHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIHRoZSBzdGF0ZS9hY3Rpb24gYmVmb3JlIGl0cyBzdWJtaXR0ZWQgdG8gdGhlIHN0YXRlIGhhbmRsZXJzLlxyXG4gICAqL1xyXG4gIGhhbmRsZShzdGF0ZTogYW55LCBhY3Rpb246IGFueSwgbmV4dDogTmd4c05leHRQbHVnaW5Gbik6IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIE9wdGlvbnMgdGhhdCBjYW4gYmUgcHJvdmlkZWQgdG8gdGhlIHN0b3JlLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBTdG9yZU9wdGlvbnM8VD4ge1xyXG4gIC8qKlxyXG4gICAqIE5hbWUgb2YgdGhlIHN0YXRlLiBSZXF1aXJlZC5cclxuICAgKi9cclxuICBuYW1lOiBzdHJpbmcgfCBTdGF0ZVRva2VuPFQ+O1xyXG5cclxuICAvKipcclxuICAgKiBEZWZhdWx0IHZhbHVlcyBmb3IgdGhlIHN0YXRlLiBJZiBub3QgcHJvdmlkZWQsIHVzZXMgZW1wdHkgb2JqZWN0LlxyXG4gICAqL1xyXG4gIGRlZmF1bHRzPzogVDtcclxuXHJcbiAgLyoqXHJcbiAgICogU3ViIHN0YXRlcyBmb3IgdGhlIGdpdmVuIHN0YXRlLlxyXG4gICAqL1xyXG4gIGNoaWxkcmVuPzogU3RhdGVDbGFzc1tdO1xyXG59XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIGJhc2ljIGNoYW5nZSBmcm9tIGEgcHJldmlvdXMgdG8gYSBuZXcgdmFsdWUgZm9yIGEgc2luZ2xlIHN0YXRlIGluc3RhbmNlLlxyXG4gKiBQYXNzZWQgYXMgYSB2YWx1ZSBpbiBhIE5neHNTaW1wbGVDaGFuZ2VzIG9iamVjdCB0byB0aGUgbmd4c09uQ2hhbmdlcyBob29rLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE5neHNTaW1wbGVDaGFuZ2U8VCA9IGFueT4ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHByZXZpb3VzVmFsdWU6IFQsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudFZhbHVlOiBULFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGZpcnN0Q2hhbmdlOiBib29sZWFuXHJcbiAgKSB7fVxyXG59XHJcblxyXG4vKipcclxuICogT24gaW5pdCBpbnRlcmZhY2VcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmd4c09uSW5pdCB7XHJcbiAgbmd4c09uSW5pdChjdHg/OiBTdGF0ZUNvbnRleHQ8YW55Pik6IHZvaWQgfCBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBPbiBjaGFuZ2UgaW50ZXJmYWNlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE5neHNPbkNoYW5nZXMge1xyXG4gIG5neHNPbkNoYW5nZXMoY2hhbmdlOiBOZ3hzU2ltcGxlQ2hhbmdlKTogdm9pZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFmdGVyIGJvb3RzdHJhcCBpbnRlcmZhY2VcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmd4c0FmdGVyQm9vdHN0cmFwIHtcclxuICBuZ3hzQWZ0ZXJCb290c3RyYXAoY3R4PzogU3RhdGVDb250ZXh0PGFueT4pOiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBOZ3hzTW9kdWxlT3B0aW9ucyA9IFBhcnRpYWw8Tmd4c0NvbmZpZz47XHJcblxyXG4vKiogQGludGVybmFsICovXHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICBjb25zdCBuZ0Rldk1vZGU6IGJvb2xlYW47XHJcbn1cclxuIl19
@@ -3,7 +3,7 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import { getStoreMetadata } from '../internal/internals';
6
- import { CONFIG_MESSAGES as MESSAGES, VALIDATION_CODE as CODE } from '../configs/messages.config';
6
+ import { throwStateDecoratorError, throwStateNameError, throwStateNamePropertyError, throwStateUniqueError } from '../configs/messages.config';
7
7
  /**
8
8
  * @abstract
9
9
  */
@@ -12,54 +12,49 @@ export class StoreValidators {
12
12
  * @param {?} name
13
13
  * @return {?}
14
14
  */
15
- static stateNameErrorMessage(name) {
16
- return MESSAGES[CODE.STATE_NAME](name);
17
- }
18
- /**
19
- * @param {?} name
20
- * @return {?}
21
- */
22
- static checkCorrectStateName(name) {
15
+ static checkThatStateIsNamedCorrectly(name) {
23
16
  if (!name) {
24
- throw new Error(MESSAGES[CODE.STATE_NAME_PROPERTY]());
17
+ throwStateNamePropertyError();
25
18
  }
26
- if (!this.stateNameRegex.test(name)) {
27
- throw new Error(this.stateNameErrorMessage(name));
19
+ else if (!this.stateNameRegex.test(name)) {
20
+ throwStateNameError(name);
28
21
  }
29
22
  }
30
23
  /**
24
+ * @param {?} stateName
31
25
  * @param {?} state
32
26
  * @param {?} statesByName
33
27
  * @return {?}
34
28
  */
35
- static checkStateNameIsUnique(state, statesByName) {
36
- /** @type {?} */
37
- const meta = this.getValidStateMeta(state);
38
- /** @type {?} */
39
- const stateName = (/** @type {?} */ ((/** @type {?} */ (meta)).name));
29
+ static checkThatStateNameIsUnique(stateName, state, statesByName) {
40
30
  /** @type {?} */
41
31
  const existingState = statesByName[stateName];
42
32
  if (existingState && existingState !== state) {
43
- throw new Error(MESSAGES[CODE.STATE_UNIQUE](stateName, state.name, existingState.name));
33
+ throwStateUniqueError(stateName, state.name, existingState.name);
44
34
  }
45
- return stateName;
46
35
  }
47
36
  /**
48
- * @param {?} state
37
+ * @param {?} stateClasses
49
38
  * @return {?}
50
39
  */
51
- static getValidStateMeta(state) {
52
- /** @type {?} */
53
- const meta = getStoreMetadata(state);
54
- if (!meta) {
55
- throw new Error(MESSAGES[CODE.STATE_DECORATOR]());
56
- }
57
- return meta;
40
+ static checkThatStateClassesHaveBeenDecorated(stateClasses) {
41
+ stateClasses.forEach((/**
42
+ * @param {?} stateClass
43
+ * @return {?}
44
+ */
45
+ (stateClass) => {
46
+ if (!getStoreMetadata(stateClass)) {
47
+ throwStateDecoratorError(stateClass.name);
48
+ }
49
+ }));
58
50
  }
59
51
  }
60
52
  StoreValidators.stateNameRegex = new RegExp('^[a-zA-Z0-9_]+$');
61
53
  if (false) {
62
- /** @type {?} */
54
+ /**
55
+ * @type {?}
56
+ * @private
57
+ */
63
58
  StoreValidators.stateNameRegex;
64
59
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL3V0aWxzL3N0b3JlLXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFJakIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsZUFBZSxJQUFJLFFBQVEsRUFDM0IsZUFBZSxJQUFJLElBQUksRUFDeEIsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUVwQyxNQUFNLE9BQWdCLGVBQWU7Ozs7O0lBRzVCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFZO1FBQzlDLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs7OztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFtQjtRQUNyRCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDOzs7Ozs7SUFFTSxNQUFNLENBQUMsc0JBQXNCLENBQ2xDLEtBQXlCLEVBQ3pCLFlBQTBCOztjQUVwQixJQUFJLEdBQWtCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7O2NBQ25ELFNBQVMsR0FBVyxtQkFBQSxtQkFBQSxJQUFJLEVBQUMsQ0FBQyxJQUFJLEVBQVU7O2NBQ3hDLGFBQWEsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQzdDLElBQUksYUFBYSxJQUFJLGFBQWEsS0FBSyxLQUFLLEVBQUU7WUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3pGO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7Ozs7SUFFTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBeUI7O2NBQ2pELElBQUksR0FBa0IsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1FBQ25ELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOztBQXBDYSw4QkFBYyxHQUFXLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7OztJQUFyRSwrQkFBcUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGdldFN0b3JlTWV0YWRhdGEsXHJcbiAgTWV0YURhdGFNb2RlbCxcclxuICBTdGF0ZUNsYXNzSW50ZXJuYWwsXHJcbiAgU3RhdGVzQnlOYW1lXHJcbn0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcclxuaW1wb3J0IHtcclxuICBDT05GSUdfTUVTU0FHRVMgYXMgTUVTU0FHRVMsXHJcbiAgVkFMSURBVElPTl9DT0RFIGFzIENPREVcclxufSBmcm9tICcuLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3RvcmVWYWxpZGF0b3JzIHtcclxuICBwdWJsaWMgc3RhdGljIHN0YXRlTmFtZVJlZ2V4OiBSZWdFeHAgPSBuZXcgUmVnRXhwKCdeW2EtekEtWjAtOV9dKyQnKTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBzdGF0ZU5hbWVFcnJvck1lc3NhZ2UobmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gTUVTU0FHRVNbQ09ERS5TVEFURV9OQU1FXShuYW1lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY2hlY2tDb3JyZWN0U3RhdGVOYW1lKG5hbWU6IHN0cmluZyB8IG51bGwpIHtcclxuICAgIGlmICghbmFtZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoTUVTU0FHRVNbQ09ERS5TVEFURV9OQU1FX1BST1BFUlRZXSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuc3RhdGVOYW1lUmVnZXgudGVzdChuYW1lKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5zdGF0ZU5hbWVFcnJvck1lc3NhZ2UobmFtZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjaGVja1N0YXRlTmFtZUlzVW5pcXVlKFxyXG4gICAgc3RhdGU6IFN0YXRlQ2xhc3NJbnRlcm5hbCxcclxuICAgIHN0YXRlc0J5TmFtZTogU3RhdGVzQnlOYW1lXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG1ldGE6IE1ldGFEYXRhTW9kZWwgPSB0aGlzLmdldFZhbGlkU3RhdGVNZXRhKHN0YXRlKTtcclxuICAgIGNvbnN0IHN0YXRlTmFtZTogc3RyaW5nID0gbWV0YSEubmFtZSBhcyBzdHJpbmc7XHJcbiAgICBjb25zdCBleGlzdGluZ1N0YXRlID0gc3RhdGVzQnlOYW1lW3N0YXRlTmFtZV07XHJcbiAgICBpZiAoZXhpc3RpbmdTdGF0ZSAmJiBleGlzdGluZ1N0YXRlICE9PSBzdGF0ZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoTUVTU0FHRVNbQ09ERS5TVEFURV9VTklRVUVdKHN0YXRlTmFtZSwgc3RhdGUubmFtZSwgZXhpc3RpbmdTdGF0ZS5uYW1lKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RhdGVOYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRWYWxpZFN0YXRlTWV0YShzdGF0ZTogU3RhdGVDbGFzc0ludGVybmFsKTogTWV0YURhdGFNb2RlbCB7XHJcbiAgICBjb25zdCBtZXRhOiBNZXRhRGF0YU1vZGVsID0gZ2V0U3RvcmVNZXRhZGF0YShzdGF0ZSk7XHJcbiAgICBpZiAoIW1ldGEpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKE1FU1NBR0VTW0NPREUuU1RBVEVfREVDT1JBVE9SXSgpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbWV0YTtcclxuICB9XHJcbn1cclxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL3V0aWxzL3N0b3JlLXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBb0MsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQiwyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3RCLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFcEMsTUFBTSxPQUFnQixlQUFlOzs7OztJQUduQyxNQUFNLENBQUMsOEJBQThCLENBQUMsSUFBbUI7UUFDdkQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULDJCQUEyQixFQUFFLENBQUM7U0FDL0I7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs7Ozs7O0lBRUQsTUFBTSxDQUFDLDBCQUEwQixDQUMvQixTQUFpQixFQUNqQixLQUF5QixFQUN6QixZQUEwQjs7Y0FFcEIsYUFBYSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDN0MsSUFBSSxhQUFhLElBQUksYUFBYSxLQUFLLEtBQUssRUFBRTtZQUM1QyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEU7SUFDSCxDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxzQ0FBc0MsQ0FDM0MsWUFBa0M7UUFFbEMsWUFBWSxDQUFDLE9BQU87Ozs7UUFBQyxDQUFDLFVBQThCLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2pDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMzQztRQUNILENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7QUE3QmMsOEJBQWMsR0FBVyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDOzs7Ozs7SUFBdEUsK0JBQXNFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0U3RvcmVNZXRhZGF0YSwgU3RhdGVDbGFzc0ludGVybmFsLCBTdGF0ZXNCeU5hbWUgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xyXG5pbXBvcnQge1xyXG4gIHRocm93U3RhdGVEZWNvcmF0b3JFcnJvcixcclxuICB0aHJvd1N0YXRlTmFtZUVycm9yLFxyXG4gIHRocm93U3RhdGVOYW1lUHJvcGVydHlFcnJvcixcclxuICB0aHJvd1N0YXRlVW5pcXVlRXJyb3JcclxufSBmcm9tICcuLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3RvcmVWYWxpZGF0b3JzIHtcclxuICBwcml2YXRlIHN0YXRpYyBzdGF0ZU5hbWVSZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cCgnXlthLXpBLVowLTlfXSskJyk7XHJcblxyXG4gIHN0YXRpYyBjaGVja1RoYXRTdGF0ZUlzTmFtZWRDb3JyZWN0bHkobmFtZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQgfCBuZXZlciB7XHJcbiAgICBpZiAoIW5hbWUpIHtcclxuICAgICAgdGhyb3dTdGF0ZU5hbWVQcm9wZXJ0eUVycm9yKCk7XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLnN0YXRlTmFtZVJlZ2V4LnRlc3QobmFtZSkpIHtcclxuICAgICAgdGhyb3dTdGF0ZU5hbWVFcnJvcihuYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXRpYyBjaGVja1RoYXRTdGF0ZU5hbWVJc1VuaXF1ZShcclxuICAgIHN0YXRlTmFtZTogc3RyaW5nLFxyXG4gICAgc3RhdGU6IFN0YXRlQ2xhc3NJbnRlcm5hbCxcclxuICAgIHN0YXRlc0J5TmFtZTogU3RhdGVzQnlOYW1lXHJcbiAgKTogdm9pZCB8IG5ldmVyIHtcclxuICAgIGNvbnN0IGV4aXN0aW5nU3RhdGUgPSBzdGF0ZXNCeU5hbWVbc3RhdGVOYW1lXTtcclxuICAgIGlmIChleGlzdGluZ1N0YXRlICYmIGV4aXN0aW5nU3RhdGUgIT09IHN0YXRlKSB7XHJcbiAgICAgIHRocm93U3RhdGVVbmlxdWVFcnJvcihzdGF0ZU5hbWUsIHN0YXRlLm5hbWUsIGV4aXN0aW5nU3RhdGUubmFtZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY2hlY2tUaGF0U3RhdGVDbGFzc2VzSGF2ZUJlZW5EZWNvcmF0ZWQoXHJcbiAgICBzdGF0ZUNsYXNzZXM6IFN0YXRlQ2xhc3NJbnRlcm5hbFtdXHJcbiAgKTogdm9pZCB8IG5ldmVyIHtcclxuICAgIHN0YXRlQ2xhc3Nlcy5mb3JFYWNoKChzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwpID0+IHtcclxuICAgICAgaWYgKCFnZXRTdG9yZU1ldGFkYXRhKHN0YXRlQ2xhc3MpKSB7XHJcbiAgICAgICAgdGhyb3dTdGF0ZURlY29yYXRvckVycm9yKHN0YXRlQ2xhc3MubmFtZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -2,39 +2,19 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
- import { getPlatform, COMPILER_OPTIONS } from '@angular/core';
6
- import { memoize } from './memoize';
7
5
  /**
8
6
  * @return {?}
9
7
  */
10
- function _isAngularInTestMode() {
11
- /** @type {?} */
12
- var platformRef = getPlatform();
13
- if (!platformRef)
14
- return false;
15
- /** @type {?} */
16
- var compilerOptions = platformRef.injector.get(COMPILER_OPTIONS, null);
17
- if (!compilerOptions)
18
- return false;
19
- /** @type {?} */
20
- var isInTestMode = compilerOptions.some((/**
21
- * @param {?} item
22
- * @return {?}
23
- */
24
- function (item) {
25
- /** @type {?} */
26
- var providers = (item && item.providers) || [];
27
- return providers.some((/**
28
- * @param {?} provider
29
- * @return {?}
30
- */
31
- function (provider) {
32
- return ((provider && provider.provide && provider.provide.name === 'MockNgModuleResolver') ||
33
- false);
34
- }));
35
- }));
36
- return isInTestMode;
8
+ export function isAngularInTestMode() {
9
+ // This is safe to check for these properties in the following way since `typeof` does not
10
+ // throw an exception if the value does not exist in the scope.
11
+ // We should not try to read these values from the global scope (e.g. `ɵglobal` from the `@angular/core`).
12
+ // This is related to how these frameworks compile and execute modules. E.g. Jest wraps the module into
13
+ // its internal code where `jest` variable exists in the scope. It cannot be read from the global scope, e.g.
14
+ // this will return undefined `global.jest`, but `jest` will not equal undefined.
15
+ return (typeof __karma__ !== 'undefined' ||
16
+ typeof jasmine !== 'undefined' ||
17
+ typeof jest !== 'undefined' ||
18
+ typeof Mocha !== 'undefined');
37
19
  }
38
- /** @type {?} */
39
- export var isAngularInTestMode = memoize(_isAngularInTestMode);
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlL2ludGVybmFscy8iLCJzb3VyY2VzIjpbImFuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7QUFFcEMsU0FBUyxvQkFBb0I7O1FBQ3JCLFdBQVcsR0FBdUIsV0FBVyxFQUFFO0lBQ3JELElBQUksQ0FBQyxXQUFXO1FBQUUsT0FBTyxLQUFLLENBQUM7O1FBQ3pCLGVBQWUsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBTSxnQkFBZ0IsRUFBRSxJQUFJLENBQUM7SUFDN0UsSUFBSSxDQUFDLGVBQWU7UUFBRSxPQUFPLEtBQUssQ0FBQzs7UUFDN0IsWUFBWSxHQUFHLGVBQWUsQ0FBQyxJQUFJOzs7O0lBQUMsVUFBQyxJQUFxQjs7WUFDeEQsU0FBUyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO1FBQ2hELE9BQU8sU0FBUyxDQUFDLElBQUk7Ozs7UUFBQyxVQUFDLFFBQWE7WUFDbEMsT0FBTyxDQUNMLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQXNCLENBQUM7Z0JBQ2xGLEtBQUssQ0FDTixDQUFDO1FBQ0osQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDLEVBQUM7SUFDRixPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDOztBQUVELE1BQU0sS0FBTyxtQkFBbUIsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRQbGF0Zm9ybSwgQ09NUElMRVJfT1BUSU9OUywgQ29tcGlsZXJPcHRpb25zLCBQbGF0Zm9ybVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtZW1vaXplIH0gZnJvbSAnLi9tZW1vaXplJztcclxuXHJcbmZ1bmN0aW9uIF9pc0FuZ3VsYXJJblRlc3RNb2RlKCkge1xyXG4gIGNvbnN0IHBsYXRmb3JtUmVmOiBQbGF0Zm9ybVJlZiB8IG51bGwgPSBnZXRQbGF0Zm9ybSgpO1xyXG4gIGlmICghcGxhdGZvcm1SZWYpIHJldHVybiBmYWxzZTtcclxuICBjb25zdCBjb21waWxlck9wdGlvbnMgPSBwbGF0Zm9ybVJlZi5pbmplY3Rvci5nZXQ8YW55PihDT01QSUxFUl9PUFRJT05TLCBudWxsKTtcclxuICBpZiAoIWNvbXBpbGVyT3B0aW9ucykgcmV0dXJuIGZhbHNlO1xyXG4gIGNvbnN0IGlzSW5UZXN0TW9kZSA9IGNvbXBpbGVyT3B0aW9ucy5zb21lKChpdGVtOiBDb21waWxlck9wdGlvbnMpID0+IHtcclxuICAgIGNvbnN0IHByb3ZpZGVycyA9IChpdGVtICYmIGl0ZW0ucHJvdmlkZXJzKSB8fCBbXTtcclxuICAgIHJldHVybiBwcm92aWRlcnMuc29tZSgocHJvdmlkZXI6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIChwcm92aWRlciAmJiBwcm92aWRlci5wcm92aWRlICYmIHByb3ZpZGVyLnByb3ZpZGUubmFtZSA9PT0gJ01vY2tOZ01vZHVsZVJlc29sdmVyJykgfHxcclxuICAgICAgICBmYWxzZVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIGlzSW5UZXN0TW9kZTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGlzQW5ndWxhckluVGVzdE1vZGUgPSBtZW1vaXplKF9pc0FuZ3VsYXJJblRlc3RNb2RlKTtcclxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlL2ludGVybmFscy8iLCJzb3VyY2VzIjpbImFuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUtBLE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsMEZBQTBGO0lBQzFGLCtEQUErRDtJQUMvRCwwR0FBMEc7SUFDMUcsdUdBQXVHO0lBQ3ZHLDZHQUE2RztJQUM3RyxpRkFBaUY7SUFDakYsT0FBTyxDQUNMLE9BQU8sU0FBUyxLQUFLLFdBQVc7UUFDaEMsT0FBTyxPQUFPLEtBQUssV0FBVztRQUM5QixPQUFPLElBQUksS0FBSyxXQUFXO1FBQzNCLE9BQU8sS0FBSyxLQUFLLFdBQVcsQ0FDN0IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJkZWNsYXJlIGNvbnN0IF9fa2FybWFfXzogdW5rbm93bjtcclxuZGVjbGFyZSBjb25zdCBqYXNtaW5lOiB1bmtub3duO1xyXG5kZWNsYXJlIGNvbnN0IGplc3Q6IHVua25vd247XHJcbmRlY2xhcmUgY29uc3QgTW9jaGE6IHVua25vd247XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNBbmd1bGFySW5UZXN0TW9kZSgpOiBib29sZWFuIHtcclxuICAvLyBUaGlzIGlzIHNhZmUgdG8gY2hlY2sgZm9yIHRoZXNlIHByb3BlcnRpZXMgaW4gdGhlIGZvbGxvd2luZyB3YXkgc2luY2UgYHR5cGVvZmAgZG9lcyBub3RcclxuICAvLyB0aHJvdyBhbiBleGNlcHRpb24gaWYgdGhlIHZhbHVlIGRvZXMgbm90IGV4aXN0IGluIHRoZSBzY29wZS5cclxuICAvLyBXZSBzaG91bGQgbm90IHRyeSB0byByZWFkIHRoZXNlIHZhbHVlcyBmcm9tIHRoZSBnbG9iYWwgc2NvcGUgKGUuZy4gYMm1Z2xvYmFsYCBmcm9tIHRoZSBgQGFuZ3VsYXIvY29yZWApLlxyXG4gIC8vIFRoaXMgaXMgcmVsYXRlZCB0byBob3cgdGhlc2UgZnJhbWV3b3JrcyBjb21waWxlIGFuZCBleGVjdXRlIG1vZHVsZXMuIEUuZy4gSmVzdCB3cmFwcyB0aGUgbW9kdWxlIGludG9cclxuICAvLyBpdHMgaW50ZXJuYWwgY29kZSB3aGVyZSBgamVzdGAgdmFyaWFibGUgZXhpc3RzIGluIHRoZSBzY29wZS4gSXQgY2Fubm90IGJlIHJlYWQgZnJvbSB0aGUgZ2xvYmFsIHNjb3BlLCBlLmcuXHJcbiAgLy8gdGhpcyB3aWxsIHJldHVybiB1bmRlZmluZWQgYGdsb2JhbC5qZXN0YCwgYnV0IGBqZXN0YCB3aWxsIG5vdCBlcXVhbCB1bmRlZmluZWQuXHJcbiAgcmV0dXJuIChcclxuICAgIHR5cGVvZiBfX2thcm1hX18gIT09ICd1bmRlZmluZWQnIHx8XHJcbiAgICB0eXBlb2YgamFzbWluZSAhPT0gJ3VuZGVmaW5lZCcgfHxcclxuICAgIHR5cGVvZiBqZXN0ICE9PSAndW5kZWZpbmVkJyB8fFxyXG4gICAgdHlwZW9mIE1vY2hhICE9PSAndW5kZWZpbmVkJ1xyXG4gICk7XHJcbn1cclxuIl19
@@ -0,0 +1,204 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { INJECTOR, ɵɵdirectiveInject, ɵglobal } from '@angular/core';
6
+ import { ReplaySubject } from 'rxjs';
7
+ // Angular doesn't export `NG_FACTORY_DEF`.
8
+ /** @type {?} */
9
+ var NG_FACTORY_DEF = 'ɵfac';
10
+ // A `Symbol` which is used to save the `Injector` onto the class instance.
11
+ /** @type {?} */
12
+ var InjectorInstance = Symbol('InjectorInstance');
13
+ // A `Symbol` which is used to determine if factory has been decorated previously or not.
14
+ /** @type {?} */
15
+ var FactoryHasBeenDecorated = Symbol('FactoryHasBeenDecorated');
16
+ // A `Symbol` which is used to save the notifier on the class instance. The `InjectorInstance` cannot
17
+ // be retrieved within the `constructor` since it's set after the `factory()` is called.
18
+ /** @type {?} */
19
+ var InjectorNotifier = Symbol('InjectorNotifier');
20
+ /**
21
+ * @record
22
+ */
23
+ function PrototypeWithInjectorNotifier() { }
24
+ if (false) {
25
+ /* Skipping unnamed member:
26
+ [InjectorNotifier]?: ReplaySubject<boolean>;*/
27
+ }
28
+ /**
29
+ * @param {?} target
30
+ * @return {?}
31
+ */
32
+ export function ensureInjectorNotifierIsCaptured(target) {
33
+ if (target[InjectorNotifier]) {
34
+ return (/** @type {?} */ (target[InjectorNotifier]));
35
+ }
36
+ else {
37
+ /** @type {?} */
38
+ var injectorNotifier$_1 = new ReplaySubject(1);
39
+ Object.defineProperty(target, InjectorNotifier, {
40
+ get: (/**
41
+ * @return {?}
42
+ */
43
+ function () { return injectorNotifier$_1; })
44
+ });
45
+ return injectorNotifier$_1;
46
+ }
47
+ }
48
+ // eslint-disable-next-line @typescript-eslint/ban-types
49
+ /**
50
+ * @param {?} target
51
+ * @return {?}
52
+ */
53
+ export function ensureLocalInjectorCaptured(target) {
54
+ if (FactoryHasBeenDecorated in target.constructor.prototype) {
55
+ return;
56
+ }
57
+ /** @type {?} */
58
+ var constructor = target.constructor;
59
+ // Means we're in AOT mode.
60
+ if (typeof constructor[NG_FACTORY_DEF] === 'function') {
61
+ decorateFactory(constructor);
62
+ }
63
+ else if (ngDevMode) {
64
+ // We're running in JIT mode and that means we're not able to get the compiled definition
65
+ // on the class inside the property decorator during the current message loop tick. We have
66
+ // to wait for the next message loop tick. Note that this is safe since this Promise will be
67
+ // resolved even before the `APP_INITIALIZER` is resolved.
68
+ // The below code also will be executed only in development mode, since it's never recommended
69
+ // to use the JIT compiler in production mode (by setting "aot: false").
70
+ decorateFactoryLater(constructor);
71
+ }
72
+ target.constructor.prototype[FactoryHasBeenDecorated] = true;
73
+ }
74
+ /**
75
+ * @template T
76
+ * @param {?} instance
77
+ * @param {?} token
78
+ * @return {?}
79
+ */
80
+ export function localInject(instance, token) {
81
+ /** @type {?} */
82
+ var injector = instance[InjectorInstance];
83
+ return injector ? injector.get(token) : null;
84
+ }
85
+ /**
86
+ * @param {?} constructor
87
+ * @return {?}
88
+ */
89
+ function decorateFactory(constructor) {
90
+ /** @type {?} */
91
+ var factory = constructor[NG_FACTORY_DEF];
92
+ if (typeof factory !== 'function') {
93
+ return;
94
+ }
95
+ // Let's try to get any definition.
96
+ // Caretaker note: this will be compatible only with Angular 9+, since Angular 9 is the first
97
+ // Ivy-stable version. Previously definition properties were named differently (e.g. `ngComponentDef`).
98
+ /** @type {?} */
99
+ var def = constructor.ɵprov || constructor.ɵpipe || constructor.ɵcmp || constructor.ɵdir;
100
+ /** @type {?} */
101
+ var decoratedFactory = (/**
102
+ * @return {?}
103
+ */
104
+ function () {
105
+ /** @type {?} */
106
+ var instance = factory();
107
+ // Caretaker note: `inject()` won't work here.
108
+ // We can use the `directiveInject` only during the component
109
+ // construction, since Angular captures the currently active injector.
110
+ // We're not able to use this function inside the getter (when the `selectorId` property is
111
+ // requested for the first time), since the currently active injector will be null.
112
+ instance[InjectorInstance] = ɵɵdirectiveInject(
113
+ // We're using `INJECTOR` token except of the `Injector` class since the compiler
114
+ // throws: `Cannot assign an abstract constructor type to a non-abstract constructor type.`.
115
+ // Caretaker note: that this is the same way of getting the injector.
116
+ INJECTOR);
117
+ // Caretaker note: the notifier will be available only if consumers call the `ensureInjectorNotifierIsCaptured()`.
118
+ /** @type {?} */
119
+ var injectorNotifier$ = instance[InjectorNotifier];
120
+ if (injectorNotifier$) {
121
+ injectorNotifier$.next(true);
122
+ injectorNotifier$.complete();
123
+ }
124
+ return instance;
125
+ });
126
+ // If we've found any definition then it's enough to override the `def.factory` since Angular
127
+ // code uses the `def.factory` and then fallbacks to `ɵfac`.
128
+ if (def) {
129
+ def.factory = decoratedFactory;
130
+ }
131
+ // `@NgModule()` doesn't doesn't have definition factory, also providers have definitions but Angular
132
+ // still uses the `ɵfac`.
133
+ Object.defineProperty(constructor, NG_FACTORY_DEF, {
134
+ get: (/**
135
+ * @return {?}
136
+ */
137
+ function () { return decoratedFactory; })
138
+ });
139
+ }
140
+ /**
141
+ * @param {?} constructor
142
+ * @return {?}
143
+ */
144
+ function decorateFactoryLater(constructor) {
145
+ // This function actually will be tree-shaken away when building for production since it's guarded with `ngDevMode`.
146
+ // We're having the `try-catch` here because of the `SyncTestZoneSpec`, which throws
147
+ // an error when micro or macrotask is used within a synchronous test. E.g. `Cannot call
148
+ // Promise.then from within a sync test`.
149
+ try {
150
+ Promise.resolve().then((/**
151
+ * @return {?}
152
+ */
153
+ function () {
154
+ decorateFactory(constructor);
155
+ }));
156
+ }
157
+ catch (_a) {
158
+ // This is kind of a "hack", but we try to be backwards-compatible,
159
+ // tho this `catch` block will only be executed when tests are run with Jasmine or Jest.
160
+ ɵglobal.process &&
161
+ ɵglobal.process.nextTick &&
162
+ ɵglobal.process.nextTick((/**
163
+ * @return {?}
164
+ */
165
+ function () {
166
+ decorateFactory(constructor);
167
+ }));
168
+ }
169
+ }
170
+ /**
171
+ * @record
172
+ */
173
+ function Definition() { }
174
+ if (false) {
175
+ /** @type {?} */
176
+ Definition.prototype.factory;
177
+ }
178
+ /**
179
+ * @record
180
+ */
181
+ function ConstructorWithDefinitionAndFactory() { }
182
+ if (false) {
183
+ /** @type {?|undefined} */
184
+ ConstructorWithDefinitionAndFactory.prototype.ɵprov;
185
+ /** @type {?|undefined} */
186
+ ConstructorWithDefinitionAndFactory.prototype.ɵpipe;
187
+ /** @type {?|undefined} */
188
+ ConstructorWithDefinitionAndFactory.prototype.ɵcmp;
189
+ /** @type {?|undefined} */
190
+ ConstructorWithDefinitionAndFactory.prototype.ɵdir;
191
+ /* Skipping unnamed member:
192
+ [NG_FACTORY_DEF]?: Factory;*/
193
+ }
194
+ /**
195
+ * @record
196
+ */
197
+ function PrivateInstance() { }
198
+ if (false) {
199
+ /* Skipping unnamed member:
200
+ [InjectorInstance]?: Injector;*/
201
+ /* Skipping unnamed member:
202
+ [InjectorNotifier]?: ReplaySubject<boolean>;*/
203
+ }
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLWluamVjdG9yLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9pbnRlcm5hbHMvIiwic291cmNlcyI6WyJkZWNvcmF0b3ItaW5qZWN0b3ItYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUdMLFFBQVEsRUFFUixpQkFBaUIsRUFDakIsT0FBTyxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7OztJQU8vQixjQUFjLEdBQUcsTUFBTTs7O0lBR3ZCLGdCQUFnQixHQUFrQixNQUFNLENBQUMsa0JBQWtCLENBQUM7OztJQUc1RCx1QkFBdUIsR0FBa0IsTUFBTSxDQUFDLHlCQUF5QixDQUFDOzs7O0lBSTFFLGdCQUFnQixHQUFrQixNQUFNLENBQUMsa0JBQWtCLENBQUM7Ozs7QUFFbEUsNENBRUM7Ozs7Ozs7OztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDOUMsTUFBdUQ7SUFFdkQsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtRQUM1QixPQUFPLG1CQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDLENBQUM7S0FDbEM7U0FBTTs7WUFDQyxtQkFBaUIsR0FBRyxJQUFJLGFBQWEsQ0FBVSxDQUFDLENBQUM7UUFDdkQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUU7WUFDOUMsR0FBRzs7O1lBQUUsY0FBTSxPQUFBLG1CQUFpQixFQUFqQixDQUFpQixDQUFBO1NBQzdCLENBQUMsQ0FBQztRQUNILE9BQU8sbUJBQWlCLENBQUM7S0FDMUI7QUFDSCxDQUFDOzs7Ozs7QUFHRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsTUFBYztJQUN4RCxJQUFJLHVCQUF1QixJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFO1FBQzNELE9BQU87S0FDUjs7UUFFSyxXQUFXLEdBQXdDLE1BQU0sQ0FBQyxXQUFXO0lBQzNFLDJCQUEyQjtJQUMzQixJQUFJLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQyxLQUFLLFVBQVUsRUFBRTtRQUNyRCxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDOUI7U0FBTSxJQUFJLFNBQVMsRUFBRTtRQUNwQix5RkFBeUY7UUFDekYsMkZBQTJGO1FBQzNGLDRGQUE0RjtRQUM1RiwwREFBMEQ7UUFDMUQsOEZBQThGO1FBQzlGLHdFQUF3RTtRQUN4RSxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUNuQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQy9ELENBQUM7Ozs7Ozs7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUN6QixRQUF5QixFQUN6QixLQUFrQzs7UUFFNUIsUUFBUSxHQUF5QixRQUFRLENBQUMsZ0JBQWdCLENBQUM7SUFDakUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMvQyxDQUFDOzs7OztBQUVELFNBQVMsZUFBZSxDQUFDLFdBQWdEOztRQUNqRSxPQUFPLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQztJQUUzQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFVBQVUsRUFBRTtRQUNqQyxPQUFPO0tBQ1I7Ozs7O1FBS0ssR0FBRyxHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksV0FBVyxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxJQUFJOztRQUVwRixnQkFBZ0I7OztJQUFHOztZQUNqQixRQUFRLEdBQUcsT0FBTyxFQUFFO1FBQzFCLDhDQUE4QztRQUM5Qyw2REFBNkQ7UUFDN0Qsc0VBQXNFO1FBQ3RFLDJGQUEyRjtRQUMzRixtRkFBbUY7UUFDbkYsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsaUJBQWlCO1FBQzVDLGlGQUFpRjtRQUNqRiw0RkFBNEY7UUFDNUYscUVBQXFFO1FBQ3JFLFFBQVEsQ0FDVCxDQUFDOzs7WUFHSSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7UUFDcEQsSUFBSSxpQkFBaUIsRUFBRTtZQUNyQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDOUI7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUE7SUFFRCw2RkFBNkY7SUFDN0YsNERBQTREO0lBQzVELElBQUksR0FBRyxFQUFFO1FBQ1AsR0FBRyxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQztLQUNoQztJQUVELHFHQUFxRztJQUNyRyx5QkFBeUI7SUFDekIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsY0FBYyxFQUFFO1FBQ2pELEdBQUc7OztRQUFFLGNBQU0sT0FBQSxnQkFBZ0IsRUFBaEIsQ0FBZ0IsQ0FBQTtLQUM1QixDQUFDLENBQUM7QUFDTCxDQUFDOzs7OztBQUVELFNBQVMsb0JBQW9CLENBQUMsV0FBZ0Q7SUFDNUUsb0hBQW9IO0lBQ3BILG9GQUFvRjtJQUNwRix3RkFBd0Y7SUFDeEYseUNBQXlDO0lBQ3pDLElBQUk7UUFDRixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSTs7O1FBQUM7WUFDckIsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9CLENBQUMsRUFBQyxDQUFDO0tBQ0o7SUFBQyxXQUFNO1FBQ04sbUVBQW1FO1FBQ25FLHdGQUF3RjtRQUN4RixPQUFPLENBQUMsT0FBTztZQUNiLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUN4QixPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVE7OztZQUFDO2dCQUN2QixlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0IsQ0FBQyxFQUFDLENBQUM7S0FDTjtBQUNILENBQUM7Ozs7QUFRRCx5QkFFQzs7O0lBREMsNkJBQXdCOzs7OztBQUcxQixrREFVQzs7O0lBUkMsb0RBQW1COztJQUVuQixvREFBbUI7O0lBRW5CLG1EQUFrQjs7SUFFbEIsbURBQWtCOzs7Ozs7O0FBSXBCLDhCQUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBJbmplY3Rpb25Ub2tlbixcclxuICBJbmplY3RvcixcclxuICBJTkpFQ1RPUixcclxuICBUeXBlLFxyXG4gIMm1ybVkaXJlY3RpdmVJbmplY3QsXHJcbiAgybVnbG9iYWxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuLy8gV2lsbCBiZSBwcm92aWRlZCB0aHJvdWdoIFRlcnNlciBnbG9iYWwgZGVmaW5pdGlvbnMgYnkgQW5ndWxhciBDTElcclxuLy8gZHVyaW5nIHRoZSBwcm9kdWN0aW9uIGJ1aWxkLiBUaGlzIGlzIGhvdyBBbmd1bGFyIGRvZXMgdHJlZS1zaGFraW5nIGludGVybmFsbHkuXHJcbmRlY2xhcmUgY29uc3QgbmdEZXZNb2RlOiBib29sZWFuO1xyXG5cclxuLy8gQW5ndWxhciBkb2Vzbid0IGV4cG9ydCBgTkdfRkFDVE9SWV9ERUZgLlxyXG5jb25zdCBOR19GQUNUT1JZX0RFRiA9ICfJtWZhYyc7XHJcblxyXG4vLyBBIGBTeW1ib2xgIHdoaWNoIGlzIHVzZWQgdG8gc2F2ZSB0aGUgYEluamVjdG9yYCBvbnRvIHRoZSBjbGFzcyBpbnN0YW5jZS5cclxuY29uc3QgSW5qZWN0b3JJbnN0YW5jZTogdW5pcXVlIHN5bWJvbCA9IFN5bWJvbCgnSW5qZWN0b3JJbnN0YW5jZScpO1xyXG5cclxuLy8gQSBgU3ltYm9sYCB3aGljaCBpcyB1c2VkIHRvIGRldGVybWluZSBpZiBmYWN0b3J5IGhhcyBiZWVuIGRlY29yYXRlZCBwcmV2aW91c2x5IG9yIG5vdC5cclxuY29uc3QgRmFjdG9yeUhhc0JlZW5EZWNvcmF0ZWQ6IHVuaXF1ZSBzeW1ib2wgPSBTeW1ib2woJ0ZhY3RvcnlIYXNCZWVuRGVjb3JhdGVkJyk7XHJcblxyXG4vLyBBIGBTeW1ib2xgIHdoaWNoIGlzIHVzZWQgdG8gc2F2ZSB0aGUgbm90aWZpZXIgb24gdGhlIGNsYXNzIGluc3RhbmNlLiBUaGUgYEluamVjdG9ySW5zdGFuY2VgIGNhbm5vdFxyXG4vLyBiZSByZXRyaWV2ZWQgd2l0aGluIHRoZSBgY29uc3RydWN0b3JgIHNpbmNlIGl0J3Mgc2V0IGFmdGVyIHRoZSBgZmFjdG9yeSgpYCBpcyBjYWxsZWQuXHJcbmNvbnN0IEluamVjdG9yTm90aWZpZXI6IHVuaXF1ZSBzeW1ib2wgPSBTeW1ib2woJ0luamVjdG9yTm90aWZpZXInKTtcclxuXHJcbmludGVyZmFjZSBQcm90b3R5cGVXaXRoSW5qZWN0b3JOb3RpZmllciBleHRlbmRzIE9iamVjdCB7XHJcbiAgW0luamVjdG9yTm90aWZpZXJdPzogUmVwbGF5U3ViamVjdDxib29sZWFuPjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUluamVjdG9yTm90aWZpZXJJc0NhcHR1cmVkKFxyXG4gIHRhcmdldDogUHJvdG90eXBlV2l0aEluamVjdG9yTm90aWZpZXIgfCBQcml2YXRlSW5zdGFuY2VcclxuKTogUmVwbGF5U3ViamVjdDxib29sZWFuPiB7XHJcbiAgaWYgKHRhcmdldFtJbmplY3Rvck5vdGlmaWVyXSkge1xyXG4gICAgcmV0dXJuIHRhcmdldFtJbmplY3Rvck5vdGlmaWVyXSE7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnN0IGluamVjdG9yTm90aWZpZXIkID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBJbmplY3Rvck5vdGlmaWVyLCB7XHJcbiAgICAgIGdldDogKCkgPT4gaW5qZWN0b3JOb3RpZmllciRcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGluamVjdG9yTm90aWZpZXIkO1xyXG4gIH1cclxufVxyXG5cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcclxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUxvY2FsSW5qZWN0b3JDYXB0dXJlZCh0YXJnZXQ6IE9iamVjdCk6IHZvaWQge1xyXG4gIGlmIChGYWN0b3J5SGFzQmVlbkRlY29yYXRlZCBpbiB0YXJnZXQuY29uc3RydWN0b3IucHJvdG90eXBlKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjb25zdCBjb25zdHJ1Y3RvcjogQ29uc3RydWN0b3JXaXRoRGVmaW5pdGlvbkFuZEZhY3RvcnkgPSB0YXJnZXQuY29uc3RydWN0b3I7XHJcbiAgLy8gTWVhbnMgd2UncmUgaW4gQU9UIG1vZGUuXHJcbiAgaWYgKHR5cGVvZiBjb25zdHJ1Y3RvcltOR19GQUNUT1JZX0RFRl0gPT09ICdmdW5jdGlvbicpIHtcclxuICAgIGRlY29yYXRlRmFjdG9yeShjb25zdHJ1Y3Rvcik7XHJcbiAgfSBlbHNlIGlmIChuZ0Rldk1vZGUpIHtcclxuICAgIC8vIFdlJ3JlIHJ1bm5pbmcgaW4gSklUIG1vZGUgYW5kIHRoYXQgbWVhbnMgd2UncmUgbm90IGFibGUgdG8gZ2V0IHRoZSBjb21waWxlZCBkZWZpbml0aW9uXHJcbiAgICAvLyBvbiB0aGUgY2xhc3MgaW5zaWRlIHRoZSBwcm9wZXJ0eSBkZWNvcmF0b3IgZHVyaW5nIHRoZSBjdXJyZW50IG1lc3NhZ2UgbG9vcCB0aWNrLiBXZSBoYXZlXHJcbiAgICAvLyB0byB3YWl0IGZvciB0aGUgbmV4dCBtZXNzYWdlIGxvb3AgdGljay4gTm90ZSB0aGF0IHRoaXMgaXMgc2FmZSBzaW5jZSB0aGlzIFByb21pc2Ugd2lsbCBiZVxyXG4gICAgLy8gcmVzb2x2ZWQgZXZlbiBiZWZvcmUgdGhlIGBBUFBfSU5JVElBTElaRVJgIGlzIHJlc29sdmVkLlxyXG4gICAgLy8gVGhlIGJlbG93IGNvZGUgYWxzbyB3aWxsIGJlIGV4ZWN1dGVkIG9ubHkgaW4gZGV2ZWxvcG1lbnQgbW9kZSwgc2luY2UgaXQncyBuZXZlciByZWNvbW1lbmRlZFxyXG4gICAgLy8gdG8gdXNlIHRoZSBKSVQgY29tcGlsZXIgaW4gcHJvZHVjdGlvbiBtb2RlIChieSBzZXR0aW5nIFwiYW90OiBmYWxzZVwiKS5cclxuICAgIGRlY29yYXRlRmFjdG9yeUxhdGVyKGNvbnN0cnVjdG9yKTtcclxuICB9XHJcblxyXG4gIHRhcmdldC5jb25zdHJ1Y3Rvci5wcm90b3R5cGVbRmFjdG9yeUhhc0JlZW5EZWNvcmF0ZWRdID0gdHJ1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsSW5qZWN0PFQ+KFxyXG4gIGluc3RhbmNlOiBQcml2YXRlSW5zdGFuY2UsXHJcbiAgdG9rZW46IEluamVjdGlvblRva2VuPFQ+IHwgVHlwZTxUPlxyXG4pOiBUIHwgbnVsbCB7XHJcbiAgY29uc3QgaW5qZWN0b3I6IEluamVjdG9yIHwgdW5kZWZpbmVkID0gaW5zdGFuY2VbSW5qZWN0b3JJbnN0YW5jZV07XHJcbiAgcmV0dXJuIGluamVjdG9yID8gaW5qZWN0b3IuZ2V0KHRva2VuKSA6IG51bGw7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRlY29yYXRlRmFjdG9yeShjb25zdHJ1Y3RvcjogQ29uc3RydWN0b3JXaXRoRGVmaW5pdGlvbkFuZEZhY3RvcnkpOiB2b2lkIHtcclxuICBjb25zdCBmYWN0b3J5ID0gY29uc3RydWN0b3JbTkdfRkFDVE9SWV9ERUZdO1xyXG5cclxuICBpZiAodHlwZW9mIGZhY3RvcnkgIT09ICdmdW5jdGlvbicpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIC8vIExldCdzIHRyeSB0byBnZXQgYW55IGRlZmluaXRpb24uXHJcbiAgLy8gQ2FyZXRha2VyIG5vdGU6IHRoaXMgd2lsbCBiZSBjb21wYXRpYmxlIG9ubHkgd2l0aCBBbmd1bGFyIDkrLCBzaW5jZSBBbmd1bGFyIDkgaXMgdGhlIGZpcnN0XHJcbiAgLy8gSXZ5LXN0YWJsZSB2ZXJzaW9uLiBQcmV2aW91c2x5IGRlZmluaXRpb24gcHJvcGVydGllcyB3ZXJlIG5hbWVkIGRpZmZlcmVudGx5IChlLmcuIGBuZ0NvbXBvbmVudERlZmApLlxyXG4gIGNvbnN0IGRlZiA9IGNvbnN0cnVjdG9yLsm1cHJvdiB8fCBjb25zdHJ1Y3Rvci7JtXBpcGUgfHwgY29uc3RydWN0b3IuybVjbXAgfHwgY29uc3RydWN0b3IuybVkaXI7XHJcblxyXG4gIGNvbnN0IGRlY29yYXRlZEZhY3RvcnkgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBpbnN0YW5jZSA9IGZhY3RvcnkoKTtcclxuICAgIC8vIENhcmV0YWtlciBub3RlOiBgaW5qZWN0KClgIHdvbid0IHdvcmsgaGVyZS5cclxuICAgIC8vIFdlIGNhbiB1c2UgdGhlIGBkaXJlY3RpdmVJbmplY3RgIG9ubHkgZHVyaW5nIHRoZSBjb21wb25lbnRcclxuICAgIC8vIGNvbnN0cnVjdGlvbiwgc2luY2UgQW5ndWxhciBjYXB0dXJlcyB0aGUgY3VycmVudGx5IGFjdGl2ZSBpbmplY3Rvci5cclxuICAgIC8vIFdlJ3JlIG5vdCBhYmxlIHRvIHVzZSB0aGlzIGZ1bmN0aW9uIGluc2lkZSB0aGUgZ2V0dGVyICh3aGVuIHRoZSBgc2VsZWN0b3JJZGAgcHJvcGVydHkgaXNcclxuICAgIC8vIHJlcXVlc3RlZCBmb3IgdGhlIGZpcnN0IHRpbWUpLCBzaW5jZSB0aGUgY3VycmVudGx5IGFjdGl2ZSBpbmplY3RvciB3aWxsIGJlIG51bGwuXHJcbiAgICBpbnN0YW5jZVtJbmplY3Rvckluc3RhbmNlXSA9IMm1ybVkaXJlY3RpdmVJbmplY3QoXHJcbiAgICAgIC8vIFdlJ3JlIHVzaW5nIGBJTkpFQ1RPUmAgdG9rZW4gZXhjZXB0IG9mIHRoZSBgSW5qZWN0b3JgIGNsYXNzIHNpbmNlIHRoZSBjb21waWxlclxyXG4gICAgICAvLyB0aHJvd3M6IGBDYW5ub3QgYXNzaWduIGFuIGFic3RyYWN0IGNvbnN0cnVjdG9yIHR5cGUgdG8gYSBub24tYWJzdHJhY3QgY29uc3RydWN0b3IgdHlwZS5gLlxyXG4gICAgICAvLyBDYXJldGFrZXIgbm90ZTogdGhhdCB0aGlzIGlzIHRoZSBzYW1lIHdheSBvZiBnZXR0aW5nIHRoZSBpbmplY3Rvci5cclxuICAgICAgSU5KRUNUT1JcclxuICAgICk7XHJcblxyXG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IHRoZSBub3RpZmllciB3aWxsIGJlIGF2YWlsYWJsZSBvbmx5IGlmIGNvbnN1bWVycyBjYWxsIHRoZSBgZW5zdXJlSW5qZWN0b3JOb3RpZmllcklzQ2FwdHVyZWQoKWAuXHJcbiAgICBjb25zdCBpbmplY3Rvck5vdGlmaWVyJCA9IGluc3RhbmNlW0luamVjdG9yTm90aWZpZXJdO1xyXG4gICAgaWYgKGluamVjdG9yTm90aWZpZXIkKSB7XHJcbiAgICAgIGluamVjdG9yTm90aWZpZXIkLm5leHQodHJ1ZSk7XHJcbiAgICAgIGluamVjdG9yTm90aWZpZXIkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGluc3RhbmNlO1xyXG4gIH07XHJcblxyXG4gIC8vIElmIHdlJ3ZlIGZvdW5kIGFueSBkZWZpbml0aW9uIHRoZW4gaXQncyBlbm91Z2ggdG8gb3ZlcnJpZGUgdGhlIGBkZWYuZmFjdG9yeWAgc2luY2UgQW5ndWxhclxyXG4gIC8vIGNvZGUgdXNlcyB0aGUgYGRlZi5mYWN0b3J5YCBhbmQgdGhlbiBmYWxsYmFja3MgdG8gYMm1ZmFjYC5cclxuICBpZiAoZGVmKSB7XHJcbiAgICBkZWYuZmFjdG9yeSA9IGRlY29yYXRlZEZhY3Rvcnk7XHJcbiAgfVxyXG5cclxuICAvLyBgQE5nTW9kdWxlKClgIGRvZXNuJ3QgZG9lc24ndCBoYXZlIGRlZmluaXRpb24gZmFjdG9yeSwgYWxzbyBwcm92aWRlcnMgaGF2ZSBkZWZpbml0aW9ucyBidXQgQW5ndWxhclxyXG4gIC8vIHN0aWxsIHVzZXMgdGhlIGDJtWZhY2AuXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnN0cnVjdG9yLCBOR19GQUNUT1JZX0RFRiwge1xyXG4gICAgZ2V0OiAoKSA9PiBkZWNvcmF0ZWRGYWN0b3J5XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRlY29yYXRlRmFjdG9yeUxhdGVyKGNvbnN0cnVjdG9yOiBDb25zdHJ1Y3RvcldpdGhEZWZpbml0aW9uQW5kRmFjdG9yeSk6IHZvaWQge1xyXG4gIC8vIFRoaXMgZnVuY3Rpb24gYWN0dWFsbHkgd2lsbCBiZSB0cmVlLXNoYWtlbiBhd2F5IHdoZW4gYnVpbGRpbmcgZm9yIHByb2R1Y3Rpb24gc2luY2UgaXQncyBndWFyZGVkIHdpdGggYG5nRGV2TW9kZWAuXHJcbiAgLy8gV2UncmUgaGF2aW5nIHRoZSBgdHJ5LWNhdGNoYCBoZXJlIGJlY2F1c2Ugb2YgdGhlIGBTeW5jVGVzdFpvbmVTcGVjYCwgd2hpY2ggdGhyb3dzXHJcbiAgLy8gYW4gZXJyb3Igd2hlbiBtaWNybyBvciBtYWNyb3Rhc2sgaXMgdXNlZCB3aXRoaW4gYSBzeW5jaHJvbm91cyB0ZXN0LiBFLmcuIGBDYW5ub3QgY2FsbFxyXG4gIC8vIFByb21pc2UudGhlbiBmcm9tIHdpdGhpbiBhIHN5bmMgdGVzdGAuXHJcbiAgdHJ5IHtcclxuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICBkZWNvcmF0ZUZhY3RvcnkoY29uc3RydWN0b3IpO1xyXG4gICAgfSk7XHJcbiAgfSBjYXRjaCB7XHJcbiAgICAvLyBUaGlzIGlzIGtpbmQgb2YgYSBcImhhY2tcIiwgYnV0IHdlIHRyeSB0byBiZSBiYWNrd2FyZHMtY29tcGF0aWJsZSxcclxuICAgIC8vIHRobyB0aGlzIGBjYXRjaGAgYmxvY2sgd2lsbCBvbmx5IGJlIGV4ZWN1dGVkIHdoZW4gdGVzdHMgYXJlIHJ1biB3aXRoIEphc21pbmUgb3IgSmVzdC5cclxuICAgIMm1Z2xvYmFsLnByb2Nlc3MgJiZcclxuICAgICAgybVnbG9iYWwucHJvY2Vzcy5uZXh0VGljayAmJlxyXG4gICAgICDJtWdsb2JhbC5wcm9jZXNzLm5leHRUaWNrKCgpID0+IHtcclxuICAgICAgICBkZWNvcmF0ZUZhY3RvcnkoY29uc3RydWN0b3IpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFdlIGNvdWxkJ3ZlIHVzZWQgYMm1ybVGYWN0b3J5RGVmYCBidXQgd2UgdHJ5IHRvIGJlIGJhY2t3YXJkcy1jb21wYXRpYmxlLFxyXG4vLyBzaW5jZSBpdCdzIG5vdCBleHBvcnRlZCBpbiBvbGRlciBBbmd1bGFyIHZlcnNpb25zLlxyXG50eXBlIEZhY3RvcnkgPSAoKSA9PiBQcml2YXRlSW5zdGFuY2U7XHJcblxyXG4vLyBXZSBjb3VsZCd2ZSB1c2VkIGDJtcm1SW5qZWN0YWJsZURlZmAsIGDJtcm1UGlwZURlZmAsIGV0Yy4gV2UgdHJ5IHRvIGJlIGJhY2t3YXJkcy1jb21wYXRpYmxlXHJcbi8vIHNpbmNlIHRoZXkncmUgbm90IGV4cG9ydGVkIGluIG9sZGVyIEFuZ3VsYXIgdmVyc2lvbnMuXHJcbmludGVyZmFjZSBEZWZpbml0aW9uIHtcclxuICBmYWN0b3J5OiBGYWN0b3J5IHwgbnVsbDtcclxufVxyXG5cclxuaW50ZXJmYWNlIENvbnN0cnVjdG9yV2l0aERlZmluaXRpb25BbmRGYWN0b3J5IGV4dGVuZHMgRnVuY3Rpb24ge1xyXG4gIC8vIFByb3ZpZGVyIGRlZmluaXRpb24gZm9yIHRoZSBgQEluamVjdGFibGUoKWAgY2xhc3MuXHJcbiAgybVwcm92PzogRGVmaW5pdGlvbjtcclxuICAvLyBQaXBlIGRlZmluaXRpb24gZm9yIHRoZSBgQFBpcGUoKWAgY2xhc3MuXHJcbiAgybVwaXBlPzogRGVmaW5pdGlvbjtcclxuICAvLyBDb21wb25lbnQgZGVmaW5pdGlvbiBmb3IgdGhlIGBAQ29tcG9uZW50KClgIGNsYXNzLlxyXG4gIMm1Y21wPzogRGVmaW5pdGlvbjtcclxuICAvLyBEaXJlY3RpdmUgZGVmaW5pdGlvbiBmb3IgdGhlIGBARGlyZWN0aXZlKClgIGNsYXNzLlxyXG4gIMm1ZGlyPzogRGVmaW5pdGlvbjtcclxuICBbTkdfRkFDVE9SWV9ERUZdPzogRmFjdG9yeTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFByaXZhdGVJbnN0YW5jZSB7XHJcbiAgW0luamVjdG9ySW5zdGFuY2VdPzogSW5qZWN0b3I7XHJcbiAgW0luamVjdG9yTm90aWZpZXJdPzogUmVwbGF5U3ViamVjdDxib29sZWFuPjtcclxufVxyXG4iXX0=
@@ -7,4 +7,5 @@ export { NgxsBootstrapper } from './ngxs-bootstrapper';
7
7
  export { memoize } from './memoize';
8
8
  export { INITIAL_STATE_TOKEN, InitialState } from './initial-state';
9
9
  export { NGXS_STATE_CONTEXT_FACTORY, NGXS_STATE_FACTORY } from './internal-tokens';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9pbnRlcm5hbHMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgaXNBbmd1bGFySW5UZXN0TW9kZSB9IGZyb20gJy4vYW5ndWxhcic7XHJcbmV4cG9ydCB7IE5neHNCb290c3RyYXBwZXIgfSBmcm9tICcuL25neHMtYm9vdHN0cmFwcGVyJztcclxuZXhwb3J0IHsgbWVtb2l6ZSB9IGZyb20gJy4vbWVtb2l6ZSc7XHJcbmV4cG9ydCB7IElOSVRJQUxfU1RBVEVfVE9LRU4sIEluaXRpYWxTdGF0ZSB9IGZyb20gJy4vaW5pdGlhbC1zdGF0ZSc7XHJcbmV4cG9ydCB7IFBsYWluT2JqZWN0T2YsIFBsYWluT2JqZWN0LCBTdGF0ZUNsYXNzIH0gZnJvbSAnLi9zeW1ib2xzJztcclxuZXhwb3J0IHsgTkdYU19TVEFURV9DT05URVhUX0ZBQ1RPUlksIE5HWFNfU1RBVEVfRkFDVE9SWSB9IGZyb20gJy4vaW50ZXJuYWwtdG9rZW5zJztcclxuIl19
10
+ export { localInject, ensureLocalInjectorCaptured, ensureInjectorNotifierIsCaptured } from './decorator-injector-adapter';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9pbnRlcm5hbHMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25GLE9BQU8sRUFDTCxXQUFXLEVBQ1gsMkJBQTJCLEVBQzNCLGdDQUFnQyxFQUNqQyxNQUFNLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgaXNBbmd1bGFySW5UZXN0TW9kZSB9IGZyb20gJy4vYW5ndWxhcic7XHJcbmV4cG9ydCB7IE5neHNCb290c3RyYXBwZXIgfSBmcm9tICcuL25neHMtYm9vdHN0cmFwcGVyJztcclxuZXhwb3J0IHsgbWVtb2l6ZSB9IGZyb20gJy4vbWVtb2l6ZSc7XHJcbmV4cG9ydCB7IElOSVRJQUxfU1RBVEVfVE9LRU4sIEluaXRpYWxTdGF0ZSB9IGZyb20gJy4vaW5pdGlhbC1zdGF0ZSc7XHJcbmV4cG9ydCB7IFBsYWluT2JqZWN0T2YsIFBsYWluT2JqZWN0LCBTdGF0ZUNsYXNzIH0gZnJvbSAnLi9zeW1ib2xzJztcclxuZXhwb3J0IHsgTkdYU19TVEFURV9DT05URVhUX0ZBQ1RPUlksIE5HWFNfU1RBVEVfRkFDVE9SWSB9IGZyb20gJy4vaW50ZXJuYWwtdG9rZW5zJztcclxuZXhwb3J0IHtcclxuICBsb2NhbEluamVjdCxcclxuICBlbnN1cmVMb2NhbEluamVjdG9yQ2FwdHVyZWQsXHJcbiAgZW5zdXJlSW5qZWN0b3JOb3RpZmllcklzQ2FwdHVyZWRcclxufSBmcm9tICcuL2RlY29yYXRvci1pbmplY3Rvci1hZGFwdGVyJztcclxuIl19
@@ -5,5 +5,5 @@
5
5
  /**
6
6
  * Generated bundle index. Do not edit.
7
7
  */
8
- export { isAngularInTestMode, NgxsBootstrapper, memoize, INITIAL_STATE_TOKEN, InitialState, NGXS_STATE_CONTEXT_FACTORY, NGXS_STATE_FACTORY } from './index';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1zdG9yZS1pbnRlcm5hbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9pbnRlcm5hbHMvIiwic291cmNlcyI6WyJuZ3hzLXN0b3JlLWludGVybmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsa0pBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
8
+ export { isAngularInTestMode, NgxsBootstrapper, memoize, INITIAL_STATE_TOKEN, InitialState, NGXS_STATE_CONTEXT_FACTORY, NGXS_STATE_FACTORY, localInject, ensureLocalInjectorCaptured, ensureInjectorNotifierIsCaptured } from './index';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1zdG9yZS1pbnRlcm5hbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9pbnRlcm5hbHMvIiwic291cmNlcyI6WyJuZ3hzLXN0b3JlLWludGVybmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsOE5BQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -6,7 +6,7 @@ import * as tslib_1 from "tslib";
6
6
  import { TestBed } from '@angular/core/testing';
7
7
  import { DOCUMENT } from '@angular/common';
8
8
  import { ɵgetDOM as getDOM } from '@angular/platform-browser';
9
- import { destroyPlatform, createPlatform } from '@angular/core';
9
+ import { VERSION, destroyPlatform, createPlatform } from '@angular/core';
10
10
  /**
11
11
  * @return {?}
12
12
  */
@@ -44,38 +44,78 @@ function destroyPlatformBeforeBootstrappingTheNewOne() {
44
44
  function resetPlatformAfterBootstrapping() {
45
45
  removeRootElement();
46
46
  destroyPlatform();
47
- createPlatform(TestBed);
47
+ /** @type {?} */
48
+ var version = +VERSION.major;
49
+ // https://github.com/angular/angular/commit/e250db4f261741b04ee4cbad4dec41a8908a12aa
50
+ if (version < 14) {
51
+ createPlatform(TestBed);
52
+ }
48
53
  }
49
54
  /**
50
55
  * @param {?} fn
51
56
  * @return {?}
52
57
  */
53
58
  export function freshPlatform(fn) {
59
+ /** @type {?} */
60
+ var resolve = null;
61
+ /** @type {?} */
62
+ var reject = null;
63
+ /** @type {?} */
64
+ var whenDoneIsCalledPromise = null;
65
+ /** @type {?} */
66
+ var hasDoneArgument = fn.length === 1;
67
+ if (hasDoneArgument) {
68
+ whenDoneIsCalledPromise = new Promise((/**
69
+ * @param {?} _resolve
70
+ * @param {?} _reject
71
+ * @return {?}
72
+ */
73
+ function (_resolve, _reject) {
74
+ resolve = _resolve;
75
+ reject = _reject;
76
+ }));
77
+ }
54
78
  return (/**
55
- * @this {?}
56
- * @param {...?} args
57
79
  * @return {?}
58
80
  */
59
81
  function testWithAFreshPlatform() {
60
- var args = [];
61
- for (var _i = 0; _i < arguments.length; _i++) {
62
- args[_i] = arguments[_i];
63
- }
64
82
  return tslib_1.__awaiter(this, void 0, void 0, function () {
65
83
  return tslib_1.__generator(this, function (_a) {
66
84
  switch (_a.label) {
67
85
  case 0:
68
- _a.trys.push([0, , 2, 3]);
86
+ _a.trys.push([0, , 6, 7]);
69
87
  destroyPlatformBeforeBootstrappingTheNewOne();
70
- return [4 /*yield*/, fn.apply(this, args)];
71
- case 1: return [2 /*return*/, _a.sent()];
88
+ if (!hasDoneArgument) return [3 /*break*/, 3];
89
+ return [4 /*yield*/, fn((/**
90
+ * @param {?=} error
91
+ * @return {?}
92
+ */
93
+ function (error) {
94
+ if (error) {
95
+ (/** @type {?} */ (reject))(error);
96
+ }
97
+ else {
98
+ (/** @type {?} */ (resolve))();
99
+ }
100
+ }))];
101
+ case 1:
102
+ _a.sent();
103
+ return [4 /*yield*/, (/** @type {?} */ (whenDoneIsCalledPromise))];
72
104
  case 2:
105
+ _a.sent();
106
+ return [3 /*break*/, 5];
107
+ case 3: return [4 /*yield*/, fn()];
108
+ case 4:
109
+ _a.sent();
110
+ _a.label = 5;
111
+ case 5: return [3 /*break*/, 7];
112
+ case 6:
73
113
  resetPlatformAfterBootstrapping();
74
114
  return [7 /*endfinally*/];
75
- case 3: return [2 /*return*/];
115
+ case 7: return [2 /*return*/];
76
116
  }
77
117
  });
78
118
  });
79
119
  });
80
120
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlc2gtcGxhdGZvcm0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9pbnRlcm5hbHMvdGVzdGluZy8iLCJzb3VyY2VzIjpbImZyZXNoLXBsYXRmb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxJQUFJLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRWhFLFNBQVMsaUJBQWlCOztRQUNsQixRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7O1FBQ25DLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztJQUN6RCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQyxDQUFDOzs7O0FBRUQsU0FBUyxpQkFBaUI7O1FBQ2xCLElBQUksR0FBWSxtQkFBQSxRQUFRLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDO0lBQ3hFLElBQUk7UUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNqQztJQUFDLFdBQU0sR0FBRTtBQUNaLENBQUM7Ozs7QUFFRCxTQUFTLDJDQUEyQztJQUNsRCxlQUFlLEVBQUUsQ0FBQztJQUNsQixpQkFBaUIsRUFBRSxDQUFDO0FBQ3RCLENBQUM7Ozs7Ozs7QUFLRCxTQUFTLCtCQUErQjtJQUN0QyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3BCLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMxQixDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsRUFBWTtJQUN4Qzs7Ozs7SUFBTyxTQUFlLHNCQUFzQjtRQUFZLGNBQWM7YUFBZCxVQUFjLEVBQWQscUJBQWMsRUFBZCxJQUFjO1lBQWQseUJBQWM7Ozs7Ozs7d0JBRWxFLDJDQUEyQyxFQUFFLENBQUM7d0JBQ3ZDLHFCQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFBOzRCQUFqQyxzQkFBTyxTQUEwQixFQUFDOzt3QkFFbEMsK0JBQStCLEVBQUUsQ0FBQzs7Ozs7O0tBRXJDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVzdEJlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgybVnZXRET00gYXMgZ2V0RE9NIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IGRlc3Ryb3lQbGF0Zm9ybSwgY3JlYXRlUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZVJvb3RFbGVtZW50KCkge1xyXG4gIGNvbnN0IGRvY3VtZW50ID0gVGVzdEJlZC5pbmplY3QoRE9DVU1FTlQpO1xyXG4gIGNvbnN0IHJvb3QgPSBnZXRET00oKS5jcmVhdGVFbGVtZW50KCdhcHAtcm9vdCcsIGRvY3VtZW50KTtcclxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJvb3QpO1xyXG59XHJcblxyXG5mdW5jdGlvbiByZW1vdmVSb290RWxlbWVudCgpIHtcclxuICBjb25zdCByb290OiBFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2FwcC1yb290JykuaXRlbSgwKSE7XHJcbiAgdHJ5IHtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocm9vdCk7XHJcbiAgfSBjYXRjaCB7fVxyXG59XHJcblxyXG5mdW5jdGlvbiBkZXN0cm95UGxhdGZvcm1CZWZvcmVCb290c3RyYXBwaW5nVGhlTmV3T25lKCkge1xyXG4gIGRlc3Ryb3lQbGF0Zm9ybSgpO1xyXG4gIGNyZWF0ZVJvb3RFbGVtZW50KCk7XHJcbn1cclxuXHJcbi8vIEFzIHdlIGNyZWF0ZSBvdXIgY3VzdG9tIHBsYXRmb3JtIHZpYSBgYm9vdHN0cmFwTW9kdWxlYFxyXG4vLyB3ZSBoYXZlIHRvIGRlc3Ryb3kgaXQgYWZ0ZXIgYXNzZXRpb25zIGFuZCByZXZlcnRcclxuLy8gdGhlIHByZXZpb3VzIG9uZVxyXG5mdW5jdGlvbiByZXNldFBsYXRmb3JtQWZ0ZXJCb290c3RyYXBwaW5nKCkge1xyXG4gIHJlbW92ZVJvb3RFbGVtZW50KCk7XHJcbiAgZGVzdHJveVBsYXRmb3JtKCk7XHJcbiAgY3JlYXRlUGxhdGZvcm0oVGVzdEJlZCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmcmVzaFBsYXRmb3JtKGZuOiBGdW5jdGlvbik6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55IHtcclxuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gdGVzdFdpdGhBRnJlc2hQbGF0Zm9ybSh0aGlzOiBhbnksIC4uLmFyZ3M6IGFueVtdKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBkZXN0cm95UGxhdGZvcm1CZWZvcmVCb290c3RyYXBwaW5nVGhlTmV3T25lKCk7XHJcbiAgICAgIHJldHVybiBhd2FpdCBmbi5hcHBseSh0aGlzLCBhcmdzKTtcclxuICAgIH0gZmluYWxseSB7XHJcbiAgICAgIHJlc2V0UGxhdGZvcm1BZnRlckJvb3RzdHJhcHBpbmcoKTtcclxuICAgIH1cclxuICB9O1xyXG59XHJcbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlc2gtcGxhdGZvcm0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9pbnRlcm5hbHMvdGVzdGluZy8iLCJzb3VyY2VzIjpbImZyZXNoLXBsYXRmb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxJQUFJLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUV6RSxTQUFTLGlCQUFpQjs7UUFDbEIsUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDOztRQUNuQyxJQUFJLEdBQUcsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUM7SUFDekQsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEMsQ0FBQzs7OztBQUVELFNBQVMsaUJBQWlCOztRQUNsQixJQUFJLEdBQVksbUJBQUEsUUFBUSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQztJQUN4RSxJQUFJO1FBQ0YsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakM7SUFBQyxXQUFNLEdBQUU7QUFDWixDQUFDOzs7O0FBRUQsU0FBUywyQ0FBMkM7SUFDbEQsZUFBZSxFQUFFLENBQUM7SUFDbEIsaUJBQWlCLEVBQUUsQ0FBQztBQUN0QixDQUFDOzs7Ozs7O0FBS0QsU0FBUywrQkFBK0I7SUFDdEMsaUJBQWlCLEVBQUUsQ0FBQztJQUNwQixlQUFlLEVBQUUsQ0FBQzs7UUFDWixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSztJQUM5QixxRkFBcUY7SUFDckYsSUFBSSxPQUFPLEdBQUcsRUFBRSxFQUFFO1FBQ2hCLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUN6QjtBQUNILENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxFQUEwQzs7UUFDbEUsT0FBTyxHQUF3QixJQUFJOztRQUNuQyxNQUFNLEdBQW9DLElBQUk7O1FBQzlDLHVCQUF1QixHQUF5QixJQUFJOztRQUVsRCxlQUFlLEdBQUcsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDO0lBRXZDLElBQUksZUFBZSxFQUFFO1FBQ25CLHVCQUF1QixHQUFHLElBQUksT0FBTzs7Ozs7UUFBTyxVQUFDLFFBQVEsRUFBRSxPQUFPO1lBQzVELE9BQU8sR0FBRyxRQUFRLENBQUM7WUFDbkIsTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUNuQixDQUFDLEVBQUMsQ0FBQztLQUNKO0lBRUQ7OztJQUFPLFNBQWUsc0JBQXNCOzs7Ozs7d0JBRXhDLDJDQUEyQyxFQUFFLENBQUM7NkJBRTFDLGVBQWUsRUFBZix3QkFBZTt3QkFDakIscUJBQU0sRUFBRTs7Ozs0QkFBQyxVQUFDLEtBQWE7Z0NBQ3JCLElBQUksS0FBSyxFQUFFO29DQUNULG1CQUFBLE1BQU0sRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lDQUNoQjtxQ0FBTTtvQ0FDTCxtQkFBQSxPQUFPLEVBQUMsRUFBRSxDQUFDO2lDQUNaOzRCQUNILENBQUMsRUFBQyxFQUFBOzt3QkFORixTQU1FLENBQUM7d0JBQ0gscUJBQU0sbUJBQUEsdUJBQXVCLEVBQUMsRUFBQTs7d0JBQTlCLFNBQThCLENBQUM7OzRCQUUvQixxQkFBTSxFQUFFLEVBQUUsRUFBQTs7d0JBQVYsU0FBVSxDQUFDOzs7O3dCQUdiLCtCQUErQixFQUFFLENBQUM7Ozs7OztLQUVyQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlc3RCZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IMm1Z2V0RE9NIGFzIGdldERPTSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBWRVJTSU9OLCBkZXN0cm95UGxhdGZvcm0sIGNyZWF0ZVBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVSb290RWxlbWVudCgpIHtcclxuICBjb25zdCBkb2N1bWVudCA9IFRlc3RCZWQuaW5qZWN0KERPQ1VNRU5UKTtcclxuICBjb25zdCByb290ID0gZ2V0RE9NKCkuY3JlYXRlRWxlbWVudCgnYXBwLXJvb3QnLCBkb2N1bWVudCk7XHJcbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyb290KTtcclxufVxyXG5cclxuZnVuY3Rpb24gcmVtb3ZlUm9vdEVsZW1lbnQoKSB7XHJcbiAgY29uc3Qgcm9vdDogRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhcHAtcm9vdCcpLml0ZW0oMCkhO1xyXG4gIHRyeSB7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHJvb3QpO1xyXG4gIH0gY2F0Y2gge31cclxufVxyXG5cclxuZnVuY3Rpb24gZGVzdHJveVBsYXRmb3JtQmVmb3JlQm9vdHN0cmFwcGluZ1RoZU5ld09uZSgpIHtcclxuICBkZXN0cm95UGxhdGZvcm0oKTtcclxuICBjcmVhdGVSb290RWxlbWVudCgpO1xyXG59XHJcblxyXG4vLyBBcyB3ZSBjcmVhdGUgb3VyIGN1c3RvbSBwbGF0Zm9ybSB2aWEgYGJvb3RzdHJhcE1vZHVsZWBcclxuLy8gd2UgaGF2ZSB0byBkZXN0cm95IGl0IGFmdGVyIGFzc2V0aW9ucyBhbmQgcmV2ZXJ0XHJcbi8vIHRoZSBwcmV2aW91cyBvbmVcclxuZnVuY3Rpb24gcmVzZXRQbGF0Zm9ybUFmdGVyQm9vdHN0cmFwcGluZygpIHtcclxuICByZW1vdmVSb290RWxlbWVudCgpO1xyXG4gIGRlc3Ryb3lQbGF0Zm9ybSgpO1xyXG4gIGNvbnN0IHZlcnNpb24gPSArVkVSU0lPTi5tYWpvcjtcclxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2NvbW1pdC9lMjUwZGI0ZjI2MTc0MWIwNGVlNGNiYWQ0ZGVjNDFhODkwOGExMmFhXHJcbiAgaWYgKHZlcnNpb24gPCAxNCkge1xyXG4gICAgY3JlYXRlUGxhdGZvcm0oVGVzdEJlZCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZnJlc2hQbGF0Zm9ybShmbjogKGRvbmU/OiBWb2lkRnVuY3Rpb24pID0+IFByb21pc2U8dm9pZD4pIHtcclxuICBsZXQgcmVzb2x2ZTogVm9pZEZ1bmN0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgbGV0IHJlamVjdDogKChlcnJvcjogRXJyb3IpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XHJcbiAgbGV0IHdoZW5Eb25lSXNDYWxsZWRQcm9taXNlOiBQcm9taXNlPHZvaWQ+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0IGhhc0RvbmVBcmd1bWVudCA9IGZuLmxlbmd0aCA9PT0gMTtcclxuXHJcbiAgaWYgKGhhc0RvbmVBcmd1bWVudCkge1xyXG4gICAgd2hlbkRvbmVJc0NhbGxlZFByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigoX3Jlc29sdmUsIF9yZWplY3QpID0+IHtcclxuICAgICAgcmVzb2x2ZSA9IF9yZXNvbHZlO1xyXG4gICAgICByZWplY3QgPSBfcmVqZWN0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gdGVzdFdpdGhBRnJlc2hQbGF0Zm9ybSgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGRlc3Ryb3lQbGF0Zm9ybUJlZm9yZUJvb3RzdHJhcHBpbmdUaGVOZXdPbmUoKTtcclxuXHJcbiAgICAgIGlmIChoYXNEb25lQXJndW1lbnQpIHtcclxuICAgICAgICBhd2FpdCBmbigoZXJyb3I/OiBFcnJvcikgPT4ge1xyXG4gICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHJlamVjdCEoZXJyb3IpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSEoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBhd2FpdCB3aGVuRG9uZUlzQ2FsbGVkUHJvbWlzZSE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYXdhaXQgZm4oKTtcclxuICAgICAgfVxyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgcmVzZXRQbGF0Zm9ybUFmdGVyQm9vdHN0cmFwcGluZygpO1xyXG4gICAgfVxyXG4gIH07XHJcbn1cclxuIl19
@@ -4,4 +4,5 @@
4
4
  */
5
5
  export { NgxsTestBed } from './ngxs.setup';
6
6
  export { freshPlatform } from './fresh-platform';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9pbnRlcm5hbHMvdGVzdGluZy8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE5neHNUZXN0QmVkIH0gZnJvbSAnLi9uZ3hzLnNldHVwJztcclxuZXhwb3J0IHsgTmd4c1Rlc3RpbmcgfSBmcm9tICcuL3N5bWJvbCc7XHJcbmV4cG9ydCB7IGZyZXNoUGxhdGZvcm0gfSBmcm9tICcuL2ZyZXNoLXBsYXRmb3JtJztcclxuIl19
7
+ export { skipConsoleLogging } from './skip-console-logging';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9pbnRlcm5hbHMvdGVzdGluZy8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE5neHNUZXN0QmVkIH0gZnJvbSAnLi9uZ3hzLnNldHVwJztcclxuZXhwb3J0IHsgTmd4c1Rlc3RpbmcgfSBmcm9tICcuL3N5bWJvbCc7XHJcbmV4cG9ydCB7IGZyZXNoUGxhdGZvcm0gfSBmcm9tICcuL2ZyZXNoLXBsYXRmb3JtJztcclxuZXhwb3J0IHsgc2tpcENvbnNvbGVMb2dnaW5nIH0gZnJvbSAnLi9za2lwLWNvbnNvbGUtbG9nZ2luZyc7XHJcbiJdfQ==
@@ -5,5 +5,5 @@
5
5
  /**
6
6
  * Generated bundle index. Do not edit.
7
7
  */
8
- export { NgxsTestBed, freshPlatform } from './index';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1zdG9yZS1pbnRlcm5hbHMtdGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlL2ludGVybmFscy90ZXN0aW5nLyIsInNvdXJjZXMiOlsibmd4cy1zdG9yZS1pbnRlcm5hbHMtdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMkNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
8
+ export { NgxsTestBed, freshPlatform, skipConsoleLogging } from './index';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1zdG9yZS1pbnRlcm5hbHMtdGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlL2ludGVybmFscy90ZXN0aW5nLyIsInNvdXJjZXMiOlsibmd4cy1zdG9yZS1pbnRlcm5hbHMtdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsK0RBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==