@data-client/core 0.14.18 → 0.14.20

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 (78) hide show
  1. package/dist/index.js +549 -276
  2. package/dist/index.umd.min.js +1 -1
  3. package/legacy/actions.js +1 -1
  4. package/legacy/controller/Controller.js +96 -8
  5. package/legacy/index.js +3 -4
  6. package/legacy/manager/DevtoolsManager.js +7 -4
  7. package/legacy/manager/NetworkManager.js +3 -2
  8. package/legacy/manager/SubscriptionManager.js +1 -1
  9. package/legacy/manager/applyManager.js +3 -7
  10. package/legacy/manager/initManager.js +15 -0
  11. package/legacy/state/GCPolicy.js +151 -0
  12. package/legacy/state/reducer/createReducer.js +7 -3
  13. package/legacy/state/reducer/expireReducer.js +5 -4
  14. package/legacy/state/reducer/fetchReducer.js +3 -2
  15. package/legacy/state/reducer/invalidateReducer.js +6 -5
  16. package/legacy/state/reducer/setResponseReducer.js +10 -7
  17. package/legacy/types.js +1 -1
  18. package/lib/actions.d.ts +2 -2
  19. package/lib/actions.d.ts.map +1 -1
  20. package/lib/actions.js +1 -1
  21. package/lib/controller/Controller.d.ts +108 -5
  22. package/lib/controller/Controller.d.ts.map +1 -1
  23. package/lib/controller/Controller.js +96 -8
  24. package/lib/index.d.ts +2 -0
  25. package/lib/index.d.ts.map +1 -1
  26. package/lib/index.js +3 -4
  27. package/lib/manager/SubscriptionManager.d.ts.map +1 -1
  28. package/lib/manager/SubscriptionManager.js +1 -1
  29. package/lib/manager/applyManager.d.ts.map +1 -1
  30. package/lib/manager/applyManager.js +3 -7
  31. package/lib/manager/initManager.d.ts +4 -0
  32. package/lib/manager/initManager.d.ts.map +1 -0
  33. package/lib/manager/initManager.js +15 -0
  34. package/lib/state/GCPolicy.d.ts +55 -0
  35. package/lib/state/GCPolicy.d.ts.map +1 -0
  36. package/lib/state/GCPolicy.js +151 -0
  37. package/lib/state/reducer/createReducer.js +5 -2
  38. package/lib/state/reducer/expireReducer.d.ts +1 -0
  39. package/lib/state/reducer/expireReducer.d.ts.map +1 -1
  40. package/lib/state/reducer/invalidateReducer.d.ts +1 -0
  41. package/lib/state/reducer/invalidateReducer.d.ts.map +1 -1
  42. package/lib/state/reducer/setReducer.d.ts +3 -2
  43. package/lib/state/reducer/setReducer.d.ts.map +1 -1
  44. package/lib/state/reducer/setResponseReducer.d.ts +4 -2
  45. package/lib/state/reducer/setResponseReducer.d.ts.map +1 -1
  46. package/lib/state/reducer/setResponseReducer.js +4 -2
  47. package/lib/types.d.ts +1 -0
  48. package/lib/types.d.ts.map +1 -1
  49. package/lib/types.js +1 -1
  50. package/package.json +10 -5
  51. package/src/actions.ts +2 -1
  52. package/src/controller/Controller.ts +205 -8
  53. package/src/controller/__tests__/Controller.ts +8 -4
  54. package/src/controller/__tests__/__snapshots__/get.ts.snap +7 -0
  55. package/src/controller/__tests__/__snapshots__/getResponse.ts.snap +15 -0
  56. package/src/controller/__tests__/get.ts +45 -17
  57. package/src/controller/__tests__/getResponse.ts +46 -0
  58. package/src/index.ts +2 -6
  59. package/src/manager/SubscriptionManager.ts +0 -1
  60. package/src/manager/applyManager.ts +3 -4
  61. package/src/manager/initManager.ts +21 -0
  62. package/src/state/GCPolicy.ts +197 -0
  63. package/src/state/__tests__/GCPolicy.test.ts +258 -0
  64. package/src/state/__tests__/__snapshots__/reducer.ts.snap +2 -0
  65. package/src/state/__tests__/reducer.ts +4 -4
  66. package/src/state/reducer/createReducer.ts +1 -1
  67. package/src/state/reducer/setResponseReducer.ts +3 -1
  68. package/src/types.ts +1 -0
  69. package/ts3.4/actions.d.ts +2 -5
  70. package/ts3.4/controller/Controller.d.ts +141 -5
  71. package/ts3.4/index.d.ts +2 -0
  72. package/ts3.4/manager/initManager.d.ts +4 -0
  73. package/ts3.4/state/GCPolicy.d.ts +55 -0
  74. package/ts3.4/state/reducer/expireReducer.d.ts +1 -0
  75. package/ts3.4/state/reducer/invalidateReducer.d.ts +1 -0
  76. package/ts3.4/state/reducer/setReducer.d.ts +3 -2
  77. package/ts3.4/state/reducer/setResponseReducer.d.ts +4 -2
  78. package/ts3.4/types.d.ts +1 -0
@@ -1,4 +1,6 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
1
2
  var _DevToolsManager;
3
+ import _reduceInstanceProperty from "core-js-pure/stable/instance/reduce.js";
2
4
  import createReducer from '../state/reducer/createReducer.js';
3
5
  let DEFAULT_CONFIG = {};
4
6
  if (process.env.NODE_ENV !== 'production') {
@@ -43,7 +45,7 @@ if (process.env.NODE_ENV !== 'production') {
43
45
  },
44
46
  actionSanitizer: action => {
45
47
  if (!('endpoint' in action)) return action;
46
- return Object.assign({}, action, {
48
+ return _extends({}, action, {
47
49
  endpoint: serializeEndpoint(action.endpoint)
48
50
  });
49
51
  },
@@ -77,7 +79,7 @@ export default class DevToolsManager {
77
79
  this.actions = [];
78
80
  this.maxBufferLength = 100;
79
81
  /* istanbul ignore next */
80
- this.devTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__.connect(Object.assign({}, DEFAULT_CONFIG, config));
82
+ this.devTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__.connect(_extends({}, DEFAULT_CONFIG, config));
81
83
  // we cut it in half so we should double so we don't lose
82
84
  if (config != null && config.maxAge) this.maxBufferLength = config.maxAge * 2;
83
85
  if (skipLogging) this.skipLogging = skipLogging;
@@ -146,8 +148,9 @@ _DevToolsManager = DevToolsManager;
146
148
  state = controller.getState();
147
149
  }
148
150
  ret.then(() => {
151
+ var _context;
149
152
  if (shouldSkip) return;
150
- this.handleAction(action, state.optimistic.reduce(reducer, state));
153
+ this.handleAction(action, _reduceInstanceProperty(_context = state.optimistic).call(_context, reducer, state));
151
154
  });
152
155
  return ret;
153
156
  };
@@ -156,4 +159,4 @@ _DevToolsManager = DevToolsManager;
156
159
  _DevToolsManager.prototype.middleware = () => next => action => next(action);
157
160
  }
158
161
  })();
159
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVSZWR1Y2VyIiwiREVGQVVMVF9DT05GSUciLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJfZ2xvYmFsVGhpcyRkb2N1bWVudCIsImV4dHJhRW5kcG9pbnRLZXlzIiwic2VyaWFsaXplRW5kcG9pbnQiLCJlbmRwb2ludCIsIl90b0pTT04iLCJfZW5kcG9pbnQkc2NoZW1hIiwic2VyaWFsIiwibmFtZSIsInNjaGVtYSIsInRvSlNPTiIsInNpZGVFZmZlY3QiLCJmb3JFYWNoIiwia2V5IiwiSEFTSU5UTCIsIkludGwiLCJnbG9iYWxUaGlzIiwiZG9jdW1lbnQiLCJ0aXRsZSIsImF1dG9QYXVzZSIsImZlYXR1cmVzIiwicGF1c2UiLCJsb2NrIiwicGVyc2lzdCIsImV4cG9ydCIsImltcG9ydCIsImp1bXAiLCJza2lwIiwicmVvcmRlciIsImRpc3BhdGNoIiwidGVzdCIsImFjdGlvblNhbml0aXplciIsImFjdGlvbiIsIk9iamVjdCIsImFzc2lnbiIsInNlcmlhbGl6ZSIsIm9wdGlvbnMiLCJ1bmRlZmluZWQiLCJyZXBsYWNlciIsInZhbHVlIiwiaXNGaW5pdGUiLCJlbmRzV2l0aCIsIkRhdGVUaW1lRm9ybWF0IiwiaG91ciIsIm1pbnV0ZSIsInNlY29uZCIsImZyYWN0aW9uYWxTZWNvbmREaWdpdHMiLCJmb3JtYXQiLCJEZXZUb29sc01hbmFnZXIiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsInNraXBMb2dnaW5nIiwic3RhcnRlZCIsImFjdGlvbnMiLCJtYXhCdWZmZXJMZW5ndGgiLCJkZXZUb29scyIsIndpbmRvdyIsIl9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18iLCJjb25uZWN0IiwibWF4QWdlIiwiaGFuZGxlQWN0aW9uIiwic3RhdGUiLCJzZW5kIiwibGVuZ3RoIiwic2xpY2UiLCJwdXNoIiwiaW5pdCIsInN1YnNjcmliZSIsIm1zZyIsInR5cGUiLCJwYXlsb2FkIiwiY29udHJvbGxlciIsInJlc2V0RW50aXJlU3RvcmUiLCJjbGVhbnVwIiwiX0RldlRvb2xzTWFuYWdlciIsInByb3RvdHlwZSIsIm1pZGRsZXdhcmUiLCJuZXh0IiwicmVkdWNlciIsImdldFN0YXRlIiwiX3RoaXMkc2tpcExvZ2dpbmciLCJzaG91bGRTa2lwIiwiY2FsbCIsInJldCIsInRoZW4iLCJvcHRpbWlzdGljIiwicmVkdWNlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvRGV2dG9vbHNNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGV2VG9vbHNDb25maWcgfSBmcm9tICcuL2RldnRvb2xzVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBDb250cm9sbGVyLCBFbmRwb2ludEludGVyZmFjZSB9IGZyb20gJy4uL2luZGV4LmpzJztcbmltcG9ydCB0eXBlIHsgTWlkZGxld2FyZSB9IGZyb20gJy4uL21pZGRsZXdhcmVUeXBlcy5qcyc7XG5pbXBvcnQgY3JlYXRlUmVkdWNlciBmcm9tICcuLi9zdGF0ZS9yZWR1Y2VyL2NyZWF0ZVJlZHVjZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBNYW5hZ2VyLCBTdGF0ZSwgQWN0aW9uVHlwZXMgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCB0eXBlIHsgRGV2VG9vbHNDb25maWcgfTtcblxubGV0IERFRkFVTFRfQ09ORklHID0ge307XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGNvbnN0IGV4dHJhRW5kcG9pbnRLZXlzID0gW1xuICAgICdkYXRhRXhwaXJ5TGVuZ3RoJyxcbiAgICAnZXJyb3JFeHBpcnlMZW5ndGgnLFxuICAgICdlcnJvclBvbGljeScsXG4gICAgJ2ludmFsaWRJZlN0YWxlJyxcbiAgICAncG9sbEZyZXF1ZW5jeScsXG4gICAgJ2dldE9wdGltaXN0aWNSZXNwb25zZScsXG4gICAgJ3VwZGF0ZScsXG4gIF07XG5cbiAgZnVuY3Rpb24gc2VyaWFsaXplRW5kcG9pbnQoZW5kcG9pbnQ6IEVuZHBvaW50SW50ZXJmYWNlKSB7XG4gICAgY29uc3Qgc2VyaWFsOiBhbnkgPSB7XG4gICAgICBuYW1lOiBlbmRwb2ludC5uYW1lLFxuICAgICAgc2NoZW1hOiAoZW5kcG9pbnQuc2NoZW1hIGFzIGFueSk/LnRvSlNPTj8uKCkgPz8gZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgc2lkZUVmZmVjdDogZW5kcG9pbnQuc2lkZUVmZmVjdCxcbiAgICB9O1xuICAgIGV4dHJhRW5kcG9pbnRLZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGlmIChrZXkgaW4gZW5kcG9pbnQpXG4gICAgICAgIHNlcmlhbFtrZXldID0gZW5kcG9pbnRba2V5IGFzIGtleW9mIEVuZHBvaW50SW50ZXJmYWNlXTtcbiAgICB9KTtcbiAgICByZXR1cm4gc2VyaWFsO1xuICB9XG5cbiAgY29uc3QgSEFTSU5UTCA9IHR5cGVvZiBJbnRsICE9PSAndW5kZWZpbmVkJztcbiAgREVGQVVMVF9DT05GSUcgPSB7XG4gICAgbmFtZTogYERhdGEgQ2xpZW50OiAke2dsb2JhbFRoaXMuZG9jdW1lbnQ/LnRpdGxlfWAsXG4gICAgYXV0b1BhdXNlOiB0cnVlLFxuICAgIGZlYXR1cmVzOiB7XG4gICAgICBwYXVzZTogdHJ1ZSwgLy8gc3RhcnQvcGF1c2UgcmVjb3JkaW5nIG9mIGRpc3BhdGNoZWQgYWN0aW9uc1xuICAgICAgbG9jazogdHJ1ZSwgLy8gbG9jay91bmxvY2sgZGlzcGF0Y2hpbmcgYWN0aW9ucyBhbmQgc2lkZSBlZmZlY3RzXG4gICAgICBwZXJzaXN0OiBmYWxzZSwgLy8gcGVyc2lzdCBzdGF0ZXMgb24gcGFnZSByZWxvYWRpbmdcbiAgICAgIGV4cG9ydDogdHJ1ZSwgLy8gZXhwb3J0IGhpc3Rvcnkgb2YgYWN0aW9ucyBpbiBhIGZpbGVcbiAgICAgIGltcG9ydDogJ2N1c3RvbScsIC8vIGltcG9ydCBoaXN0b3J5IG9mIGFjdGlvbnMgZnJvbSBhIGZpbGVcbiAgICAgIGp1bXA6IHRydWUsIC8vIGp1bXAgYmFjayBhbmQgZm9ydGggKHRpbWUgdHJhdmVsbGluZylcbiAgICAgIHNraXA6IHRydWUsIC8vIHNraXAgKGNhbmNlbCkgYWN0aW9uc1xuICAgICAgcmVvcmRlcjogdHJ1ZSwgLy8gZHJhZyBhbmQgZHJvcCBhY3Rpb25zIGluIHRoZSBoaXN0b3J5IGxpc3RcbiAgICAgIGRpc3BhdGNoOiBmYWxzZSwgLy8gZGlzcGF0Y2ggY3VzdG9tIGFjdGlvbnMgb3IgYWN0aW9uIGNyZWF0b3JzXG4gICAgICB0ZXN0OiBmYWxzZSwgLy8gZ2VuZXJhdGUgdGVzdHMgZm9yIHRoZSBzZWxlY3RlZCBhY3Rpb25zXG4gICAgfSxcbiAgICBhY3Rpb25TYW5pdGl6ZXI6IChhY3Rpb246IEFjdGlvblR5cGVzKSA9PiB7XG4gICAgICBpZiAoISgnZW5kcG9pbnQnIGluIGFjdGlvbikpIHJldHVybiBhY3Rpb247XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5hY3Rpb24sXG4gICAgICAgIGVuZHBvaW50OiBzZXJpYWxpemVFbmRwb2ludChhY3Rpb24uZW5kcG9pbnQpLFxuICAgICAgfTtcbiAgICB9LFxuICAgIHNlcmlhbGl6ZToge1xuICAgICAgb3B0aW9uczogdW5kZWZpbmVkLFxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIHJlcGxhY2VyOlxuICAgICAgICBIQVNJTlRMID9cbiAgICAgICAgICAoa2V5OiBzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIHZhbHVlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiZcbiAgICAgICAgICAgICAgdHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiZcbiAgICAgICAgICAgICAgaXNGaW5pdGUodmFsdWUpICYmXG4gICAgICAgICAgICAgIChrZXkgPT09ICdkYXRlJyB8fCBrZXkuZW5kc1dpdGgoJ0F0JykpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIEludGwuRGF0ZVRpbWVGb3JtYXQoJ2VuLVVTJywge1xuICAgICAgICAgICAgICAgIGhvdXI6ICdudW1lcmljJyxcbiAgICAgICAgICAgICAgICBtaW51dGU6ICdudW1lcmljJyxcbiAgICAgICAgICAgICAgICBzZWNvbmQ6ICdudW1lcmljJyxcbiAgICAgICAgICAgICAgICBmcmFjdGlvbmFsU2Vjb25kRGlnaXRzOiAzLFxuICAgICAgICAgICAgICB9KS5mb3JtYXQodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfSxcbiAgfTtcbn1cblxuLyoqIEludGVncmF0ZXMgd2l0aCBodHRwczovL2dpdGh1Yi5jb20vcmVkdXhqcy9yZWR1eC1kZXZ0b29sc1xuICpcbiAqIE9wdGlvbnM6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWR1eGpzL3JlZHV4LWRldnRvb2xzL2Jsb2IvbWFpbi9leHRlbnNpb24vZG9jcy9BUEkvQXJndW1lbnRzLm1kXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvRGV2VG9vbHNNYW5hZ2VyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERldlRvb2xzTWFuYWdlciBpbXBsZW1lbnRzIE1hbmFnZXIge1xuICBkZWNsYXJlIG1pZGRsZXdhcmU6IE1pZGRsZXdhcmU7XG4gIGRlY2xhcmUgcHJvdGVjdGVkIGRldlRvb2xzOiB1bmRlZmluZWQgfCBhbnk7XG4gIHByb3RlY3RlZCBzdGFydGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBhY3Rpb25zOiBbQWN0aW9uVHlwZXMsIFN0YXRlPHVua25vd24+XVtdID0gW107XG4gIGRlY2xhcmUgcHJvdGVjdGVkIGNvbnRyb2xsZXI6IENvbnRyb2xsZXI7XG4gIGRlY2xhcmUgc2tpcExvZ2dpbmc/OiAoYWN0aW9uOiBBY3Rpb25UeXBlcykgPT4gYm9vbGVhbjtcbiAgbWF4QnVmZmVyTGVuZ3RoID0gMTAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvbmZpZz86IERldlRvb2xzQ29uZmlnLFxuICAgIHNraXBMb2dnaW5nPzogKGFjdGlvbjogQWN0aW9uVHlwZXMpID0+IGJvb2xlYW4sXG4gICkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgdGhpcy5kZXZUb29scyA9XG4gICAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgKHdpbmRvdyBhcyBhbnkpLl9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18gJiZcbiAgICAgICh3aW5kb3cgYXMgYW55KS5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fLmNvbm5lY3Qoe1xuICAgICAgICAuLi5ERUZBVUxUX0NPTkZJRyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgfSk7XG4gICAgLy8gd2UgY3V0IGl0IGluIGhhbGYgc28gd2Ugc2hvdWxkIGRvdWJsZSBzbyB3ZSBkb24ndCBsb3NlXG4gICAgaWYgKGNvbmZpZz8ubWF4QWdlKSB0aGlzLm1heEJ1ZmZlckxlbmd0aCA9IGNvbmZpZy5tYXhBZ2UgKiAyO1xuICAgIGlmIChza2lwTG9nZ2luZykgdGhpcy5za2lwTG9nZ2luZyA9IHNraXBMb2dnaW5nO1xuICB9XG5cbiAgc3RhdGljIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB0aGlzLnByb3RvdHlwZS5taWRkbGV3YXJlID0gZnVuY3Rpb24gKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRldlRvb2xzKSByZXR1cm4gbmV4dCA9PiBhY3Rpb24gPT4gbmV4dChhY3Rpb24pO1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuICAgICAgICBjb25zdCByZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihjb250cm9sbGVyIGFzIGFueSk7XG4gICAgICAgIGxldCBzdGF0ZSA9IGNvbnRyb2xsZXIuZ2V0U3RhdGUoKTtcbiAgICAgICAgcmV0dXJuIG5leHQgPT4gYWN0aW9uID0+IHtcbiAgICAgICAgICBjb25zdCBzaG91bGRTa2lwID0gdGhpcy5za2lwTG9nZ2luZz8uKGFjdGlvbik7XG4gICAgICAgICAgY29uc3QgcmV0ID0gbmV4dChhY3Rpb24pO1xuICAgICAgICAgIGlmICh0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgICAgICAgIC8vIHdlIHRyYWNrIHN0YXRlIGNoYW5nZXMgaGVyZSBzaW5jZSBnZXRTdGF0ZSgpIHdpbGwgb25seSB1cGRhdGUgYWZ0ZXIgYSBiYXRjaCBjb21taXRcbiAgICAgICAgICAgIHN0YXRlID0gcmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhdGUgPSBjb250cm9sbGVyLmdldFN0YXRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChzaG91bGRTa2lwKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUFjdGlvbihhY3Rpb24sIHN0YXRlLm9wdGltaXN0aWMucmVkdWNlKHJlZHVjZXIsIHN0YXRlKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvdG90eXBlLm1pZGRsZXdhcmUgPSAoKSA9PiBuZXh0ID0+IGFjdGlvbiA9PiBuZXh0KGFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQWN0aW9uKGFjdGlvbjogYW55LCBzdGF0ZTogYW55KSB7XG4gICAgaWYgKHRoaXMuc3RhcnRlZCkge1xuICAgICAgdGhpcy5kZXZUb29scy5zZW5kKGFjdGlvbiwgc3RhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBhdm9pZCB0aGlzIGdldHRpbmcgdG9vIGJpZyBpbiBjYXNlIHRoaXMgaXMgbG9uZyBydW5uaW5nXG4gICAgICAvLyB3ZSBjdXQgaW4gaGFsZiBzbyB3ZSBhcmVuJ3QgY29uc3RhbnRseSByZWFsbG9jYXRpbmdcbiAgICAgIGlmICh0aGlzLmFjdGlvbnMubGVuZ3RoID4gdGhpcy5tYXhCdWZmZXJMZW5ndGgpXG4gICAgICAgIHRoaXMuYWN0aW9ucyA9IHRoaXMuYWN0aW9ucy5zbGljZSh0aGlzLm1heEJ1ZmZlckxlbmd0aCAvIDIpO1xuICAgICAgLy8gcXVldWUgYWN0aW9uc1xuICAgICAgdGhpcy5hY3Rpb25zLnB1c2goW2FjdGlvbiwgc3RhdGVdKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gaW5pdGlhbCBzdGF0ZSBpcyByZWFkeSAqL1xuICBpbml0KHN0YXRlOiBTdGF0ZTxhbnk+KSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdGhpcy5kZXZUb29scykge1xuICAgICAgdGhpcy5kZXZUb29scy5pbml0KHN0YXRlKTtcbiAgICAgIHRoaXMuZGV2VG9vbHMuc3Vic2NyaWJlKChtc2c6IGFueSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKG1zZy50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnU1RBUlQnOlxuICAgICAgICAgICAgdGhpcy5zdGFydGVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5hY3Rpb25zLmZvckVhY2goKFthY3Rpb24sIHN0YXRlXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQWN0aW9uKGFjdGlvbiwgc3RhdGUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdGhpcy5hY3Rpb25zID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdTVE9QJzpcbiAgICAgICAgICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnRElTUEFUQ0gnOlxuICAgICAgICAgICAgaWYgKG1zZy5wYXlsb2FkLnR5cGUgPT09ICdSRVNFVCcpIHtcbiAgICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLnJlc2V0RW50aXJlU3RvcmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogRW5zdXJlcyBhbGwgc3Vic2NyaXB0aW9ucyBhcmUgY2xlYW5lZCB1cC4gKi9cbiAgY2xlYW51cCgpIHt9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFHQSxPQUFPQSxhQUFhLE1BQU0sbUNBQW1DO0FBSzdELElBQUlDLGNBQWMsR0FBRyxDQUFDLENBQUM7QUFFdkIsSUFBSUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7RUFBQSxJQUFBQyxvQkFBQTtFQUN6QyxNQUFNQyxpQkFBaUIsR0FBRyxDQUN4QixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixRQUFRLENBQ1Q7RUFFRCxTQUFTQyxpQkFBaUJBLENBQUNDLFFBQTJCLEVBQUU7SUFBQSxJQUFBQyxPQUFBLEVBQUFDLGdCQUFBO0lBQ3RELE1BQU1DLE1BQVcsR0FBRztNQUNsQkMsSUFBSSxFQUFFSixRQUFRLENBQUNJLElBQUk7TUFDbkJDLE1BQU0sR0FBQUosT0FBQSxJQUFBQyxnQkFBQSxHQUFHRixRQUFRLENBQUNLLE1BQU0sYUFBaEJILGdCQUFBLENBQTBCSSxNQUFNLG9CQUFoQ0osZ0JBQUEsQ0FBMEJJLE1BQU0sQ0FBRyxDQUFDLFlBQUFMLE9BQUEsR0FBSUQsUUFBUSxDQUFDSyxNQUFNO01BQy9ERSxVQUFVLEVBQUVQLFFBQVEsQ0FBQ087SUFDdkIsQ0FBQztJQUNEVCxpQkFBaUIsQ0FBQ1UsT0FBTyxDQUFDQyxHQUFHLElBQUk7TUFDL0IsSUFBSUEs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
162
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVSZWR1Y2VyIiwiREVGQVVMVF9DT05GSUciLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJfZ2xvYmFsVGhpcyRkb2N1bWVudCIsImV4dHJhRW5kcG9pbnRLZXlzIiwic2VyaWFsaXplRW5kcG9pbnQiLCJlbmRwb2ludCIsIl90b0pTT04iLCJfZW5kcG9pbnQkc2NoZW1hIiwic2VyaWFsIiwibmFtZSIsInNjaGVtYSIsInRvSlNPTiIsInNpZGVFZmZlY3QiLCJmb3JFYWNoIiwia2V5IiwiSEFTSU5UTCIsIkludGwiLCJnbG9iYWxUaGlzIiwiZG9jdW1lbnQiLCJ0aXRsZSIsImF1dG9QYXVzZSIsImZlYXR1cmVzIiwicGF1c2UiLCJsb2NrIiwicGVyc2lzdCIsImV4cG9ydCIsImltcG9ydCIsImp1bXAiLCJza2lwIiwicmVvcmRlciIsImRpc3BhdGNoIiwidGVzdCIsImFjdGlvblNhbml0aXplciIsImFjdGlvbiIsIl9leHRlbmRzIiwic2VyaWFsaXplIiwib3B0aW9ucyIsInVuZGVmaW5lZCIsInJlcGxhY2VyIiwidmFsdWUiLCJpc0Zpbml0ZSIsImVuZHNXaXRoIiwiRGF0ZVRpbWVGb3JtYXQiLCJob3VyIiwibWludXRlIiwic2Vjb25kIiwiZnJhY3Rpb25hbFNlY29uZERpZ2l0cyIsImZvcm1hdCIsIkRldlRvb2xzTWFuYWdlciIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwic2tpcExvZ2dpbmciLCJzdGFydGVkIiwiYWN0aW9ucyIsIm1heEJ1ZmZlckxlbmd0aCIsImRldlRvb2xzIiwid2luZG93IiwiX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXyIsImNvbm5lY3QiLCJtYXhBZ2UiLCJoYW5kbGVBY3Rpb24iLCJzdGF0ZSIsInNlbmQiLCJsZW5ndGgiLCJzbGljZSIsInB1c2giLCJpbml0Iiwic3Vic2NyaWJlIiwibXNnIiwidHlwZSIsInBheWxvYWQiLCJjb250cm9sbGVyIiwicmVzZXRFbnRpcmVTdG9yZSIsImNsZWFudXAiLCJfRGV2VG9vbHNNYW5hZ2VyIiwicHJvdG90eXBlIiwibWlkZGxld2FyZSIsIm5leHQiLCJyZWR1Y2VyIiwiZ2V0U3RhdGUiLCJfdGhpcyRza2lwTG9nZ2luZyIsInNob3VsZFNraXAiLCJjYWxsIiwicmV0IiwidGhlbiIsIl9jb250ZXh0IiwiX3JlZHVjZUluc3RhbmNlUHJvcGVydHkiLCJvcHRpbWlzdGljIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvRGV2dG9vbHNNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGV2VG9vbHNDb25maWcgfSBmcm9tICcuL2RldnRvb2xzVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBDb250cm9sbGVyLCBFbmRwb2ludEludGVyZmFjZSB9IGZyb20gJy4uL2luZGV4LmpzJztcbmltcG9ydCB0eXBlIHsgTWlkZGxld2FyZSB9IGZyb20gJy4uL21pZGRsZXdhcmVUeXBlcy5qcyc7XG5pbXBvcnQgY3JlYXRlUmVkdWNlciBmcm9tICcuLi9zdGF0ZS9yZWR1Y2VyL2NyZWF0ZVJlZHVjZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBNYW5hZ2VyLCBTdGF0ZSwgQWN0aW9uVHlwZXMgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCB0eXBlIHsgRGV2VG9vbHNDb25maWcgfTtcblxubGV0IERFRkFVTFRfQ09ORklHID0ge307XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGNvbnN0IGV4dHJhRW5kcG9pbnRLZXlzID0gW1xuICAgICdkYXRhRXhwaXJ5TGVuZ3RoJyxcbiAgICAnZXJyb3JFeHBpcnlMZW5ndGgnLFxuICAgICdlcnJvclBvbGljeScsXG4gICAgJ2ludmFsaWRJZlN0YWxlJyxcbiAgICAncG9sbEZyZXF1ZW5jeScsXG4gICAgJ2dldE9wdGltaXN0aWNSZXNwb25zZScsXG4gICAgJ3VwZGF0ZScsXG4gIF07XG5cbiAgZnVuY3Rpb24gc2VyaWFsaXplRW5kcG9pbnQoZW5kcG9pbnQ6IEVuZHBvaW50SW50ZXJmYWNlKSB7XG4gICAgY29uc3Qgc2VyaWFsOiBhbnkgPSB7XG4gICAgICBuYW1lOiBlbmRwb2ludC5uYW1lLFxuICAgICAgc2NoZW1hOiAoZW5kcG9pbnQuc2NoZW1hIGFzIGFueSk/LnRvSlNPTj8uKCkgPz8gZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgc2lkZUVmZmVjdDogZW5kcG9pbnQuc2lkZUVmZmVjdCxcbiAgICB9O1xuICAgIGV4dHJhRW5kcG9pbnRLZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGlmIChrZXkgaW4gZW5kcG9pbnQpXG4gICAgICAgIHNlcmlhbFtrZXldID0gZW5kcG9pbnRba2V5IGFzIGtleW9mIEVuZHBvaW50SW50ZXJmYWNlXTtcbiAgICB9KTtcbiAgICByZXR1cm4gc2VyaWFsO1xuICB9XG5cbiAgY29uc3QgSEFTSU5UTCA9IHR5cGVvZiBJbnRsICE9PSAndW5kZWZpbmVkJztcbiAgREVGQVVMVF9DT05GSUcgPSB7XG4gICAgbmFtZTogYERhdGEgQ2xpZW50OiAke2dsb2JhbFRoaXMuZG9jdW1lbnQ/LnRpdGxlfWAsXG4gICAgYXV0b1BhdXNlOiB0cnVlLFxuICAgIGZlYXR1cmVzOiB7XG4gICAgICBwYXVzZTogdHJ1ZSwgLy8gc3RhcnQvcGF1c2UgcmVjb3JkaW5nIG9mIGRpc3BhdGNoZWQgYWN0aW9uc1xuICAgICAgbG9jazogdHJ1ZSwgLy8gbG9jay91bmxvY2sgZGlzcGF0Y2hpbmcgYWN0aW9ucyBhbmQgc2lkZSBlZmZlY3RzXG4gICAgICBwZXJzaXN0OiBmYWxzZSwgLy8gcGVyc2lzdCBzdGF0ZXMgb24gcGFnZSByZWxvYWRpbmdcbiAgICAgIGV4cG9ydDogdHJ1ZSwgLy8gZXhwb3J0IGhpc3Rvcnkgb2YgYWN0aW9ucyBpbiBhIGZpbGVcbiAgICAgIGltcG9ydDogJ2N1c3RvbScsIC8vIGltcG9ydCBoaXN0b3J5IG9mIGFjdGlvbnMgZnJvbSBhIGZpbGVcbiAgICAgIGp1bXA6IHRydWUsIC8vIGp1bXAgYmFjayBhbmQgZm9ydGggKHRpbWUgdHJhdmVsbGluZylcbiAgICAgIHNraXA6IHRydWUsIC8vIHNraXAgKGNhbmNlbCkgYWN0aW9uc1xuICAgICAgcmVvcmRlcjogdHJ1ZSwgLy8gZHJhZyBhbmQgZHJvcCBhY3Rpb25zIGluIHRoZSBoaXN0b3J5IGxpc3RcbiAgICAgIGRpc3BhdGNoOiBmYWxzZSwgLy8gZGlzcGF0Y2ggY3VzdG9tIGFjdGlvbnMgb3IgYWN0aW9uIGNyZWF0b3JzXG4gICAgICB0ZXN0OiBmYWxzZSwgLy8gZ2VuZXJhdGUgdGVzdHMgZm9yIHRoZSBzZWxlY3RlZCBhY3Rpb25zXG4gICAgfSxcbiAgICBhY3Rpb25TYW5pdGl6ZXI6IChhY3Rpb246IEFjdGlvblR5cGVzKSA9PiB7XG4gICAgICBpZiAoISgnZW5kcG9pbnQnIGluIGFjdGlvbikpIHJldHVybiBhY3Rpb247XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5hY3Rpb24sXG4gICAgICAgIGVuZHBvaW50OiBzZXJpYWxpemVFbmRwb2ludChhY3Rpb24uZW5kcG9pbnQpLFxuICAgICAgfTtcbiAgICB9LFxuICAgIHNlcmlhbGl6ZToge1xuICAgICAgb3B0aW9uczogdW5kZWZpbmVkLFxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIHJlcGxhY2VyOlxuICAgICAgICBIQVNJTlRMID9cbiAgICAgICAgICAoa2V5OiBzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIHZhbHVlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiZcbiAgICAgICAgICAgICAgdHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiZcbiAgICAgICAgICAgICAgaXNGaW5pdGUodmFsdWUpICYmXG4gICAgICAgICAgICAgIChrZXkgPT09ICdkYXRlJyB8fCBrZXkuZW5kc1dpdGgoJ0F0JykpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIEludGwuRGF0ZVRpbWVGb3JtYXQoJ2VuLVVTJywge1xuICAgICAgICAgICAgICAgIGhvdXI6ICdudW1lcmljJyxcbiAgICAgICAgICAgICAgICBtaW51dGU6ICdudW1lcmljJyxcbiAgICAgICAgICAgICAgICBzZWNvbmQ6ICdudW1lcmljJyxcbiAgICAgICAgICAgICAgICBmcmFjdGlvbmFsU2Vjb25kRGlnaXRzOiAzLFxuICAgICAgICAgICAgICB9KS5mb3JtYXQodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfSxcbiAgfTtcbn1cblxuLyoqIEludGVncmF0ZXMgd2l0aCBodHRwczovL2dpdGh1Yi5jb20vcmVkdXhqcy9yZWR1eC1kZXZ0b29sc1xuICpcbiAqIE9wdGlvbnM6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWR1eGpzL3JlZHV4LWRldnRvb2xzL2Jsb2IvbWFpbi9leHRlbnNpb24vZG9jcy9BUEkvQXJndW1lbnRzLm1kXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvRGV2VG9vbHNNYW5hZ2VyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERldlRvb2xzTWFuYWdlciBpbXBsZW1lbnRzIE1hbmFnZXIge1xuICBkZWNsYXJlIG1pZGRsZXdhcmU6IE1pZGRsZXdhcmU7XG4gIGRlY2xhcmUgcHJvdGVjdGVkIGRldlRvb2xzOiB1bmRlZmluZWQgfCBhbnk7XG4gIHByb3RlY3RlZCBzdGFydGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBhY3Rpb25zOiBbQWN0aW9uVHlwZXMsIFN0YXRlPHVua25vd24+XVtdID0gW107XG4gIGRlY2xhcmUgcHJvdGVjdGVkIGNvbnRyb2xsZXI6IENvbnRyb2xsZXI7XG4gIGRlY2xhcmUgc2tpcExvZ2dpbmc/OiAoYWN0aW9uOiBBY3Rpb25UeXBlcykgPT4gYm9vbGVhbjtcbiAgbWF4QnVmZmVyTGVuZ3RoID0gMTAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvbmZpZz86IERldlRvb2xzQ29uZmlnLFxuICAgIHNraXBMb2dnaW5nPzogKGFjdGlvbjogQWN0aW9uVHlwZXMpID0+IGJvb2xlYW4sXG4gICkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgdGhpcy5kZXZUb29scyA9XG4gICAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgKHdpbmRvdyBhcyBhbnkpLl9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18gJiZcbiAgICAgICh3aW5kb3cgYXMgYW55KS5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fLmNvbm5lY3Qoe1xuICAgICAgICAuLi5ERUZBVUxUX0NPTkZJRyxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgfSk7XG4gICAgLy8gd2UgY3V0IGl0IGluIGhhbGYgc28gd2Ugc2hvdWxkIGRvdWJsZSBzbyB3ZSBkb24ndCBsb3NlXG4gICAgaWYgKGNvbmZpZz8ubWF4QWdlKSB0aGlzLm1heEJ1ZmZlckxlbmd0aCA9IGNvbmZpZy5tYXhBZ2UgKiAyO1xuICAgIGlmIChza2lwTG9nZ2luZykgdGhpcy5za2lwTG9nZ2luZyA9IHNraXBMb2dnaW5nO1xuICB9XG5cbiAgc3RhdGljIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB0aGlzLnByb3RvdHlwZS5taWRkbGV3YXJlID0gZnVuY3Rpb24gKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRldlRvb2xzKSByZXR1cm4gbmV4dCA9PiBhY3Rpb24gPT4gbmV4dChhY3Rpb24pO1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuICAgICAgICBjb25zdCByZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihjb250cm9sbGVyIGFzIGFueSk7XG4gICAgICAgIGxldCBzdGF0ZSA9IGNvbnRyb2xsZXIuZ2V0U3RhdGUoKTtcbiAgICAgICAgcmV0dXJuIG5leHQgPT4gYWN0aW9uID0+IHtcbiAgICAgICAgICBjb25zdCBzaG91bGRTa2lwID0gdGhpcy5za2lwTG9nZ2luZz8uKGFjdGlvbik7XG4gICAgICAgICAgY29uc3QgcmV0ID0gbmV4dChhY3Rpb24pO1xuICAgICAgICAgIGlmICh0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgICAgICAgIC8vIHdlIHRyYWNrIHN0YXRlIGNoYW5nZXMgaGVyZSBzaW5jZSBnZXRTdGF0ZSgpIHdpbGwgb25seSB1cGRhdGUgYWZ0ZXIgYSBiYXRjaCBjb21taXRcbiAgICAgICAgICAgIHN0YXRlID0gcmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhdGUgPSBjb250cm9sbGVyLmdldFN0YXRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChzaG91bGRTa2lwKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUFjdGlvbihhY3Rpb24sIHN0YXRlLm9wdGltaXN0aWMucmVkdWNlKHJlZHVjZXIsIHN0YXRlKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvdG90eXBlLm1pZGRsZXdhcmUgPSAoKSA9PiBuZXh0ID0+IGFjdGlvbiA9PiBuZXh0KGFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQWN0aW9uKGFjdGlvbjogYW55LCBzdGF0ZTogYW55KSB7XG4gICAgaWYgKHRoaXMuc3RhcnRlZCkge1xuICAgICAgdGhpcy5kZXZUb29scy5zZW5kKGFjdGlvbiwgc3RhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBhdm9pZCB0aGlzIGdldHRpbmcgdG9vIGJpZyBpbiBjYXNlIHRoaXMgaXMgbG9uZyBydW5uaW5nXG4gICAgICAvLyB3ZSBjdXQgaW4gaGFsZiBzbyB3ZSBhcmVuJ3QgY29uc3RhbnRseSByZWFsbG9jYXRpbmdcbiAgICAgIGlmICh0aGlzLmFjdGlvbnMubGVuZ3RoID4gdGhpcy5tYXhCdWZmZXJMZW5ndGgpXG4gICAgICAgIHRoaXMuYWN0aW9ucyA9IHRoaXMuYWN0aW9ucy5zbGljZSh0aGlzLm1heEJ1ZmZlckxlbmd0aCAvIDIpO1xuICAgICAgLy8gcXVldWUgYWN0aW9uc1xuICAgICAgdGhpcy5hY3Rpb25zLnB1c2goW2FjdGlvbiwgc3RhdGVdKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gaW5pdGlhbCBzdGF0ZSBpcyByZWFkeSAqL1xuICBpbml0KHN0YXRlOiBTdGF0ZTxhbnk+KSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdGhpcy5kZXZUb29scykge1xuICAgICAgdGhpcy5kZXZUb29scy5pbml0KHN0YXRlKTtcbiAgICAgIHRoaXMuZGV2VG9vbHMuc3Vic2NyaWJlKChtc2c6IGFueSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKG1zZy50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnU1RBUlQnOlxuICAgICAgICAgICAgdGhpcy5zdGFydGVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5hY3Rpb25zLmZvckVhY2goKFthY3Rpb24sIHN0YXRlXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQWN0aW9uKGFjdGlvbiwgc3RhdGUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdGhpcy5hY3Rpb25zID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdTVE9QJzpcbiAgICAgICAgICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnRElTUEFUQ0gnOlxuICAgICAgICAgICAgaWYgKG1zZy5wYXlsb2FkLnR5cGUgPT09ICdSRVNFVCcpIHtcbiAgICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLnJlc2V0RW50aXJlU3RvcmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogRW5zdXJlcyBhbGwgc3Vic2NyaXB0aW9ucyBhcmUgY2xlYW5lZCB1cC4gKi9cbiAgY2xlYW51cCgpIHt9XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUdBLE9BQU9BLGFBQWEsTUFBTSxtQ0FBbUM7QUFLN0QsSUFBSUMsY0FBYyxHQUFHLENBQUMsQ0FBQztBQUV2QixJQUFJQyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLLFlBQVksRUFBRTtFQUFBLElBQUFDLG9CQUFBO0VBQ3pDLE1BQU1DLGlCQUFpQixHQUFHLENBQ3hCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFFBQVEsQ0FDVDtFQUVELFNBQVNDLGlCQUFpQkEsQ0FBQ0MsUUFBMkIsRUFBRTtJQUFBLElBQUFDLE9BQUEsRUFBQUMsZ0JBQUE7SUFDdEQsTUFBTUMsTUFBVyxHQUFHO01BQ2xCQyxJQUFJLEVBQUVKLFFBQVEsQ0FBQ0ksSUFBSTtNQUNuQkMsTUFBTSxHQUFBSixPQUFBLElBQUFDLGdCQUFBLEdBQUdGLFFBQVEsQ0FBQ0ssTUFBTSxhQUFoQkgsZ0JBQUEsQ0FBMEJJLE1BQU0sb0JBQWhDSixnQkFBQSxDQUEwQkksTUFBTSxDQUFHLENBQUMsWUFBQUwsT0FBQSxHQUFJRCxRQUFRLENBQUNLLE1BQU07TUFDL0RFLFVBQVUsRUFBRVAsUUFBUSxDQUFDTztJQUN2QixDQUFDO0lBQ0RULGlCQUFpQixDQUFDVSxPQUFPLENBQUND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
@@ -1,3 +1,4 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
1
2
  import { SET_RESPONSE, FETCH, RESET } from '../actionTypes.js';
2
3
  import { createSetResponse } from '../controller/actions/index.js';
3
4
  import Controller from '../controller/Controller.js';
@@ -62,7 +63,7 @@ export default class NetworkManager {
62
63
  });
63
64
  case RESET:
64
65
  {
65
- const rejectors = Object.assign({}, this.rejectors);
66
+ const rejectors = _extends({}, this.rejectors);
66
67
  this.clearAll();
67
68
  return next(action).then(() => {
68
69
  // there could be external listeners to the promise
@@ -252,4 +253,4 @@ export default class NetworkManager {
252
253
  callback();
253
254
  }
254
255
  }
255
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfUkVTUE9OU0UiLCJGRVRDSCIsIlJFU0VUIiwiY3JlYXRlU2V0UmVzcG9uc2UiLCJDb250cm9sbGVyIiwiUmVzZXRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiTmV0d29ya01hbmFnZXIiLCJkYXRhRXhwaXJ5TGVuZ3RoIiwiZXJyb3JFeHBpcnlMZW5ndGgiLCJmZXRjaGVkIiwiT2JqZWN0IiwiY3JlYXRlIiwicmVzb2x2ZXJzIiwicmVqZWN0b3JzIiwiZmV0Y2hlZEF0IiwiY29udHJvbGxlciIsIm1pZGRsZXdhcmUiLCJuZXh0IiwiYWN0aW9uIiwidHlwZSIsImhhbmRsZUZldGNoIiwiZW5kcG9pbnQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJ1bmRlZmluZWQiLCJzaWRlRWZmZWN0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwia2V5IiwiX2NvbnRyb2xsZXIkZ2V0U3RhdGUkIiwiZXJyb3IiLCJnZXRTdGF0ZSIsIm1ldGEiLCJoYW5kbGVTZXQiLCJhcmdzIiwicmVzcG9uc2UiLCJhc3NpZ24iLCJjbGVhckFsbCIsImsiLCJpbml0IiwiY2xlYW51cERhdGUiLCJjbGVhbnVwIiwiRGF0ZSIsIm5vdyIsInNraXBMb2dnaW5nIiwiYWxsU2V0dGxlZCIsImZldGNoZXMiLCJ2YWx1ZXMiLCJsZW5ndGgiLCJjbGVhciIsImNhdGNoIiwiZ2V0TGFzdFJlc2V0IiwibGFzdFJlc2V0IiwicmVqZWN0IiwidGhyb3R0bGUiLCJkZWZlcmVkRmV0Y2giLCJwcm9taXNlIiwicmVzb2x2ZVByb21pc2UiLCJkYXRhIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiaXNOYU4iLCJjb25zb2xlIiwicHJvbWlzZUhhbmRsZXIiLCJmZXRjaCIsImlkbGVDYWxsYmFjayIsInRpbWVvdXQiLCJjYWxsYmFjayIsIm9wdGlvbnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFuYWdlci9OZXR3b3JrTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTRVRfUkVTUE9OU0UsIEZFVENILCBSRVNFVCB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB7IGNyZWF0ZVNldFJlc3BvbnNlIH0gZnJvbSAnLi4vY29udHJvbGxlci9hY3Rpb25zL2luZGV4LmpzJztcbmltcG9ydCBDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEZldGNoQWN0aW9uLFxuICBNYW5hZ2VyLFxuICBBY3Rpb25UeXBlcyxcbiAgTWlkZGxld2FyZUFQSSxcbiAgTWlkZGxld2FyZSxcbiAgU2V0UmVzcG9uc2VBY3Rpb24sXG59IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIFJlc2V0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIG5hbWUgPSAnUmVzZXRFcnJvcic7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ0Fib3J0ZWQgZHVlIHRvIFJFU0VUJyk7XG4gIH1cbn1cblxuLyoqIEhhbmRsZXMgYWxsIGFzeW5jIG5ldHdvcmsgZGlzcGF0Y2hlc1xuICpcbiAqIERlZHVwZXMgY29uY3VycmVudCByZXF1ZXN0cyBieSBrZWVwaW5nIHRyYWNrIG9mIGFsbCBmZXRjaGVzIGluIGZsaWdodFxuICogYW5kIHJldHVybmluZyBleGlzdGluZyBwcm9taXNlcyBmb3IgcmVxdWVzdHMgYWxyZWFkeSBpbiBmbGlnaHQuXG4gKlxuICogSW50ZXJmYWNlcyB3aXRoIHN0b3JlIHZpYSBhIHJlZHV4LWNvbXBhdGlibGUgbWlkZGxld2FyZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9OZXR3b3JrTWFuYWdlclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXR3b3JrTWFuYWdlciBpbXBsZW1lbnRzIE1hbmFnZXIge1xuICBwcm90ZWN0ZWQgZmV0Y2hlZDogeyBbazogc3RyaW5nXTogUHJvbWlzZTxhbnk+IH0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBwcm90ZWN0ZWQgcmVzb2x2ZXJzOiB7IFtrOiBzdHJpbmddOiAodmFsdWU/OiBhbnkpID0+IHZvaWQgfSA9IHt9O1xuICBwcm90ZWN0ZWQgcmVqZWN0b3JzOiB7IFtrOiBzdHJpbmddOiAodmFsdWU/OiBhbnkpID0+IHZvaWQgfSA9IHt9O1xuICBwcm90ZWN0ZWQgZmV0Y2hlZEF0OiB7IFtrOiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICBkZWNsYXJlIHJlYWRvbmx5IGRhdGFFeHBpcnlMZW5ndGg6IG51bWJlcjtcbiAgZGVjbGFyZSByZWFkb25seSBlcnJvckV4cGlyeUxlbmd0aDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgY29udHJvbGxlcjogQ29udHJvbGxlciA9IG5ldyBDb250cm9sbGVyKCk7XG4gIGRlY2xhcmUgY2xlYW51cERhdGU/OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoeyBkYXRhRXhwaXJ5TGVuZ3RoID0gNjAwMDAsIGVycm9yRXhwaXJ5TGVuZ3RoID0gMTAwMCB9ID0ge30pIHtcbiAgICB0aGlzLmRhdGFFeHBpcnlMZW5ndGggPSBkYXRhRXhwaXJ5TGVuZ3RoO1xuICAgIHRoaXMuZXJyb3JFeHBpcnlMZW5ndGggPSBlcnJvckV4cGlyeUxlbmd0aDtcbiAgfVxuXG4gIG1pZGRsZXdhcmU6IE1pZGRsZXdhcmUgPSBjb250cm9sbGVyID0+IHtcbiAgICB0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuICAgIHJldHVybiBuZXh0ID0+IGFjdGlvbiA9PiB7XG4gICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgRkVUQ0g6XG4gICAgICAgICAgdGhpcy5oYW5kbGVGZXRjaChhY3Rpb24pO1xuICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG9ubHkgY2FzZSB0aGF0IGNhdXNlcyBhbnkgc3RhdGUgY2hhbmdlXG4gICAgICAgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gaW50ZXJjZXB0IG90aGVyIGZldGNoZXMgYXMgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIHJlZHVjZXJzIGR1cmluZ1xuICAgICAgICAgIC8vIHJlbmRlciAtIHNvIHdlIG5lZWQgdG8gc3RvcCAncmVhZG9ubHknIGZldGNoZXMgd2hpY2ggY2FuIGJlIHRyaWdnZXJlZCBpbiByZW5kZXJcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBhY3Rpb24uZW5kcG9pbnQuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIGFjdGlvbi5lbmRwb2ludC5zaWRlRWZmZWN0XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIGNhc2UgU0VUX1JFU1BPTlNFOlxuICAgICAgICAgIC8vIG9ubHkgc2V0IGFmdGVyIG5ldyBzdGF0ZSBpcyBjb21wdXRlZFxuICAgICAgICAgIHJldHVybiBuZXh0KGFjdGlvbikudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uLmtleSBpbiB0aGlzLmZldGNoZWQpIHtcbiAgICAgICAgICAgICAgLy8gTm90ZTogbWV0YSAqbXVzdCogYmUgc2V0IGJ5IHJlZHVjZXIgc28gdGhpcyBzaG91bGQgYmUgc2FmZVxuICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IGNvbnRyb2xsZXIuZ2V0U3RhdGUoKS5tZXRhW2FjdGlvbi5rZXldPy5lcnJvcjtcbiAgICAgICAgICAgICAgLy8gcHJvY2Vzc2luZyBlcnJvcnMgcmVzdWx0IGluIHN0YXRlIG1ldGEgaGF2aW5nIGVycm9yLCBzbyB3ZSBzaG91bGQgcmVqZWN0IHRoZSBwcm9taXNlXG4gICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU2V0KFxuICAgICAgICAgICAgICAgICAgY3JlYXRlU2V0UmVzcG9uc2UoYWN0aW9uLmVuZHBvaW50LCB7XG4gICAgICAgICAgICAgICAgICAgIGFyZ3M6IGFjdGlvbi5hcmdzLFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZTogZXJyb3IsXG4gICAgICAgICAgICAgICAgICAgIGZldGNoZWRBdDogYWN0aW9uLm1ldGEuZmV0Y2hlZEF0LFxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTZXQoYWN0aW9uKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICBjYXNlIFJFU0VUOiB7XG4gICAgICAgICAgY29uc3QgcmVqZWN0b3JzID0geyAuLi50aGlzLnJlamVjdG9ycyB9O1xuXG4gICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xuICAgICAgICAgIHJldHVybiBuZXh0KGFjdGlvbikudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAvLyB0aGVyZSBjb3VsZCBiZSBleHRlcm5hbCBsaXN0ZW5lcnMgdG8gdGhlIHByb21pc2VcbiAgICAgICAgICAgIC8vIHRoaXMgbXVzdCBoYXBwZW4gYWZ0ZXIgY29tbWl0IHNvIG91ciBvd24gcmVqZWN0b3Iga25vd3Mgbm90IHRvIGRpc3BhdGNoIGFuIGVycm9yIGJhc2VkIG9uIHRoaXNcbiAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiByZWplY3RvcnMpIHtcbiAgICAgICAgICAgICAgcmVqZWN0b3JzW2tdKG5ldyBSZXNldEVycm9yKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKTtcbiAgICAgIH1cbiAgICB9O1xuICB9O1xuXG4gIC8qKiBPbiBtb3VudCAqL1xuICBpbml0KCkge1xuICAgIGRlbGV0ZSB0aGlzLmNsZWFudXBEYXRlO1xuICB9XG5cbiAgLyoqIEVuc3VyZXMgYWxsIHByb21pc2VzIGFyZSBjb21wbGV0ZWQgYnkgcmVqZWN0aW5nIHJlbWFpbmluZy4gKi9cbiAgY2xlYW51cCgpIHtcbiAgICAvLyBlbnN1cmUgbm8gZGlzcGF0Y2hlcyBhZnRlciB1bm1vdW50XG4gICAgLy8gdGhpcyBtdXN0IGJlIHJldmVyc2libGUgKGRvbmUgaW4gaW5pdCkgc28gdXNlRWZmZWN0KCkgcmVtYWlucyBzeW1tZXRyaWNcbiAgICB0aGlzLmNsZWFudXBEYXRlID0gRGF0ZS5ub3coKTtcbiAgfVxuXG4gIC8qKiBVc2VkIGJ5IERldnRvb2xzTWFuYWdlciB0byBkZXRlcm1pbmUgd2hldGhlciB0byBsb2cgYW4gYWN0aW9uICovXG4gIHNraXBMb2dnaW5nKGFjdGlvbjogQWN0aW9uVHlwZXMpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBhY3Rpb24udHlwZSA9PT0gRkVUQ0ggJiYgYWN0aW9uLmtleSBpbiB0aGlzLmZldGNoZWQ7XG4gIH1cblxuICBhbGxTZXR0bGVkKCkge1xuICAgIGNvbnN0IGZldGNoZXMgPSBPYmplY3QudmFsdWVzKHRoaXMuZmV0Y2hlZCk7XG4gICAgaWYgKGZldGNoZXMubGVuZ3RoKSByZXR1cm4gUHJvbWlzZS5hbGxTZXR0bGVkKGZldGNoZXMpO1xuICB9XG5cbiAgLyoqIENsZWFyIGFsbCBwcm9taXNlIHN0YXRlICovXG4gIHByb3RlY3RlZCBjbGVhckFsbCgpIHtcbiAgICBmb3IgKGNvbnN0IGsgaW4gdGhpcy5yZWplY3RvcnMpIHtcbiAgICAgIHRoaXMuY2xlYXIoayk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENsZWFyIHByb21pc2Ugc3RhdGUgZm9yIGEgZ2l2ZW4ga2V5ICovXG4gIHByb3RlY3RlZCBjbGVhcihrZXk6IHN0cmluZykge1xuICAgIHRoaXMuZmV0Y2hlZFtrZXldLmNhdGNoKCgpID0+IHt9KTtcbiAgICBkZWxldGUgdGhpcy5yZXNvbHZlcnNba2V5XTtcbiAgICBkZWxldGUgdGhpcy5yZWplY3RvcnNba2V5XTtcbiAgICBkZWxldGUgdGhpcy5mZXRjaGVkW2tleV07XG4gICAgZGVsZXRlIHRoaXMuZmV0Y2hlZEF0W2tleV07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TGFzdFJlc2V0KCkge1xuICAgIGlmICh0aGlzLmNsZWFudXBEYXRlKSByZXR1cm4gdGhpcy5jbGVhbnVwRGF0ZTtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmdldFN0YXRlKCkubGFzdFJlc2V0O1xuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyAncmRjL2ZldGNoJyBhY3Rpb24uXG4gICAqXG4gICAqIFdpbGwgdGhlbiBzdGFydCBhIHByb21pc2UgZm9yIGEga2V5IGFuZCBwb3RlbnRpYWxseSBzdGFydCB0aGUgbmV0d29ya1xuICAgKiBmZXRjaC5cbiAgICpcbiAgICogVXNlcyB0aHJvdHRsZSBlbmRwb2ludHMgd2l0aG91dCBzaWRlRWZmZWN0cy4gVGhpcyBpcyB2YWx1YWJsZVxuICAgKiBmb3IgZW5zdXJlcyBtdXRhdGlvbiByZXF1ZXN0cyBhbHdheXMgZ28gdGhyb3VnaC5cbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVGZXRjaChhY3Rpb246IEZldGNoQWN0aW9uKSB7XG4gICAgY29uc3QgeyByZXNvbHZlLCByZWplY3QsIGZldGNoZWRBdCB9ID0gYWN0aW9uLm1ldGE7XG4gICAgY29uc3QgdGhyb3R0bGUgPSAhYWN0aW9uLmVuZHBvaW50LnNpZGVFZmZlY3Q7XG5cbiAgICBjb25zdCBkZWZlcmVkRmV0Y2ggPSAoKSA9PiB7XG4gICAgICBsZXQgcHJvbWlzZSA9IGFjdGlvbi5lbmRwb2ludCguLi5hY3Rpb24uYXJncyk7XG4gICAgICBjb25zdCByZXNvbHZlUHJvbWlzZSA9IChcbiAgICAgICAgcHJvbWlzZTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBvYmplY3QgfCBudWxsPixcbiAgICAgICkgPT5cbiAgICAgICAgcHJvbWlzZVxuICAgICAgICAgIC50aGVuKGRhdGEgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZShkYXRhKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICB9KTtcbiAgICAgIC8vIHNjaGVkdWxlIG5vbi10aHJvdHRsZWQgcmVzb2x1dGlvbnMgaW4gYSBtaWNyb3Rhc2sgYmVmb3JlIHNldFxuICAgICAgLy8gdGhpcyBlbmFibGVzIHVzZXJzIGF3YWl0aW5nIHRoZWlyIGZldGNoIHRvIHRyaWdnZXIgYW55IHJlYWN0IHVwZGF0ZXMgbmVlZGVkIHRvIGRlYWxcbiAgICAgIC8vIHdpdGggdXBjb21pbmcgY2hhbmdlcyBiZWNhdXNlIG9mIHRoZSBmZXRjaCAoZm9yIGluc3RhbmNlIGF2b2lkaW5nIHN1c3BlbnNlIGlmIHNvbWV0aGluZyBpcyBkZWxldGVkKVxuICAgICAgaWYgKCF0aHJvdHRsZSkge1xuICAgICAgICBwcm9taXNlID0gcmVzb2x2ZVByb21pc2UocHJvbWlzZSk7XG4gICAgICB9XG4gICAgICBwcm9taXNlID0gcHJvbWlzZVxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgbGV0IGxhc3RSZXNldCA9IHRoaXMuZ2V0TGFzdFJlc2V0KCk7XG5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzTmFOKGxhc3RSZXNldCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICdzdGF0ZS5sYXN0UmVzZXQgaXMgTmFOLiBPbmx5IHBvc2l0aXZlIHRpbWVzdGFtcHMgYXJlIHZhbGlkLicsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbGFzdFJlc2V0ID0gMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBkb24ndCB1cGRhdGUgc3RhdGUgd2l0aCBwcm9taXNlcyBzdGFydGVkIGJlZm9yZSBsYXN0IGNsZWFyXG4gICAgICAgICAgaWYgKGZldGNoZWRBdCA+PSBsYXN0UmVzZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5yZXNvbHZlKGFjdGlvbi5lbmRwb2ludCwge1xuICAgICAgICAgICAgICBhcmdzOiBhY3Rpb24uYXJncyxcbiAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgIGZldGNoZWRBdCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgY29uc3QgbGFzdFJlc2V0ID0gdGhpcy5nZXRMYXN0UmVzZXQoKTtcbiAgICAgICAgICAvLyBkb24ndCB1cGRhdGUgc3RhdGUgd2l0aCBwcm9taXNlcyBzdGFydGVkIGJlZm9yZSBsYXN0IGNsZWFyXG4gICAgICAgICAgaWYgKGZldGNoZWRBdCA+PSBsYXN0UmVzZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5yZXNvbHZlKGFjdGlvbi5lbmRwb2ludCwge1xuICAgICAgICAgICAgICBhcmdzOiBhY3Rpb24uYXJncyxcbiAgICAgICAgICAgICAgcmVzcG9uc2U6IGVycm9yLFxuICAgICAgICAgICAgICBmZXRjaGVkQXQsXG4gICAgICAgICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH07XG5cbiAgICBpZiAodGhyb3R0bGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnRocm90dGxlKGFjdGlvbi5rZXksIGRlZmVyZWRGZXRjaCwgZmV0Y2hlZEF0KVxuICAgICAgICAudGhlbihkYXRhID0+IHJlc29sdmUoZGF0YSkpXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiByZWplY3QoZXJyb3IpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRlZmVyZWRGZXRjaCgpLmNhdGNoKCgpID0+IHt9KTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gbWlkZGxld2FyZSBpbnRlcmNlcHRzIGEgc2V0IGFjdGlvbi5cbiAgICpcbiAgICogV2lsbCByZXNvbHZlIHRoZSBwcm9taXNlIGFzc29jaWF0ZWQgd2l0aCBzZXQga2V5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVNldChhY3Rpb246IFNldFJlc3BvbnNlQWN0aW9uKSB7XG4gICAgLy8gdGhpcyBjYW4gc3RpbGwgdHVybiBvdXQgdG8gYmUgdW50cnVlIHNpbmNlIHRoaXMgaXMgYXN5bmNcbiAgICBpZiAoYWN0aW9uLmtleSBpbiB0aGlzLmZldGNoZWQpIHtcbiAgICAgIGxldCBwcm9taXNlSGFuZGxlcjogKHZhbHVlPzogYW55KSA9PiB2b2lkO1xuICAgICAgaWYgKGFjdGlvbi5lcnJvcikge1xuICAgICAgICBwcm9taXNlSGFuZGxlciA9IHRoaXMucmVqZWN0b3JzW2FjdGlvbi5rZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvbWlzZUhhbmRsZXIgPSB0aGlzLnJlc29sdmVyc1thY3Rpb24ua2V5XTtcbiAgICAgIH1cbiAgICAgIHByb21pc2VIYW5kbGVyKGFjdGlvbi5yZXNwb25zZSk7XG4gICAgICAvLyBzaW5jZSB3ZSdyZSByZXNvbHZlZCB3ZSBubyBsb25nZXIgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoaXMgcHJvbWlzZVxuICAgICAgdGhpcy5jbGVhcihhY3Rpb24ua2V5KTtcbiAgICB9XG4gIH1cblxuICAvKiogRW5zdXJlcyBvbmx5IG9uZSByZXF1ZXN0IGZvciBhIGdpdmVuIGtleSBpcyBpbiBmbGlnaHQgYXQgYW55IHRpbWVcbiAgICpcbiAgICogVXNlcyBrZXkgdG8gZWl0aGVyIHJldHJpZXZlIGluLWZsaWdodCBwcm9taXNlLCBvciBpZiBub3RcbiAgICogY3JlYXRlIGEgbmV3IHByb21pc2UgYW5kIGNhbGwgZmV0Y2guXG4gICAqXG4gICAqIE5vdGU6IFRoZSBuZXcgcHJvbWlzZSBpcyBub3QgYWN0dWFsbHkgdGllZCB0byBmZXRjaCBhdCBhbGwsXG4gICAqIGJ1dCBpcyByZXNvbHZlZCB3aGVuIHRoZSBleHBlY3RlZCAncmVjaWV2ZScgYWN0aW9uIGlzIHByb2Nlc3NlZC5cbiAgICogVGhpcyBlbnN1cmVzIHByb21pc2VzIGFyZSByZXNvbHZlZCBvbmx5IG9uY2UgdGhlaXIgZGF0YSBpcyBwcm9jZXNzZWRcbiAgICogYnkgdGhlIHJlZHVjZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgdGhyb3R0bGUoXG4gICAga2V5OiBzdHJpbmcsXG4gICAgZmV0Y2g6ICgpID0+IFByb21pc2U8YW55PixcbiAgICBmZXRjaGVkQXQ6IG51bWJlcixcbiAgKSB7XG4gICAgY29uc3QgbGFzdFJlc2V0ID0gdGhpcy5nZXRMYXN0UmVzZXQoKTtcbiAgICAvLyB3ZSdyZSBhbHJlYWR5IGZldGNoaW5nIHNvIHJldXNlIHRoZSBwcm9taXNlXG4gICAgLy8gZmV0Y2hlcyBhZnRlciByZXNldCBkbyBub3QgY291bnRcbiAgICBpZiAoa2V5IGluIHRoaXMuZmV0Y2hlZCAmJiB0aGlzLmZldGNoZWRBdFtrZXldID4gbGFzdFJlc2V0KSB7XG4gICAgICByZXR1cm4gdGhpcy5mZXRjaGVkW2tleV07XG4gICAgfVxuXG4gICAgdGhpcy5mZXRjaGVkW2tleV0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLnJlc29sdmVyc1trZXldID0gcmVzb2x2ZTtcbiAgICAgIHRoaXMucmVqZWN0b3JzW2tleV0gPSByZWplY3Q7XG4gICAgfSk7XG4gICAgdGhpcy5mZXRjaGVkQXRba2V5XSA9IGZldGNoZWRBdDtcblxuICAgIHRoaXMuaWRsZUNhbGxiYWNrKFxuICAgICAgKCkgPT4ge1xuICAgICAgICAvLyBzaW5jZSBvdXIgcmVhbCBwcm9taXNlIGlzIHJlc29sdmVkIHZpYSB0aGUgd3JhcFJlZHVjZXIoKSxcbiAgICAgICAgLy8gd2Ugc2hvdWxkIGp1c3Qgc3RvcCBhbGwgZXJyb3JzIGhlcmUuXG4gICAgICAgIC8vIFRPRE86IGRlY291cGxlIHRoaXMgZnJvbSB1c2VGZXRjaGVyKCkgKHRoYXQncyB3aGF0J3MgZGlzcGF0Y2hpbmcgdGhlIGVycm9yIHRoZSByZXNvbHZlcyBpbiBoZXJlKVxuICAgICAgICBmZXRjaCgpLmNhdGNoKCgpID0+IG51bGwpO1xuICAgICAgfSxcbiAgICAgIHsgdGltZW91dDogNTAwIH0sXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmZldGNoZWRba2V5XTtcbiAgfVxuXG4gIC8qKiBDYWxscyB0aGUgY2FsbGJhY2sgd2hlbiBjbGllbnQgaXMgbm90ICdidXN5JyB3aXRoIGhpZ2ggcHJpb3JpdHkgaW50ZXJhY3Rpb24gdGFza3NcbiAgICpcbiAgICogT3ZlcnJpZGUgZm9yIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGlkbGVDYWxsYmFjayhcbiAgICBjYWxsYmFjazogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkLFxuICAgIG9wdGlvbnM/OiBJZGxlUmVxdWVzdE9wdGlvbnMsXG4gICkge1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsWUFBWSxFQUFFQyxLQUFLLEVBQUVDLEtBQUssUUFBUSxtQkFBbUI7QUFDOUQsU0FBU0MsaUJBQWlCLFFBQVEsZ0NBQWdDO0FBQ2xFLE9BQU9DLFVBQVUsTUFBTSw2QkFBNkI7QUFVcEQsT0FBTyxNQUFNQyxVQUFVLFNBQVNDLEtBQUssQ0FBQztFQUdwQ0MsV0FBV0EsQ0FBQSxFQUFHO0lBQ1osS0FBSyxDQUFDLHNCQUFzQixDQUFDO0lBQUMsS0FIaENDLElBQUksR0FBRyxZQUFZ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
256
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfUkVTUE9OU0UiLCJGRVRDSCIsIlJFU0VUIiwiY3JlYXRlU2V0UmVzcG9uc2UiLCJDb250cm9sbGVyIiwiUmVzZXRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiTmV0d29ya01hbmFnZXIiLCJkYXRhRXhwaXJ5TGVuZ3RoIiwiZXJyb3JFeHBpcnlMZW5ndGgiLCJmZXRjaGVkIiwiT2JqZWN0IiwiY3JlYXRlIiwicmVzb2x2ZXJzIiwicmVqZWN0b3JzIiwiZmV0Y2hlZEF0IiwiY29udHJvbGxlciIsIm1pZGRsZXdhcmUiLCJuZXh0IiwiYWN0aW9uIiwidHlwZSIsImhhbmRsZUZldGNoIiwiZW5kcG9pbnQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJ1bmRlZmluZWQiLCJzaWRlRWZmZWN0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwia2V5IiwiX2NvbnRyb2xsZXIkZ2V0U3RhdGUkIiwiZXJyb3IiLCJnZXRTdGF0ZSIsIm1ldGEiLCJoYW5kbGVTZXQiLCJhcmdzIiwicmVzcG9uc2UiLCJfZXh0ZW5kcyIsImNsZWFyQWxsIiwiayIsImluaXQiLCJjbGVhbnVwRGF0ZSIsImNsZWFudXAiLCJEYXRlIiwibm93Iiwic2tpcExvZ2dpbmciLCJhbGxTZXR0bGVkIiwiZmV0Y2hlcyIsInZhbHVlcyIsImxlbmd0aCIsImNsZWFyIiwiY2F0Y2giLCJnZXRMYXN0UmVzZXQiLCJsYXN0UmVzZXQiLCJyZWplY3QiLCJ0aHJvdHRsZSIsImRlZmVyZWRGZXRjaCIsInByb21pc2UiLCJyZXNvbHZlUHJvbWlzZSIsImRhdGEiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJpc05hTiIsImNvbnNvbGUiLCJwcm9taXNlSGFuZGxlciIsImZldGNoIiwiaWRsZUNhbGxiYWNrIiwidGltZW91dCIsImNhbGxiYWNrIiwib3B0aW9ucyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2VyL05ldHdvcmtNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFVF9SRVNQT05TRSwgRkVUQ0gsIFJFU0VUIH0gZnJvbSAnLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IHsgY3JlYXRlU2V0UmVzcG9uc2UgfSBmcm9tICcuLi9jb250cm9sbGVyL2FjdGlvbnMvaW5kZXguanMnO1xuaW1wb3J0IENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgRmV0Y2hBY3Rpb24sXG4gIE1hbmFnZXIsXG4gIEFjdGlvblR5cGVzLFxuICBNaWRkbGV3YXJlQVBJLFxuICBNaWRkbGV3YXJlLFxuICBTZXRSZXNwb25zZUFjdGlvbixcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgUmVzZXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgbmFtZSA9ICdSZXNldEVycm9yJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignQWJvcnRlZCBkdWUgdG8gUkVTRVQnKTtcbiAgfVxufVxuXG4vKiogSGFuZGxlcyBhbGwgYXN5bmMgbmV0d29yayBkaXNwYXRjaGVzXG4gKlxuICogRGVkdXBlcyBjb25jdXJyZW50IHJlcXVlc3RzIGJ5IGtlZXBpbmcgdHJhY2sgb2YgYWxsIGZldGNoZXMgaW4gZmxpZ2h0XG4gKiBhbmQgcmV0dXJuaW5nIGV4aXN0aW5nIHByb21pc2VzIGZvciByZXF1ZXN0cyBhbHJlYWR5IGluIGZsaWdodC5cbiAqXG4gKiBJbnRlcmZhY2VzIHdpdGggc3RvcmUgdmlhIGEgcmVkdXgtY29tcGF0aWJsZSBtaWRkbGV3YXJlLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL05ldHdvcmtNYW5hZ2VyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGltcGxlbWVudHMgTWFuYWdlciB7XG4gIHByb3RlY3RlZCBmZXRjaGVkOiB7IFtrOiBzdHJpbmddOiBQcm9taXNlPGFueT4gfSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIHByb3RlY3RlZCByZXNvbHZlcnM6IHsgW2s6IHN0cmluZ106ICh2YWx1ZT86IGFueSkgPT4gdm9pZCB9ID0ge307XG4gIHByb3RlY3RlZCByZWplY3RvcnM6IHsgW2s6IHN0cmluZ106ICh2YWx1ZT86IGFueSkgPT4gdm9pZCB9ID0ge307XG4gIHByb3RlY3RlZCBmZXRjaGVkQXQ6IHsgW2s6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gIGRlY2xhcmUgcmVhZG9ubHkgZGF0YUV4cGlyeUxlbmd0aDogbnVtYmVyO1xuICBkZWNsYXJlIHJlYWRvbmx5IGVycm9yRXhwaXJ5TGVuZ3RoOiBudW1iZXI7XG4gIHByb3RlY3RlZCBjb250cm9sbGVyOiBDb250cm9sbGVyID0gbmV3IENvbnRyb2xsZXIoKTtcbiAgZGVjbGFyZSBjbGVhbnVwRGF0ZT86IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IGRhdGFFeHBpcnlMZW5ndGggPSA2MDAwMCwgZXJyb3JFeHBpcnlMZW5ndGggPSAxMDAwIH0gPSB7fSkge1xuICAgIHRoaXMuZGF0YUV4cGlyeUxlbmd0aCA9IGRhdGFFeHBpcnlMZW5ndGg7XG4gICAgdGhpcy5lcnJvckV4cGlyeUxlbmd0aCA9IGVycm9yRXhwaXJ5TGVuZ3RoO1xuICB9XG5cbiAgbWlkZGxld2FyZTogTWlkZGxld2FyZSA9IGNvbnRyb2xsZXIgPT4ge1xuICAgIHRoaXMuY29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG4gICAgcmV0dXJuIG5leHQgPT4gYWN0aW9uID0+IHtcbiAgICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgICAgY2FzZSBGRVRDSDpcbiAgICAgICAgICB0aGlzLmhhbmRsZUZldGNoKGFjdGlvbik7XG4gICAgICAgICAgLy8gVGhpcyBpcyB0aGUgb25seSBjYXNlIHRoYXQgY2F1c2VzIGFueSBzdGF0ZSBjaGFuZ2VcbiAgICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBpbnRlcmNlcHQgb3RoZXIgZmV0Y2hlcyBhcyB3ZSBkb24ndCB3YW50IHRvIHRyaWdnZXIgcmVkdWNlcnMgZHVyaW5nXG4gICAgICAgICAgLy8gcmVuZGVyIC0gc28gd2UgbmVlZCB0byBzdG9wICdyZWFkb25seScgZmV0Y2hlcyB3aGljaCBjYW4gYmUgdHJpZ2dlcmVkIGluIHJlbmRlclxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGFjdGlvbi5lbmRwb2ludC5nZXRPcHRpbWlzdGljUmVzcG9uc2UgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgYWN0aW9uLmVuZHBvaW50LnNpZGVFZmZlY3RcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgY2FzZSBTRVRfUkVTUE9OU0U6XG4gICAgICAgICAgLy8gb25seSBzZXQgYWZ0ZXIgbmV3IHN0YXRlIGlzIGNvbXB1dGVkXG4gICAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChhY3Rpb24ua2V5IGluIHRoaXMuZmV0Y2hlZCkge1xuICAgICAgICAgICAgICAvLyBOb3RlOiBtZXRhICptdXN0KiBiZSBzZXQgYnkgcmVkdWNlciBzbyB0aGlzIHNob3VsZCBiZSBzYWZlXG4gICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gY29udHJvbGxlci5nZXRTdGF0ZSgpLm1ldGFbYWN0aW9uLmtleV0/LmVycm9yO1xuICAgICAgICAgICAgICAvLyBwcm9jZXNzaW5nIGVycm9ycyByZXN1bHQgaW4gc3RhdGUgbWV0YSBoYXZpbmcgZXJyb3IsIHNvIHdlIHNob3VsZCByZWplY3QgdGhlIHByb21pc2VcbiAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTZXQoXG4gICAgICAgICAgICAgICAgICBjcmVhdGVTZXRSZXNwb25zZShhY3Rpb24uZW5kcG9pbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgYXJnczogYWN0aW9uLmFyZ3MsXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlOiBlcnJvcixcbiAgICAgICAgICAgICAgICAgICAgZmV0Y2hlZEF0OiBhY3Rpb24ubWV0YS5mZXRjaGVkQXQsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVNldChhY3Rpb24pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgUkVTRVQ6IHtcbiAgICAgICAgICBjb25zdCByZWplY3RvcnMgPSB7IC4uLnRoaXMucmVqZWN0b3JzIH07XG5cbiAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XG4gICAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIC8vIHRoZXJlIGNvdWxkIGJlIGV4dGVybmFsIGxpc3RlbmVycyB0byB0aGUgcHJvbWlzZVxuICAgICAgICAgICAgLy8gdGhpcyBtdXN0IGhhcHBlbiBhZnRlciBjb21taXQgc28gb3VyIG93biByZWplY3RvciBrbm93cyBub3QgdG8gZGlzcGF0Y2ggYW4gZXJyb3IgYmFzZWQgb24gdGhpc1xuICAgICAgICAgICAgZm9yIChjb25zdCBrIGluIHJlamVjdG9ycykge1xuICAgICAgICAgICAgICByZWplY3RvcnNba10obmV3IFJlc2V0RXJyb3IoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pO1xuICAgICAgfVxuICAgIH07XG4gIH07XG5cbiAgLyoqIE9uIG1vdW50ICovXG4gIGluaXQoKSB7XG4gICAgZGVsZXRlIHRoaXMuY2xlYW51cERhdGU7XG4gIH1cblxuICAvKiogRW5zdXJlcyBhbGwgcHJvbWlzZXMgYXJlIGNvbXBsZXRlZCBieSByZWplY3RpbmcgcmVtYWluaW5nLiAqL1xuICBjbGVhbnVwKCkge1xuICAgIC8vIGVuc3VyZSBubyBkaXNwYXRjaGVzIGFmdGVyIHVubW91bnRcbiAgICAvLyB0aGlzIG11c3QgYmUgcmV2ZXJzaWJsZSAoZG9uZSBpbiBpbml0KSBzbyB1c2VFZmZlY3QoKSByZW1haW5zIHN5bW1ldHJpY1xuICAgIHRoaXMuY2xlYW51cERhdGUgPSBEYXRlLm5vdygpO1xuICB9XG5cbiAgLyoqIFVzZWQgYnkgRGV2dG9vbHNNYW5hZ2VyIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIGxvZyBhbiBhY3Rpb24gKi9cbiAgc2tpcExvZ2dpbmcoYWN0aW9uOiBBY3Rpb25UeXBlcykge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIGFjdGlvbi50eXBlID09PSBGRVRDSCAmJiBhY3Rpb24ua2V5IGluIHRoaXMuZmV0Y2hlZDtcbiAgfVxuXG4gIGFsbFNldHRsZWQoKSB7XG4gICAgY29uc3QgZmV0Y2hlcyA9IE9iamVjdC52YWx1ZXModGhpcy5mZXRjaGVkKTtcbiAgICBpZiAoZmV0Y2hlcy5sZW5ndGgpIHJldHVybiBQcm9taXNlLmFsbFNldHRsZWQoZmV0Y2hlcyk7XG4gIH1cblxuICAvKiogQ2xlYXIgYWxsIHByb21pc2Ugc3RhdGUgKi9cbiAgcHJvdGVjdGVkIGNsZWFyQWxsKCkge1xuICAgIGZvciAoY29uc3QgayBpbiB0aGlzLnJlamVjdG9ycykge1xuICAgICAgdGhpcy5jbGVhcihrKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2xlYXIgcHJvbWlzZSBzdGF0ZSBmb3IgYSBnaXZlbiBrZXkgKi9cbiAgcHJvdGVjdGVkIGNsZWFyKGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5mZXRjaGVkW2tleV0uY2F0Y2goKCkgPT4ge30pO1xuICAgIGRlbGV0ZSB0aGlzLnJlc29sdmVyc1trZXldO1xuICAgIGRlbGV0ZSB0aGlzLnJlamVjdG9yc1trZXldO1xuICAgIGRlbGV0ZSB0aGlzLmZldGNoZWRba2V5XTtcbiAgICBkZWxldGUgdGhpcy5mZXRjaGVkQXRba2V5XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRMYXN0UmVzZXQoKSB7XG4gICAgaWYgKHRoaXMuY2xlYW51cERhdGUpIHJldHVybiB0aGlzLmNsZWFudXBEYXRlO1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuZ2V0U3RhdGUoKS5sYXN0UmVzZXQ7XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gbWlkZGxld2FyZSBpbnRlcmNlcHRzICdyZGMvZmV0Y2gnIGFjdGlvbi5cbiAgICpcbiAgICogV2lsbCB0aGVuIHN0YXJ0IGEgcHJvbWlzZSBmb3IgYSBrZXkgYW5kIHBvdGVudGlhbGx5IHN0YXJ0IHRoZSBuZXR3b3JrXG4gICAqIGZldGNoLlxuICAgKlxuICAgKiBVc2VzIHRocm90dGxlIGVuZHBvaW50cyB3aXRob3V0IHNpZGVFZmZlY3RzLiBUaGlzIGlzIHZhbHVhYmxlXG4gICAqIGZvciBlbnN1cmVzIG11dGF0aW9uIHJlcXVlc3RzIGFsd2F5cyBnbyB0aHJvdWdoLlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZUZldGNoKGFjdGlvbjogRmV0Y2hBY3Rpb24pIHtcbiAgICBjb25zdCB7IHJlc29sdmUsIHJlamVjdCwgZmV0Y2hlZEF0IH0gPSBhY3Rpb24ubWV0YTtcbiAgICBjb25zdCB0aHJvdHRsZSA9ICFhY3Rpb24uZW5kcG9pbnQuc2lkZUVmZmVjdDtcblxuICAgIGNvbnN0IGRlZmVyZWRGZXRjaCA9ICgpID0+IHtcbiAgICAgIGxldCBwcm9taXNlID0gYWN0aW9uLmVuZHBvaW50KC4uLmFjdGlvbi5hcmdzKTtcbiAgICAgIGNvbnN0IHJlc29sdmVQcm9taXNlID0gKFxuICAgICAgICBwcm9taXNlOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IG9iamVjdCB8IG51bGw+LFxuICAgICAgKSA9PlxuICAgICAgICBwcm9taXNlXG4gICAgICAgICAgLnRoZW4oZGF0YSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKGRhdGEpO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgIH0pO1xuICAgICAgLy8gc2NoZWR1bGUgbm9uLXRocm90dGxlZCByZXNvbHV0aW9ucyBpbiBhIG1pY3JvdGFzayBiZWZvcmUgc2V0XG4gICAgICAvLyB0aGlzIGVuYWJsZXMgdXNlcnMgYXdhaXRpbmcgdGhlaXIgZmV0Y2ggdG8gdHJpZ2dlciBhbnkgcmVhY3QgdXBkYXRlcyBuZWVkZWQgdG8gZGVhbFxuICAgICAgLy8gd2l0aCB1cGNvbWluZyBjaGFuZ2VzIGJlY2F1c2Ugb2YgdGhlIGZldGNoIChmb3IgaW5zdGFuY2UgYXZvaWRpbmcgc3VzcGVuc2UgaWYgc29tZXRoaW5nIGlzIGRlbGV0ZWQpXG4gICAgICBpZiAoIXRocm90dGxlKSB7XG4gICAgICAgIHByb21pc2UgPSByZXNvbHZlUHJvbWlzZShwcm9taXNlKTtcbiAgICAgIH1cbiAgICAgIHByb21pc2UgPSBwcm9taXNlXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBsZXQgbGFzdFJlc2V0ID0gdGhpcy5nZXRMYXN0UmVzZXQoKTtcblxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgaXNOYU4obGFzdFJlc2V0KSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgJ3N0YXRlLmxhc3RSZXNldCBpcyBOYU4uIE9ubHkgcG9zaXRpdmUgdGltZXN0YW1wcyBhcmUgdmFsaWQuJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBsYXN0UmVzZXQgPSAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGRvbid0IHVwZGF0ZSBzdGF0ZSB3aXRoIHByb21pc2VzIHN0YXJ0ZWQgYmVmb3JlIGxhc3QgY2xlYXJcbiAgICAgICAgICBpZiAoZmV0Y2hlZEF0ID49IGxhc3RSZXNldCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLnJlc29sdmUoYWN0aW9uLmVuZHBvaW50LCB7XG4gICAgICAgICAgICAgIGFyZ3M6IGFjdGlvbi5hcmdzLFxuICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgZmV0Y2hlZEF0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zdCBsYXN0UmVzZXQgPSB0aGlzLmdldExhc3RSZXNldCgpO1xuICAgICAgICAgIC8vIGRvbid0IHVwZGF0ZSBzdGF0ZSB3aXRoIHByb21pc2VzIHN0YXJ0ZWQgYmVmb3JlIGxhc3QgY2xlYXJcbiAgICAgICAgICBpZiAoZmV0Y2hlZEF0ID49IGxhc3RSZXNldCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLnJlc29sdmUoYWN0aW9uLmVuZHBvaW50LCB7XG4gICAgICAgICAgICAgIGFyZ3M6IGFjdGlvbi5hcmdzLFxuICAgICAgICAgICAgICByZXNwb25zZTogZXJyb3IsXG4gICAgICAgICAgICAgIGZldGNoZWRBdCxcbiAgICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfTtcblxuICAgIGlmICh0aHJvdHRsZSkge1xuICAgICAgcmV0dXJuIHRoaXMudGhyb3R0bGUoYWN0aW9uLmtleSwgZGVmZXJlZEZldGNoLCBmZXRjaGVkQXQpXG4gICAgICAgIC50aGVuKGRhdGEgPT4gcmVzb2x2ZShkYXRhKSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHJlamVjdChlcnJvcikpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGVmZXJlZEZldGNoKCkuY2F0Y2goKCkgPT4ge30pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDYWxsZWQgd2hlbiBtaWRkbGV3YXJlIGludGVyY2VwdHMgYSBzZXQgYWN0aW9uLlxuICAgKlxuICAgKiBXaWxsIHJlc29sdmUgdGhlIHByb21pc2UgYXNzb2NpYXRlZCB3aXRoIHNldCBrZXkuXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlU2V0KGFjdGlvbjogU2V0UmVzcG9uc2VBY3Rpb24pIHtcbiAgICAvLyB0aGlzIGNhbiBzdGlsbCB0dXJuIG91dCB0byBiZSB1bnRydWUgc2luY2UgdGhpcyBpcyBhc3luY1xuICAgIGlmIChhY3Rpb24ua2V5IGluIHRoaXMuZmV0Y2hlZCkge1xuICAgICAgbGV0IHByb21pc2VIYW5kbGVyOiAodmFsdWU/OiBhbnkpID0+IHZvaWQ7XG4gICAgICBpZiAoYWN0aW9uLmVycm9yKSB7XG4gICAgICAgIHByb21pc2VIYW5kbGVyID0gdGhpcy5yZWplY3RvcnNbYWN0aW9uLmtleV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9taXNlSGFuZGxlciA9IHRoaXMucmVzb2x2ZXJzW2FjdGlvbi5rZXldO1xuICAgICAgfVxuICAgICAgcHJvbWlzZUhhbmRsZXIoYWN0aW9uLnJlc3BvbnNlKTtcbiAgICAgIC8vIHNpbmNlIHdlJ3JlIHJlc29sdmVkIHdlIG5vIGxvbmdlciBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgdGhpcyBwcm9taXNlXG4gICAgICB0aGlzLmNsZWFyKGFjdGlvbi5rZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFbnN1cmVzIG9ubHkgb25lIHJlcXVlc3QgZm9yIGEgZ2l2ZW4ga2V5IGlzIGluIGZsaWdodCBhdCBhbnkgdGltZVxuICAgKlxuICAgKiBVc2VzIGtleSB0byBlaXRoZXIgcmV0cmlldmUgaW4tZmxpZ2h0IHByb21pc2UsIG9yIGlmIG5vdFxuICAgKiBjcmVhdGUgYSBuZXcgcHJvbWlzZSBhbmQgY2FsbCBmZXRjaC5cbiAgICpcbiAgICogTm90ZTogVGhlIG5ldyBwcm9taXNlIGlzIG5vdCBhY3R1YWxseSB0aWVkIHRvIGZldGNoIGF0IGFsbCxcbiAgICogYnV0IGlzIHJlc29sdmVkIHdoZW4gdGhlIGV4cGVjdGVkICdyZWNpZXZlJyBhY3Rpb24gaXMgcHJvY2Vzc2VkLlxuICAgKiBUaGlzIGVuc3VyZXMgcHJvbWlzZXMgYXJlIHJlc29sdmVkIG9ubHkgb25jZSB0aGVpciBkYXRhIGlzIHByb2Nlc3NlZFxuICAgKiBieSB0aGUgcmVkdWNlci5cbiAgICovXG4gIHByb3RlY3RlZCB0aHJvdHRsZShcbiAgICBrZXk6IHN0cmluZyxcbiAgICBmZXRjaDogKCkgPT4gUHJvbWlzZTxhbnk+LFxuICAgIGZldGNoZWRBdDogbnVtYmVyLFxuICApIHtcbiAgICBjb25zdCBsYXN0UmVzZXQgPSB0aGlzLmdldExhc3RSZXNldCgpO1xuICAgIC8vIHdlJ3JlIGFscmVhZHkgZmV0Y2hpbmcgc28gcmV1c2UgdGhlIHByb21pc2VcbiAgICAvLyBmZXRjaGVzIGFmdGVyIHJlc2V0IGRvIG5vdCBjb3VudFxuICAgIGlmIChrZXkgaW4gdGhpcy5mZXRjaGVkICYmIHRoaXMuZmV0Y2hlZEF0W2tleV0gPiBsYXN0UmVzZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLmZldGNoZWRba2V5XTtcbiAgICB9XG5cbiAgICB0aGlzLmZldGNoZWRba2V5XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMucmVzb2x2ZXJzW2tleV0gPSByZXNvbHZlO1xuICAgICAgdGhpcy5yZWplY3RvcnNba2V5XSA9IHJlamVjdDtcbiAgICB9KTtcbiAgICB0aGlzLmZldGNoZWRBdFtrZXldID0gZmV0Y2hlZEF0O1xuXG4gICAgdGhpcy5pZGxlQ2FsbGJhY2soXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIHNpbmNlIG91ciByZWFsIHByb21pc2UgaXMgcmVzb2x2ZWQgdmlhIHRoZSB3cmFwUmVkdWNlcigpLFxuICAgICAgICAvLyB3ZSBzaG91bGQganVzdCBzdG9wIGFsbCBlcnJvcnMgaGVyZS5cbiAgICAgICAgLy8gVE9ETzogZGVjb3VwbGUgdGhpcyBmcm9tIHVzZUZldGNoZXIoKSAodGhhdCdzIHdoYXQncyBkaXNwYXRjaGluZyB0aGUgZXJyb3IgdGhlIHJlc29sdmVzIGluIGhlcmUpXG4gICAgICAgIGZldGNoKCkuY2F0Y2goKCkgPT4gbnVsbCk7XG4gICAgICB9LFxuICAgICAgeyB0aW1lb3V0OiA1MDAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hlZFtrZXldO1xuICB9XG5cbiAgLyoqIENhbGxzIHRoZSBjYWxsYmFjayB3aGVuIGNsaWVudCBpcyBub3QgJ2J1c3knIHdpdGggaGlnaCBwcmlvcml0eSBpbnRlcmFjdGlvbiB0YXNrc1xuICAgKlxuICAgKiBPdmVycmlkZSBmb3IgcGxhdGZvcm0tc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZUNhbGxiYWNrKFxuICAgIGNhbGxiYWNrOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQsXG4gICAgb3B0aW9ucz86IElkbGVSZXF1ZXN0T3B0aW9ucyxcbiAgKSB7XG4gICAgY2FsbGJhY2soKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsWUFBWSxFQUFFQyxLQUFLLEVBQUVDLEtBQUssUUFBUSxtQkFBbUI7QUFDOUQsU0FBU0MsaUJBQWlCLFFBQVEsZ0NBQWdDO0FBQ2xFLE9BQU9DLFVBQVUsTUFBTSw2QkFBNkI7QUFVcEQsT0FBTyxNQUFNQyxVQUFVLFNBQVNDLEtBQUssQ0FBQztFQUdwQ0MsV0FBV0EsQ0FBQSxFQUFHO0lBQ1osS0FBSyxDQUFDLHNCQUFzQixDQUFDO0lBQUMsS0FIaENDLElBQUksR0FBRyxZ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
@@ -75,4 +75,4 @@ export default class SubscriptionManager {
75
75
  }
76
76
  }
77
77
  }
78
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVUJTQ1JJQkUiLCJVTlNVQlNDUklCRSIsIkNvbnRyb2xsZXIiLCJTdWJzY3JpcHRpb25NYW5hZ2VyIiwiY29uc3RydWN0b3IiLCJTdWJzY3JpcHRpb24iLCJzdWJzY3JpcHRpb25zIiwiY29udHJvbGxlciIsIm1pZGRsZXdhcmUiLCJuZXh0IiwiYWN0aW9uIiwidHlwZSIsImhhbmRsZVN1YnNjcmliZSIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJQcm9taXNlIiwicmVzb2x2ZSIsImhhbmRsZVVuc3Vic2NyaWJlIiwiY2xlYW51cCIsImtleSIsImZyZXF1ZW5jeSIsImVuZHBvaW50IiwicG9sbEZyZXF1ZW5jeSIsImFkZCIsImVtcHR5IiwicmVtb3ZlIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvU3Vic2NyaXB0aW9uTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTVUJTQ1JJQkUsIFVOU1VCU0NSSUJFIH0gZnJvbSAnLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgTWFuYWdlcixcbiAgTWlkZGxld2FyZUFQSSxcbiAgTWlkZGxld2FyZSxcbiAgVW5zdWJzY3JpYmVBY3Rpb24sXG4gIFN1YnNjcmliZUFjdGlvbixcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG50eXBlIEFjdGlvbnMgPSBVbnN1YnNjcmliZUFjdGlvbiB8IFN1YnNjcmliZUFjdGlvbjtcblxuLyoqIEludGVyZmFjZSBoYW5kbGluZyBhIHNpbmdsZSByZXNvdXJjZSBzdWJzY3JpcHRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uIHtcbiAgYWRkKGZyZXF1ZW5jeT86IG51bWJlcik6IHZvaWQ7XG4gIHJlbW92ZShmcmVxdWVuY3k/OiBudW1iZXIpOiBib29sZWFuO1xuICBjbGVhbnVwKCk6IHZvaWQ7XG59XG5cbi8qKiBUaGUgc3RhdGljIGNsYXNzIHRoYXQgY29uc3RydWN0cyBTdWJzY3JpcHRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uQ29uc3RydWN0YWJsZSB7XG4gIG5ldyAoXG4gICAgYWN0aW9uOiBPbWl0PFN1YnNjcmliZUFjdGlvbiwgJ3R5cGUnPixcbiAgICBjb250cm9sbGVyOiBDb250cm9sbGVyLFxuICApOiBTdWJzY3JpcHRpb247XG59XG5cbi8qKiBIYW5kbGVzIHN1YnNjcmlwdGlvbiBhY3Rpb25zIC0+IGZldGNoIG9yIHNldCBhY3Rpb25zXG4gKlxuICogQ29uc3RydWN0b3IgdGFrZXMgYSBTdWJzY3JpcHRpb25Db25zdHJ1Y3RhYmxlIGNsYXNzIHRvIGNvbnRyb2wgaG93XG4gKiBzdWJzY3JpcHRpb25zIGFyZSBoYW5kbGVkLiAoZS5nLiwgcG9sbGluZywgd2Vic29ja2V0cylcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9TdWJzY3JpcHRpb25NYW5hZ2VyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN1YnNjcmlwdGlvbk1hbmFnZXI8XG4gIFMgZXh0ZW5kcyBTdWJzY3JpcHRpb25Db25zdHJ1Y3RhYmxlID0gU3Vic2NyaXB0aW9uQ29uc3RydWN0YWJsZSxcbj4gaW1wbGVtZW50cyBNYW5hZ2VyPEFjdGlvbnM+XG57XG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb25zOiB7XG4gICAgW2tleTogc3RyaW5nXTogSW5zdGFuY2VUeXBlPFM+O1xuICB9ID0ge307XG5cbiAgZGVjbGFyZSBwcm90ZWN0ZWQgcmVhZG9ubHkgU3Vic2NyaXB0aW9uOiBTO1xuICBwcm90ZWN0ZWQgY29udHJvbGxlcjogQ29udHJvbGxlciA9IG5ldyBDb250cm9sbGVyKCk7XG5cbiAgY29uc3RydWN0b3IoU3Vic2NyaXB0aW9uOiBTKSB7XG4gICAgdGhpcy5TdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb247XG4gIH1cblxuICBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlID0gY29udHJvbGxlciA9PiB7XG4gICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjtcbiAgICByZXR1cm4gbmV4dCA9PiBhY3Rpb24gPT4ge1xuICAgICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIFNVQlNDUklCRTpcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVTdWJzY3JpYmUoYWN0aW9uKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIGNhc2UgVU5TVUJTQ1JJQkU6XG4gICAgICAgICAgdGhpcy5oYW5kbGVVbnN1YnNjcmliZShhY3Rpb24pO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pO1xuICAgICAgfVxuICAgIH07XG4gIH07XG5cbiAgLyoqIEVuc3VyZXMgYWxsIHN1YnNjcmlwdGlvbnMgYXJlIGNsZWFuZWQgdXAuICovXG4gIGNsZWFudXAoKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5zdWJzY3JpcHRpb25zKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XS5jbGVhbnVwKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyAncmRjL3N1YnNjcmliZScgYWN0aW9uLlxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVN1YnNjcmliZShhY3Rpb246IFN1YnNjcmliZUFjdGlvbikge1xuICAgIGNvbnN0IGtleSA9IGFjdGlvbi5rZXk7XG5cbiAgICBpZiAoa2V5IGluIHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgY29uc3QgZnJlcXVlbmN5ID0gYWN0aW9uLmVuZHBvaW50LnBvbGxGcmVxdWVuY3k7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XS5hZGQoZnJlcXVlbmN5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2tleV0gPSBuZXcgdGhpcy5TdWJzY3JpcHRpb24oXG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLFxuICAgICAgKSBhcyBJbnN0YW5jZVR5cGU8Uz47XG4gICAgfVxuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyAncmRjL3Vuc3Vic2NyaWJlJyBhY3Rpb24uXG4gICAqXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlVW5zdWJzY3JpYmUoYWN0aW9uOiBVbnN1YnNjcmliZUFjdGlvbikge1xuICAgIGNvbnN0IGtleSA9IGFjdGlvbi5rZXk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChrZXkgaW4gdGhpcy5zdWJzY3JpcHRpb25zKSB7XG4gICAgICBjb25zdCBmcmVxdWVuY3kgPSBhY3Rpb24uZW5kcG9pbnQucG9sbEZyZXF1ZW5jeTtcbiAgICAgIGNvbnN0IGVtcHR5ID0gdGhpcy5zdWJzY3JpcHRpb25zW2tleV0ucmVtb3ZlKGZyZXF1ZW5jeSk7XG4gICAgICBpZiAoZW1wdHkpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuc3Vic2NyaXB0aW9uc1trZXldO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY29uc29sZS5lcnJvcihgTWlzbWF0Y2hlZCB1bnN1YnNjcmliZTogJHtrZXl9IGlzIG5vdCBzdWJzY3JpYmVkYCk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsRUFBRUMsV0FBVyxRQUFRLG1CQUFtQjtBQUMxRCxPQUFPQyxVQUFVLE1BQU0s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
78
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVUJTQ1JJQkUiLCJVTlNVQlNDUklCRSIsIkNvbnRyb2xsZXIiLCJTdWJzY3JpcHRpb25NYW5hZ2VyIiwiY29uc3RydWN0b3IiLCJTdWJzY3JpcHRpb24iLCJzdWJzY3JpcHRpb25zIiwiY29udHJvbGxlciIsIm1pZGRsZXdhcmUiLCJuZXh0IiwiYWN0aW9uIiwidHlwZSIsImhhbmRsZVN1YnNjcmliZSIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJQcm9taXNlIiwicmVzb2x2ZSIsImhhbmRsZVVuc3Vic2NyaWJlIiwiY2xlYW51cCIsImtleSIsImZyZXF1ZW5jeSIsImVuZHBvaW50IiwicG9sbEZyZXF1ZW5jeSIsImFkZCIsImVtcHR5IiwicmVtb3ZlIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvU3Vic2NyaXB0aW9uTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTVUJTQ1JJQkUsIFVOU1VCU0NSSUJFIH0gZnJvbSAnLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgTWFuYWdlcixcbiAgTWlkZGxld2FyZSxcbiAgVW5zdWJzY3JpYmVBY3Rpb24sXG4gIFN1YnNjcmliZUFjdGlvbixcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG50eXBlIEFjdGlvbnMgPSBVbnN1YnNjcmliZUFjdGlvbiB8IFN1YnNjcmliZUFjdGlvbjtcblxuLyoqIEludGVyZmFjZSBoYW5kbGluZyBhIHNpbmdsZSByZXNvdXJjZSBzdWJzY3JpcHRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uIHtcbiAgYWRkKGZyZXF1ZW5jeT86IG51bWJlcik6IHZvaWQ7XG4gIHJlbW92ZShmcmVxdWVuY3k/OiBudW1iZXIpOiBib29sZWFuO1xuICBjbGVhbnVwKCk6IHZvaWQ7XG59XG5cbi8qKiBUaGUgc3RhdGljIGNsYXNzIHRoYXQgY29uc3RydWN0cyBTdWJzY3JpcHRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uQ29uc3RydWN0YWJsZSB7XG4gIG5ldyAoXG4gICAgYWN0aW9uOiBPbWl0PFN1YnNjcmliZUFjdGlvbiwgJ3R5cGUnPixcbiAgICBjb250cm9sbGVyOiBDb250cm9sbGVyLFxuICApOiBTdWJzY3JpcHRpb247XG59XG5cbi8qKiBIYW5kbGVzIHN1YnNjcmlwdGlvbiBhY3Rpb25zIC0+IGZldGNoIG9yIHNldCBhY3Rpb25zXG4gKlxuICogQ29uc3RydWN0b3IgdGFrZXMgYSBTdWJzY3JpcHRpb25Db25zdHJ1Y3RhYmxlIGNsYXNzIHRvIGNvbnRyb2wgaG93XG4gKiBzdWJzY3JpcHRpb25zIGFyZSBoYW5kbGVkLiAoZS5nLiwgcG9sbGluZywgd2Vic29ja2V0cylcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9TdWJzY3JpcHRpb25NYW5hZ2VyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN1YnNjcmlwdGlvbk1hbmFnZXI8XG4gIFMgZXh0ZW5kcyBTdWJzY3JpcHRpb25Db25zdHJ1Y3RhYmxlID0gU3Vic2NyaXB0aW9uQ29uc3RydWN0YWJsZSxcbj4gaW1wbGVtZW50cyBNYW5hZ2VyPEFjdGlvbnM+XG57XG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb25zOiB7XG4gICAgW2tleTogc3RyaW5nXTogSW5zdGFuY2VUeXBlPFM+O1xuICB9ID0ge307XG5cbiAgZGVjbGFyZSBwcm90ZWN0ZWQgcmVhZG9ubHkgU3Vic2NyaXB0aW9uOiBTO1xuICBwcm90ZWN0ZWQgY29udHJvbGxlcjogQ29udHJvbGxlciA9IG5ldyBDb250cm9sbGVyKCk7XG5cbiAgY29uc3RydWN0b3IoU3Vic2NyaXB0aW9uOiBTKSB7XG4gICAgdGhpcy5TdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb247XG4gIH1cblxuICBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlID0gY29udHJvbGxlciA9PiB7XG4gICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjtcbiAgICByZXR1cm4gbmV4dCA9PiBhY3Rpb24gPT4ge1xuICAgICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIFNVQlNDUklCRTpcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVTdWJzY3JpYmUoYWN0aW9uKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIGNhc2UgVU5TVUJTQ1JJQkU6XG4gICAgICAgICAgdGhpcy5oYW5kbGVVbnN1YnNjcmliZShhY3Rpb24pO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pO1xuICAgICAgfVxuICAgIH07XG4gIH07XG5cbiAgLyoqIEVuc3VyZXMgYWxsIHN1YnNjcmlwdGlvbnMgYXJlIGNsZWFuZWQgdXAuICovXG4gIGNsZWFudXAoKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5zdWJzY3JpcHRpb25zKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XS5jbGVhbnVwKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyAncmRjL3N1YnNjcmliZScgYWN0aW9uLlxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVN1YnNjcmliZShhY3Rpb246IFN1YnNjcmliZUFjdGlvbikge1xuICAgIGNvbnN0IGtleSA9IGFjdGlvbi5rZXk7XG5cbiAgICBpZiAoa2V5IGluIHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgY29uc3QgZnJlcXVlbmN5ID0gYWN0aW9uLmVuZHBvaW50LnBvbGxGcmVxdWVuY3k7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XS5hZGQoZnJlcXVlbmN5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2tleV0gPSBuZXcgdGhpcy5TdWJzY3JpcHRpb24oXG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLFxuICAgICAgKSBhcyBJbnN0YW5jZVR5cGU8Uz47XG4gICAgfVxuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyAncmRjL3Vuc3Vic2NyaWJlJyBhY3Rpb24uXG4gICAqXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlVW5zdWJzY3JpYmUoYWN0aW9uOiBVbnN1YnNjcmliZUFjdGlvbikge1xuICAgIGNvbnN0IGtleSA9IGFjdGlvbi5rZXk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChrZXkgaW4gdGhpcy5zdWJzY3JpcHRpb25zKSB7XG4gICAgICBjb25zdCBmcmVxdWVuY3kgPSBhY3Rpb24uZW5kcG9pbnQucG9sbEZyZXF1ZW5jeTtcbiAgICAgIGNvbnN0IGVtcHR5ID0gdGhpcy5zdWJzY3JpcHRpb25zW2tleV0ucmVtb3ZlKGZyZXF1ZW5jeSk7XG4gICAgICBpZiAoZW1wdHkpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuc3Vic2NyaXB0aW9uc1trZXldO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY29uc29sZS5lcnJvcihgTWlzbWF0Y2hlZCB1bnN1YnNjcmliZTogJHtrZXl9IGlzIG5vdCBzdWJzY3JpYmVkYCk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsRUFBRUMsV0FBVyxRQUFRLG1CQUFtQjtBQUMxRCxPQUFPQyxVQUFVLE1BQU0sNkJBQTZCOztBQVVwRDs7QUFP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
@@ -7,13 +7,9 @@ export default function applyManager(managers, controller) {
7
7
  }
8
8
  return managers.map((manager, i) => {
9
9
  if (!manager.middleware) manager.middleware = manager.getMiddleware == null ? void 0 : manager.getMiddleware();
10
- return ({
11
- dispatch,
12
- getState
13
- }) => {
10
+ return api => {
14
11
  if (i === 0) {
15
- controller.dispatch = dispatch;
16
- controller.getState = getState;
12
+ controller.bindMiddleware(api);
17
13
  }
18
14
  // controller is a superset of the middleware API
19
15
  return manager.middleware(controller);
@@ -24,4 +20,4 @@ export default function applyManager(managers, controller) {
24
20
  /* These should be compatible with redux */
25
21
 
26
22
  /* The next are types from React; but we don't want dependencies on it */
27
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOZXR3b3JrTWFuYWdlciIsImFwcGx5TWFuYWdlciIsIm1hbmFnZXJzIiwiY29udHJvbGxlciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImZpbmQiLCJtZ3IiLCJjb25zb2xlIiwid2FybiIsIm1hcCIsIm1hbmFnZXIiLCJpIiwibWlkZGxld2FyZSIsImdldE1pZGRsZXdhcmUiLCJkaXNwYXRjaCIsImdldFN0YXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvYXBwbHlNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBOZXR3b3JrTWFuYWdlciBmcm9tICcuL05ldHdvcmtNYW5hZ2VyLmpzJztcbmltcG9ydCB0eXBlIENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB7IE1hbmFnZXIgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFwcGx5TWFuYWdlcihcbiAgbWFuYWdlcnM6IE1hbmFnZXJbXSxcbiAgY29udHJvbGxlcjogQ29udHJvbGxlcixcbik6IFJlZHV4TWlkZGxld2FyZVtdIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKFxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAhbWFuYWdlcnMuZmluZChtZ3IgPT4gbWdyIGluc3RhbmNlb2YgTmV0d29ya01hbmFnZXIpXG4gICkge1xuICAgIGNvbnNvbGUud2FybignTmV0d29ya01hbmFnZXIgbm90IGZvdW5kOyB0aGlzIGlzIGEgcmVxdWlyZWQgbWFuYWdlci4nKTtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICAnU2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2d1aWRlcy9yZWR1eCBmb3IgaG9va2luZyB1cCByZWR1eCcsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gbWFuYWdlcnMubWFwKChtYW5hZ2VyLCBpKSA9PiB7XG4gICAgaWYgKCFtYW5hZ2VyLm1pZGRsZXdhcmUpIG1hbmFnZXIubWlkZGxld2FyZSA9IG1hbmFnZXIuZ2V0TWlkZGxld2FyZT8uKCk7XG4gICAgcmV0dXJuICh7IGRpc3BhdGNoLCBnZXRTdGF0ZSB9KSA9PiB7XG4gICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAoY29udHJvbGxlciBhcyBhbnkpLmRpc3BhdGNoID0gZGlzcGF0Y2g7XG4gICAgICAgIChjb250cm9sbGVyIGFzIGFueSkuZ2V0U3RhdGUgPSBnZXRTdGF0ZTtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnRyb2xsZXIgaXMgYSBzdXBlcnNldCBvZiB0aGUgbWlkZGxld2FyZSBBUElcbiAgICAgIHJldHVybiAobWFuYWdlciBhcyBNYW5hZ2VyICYgeyBtaWRkbGV3YXJlOiBSZWR1eE1pZGRsZXdhcmUgfSkubWlkZGxld2FyZShcbiAgICAgICAgY29udHJvbGxlciBhcyBDb250cm9sbGVyPGFueT4sXG4gICAgICApO1xuICAgIH07XG4gIH0pO1xufVxuXG4vKiBUaGVzZSBzaG91bGQgYmUgY29tcGF0aWJsZSB3aXRoIHJlZHV4ICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZHV4TWlkZGxld2FyZUFQSTxcbiAgUiBleHRlbmRzIFJlZHVjZXI8YW55LCBhbnk+ID0gUmVkdWNlcjxhbnksIGFueT4sXG4+IHtcbiAgZ2V0U3RhdGU6ICgpID0+IFJlZHVjZXJTdGF0ZTxSPjtcbiAgZGlzcGF0Y2g6IFJlYWN0RGlzcGF0Y2g8Uj47XG59XG5leHBvcnQgdHlwZSBSZWR1eE1pZGRsZXdhcmUgPSA8UiBleHRlbmRzIFJlZHVjZXI8YW55LCBhbnk+Pih7XG4gIGRpc3BhdGNoLFxufTogUmVkdXhNaWRkbGV3YXJlQVBJPFI+KSA9PiAobmV4dDogUmVhY3REaXNwYXRjaDxSPikgPT4gUmVhY3REaXNwYXRjaDxSPjtcblxuLyogVGhlIG5leHQgYXJlIHR5cGVzIGZyb20gUmVhY3Q7IGJ1dCB3ZSBkb24ndCB3YW50IGRlcGVuZGVuY2llcyBvbiBpdCAqL1xuZXhwb3J0IHR5cGUgUmVhY3REaXNwYXRjaDxSIGV4dGVuZHMgUmVkdWNlcjxhbnksIGFueT4+ID0gKFxuICBhY3Rpb246IFJlZHVjZXJBY3Rpb248Uj4sXG4pID0+IFByb21pc2U8dm9pZD47XG5cbmV4cG9ydCB0eXBlIFJlZHVjZXI8UywgQT4gPSAocHJldlN0YXRlOiBTLCBhY3Rpb246IEEpID0+IFM7XG5leHBvcnQgdHlwZSBSZWR1Y2VyU3RhdGU8UiBleHRlbmRzIFJlZHVjZXI8YW55LCBhbnk+PiA9XG4gIFIgZXh0ZW5kcyBSZWR1Y2VyPGluZmVyIFMsIGFueT4gPyBTIDogbmV2ZXI7XG5leHBvcnQgdHlwZSBSZWR1Y2VyQWN0aW9uPFIgZXh0ZW5kcyBSZWR1Y2VyPGFueSwgYW55Pj4gPVxuICBSIGV4dGVuZHMgUmVkdWNlcjxhbnksIGluZmVyIEE+ID8gQSA6IG5ldmVyO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxjQUFjLE1BQU0scUJBQXFCO0FBSWhELGVBQWUsU0FBU0MsWUFBWUEsQ0FDbENDLFFBQW1CLEVBQ25CQyxVQUFzQixFQUNIO0VBQ25CO0VBQ0EsSUFDRUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLElBQ3JDLENBQUNKLFFBQVEsQ0FBQ0ssSUFBSSxDQUFDQyxHQUFHLElBQUlBLEdBQUcsWUFBWVIsY0FBYyxDQUFDLEVBQ3BEO0lBQ0FTLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLHVEQUF1RCxDQUFDO0lBQ3JFRCxPQUFPLENBQUNDLElBQUksQ0FDVixrRUFDRixDQUFDO0VBQ0g7RUFDQSxPQUFPUixRQUFRLENBQUNTLEdBQUcsQ0FBQyxDQUFDQyxPQUFPLEVBQUVDLENBQUMsS0FBSztJQUNsQyxJQUFJLENBQUNELE9BQU8sQ0FBQ0UsVUFBVSxFQUFFRixPQUFPLENBQUNFLFVBQVUsR0FBR0YsT0FBTyxDQUFDRyxhQUFhLG9CQUFyQkgsT0FBTyxDQUFDRyxhQUFhLENBQUcsQ0FBQztJQUN2RSxPQUFPLENBQUM7TUFBRUMsUUFBUTtNQUFFQztJQUFTLENBQUMsS0FBSztNQUNqQyxJQUFJSixDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ1ZWLFVBQVUsQ0FBU2EsUUFBUSxHQUFHQSxRQUFRO1FBQ3RDYixVQUFVLENBQVNjLFFBQVEsR0FBR0EsUUFBUTtNQUN6QztNQUNBO01BQ0EsT0FBUUwsT0FBTyxDQUErQ0UsVUFBVSxDQUN0RVgsVUFDRixDQUFDO0lBQ0gsQ0FBQztFQUNILENBQUMsQ0FBQztBQUNKOztBQUVBOztBQVdBIiwiaWdub3JlTGlzdCI6W119
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOZXR3b3JrTWFuYWdlciIsImFwcGx5TWFuYWdlciIsIm1hbmFnZXJzIiwiY29udHJvbGxlciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImZpbmQiLCJtZ3IiLCJjb25zb2xlIiwid2FybiIsIm1hcCIsIm1hbmFnZXIiLCJpIiwibWlkZGxld2FyZSIsImdldE1pZGRsZXdhcmUiLCJhcGkiLCJiaW5kTWlkZGxld2FyZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2VyL2FwcGx5TWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTmV0d29ya01hbmFnZXIgZnJvbSAnLi9OZXR3b3JrTWFuYWdlci5qcyc7XG5pbXBvcnQgdHlwZSBDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgeyBNYW5hZ2VyIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhcHBseU1hbmFnZXIoXG4gIG1hbmFnZXJzOiBNYW5hZ2VyW10sXG4gIGNvbnRyb2xsZXI6IENvbnRyb2xsZXIsXG4pOiBSZWR1eE1pZGRsZXdhcmVbXSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmIChcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgIW1hbmFnZXJzLmZpbmQobWdyID0+IG1nciBpbnN0YW5jZW9mIE5ldHdvcmtNYW5hZ2VyKVxuICApIHtcbiAgICBjb25zb2xlLndhcm4oJ05ldHdvcmtNYW5hZ2VyIG5vdCBmb3VuZDsgdGhpcyBpcyBhIHJlcXVpcmVkIG1hbmFnZXIuJyk7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgJ1NlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9ndWlkZXMvcmVkdXggZm9yIGhvb2tpbmcgdXAgcmVkdXgnLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIG1hbmFnZXJzLm1hcCgobWFuYWdlciwgaSkgPT4ge1xuICAgIGlmICghbWFuYWdlci5taWRkbGV3YXJlKSBtYW5hZ2VyLm1pZGRsZXdhcmUgPSBtYW5hZ2VyLmdldE1pZGRsZXdhcmU/LigpO1xuICAgIHJldHVybiAoYXBpOiBSZWR1eE1pZGRsZXdhcmVBUEkpID0+IHtcbiAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgIGNvbnRyb2xsZXIuYmluZE1pZGRsZXdhcmUoYXBpKTtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnRyb2xsZXIgaXMgYSBzdXBlcnNldCBvZiB0aGUgbWlkZGxld2FyZSBBUElcbiAgICAgIHJldHVybiAobWFuYWdlciBhcyBNYW5hZ2VyICYgeyBtaWRkbGV3YXJlOiBSZWR1eE1pZGRsZXdhcmUgfSkubWlkZGxld2FyZShcbiAgICAgICAgY29udHJvbGxlciBhcyBhbnksXG4gICAgICApO1xuICAgIH07XG4gIH0pO1xufVxuXG4vKiBUaGVzZSBzaG91bGQgYmUgY29tcGF0aWJsZSB3aXRoIHJlZHV4ICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZHV4TWlkZGxld2FyZUFQSTxcbiAgUiBleHRlbmRzIFJlZHVjZXI8YW55LCBhbnk+ID0gUmVkdWNlcjxhbnksIGFueT4sXG4+IHtcbiAgZ2V0U3RhdGU6ICgpID0+IFJlZHVjZXJTdGF0ZTxSPjtcbiAgZGlzcGF0Y2g6IFJlYWN0RGlzcGF0Y2g8Uj47XG59XG5leHBvcnQgdHlwZSBSZWR1eE1pZGRsZXdhcmUgPSA8UiBleHRlbmRzIFJlZHVjZXI8YW55LCBhbnk+Pih7XG4gIGRpc3BhdGNoLFxufTogUmVkdXhNaWRkbGV3YXJlQVBJPFI+KSA9PiAobmV4dDogUmVhY3REaXNwYXRjaDxSPikgPT4gUmVhY3REaXNwYXRjaDxSPjtcblxuLyogVGhlIG5leHQgYXJlIHR5cGVzIGZyb20gUmVhY3Q7IGJ1dCB3ZSBkb24ndCB3YW50IGRlcGVuZGVuY2llcyBvbiBpdCAqL1xuZXhwb3J0IHR5cGUgUmVhY3REaXNwYXRjaDxSIGV4dGVuZHMgUmVkdWNlcjxhbnksIGFueT4+ID0gKFxuICBhY3Rpb246IFJlZHVjZXJBY3Rpb248Uj4sXG4pID0+IFByb21pc2U8dm9pZD47XG5cbmV4cG9ydCB0eXBlIFJlZHVjZXI8UywgQT4gPSAocHJldlN0YXRlOiBTLCBhY3Rpb246IEEpID0+IFM7XG5leHBvcnQgdHlwZSBSZWR1Y2VyU3RhdGU8UiBleHRlbmRzIFJlZHVjZXI8YW55LCBhbnk+PiA9XG4gIFIgZXh0ZW5kcyBSZWR1Y2VyPGluZmVyIFMsIGFueT4gPyBTIDogbmV2ZXI7XG5leHBvcnQgdHlwZSBSZWR1Y2VyQWN0aW9uPFIgZXh0ZW5kcyBSZWR1Y2VyPGFueSwgYW55Pj4gPVxuICBSIGV4dGVuZHMgUmVkdWNlcjxhbnksIGluZmVyIEE+ID8gQSA6IG5ldmVyO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxjQUFjLE1BQU0scUJBQXFCO0FBSWhELGVBQWUsU0FBU0MsWUFBWUEsQ0FDbENDLFFBQW1CLEVBQ25CQyxVQUFzQixFQUNIO0VBQ25CO0VBQ0EsSUFDRUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLElBQ3JDLENBQUNKLFFBQVEsQ0FBQ0ssSUFBSSxDQUFDQyxHQUFHLElBQUlBLEdBQUcsWUFBWVIsY0FBYyxDQUFDLEVBQ3BEO0lBQ0FTLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLHVEQUF1RCxDQUFDO0lBQ3JFRCxPQUFPLENBQUNDLElBQUksQ0FDVixrRUFDRixDQUFDO0VBQ0g7RUFDQSxPQUFPUixRQUFRLENBQUNTLEdBQUcsQ0FBQyxDQUFDQyxPQUFPLEVBQUVDLENBQUMsS0FBSztJQUNsQyxJQUFJLENBQUNELE9BQU8sQ0FBQ0UsVUFBVSxFQUFFRixPQUFPLENBQUNFLFVBQVUsR0FBR0YsT0FBTyxDQUFDRyxhQUFhLG9CQUFyQkgsT0FBTyxDQUFDRyxhQUFhLENBQUcsQ0FBQztJQUN2RSxPQUFRQyxHQUF1QixJQUFLO01BQ2xDLElBQUlILENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDWFYsVUFBVSxDQUFDYyxjQUFjLENBQUNELEdBQUcsQ0FBQztNQUNoQztNQUNBO01BQ0EsT0FBUUosT0FBTyxDQUErQ0UsVUFBVSxDQUN0RVgsVUFDRixDQUFDO0lBQ0gsQ0FBQztFQUNILENBQUMsQ0FBQztBQUNKOztBQUVBOztBQVdBIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,15 @@
1
+ export default function initManager(managers, controller, initialState) {
2
+ return () => {
3
+ managers.forEach(manager => {
4
+ manager.init == null || manager.init(initialState);
5
+ });
6
+ controller.gcPolicy.init(controller);
7
+ return () => {
8
+ managers.forEach(manager => {
9
+ manager.cleanup();
10
+ });
11
+ controller.gcPolicy.cleanup();
12
+ };
13
+ };
14
+ }
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbml0TWFuYWdlciIsIm1hbmFnZXJzIiwiY29udHJvbGxlciIsImluaXRpYWxTdGF0ZSIsImZvckVhY2giLCJtYW5hZ2VyIiwiaW5pdCIsImdjUG9saWN5IiwiY2xlYW51cCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2VyL2luaXRNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB7IE1hbmFnZXIsIFN0YXRlIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpbml0TWFuYWdlcihcbiAgbWFuYWdlcnM6IE1hbmFnZXJbXSxcbiAgY29udHJvbGxlcjogQ29udHJvbGxlcixcbiAgaW5pdGlhbFN0YXRlOiBTdGF0ZTx1bmtub3duPixcbikge1xuICByZXR1cm4gKCkgPT4ge1xuICAgIG1hbmFnZXJzLmZvckVhY2gobWFuYWdlciA9PiB7XG4gICAgICBtYW5hZ2VyLmluaXQ/Lihpbml0aWFsU3RhdGUpO1xuICAgIH0pO1xuICAgIGNvbnRyb2xsZXIuZ2NQb2xpY3kuaW5pdChjb250cm9sbGVyKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgbWFuYWdlcnMuZm9yRWFjaChtYW5hZ2VyID0+IHtcbiAgICAgICAgbWFuYWdlci5jbGVhbnVwKCk7XG4gICAgICB9KTtcbiAgICAgIGNvbnRyb2xsZXIuZ2NQb2xpY3kuY2xlYW51cCgpO1xuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQUdBLGVBQWUsU0FBU0EsV0FBV0EsQ0FDakNDLFFBQW1CLEVBQ25CQyxVQUFzQixFQUN0QkMsWUFBNEIsRUFDNUI7RUFDQSxPQUFPLE1BQU07SUFDWEYsUUFBUSxDQUFDRyxPQUFPLENBQUNDLE9BQU8sSUFBSTtNQUMxQkEsT0FBTyxDQUFDQyxJQUFJLFlBQVpELE9BQU8sQ0FBQ0MsSUFBSSxDQUFHSCxZQUFZLENBQUM7SUFDOUIsQ0FBQyxDQUFDO0lBQ0ZELFVBQVUsQ0FBQ0ssUUFBUSxDQUFDRCxJQUFJLENBQUNKLFVBQVUsQ0FBQztJQUNwQyxPQUFPLE1BQU07TUFDWEQsUUFBUSxDQUFDRyxPQUFPLENBQUNDLE9BQU8sSUFBSTtRQUMxQkEsT0FBTyxDQUFDRyxPQUFPLENBQUMsQ0FBQztNQUNuQixDQUFDLENBQUM7TUFDRk4sVUFBVSxDQUFDSyxRQUFRLENBQUNDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7RUFDSCxDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,151 @@
1
+ import { GC } from '../actionTypes.js';
2
+ export class GCPolicy {
3
+ constructor({
4
+ // every 5 min
5
+ intervalMS = 60 * 1000 * 5,
6
+ expiryMultiplier = 2,
7
+ expiresAt
8
+ } = {}) {
9
+ this.endpointCount = new Map();
10
+ this.entityCount = new Map();
11
+ this.endpointsQ = new Set();
12
+ this.entitiesQ = [];
13
+ if (expiresAt) {
14
+ this.expiresAt = expiresAt.bind(this);
15
+ }
16
+ this.options = {
17
+ intervalMS,
18
+ expiryMultiplier
19
+ };
20
+ }
21
+ init(controller) {
22
+ this.controller = controller;
23
+ this.intervalId = setInterval(() => {
24
+ this.idleCallback(() => this.runSweep(), {
25
+ timeout: 1000
26
+ });
27
+ }, this.options.intervalMS);
28
+ }
29
+ cleanup() {
30
+ clearInterval(this.intervalId);
31
+ }
32
+ createCountRef({
33
+ key,
34
+ paths = []
35
+ }) {
36
+ // increment
37
+ return () => {
38
+ var _this$endpointCount$g;
39
+ if (key) this.endpointCount.set(key, ((_this$endpointCount$g = this.endpointCount.get(key)) != null ? _this$endpointCount$g : 0) + 1);
40
+ paths.forEach(path => {
41
+ var _instanceCount$get;
42
+ if (!this.entityCount.has(path.key)) {
43
+ this.entityCount.set(path.key, new Map());
44
+ }
45
+ const instanceCount = this.entityCount.get(path.key);
46
+ instanceCount.set(path.pk, ((_instanceCount$get = instanceCount.get(path.pk)) != null ? _instanceCount$get : 0) + 1);
47
+ });
48
+
49
+ // decrement
50
+ return () => {
51
+ if (key) {
52
+ const currentCount = this.endpointCount.get(key);
53
+ if (currentCount !== undefined) {
54
+ if (currentCount <= 1) {
55
+ this.endpointCount.delete(key);
56
+ // queue for cleanup
57
+ this.endpointsQ.add(key);
58
+ } else {
59
+ this.endpointCount.set(key, currentCount - 1);
60
+ }
61
+ }
62
+ }
63
+ paths.forEach(path => {
64
+ if (!this.entityCount.has(path.key)) {
65
+ return;
66
+ }
67
+ const instanceCount = this.entityCount.get(path.key);
68
+ const entityCount = instanceCount.get(path.pk);
69
+ if (entityCount !== undefined) {
70
+ if (entityCount <= 1) {
71
+ instanceCount.delete(path.pk);
72
+ // queue for cleanup
73
+ this.entitiesQ.push(path);
74
+ } else {
75
+ instanceCount.set(path.pk, entityCount - 1);
76
+ }
77
+ }
78
+ });
79
+ };
80
+ };
81
+ }
82
+ expiresAt({
83
+ fetchedAt,
84
+ expiresAt
85
+ }) {
86
+ return Math.max((expiresAt - fetchedAt) * this.options.expiryMultiplier, 120000) + fetchedAt;
87
+ }
88
+ runSweep() {
89
+ const state = this.controller.getState();
90
+ const entities = [];
91
+ const endpoints = [];
92
+ const now = Date.now();
93
+ const nextEndpointsQ = new Set();
94
+ for (const key of this.endpointsQ) {
95
+ var _state$meta$key;
96
+ if (!this.endpointCount.has(key) && this.expiresAt((_state$meta$key = state.meta[key]) != null ? _state$meta$key : {
97
+ fetchedAt: 0,
98
+ date: 0,
99
+ expiresAt: 0
100
+ }) < now) {
101
+ endpoints.push(key);
102
+ } else {
103
+ nextEndpointsQ.add(key);
104
+ }
105
+ }
106
+ this.endpointsQ = nextEndpointsQ;
107
+ const nextEntitiesQ = [];
108
+ for (const path of this.entitiesQ) {
109
+ var _this$entityCount$get, _state$entityMeta$pat, _state$entityMeta$pat2;
110
+ if (!((_this$entityCount$get = this.entityCount.get(path.key)) != null && _this$entityCount$get.has(path.pk)) && this.expiresAt((_state$entityMeta$pat = (_state$entityMeta$pat2 = state.entityMeta[path.key]) == null ? void 0 : _state$entityMeta$pat2[path.pk]) != null ? _state$entityMeta$pat : {
111
+ fetchedAt: 0,
112
+ date: 0,
113
+ expiresAt: 0
114
+ }) < now) {
115
+ entities.push(path);
116
+ } else {
117
+ nextEntitiesQ.push(path);
118
+ }
119
+ }
120
+ this.entitiesQ = nextEntitiesQ;
121
+ if (entities.length || endpoints.length) {
122
+ this.controller.dispatch({
123
+ type: GC,
124
+ entities,
125
+ endpoints
126
+ });
127
+ }
128
+ }
129
+
130
+ /** Calls the callback when client is not 'busy' with high priority interaction tasks
131
+ *
132
+ * Override for platform-specific implementations
133
+ */
134
+ idleCallback(callback, options) {
135
+ if (typeof requestIdleCallback === 'function') {
136
+ requestIdleCallback(callback, options);
137
+ } else {
138
+ callback();
139
+ }
140
+ }
141
+ }
142
+ export class ImmortalGCPolicy {
143
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
144
+ init() {}
145
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
146
+ cleanup() {}
147
+ createCountRef() {
148
+ return () => () => undefined;
149
+ }
150
+ }
151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJHQyIsIkdDUG9saWN5IiwiY29uc3RydWN0b3IiLCJpbnRlcnZhbE1TIiwiZXhwaXJ5TXVsdGlwbGllciIsImV4cGlyZXNBdCIsImVuZHBvaW50Q291bnQiLCJNYXAiLCJlbnRpdHlDb3VudCIsImVuZHBvaW50c1EiLCJTZXQiLCJlbnRpdGllc1EiLCJiaW5kIiwib3B0aW9ucyIsImluaXQiLCJjb250cm9sbGVyIiwiaW50ZXJ2YWxJZCIsInNldEludGVydmFsIiwiaWRsZUNhbGxiYWNrIiwicnVuU3dlZXAiLCJ0aW1lb3V0IiwiY2xlYW51cCIsImNsZWFySW50ZXJ2YWwiLCJjcmVhdGVDb3VudFJlZiIsImtleSIsInBhdGhzIiwiX3RoaXMkZW5kcG9pbnRDb3VudCRnIiwic2V0IiwiZ2V0IiwiZm9yRWFjaCIsInBhdGgiLCJfaW5zdGFuY2VDb3VudCRnZXQiLCJoYXMiLCJpbnN0YW5jZUNvdW50IiwicGsiLCJjdXJyZW50Q291bnQiLCJ1bmRlZmluZWQiLCJkZWxldGUiLCJhZGQiLCJwdXNoIiwiZmV0Y2hlZEF0IiwiTWF0aCIsIm1heCIsInN0YXRlIiwiZ2V0U3RhdGUiLCJlbnRpdGllcyIsImVuZHBvaW50cyIsIm5vdyIsIkRhdGUiLCJuZXh0RW5kcG9pbnRzUSIsIl9zdGF0ZSRtZXRhJGtleSIsIm1ldGEiLCJkYXRlIiwibmV4dEVudGl0aWVzUSIsIl90aGlzJGVudGl0eUNvdW50JGdldCIsIl9zdGF0ZSRlbnRpdHlNZXRhJHBhdCIsIl9zdGF0ZSRlbnRpdHlNZXRhJHBhdDIiLCJlbnRpdHlNZXRhIiwibGVuZ3RoIiwiZGlzcGF0Y2giLCJ0eXBlIiwiY2FsbGJhY2siLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwiSW1tb3J0YWxHQ1BvbGljeSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZS9HQ1BvbGljeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVBhdGggfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcblxuaW1wb3J0IHsgR0MgfSBmcm9tICcuLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuXG5leHBvcnQgY2xhc3MgR0NQb2xpY3kgaW1wbGVtZW50cyBHQ0ludGVyZmFjZSB7XG4gIHByb3RlY3RlZCBlbmRwb2ludENvdW50ID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgcHJvdGVjdGVkIGVudGl0eUNvdW50ID0gbmV3IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIG51bWJlcj4+KCk7XG4gIHByb3RlY3RlZCBlbmRwb2ludHNRID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHByb3RlY3RlZCBlbnRpdGllc1E6IEVudGl0eVBhdGhbXSA9IFtdO1xuXG4gIGRlY2xhcmUgcHJvdGVjdGVkIGludGVydmFsSWQ6IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPjtcbiAgZGVjbGFyZSBwcm90ZWN0ZWQgY29udHJvbGxlcjogQ29udHJvbGxlcjtcbiAgZGVjbGFyZSBwcm90ZWN0ZWQgb3B0aW9uczogUmVxdWlyZWQ8T21pdDxHQ09wdGlvbnMsICdleHBpcmVzQXQnPj47XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIC8vIGV2ZXJ5IDUgbWluXG4gICAgaW50ZXJ2YWxNUyA9IDYwICogMTAwMCAqIDUsXG4gICAgZXhwaXJ5TXVsdGlwbGllciA9IDIsXG4gICAgZXhwaXJlc0F0LFxuICB9OiBHQ09wdGlvbnMgPSB7fSkge1xuICAgIGlmIChleHBpcmVzQXQpIHtcbiAgICAgIHRoaXMuZXhwaXJlc0F0ID0gZXhwaXJlc0F0LmJpbmQodGhpcyk7XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIGludGVydmFsTVMsXG4gICAgICBleHBpcnlNdWx0aXBsaWVyLFxuICAgIH07XG4gIH1cblxuICBpbml0KGNvbnRyb2xsZXI6IENvbnRyb2xsZXIpIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuXG4gICAgdGhpcy5pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5pZGxlQ2FsbGJhY2soKCkgPT4gdGhpcy5ydW5Td2VlcCgpLCB7IHRpbWVvdXQ6IDEwMDAgfSk7XG4gICAgfSwgdGhpcy5vcHRpb25zLmludGVydmFsTVMpO1xuICB9XG5cbiAgY2xlYW51cCgpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XG4gIH1cblxuICBjcmVhdGVDb3VudFJlZih7IGtleSwgcGF0aHMgPSBbXSB9OiB7IGtleT86IHN0cmluZzsgcGF0aHM/OiBFbnRpdHlQYXRoW10gfSkge1xuICAgIC8vIGluY3JlbWVudFxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoa2V5KVxuICAgICAgICB0aGlzLmVuZHBvaW50Q291bnQuc2V0KGtleSwgKHRoaXMuZW5kcG9pbnRDb3VudC5nZXQoa2V5KSA/PyAwKSArIDEpO1xuICAgICAgcGF0aHMuZm9yRWFjaChwYXRoID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmVudGl0eUNvdW50LmhhcyhwYXRoLmtleSkpIHtcbiAgICAgICAgICB0aGlzLmVudGl0eUNvdW50LnNldChwYXRoLmtleSwgbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5zdGFuY2VDb3VudCA9IHRoaXMuZW50aXR5Q291bnQuZ2V0KHBhdGgua2V5KSE7XG4gICAgICAgIGluc3RhbmNlQ291bnQuc2V0KHBhdGgucGssIChpbnN0YW5jZUNvdW50LmdldChwYXRoLnBrKSA/PyAwKSArIDEpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIGRlY3JlbWVudFxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb3VudCA9IHRoaXMuZW5kcG9pbnRDb3VudC5nZXQoa2V5KSE7XG4gICAgICAgICAgaWYgKGN1cnJlbnRDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudENvdW50IDw9IDEpIHtcbiAgICAgICAgICAgICAgdGhpcy5lbmRwb2ludENvdW50LmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgICAvLyBxdWV1ZSBmb3IgY2xlYW51cFxuICAgICAgICAgICAgICB0aGlzLmVuZHBvaW50c1EuYWRkKGtleSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmVuZHBvaW50Q291bnQuc2V0KGtleSwgY3VycmVudENvdW50IC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhdGhzLmZvckVhY2gocGF0aCA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLmVudGl0eUNvdW50LmhhcyhwYXRoLmtleSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgaW5zdGFuY2VDb3VudCA9IHRoaXMuZW50aXR5Q291bnQuZ2V0KHBhdGgua2V5KSE7XG4gICAgICAgICAgY29uc3QgZW50aXR5Q291bnQgPSBpbnN0YW5jZUNvdW50LmdldChwYXRoLnBrKSE7XG4gICAgICAgICAgaWYgKGVudGl0eUNvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChlbnRpdHlDb3VudCA8PSAxKSB7XG4gICAgICAgICAgICAgIGluc3RhbmNlQ291bnQuZGVsZXRlKHBhdGgucGspO1xuICAgICAgICAgICAgICAvLyBxdWV1ZSBmb3IgY2xlYW51cFxuICAgICAgICAgICAgICB0aGlzLmVudGl0aWVzUS5wdXNoKHBhdGgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaW5zdGFuY2VDb3VudC5zZXQocGF0aC5waywgZW50aXR5Q291bnQgLSAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGV4cGlyZXNBdCh7XG4gICAgZmV0Y2hlZEF0LFxuICAgIGV4cGlyZXNBdCxcbiAgfToge1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgIGRhdGU6IG51bWJlcjtcbiAgICBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgfSk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIE1hdGgubWF4KFxuICAgICAgICAoZXhwaXJlc0F0IC0gZmV0Y2hlZEF0KSAqIHRoaXMub3B0aW9ucy5leHBpcnlNdWx0aXBsaWVyLFxuICAgICAgICAxMjAwMDAsXG4gICAgICApICsgZmV0Y2hlZEF0XG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBydW5Td2VlcCgpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuY29udHJvbGxlci5nZXRTdGF0ZSgpO1xuICAgIGNvbnN0IGVudGl0aWVzOiBFbnRpdHlQYXRoW10gPSBbXTtcbiAgICBjb25zdCBlbmRwb2ludHM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcblxuICAgIGNvbnN0IG5leHRFbmRwb2ludHNRID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5lbmRwb2ludHNRKSB7XG4gICAgICBpZiAoXG4gICAgICAgICF0aGlzLmVuZHBvaW50Q291bnQuaGFzKGtleSkgJiZcbiAgICAgICAgdGhpcy5leHBpcmVzQXQoXG4gICAgICAgICAgc3RhdGUubWV0YVtrZXldID8/IHtcbiAgICAgICAgICAgIGZldGNoZWRBdDogMCxcbiAgICAgICAgICAgIGRhdGU6IDAsXG4gICAgICAgICAgICBleHBpcmVzQXQ6IDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgKSA8IG5vd1xuICAgICAgKSB7XG4gICAgICAgIGVuZHBvaW50cy5wdXNoKGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0RW5kcG9pbnRzUS5hZGQoa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lbmRwb2ludHNRID0gbmV4dEVuZHBvaW50c1E7XG5cbiAgICBjb25zdCBuZXh0RW50aXRpZXNROiBFbnRpdHlQYXRoW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHBhdGggb2YgdGhpcy5lbnRpdGllc1EpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuZW50aXR5Q291bnQuZ2V0KHBhdGgua2V5KT8uaGFzKHBhdGgucGspICYmXG4gICAgICAgIHRoaXMuZXhwaXJlc0F0KFxuICAgICAgICAgIHN0YXRlLmVudGl0eU1ldGFbcGF0aC5rZXldPy5bcGF0aC5wa10gPz8ge1xuICAgICAgICAgICAgZmV0Y2hlZEF0OiAwLFxuICAgICAgICAgICAgZGF0ZTogMCxcbiAgICAgICAgICAgIGV4cGlyZXNBdDogMCxcbiAgICAgICAgICB9LFxuICAgICAgICApIDwgbm93XG4gICAgICApIHtcbiAgICAgICAgZW50aXRpZXMucHVzaChwYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRFbnRpdGllc1EucHVzaChwYXRoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lbnRpdGllc1EgPSBuZXh0RW50aXRpZXNRO1xuXG4gICAgaWYgKGVudGl0aWVzLmxlbmd0aCB8fCBlbmRwb2ludHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNvbnRyb2xsZXIuZGlzcGF0Y2goeyB0eXBlOiBHQywgZW50aXRpZXMsIGVuZHBvaW50cyB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2FsbHMgdGhlIGNhbGxiYWNrIHdoZW4gY2xpZW50IGlzIG5vdCAnYnVzeScgd2l0aCBoaWdoIHByaW9yaXR5IGludGVyYWN0aW9uIHRhc2tzXG4gICAqXG4gICAqIE92ZXJyaWRlIGZvciBwbGF0Zm9ybS1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnNcbiAgICovXG4gIHByb3RlY3RlZCBpZGxlQ2FsbGJhY2soXG4gICAgY2FsbGJhY2s6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCxcbiAgICBvcHRpb25zPzogSWRsZVJlcXVlc3RPcHRpb25zLFxuICApIHtcbiAgICBpZiAodHlwZW9mIHJlcXVlc3RJZGxlQ2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2soY2FsbGJhY2ssIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYWxsYmFjaygpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW1tb3J0YWxHQ1BvbGljeSBpbXBsZW1lbnRzIEdDSW50ZXJmYWNlIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBpbml0KCkge31cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBjbGVhbnVwKCkge31cbiAgY3JlYXRlQ291bnRSZWYoKSB7XG4gICAgcmV0dXJuICgpID0+ICgpID0+IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdDT3B0aW9ucyB7XG4gIGludGVydmFsTVM/OiBudW1iZXI7XG4gIGV4cGlyeU11bHRpcGxpZXI/OiBudW1iZXI7XG4gIGV4cGlyZXNBdD86IChtZXRhOiB7XG4gICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgZGF0ZTogbnVtYmVyO1xuICAgIGZldGNoZWRBdDogbnVtYmVyO1xuICB9KSA9PiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNvdW50UmVmIHtcbiAgKHsga2V5LCBwYXRocyB9OiB7IGtleT86IHN0cmluZzsgcGF0aHM/OiBFbnRpdHlQYXRoW10gfSk6ICgpID0+ICgpID0+IHZvaWQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIEdDSW50ZXJmYWNlIHtcbiAgY3JlYXRlQ291bnRSZWY6IENyZWF0ZUNvdW50UmVmO1xuICBpbml0KGNvbnRyb2xsZXI6IENvbnRyb2xsZXIpOiB2b2lkO1xuICBjbGVhbnVwKCk6IHZvaWQ7XG59XG4iXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLEVBQUUsUUFBUSxtQkFBbUI7QUFHdEMsT0FBTyxNQUFNQyxRQUFRLENBQXdCO0VBVTNDQyxXQUFXQSxDQUFDO0lBQ1Y7SUFDQUMsVUFBVSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUMxQkMsZ0JBQWdCLEdBQUcsQ0FBQztJQUNwQkM7RUFDUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7SUFBQSxLQWRUQyxhQUFhLEdBQUcsSUFBSUMsR0FBRyxDQUFpQixDQUFDO0lBQUEsS0FDekNDLFdBQVcsR0FBRyxJQUFJRCxHQUFHLENBQThCLENBQUM7SUFBQSxLQUNwREUsVUFBVSxHQUFHLElBQUlDLEdBQUcsQ0FBUyxDQUFDO0lBQUEsS0FDOUJDLFNBQVMsR0FBaUIsRUFBRTtJQVlwQyxJQUFJTixTQUFTLEVBQUU7TUFDYixJQUFJLENBQUNBLFNBQVMsR0FBR0EsU0FBUyxDQUFDTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3ZDO0lBQ0EsSUFBSSxDQUFDQyxPQUFPLEdBQUc7TUFDYlYsVUFBVTtNQUNWQztJQUNGLENBQUM7RUFDSDtFQUVBVSxJQUFJQSxDQUFDQyxVQUFzQixFQUFFO0lBQzNCLElBQUksQ0FBQ0EsVUFBVSxHQUFHQSxVQUFVO0lBRTVCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQyxXQUFXLENBQUMsTUFBTTtNQUNsQyxJQUFJLENBQUNDLFlBQVksQ0FBQyxNQUFNLElBQUksQ0FBQ0MsUUFBUSxDQUFDLENBQUMsRUFBRTtRQUFFQyxPQUFPLEVBQUU7TUFBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQyxFQUFFLElBQUksQ0FBQ1AsT0FBTyxDQUFDVixVQUFVLENBQUM7RUFDN0I7RUFFQWtCLE9BQU9BLENBQUEsRUFBRztJQUNSQyxhQUFhLENBQUMsSUFBSSxDQUFDTixVQUFVLENBQUM7RUFDaEM7RUFFQU8sY0FBY0EsQ0FBQztJQUFFQyxHQUFHO0lBQUVDLEtBQUssR0FBRztFQUEyQyxDQUFDLEVBQUU7SUFDMUU7SUFDQSxPQUFPLE1BQU07TUFBQSxJQUFBQyxxQkFBQTtNQUNYLElBQUlGLEdBQUcsRUFDTCxJQUFJLENBQUNsQixhQUFhLENBQUNxQixHQUFHLENBQUNILEdBQUcsRUFBRSxFQUFBRSxxQkFBQSxHQUFDLElBQUksQ0FBQ3BCLGFBQWEsQ0FBQ3NCLEdBQUcsQ0FBQ0osR0FBRyxDQUFDLFlBQUFFLHFCQUFBLEdBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztNQUNyRUQsS0FBSyxDQUFDSSxPQUFPLENBQUNDLElBQUksSUFBSTtRQUFBLElBQUFDLGtCQUFBO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUN2QixXQUFXLENBQUN3QixHQUFHLENBQUNGLElBQUksQ0FBQ04sR0FBRyxDQUFDLEVBQUU7VUFDbkMsSUFBSSxDQUFDaEIsV0FBVyxDQUFDbUIsR0FBRyxDQUFDRyxJQUFJLENBQUNOLEdBQUcsRUFBRSxJQUFJakIsR0FBRyxDQUFpQixDQUFDLENBQUM7UUFDM0Q7UUFDQSxNQUFNMEIsYUFBYSxHQUFHLElBQUksQ0FBQ3pCLFdBQVcsQ0FBQ29CLEdBQUcsQ0FBQ0UsSUFBSSxDQUFDTixHQUFHLENBQUU7UUFDckRTLGFBQWEsQ0FBQ04sR0FBRyxDQUFDRyxJQUFJLENBQUNJLEVBQUUsRUFBRSxFQUFBSCxrQkFBQSxHQUFDRSxhQUFhLENBQUNMLEdBQUcsQ0FBQ0UsSUFBSSxDQUFDSSxFQUFFLENBQUMsWUFBQUgsa0JBQUEsR0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDO01BQ25FLENBQUMsQ0FBQzs7TUFFRjtNQUNBLE9BQU8sTUFBTTtRQUNYLElBQUlQLEdBQUcsRUFBRTtVQUNQLE1BQU1XLFlBQVksR0FBRyxJQUFJLENBQUM3QixhQUFhLENBQUNzQixHQUFHLENBQUNKLEdBQUcsQ0FBRTtVQUNqRCxJQUFJVyxZQUFZLEtBQUtDLFNBQVMsRUFBRTtZQUM5QixJQUFJRCxZQUFZLElBQUksQ0FBQyxFQUFFO2NBQ3JCLElBQUksQ0FBQzdCLGFBQWEsQ0FBQytCLE1BQU0sQ0FBQ2IsR0FBRyxDQUFDO2NBQzlCO2NBQ0EsSUFBSSxDQUFDZixVQUFVLENBQUM2QixHQUFHLENBQUNkLEdBQUcsQ0FBQztZQUMxQixDQUFDLE1BQU07Y0FDTCxJQUFJLENBQUNsQixhQUFhLENBQUNxQixHQUFHLENBQUNILEdBQUcsRUFBRVcsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUMvQztVQUNGO1FBQ0Y7UUFDQVYsS0FBSyxDQUFDSSxPQUFPLENBQUNDLElBQUksSUFBSTtVQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDdEIsV0FBVyxDQUFDd0IsR0FBRyxDQUFDRixJQUFJLENBQUNOLEdBQUcsQ0FBQyxFQUFFO1lBQ25DO1VBQ0Y7VUFDQSxNQUFNUyxhQUFhLEdBQUcsSUFBSSxDQUFDekIsV0FBVyxDQUFDb0IsR0FBRyxDQUFDRSxJQUFJLENBQUNOLEdBQUcsQ0FBRTtVQUNyRCxNQUFNaEIsV0FBVyxHQUFHeUIsYUFBYSxDQUFDTCxHQUFHLENBQUNFLElBQUksQ0FBQ0ksRUFBRSxDQUFFO1VBQy9DLElBQUkxQixXQUFXLEtBQUs0QixTQUFTLEVBQUU7WUFDN0IsSUFBSTVCLFdBQVcsSUFBSSxDQUFDLEVBQUU7Y0FDcEJ5QixhQUFhLENBQUNJLE1BQU0sQ0FBQ1AsSUFBSSxDQUFDSSxFQUFFLENBQUM7Y0FDN0I7Y0FDQSxJQUFJLENBQUN2QixTQUFTLENBQUM0QixJQUFJLENBQUNULElBQUksQ0FBQztZQUMzQixDQUFDLE1BQU07Y0FDTEcsYUFBYSxDQUFDTixHQUFHLENBQUNHLElBQUksQ0FBQ0ksRUFBRSxFQUFFMUIsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUM3QztVQUNGO1FBQ0YsQ0FBQyxDQUFDO01BQ0osQ0FBQztJQUNILENBQUM7RUFDSDtFQUVVSCxTQUFTQSxDQUFDO0lBQ2xCbUMsU0FBUztJQUNUbkM7RUFLRixDQUFDLEVBQVU7SUFDVCxPQUNFb0MsSUFBSSxDQUFDQyxHQUFHLENBQ04sQ0FBQ3JDLFNBQVMsR0FBR21DLFNBQVMsSUFBSSxJQUFJLENBQUMzQixPQUFPLENBQUNULGdCQUFnQixFQUN2RCxNQUNGLENBQUMsR0FBR29DLFNBQVM7RUFFakI7RUFFVXJCLFFBQVFBLENBQUEsRUFBRztJQUNuQixNQUFNd0IsS0FBSyxHQUFHLElBQUksQ0FBQzVCLFVBQVUsQ0FBQzZCLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLE1BQU1DLFFBQXNCLEdBQUcsRUFBRTtJQUNqQyxNQUFNQyxTQUFtQixHQUFHLEVBQUU7SUFDOUIsTUFBTUMsR0FBRyxHQUFHQyxJQUFJLENBQUNELEdBQUcsQ0FBQyxDQUFDO0lBRXRCLE1BQU1FLGNBQWMsR0FBRyxJQUFJdkMsR0FBRyxDQUFTLENBQUM7SUFDeEMsS0FBSyxNQUFNYyxHQUFHLElBQUksSUFBSSxDQUFDZixVQUFVLEVBQUU7TUFBQSxJQUFBeUMsZUFBQTtNQUNqQyxJQUNFLENBQUMsSUFBSSxDQUFDNUMsYUFBYSxDQUFDMEIsR0FBRyxDQUFDUixHQUFHLENBQUMsSUFDNUIsSUFBSSxDQUFDbkIsU0FBUyxFQUFBNkMsZUFBQSxHQUNaUCxLQUFLLENBQUNRLElBQUksQ0FBQzNCLEdBQUcsQ0FBQyxZQUFBMEIsZUFBQSxHQUFJO1FBQ2pCVixTQUFTLEVBQUUsQ0FBQztRQUNaWSxJQUFJLEVBQUUsQ0FBQztRQUNQL0MsU0FBUyxFQUFFO01BQ2IsQ0FDRixDQUFDLEdBQUcwQyxHQUFHLEVBQ1A7UUFDQUQsU0FBUyxDQUFDUCxJQUFJLENBQUNmLEdBQUcsQ0FBQztNQUNyQixDQUFDLE1BQU07UUFDTHlCLGNBQWMsQ0FBQ1gsR0FBRyxDQUFDZCxHQUFHLENBQUM7TUFDekI7SUFDRjtJQUNBLElBQUksQ0FBQ2YsVUFBVSxHQUFHd0MsY0FBYztJQUVoQyxNQUFNSSxhQUEyQixHQUFHLEVBQUU7SUFDdEMsS0FBSyxNQUFNdkIsSUFBSSxJQUFJLElBQUksQ0FBQ25CLFNBQVMsRUFBRTtNQUFBLElBQUEyQyxxQkFBQSxFQUFBQyxxQkFBQSxFQUFBQyxzQkFBQTtNQUNqQyxJQUNFLEdBQUFGLHFCQUFBLEdBQUMsSUFBSSxDQUFDOUMsV0FBVyxDQUFDb0IsR0FBRyxDQUFDRSxJQUFJLENBQUNOLEdBQUcsQ0FBQyxhQUE5QjhCLHFCQUFBLENBQWdDdEIsR0FBRyxDQUFDRixJQUFJLENBQUNJLEVBQUUsQ0FBQyxLQUM3QyxJQUFJLENBQUM3QixTQUFTLEVBQUFrRCxxQkFBQSxJQUFBQyxzQkFBQSxHQUNaYixLQUFLLENBQUNjLFVBQVUsQ0FBQzNCLElBQUksQ0FBQ04sR0FBRyxDQUFDLHFCQUExQmdDLHNCQUFBLENBQTZCMUIsSUFBSSxDQUFDSSxFQUFFLENBQUMsWUFBQXFCLHFCQUFBLEdBQUk7UUFDdkNmLFNBQVMsRUFBRSxDQUFDO1FBQ1pZLElBQUksRUFBRSxDQUFDO1FBQ1AvQyxTQUFTLEVBQUU7TUFDYixDQUNGLENBQUMsR0FBRzBDLEdBQUcsRUFDUDtRQUNBRixRQUFRLENBQUNOLElBQUksQ0FBQ1QsSUFBSSxDQUFDO01BQ3JCLENBQUMsTUFBTTtRQUNMdUIsYUFBYSxDQUFDZCxJQUFJLENBQUNULElBQUksQ0FBQztNQUMxQjtJQUNGO0lBQ0EsSUFBSSxDQUFDbkIsU0FBUyxHQUFHMEMsYUFBYTtJQUU5QixJQUFJUixRQUFRLENBQUNhLE1BQU0sSUFBSVosU0FBUyxDQUFDWSxNQUFNLEVBQUU7TUFDdkMsSUFBSSxDQUFDM0MsVUFBVSxDQUFDNEMsUUFBUSxDQUFDO1FBQUVDLElBQUksRUFBRTVELEVBQUU7UUFBRTZDLFFBQVE7UUFBRUM7TUFBVSxDQUFDLENBQUM7SUFDN0Q7RUFDRjs7RUFFQTtBQUNGO0FBQ0E7QUFDQTtFQUNZNUIsWUFBWUEsQ0FDcEIyQyxRQUFrQyxFQUNsQ2hELE9BQTRCLEVBQzVCO0lBQ0EsSUFBSSxPQUFPaUQsbUJBQW1CLEtBQUssVUFBVSxFQUFFO01BQzdDQSxtQkFBbUIsQ0FBQ0QsUUFBUSxFQUFFaEQsT0FBTyxDQUFDO0lBQ3hDLENBQUMsTUFBTTtNQUNMZ0QsUUFBUSxDQUFDLENBQUM7SUFDWjtFQUNGO0FBQ0Y7QUFFQSxPQUFPLE1BQU1FLGdCQUFnQixDQUF3QjtFQUNuRDtFQUNBakQsSUFBSUEsQ0FBQSxFQUFHLENBQUM7RUFDUjtFQUNBTyxPQUFPQSxDQUFBLEVBQUcsQ0FBQztFQUNYRSxjQUFjQSxDQUFBLEVBQUc7SUFDZixPQUFPLE1BQU0sTUFBTWEsU0FBUztFQUM5QjtBQUNGIiwiaWdub3JlTGlzdCI6W119
@@ -1,3 +1,4 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
1
2
  import { expireReducer } from './expireReducer.js';
2
3
  import { fetchReducer } from './fetchReducer.js';
3
4
  import { invalidateReducer } from './invalidateReducer.js';
@@ -10,7 +11,10 @@ export default function createReducer(controller) {
10
11
  switch (action.type) {
11
12
  case GC:
12
13
  // inline deletes are fine as these should have 0 refcounts
13
- action.entities.forEach(([key, pk]) => {
14
+ action.entities.forEach(({
15
+ key,
16
+ pk
17
+ }) => {
14
18
  var _entities$key, _entityMeta$key;
15
19
  (_entities$key = state.entities[key]) == null || delete _entities$key[pk];
16
20
  (_entityMeta$key = state.entityMeta[key]) == null || delete _entityMeta$key[pk];
@@ -34,7 +38,7 @@ export default function createReducer(controller) {
34
38
  case EXPIREALL:
35
39
  return expireReducer(state, action);
36
40
  case RESET:
37
- return Object.assign({}, initialState, {
41
+ return _extends({}, initialState, {
38
42
  lastReset: action.date
39
43
  });
40
44
  default:
@@ -53,4 +57,4 @@ export const initialState = {
53
57
  optimistic: [],
54
58
  lastReset: 0
55
59
  };
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHBpcmVSZWR1Y2VyIiwiZmV0Y2hSZWR1Y2VyIiwiaW52YWxpZGF0ZVJlZHVjZXIiLCJzZXRSZWR1Y2VyIiwic2V0UmVzcG9uc2VSZWR1Y2VyIiwiU0VUIiwiSU5WQUxJREFURSIsIlJFU0VUIiwiRkVUQ0giLCJHQyIsIk9QVElNSVNUSUMiLCJJTlZBTElEQVRFQUxMIiwiRVhQSVJFQUxMIiwiU0VUX1JFU1BPTlNFIiwiY3JlYXRlUmVkdWNlciIsImNvbnRyb2xsZXIiLCJyZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJpbml0aWFsU3RhdGUiLCJ0eXBlIiwiZW50aXRpZXMiLCJmb3JFYWNoIiwia2V5IiwicGsiLCJfZW50aXRpZXMka2V5IiwiX2VudGl0eU1ldGEka2V5IiwiZW50aXR5TWV0YSIsImVuZHBvaW50cyIsImZldGNoS2V5IiwibWV0YSIsIk9iamVjdCIsImFzc2lnbiIsImxhc3RSZXNldCIsImRhdGUiLCJpbmRleGVzIiwib3B0aW1pc3RpYyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0ZS9yZWR1Y2VyL2NyZWF0ZVJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhwaXJlUmVkdWNlciB9IGZyb20gJy4vZXhwaXJlUmVkdWNlci5qcyc7XG5pbXBvcnQgeyBmZXRjaFJlZHVjZXIgfSBmcm9tICcuL2ZldGNoUmVkdWNlci5qcyc7XG5pbXBvcnQgeyBpbnZhbGlkYXRlUmVkdWNlciB9IGZyb20gJy4vaW52YWxpZGF0ZVJlZHVjZXIuanMnO1xuaW1wb3J0IHsgc2V0UmVkdWNlciB9IGZyb20gJy4vc2V0UmVkdWNlci5qcyc7XG5pbXBvcnQgeyBzZXRSZXNwb25zZVJlZHVjZXIgfSBmcm9tICcuL3NldFJlc3BvbnNlUmVkdWNlci5qcyc7XG5pbXBvcnQge1xuICBTRVQsXG4gIElOVkFMSURBVEUsXG4gIFJFU0VULFxuICBGRVRDSCxcbiAgR0MsXG4gIE9QVElNSVNUSUMsXG4gIElOVkFMSURBVEVBTEwsXG4gIEVYUElSRUFMTCxcbiAgU0VUX1JFU1BPTlNFLFxufSBmcm9tICcuLi8uLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSBDb250cm9sbGVyIGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IEFjdGlvblR5cGVzLCBTdGF0ZSB9IGZyb20gJy4uLy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVkdWNlcihjb250cm9sbGVyOiBDb250cm9sbGVyKTogUmVkdWNlclR5cGUge1xuICByZXR1cm4gZnVuY3Rpb24gcmVkdWNlcihcbiAgICBzdGF0ZTogU3RhdGU8dW5rbm93bj4gfCB1bmRlZmluZWQsXG4gICAgYWN0aW9uOiBBY3Rpb25UeXBlcyxcbiAgKTogU3RhdGU8dW5rbm93bj4ge1xuICAgIGlmICghc3RhdGUpIHN0YXRlID0gaW5pdGlhbFN0YXRlO1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgR0M6XG4gICAgICAgIC8vIGlubGluZSBkZWxldGVzIGFyZSBmaW5lIGFzIHRoZXNlIHNob3VsZCBoYXZlIDAgcmVmY291bnRzXG4gICAgICAgIGFjdGlvbi5lbnRpdGllcy5mb3JFYWNoKChba2V5LCBwa10pID0+IHtcbiAgICAgICAgICBkZWxldGUgKHN0YXRlIGFzIGFueSkuZW50aXRpZXNba2V5XT8uW3BrXTtcbiAgICAgICAgICBkZWxldGUgKHN0YXRlIGFzIGFueSkuZW50aXR5TWV0YVtrZXldPy5bcGtdO1xuICAgICAgICB9KTtcbiAgICAgICAgYWN0aW9uLmVuZHBvaW50cy5mb3JFYWNoKGZldGNoS2V5ID0+IHtcbiAgICAgICAgICBkZWxldGUgKHN0YXRlIGFzIGFueSkuZW5kcG9pbnRzW2ZldGNoS2V5XTtcbiAgICAgICAgICBkZWxldGUgKHN0YXRlIGFzIGFueSkubWV0YVtmZXRjaEtleV07XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICBjYXNlIEZFVENIOlxuICAgICAgICByZXR1cm4gZmV0Y2hSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuXG4gICAgICBjYXNlIE9QVElNSVNUSUM6XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICAgIGNhc2UgU0VUX1JFU1BPTlNFOlxuICAgICAgICByZXR1cm4gc2V0UmVzcG9uc2VSZWR1Y2VyKHN0YXRlLCBhY3Rpb24sIGNvbnRyb2xsZXIpO1xuXG4gICAgICBjYXNlIFNFVDpcbiAgICAgICAgcmV0dXJuIHNldFJlZHVjZXIoc3RhdGUsIGFjdGlvbiwgY29udHJvbGxlcik7XG5cbiAgICAgIGNhc2UgSU5WQUxJREFURUFMTDpcbiAgICAgIGNhc2UgSU5WQUxJREFURTpcbiAgICAgICAgcmV0dXJuIGludmFsaWRhdGVSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuXG4gICAgICBjYXNlIEVYUElSRUFMTDpcbiAgICAgICAgcmV0dXJuIGV4cGlyZVJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG5cbiAgICAgIGNhc2UgUkVTRVQ6XG4gICAgICAgIHJldHVybiB7IC4uLmluaXRpYWxTdGF0ZSwgbGFzdFJlc2V0OiBhY3Rpb24uZGF0ZSB9O1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBBIHJlZHVjZXIgbXVzdCBhbHdheXMgcmV0dXJuIGEgdmFsaWQgc3RhdGUuXG4gICAgICAgIC8vIEFsdGVybmF0aXZlbHkgeW91IGNhbiB0aHJvdyBhbiBlcnJvciBpZiBhbiBpbnZhbGlkIGFjdGlvbiBpcyBkaXNwYXRjaGVkLlxuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9IGFzIGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZTogU3RhdGU8dW5rbm93bj4gPSB7XG4gIGVudGl0aWVzOiB7fSxcbiAgZW5kcG9pbnRzOiB7fSxcbiAgaW5kZXhlczoge30sXG4gIG1ldGE6IHt9LFxuICBlbnRpdHlNZXRhOiB7fSxcbiAgb3B0aW1pc3RpYzogW10sXG4gIGxhc3RSZXNldDogMCxcbn07XG5cbnR5cGUgUmVkdWNlclR5cGUgPSAoXG4gIHN0YXRlOiBTdGF0ZTx1bmtub3duPiB8IHVuZGVmaW5lZCxcbiAgYWN0aW9uOiBBY3Rpb25UeXBlcyxcbikgPT4gU3RhdGU8dW5rbm93bj47XG5cbnR5cGUgV3JpdGFibGU8VD4gPSB7IFtQIGluIGtleW9mIFRdOiBOb25OdWxsYWJsZTxXcml0YWJsZTxUW1BdPj4gfTtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsYUFBYSxRQUFRLG9CQUFvQjtBQUNsRCxTQUFTQyxZQUFZLFFBQVEsbUJBQW1CO0FBQ2hELFNBQVNDLGlCQUFpQixRQUFRLHdCQUF3QjtBQUMxRCxTQUFTQyxVQUFVLFFBQVEsaUJBQWlCO0FBQzVDLFNBQVNDLGtCQUFrQixRQUFRLHlCQUF5QjtBQUM1RCxTQUNFQyxHQUFHLEVBQ0hDLFVBQVUsRUFDVkMsS0FBSyxFQUNMQyxLQUFLLEVBQ0xDLEVBQUUsRUFDRkMsVUFBVSxFQUNWQyxhQUFhLEVBQ2JDLFNBQVMsRUFDVEMsWUFBWSxRQUNQLHNCQUFzQjtBQUk3QixlQUFlLFNBQVNDLGFBQWFBLENBQUNDLFVBQXNCLEVBQWU7RUFDekUsT0FBTyxTQUFTQyxPQUFPQSxDQUNyQkMsS0FBaUMsRUFDakNDLE1BQW1CLEVBQ0g7SUFDaEIsSUFBSSxDQUFDRCxLQUFLLEVBQUVBLEtBQUssR0FBR0UsWUFBWTtJQUNoQyxRQUFRRCxNQUFNLENBQUNFLElBQUk7TUFDakIsS0FBS1gsRUFBRTtRQUNMO1FBQ0FTLE1BQU0sQ0FBQ0csUUFBUSxDQUFDQyxPQUFPLENBQUMsQ0FBQyxDQUFDQyxHQUFHLEVBQUVDLEVBQUUsQ0FBQyxLQUFLO1VBQUEsSUFBQUMsYUFBQSxFQUFBQyxlQUFBO1VBQ3JDLENBQUFELGFBQUEsR0FBUVIsS0FBSyxDQUFTSSxRQUFRLENBQUNFLEdBQUcsQ0FBQyxhQUFuQyxPQUFPRSxhQUFBLENBQStCRCxFQUFFLENBQUM7VUFDekMsQ0FBQUUsZUFBQSxHQUFRVCxLQUFLLENBQVNVLFVBQVUsQ0FBQ0osR0FBRyxDQUFDLGFBQXJDLE9BQU9HLGVBQUEsQ0FBaUNGLEVBQUUsQ0FBQztRQUM3QyxDQUFDLENBQUM7UUFDRk4sTUFBTSxDQUFDVSxTQUFTLENBQUNOLE9BQU8sQ0FBQ08sUUFBUSxJQUFJO1VBQ25DLE9BQVFaLEtBQUssQ0FBU1csU0FBUyxDQUFDQyxRQUFRLENBQUM7VUFDekMsT0FBUVosS0FBSyxDQUFTYSxJQUFJLENBQUNELFFBQVEsQ0FBQztRQUN0QyxDQUFDLENBQUM7UUFDRixPQUFPWixLQUFLO01BQ2QsS0FBS1QsS0FBSztRQUNSLE9BQU9QLFlBQVksQ0FBQ2dCLEtBQUssRUFBRUMsTUFBTSxDQUFDO01BRXBDLEtBQUtSLFVBQVU7TUFDZjtNQUNBLEtBQUtHLFlBQVk7UUFDZixPQUFPVCxrQkFBa0IsQ0FBQ2EsS0FBSyxFQUFFQyxNQUFNLEVBQUVILFVBQVUsQ0FBQztNQUV0RCxLQUFLVixHQUFHO1FBQ04sT0FBT0YsVUFBVSxDQUFDYyxLQUFLLEVBQUVDLE1BQU0sRUFBRUgsVUFBVSxDQUFDO01BRTlDLEtBQUtKLGFBQWE7TUFDbEIsS0FBS0wsVUFBVTtRQUNiLE9BQU9KLGlCQUFpQixDQUFDZSxLQUFLLEVBQUVDLE1BQU0sQ0FBQztNQUV6QyxLQUFLTixTQUFTO1FBQ1osT0FBT1osYUFBYSxDQUFDaUIsS0FBSyxFQUFFQyxNQUFNLENBQUM7TUFFckMsS0FBS1gsS0FBSztRQUNSLE9BQUF3QixNQUFBLENBQUFDLE1BQUEsS0FBWWIsWUFBWTtVQUFFYyxTQUFTLEVBQUVmLE1BQU0sQ0FBQ2dCO1FBQUk7TUFFbEQ7UUFDRTtRQUNBO1FBQ0EsT0FBT2pCLEtBQUs7SUFDaEI7RUFDRixDQUFDO0FBQ0g7QUFFQSxPQUFPLE1BQU1FLFlBQTRCLEdBQUc7RUFDMUNFLFFBQVEsRUFBRSxDQUFDLENBQUM7RUFDWk8sU0FBUyxFQUFFLENBQUMsQ0FBQztFQUNiTyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0VBQ1hMLElBQUksRUFBRSxDQUFDLENBQUM7RUFDUkgsVUFBVSxFQUFFLENBQUMsQ0FBQztFQUNkUyxVQUFVLEVBQUUsRUFBRTtFQUNkSCxTQUFTLEVBQUU7QUFDYixDQUFDIiwiaWdub3JlTGlzdCI6W119
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHBpcmVSZWR1Y2VyIiwiZmV0Y2hSZWR1Y2VyIiwiaW52YWxpZGF0ZVJlZHVjZXIiLCJzZXRSZWR1Y2VyIiwic2V0UmVzcG9uc2VSZWR1Y2VyIiwiU0VUIiwiSU5WQUxJREFURSIsIlJFU0VUIiwiRkVUQ0giLCJHQyIsIk9QVElNSVNUSUMiLCJJTlZBTElEQVRFQUxMIiwiRVhQSVJFQUxMIiwiU0VUX1JFU1BPTlNFIiwiY3JlYXRlUmVkdWNlciIsImNvbnRyb2xsZXIiLCJyZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJpbml0aWFsU3RhdGUiLCJ0eXBlIiwiZW50aXRpZXMiLCJmb3JFYWNoIiwia2V5IiwicGsiLCJfZW50aXRpZXMka2V5IiwiX2VudGl0eU1ldGEka2V5IiwiZW50aXR5TWV0YSIsImVuZHBvaW50cyIsImZldGNoS2V5IiwibWV0YSIsIl9leHRlbmRzIiwibGFzdFJlc2V0IiwiZGF0ZSIsImluZGV4ZXMiLCJvcHRpbWlzdGljIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRlL3JlZHVjZXIvY3JlYXRlUmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHBpcmVSZWR1Y2VyIH0gZnJvbSAnLi9leHBpcmVSZWR1Y2VyLmpzJztcbmltcG9ydCB7IGZldGNoUmVkdWNlciB9IGZyb20gJy4vZmV0Y2hSZWR1Y2VyLmpzJztcbmltcG9ydCB7IGludmFsaWRhdGVSZWR1Y2VyIH0gZnJvbSAnLi9pbnZhbGlkYXRlUmVkdWNlci5qcyc7XG5pbXBvcnQgeyBzZXRSZWR1Y2VyIH0gZnJvbSAnLi9zZXRSZWR1Y2VyLmpzJztcbmltcG9ydCB7IHNldFJlc3BvbnNlUmVkdWNlciB9IGZyb20gJy4vc2V0UmVzcG9uc2VSZWR1Y2VyLmpzJztcbmltcG9ydCB7XG4gIFNFVCxcbiAgSU5WQUxJREFURSxcbiAgUkVTRVQsXG4gIEZFVENILFxuICBHQyxcbiAgT1BUSU1JU1RJQyxcbiAgSU5WQUxJREFURUFMTCxcbiAgRVhQSVJFQUxMLFxuICBTRVRfUkVTUE9OU0UsXG59IGZyb20gJy4uLy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB0eXBlIENvbnRyb2xsZXIgZnJvbSAnLi4vLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHsgQWN0aW9uVHlwZXMsIFN0YXRlIH0gZnJvbSAnLi4vLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVSZWR1Y2VyKGNvbnRyb2xsZXI6IENvbnRyb2xsZXIpOiBSZWR1Y2VyVHlwZSB7XG4gIHJldHVybiBmdW5jdGlvbiByZWR1Y2VyKFxuICAgIHN0YXRlOiBTdGF0ZTx1bmtub3duPiB8IHVuZGVmaW5lZCxcbiAgICBhY3Rpb246IEFjdGlvblR5cGVzLFxuICApOiBTdGF0ZTx1bmtub3duPiB7XG4gICAgaWYgKCFzdGF0ZSkgc3RhdGUgPSBpbml0aWFsU3RhdGU7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBHQzpcbiAgICAgICAgLy8gaW5saW5lIGRlbGV0ZXMgYXJlIGZpbmUgYXMgdGhlc2Ugc2hvdWxkIGhhdmUgMCByZWZjb3VudHNcbiAgICAgICAgYWN0aW9uLmVudGl0aWVzLmZvckVhY2goKHsga2V5LCBwayB9KSA9PiB7XG4gICAgICAgICAgZGVsZXRlIChzdGF0ZSBhcyBhbnkpLmVudGl0aWVzW2tleV0/Lltwa107XG4gICAgICAgICAgZGVsZXRlIChzdGF0ZSBhcyBhbnkpLmVudGl0eU1ldGFba2V5XT8uW3BrXTtcbiAgICAgICAgfSk7XG4gICAgICAgIGFjdGlvbi5lbmRwb2ludHMuZm9yRWFjaChmZXRjaEtleSA9PiB7XG4gICAgICAgICAgZGVsZXRlIChzdGF0ZSBhcyBhbnkpLmVuZHBvaW50c1tmZXRjaEtleV07XG4gICAgICAgICAgZGVsZXRlIChzdGF0ZSBhcyBhbnkpLm1ldGFbZmV0Y2hLZXldO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgY2FzZSBGRVRDSDpcbiAgICAgICAgcmV0dXJuIGZldGNoUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcblxuICAgICAgY2FzZSBPUFRJTUlTVElDOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG4gICAgICBjYXNlIFNFVF9SRVNQT05TRTpcbiAgICAgICAgcmV0dXJuIHNldFJlc3BvbnNlUmVkdWNlcihzdGF0ZSwgYWN0aW9uLCBjb250cm9sbGVyKTtcblxuICAgICAgY2FzZSBTRVQ6XG4gICAgICAgIHJldHVybiBzZXRSZWR1Y2VyKHN0YXRlLCBhY3Rpb24sIGNvbnRyb2xsZXIpO1xuXG4gICAgICBjYXNlIElOVkFMSURBVEVBTEw6XG4gICAgICBjYXNlIElOVkFMSURBVEU6XG4gICAgICAgIHJldHVybiBpbnZhbGlkYXRlUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcblxuICAgICAgY2FzZSBFWFBJUkVBTEw6XG4gICAgICAgIHJldHVybiBleHBpcmVSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuXG4gICAgICBjYXNlIFJFU0VUOlxuICAgICAgICByZXR1cm4geyAuLi5pbml0aWFsU3RhdGUsIGxhc3RSZXNldDogYWN0aW9uLmRhdGUgfTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gQSByZWR1Y2VyIG11c3QgYWx3YXlzIHJldHVybiBhIHZhbGlkIHN0YXRlLlxuICAgICAgICAvLyBBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gdGhyb3cgYW4gZXJyb3IgaWYgYW4gaW52YWxpZCBhY3Rpb24gaXMgZGlzcGF0Y2hlZC5cbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfSBhcyBhbnk7XG59XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGU6IFN0YXRlPHVua25vd24+ID0ge1xuICBlbnRpdGllczoge30sXG4gIGVuZHBvaW50czoge30sXG4gIGluZGV4ZXM6IHt9LFxuICBtZXRhOiB7fSxcbiAgZW50aXR5TWV0YToge30sXG4gIG9wdGltaXN0aWM6IFtdLFxuICBsYXN0UmVzZXQ6IDAsXG59O1xuXG50eXBlIFJlZHVjZXJUeXBlID0gKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4gfCB1bmRlZmluZWQsXG4gIGFjdGlvbjogQWN0aW9uVHlwZXMsXG4pID0+IFN0YXRlPHVua25vd24+O1xuXG50eXBlIFdyaXRhYmxlPFQ+ID0geyBbUCBpbiBrZXlvZiBUXTogTm9uTnVsbGFibGU8V3JpdGFibGU8VFtQXT4+IH07XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxhQUFhLFFBQVEsb0JBQW9CO0FBQ2xELFNBQVNDLFlBQVksUUFBUSxtQkFBbUI7QUFDaEQsU0FBU0MsaUJBQWlCLFFBQVEsd0JBQXdCO0FBQzFELFNBQVNDLFVBQVUsUUFBUSxpQkFBaUI7QUFDNUMsU0FBU0Msa0JBQWtCLFFBQVEseUJBQXlCO0FBQzVELFNBQ0VDLEdBQUcsRUFDSEMsVUFBVSxFQUNWQyxLQUFLLEVBQ0xDLEtBQUssRUFDTEMsRUFBRSxFQUNGQyxVQUFVLEVBQ1ZDLGFBQWEsRUFDYkMsU0FBUyxFQUNUQyxZQUFZLFFBQ1Asc0JBQXNCO0FBSTdCLGVBQWUsU0FBU0MsYUFBYUEsQ0FBQ0MsVUFBc0IsRUFBZTtFQUN6RSxPQUFPLFNBQVNDLE9BQU9BLENBQ3JCQyxLQUFpQyxFQUNqQ0MsTUFBbUIsRUFDSDtJQUNoQixJQUFJLENBQUNELEtBQUssRUFBRUEsS0FBSyxHQUFHRSxZQUFZO0lBQ2hDLFFBQVFELE1BQU0sQ0FBQ0UsSUFBSTtNQUNqQixLQUFLWCxFQUFFO1FBQ0w7UUFDQVMsTUFBTSxDQUFDRyxRQUFRLENBQUNDLE9BQU8sQ0FBQyxDQUFDO1VBQUVDLEdBQUc7VUFBRUM7UUFBRyxDQUFDLEtBQUs7VUFBQSxJQUFBQyxhQUFBLEVBQUFDLGVBQUE7VUFDdkMsQ0FBQUQsYUFBQSxHQUFRUixLQUFLLENBQVNJLFFBQVEsQ0FBQ0UsR0FBRyxDQUFDLGFBQW5DLE9BQU9FLGFBQUEsQ0FBK0JELEVBQUUsQ0FBQztVQUN6QyxDQUFBRSxlQUFBLEdBQVFULEtBQUssQ0FBU1UsVUFBVSxDQUFDSixHQUFHLENBQUMsYUFBckMsT0FBT0csZUFBQSxDQUFpQ0YsRUFBRSxDQUFDO1FBQzdDLENBQUMsQ0FBQztRQUNGTixNQUFNLENBQUNVLFNBQVMsQ0FBQ04sT0FBTyxDQUFDTyxRQUFRLElBQUk7VUFDbkMsT0FBUVosS0FBSyxDQUFTVyxTQUFTLENBQUNDLFFBQVEsQ0FBQztVQUN6QyxPQUFRWixLQUFLLENBQVNhLElBQUksQ0FBQ0QsUUFBUSxDQUFDO1FBQ3RDLENBQUMsQ0FBQztRQUNGLE9BQU9aLEtBQUs7TUFDZCxLQUFLVCxLQUFLO1FBQ1IsT0FBT1AsWUFBWSxDQUFDZ0IsS0FBSyxFQUFFQyxNQUFNLENBQUM7TUFFcEMsS0FBS1IsVUFBVTtNQUNmO01BQ0EsS0FBS0csWUFBWTtRQUNmLE9BQU9ULGtCQUFrQixDQUFDYSxLQUFLLEVBQUVDLE1BQU0sRUFBRUgsVUFBVSxDQUFDO01BRXRELEtBQUtWLEdBQUc7UUFDTixPQUFPRixVQUFVLENBQUNjLEtBQUssRUFBRUMsTUFBTSxFQUFFSCxVQUFVLENBQUM7TUFFOUMsS0FBS0osYUFBYTtNQUNsQixLQUFLTCxVQUFVO1FBQ2IsT0FBT0osaUJBQWlCLENBQUNlLEtBQUssRUFBRUMsTUFBTSxDQUFDO01BRXpDLEtBQUtOLFNBQVM7UUFDWixPQUFPWixhQUFhLENBQUNpQixLQUFLLEVBQUVDLE1BQU0sQ0FBQztNQUVyQyxLQUFLWCxLQUFLO1FBQ1IsT0FBQXdCLFFBQUEsS0FBWVosWUFBWTtVQUFFYSxTQUFTLEVBQUVkLE1BQU0sQ0FBQ2U7UUFBSTtNQUVsRDtRQUNFO1FBQ0E7UUFDQSxPQUFPaEIsS0FBSztJQUNoQjtFQUNGLENBQUM7QUFDSDtBQUVBLE9BQU8sTUFBTUUsWUFBNEIsR0FBRztFQUMxQ0UsUUFBUSxFQUFFLENBQUMsQ0FBQztFQUNaTyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0VBQ2JNLE9BQU8sRUFBRSxDQUFDLENBQUM7RUFDWEosSUFBSSxFQUFFLENBQUMsQ0FBQztFQUNSSCxVQUFVLEVBQUUsQ0FBQyxDQUFDO0VBQ2RRLFVBQVUsRUFBRSxFQUFFO0VBQ2RILFNBQVMsRUFBRTtBQUNiLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,15 +1,16 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
1
2
  export function expireReducer(state, action) {
2
- const meta = Object.assign({}, state.meta);
3
+ const meta = _extends({}, state.meta);
3
4
  Object.keys(meta).forEach(key => {
4
5
  if (action.testKey(key)) {
5
- meta[key] = Object.assign({}, meta[key], {
6
+ meta[key] = _extends({}, meta[key], {
6
7
  // 1 instead of 0 so we can do 'falsy' checks to see if it is set
7
8
  expiresAt: 1
8
9
  });
9
10
  }
10
11
  });
11
- return Object.assign({}, state, {
12
+ return _extends({}, state, {
12
13
  meta
13
14
  });
14
15
  }
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHBpcmVSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJtZXRhIiwiT2JqZWN0IiwiYXNzaWduIiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJ0ZXN0S2V5IiwiZXhwaXJlc0F0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRlL3JlZHVjZXIvZXhwaXJlUmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFN0YXRlLCBFeHBpcmVBbGxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBpcmVSZWR1Y2VyKHN0YXRlOiBTdGF0ZTx1bmtub3duPiwgYWN0aW9uOiBFeHBpcmVBbGxBY3Rpb24pIHtcbiAgY29uc3QgbWV0YSA9IHsgLi4uc3RhdGUubWV0YSB9O1xuXG4gIE9iamVjdC5rZXlzKG1ldGEpLmZvckVhY2goa2V5ID0+IHtcbiAgICBpZiAoYWN0aW9uLnRlc3RLZXkoa2V5KSkge1xuICAgICAgbWV0YVtrZXldID0ge1xuICAgICAgICAuLi5tZXRhW2tleV0sXG4gICAgICAgIC8vIDEgaW5zdGVhZCBvZiAwIHNvIHdlIGNhbiBkbyAnZmFsc3knIGNoZWNrcyB0byBzZWUgaWYgaXQgaXMgc2V0XG4gICAgICAgIGV4cGlyZXNBdDogMSxcbiAgICAgIH07XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIG1ldGEsXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sU0FBU0EsYUFBYUEsQ0FBQ0MsS0FBcUIsRUFBRUMsTUFBdUIsRUFBRTtFQUM1RSxNQUFNQyxJQUFJLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxLQUFRSixLQUFLLENBQUNFLElBQUksQ0FBRTtFQUU5QkMsTUFBTSxDQUFDRSxJQUFJLENBQUNILElBQUksQ0FBQyxDQUFDSSxPQUFPLENBQUNDLEdBQUcsSUFBSTtJQUMvQixJQUFJTixNQUFNLENBQUNPLE9BQU8sQ0FBQ0QsR0FBRyxDQUFDLEVBQUU7TUFDdkJMLElBQUksQ0FBQ0ssR0FBRyxDQUFDLEdBQUFKLE1BQUEsQ0FBQUMsTUFBQSxLQUNKRixJQUFJLENBQUNLLEdBQUcsQ0FBQztRQUNaO1FBQ0FFLFNBQVMsRUFBRTtNQUFDLEVBQ2I7SUFDSDtFQUNGLENBQUMsQ0FBQztFQUVGLE9BQUFOLE1BQUEsQ0FBQUMsTUFBQSxLQUNLSixLQUFLO0lBQ1JFO0VBQUk7QUFFUiIsImlnbm9yZUxpc3QiOltdfQ==
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHBpcmVSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJtZXRhIiwiX2V4dGVuZHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInRlc3RLZXkiLCJleHBpcmVzQXQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGUvcmVkdWNlci9leHBpcmVSZWR1Y2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhdGUsIEV4cGlyZUFsbEFjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGV4cGlyZVJlZHVjZXIoc3RhdGU6IFN0YXRlPHVua25vd24+LCBhY3Rpb246IEV4cGlyZUFsbEFjdGlvbikge1xuICBjb25zdCBtZXRhID0geyAuLi5zdGF0ZS5tZXRhIH07XG5cbiAgT2JqZWN0LmtleXMobWV0YSkuZm9yRWFjaChrZXkgPT4ge1xuICAgIGlmIChhY3Rpb24udGVzdEtleShrZXkpKSB7XG4gICAgICBtZXRhW2tleV0gPSB7XG4gICAgICAgIC4uLm1ldGFba2V5XSxcbiAgICAgICAgLy8gMSBpbnN0ZWFkIG9mIDAgc28gd2UgY2FuIGRvICdmYWxzeScgY2hlY2tzIHRvIHNlZSBpZiBpdCBpcyBzZXRcbiAgICAgICAgZXhwaXJlc0F0OiAxLFxuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgbWV0YSxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sU0FBU0EsYUFBYUEsQ0FBQ0MsS0FBcUIsRUFBRUMsTUFBdUIsRUFBRTtFQUM1RSxNQUFNQyxJQUFJLEdBQUFDLFFBQUEsS0FBUUgsS0FBSyxDQUFDRSxJQUFJLENBQUU7RUFFOUJFLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDSCxJQUFJLENBQUMsQ0FBQ0ksT0FBTyxDQUFDQyxHQUFHLElBQUk7SUFDL0IsSUFBSU4sTUFBTSxDQUFDTyxPQUFPLENBQUNELEdBQUcsQ0FBQyxFQUFFO01BQ3ZCTCxJQUFJLENBQUNLLEdBQUcsQ0FBQyxHQUFBSixRQUFBLEtBQ0pELElBQUksQ0FBQ0ssR0FBRyxDQUFDO1FBQ1o7UUFDQUUsU0FBUyxFQUFFO01BQUMsRUFDYjtJQUNIO0VBQ0YsQ0FBQyxDQUFDO0VBRUYsT0FBQU4sUUFBQSxLQUNLSCxLQUFLO0lBQ1JFO0VBQUk7QUFFUiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,11 +1,12 @@
1
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
1
2
  import { createOptimistic } from '../../controller/actions/createOptimistic.js';
2
3
  export function fetchReducer(state, action) {
3
4
  if (action.endpoint.getOptimisticResponse && action.endpoint.sideEffect) {
4
5
  const setAction = createOptimistic(action.endpoint, action.args, action.meta.fetchedAt);
5
- return Object.assign({}, state, {
6
+ return _extends({}, state, {
6
7
  optimistic: [...state.optimistic, setAction]
7
8
  });
8
9
  }
9
10
  return state;
10
11
  }
11
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVPcHRpbWlzdGljIiwiZmV0Y2hSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJlbmRwb2ludCIsImdldE9wdGltaXN0aWNSZXNwb25zZSIsInNpZGVFZmZlY3QiLCJzZXRBY3Rpb24iLCJhcmdzIiwibWV0YSIsImZldGNoZWRBdCIsIk9iamVjdCIsImFzc2lnbiIsIm9wdGltaXN0aWMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGUvcmVkdWNlci9mZXRjaFJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlT3B0aW1pc3RpYyB9IGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvYWN0aW9ucy9jcmVhdGVPcHRpbWlzdGljLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhdGUsIEZldGNoQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hSZWR1Y2VyKHN0YXRlOiBTdGF0ZTx1bmtub3duPiwgYWN0aW9uOiBGZXRjaEFjdGlvbikge1xuICBpZiAoYWN0aW9uLmVuZHBvaW50LmdldE9wdGltaXN0aWNSZXNwb25zZSAmJiBhY3Rpb24uZW5kcG9pbnQuc2lkZUVmZmVjdCkge1xuICAgIGNvbnN0IHNldEFjdGlvbiA9IGNyZWF0ZU9wdGltaXN0aWMoXG4gICAgICBhY3Rpb24uZW5kcG9pbnQsXG4gICAgICBhY3Rpb24uYXJncyxcbiAgICAgIGFjdGlvbi5tZXRhLmZldGNoZWRBdCxcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG9wdGltaXN0aWM6IFsuLi5zdGF0ZS5vcHRpbWlzdGljLCBzZXRBY3Rpb25dLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHN0YXRlO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxnQkFBZ0IsUUFBUSw4Q0FBOEM7QUFHL0UsT0FBTyxTQUFTQyxZQUFZQSxDQUFDQyxLQUFxQixFQUFFQyxNQUFtQixFQUFFO0VBQ3ZFLElBQUlBLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDQyxxQkFBcUIsSUFBSUYsTUFBTSxDQUFDQyxRQUFRLENBQUNFLFVBQVUsRUFBRTtJQUN2RSxNQUFNQyxTQUFTLEdBQUdQLGdCQUFnQixDQUNoQ0csTUFBTSxDQUFDQyxRQUFRLEVBQ2ZELE1BQU0sQ0FBQ0ssSUFBSSxFQUNYTCxNQUFNLENBQUNNLElBQUksQ0FBQ0MsU0FDZCxDQUFDO0lBQ0QsT0FBQUMsTUFBQSxDQUFBQyxNQUFBLEtBQ0tWLEtBQUs7TUFDUlcsVUFBVSxFQUFFLENBQUMsR0FBR1gsS0FBSyxDQUFDVyxVQUFVLEVBQUVOLFNBQVM7SUFBQztFQUVoRDtFQUNBLE9BQU9MLEtBQUs7QUFDZCIsImlnbm9yZUxpc3QiOltdfQ==
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVPcHRpbWlzdGljIiwiZmV0Y2hSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJlbmRwb2ludCIsImdldE9wdGltaXN0aWNSZXNwb25zZSIsInNpZGVFZmZlY3QiLCJzZXRBY3Rpb24iLCJhcmdzIiwibWV0YSIsImZldGNoZWRBdCIsIl9leHRlbmRzIiwib3B0aW1pc3RpYyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0ZS9yZWR1Y2VyL2ZldGNoUmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVPcHRpbWlzdGljIH0gZnJvbSAnLi4vLi4vY29udHJvbGxlci9hY3Rpb25zL2NyZWF0ZU9wdGltaXN0aWMuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGF0ZSwgRmV0Y2hBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmZXRjaFJlZHVjZXIoc3RhdGU6IFN0YXRlPHVua25vd24+LCBhY3Rpb246IEZldGNoQWN0aW9uKSB7XG4gIGlmIChhY3Rpb24uZW5kcG9pbnQuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlICYmIGFjdGlvbi5lbmRwb2ludC5zaWRlRWZmZWN0KSB7XG4gICAgY29uc3Qgc2V0QWN0aW9uID0gY3JlYXRlT3B0aW1pc3RpYyhcbiAgICAgIGFjdGlvbi5lbmRwb2ludCxcbiAgICAgIGFjdGlvbi5hcmdzLFxuICAgICAgYWN0aW9uLm1ldGEuZmV0Y2hlZEF0LFxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgb3B0aW1pc3RpYzogWy4uLnN0YXRlLm9wdGltaXN0aWMsIHNldEFjdGlvbl0sXG4gICAgfTtcbiAgfVxuICByZXR1cm4gc3RhdGU7XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxnQkFBZ0IsUUFBUSw4Q0FBOEM7QUFHL0UsT0FBTyxTQUFTQyxZQUFZQSxDQUFDQyxLQUFxQixFQUFFQyxNQUFtQixFQUFFO0VBQ3ZFLElBQUlBLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDQyxxQkFBcUIsSUFBSUYsTUFBTSxDQUFDQyxRQUFRLENBQUNFLFVBQVUsRUFBRTtJQUN2RSxNQUFNQyxTQUFTLEdBQUdQLGdCQUFnQixDQUNoQ0csTUFBTSxDQUFDQyxRQUFRLEVBQ2ZELE1BQU0sQ0FBQ0ssSUFBSSxFQUNYTCxNQUFNLENBQUNNLElBQUksQ0FBQ0MsU0FDZCxDQUFDO0lBQ0QsT0FBQUMsUUFBQSxLQUNLVCxLQUFLO01BQ1JVLFVBQVUsRUFBRSxDQUFDLEdBQUdWLEtBQUssQ0FBQ1UsVUFBVSxFQUFFTCxTQUFTO0lBQUM7RUFFaEQ7RUFDQSxPQUFPTCxLQUFLO0FBQ2QiLCJpZ25vcmVMaXN0IjpbXX0=