@data-client/core 0.14.4 → 0.14.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/index.js +64 -95
  2. package/dist/index.umd.min.js +1 -1
  3. package/legacy/index.js +1 -1
  4. package/legacy/manager/DevtoolsManager.js +50 -52
  5. package/legacy/manager/LogoutManager.js +3 -8
  6. package/legacy/manager/NetworkManager.js +9 -21
  7. package/legacy/manager/SubscriptionManager.js +2 -15
  8. package/legacy/manager/applyManager.js +5 -3
  9. package/legacy/middlewareTypes.js +1 -1
  10. package/legacy/types.js +13 -1
  11. package/lib/index.d.ts +1 -1
  12. package/lib/index.d.ts.map +1 -1
  13. package/lib/index.js +1 -1
  14. package/lib/manager/DevtoolsManager.d.ts +4 -7
  15. package/lib/manager/DevtoolsManager.d.ts.map +1 -1
  16. package/lib/manager/DevtoolsManager.js +50 -52
  17. package/lib/manager/LogoutManager.d.ts +5 -8
  18. package/lib/manager/LogoutManager.d.ts.map +1 -1
  19. package/lib/manager/LogoutManager.js +3 -8
  20. package/lib/manager/NetworkManager.d.ts +3 -11
  21. package/lib/manager/NetworkManager.d.ts.map +1 -1
  22. package/lib/manager/NetworkManager.js +9 -21
  23. package/lib/manager/SubscriptionManager.d.ts +1 -10
  24. package/lib/manager/SubscriptionManager.d.ts.map +1 -1
  25. package/lib/manager/SubscriptionManager.js +2 -15
  26. package/lib/manager/applyManager.d.ts +8 -5
  27. package/lib/manager/applyManager.d.ts.map +1 -1
  28. package/lib/manager/applyManager.js +5 -3
  29. package/lib/middlewareTypes.d.ts +6 -10
  30. package/lib/middlewareTypes.d.ts.map +1 -1
  31. package/lib/middlewareTypes.js +1 -1
  32. package/lib/types.d.ts +16 -1
  33. package/lib/types.d.ts.map +1 -1
  34. package/lib/types.js +13 -1
  35. package/package.json +1 -1
  36. package/src/index.ts +1 -0
  37. package/src/manager/DevtoolsManager.ts +37 -40
  38. package/src/manager/LogoutManager.ts +15 -27
  39. package/src/manager/NetworkManager.ts +57 -70
  40. package/src/manager/SubscriptionManager.ts +18 -32
  41. package/src/manager/__tests__/applyManager.ts +61 -1
  42. package/src/manager/__tests__/logoutManager.ts +8 -10
  43. package/src/manager/__tests__/manager.ts +2 -3
  44. package/src/manager/__tests__/networkManager.ts +15 -18
  45. package/src/manager/__tests__/subscriptionManager.ts +14 -16
  46. package/src/manager/applyManager.ts +20 -8
  47. package/src/middlewareTypes.ts +7 -17
  48. package/src/types.ts +16 -1
  49. package/ts3.4/index.d.ts +1 -1
  50. package/ts3.4/manager/DevtoolsManager.d.ts +3 -6
  51. package/ts3.4/manager/LogoutManager.d.ts +4 -7
  52. package/ts3.4/manager/NetworkManager.d.ts +3 -11
  53. package/ts3.4/manager/SubscriptionManager.d.ts +1 -10
  54. package/ts3.4/manager/applyManager.d.ts +8 -5
  55. package/ts3.4/middlewareTypes.d.ts +5 -9
  56. package/ts3.4/types.d.ts +16 -1
@@ -8,19 +8,16 @@ export default class LogoutManager {
8
8
  handleLogout,
9
9
  shouldLogout
10
10
  } = {}) {
11
- if (handleLogout) this.handleLogout = handleLogout;
12
- if (shouldLogout) this.shouldLogout = shouldLogout;
13
11
  this.middleware = controller => next => async action => {
14
12
  await next(action);
15
13
  if (action.type === SET_RESPONSE_TYPE && action.error && this.shouldLogout(action.response)) {
16
14
  this.handleLogout(controller);
17
15
  }
18
16
  };
17
+ if (handleLogout) this.handleLogout = handleLogout;
18
+ if (shouldLogout) this.shouldLogout = shouldLogout;
19
19
  }
20
20
  cleanup() {}
21
- getMiddleware() {
22
- return this.middleware;
23
- }
24
21
  shouldLogout(error) {
25
22
  // 401 indicates reauthorization is needed
26
23
  return error.status === 401;
@@ -29,6 +26,4 @@ export default class LogoutManager {
29
26
  controller.resetEntireStore();
30
27
  }
31
28
  }
32
-
33
- // this further restricts the types to be future compatible
34
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfUkVTUE9OU0VfVFlQRSIsIkxvZ291dE1hbmFnZXIiLCJjb25zdHJ1Y3RvciIsImhhbmRsZUxvZ291dCIsInNob3VsZExvZ291dCIsIm1pZGRsZXdhcmUiLCJjb250cm9sbGVyIiwibmV4dCIsImFjdGlvbiIsInR5cGUiLCJlcnJvciIsInJlc3BvbnNlIiwiY2xlYW51cCIsImdldE1pZGRsZXdhcmUiLCJzdGF0dXMiLCJyZXNldEVudGlyZVN0b3JlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvTG9nb3V0TWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTRVRfUkVTUE9OU0VfVFlQRSB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCBDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgeyBVbmtub3duRXJyb3IgfSBmcm9tICcuLi9pbmRleC5qcyc7XG5pbXBvcnQgeyBBY3Rpb25UeXBlcywgTWFuYWdlciB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuLyoqIEhhbmRsaW5nIG5ldHdvcmsgdW5hdXRob3JpemVkIGluZGljYXRvcnMgbGlrZSBIVFRQIDQwMVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0xvZ291dE1hbmFnZXJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9nb3V0TWFuYWdlciBpbXBsZW1lbnRzIE1hbmFnZXIge1xuICBwcm90ZWN0ZWQgZGVjbGFyZSBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlO1xuXG4gIGNvbnN0cnVjdG9yKHsgaGFuZGxlTG9nb3V0LCBzaG91bGRMb2dvdXQgfTogUHJvcHMgPSB7fSkge1xuICAgIGlmIChoYW5kbGVMb2dvdXQpIHRoaXMuaGFuZGxlTG9nb3V0ID0gaGFuZGxlTG9nb3V0O1xuICAgIGlmIChzaG91bGRMb2dvdXQpIHRoaXMuc2hvdWxkTG9nb3V0ID0gc2hvdWxkTG9nb3V0O1xuICAgIHRoaXMubWlkZGxld2FyZSA9IGNvbnRyb2xsZXIgPT4gbmV4dCA9PiBhc3luYyBhY3Rpb24gPT4ge1xuICAgICAgYXdhaXQgbmV4dChhY3Rpb24pO1xuICAgICAgaWYgKFxuICAgICAgICBhY3Rpb24udHlwZSA9PT0gU0VUX1JFU1BPTlNFX1RZUEUgJiZcbiAgICAgICAgYWN0aW9uLmVycm9yICYmXG4gICAgICAgIHRoaXMuc2hvdWxkTG9nb3V0KGFjdGlvbi5yZXNwb25zZSlcbiAgICAgICkge1xuICAgICAgICB0aGlzLmhhbmRsZUxvZ291dChjb250cm9sbGVyKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgY2xlYW51cCgpIHt9XG5cbiAgZ2V0TWlkZGxld2FyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5taWRkbGV3YXJlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNob3VsZExvZ291dChlcnJvcjogVW5rbm93bkVycm9yKSB7XG4gICAgLy8gNDAxIGluZGljYXRlcyByZWF1dGhvcml6YXRpb24gaXMgbmVlZGVkXG4gICAgcmV0dXJuIGVycm9yLnN0YXR1cyA9PT0gNDAxO1xuICB9XG5cbiAgaGFuZGxlTG9nb3V0KGNvbnRyb2xsZXI6IENvbnRyb2xsZXI8RGlzcGF0Y2g+KSB7XG4gICAgY29udHJvbGxlci5yZXNldEVudGlyZVN0b3JlKCk7XG4gIH1cbn1cblxudHlwZSBEaXNwYXRjaCA9ICh2YWx1ZTogQWN0aW9uVHlwZXMpID0+IFByb21pc2U8dm9pZD47XG5cbi8vIHRoaXMgZnVydGhlciByZXN0cmljdHMgdGhlIHR5cGVzIHRvIGJlIGZ1dHVyZSBjb21wYXRpYmxlXG5leHBvcnQgdHlwZSBNaWRkbGV3YXJlID0gPEMgZXh0ZW5kcyBDb250cm9sbGVyPERpc3BhdGNoPj4oXG4gIGNvbnRyb2xsZXI6IEMsXG4pID0+IChuZXh0OiBDWydkaXNwYXRjaCddKSA9PiBDWydkaXNwYXRjaCddO1xuXG50eXBlIEhhbmRsZUxvZ291dCA9IChjb250cm9sbGVyOiBDb250cm9sbGVyPERpc3BhdGNoPikgPT4gdm9pZDtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgaGFuZGxlTG9nb3V0PzogSGFuZGxlTG9nb3V0O1xuICBzaG91bGRMb2dvdXQ/OiAoZXJyb3I6IFVua25vd25FcnJvcikgPT4gYm9vbGVhbjtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsaUJBQWlCLFFBQVEsbUJBQW1CO0FBS3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxNQUFNQyxhQUFhLENBQW9CO0VBR3BEQyxXQUFXQSxDQUFDO0lBQUVDLFlBQVk7SUFBRUM7RUFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0lBQ3RELElBQUlELFlBQVksRUFBRSxJQUFJLENBQUNBLFlBQVksR0FBR0EsWUFBWTtJQUNsRCxJQUFJQyxZQUFZLEVBQUUsSUFBSSxDQUFDQSxZQUFZLEdBQUdBLFlBQVk7SUFDbEQsSUFBSSxDQUFDQyxVQUFVLEdBQUdDLFVBQVUsSUFBSUMsSUFBSSxJQUFJLE1BQU1DLE1BQU0sSUFBSTtNQUN0RCxNQUFNRCxJQUFJLENBQUNDLE1BQU0sQ0FBQztNQUNsQixJQUNFQSxNQUFNLENBQUNDLElBQUksS0FBS1QsaUJBQWlCLElBQ2pDUSxNQUFNLENBQUNFLEtBQUssSUFDWixJQUFJLENBQUNOLFlBQVksQ0FBQ0ksTUFBTSxDQUFDRyxRQUFRLENBQUMsRUFDbEM7UUFDQSxJQUFJLENBQUNSLFlBQVksQ0FBQ0csVUFBVSxDQUFDO01BQy9CO0lBQ0YsQ0FBQztFQUNIO0VBRUFNLE9BQU9BLENBQUEsRUFBRyxDQUFDO0VBRVhDLGFBQWFBLENBQUEsRUFBRztJQUNkLE9BQU8sSUFBSSxDQUFDUixVQUFVO0VBQ3hCO0VBRVVELFlBQVlBLENBQUNNLEtBQW1CLEVBQUU7SUFDMUM7SUFDQSxPQUFPQSxLQUFLLENBQUNJLE1BQU0sS0FBSyxHQUFHO0VBQzdCO0VBRUFYLFlBQVlBLENBQUNHLFVBQWdDLEVBQUU7SUFDN0NBLFVBQVUsQ0FBQ1MsZ0JBQWdCLENBQUMsQ0FBQztFQUMvQjtBQUNGOztBQUlBIiwiaWdub3JlTGlzdCI6W119
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfUkVTUE9OU0VfVFlQRSIsIkxvZ291dE1hbmFnZXIiLCJjb25zdHJ1Y3RvciIsImhhbmRsZUxvZ291dCIsInNob3VsZExvZ291dCIsIm1pZGRsZXdhcmUiLCJjb250cm9sbGVyIiwibmV4dCIsImFjdGlvbiIsInR5cGUiLCJlcnJvciIsInJlc3BvbnNlIiwiY2xlYW51cCIsInN0YXR1cyIsInJlc2V0RW50aXJlU3RvcmUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFuYWdlci9Mb2dvdXRNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFVF9SRVNQT05TRV9UWVBFIH0gZnJvbSAnLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHsgVW5rbm93bkVycm9yIH0gZnJvbSAnLi4vaW5kZXguanMnO1xuaW1wb3J0IHR5cGUgeyBNYW5hZ2VyLCBNaWRkbGV3YXJlIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKiogSGFuZGxpbmcgbmV0d29yayB1bmF1dGhvcml6ZWQgaW5kaWNhdG9ycyBsaWtlIEhUVFAgNDAxXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvTG9nb3V0TWFuYWdlclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2dvdXRNYW5hZ2VyIGltcGxlbWVudHMgTWFuYWdlciB7XG4gIGNvbnN0cnVjdG9yKHsgaGFuZGxlTG9nb3V0LCBzaG91bGRMb2dvdXQgfTogUHJvcHMgPSB7fSkge1xuICAgIGlmIChoYW5kbGVMb2dvdXQpIHRoaXMuaGFuZGxlTG9nb3V0ID0gaGFuZGxlTG9nb3V0O1xuICAgIGlmIChzaG91bGRMb2dvdXQpIHRoaXMuc2hvdWxkTG9nb3V0ID0gc2hvdWxkTG9nb3V0O1xuICB9XG5cbiAgbWlkZGxld2FyZTogTWlkZGxld2FyZSA9IGNvbnRyb2xsZXIgPT4gbmV4dCA9PiBhc3luYyBhY3Rpb24gPT4ge1xuICAgIGF3YWl0IG5leHQoYWN0aW9uKTtcbiAgICBpZiAoXG4gICAgICBhY3Rpb24udHlwZSA9PT0gU0VUX1JFU1BPTlNFX1RZUEUgJiZcbiAgICAgIGFjdGlvbi5lcnJvciAmJlxuICAgICAgdGhpcy5zaG91bGRMb2dvdXQoYWN0aW9uLnJlc3BvbnNlKVxuICAgICkge1xuICAgICAgdGhpcy5oYW5kbGVMb2dvdXQoY29udHJvbGxlcik7XG4gICAgfVxuICB9O1xuXG4gIGNsZWFudXAoKSB7fVxuXG4gIHByb3RlY3RlZCBzaG91bGRMb2dvdXQoZXJyb3I6IFVua25vd25FcnJvcikge1xuICAgIC8vIDQwMSBpbmRpY2F0ZXMgcmVhdXRob3JpemF0aW9uIGlzIG5lZWRlZFxuICAgIHJldHVybiBlcnJvci5zdGF0dXMgPT09IDQwMTtcbiAgfVxuXG4gIGhhbmRsZUxvZ291dChjb250cm9sbGVyOiBDb250cm9sbGVyKSB7XG4gICAgY29udHJvbGxlci5yZXNldEVudGlyZVN0b3JlKCk7XG4gIH1cbn1cblxudHlwZSBIYW5kbGVMb2dvdXQgPSAoY29udHJvbGxlcjogQ29udHJvbGxlcikgPT4gdm9pZDtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgaGFuZGxlTG9nb3V0PzogSGFuZGxlTG9nb3V0O1xuICBzaG91bGRMb2dvdXQ/OiAoZXJyb3I6IFVua25vd25FcnJvcikgPT4gYm9vbGVhbjtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsaUJBQWlCLFFBQVEsbUJBQW1CO0FBS3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxNQUFNQyxhQUFhLENBQW9CO0VBQ3BEQyxXQUFXQSxDQUFDO0lBQUVDLFlBQVk7SUFBRUM7RUFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0lBQUEsS0FLeERDLFVBQVUsR0FBZUMsVUFBVSxJQUFJQyxJQUFJLElBQUksTUFBTUMsTUFBTSxJQUFJO01BQzdELE1BQU1ELElBQUksQ0FBQ0MsTUFBTSxDQUFDO01BQ2xCLElBQ0VBLE1BQU0sQ0FBQ0MsSUFBSSxLQUFLVCxpQkFBaUIsSUFDakNRLE1BQU0sQ0FBQ0UsS0FBSyxJQUNaLElBQUksQ0FBQ04sWUFBWSxDQUFDSSxNQUFNLENBQUNHLFFBQVEsQ0FBQyxFQUNsQztRQUNBLElBQUksQ0FBQ1IsWUFBWSxDQUFDRyxVQUFVLENBQUM7TUFDL0I7SUFDRixDQUFDO0lBYkMsSUFBSUgsWUFBWSxFQUFFLElBQUksQ0FBQ0EsWUFBWSxHQUFHQSxZQUFZO0lBQ2xELElBQUlDLFlBQVksRUFBRSxJQUFJLENBQUNBLFlBQVksR0FBR0EsWUFBWTtFQUNwRDtFQWFBUSxPQUFPQSxDQUFBLEVBQUcsQ0FBQztFQUVEUixZQUFZQSxDQUFDTSxLQUFtQixFQUFFO0lBQzFDO0lBQ0EsT0FBT0EsS0FBSyxDQUFDRyxNQUFNLEtBQUssR0FBRztFQUM3QjtFQUVBVixZQUFZQSxDQUFDRyxVQUFzQixFQUFFO0lBQ25DQSxVQUFVLENBQUNRLGdCQUFnQixDQUFDLENBQUM7RUFDL0I7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -28,19 +28,19 @@ export default class NetworkManager implements Manager {
28
28
  };
29
29
  readonly dataExpiryLength: number;
30
30
  readonly errorExpiryLength: number;
31
- protected middleware: Middleware;
32
31
  protected controller: Controller;
33
32
  cleanupDate?: number;
34
33
  constructor({ dataExpiryLength, errorExpiryLength }?: {
35
34
  dataExpiryLength?: number | undefined;
36
35
  errorExpiryLength?: number | undefined;
37
36
  });
38
- /** Used by DevtoolsManager to determine whether to log an action */
39
- skipLogging(action: ActionTypes): boolean;
37
+ middleware: Middleware;
40
38
  /** On mount */
41
39
  init(): void;
42
40
  /** Ensures all promises are completed by rejecting remaining. */
43
41
  cleanup(): void;
42
+ /** Used by DevtoolsManager to determine whether to log an action */
43
+ skipLogging(action: ActionTypes): boolean;
44
44
  allSettled(): Promise<PromiseSettledResult<any>[]> | undefined;
45
45
  /** Clear all promise state */
46
46
  protected clearAll(): void;
@@ -61,14 +61,6 @@ export default class NetworkManager implements Manager {
61
61
  * Will resolve the promise associated with set key.
62
62
  */
63
63
  protected handleSet(action: SetResponseAction): void;
64
- /** Attaches NetworkManager to store
65
- *
66
- * Intercepts 'rdc/fetch' actions to start requests.
67
- *
68
- * Resolve/rejects a request when matching 'rdc/set' event
69
- * is seen.
70
- */
71
- getMiddleware(): Middleware;
72
64
  /** Ensures only one request for a given key is in flight at any time
73
65
  *
74
66
  * Uses key to either retrieve in-flight promise, or if not
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkManager.d.ts","sourceRoot":"","sources":["../../src/manager/NetworkManager.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,WAAW,EAEX,UAAU,EACV,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,qBAAa,UAAW,SAAQ,KAAK;IACnC,IAAI,SAAgB;;CAKrB;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,OAAO;IACpD,SAAS,CAAC,OAAO,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAuB;IACvE,SAAS,CAAC,SAAS,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE,CAAM;IACjE,SAAS,CAAC,SAAS,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE,CAAM;IACjE,SAAS,CAAC,SAAS,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IAClD,SAAiB,gBAAgB,EAAE,MAAM,CAAC;IAC1C,SAAiB,iBAAiB,EAAE,MAAM,CAAC;IAC3C,UAAkB,UAAU,EAAE,UAAU,CAAC;IACzC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAoB;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;gBAEjB,EAAE,gBAAwB,EAAE,iBAAwB,EAAE;;;KAAK;IA6DvE,oEAAoE;IACpE,WAAW,CAAC,MAAM,EAAE,WAAW;IAK/B,eAAe;IACf,IAAI;IAIJ,iEAAiE;IACjE,OAAO;IAMP,UAAU;IAKV,8BAA8B;IAC9B,SAAS,CAAC,QAAQ;IAMlB,0CAA0C;IAC1C,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM;IAQ3B,SAAS,CAAC,YAAY;IAKtB;;;;;;;OAOG;IACH,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW;IAuEzC;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB;IAe7C;;;;;;OAMG;IACH,aAAa;IAIb;;;;;;;;;OASG;IACH,SAAS,CAAC,QAAQ,CAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EACzB,SAAS,EAAE,MAAM;IA4BnB;;;OAGG;IACH,SAAS,CAAC,YAAY,CACpB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAClC,OAAO,CAAC,EAAE,kBAAkB;CAI/B"}
1
+ {"version":3,"file":"NetworkManager.d.ts","sourceRoot":"","sources":["../../src/manager/NetworkManager.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,WAAW,EAEX,UAAU,EACV,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,qBAAa,UAAW,SAAQ,KAAK;IACnC,IAAI,SAAgB;;CAKrB;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,OAAO;IACpD,SAAS,CAAC,OAAO,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAuB;IACvE,SAAS,CAAC,SAAS,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE,CAAM;IACjE,SAAS,CAAC,SAAS,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE,CAAM;IACjE,SAAS,CAAC,SAAS,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IAClD,SAAiB,gBAAgB,EAAE,MAAM,CAAC;IAC1C,SAAiB,iBAAiB,EAAE,MAAM,CAAC;IAC3C,SAAS,CAAC,UAAU,EAAE,UAAU,CAAoB;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;gBAEjB,EAAE,gBAAwB,EAAE,iBAAwB,EAAE;;;KAAK;IAKvE,UAAU,EAAE,UAAU,CAqDpB;IAEF,eAAe;IACf,IAAI;IAIJ,iEAAiE;IACjE,OAAO;IAMP,oEAAoE;IACpE,WAAW,CAAC,MAAM,EAAE,WAAW;IAK/B,UAAU;IAKV,8BAA8B;IAC9B,SAAS,CAAC,QAAQ;IAMlB,0CAA0C;IAC1C,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM;IAQ3B,SAAS,CAAC,YAAY;IAKtB;;;;;;;OAOG;IACH,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW;IAuEzC;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB;IAe7C;;;;;;;;;OASG;IACH,SAAS,CAAC,QAAQ,CAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EACzB,SAAS,EAAE,MAAM;IA4BnB;;;OAGG;IACH,SAAS,CAAC,YAAY,CACpB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAClC,OAAO,CAAC,EAAE,kBAAkB;CAI/B"}
@@ -27,8 +27,6 @@ export default class NetworkManager {
27
27
  this.rejectors = {};
28
28
  this.fetchedAt = {};
29
29
  this.controller = new Controller();
30
- this.dataExpiryLength = dataExpiryLength;
31
- this.errorExpiryLength = errorExpiryLength;
32
30
  this.middleware = controller => {
33
31
  this.controller = controller;
34
32
  return next => action => {
@@ -81,14 +79,9 @@ export default class NetworkManager {
81
79
  }
82
80
  };
83
81
  };
82
+ this.dataExpiryLength = dataExpiryLength;
83
+ this.errorExpiryLength = errorExpiryLength;
84
84
  }
85
-
86
- /** Used by DevtoolsManager to determine whether to log an action */
87
- skipLogging(action) {
88
- /* istanbul ignore next */
89
- return action.type === FETCH_TYPE && action.key in this.fetched;
90
- }
91
-
92
85
  /** On mount */
93
86
  init() {
94
87
  delete this.cleanupDate;
@@ -100,6 +93,12 @@ export default class NetworkManager {
100
93
  // this must be reversible (done in init) so useEffect() remains symmetric
101
94
  this.cleanupDate = Date.now();
102
95
  }
96
+
97
+ /** Used by DevtoolsManager to determine whether to log an action */
98
+ skipLogging(action) {
99
+ /* istanbul ignore next */
100
+ return action.type === FETCH_TYPE && action.key in this.fetched;
101
+ }
103
102
  allSettled() {
104
103
  const fetches = Object.values(this.fetched);
105
104
  if (fetches.length) return Promise.allSettled(fetches);
@@ -214,17 +213,6 @@ export default class NetworkManager {
214
213
  }
215
214
  }
216
215
 
217
- /** Attaches NetworkManager to store
218
- *
219
- * Intercepts 'rdc/fetch' actions to start requests.
220
- *
221
- * Resolve/rejects a request when matching 'rdc/set' event
222
- * is seen.
223
- */
224
- getMiddleware() {
225
- return this.middleware;
226
- }
227
-
228
216
  /** Ensures only one request for a given key is in flight at any time
229
217
  *
230
218
  * Uses key to either retrieve in-flight promise, or if not
@@ -266,4 +254,4 @@ export default class NetworkManager {
266
254
  callback();
267
255
  }
268
256
  }
269
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfUkVTUE9OU0VfVFlQRSIsIkZFVENIX1RZUEUiLCJSRVNFVF9UWVBFIiwiY3JlYXRlU2V0UmVzcG9uc2UiLCJDb250cm9sbGVyIiwiUmVzZXRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiTmV0d29ya01hbmFnZXIiLCJkYXRhRXhwaXJ5TGVuZ3RoIiwiZXJyb3JFeHBpcnlMZW5ndGgiLCJmZXRjaGVkIiwiT2JqZWN0IiwiY3JlYXRlIiwicmVzb2x2ZXJzIiwicmVqZWN0b3JzIiwiZmV0Y2hlZEF0IiwiY29udHJvbGxlciIsIm1pZGRsZXdhcmUiLCJuZXh0IiwiYWN0aW9uIiwidHlwZSIsImhhbmRsZUZldGNoIiwiZW5kcG9pbnQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJ1bmRlZmluZWQiLCJzaWRlRWZmZWN0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwia2V5IiwiX2NvbnRyb2xsZXIkZ2V0U3RhdGUkIiwiZXJyb3IiLCJnZXRTdGF0ZSIsIm1ldGEiLCJoYW5kbGVTZXQiLCJhcmdzIiwicmVzcG9uc2UiLCJjbGVhckFsbCIsImsiLCJza2lwTG9nZ2luZyIsImluaXQiLCJjbGVhbnVwRGF0ZSIsImNsZWFudXAiLCJEYXRlIiwibm93IiwiYWxsU2V0dGxlZCIsImZldGNoZXMiLCJ2YWx1ZXMiLCJsZW5ndGgiLCJjbGVhciIsImNhdGNoIiwiZ2V0TGFzdFJlc2V0IiwibGFzdFJlc2V0IiwicmVqZWN0IiwidGhyb3R0bGUiLCJkZWZlcmVkRmV0Y2giLCJwcm9taXNlIiwicmVzb2x2ZVByb21pc2UiLCJkYXRhIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiaXNOYU4iLCJjb25zb2xlIiwicHJvbWlzZUhhbmRsZXIiLCJnZXRNaWRkbGV3YXJlIiwiZmV0Y2giLCJpZGxlQ2FsbGJhY2siLCJ0aW1lb3V0IiwiY2FsbGJhY2siLCJvcHRpb25zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvTmV0d29ya01hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU0VUX1JFU1BPTlNFX1RZUEUsIEZFVENIX1RZUEUsIFJFU0VUX1RZUEUgfSBmcm9tICcuLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVTZXRSZXNwb25zZSB9IGZyb20gJy4uL2NvbnRyb2xsZXIvYWN0aW9ucy9pbmRleC5qcyc7XG5pbXBvcnQgQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUge1xuICBGZXRjaEFjdGlvbixcbiAgTWFuYWdlcixcbiAgQWN0aW9uVHlwZXMsXG4gIE1pZGRsZXdhcmVBUEksXG4gIE1pZGRsZXdhcmUsXG4gIFNldFJlc3BvbnNlQWN0aW9uLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBSZXNldEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBuYW1lID0gJ1Jlc2V0RXJyb3InO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdBYm9ydGVkIGR1ZSB0byBSRVNFVCcpO1xuICB9XG59XG5cbi8qKiBIYW5kbGVzIGFsbCBhc3luYyBuZXR3b3JrIGRpc3BhdGNoZXNcbiAqXG4gKiBEZWR1cGVzIGNvbmN1cnJlbnQgcmVxdWVzdHMgYnkga2VlcGluZyB0cmFjayBvZiBhbGwgZmV0Y2hlcyBpbiBmbGlnaHRcbiAqIGFuZCByZXR1cm5pbmcgZXhpc3RpbmcgcHJvbWlzZXMgZm9yIHJlcXVlc3RzIGFscmVhZHkgaW4gZmxpZ2h0LlxuICpcbiAqIEludGVyZmFjZXMgd2l0aCBzdG9yZSB2aWEgYSByZWR1eC1jb21wYXRpYmxlIG1pZGRsZXdhcmUuXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvTmV0d29ya01hbmFnZXJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV0d29ya01hbmFnZXIgaW1wbGVtZW50cyBNYW5hZ2VyIHtcbiAgcHJvdGVjdGVkIGZldGNoZWQ6IHsgW2s6IHN0cmluZ106IFByb21pc2U8YW55PiB9ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgcHJvdGVjdGVkIHJlc29sdmVyczogeyBbazogc3RyaW5nXTogKHZhbHVlPzogYW55KSA9PiB2b2lkIH0gPSB7fTtcbiAgcHJvdGVjdGVkIHJlamVjdG9yczogeyBbazogc3RyaW5nXTogKHZhbHVlPzogYW55KSA9PiB2b2lkIH0gPSB7fTtcbiAgcHJvdGVjdGVkIGZldGNoZWRBdDogeyBbazogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgZGVjbGFyZSByZWFkb25seSBkYXRhRXhwaXJ5TGVuZ3RoOiBudW1iZXI7XG4gIGRlY2xhcmUgcmVhZG9ubHkgZXJyb3JFeHBpcnlMZW5ndGg6IG51bWJlcjtcbiAgcHJvdGVjdGVkIGRlY2xhcmUgbWlkZGxld2FyZTogTWlkZGxld2FyZTtcbiAgcHJvdGVjdGVkIGNvbnRyb2xsZXI6IENvbnRyb2xsZXIgPSBuZXcgQ29udHJvbGxlcigpO1xuICBkZWNsYXJlIGNsZWFudXBEYXRlPzogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHsgZGF0YUV4cGlyeUxlbmd0aCA9IDYwMDAwLCBlcnJvckV4cGlyeUxlbmd0aCA9IDEwMDAgfSA9IHt9KSB7XG4gICAgdGhpcy5kYXRhRXhwaXJ5TGVuZ3RoID0gZGF0YUV4cGlyeUxlbmd0aDtcbiAgICB0aGlzLmVycm9yRXhwaXJ5TGVuZ3RoID0gZXJyb3JFeHBpcnlMZW5ndGg7XG5cbiAgICB0aGlzLm1pZGRsZXdhcmUgPSA8QyBleHRlbmRzIE1pZGRsZXdhcmVBUEk+KGNvbnRyb2xsZXI6IEMpID0+IHtcbiAgICAgIHRoaXMuY29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG4gICAgICByZXR1cm4gKG5leHQ6IENbJ2Rpc3BhdGNoJ10pOiBDWydkaXNwYXRjaCddID0+XG4gICAgICAgIChhY3Rpb24pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZFVENIX1RZUEU6XG4gICAgICAgICAgICAgIHRoaXMuaGFuZGxlRmV0Y2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgb25seSBjYXNlIHRoYXQgY2F1c2VzIGFueSBzdGF0ZSBjaGFuZ2VcbiAgICAgICAgICAgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gaW50ZXJjZXB0IG90aGVyIGZldGNoZXMgYXMgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIHJlZHVjZXJzIGR1cmluZ1xuICAgICAgICAgICAgICAvLyByZW5kZXIgLSBzbyB3ZSBuZWVkIHRvIHN0b3AgJ3JlYWRvbmx5JyBmZXRjaGVzIHdoaWNoIGNhbiBiZSB0cmlnZ2VyZWQgaW4gcmVuZGVyXG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBhY3Rpb24uZW5kcG9pbnQuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBhY3Rpb24uZW5kcG9pbnQuc2lkZUVmZmVjdFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIGNhc2UgU0VUX1JFU1BPTlNFX1RZUEU6XG4gICAgICAgICAgICAgIC8vIG9ubHkgc2V0IGFmdGVyIG5ldyBzdGF0ZSBpcyBjb21wdXRlZFxuICAgICAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhY3Rpb24ua2V5IGluIHRoaXMuZmV0Y2hlZCkge1xuICAgICAgICAgICAgICAgICAgLy8gTm90ZTogbWV0YSAqbXVzdCogYmUgc2V0IGJ5IHJlZHVjZXIgc28gdGhpcyBzaG91bGQgYmUgc2FmZVxuICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBjb250cm9sbGVyLmdldFN0YXRlKCkubWV0YVthY3Rpb24ua2V5XT8uZXJyb3I7XG4gICAgICAgICAgICAgICAgICAvLyBwcm9jZXNzaW5nIGVycm9ycyByZXN1bHQgaW4gc3RhdGUgbWV0YSBoYXZpbmcgZXJyb3IsIHNvIHdlIHNob3VsZCByZWplY3QgdGhlIHByb21pc2VcbiAgICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVNldChcbiAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTZXRSZXNwb25zZShhY3Rpb24uZW5kcG9pbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IGFjdGlvbi5hcmdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6IGVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hlZEF0OiBhY3Rpb24ubWV0YS5mZXRjaGVkQXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU2V0KGFjdGlvbik7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgUkVTRVRfVFlQRToge1xuICAgICAgICAgICAgICBjb25zdCByZWplY3RvcnMgPSB7IC4uLnRoaXMucmVqZWN0b3JzIH07XG5cbiAgICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xuICAgICAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIHRoZXJlIGNvdWxkIGJlIGV4dGVybmFsIGxpc3RlbmVycyB0byB0aGUgcHJvbWlzZVxuICAgICAgICAgICAgICAgIC8vIHRoaXMgbXVzdCBoYXBwZW4gYWZ0ZXIgY29tbWl0IHNvIG91ciBvd24gcmVqZWN0b3Iga25vd3Mgbm90IHRvIGRpc3BhdGNoIGFuIGVycm9yIGJhc2VkIG9uIHRoaXNcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGsgaW4gcmVqZWN0b3JzKSB7XG4gICAgICAgICAgICAgICAgICByZWplY3RvcnNba10obmV3IFJlc2V0RXJyb3IoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG4gIH1cblxuICAvKiogVXNlZCBieSBEZXZ0b29sc01hbmFnZXIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gbG9nIGFuIGFjdGlvbiAqL1xuICBza2lwTG9nZ2luZyhhY3Rpb246IEFjdGlvblR5cGVzKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gYWN0aW9uLnR5cGUgPT09IEZFVENIX1RZUEUgJiYgYWN0aW9uLmtleSBpbiB0aGlzLmZldGNoZWQ7XG4gIH1cblxuICAvKiogT24gbW91bnQgKi9cbiAgaW5pdCgpIHtcbiAgICBkZWxldGUgdGhpcy5jbGVhbnVwRGF0ZTtcbiAgfVxuXG4gIC8qKiBFbnN1cmVzIGFsbCBwcm9taXNlcyBhcmUgY29tcGxldGVkIGJ5IHJlamVjdGluZyByZW1haW5pbmcuICovXG4gIGNsZWFudXAoKSB7XG4gICAgLy8gZW5zdXJlIG5vIGRpc3BhdGNoZXMgYWZ0ZXIgdW5tb3VudFxuICAgIC8vIHRoaXMgbXVzdCBiZSByZXZlcnNpYmxlIChkb25lIGluIGluaXQpIHNvIHVzZUVmZmVjdCgpIHJlbWFpbnMgc3ltbWV0cmljXG4gICAgdGhpcy5jbGVhbnVwRGF0ZSA9IERhdGUubm93KCk7XG4gIH1cblxuICBhbGxTZXR0bGVkKCkge1xuICAgIGNvbnN0IGZldGNoZXMgPSBPYmplY3QudmFsdWVzKHRoaXMuZmV0Y2hlZCk7XG4gICAgaWYgKGZldGNoZXMubGVuZ3RoKSByZXR1cm4gUHJvbWlzZS5hbGxTZXR0bGVkKGZldGNoZXMpO1xuICB9XG5cbiAgLyoqIENsZWFyIGFsbCBwcm9taXNlIHN0YXRlICovXG4gIHByb3RlY3RlZCBjbGVhckFsbCgpIHtcbiAgICBmb3IgKGNvbnN0IGsgaW4gdGhpcy5yZWplY3RvcnMpIHtcbiAgICAgIHRoaXMuY2xlYXIoayk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENsZWFyIHByb21pc2Ugc3RhdGUgZm9yIGEgZ2l2ZW4ga2V5ICovXG4gIHByb3RlY3RlZCBjbGVhcihrZXk6IHN0cmluZykge1xuICAgIHRoaXMuZmV0Y2hlZFtrZXldLmNhdGNoKCgpID0+IHt9KTtcbiAgICBkZWxldGUgdGhpcy5yZXNvbHZlcnNba2V5XTtcbiAgICBkZWxldGUgdGhpcy5yZWplY3RvcnNba2V5XTtcbiAgICBkZWxldGUgdGhpcy5mZXRjaGVkW2tleV07XG4gICAgZGVsZXRlIHRoaXMuZmV0Y2hlZEF0W2tleV07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TGFzdFJlc2V0KCkge1xuICAgIGlmICh0aGlzLmNsZWFudXBEYXRlKSByZXR1cm4gdGhpcy5jbGVhbnVwRGF0ZTtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmdldFN0YXRlKCkubGFzdFJlc2V0O1xuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyAncmRjL2ZldGNoJyBhY3Rpb24uXG4gICAqXG4gICAqIFdpbGwgdGhlbiBzdGFydCBhIHByb21pc2UgZm9yIGEga2V5IGFuZCBwb3RlbnRpYWxseSBzdGFydCB0aGUgbmV0d29ya1xuICAgKiBmZXRjaC5cbiAgICpcbiAgICogVXNlcyB0aHJvdHRsZSBlbmRwb2ludHMgd2l0aG91dCBzaWRlRWZmZWN0cy4gVGhpcyBpcyB2YWx1YWJsZVxuICAgKiBmb3IgZW5zdXJlcyBtdXRhdGlvbiByZXF1ZXN0cyBhbHdheXMgZ28gdGhyb3VnaC5cbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVGZXRjaChhY3Rpb246IEZldGNoQWN0aW9uKSB7XG4gICAgY29uc3QgeyByZXNvbHZlLCByZWplY3QsIGZldGNoZWRBdCB9ID0gYWN0aW9uLm1ldGE7XG4gICAgY29uc3QgdGhyb3R0bGUgPSAhYWN0aW9uLmVuZHBvaW50LnNpZGVFZmZlY3Q7XG5cbiAgICBjb25zdCBkZWZlcmVkRmV0Y2ggPSAoKSA9PiB7XG4gICAgICBsZXQgcHJvbWlzZSA9IGFjdGlvbi5lbmRwb2ludCguLi5hY3Rpb24uYXJncyk7XG4gICAgICBjb25zdCByZXNvbHZlUHJvbWlzZSA9IChcbiAgICAgICAgcHJvbWlzZTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBvYmplY3QgfCBudWxsPixcbiAgICAgICkgPT5cbiAgICAgICAgcHJvbWlzZVxuICAgICAgICAgIC50aGVuKGRhdGEgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZShkYXRhKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICB9KTtcbiAgICAgIC8vIHNjaGVkdWxlIG5vbi10aHJvdHRsZWQgcmVzb2x1dGlvbnMgaW4gYSBtaWNyb3Rhc2sgYmVmb3JlIHNldFxuICAgICAgLy8gdGhpcyBlbmFibGVzIHVzZXJzIGF3YWl0aW5nIHRoZWlyIGZldGNoIHRvIHRyaWdnZXIgYW55IHJlYWN0IHVwZGF0ZXMgbmVlZGVkIHRvIGRlYWxcbiAgICAgIC8vIHdpdGggdXBjb21pbmcgY2hhbmdlcyBiZWNhdXNlIG9mIHRoZSBmZXRjaCAoZm9yIGluc3RhbmNlIGF2b2lkaW5nIHN1c3BlbnNlIGlmIHNvbWV0aGluZyBpcyBkZWxldGVkKVxuICAgICAgaWYgKCF0aHJvdHRsZSkge1xuICAgICAgICBwcm9taXNlID0gcmVzb2x2ZVByb21pc2UocHJvbWlzZSk7XG4gICAgICB9XG4gICAgICBwcm9taXNlID0gcHJvbWlzZVxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgbGV0IGxhc3RSZXNldCA9IHRoaXMuZ2V0TGFzdFJlc2V0KCk7XG5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzTmFOKGxhc3RSZXNldCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICdzdGF0ZS5sYXN0UmVzZXQgaXMgTmFOLiBPbmx5IHBvc2l0aXZlIHRpbWVzdGFtcHMgYXJlIHZhbGlkLicsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbGFzdFJlc2V0ID0gMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBkb24ndCB1cGRhdGUgc3RhdGUgd2l0aCBwcm9taXNlcyBzdGFydGVkIGJlZm9yZSBsYXN0IGNsZWFyXG4gICAgICAgICAgaWYgKGZldGNoZWRBdCA+PSBsYXN0UmVzZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5yZXNvbHZlKGFjdGlvbi5lbmRwb2ludCwge1xuICAgICAgICAgICAgICBhcmdzOiBhY3Rpb24uYXJncyxcbiAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgIGZldGNoZWRBdCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgY29uc3QgbGFzdFJlc2V0ID0gdGhpcy5nZXRMYXN0UmVzZXQoKTtcbiAgICAgICAgICAvLyBkb24ndCB1cGRhdGUgc3RhdGUgd2l0aCBwcm9taXNlcyBzdGFydGVkIGJlZm9yZSBsYXN0IGNsZWFyXG4gICAgICAgICAgaWYgKGZldGNoZWRBdCA+PSBsYXN0UmVzZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5yZXNvbHZlKGFjdGlvbi5lbmRwb2ludCwge1xuICAgICAgICAgICAgICBhcmdzOiBhY3Rpb24uYXJncyxcbiAgICAgICAgICAgICAgcmVzcG9uc2U6IGVycm9yLFxuICAgICAgICAgICAgICBmZXRjaGVkQXQsXG4gICAgICAgICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH07XG5cbiAgICBpZiAodGhyb3R0bGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnRocm90dGxlKGFjdGlvbi5rZXksIGRlZmVyZWRGZXRjaCwgZmV0Y2hlZEF0KVxuICAgICAgICAudGhlbihkYXRhID0+IHJlc29sdmUoZGF0YSkpXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiByZWplY3QoZXJyb3IpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRlZmVyZWRGZXRjaCgpLmNhdGNoKCgpID0+IHt9KTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gbWlkZGxld2FyZSBpbnRlcmNlcHRzIGEgc2V0IGFjdGlvbi5cbiAgICpcbiAgICogV2lsbCByZXNvbHZlIHRoZSBwcm9taXNlIGFzc29jaWF0ZWQgd2l0aCBzZXQga2V5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVNldChhY3Rpb246IFNldFJlc3BvbnNlQWN0aW9uKSB7XG4gICAgLy8gdGhpcyBjYW4gc3RpbGwgdHVybiBvdXQgdG8gYmUgdW50cnVlIHNpbmNlIHRoaXMgaXMgYXN5bmNcbiAgICBpZiAoYWN0aW9uLmtleSBpbiB0aGlzLmZldGNoZWQpIHtcbiAgICAgIGxldCBwcm9taXNlSGFuZGxlcjogKHZhbHVlPzogYW55KSA9PiB2b2lkO1xuICAgICAgaWYgKGFjdGlvbi5lcnJvcikge1xuICAgICAgICBwcm9taXNlSGFuZGxlciA9IHRoaXMucmVqZWN0b3JzW2FjdGlvbi5rZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvbWlzZUhhbmRsZXIgPSB0aGlzLnJlc29sdmVyc1thY3Rpb24ua2V5XTtcbiAgICAgIH1cbiAgICAgIHByb21pc2VIYW5kbGVyKGFjdGlvbi5yZXNwb25zZSk7XG4gICAgICAvLyBzaW5jZSB3ZSdyZSByZXNvbHZlZCB3ZSBubyBsb25nZXIgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoaXMgcHJvbWlzZVxuICAgICAgdGhpcy5jbGVhcihhY3Rpb24ua2V5KTtcbiAgICB9XG4gIH1cblxuICAvKiogQXR0YWNoZXMgTmV0d29ya01hbmFnZXIgdG8gc3RvcmVcbiAgICpcbiAgICogSW50ZXJjZXB0cyAncmRjL2ZldGNoJyBhY3Rpb25zIHRvIHN0YXJ0IHJlcXVlc3RzLlxuICAgKlxuICAgKiBSZXNvbHZlL3JlamVjdHMgYSByZXF1ZXN0IHdoZW4gbWF0Y2hpbmcgJ3JkYy9zZXQnIGV2ZW50XG4gICAqIGlzIHNlZW4uXG4gICAqL1xuICBnZXRNaWRkbGV3YXJlKCkge1xuICAgIHJldHVybiB0aGlzLm1pZGRsZXdhcmU7XG4gIH1cblxuICAvKiogRW5zdXJlcyBvbmx5IG9uZSByZXF1ZXN0IGZvciBhIGdpdmVuIGtleSBpcyBpbiBmbGlnaHQgYXQgYW55IHRpbWVcbiAgICpcbiAgICogVXNlcyBrZXkgdG8gZWl0aGVyIHJldHJpZXZlIGluLWZsaWdodCBwcm9taXNlLCBvciBpZiBub3RcbiAgICogY3JlYXRlIGEgbmV3IHByb21pc2UgYW5kIGNhbGwgZmV0Y2guXG4gICAqXG4gICAqIE5vdGU6IFRoZSBuZXcgcHJvbWlzZSBpcyBub3QgYWN0dWFsbHkgdGllZCB0byBmZXRjaCBhdCBhbGwsXG4gICAqIGJ1dCBpcyByZXNvbHZlZCB3aGVuIHRoZSBleHBlY3RlZCAncmVjaWV2ZScgYWN0aW9uIGlzIHByb2Nlc3NlZC5cbiAgICogVGhpcyBlbnN1cmVzIHByb21pc2VzIGFyZSByZXNvbHZlZCBvbmx5IG9uY2UgdGhlaXIgZGF0YSBpcyBwcm9jZXNzZWRcbiAgICogYnkgdGhlIHJlZHVjZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgdGhyb3R0bGUoXG4gICAga2V5OiBzdHJpbmcsXG4gICAgZmV0Y2g6ICgpID0+IFByb21pc2U8YW55PixcbiAgICBmZXRjaGVkQXQ6IG51bWJlcixcbiAgKSB7XG4gICAgY29uc3QgbGFzdFJlc2V0ID0gdGhpcy5nZXRMYXN0UmVzZXQoKTtcbiAgICAvLyB3ZSdyZSBhbHJlYWR5IGZldGNoaW5nIHNvIHJldXNlIHRoZSBwcm9taXNlXG4gICAgLy8gZmV0Y2hlcyBhZnRlciByZXNldCBkbyBub3QgY291bnRcbiAgICBpZiAoa2V5IGluIHRoaXMuZmV0Y2hlZCAmJiB0aGlzLmZldGNoZWRBdFtrZXldID4gbGFzdFJlc2V0KSB7XG4gICAgICByZXR1cm4gdGhpcy5mZXRjaGVkW2tleV07XG4gICAgfVxuXG4gICAgdGhpcy5mZXRjaGVkW2tleV0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLnJlc29sdmVyc1trZXldID0gcmVzb2x2ZTtcbiAgICAgIHRoaXMucmVqZWN0b3JzW2tleV0gPSByZWplY3Q7XG4gICAgfSk7XG4gICAgdGhpcy5mZXRjaGVkQXRba2V5XSA9IGZldGNoZWRBdDtcblxuICAgIHRoaXMuaWRsZUNhbGxiYWNrKFxuICAgICAgKCkgPT4ge1xuICAgICAgICAvLyBzaW5jZSBvdXIgcmVhbCBwcm9taXNlIGlzIHJlc29sdmVkIHZpYSB0aGUgd3JhcFJlZHVjZXIoKSxcbiAgICAgICAgLy8gd2Ugc2hvdWxkIGp1c3Qgc3RvcCBhbGwgZXJyb3JzIGhlcmUuXG4gICAgICAgIC8vIFRPRE86IGRlY291cGxlIHRoaXMgZnJvbSB1c2VGZXRjaGVyKCkgKHRoYXQncyB3aGF0J3MgZGlzcGF0Y2hpbmcgdGhlIGVycm9yIHRoZSByZXNvbHZlcyBpbiBoZXJlKVxuICAgICAgICBmZXRjaCgpLmNhdGNoKCgpID0+IG51bGwpO1xuICAgICAgfSxcbiAgICAgIHsgdGltZW91dDogNTAwIH0sXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmZldGNoZWRba2V5XTtcbiAgfVxuXG4gIC8qKiBDYWxscyB0aGUgY2FsbGJhY2sgd2hlbiBjbGllbnQgaXMgbm90ICdidXN5JyB3aXRoIGhpZ2ggcHJpb3JpdHkgaW50ZXJhY3Rpb24gdGFza3NcbiAgICpcbiAgICogT3ZlcnJpZGUgZm9yIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGlkbGVDYWxsYmFjayhcbiAgICBjYWxsYmFjazogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkLFxuICAgIG9wdGlvbnM/OiBJZGxlUmVxdWVzdE9wdGlvbnMsXG4gICkge1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsaUJBQWlCLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxRQUFRLG1CQUFtQjtBQUM3RSxTQUFTQyxpQkFBaUIsUUFBUSxnQ0FBZ0M7QUFDbEUsT0FBT0MsVUFBVSxNQUFNLDZCQUE2QjtBQVVwRCxPQUFPLE1BQU1DLFVBQVUsU0FBU0MsS0FBSyxDQUFDO0VBR3BDQyxXQUFXQSxDQUFBLEVBQUc7SUFDWixLQUFLLENBQUMsc0JBQXNCLENBQUM7SUFBQyxLQUhoQ0MsSUFBSSxHQUFHLFlBQVk7RUFJbkI7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE1BQU1DLGNBQWMsQ0FBb0I7RUFXckRGLFdBQVdBLENBQUM7SUFBRUcsZ0JBQWdCLEdBQUcsS0FBSztJQUFFQyxpQkFBaUIsR0FBRztFQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUFBLEtBVi9EQyxPQUFPLEdBQWtDQyxNQUFNLENBQUNDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFBQSxLQUM1REMsU0FBUyxHQUEyQyxDQUFDLENBQUM7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
257
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfUkVTUE9OU0VfVFlQRSIsIkZFVENIX1RZUEUiLCJSRVNFVF9UWVBFIiwiY3JlYXRlU2V0UmVzcG9uc2UiLCJDb250cm9sbGVyIiwiUmVzZXRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiTmV0d29ya01hbmFnZXIiLCJkYXRhRXhwaXJ5TGVuZ3RoIiwiZXJyb3JFeHBpcnlMZW5ndGgiLCJmZXRjaGVkIiwiT2JqZWN0IiwiY3JlYXRlIiwicmVzb2x2ZXJzIiwicmVqZWN0b3JzIiwiZmV0Y2hlZEF0IiwiY29udHJvbGxlciIsIm1pZGRsZXdhcmUiLCJuZXh0IiwiYWN0aW9uIiwidHlwZSIsImhhbmRsZUZldGNoIiwiZW5kcG9pbnQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJ1bmRlZmluZWQiLCJzaWRlRWZmZWN0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwia2V5IiwiX2NvbnRyb2xsZXIkZ2V0U3RhdGUkIiwiZXJyb3IiLCJnZXRTdGF0ZSIsIm1ldGEiLCJoYW5kbGVTZXQiLCJhcmdzIiwicmVzcG9uc2UiLCJjbGVhckFsbCIsImsiLCJpbml0IiwiY2xlYW51cERhdGUiLCJjbGVhbnVwIiwiRGF0ZSIsIm5vdyIsInNraXBMb2dnaW5nIiwiYWxsU2V0dGxlZCIsImZldGNoZXMiLCJ2YWx1ZXMiLCJsZW5ndGgiLCJjbGVhciIsImNhdGNoIiwiZ2V0TGFzdFJlc2V0IiwibGFzdFJlc2V0IiwicmVqZWN0IiwidGhyb3R0bGUiLCJkZWZlcmVkRmV0Y2giLCJwcm9taXNlIiwicmVzb2x2ZVByb21pc2UiLCJkYXRhIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiaXNOYU4iLCJjb25zb2xlIiwicHJvbWlzZUhhbmRsZXIiLCJmZXRjaCIsImlkbGVDYWxsYmFjayIsInRpbWVvdXQiLCJjYWxsYmFjayIsIm9wdGlvbnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFuYWdlci9OZXR3b3JrTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTRVRfUkVTUE9OU0VfVFlQRSwgRkVUQ0hfVFlQRSwgUkVTRVRfVFlQRSB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB7IGNyZWF0ZVNldFJlc3BvbnNlIH0gZnJvbSAnLi4vY29udHJvbGxlci9hY3Rpb25zL2luZGV4LmpzJztcbmltcG9ydCBDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEZldGNoQWN0aW9uLFxuICBNYW5hZ2VyLFxuICBBY3Rpb25UeXBlcyxcbiAgTWlkZGxld2FyZUFQSSxcbiAgTWlkZGxld2FyZSxcbiAgU2V0UmVzcG9uc2VBY3Rpb24sXG59IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIFJlc2V0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIG5hbWUgPSAnUmVzZXRFcnJvcic7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ0Fib3J0ZWQgZHVlIHRvIFJFU0VUJyk7XG4gIH1cbn1cblxuLyoqIEhhbmRsZXMgYWxsIGFzeW5jIG5ldHdvcmsgZGlzcGF0Y2hlc1xuICpcbiAqIERlZHVwZXMgY29uY3VycmVudCByZXF1ZXN0cyBieSBrZWVwaW5nIHRyYWNrIG9mIGFsbCBmZXRjaGVzIGluIGZsaWdodFxuICogYW5kIHJldHVybmluZyBleGlzdGluZyBwcm9taXNlcyBmb3IgcmVxdWVzdHMgYWxyZWFkeSBpbiBmbGlnaHQuXG4gKlxuICogSW50ZXJmYWNlcyB3aXRoIHN0b3JlIHZpYSBhIHJlZHV4LWNvbXBhdGlibGUgbWlkZGxld2FyZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9OZXR3b3JrTWFuYWdlclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXR3b3JrTWFuYWdlciBpbXBsZW1lbnRzIE1hbmFnZXIge1xuICBwcm90ZWN0ZWQgZmV0Y2hlZDogeyBbazogc3RyaW5nXTogUHJvbWlzZTxhbnk+IH0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBwcm90ZWN0ZWQgcmVzb2x2ZXJzOiB7IFtrOiBzdHJpbmddOiAodmFsdWU/OiBhbnkpID0+IHZvaWQgfSA9IHt9O1xuICBwcm90ZWN0ZWQgcmVqZWN0b3JzOiB7IFtrOiBzdHJpbmddOiAodmFsdWU/OiBhbnkpID0+IHZvaWQgfSA9IHt9O1xuICBwcm90ZWN0ZWQgZmV0Y2hlZEF0OiB7IFtrOiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICBkZWNsYXJlIHJlYWRvbmx5IGRhdGFFeHBpcnlMZW5ndGg6IG51bWJlcjtcbiAgZGVjbGFyZSByZWFkb25seSBlcnJvckV4cGlyeUxlbmd0aDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgY29udHJvbGxlcjogQ29udHJvbGxlciA9IG5ldyBDb250cm9sbGVyKCk7XG4gIGRlY2xhcmUgY2xlYW51cERhdGU/OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoeyBkYXRhRXhwaXJ5TGVuZ3RoID0gNjAwMDAsIGVycm9yRXhwaXJ5TGVuZ3RoID0gMTAwMCB9ID0ge30pIHtcbiAgICB0aGlzLmRhdGFFeHBpcnlMZW5ndGggPSBkYXRhRXhwaXJ5TGVuZ3RoO1xuICAgIHRoaXMuZXJyb3JFeHBpcnlMZW5ndGggPSBlcnJvckV4cGlyeUxlbmd0aDtcbiAgfVxuXG4gIG1pZGRsZXdhcmU6IE1pZGRsZXdhcmUgPSBjb250cm9sbGVyID0+IHtcbiAgICB0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuICAgIHJldHVybiBuZXh0ID0+IGFjdGlvbiA9PiB7XG4gICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgRkVUQ0hfVFlQRTpcbiAgICAgICAgICB0aGlzLmhhbmRsZUZldGNoKGFjdGlvbik7XG4gICAgICAgICAgLy8gVGhpcyBpcyB0aGUgb25seSBjYXNlIHRoYXQgY2F1c2VzIGFueSBzdGF0ZSBjaGFuZ2VcbiAgICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBpbnRlcmNlcHQgb3RoZXIgZmV0Y2hlcyBhcyB3ZSBkb24ndCB3YW50IHRvIHRyaWdnZXIgcmVkdWNlcnMgZHVyaW5nXG4gICAgICAgICAgLy8gcmVuZGVyIC0gc28gd2UgbmVlZCB0byBzdG9wICdyZWFkb25seScgZmV0Y2hlcyB3aGljaCBjYW4gYmUgdHJpZ2dlcmVkIGluIHJlbmRlclxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGFjdGlvbi5lbmRwb2ludC5nZXRPcHRpbWlzdGljUmVzcG9uc2UgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgYWN0aW9uLmVuZHBvaW50LnNpZGVFZmZlY3RcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgY2FzZSBTRVRfUkVTUE9OU0VfVFlQRTpcbiAgICAgICAgICAvLyBvbmx5IHNldCBhZnRlciBuZXcgc3RhdGUgaXMgY29tcHV0ZWRcbiAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvbi5rZXkgaW4gdGhpcy5mZXRjaGVkKSB7XG4gICAgICAgICAgICAgIC8vIE5vdGU6IG1ldGEgKm11c3QqIGJlIHNldCBieSByZWR1Y2VyIHNvIHRoaXMgc2hvdWxkIGJlIHNhZmVcbiAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBjb250cm9sbGVyLmdldFN0YXRlKCkubWV0YVthY3Rpb24ua2V5XT8uZXJyb3I7XG4gICAgICAgICAgICAgIC8vIHByb2Nlc3NpbmcgZXJyb3JzIHJlc3VsdCBpbiBzdGF0ZSBtZXRhIGhhdmluZyBlcnJvciwgc28gd2Ugc2hvdWxkIHJlamVjdCB0aGUgcHJvbWlzZVxuICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVNldChcbiAgICAgICAgICAgICAgICAgIGNyZWF0ZVNldFJlc3BvbnNlKGFjdGlvbi5lbmRwb2ludCwge1xuICAgICAgICAgICAgICAgICAgICBhcmdzOiBhY3Rpb24uYXJncyxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6IGVycm9yLFxuICAgICAgICAgICAgICAgICAgICBmZXRjaGVkQXQ6IGFjdGlvbi5tZXRhLmZldGNoZWRBdCxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU2V0KGFjdGlvbik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSBSRVNFVF9UWVBFOiB7XG4gICAgICAgICAgY29uc3QgcmVqZWN0b3JzID0geyAuLi50aGlzLnJlamVjdG9ycyB9O1xuXG4gICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xuICAgICAgICAgIHJldHVybiBuZXh0KGFjdGlvbikudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAvLyB0aGVyZSBjb3VsZCBiZSBleHRlcm5hbCBsaXN0ZW5lcnMgdG8gdGhlIHByb21pc2VcbiAgICAgICAgICAgIC8vIHRoaXMgbXVzdCBoYXBwZW4gYWZ0ZXIgY29tbWl0IHNvIG91ciBvd24gcmVqZWN0b3Iga25vd3Mgbm90IHRvIGRpc3BhdGNoIGFuIGVycm9yIGJhc2VkIG9uIHRoaXNcbiAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiByZWplY3RvcnMpIHtcbiAgICAgICAgICAgICAgcmVqZWN0b3JzW2tdKG5ldyBSZXNldEVycm9yKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKTtcbiAgICAgIH1cbiAgICB9O1xuICB9O1xuXG4gIC8qKiBPbiBtb3VudCAqL1xuICBpbml0KCkge1xuICAgIGRlbGV0ZSB0aGlzLmNsZWFudXBEYXRlO1xuICB9XG5cbiAgLyoqIEVuc3VyZXMgYWxsIHByb21pc2VzIGFyZSBjb21wbGV0ZWQgYnkgcmVqZWN0aW5nIHJlbWFpbmluZy4gKi9cbiAgY2xlYW51cCgpIHtcbiAgICAvLyBlbnN1cmUgbm8gZGlzcGF0Y2hlcyBhZnRlciB1bm1vdW50XG4gICAgLy8gdGhpcyBtdXN0IGJlIHJldmVyc2libGUgKGRvbmUgaW4gaW5pdCkgc28gdXNlRWZmZWN0KCkgcmVtYWlucyBzeW1tZXRyaWNcbiAgICB0aGlzLmNsZWFudXBEYXRlID0gRGF0ZS5ub3coKTtcbiAgfVxuXG4gIC8qKiBVc2VkIGJ5IERldnRvb2xzTWFuYWdlciB0byBkZXRlcm1pbmUgd2hldGhlciB0byBsb2cgYW4gYWN0aW9uICovXG4gIHNraXBMb2dnaW5nKGFjdGlvbjogQWN0aW9uVHlwZXMpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBhY3Rpb24udHlwZSA9PT0gRkVUQ0hfVFlQRSAmJiBhY3Rpb24ua2V5IGluIHRoaXMuZmV0Y2hlZDtcbiAgfVxuXG4gIGFsbFNldHRsZWQoKSB7XG4gICAgY29uc3QgZmV0Y2hlcyA9IE9iamVjdC52YWx1ZXModGhpcy5mZXRjaGVkKTtcbiAgICBpZiAoZmV0Y2hlcy5sZW5ndGgpIHJldHVybiBQcm9taXNlLmFsbFNldHRsZWQoZmV0Y2hlcyk7XG4gIH1cblxuICAvKiogQ2xlYXIgYWxsIHByb21pc2Ugc3RhdGUgKi9cbiAgcHJvdGVjdGVkIGNsZWFyQWxsKCkge1xuICAgIGZvciAoY29uc3QgayBpbiB0aGlzLnJlamVjdG9ycykge1xuICAgICAgdGhpcy5jbGVhcihrKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2xlYXIgcHJvbWlzZSBzdGF0ZSBmb3IgYSBnaXZlbiBrZXkgKi9cbiAgcHJvdGVjdGVkIGNsZWFyKGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5mZXRjaGVkW2tleV0uY2F0Y2goKCkgPT4ge30pO1xuICAgIGRlbGV0ZSB0aGlzLnJlc29sdmVyc1trZXldO1xuICAgIGRlbGV0ZSB0aGlzLnJlamVjdG9yc1trZXldO1xuICAgIGRlbGV0ZSB0aGlzLmZldGNoZWRba2V5XTtcbiAgICBkZWxldGUgdGhpcy5mZXRjaGVkQXRba2V5XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRMYXN0UmVzZXQoKSB7XG4gICAgaWYgKHRoaXMuY2xlYW51cERhdGUpIHJldHVybiB0aGlzLmNsZWFudXBEYXRlO1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuZ2V0U3RhdGUoKS5sYXN0UmVzZXQ7XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gbWlkZGxld2FyZSBpbnRlcmNlcHRzICdyZGMvZmV0Y2gnIGFjdGlvbi5cbiAgICpcbiAgICogV2lsbCB0aGVuIHN0YXJ0IGEgcHJvbWlzZSBmb3IgYSBrZXkgYW5kIHBvdGVudGlhbGx5IHN0YXJ0IHRoZSBuZXR3b3JrXG4gICAqIGZldGNoLlxuICAgKlxuICAgKiBVc2VzIHRocm90dGxlIGVuZHBvaW50cyB3aXRob3V0IHNpZGVFZmZlY3RzLiBUaGlzIGlzIHZhbHVhYmxlXG4gICAqIGZvciBlbnN1cmVzIG11dGF0aW9uIHJlcXVlc3RzIGFsd2F5cyBnbyB0aHJvdWdoLlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZUZldGNoKGFjdGlvbjogRmV0Y2hBY3Rpb24pIHtcbiAgICBjb25zdCB7IHJlc29sdmUsIHJlamVjdCwgZmV0Y2hlZEF0IH0gPSBhY3Rpb24ubWV0YTtcbiAgICBjb25zdCB0aHJvdHRsZSA9ICFhY3Rpb24uZW5kcG9pbnQuc2lkZUVmZmVjdDtcblxuICAgIGNvbnN0IGRlZmVyZWRGZXRjaCA9ICgpID0+IHtcbiAgICAgIGxldCBwcm9taXNlID0gYWN0aW9uLmVuZHBvaW50KC4uLmFjdGlvbi5hcmdzKTtcbiAgICAgIGNvbnN0IHJlc29sdmVQcm9taXNlID0gKFxuICAgICAgICBwcm9taXNlOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IG9iamVjdCB8IG51bGw+LFxuICAgICAgKSA9PlxuICAgICAgICBwcm9taXNlXG4gICAgICAgICAgLnRoZW4oZGF0YSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKGRhdGEpO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgIH0pO1xuICAgICAgLy8gc2NoZWR1bGUgbm9uLXRocm90dGxlZCByZXNvbHV0aW9ucyBpbiBhIG1pY3JvdGFzayBiZWZvcmUgc2V0XG4gICAgICAvLyB0aGlzIGVuYWJsZXMgdXNlcnMgYXdhaXRpbmcgdGhlaXIgZmV0Y2ggdG8gdHJpZ2dlciBhbnkgcmVhY3QgdXBkYXRlcyBuZWVkZWQgdG8gZGVhbFxuICAgICAgLy8gd2l0aCB1cGNvbWluZyBjaGFuZ2VzIGJlY2F1c2Ugb2YgdGhlIGZldGNoIChmb3IgaW5zdGFuY2UgYXZvaWRpbmcgc3VzcGVuc2UgaWYgc29tZXRoaW5nIGlzIGRlbGV0ZWQpXG4gICAgICBpZiAoIXRocm90dGxlKSB7XG4gICAgICAgIHByb21pc2UgPSByZXNvbHZlUHJvbWlzZShwcm9taXNlKTtcbiAgICAgIH1cbiAgICAgIHByb21pc2UgPSBwcm9taXNlXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBsZXQgbGFzdFJlc2V0ID0gdGhpcy5nZXRMYXN0UmVzZXQoKTtcblxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgaXNOYU4obGFzdFJlc2V0KSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgJ3N0YXRlLmxhc3RSZXNldCBpcyBOYU4uIE9ubHkgcG9zaXRpdmUgdGltZXN0YW1wcyBhcmUgdmFsaWQuJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBsYXN0UmVzZXQgPSAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGRvbid0IHVwZGF0ZSBzdGF0ZSB3aXRoIHByb21pc2VzIHN0YXJ0ZWQgYmVmb3JlIGxhc3QgY2xlYXJcbiAgICAgICAgICBpZiAoZmV0Y2hlZEF0ID49IGxhc3RSZXNldCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLnJlc29sdmUoYWN0aW9uLmVuZHBvaW50LCB7XG4gICAgICAgICAgICAgIGFyZ3M6IGFjdGlvbi5hcmdzLFxuICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgZmV0Y2hlZEF0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zdCBsYXN0UmVzZXQgPSB0aGlzLmdldExhc3RSZXNldCgpO1xuICAgICAgICAgIC8vIGRvbid0IHVwZGF0ZSBzdGF0ZSB3aXRoIHByb21pc2VzIHN0YXJ0ZWQgYmVmb3JlIGxhc3QgY2xlYXJcbiAgICAgICAgICBpZiAoZmV0Y2hlZEF0ID49IGxhc3RSZXNldCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLnJlc29sdmUoYWN0aW9uLmVuZHBvaW50LCB7XG4gICAgICAgICAgICAgIGFyZ3M6IGFjdGlvbi5hcmdzLFxuICAgICAgICAgICAgICByZXNwb25zZTogZXJyb3IsXG4gICAgICAgICAgICAgIGZldGNoZWRBdCxcbiAgICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfTtcblxuICAgIGlmICh0aHJvdHRsZSkge1xuICAgICAgcmV0dXJuIHRoaXMudGhyb3R0bGUoYWN0aW9uLmtleSwgZGVmZXJlZEZldGNoLCBmZXRjaGVkQXQpXG4gICAgICAgIC50aGVuKGRhdGEgPT4gcmVzb2x2ZShkYXRhKSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHJlamVjdChlcnJvcikpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGVmZXJlZEZldGNoKCkuY2F0Y2goKCkgPT4ge30pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDYWxsZWQgd2hlbiBtaWRkbGV3YXJlIGludGVyY2VwdHMgYSBzZXQgYWN0aW9uLlxuICAgKlxuICAgKiBXaWxsIHJlc29sdmUgdGhlIHByb21pc2UgYXNzb2NpYXRlZCB3aXRoIHNldCBrZXkuXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlU2V0KGFjdGlvbjogU2V0UmVzcG9uc2VBY3Rpb24pIHtcbiAgICAvLyB0aGlzIGNhbiBzdGlsbCB0dXJuIG91dCB0byBiZSB1bnRydWUgc2luY2UgdGhpcyBpcyBhc3luY1xuICAgIGlmIChhY3Rpb24ua2V5IGluIHRoaXMuZmV0Y2hlZCkge1xuICAgICAgbGV0IHByb21pc2VIYW5kbGVyOiAodmFsdWU/OiBhbnkpID0+IHZvaWQ7XG4gICAgICBpZiAoYWN0aW9uLmVycm9yKSB7XG4gICAgICAgIHByb21pc2VIYW5kbGVyID0gdGhpcy5yZWplY3RvcnNbYWN0aW9uLmtleV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9taXNlSGFuZGxlciA9IHRoaXMucmVzb2x2ZXJzW2FjdGlvbi5rZXldO1xuICAgICAgfVxuICAgICAgcHJvbWlzZUhhbmRsZXIoYWN0aW9uLnJlc3BvbnNlKTtcbiAgICAgIC8vIHNpbmNlIHdlJ3JlIHJlc29sdmVkIHdlIG5vIGxvbmdlciBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgdGhpcyBwcm9taXNlXG4gICAgICB0aGlzLmNsZWFyKGFjdGlvbi5rZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFbnN1cmVzIG9ubHkgb25lIHJlcXVlc3QgZm9yIGEgZ2l2ZW4ga2V5IGlzIGluIGZsaWdodCBhdCBhbnkgdGltZVxuICAgKlxuICAgKiBVc2VzIGtleSB0byBlaXRoZXIgcmV0cmlldmUgaW4tZmxpZ2h0IHByb21pc2UsIG9yIGlmIG5vdFxuICAgKiBjcmVhdGUgYSBuZXcgcHJvbWlzZSBhbmQgY2FsbCBmZXRjaC5cbiAgICpcbiAgICogTm90ZTogVGhlIG5ldyBwcm9taXNlIGlzIG5vdCBhY3R1YWxseSB0aWVkIHRvIGZldGNoIGF0IGFsbCxcbiAgICogYnV0IGlzIHJlc29sdmVkIHdoZW4gdGhlIGV4cGVjdGVkICdyZWNpZXZlJyBhY3Rpb24gaXMgcHJvY2Vzc2VkLlxuICAgKiBUaGlzIGVuc3VyZXMgcHJvbWlzZXMgYXJlIHJlc29sdmVkIG9ubHkgb25jZSB0aGVpciBkYXRhIGlzIHByb2Nlc3NlZFxuICAgKiBieSB0aGUgcmVkdWNlci5cbiAgICovXG4gIHByb3RlY3RlZCB0aHJvdHRsZShcbiAgICBrZXk6IHN0cmluZyxcbiAgICBmZXRjaDogKCkgPT4gUHJvbWlzZTxhbnk+LFxuICAgIGZldGNoZWRBdDogbnVtYmVyLFxuICApIHtcbiAgICBjb25zdCBsYXN0UmVzZXQgPSB0aGlzLmdldExhc3RSZXNldCgpO1xuICAgIC8vIHdlJ3JlIGFscmVhZHkgZmV0Y2hpbmcgc28gcmV1c2UgdGhlIHByb21pc2VcbiAgICAvLyBmZXRjaGVzIGFmdGVyIHJlc2V0IGRvIG5vdCBjb3VudFxuICAgIGlmIChrZXkgaW4gdGhpcy5mZXRjaGVkICYmIHRoaXMuZmV0Y2hlZEF0W2tleV0gPiBsYXN0UmVzZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLmZldGNoZWRba2V5XTtcbiAgICB9XG5cbiAgICB0aGlzLmZldGNoZWRba2V5XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMucmVzb2x2ZXJzW2tleV0gPSByZXNvbHZlO1xuICAgICAgdGhpcy5yZWplY3RvcnNba2V5XSA9IHJlamVjdDtcbiAgICB9KTtcbiAgICB0aGlzLmZldGNoZWRBdFtrZXldID0gZmV0Y2hlZEF0O1xuXG4gICAgdGhpcy5pZGxlQ2FsbGJhY2soXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIHNpbmNlIG91ciByZWFsIHByb21pc2UgaXMgcmVzb2x2ZWQgdmlhIHRoZSB3cmFwUmVkdWNlcigpLFxuICAgICAgICAvLyB3ZSBzaG91bGQganVzdCBzdG9wIGFsbCBlcnJvcnMgaGVyZS5cbiAgICAgICAgLy8gVE9ETzogZGVjb3VwbGUgdGhpcyBmcm9tIHVzZUZldGNoZXIoKSAodGhhdCdzIHdoYXQncyBkaXNwYXRjaGluZyB0aGUgZXJyb3IgdGhlIHJlc29sdmVzIGluIGhlcmUpXG4gICAgICAgIGZldGNoKCkuY2F0Y2goKCkgPT4gbnVsbCk7XG4gICAgICB9LFxuICAgICAgeyB0aW1lb3V0OiA1MDAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hlZFtrZXldO1xuICB9XG5cbiAgLyoqIENhbGxzIHRoZSBjYWxsYmFjayB3aGVuIGNsaWVudCBpcyBub3QgJ2J1c3knIHdpdGggaGlnaCBwcmlvcml0eSBpbnRlcmFjdGlvbiB0YXNrc1xuICAgKlxuICAgKiBPdmVycmlkZSBmb3IgcGxhdGZvcm0tc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZUNhbGxiYWNrKFxuICAgIGNhbGxiYWNrOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQsXG4gICAgb3B0aW9ucz86IElkbGVSZXF1ZXN0T3B0aW9ucyxcbiAgKSB7XG4gICAgY2FsbGJhY2soKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxpQkFBaUIsRUFBRUMsVUFBVSxFQUFFQyxVQUFVLFFBQVEsbUJBQW1CO0FBQzdFLFNBQVNDLGlCQUFpQixRQUFRLGdDQUFnQztBQUNsRSxPQUFPQyxVQUFVLE1BQU0sNkJBQTZCO0FBVXBELE9BQU8sTUFBTUMsVUFBVSxTQUFTQyxLQUFLLENBQUM7RUFHcENDLFdBQVdBLENBQUEsRUFBRztJQUNaLEtBQUss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
@@ -23,9 +23,9 @@ export default class SubscriptionManager<S extends SubscriptionConstructable = S
23
23
  [key: string]: InstanceType<S>;
24
24
  };
25
25
  protected readonly Subscription: S;
26
- protected middleware: Middleware;
27
26
  protected controller: Controller;
28
27
  constructor(Subscription: S);
28
+ middleware: Middleware;
29
29
  /** Ensures all subscriptions are cleaned up. */
30
30
  cleanup(): void;
31
31
  /** Called when middleware intercepts 'rdc/subscribe' action.
@@ -36,15 +36,6 @@ export default class SubscriptionManager<S extends SubscriptionConstructable = S
36
36
  *
37
37
  */
38
38
  protected handleUnsubscribe(action: UnsubscribeAction): void;
39
- /** Attaches Manager to store
40
- *
41
- * Intercepts 'rdc/subscribe'/'rest-hordc/ribe' to register resources that
42
- * need to be kept up to date.
43
- *
44
- * Will possibly dispatch 'rdc/fetch' or 'rest-hordc/' to keep resources fresh
45
- *
46
- */
47
- getMiddleware(): Middleware;
48
39
  }
49
40
  export {};
50
41
  //# sourceMappingURL=SubscriptionManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionManager.d.ts","sourceRoot":"","sources":["../../src/manager/SubscriptionManager.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,KAAK,EACV,OAAO,EAEP,UAAU,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB,KAAK,OAAO,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAEnD,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,oDAAoD;AACpD,MAAM,WAAW,yBAAyB;IACxC,KACE,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EACrC,UAAU,EAAE,UAAU,GACrB,YAAY,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB,CACtC,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,CAC/D,YAAW,OAAO,CAAC,OAAO,CAAC;IAE3B,SAAS,CAAC,aAAa,EAAE;QACvB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;KAChC,CAAM;IAEP,mBAA2B,YAAY,EAAE,CAAC,CAAC;IAC3C,UAAkB,UAAU,EAAE,UAAU,CAAC;IACzC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAoB;gBAExC,YAAY,EAAE,CAAC;IAyB3B,gDAAgD;IAChD,OAAO;IAMP;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe;IAcjD;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,iBAAiB;IAerD;;;;;;;OAOG;IACH,aAAa;CAGd"}
1
+ {"version":3,"file":"SubscriptionManager.d.ts","sourceRoot":"","sources":["../../src/manager/SubscriptionManager.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,KAAK,EACV,OAAO,EAEP,UAAU,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB,KAAK,OAAO,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAEnD,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,oDAAoD;AACpD,MAAM,WAAW,yBAAyB;IACxC,KACE,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EACrC,UAAU,EAAE,UAAU,GACrB,YAAY,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB,CACtC,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,CAC/D,YAAW,OAAO,CAAC,OAAO,CAAC;IAE3B,SAAS,CAAC,aAAa,EAAE;QACvB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;KAChC,CAAM;IAEP,mBAA2B,YAAY,EAAE,CAAC,CAAC;IAC3C,SAAS,CAAC,UAAU,EAAE,UAAU,CAAoB;gBAExC,YAAY,EAAE,CAAC;IAI3B,UAAU,EAAE,UAAU,CAkBpB;IAEF,gDAAgD;IAChD,OAAO;IAMP;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe;IAcjD;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,iBAAiB;CActD"}
@@ -16,7 +16,6 @@ export default class SubscriptionManager {
16
16
  constructor(Subscription) {
17
17
  this.subscriptions = {};
18
18
  this.controller = new Controller();
19
- this.Subscription = Subscription;
20
19
  this.middleware = controller => {
21
20
  this.controller = controller;
22
21
  return next => action => {
@@ -36,8 +35,8 @@ export default class SubscriptionManager {
36
35
  }
37
36
  };
38
37
  };
38
+ this.Subscription = Subscription;
39
39
  }
40
-
41
40
  /** Ensures all subscriptions are cleaned up. */
42
41
  cleanup() {
43
42
  for (const key in this.subscriptions) {
@@ -75,17 +74,5 @@ export default class SubscriptionManager {
75
74
  console.error(`Mismatched unsubscribe: ${key} is not subscribed`);
76
75
  }
77
76
  }
78
-
79
- /** Attaches Manager to store
80
- *
81
- * Intercepts 'rdc/subscribe'/'rest-hordc/ribe' to register resources that
82
- * need to be kept up to date.
83
- *
84
- * Will possibly dispatch 'rdc/fetch' or 'rest-hordc/' to keep resources fresh
85
- *
86
- */
87
- getMiddleware() {
88
- return this.middleware;
89
- }
90
77
  }
91
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVUJTQ1JJQkVfVFlQRSIsIlVOU1VCU0NSSUJFX1RZUEUiLCJDb250cm9sbGVyIiwiU3Vic2NyaXB0aW9uTWFuYWdlciIsImNvbnN0cnVjdG9yIiwiU3Vic2NyaXB0aW9uIiwic3Vic2NyaXB0aW9ucyIsImNvbnRyb2xsZXIiLCJtaWRkbGV3YXJlIiwibmV4dCIsImFjdGlvbiIsInR5cGUiLCJoYW5kbGVTdWJzY3JpYmUiLCJlIiwiY29uc29sZSIsImVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJoYW5kbGVVbnN1YnNjcmliZSIsImNsZWFudXAiLCJrZXkiLCJmcmVxdWVuY3kiLCJlbmRwb2ludCIsInBvbGxGcmVxdWVuY3kiLCJhZGQiLCJlbXB0eSIsInJlbW92ZSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImdldE1pZGRsZXdhcmUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFuYWdlci9TdWJzY3JpcHRpb25NYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNVQlNDUklCRV9UWVBFLCBVTlNVQlNDUklCRV9UWVBFIH0gZnJvbSAnLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgTWFuYWdlcixcbiAgTWlkZGxld2FyZUFQSSxcbiAgTWlkZGxld2FyZSxcbiAgVW5zdWJzY3JpYmVBY3Rpb24sXG4gIFN1YnNjcmliZUFjdGlvbixcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG50eXBlIEFjdGlvbnMgPSBVbnN1YnNjcmliZUFjdGlvbiB8IFN1YnNjcmliZUFjdGlvbjtcblxuLyoqIEludGVyZmFjZSBoYW5kbGluZyBhIHNpbmdsZSByZXNvdXJjZSBzdWJzY3JpcHRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uIHtcbiAgYWRkKGZyZXF1ZW5jeT86IG51bWJlcik6IHZvaWQ7XG4gIHJlbW92ZShmcmVxdWVuY3k/OiBudW1iZXIpOiBib29sZWFuO1xuICBjbGVhbnVwKCk6IHZvaWQ7XG59XG5cbi8qKiBUaGUgc3RhdGljIGNsYXNzIHRoYXQgY29uc3RydWN0cyBTdWJzY3JpcHRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uQ29uc3RydWN0YWJsZSB7XG4gIG5ldyAoXG4gICAgYWN0aW9uOiBPbWl0PFN1YnNjcmliZUFjdGlvbiwgJ3R5cGUnPixcbiAgICBjb250cm9sbGVyOiBDb250cm9sbGVyLFxuICApOiBTdWJzY3JpcHRpb247XG59XG5cbi8qKiBIYW5kbGVzIHN1YnNjcmlwdGlvbiBhY3Rpb25zIC0+IGZldGNoIG9yIHNldCBhY3Rpb25zXG4gKlxuICogQ29uc3RydWN0b3IgdGFrZXMgYSBTdWJzY3JpcHRpb25Db25zdHJ1Y3RhYmxlIGNsYXNzIHRvIGNvbnRyb2wgaG93XG4gKiBzdWJzY3JpcHRpb25zIGFyZSBoYW5kbGVkLiAoZS5nLiwgcG9sbGluZywgd2Vic29ja2V0cylcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9TdWJzY3JpcHRpb25NYW5hZ2VyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN1YnNjcmlwdGlvbk1hbmFnZXI8XG4gIFMgZXh0ZW5kcyBTdWJzY3JpcHRpb25Db25zdHJ1Y3RhYmxlID0gU3Vic2NyaXB0aW9uQ29uc3RydWN0YWJsZSxcbj4gaW1wbGVtZW50cyBNYW5hZ2VyPEFjdGlvbnM+XG57XG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb25zOiB7XG4gICAgW2tleTogc3RyaW5nXTogSW5zdGFuY2VUeXBlPFM+O1xuICB9ID0ge307XG5cbiAgcHJvdGVjdGVkIGRlY2xhcmUgcmVhZG9ubHkgU3Vic2NyaXB0aW9uOiBTO1xuICBwcm90ZWN0ZWQgZGVjbGFyZSBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlO1xuICBwcm90ZWN0ZWQgY29udHJvbGxlcjogQ29udHJvbGxlciA9IG5ldyBDb250cm9sbGVyKCk7XG5cbiAgY29uc3RydWN0b3IoU3Vic2NyaXB0aW9uOiBTKSB7XG4gICAgdGhpcy5TdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb247XG5cbiAgICB0aGlzLm1pZGRsZXdhcmUgPSA8QyBleHRlbmRzIE1pZGRsZXdhcmVBUEk+KGNvbnRyb2xsZXI6IEMpID0+IHtcbiAgICAgIHRoaXMuY29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG4gICAgICByZXR1cm4gKG5leHQ6IENbJ2Rpc3BhdGNoJ10pOiBDWydkaXNwYXRjaCddID0+XG4gICAgICAgIGFjdGlvbiA9PiB7XG4gICAgICAgICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICAgICAgY2FzZSBTVUJTQ1JJQkVfVFlQRTpcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVN1YnNjcmliZShhY3Rpb24pO1xuICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICBjYXNlIFVOU1VCU0NSSUJFX1RZUEU6XG4gICAgICAgICAgICAgIHRoaXMuaGFuZGxlVW5zdWJzY3JpYmUoYWN0aW9uKTtcbiAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfTtcbiAgfVxuXG4gIC8qKiBFbnN1cmVzIGFsbCBzdWJzY3JpcHRpb25zIGFyZSBjbGVhbmVkIHVwLiAqL1xuICBjbGVhbnVwKCkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2tleV0uY2xlYW51cCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDYWxsZWQgd2hlbiBtaWRkbGV3YXJlIGludGVyY2VwdHMgJ3JkYy9zdWJzY3JpYmUnIGFjdGlvbi5cbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVTdWJzY3JpYmUoYWN0aW9uOiBTdWJzY3JpYmVBY3Rpb24pIHtcbiAgICBjb25zdCBrZXkgPSBhY3Rpb24ua2V5O1xuXG4gICAgaWYgKGtleSBpbiB0aGlzLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIGNvbnN0IGZyZXF1ZW5jeSA9IGFjdGlvbi5lbmRwb2ludC5wb2xsRnJlcXVlbmN5O1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2tleV0uYWRkKGZyZXF1ZW5jeSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1trZXldID0gbmV3IHRoaXMuU3Vic2NyaXB0aW9uKFxuICAgICAgICBhY3Rpb24sXG4gICAgICAgIHRoaXMuY29udHJvbGxlcixcbiAgICAgICkgYXMgSW5zdGFuY2VUeXBlPFM+O1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDYWxsZWQgd2hlbiBtaWRkbGV3YXJlIGludGVyY2VwdHMgJ3JkYy91bnN1YnNjcmliZScgYWN0aW9uLlxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVVuc3Vic2NyaWJlKGFjdGlvbjogVW5zdWJzY3JpYmVBY3Rpb24pIHtcbiAgICBjb25zdCBrZXkgPSBhY3Rpb24ua2V5O1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoa2V5IGluIHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgY29uc3QgZnJlcXVlbmN5ID0gYWN0aW9uLmVuZHBvaW50LnBvbGxGcmVxdWVuY3k7XG4gICAgICBjb25zdCBlbXB0eSA9IHRoaXMuc3Vic2NyaXB0aW9uc1trZXldLnJlbW92ZShmcmVxdWVuY3kpO1xuICAgICAgaWYgKGVtcHR5KSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1pc21hdGNoZWQgdW5zdWJzY3JpYmU6ICR7a2V5fSBpcyBub3Qgc3Vic2NyaWJlZGApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBdHRhY2hlcyBNYW5hZ2VyIHRvIHN0b3JlXG4gICAqXG4gICAqIEludGVyY2VwdHMgJ3JkYy9zdWJzY3JpYmUnLydyZXN0LWhvcmRjL3JpYmUnIHRvIHJlZ2lzdGVyIHJlc291cmNlcyB0aGF0XG4gICAqIG5lZWQgdG8gYmUga2VwdCB1cCB0byBkYXRlLlxuICAgKlxuICAgKiBXaWxsIHBvc3NpYmx5IGRpc3BhdGNoICdyZGMvZmV0Y2gnIG9yICdyZXN0LWhvcmRjLycgdG8ga2VlcCByZXNvdXJjZXMgZnJlc2hcbiAgICpcbiAgICovXG4gIGdldE1pZGRsZXdhcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMubWlkZGxld2FyZTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxjQUFjLEVBQUVDLGdCQUFnQixRQUFRLG1CQUFtQjtBQUNwRSxPQUFPQyxVQUFVLE1BQU0sNkJBQTZCOztBQVdwRDs7QUFPQTs7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsTUFBTUMsbUJBQW1CLENBR3hDO0VBU0VDLFdBQVdBLENBQUNDLFlBQWUsRUFBRTtJQUFBLEtBUm5CQyxhQUFhLEdBRW5CLENBQUMsQ0FBQztJQUFBLEtBSUlDLFVBQVUsR0FBZSxJQUFJTCxVQUFVLENBQUMsQ0FBQztJQUdqRCxJQUFJLENBQUNHLFlBQVksR0FBR0EsWUFBWTtJQUVoQyxJQUFJLENBQUNHLFVBQVUsR0FBNkJELFVBQWEsSUFBSztNQUM1RCxJQUFJLENBQUNBLFVBQVUsR0FBR0EsVUFBVTtNQUM1QixPQUFRRSxJQUFtQixJQUN6QkMsTUFBTSxJQUFJO1FBQ1IsUUFBUUEsTUFBTSxDQUFDQyxJQUFJO1VBQ2pCLEtBQUtYLGNBQWM7WUFDakIsSUFBSTtjQUNGLElBQUksQ0FBQ1ksZUFBZSxDQUFDRixNQUFNLENBQUM7WUFDOUIsQ0FBQyxDQUFDLE9BQU9HLENBQUMsRUFBRTtjQUNWQyxPQUFPLENBQUNDLEtBQUssQ0FBQ0YsQ0FBQyxDQUFDO1lBQ2xCO1lBQ0EsT0FBT0csT0FBTyxDQUFDQyxPQUFPLENBQUMsQ0FBQztVQUMxQixLQUFLaEIsZ0JBQWdCO1lBQ25CLElBQUksQ0FBQ2lCLGlCQUFpQixDQUFDUixNQUFNLENBQUM7WUFDOUIsT0FBT00sT0FBTyxDQUFDQyxPQUFPLENBQUMsQ0FBQztVQUMxQjtZQUNFLE9BQU9SLElBQUksQ0FBQ0MsTUFBTSxDQUFDO1FBQ3ZCO01BQ0YsQ0FBQztJQUNMLENBQUM7RUFDSDs7RUFFQTtFQUNBUyxPQUFPQSxDQUFBLEVBQUc7SUFDUixLQUFLLE1BQU1DLEdBQUcsSUFBSSxJQUFJLENBQUNkLGFBQWEsRUFBRTtNQUNwQyxJQUFJLENBQUNBLGFBQWEsQ0FBQ2MsR0FBRyxDQUFDLENBQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ25DO0VBQ0Y7O0VBRUE7QUFDRjtBQUNBO0VBQ1lQLGVBQWVBLENBQUNGLE1BQXVCLEVBQUU7SUFDakQsTUFBTVUsR0FBRyxHQUFHVixNQUFNLENBQUNVLEdBQUc7SUFFdEIsSUFBSUEsR0FBRyxJQUFJLElBQUksQ0FBQ2QsYUFBYSxFQUFFO01BQzdCLE1BQU1lLFNBQVMsR0FBR1gsTUFBTSxDQUFDWSxRQUFRLENBQUNDLGFBQWE7TUFDL0MsSUFBSSxDQUFDakIsYUFBYSxDQUFDYyxHQUFHLENBQUMsQ0FBQ0ksR0FBRyxDQUFDSCxTQUFTLENBQUM7SUFDeEMsQ0FBQyxNQUFNO01BQ0wsSUFBSSxDQUFDZixhQUFhLENBQUNjLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDZixZQUFZLENBQzdDSyxNQUFNLEVBQ04sSUFBSSxDQUFDSCxVQUNQLENBQW9CO0lBQ3RCO0VBQ0Y7O0VBRUE7QUFDRjtBQUNBO0VBQ1lXLGlCQUFpQkEsQ0FBQ1IsTUFBeUIsRUFBRTtJQUNyRCxNQUFNVSxHQUFHLEdBQUdWLE1BQU0sQ0FBQ1UsR0FBRzs7SUFFdEI7SUFDQSxJQUFJQSxHQUFHLElBQUksSUFBSSxDQUFDZCxhQUFhLEVBQUU7TUFDN0IsTUFBTWUsU0FBUyxHQUFHWCxNQUFNLENBQUNZLFFBQVEsQ0FBQ0MsYUFBYTtNQUMvQyxNQUFNRSxLQUFLLEdBQUcsSUFBSSxDQUFDbkIsYUFBYSxDQUFDYyxHQUFHLENBQUMsQ0FBQ00sTUFBTSxDQUFDTCxTQUFTLENBQUM7TUFDdkQsSUFBSUksS0FBSyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUNuQixhQUFhLENBQUNjLEdBQUcsQ0FBQztNQUNoQztJQUNGLENBQUMsTUFBTSxJQUFJTyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLLFlBQVksRUFBRTtNQUNoRGYsT0FBTyxDQUFDQyxLQUFLLENBQUMsMkJBQTJCSyxHQUFHLG9CQUFvQixDQUFDO0lBQ25FO0VBQ0Y7O0VBRUE7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFVSxhQUFhQSxDQUFBLEVBQUc7SUFDZCxPQUFPLElBQUksQ0FBQ3RCLFVBQVU7RUFDeEI7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
78
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVUJTQ1JJQkVfVFlQRSIsIlVOU1VCU0NSSUJFX1RZUEUiLCJDb250cm9sbGVyIiwiU3Vic2NyaXB0aW9uTWFuYWdlciIsImNvbnN0cnVjdG9yIiwiU3Vic2NyaXB0aW9uIiwic3Vic2NyaXB0aW9ucyIsImNvbnRyb2xsZXIiLCJtaWRkbGV3YXJlIiwibmV4dCIsImFjdGlvbiIsInR5cGUiLCJoYW5kbGVTdWJzY3JpYmUiLCJlIiwiY29uc29sZSIsImVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJoYW5kbGVVbnN1YnNjcmliZSIsImNsZWFudXAiLCJrZXkiLCJmcmVxdWVuY3kiLCJlbmRwb2ludCIsInBvbGxGcmVxdWVuY3kiLCJhZGQiLCJlbXB0eSIsInJlbW92ZSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2VyL1N1YnNjcmlwdGlvbk1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU1VCU0NSSUJFX1RZUEUsIFVOU1VCU0NSSUJFX1RZUEUgfSBmcm9tICcuLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUge1xuICBNYW5hZ2VyLFxuICBNaWRkbGV3YXJlQVBJLFxuICBNaWRkbGV3YXJlLFxuICBVbnN1YnNjcmliZUFjdGlvbixcbiAgU3Vic2NyaWJlQWN0aW9uLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbnR5cGUgQWN0aW9ucyA9IFVuc3Vic2NyaWJlQWN0aW9uIHwgU3Vic2NyaWJlQWN0aW9uO1xuXG4vKiogSW50ZXJmYWNlIGhhbmRsaW5nIGEgc2luZ2xlIHJlc291cmNlIHN1YnNjcmlwdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpcHRpb24ge1xuICBhZGQoZnJlcXVlbmN5PzogbnVtYmVyKTogdm9pZDtcbiAgcmVtb3ZlKGZyZXF1ZW5jeT86IG51bWJlcik6IGJvb2xlYW47XG4gIGNsZWFudXAoKTogdm9pZDtcbn1cblxuLyoqIFRoZSBzdGF0aWMgY2xhc3MgdGhhdCBjb25zdHJ1Y3RzIFN1YnNjcmlwdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpcHRpb25Db25zdHJ1Y3RhYmxlIHtcbiAgbmV3IChcbiAgICBhY3Rpb246IE9taXQ8U3Vic2NyaWJlQWN0aW9uLCAndHlwZSc+LFxuICAgIGNvbnRyb2xsZXI6IENvbnRyb2xsZXIsXG4gICk6IFN1YnNjcmlwdGlvbjtcbn1cblxuLyoqIEhhbmRsZXMgc3Vic2NyaXB0aW9uIGFjdGlvbnMgLT4gZmV0Y2ggb3Igc2V0IGFjdGlvbnNcbiAqXG4gKiBDb25zdHJ1Y3RvciB0YWtlcyBhIFN1YnNjcmlwdGlvbkNvbnN0cnVjdGFibGUgY2xhc3MgdG8gY29udHJvbCBob3dcbiAqIHN1YnNjcmlwdGlvbnMgYXJlIGhhbmRsZWQuIChlLmcuLCBwb2xsaW5nLCB3ZWJzb2NrZXRzKVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL1N1YnNjcmlwdGlvbk1hbmFnZXJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3Vic2NyaXB0aW9uTWFuYWdlcjxcbiAgUyBleHRlbmRzIFN1YnNjcmlwdGlvbkNvbnN0cnVjdGFibGUgPSBTdWJzY3JpcHRpb25Db25zdHJ1Y3RhYmxlLFxuPiBpbXBsZW1lbnRzIE1hbmFnZXI8QWN0aW9ucz5cbntcbiAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbnM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBJbnN0YW5jZVR5cGU8Uz47XG4gIH0gPSB7fTtcblxuICBwcm90ZWN0ZWQgZGVjbGFyZSByZWFkb25seSBTdWJzY3JpcHRpb246IFM7XG4gIHByb3RlY3RlZCBjb250cm9sbGVyOiBDb250cm9sbGVyID0gbmV3IENvbnRyb2xsZXIoKTtcblxuICBjb25zdHJ1Y3RvcihTdWJzY3JpcHRpb246IFMpIHtcbiAgICB0aGlzLlN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbjtcbiAgfVxuXG4gIG1pZGRsZXdhcmU6IE1pZGRsZXdhcmUgPSBjb250cm9sbGVyID0+IHtcbiAgICB0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuICAgIHJldHVybiBuZXh0ID0+IGFjdGlvbiA9PiB7XG4gICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgU1VCU0NSSUJFX1RZUEU6XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU3Vic2NyaWJlKGFjdGlvbik7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICBjYXNlIFVOU1VCU0NSSUJFX1RZUEU6XG4gICAgICAgICAgdGhpcy5oYW5kbGVVbnN1YnNjcmliZShhY3Rpb24pO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pO1xuICAgICAgfVxuICAgIH07XG4gIH07XG5cbiAgLyoqIEVuc3VyZXMgYWxsIHN1YnNjcmlwdGlvbnMgYXJlIGNsZWFuZWQgdXAuICovXG4gIGNsZWFudXAoKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5zdWJzY3JpcHRpb25zKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XS5jbGVhbnVwKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyAncmRjL3N1YnNjcmliZScgYWN0aW9uLlxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVN1YnNjcmliZShhY3Rpb246IFN1YnNjcmliZUFjdGlvbikge1xuICAgIGNvbnN0IGtleSA9IGFjdGlvbi5rZXk7XG5cbiAgICBpZiAoa2V5IGluIHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgY29uc3QgZnJlcXVlbmN5ID0gYWN0aW9uLmVuZHBvaW50LnBvbGxGcmVxdWVuY3k7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XS5hZGQoZnJlcXVlbmN5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2tleV0gPSBuZXcgdGhpcy5TdWJzY3JpcHRpb24oXG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLFxuICAgICAgKSBhcyBJbnN0YW5jZVR5cGU8Uz47XG4gICAgfVxuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyAncmRjL3Vuc3Vic2NyaWJlJyBhY3Rpb24uXG4gICAqXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlVW5zdWJzY3JpYmUoYWN0aW9uOiBVbnN1YnNjcmliZUFjdGlvbikge1xuICAgIGNvbnN0IGtleSA9IGFjdGlvbi5rZXk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChrZXkgaW4gdGhpcy5zdWJzY3JpcHRpb25zKSB7XG4gICAgICBjb25zdCBmcmVxdWVuY3kgPSBhY3Rpb24uZW5kcG9pbnQucG9sbEZyZXF1ZW5jeTtcbiAgICAgIGNvbnN0IGVtcHR5ID0gdGhpcy5zdWJzY3JpcHRpb25zW2tleV0ucmVtb3ZlKGZyZXF1ZW5jeSk7XG4gICAgICBpZiAoZW1wdHkpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuc3Vic2NyaXB0aW9uc1trZXldO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY29uc29sZS5lcnJvcihgTWlzbWF0Y2hlZCB1bnN1YnNjcmliZTogJHtrZXl9IGlzIG5vdCBzdWJzY3JpYmVkYCk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGNBQWMsRUFBRUMsZ0JBQWdCLFFB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
@@ -1,10 +1,13 @@
1
1
  import type Controller from '../controller/Controller.js';
2
- import type { Reducer, Dispatch, ReducerState } from '../middlewareTypes.js';
3
2
  import { Manager } from '../types.js';
4
- export default function applyManager(managers: Manager[], controller: Controller): Middleware[];
5
- export interface MiddlewareAPI<R extends Reducer<any, any> = Reducer<any, any>> {
3
+ export default function applyManager(managers: Manager[], controller: Controller): ReduxMiddleware[];
4
+ export interface ReduxMiddlewareAPI<R extends Reducer<any, any> = Reducer<any, any>> {
6
5
  getState: () => ReducerState<R>;
7
- dispatch: Dispatch<R>;
6
+ dispatch: ReactDispatch<R>;
8
7
  }
9
- export type Middleware = <R extends Reducer<any, any>>({ dispatch, }: MiddlewareAPI<R>) => (next: Dispatch<R>) => Dispatch<R>;
8
+ export type ReduxMiddleware = <R extends Reducer<any, any>>({ dispatch, }: ReduxMiddlewareAPI<R>) => (next: ReactDispatch<R>) => ReactDispatch<R>;
9
+ export type ReactDispatch<R extends Reducer<any, any>> = (action: ReducerAction<R>) => Promise<void>;
10
+ export type Reducer<S, A> = (prevState: S, action: A) => S;
11
+ export type ReducerState<R extends Reducer<any, any>> = R extends Reducer<infer S, any> ? S : never;
12
+ export type ReducerAction<R extends Reducer<any, any>> = R extends Reducer<any, infer A> ? A : never;
10
13
  //# sourceMappingURL=applyManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"applyManager.d.ts","sourceRoot":"","sources":["../../src/manager/applyManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,QAAQ,EAAE,OAAO,EAAE,EACnB,UAAU,EAAE,UAAU,GACrB,UAAU,EAAE,CAsBd;AAGD,MAAM,WAAW,aAAa,CAC5B,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;IAE/C,QAAQ,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;IAChC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CACvB;AACD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EACrD,QAAQ,GACT,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"applyManager.d.ts","sourceRoot":"","sources":["../../src/manager/applyManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,QAAQ,EAAE,OAAO,EAAE,EACnB,UAAU,EAAE,UAAU,GACrB,eAAe,EAAE,CAwBnB;AAGD,MAAM,WAAW,kBAAkB,CACjC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;IAE/C,QAAQ,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;IAChC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CAC5B;AACD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAC1D,QAAQ,GACT,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC;AAG1E,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CACvD,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,KACrB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;AAC3D,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IAClD,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC9C,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IACnD,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
@@ -6,7 +6,7 @@ export default function applyManager(managers, controller) {
6
6
  console.warn('See https://dataclient.io/docs/guides/redux for hooking up redux');
7
7
  }
8
8
  return managers.map((manager, i) => {
9
- const middleware = manager.getMiddleware();
9
+ if (!manager.middleware) manager.middleware = manager.getMiddleware == null ? void 0 : manager.getMiddleware();
10
10
  return ({
11
11
  dispatch,
12
12
  getState
@@ -16,10 +16,12 @@ export default function applyManager(managers, controller) {
16
16
  controller.getState = getState;
17
17
  }
18
18
  // controller is a superset of the middleware API
19
- return middleware(controller);
19
+ return manager.middleware(controller);
20
20
  };
21
21
  });
22
22
  }
23
23
 
24
24
  /* These should be compatible with redux */
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOZXR3b3JrTWFuYWdlciIsImFwcGx5TWFuYWdlciIsIm1hbmFnZXJzIiwiY29udHJvbGxlciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImZpbmQiLCJtZ3IiLCJjb25zb2xlIiwid2FybiIsIm1hcCIsIm1hbmFnZXIiLCJpIiwibWlkZGxld2FyZSIsImdldE1pZGRsZXdhcmUiLCJkaXNwYXRjaCIsImdldFN0YXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvYXBwbHlNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBOZXR3b3JrTWFuYWdlciBmcm9tICcuL05ldHdvcmtNYW5hZ2VyLmpzJztcbmltcG9ydCB0eXBlIENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHsgUmVkdWNlciwgRGlzcGF0Y2gsIFJlZHVjZXJTdGF0ZSB9IGZyb20gJy4uL21pZGRsZXdhcmVUeXBlcy5qcyc7XG5pbXBvcnQgeyBNYW5hZ2VyIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhcHBseU1hbmFnZXIoXG4gIG1hbmFnZXJzOiBNYW5hZ2VyW10sXG4gIGNvbnRyb2xsZXI6IENvbnRyb2xsZXIsXG4pOiBNaWRkbGV3YXJlW10ge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBpZiAoXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgICFtYW5hZ2Vycy5maW5kKG1nciA9PiBtZ3IgaW5zdGFuY2VvZiBOZXR3b3JrTWFuYWdlcilcbiAgKSB7XG4gICAgY29uc29sZS53YXJuKCdOZXR3b3JrTWFuYWdlciBub3QgZm91bmQ7IHRoaXMgaXMgYSByZXF1aXJlZCBtYW5hZ2VyLicpO1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgICdTZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvZ3VpZGVzL3JlZHV4IGZvciBob29raW5nIHVwIHJlZHV4JyxcbiAgICApO1xuICB9XG4gIHJldHVybiBtYW5hZ2Vycy5tYXAoKG1hbmFnZXIsIGkpID0+IHtcbiAgICBjb25zdCBtaWRkbGV3YXJlID0gbWFuYWdlci5nZXRNaWRkbGV3YXJlKCk7XG4gICAgcmV0dXJuICh7IGRpc3BhdGNoLCBnZXRTdGF0ZSB9KSA9PiB7XG4gICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAoY29udHJvbGxlciBhcyBhbnkpLmRpc3BhdGNoID0gZGlzcGF0Y2g7XG4gICAgICAgIChjb250cm9sbGVyIGFzIGFueSkuZ2V0U3RhdGUgPSBnZXRTdGF0ZTtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnRyb2xsZXIgaXMgYSBzdXBlcnNldCBvZiB0aGUgbWlkZGxld2FyZSBBUElcbiAgICAgIHJldHVybiBtaWRkbGV3YXJlKGNvbnRyb2xsZXIgYXMgQ29udHJvbGxlcjxhbnk+KTtcbiAgICB9O1xuICB9KTtcbn1cblxuLyogVGhlc2Ugc2hvdWxkIGJlIGNvbXBhdGlibGUgd2l0aCByZWR1eCAqL1xuZXhwb3J0IGludGVyZmFjZSBNaWRkbGV3YXJlQVBJPFxuICBSIGV4dGVuZHMgUmVkdWNlcjxhbnksIGFueT4gPSBSZWR1Y2VyPGFueSwgYW55Pixcbj4ge1xuICBnZXRTdGF0ZTogKCkgPT4gUmVkdWNlclN0YXRlPFI+O1xuICBkaXNwYXRjaDogRGlzcGF0Y2g8Uj47XG59XG5leHBvcnQgdHlwZSBNaWRkbGV3YXJlID0gPFIgZXh0ZW5kcyBSZWR1Y2VyPGFueSwgYW55Pj4oe1xuICBkaXNwYXRjaCxcbn06IE1pZGRsZXdhcmVBUEk8Uj4pID0+IChuZXh0OiBEaXNwYXRjaDxSPikgPT4gRGlzcGF0Y2g8Uj47XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLGNBQWMsTUFBTSxxQkFBcUI7QUFLaEQsZUFBZSxTQUFTQyxZQUFZQSxDQUNsQ0MsUUFBbUIsRUFDbkJDLFVBQXNCLEVBQ1I7RUFDZDtFQUNBLElBQ0VDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxRQUFRLEtBQUssWUFBWSxJQUNyQyxDQUFDSixRQUFRLENBQUNLLElBQUksQ0FBQ0MsR0FBRyxJQUFJQSxHQUFHLFlBQVlSLGNBQWMsQ0FBQyxFQUNwRDtJQUNBUyxPQUFPLENBQUNDLElBQUksQ0FBQyx1REFBdUQsQ0FBQztJQUNyRUQsT0FBTyxDQUFDQyxJQUFJLENBQ1Ysa0VBQ0YsQ0FBQztFQUNIO0VBQ0EsT0FBT1IsUUFBUSxDQUFDUyxHQUFHLENBQUMsQ0FBQ0MsT0FBTyxFQUFFQyxDQUFDLEtBQUs7SUFDbEMsTUFBTUMsVUFBVSxHQUFHRixPQUFPLENBQUNHLGFBQWEsQ0FBQyxDQUFDO0lBQzFDLE9BQU8sQ0FBQztNQUFFQyxRQUFRO01BQUVDO0lBQVMsQ0FBQyxLQUFLO01BQ2pDLElBQUlKLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDVlYsVUFBVSxDQUFTYSxRQUFRLEdBQUdBLFFBQVE7UUFDdENiLFVBQVUsQ0FBU2MsUUFBUSxHQUFHQSxRQUFRO01BQ3pDO01BQ0E7TUFDQSxPQUFPSCxVQUFVLENBQUNYLFVBQTZCLENBQUM7SUFDbEQsQ0FBQztFQUNILENBQUMsQ0FBQztBQUNKOztBQUVBIiwiaWdub3JlTGlzdCI6W119
25
+
26
+ /* 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
@@ -1,15 +1,11 @@
1
1
  import type Controller from './controller/Controller.js';
2
- import { ActionTypes, State } from './types.js';
3
- type RHDispatch<Actions = any> = (value: Actions) => Promise<void>;
4
- export interface MiddlewareAPI<R extends DataClientReducer = DataClientReducer> extends Controller<RHDispatch<ActionTypes>> {
2
+ import type { ActionTypes, State } from './types.js';
3
+ export type Dispatch<Actions = ActionTypes> = (value: Actions) => Promise<void>;
4
+ export interface MiddlewareAPI extends Controller<Dispatch<ActionTypes>> {
5
5
  }
6
- export interface MiddlewareController<Actions = ActionTypes> extends Controller<RHDispatch<Actions>> {
6
+ export interface MiddlewareController<Actions = ActionTypes> extends Controller<Dispatch<Actions>> {
7
7
  }
8
- export type Middleware<Actions = any> = <C extends MiddlewareController<Actions>>(controller: C) => (next: C['dispatch']) => C['dispatch'];
8
+ /** @see https://dataclient.io/docs/api/Manager#middleware */
9
+ export type Middleware<Actions = ActionTypes> = <C extends MiddlewareController<Actions>>(controller: C) => (next: C['dispatch']) => C['dispatch'];
9
10
  export type DataClientReducer = (prevState: State<unknown>, action: ActionTypes) => State<unknown>;
10
- export type Dispatch<R extends Reducer<any, any>> = (action: ReducerAction<R>) => Promise<void>;
11
- export type Reducer<S, A> = (prevState: S, action: A) => S;
12
- export type ReducerState<R extends Reducer<any, any>> = R extends Reducer<infer S, any> ? S : never;
13
- export type ReducerAction<R extends Reducer<any, any>> = R extends Reducer<any, infer A> ? A : never;
14
- export {};
15
11
  //# sourceMappingURL=middlewareTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"middlewareTypes.d.ts","sourceRoot":"","sources":["../src/middlewareTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEhD,KAAK,UAAU,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnE,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,CAC5E,SAAQ,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;CAAG;AAChD,MAAM,WAAW,oBAAoB,CAAC,OAAO,GAAG,WAAW,CACzD,SAAQ,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;CAAG;AAE5C,MAAM,MAAM,UAAU,CAAC,OAAO,GAAG,GAAG,IAAI,CACtC,CAAC,SAAS,oBAAoB,CAAC,OAAO,CAAC,EAEvC,UAAU,EAAE,CAAC,KACV,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;AAE5C,MAAM,MAAM,iBAAiB,GAAG,CAC9B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EACzB,MAAM,EAAE,WAAW,KAChB,KAAK,CAAC,OAAO,CAAC,CAAC;AAGpB,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAClD,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,KACrB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;AAC3D,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IAClD,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC9C,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IACnD,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"middlewareTypes.d.ts","sourceRoot":"","sources":["../src/middlewareTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,MAAM,QAAQ,CAAC,OAAO,GAAG,WAAW,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhF,MAAM,WAAW,aAAc,SAAQ,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;CAAG;AAE3E,MAAM,WAAW,oBAAoB,CAAC,OAAO,GAAG,WAAW,CACzD,SAAQ,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CAAG;AAE1C,6DAA6D;AAC7D,MAAM,MAAM,UAAU,CAAC,OAAO,GAAG,WAAW,IAAI,CAC9C,CAAC,SAAS,oBAAoB,CAAC,OAAO,CAAC,EAEvC,UAAU,EAAE,CAAC,KACV,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;AAE5C,MAAM,MAAM,iBAAiB,GAAG,CAC9B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EACzB,MAAM,EAAE,WAAW,KAChB,KAAK,CAAC,OAAO,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL21pZGRsZXdhcmVUeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBDb250cm9sbGVyIGZyb20gJy4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB7IEFjdGlvblR5cGVzLCBTdGF0ZSB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG50eXBlIFJIRGlzcGF0Y2g8QWN0aW9ucyA9IGFueT4gPSAodmFsdWU6IEFjdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWlkZGxld2FyZUFQSTxSIGV4dGVuZHMgRGF0YUNsaWVudFJlZHVjZXIgPSBEYXRhQ2xpZW50UmVkdWNlcj5cbiAgZXh0ZW5kcyBDb250cm9sbGVyPFJIRGlzcGF0Y2g8QWN0aW9uVHlwZXM+PiB7fVxuZXhwb3J0IGludGVyZmFjZSBNaWRkbGV3YXJlQ29udHJvbGxlcjxBY3Rpb25zID0gQWN0aW9uVHlwZXM+XG4gIGV4dGVuZHMgQ29udHJvbGxlcjxSSERpc3BhdGNoPEFjdGlvbnM+PiB7fVxuXG5leHBvcnQgdHlwZSBNaWRkbGV3YXJlPEFjdGlvbnMgPSBhbnk+ID0gPFxuICBDIGV4dGVuZHMgTWlkZGxld2FyZUNvbnRyb2xsZXI8QWN0aW9ucz4sXG4+KFxuICBjb250cm9sbGVyOiBDLFxuKSA9PiAobmV4dDogQ1snZGlzcGF0Y2gnXSkgPT4gQ1snZGlzcGF0Y2gnXTtcblxuZXhwb3J0IHR5cGUgRGF0YUNsaWVudFJlZHVjZXIgPSAoXG4gIHByZXZTdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIGFjdGlvbjogQWN0aW9uVHlwZXMsXG4pID0+IFN0YXRlPHVua25vd24+O1xuXG4vKiBUaGUgbmV4dCBhcmUgdHlwZXMgZnJvbSBSZWFjdDsgYnV0IHdlIGRvbid0IHdhbnQgZGVwZW5kZW5jaWVzIG9uIGl0ICovXG5leHBvcnQgdHlwZSBEaXNwYXRjaDxSIGV4dGVuZHMgUmVkdWNlcjxhbnksIGFueT4+ID0gKFxuICBhY3Rpb246IFJlZHVjZXJBY3Rpb248Uj4sXG4pID0+IFByb21pc2U8dm9pZD47XG5cbmV4cG9ydCB0eXBlIFJlZHVjZXI8UywgQT4gPSAocHJldlN0YXRlOiBTLCBhY3Rpb246IEEpID0+IFM7XG5leHBvcnQgdHlwZSBSZWR1Y2VyU3RhdGU8UiBleHRlbmRzIFJlZHVjZXI8YW55LCBhbnk+PiA9XG4gIFIgZXh0ZW5kcyBSZWR1Y2VyPGluZmVyIFMsIGFueT4gPyBTIDogbmV2ZXI7XG5leHBvcnQgdHlwZSBSZWR1Y2VyQWN0aW9uPFIgZXh0ZW5kcyBSZWR1Y2VyPGFueSwgYW55Pj4gPVxuICBSIGV4dGVuZHMgUmVkdWNlcjxhbnksIGluZmVyIEE+ID8gQSA6IG5ldmVyO1xuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL21pZGRsZXdhcmVUeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBDb250cm9sbGVyIGZyb20gJy4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHsgQWN0aW9uVHlwZXMsIFN0YXRlIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCB0eXBlIERpc3BhdGNoPEFjdGlvbnMgPSBBY3Rpb25UeXBlcz4gPSAodmFsdWU6IEFjdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWlkZGxld2FyZUFQSSBleHRlbmRzIENvbnRyb2xsZXI8RGlzcGF0Y2g8QWN0aW9uVHlwZXM+PiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pZGRsZXdhcmVDb250cm9sbGVyPEFjdGlvbnMgPSBBY3Rpb25UeXBlcz5cbiAgZXh0ZW5kcyBDb250cm9sbGVyPERpc3BhdGNoPEFjdGlvbnM+PiB7fVxuXG4vKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvTWFuYWdlciNtaWRkbGV3YXJlICovXG5leHBvcnQgdHlwZSBNaWRkbGV3YXJlPEFjdGlvbnMgPSBBY3Rpb25UeXBlcz4gPSA8XG4gIEMgZXh0ZW5kcyBNaWRkbGV3YXJlQ29udHJvbGxlcjxBY3Rpb25zPixcbj4oXG4gIGNvbnRyb2xsZXI6IEMsXG4pID0+IChuZXh0OiBDWydkaXNwYXRjaCddKSA9PiBDWydkaXNwYXRjaCddO1xuXG5leHBvcnQgdHlwZSBEYXRhQ2xpZW50UmVkdWNlciA9IChcbiAgcHJldlN0YXRlOiBTdGF0ZTx1bmtub3duPixcbiAgYWN0aW9uOiBBY3Rpb25UeXBlcyxcbikgPT4gU3RhdGU8dW5rbm93bj47XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
package/lib/types.d.ts CHANGED
@@ -6,6 +6,10 @@ import type { Dispatch, Middleware, MiddlewareAPI } from './middlewareTypes.js';
6
6
  export * from './actions.js';
7
7
  export type { AbstractInstanceType, UpdateFunction };
8
8
  export type PK = string;
9
+ /** Normalized state for Reactive Data Client
10
+ *
11
+ * @see https://dataclient.io/docs/concepts/normalization
12
+ */
9
13
  export interface State<T> {
10
14
  readonly entities: {
11
15
  readonly [entityKey: string]: {
@@ -38,9 +42,20 @@ export interface State<T> {
38
42
  readonly optimistic: (SetResponseAction | OptimisticAction)[];
39
43
  readonly lastReset: number;
40
44
  }
45
+ /** Singletons that handle global side-effects
46
+ *
47
+ * Kind of like useEffect() for the central data store
48
+ *
49
+ * @see https://dataclient.io/docs/api/Manager
50
+ */
41
51
  export interface Manager<Actions = ActionTypes> {
42
- getMiddleware(): Middleware<Actions>;
52
+ /** @see https://dataclient.io/docs/api/Manager#getmiddleware */
53
+ getMiddleware?(): Middleware<Actions>;
54
+ /** @see https://dataclient.io/docs/api/Manager#middleware */
55
+ middleware?: Middleware<Actions>;
56
+ /** @see https://dataclient.io/docs/api/Manager#cleanup */
43
57
  cleanup(): void;
58
+ /** @see https://dataclient.io/docs/api/Manager#init */
44
59
  init?: (state: State<any>) => void;
45
60
  }
46
61
  export type { Dispatch, Middleware, MiddlewareAPI };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEhF,cAAc,cAAc,CAAC;AAE7B,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC;AAErD,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC;AAExB,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG;YAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,CAAA;SAAE,GAAG,SAAS,CAAC;KACxE,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;KACzD,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG;YACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;YAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;YAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;YAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;YAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;SACpD,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG;YAC5B,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG;gBACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;aAC5B,CAAC;SACH,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE,CAAC;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,OAAO,CAAC,OAAO,GAAG,WAAW;IAC5C,aAAa,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC;IAChB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CACpC;AAED,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEhF,cAAc,cAAc,CAAC;AAE7B,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC;AAErD,MAAM,MAAM,EAAE,GAAG,MAAM,CAAC;AAExB;;;GAGG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG;YAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,CAAA;SAAE,GAAG,SAAS,CAAC;KACxE,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;KACzD,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG;YACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;YAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;YAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;YAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;YAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;SACpD,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG;YAC5B,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG;gBACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;aAC5B,CAAC;SACH,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE,CAAC;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,WAAW,OAAO,CAAC,OAAO,GAAG,WAAW;IAC5C,gEAAgE;IAChE,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACtC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,0DAA0D;IAC1D,OAAO,IAAI,IAAI,CAAC;IAChB,uDAAuD;IACvD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CACpC;AAED,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC"}
package/lib/types.js CHANGED
@@ -1,3 +1,15 @@
1
1
  export * from './actions.js';
2
+
3
+ /** Normalized state for Reactive Data Client
4
+ *
5
+ * @see https://dataclient.io/docs/concepts/normalization
6
+ */
7
+
8
+ /** Singletons that handle global side-effects
9
+ *
10
+ * Kind of like useEffect() for the central data store
11
+ *
12
+ * @see https://dataclient.io/docs/api/Manager
13
+ */
2
14
  export {};
3
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vcm1hbGl6ZWRJbmRleCB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuaW1wb3J0IHR5cGUge1xuICBVcGRhdGVGdW5jdGlvbixcbiAgQWJzdHJhY3RJbnN0YW5jZVR5cGUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuaW1wb3J0IHR5cGUgeyBFcnJvclR5cGVzIH0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbmltcG9ydCB0eXBlIHtcbiAgQWN0aW9uVHlwZXMsXG4gIFNldFJlc3BvbnNlQWN0aW9uLFxuICBPcHRpbWlzdGljQWN0aW9uLFxufSBmcm9tICcuL2FjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBEaXNwYXRjaCwgTWlkZGxld2FyZSwgTWlkZGxld2FyZUFQSSB9IGZyb20gJy4vbWlkZGxld2FyZVR5cGVzLmpzJztcblxuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zLmpzJztcblxuZXhwb3J0IHR5cGUgeyBBYnN0cmFjdEluc3RhbmNlVHlwZSwgVXBkYXRlRnVuY3Rpb24gfTtcblxuZXhwb3J0IHR5cGUgUEsgPSBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGU8VD4ge1xuICByZWFkb25seSBlbnRpdGllczoge1xuICAgIHJlYWRvbmx5IFtlbnRpdHlLZXk6IHN0cmluZ106IHsgcmVhZG9ubHkgW3BrOiBzdHJpbmddOiBUIH0gfCB1bmRlZmluZWQ7XG4gIH07XG4gIHJlYWRvbmx5IGVuZHBvaW50czoge1xuICAgIHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IHVua25vd24gfCBQS1tdIHwgUEsgfCB1bmRlZmluZWQ7XG4gIH07XG4gIHJlYWRvbmx5IGluZGV4ZXM6IE5vcm1hbGl6ZWRJbmRleDtcbiAgcmVhZG9ubHkgbWV0YToge1xuICAgIHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IHtcbiAgICAgIHJlYWRvbmx5IGRhdGU6IG51bWJlcjtcbiAgICAgIHJlYWRvbmx5IGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgcmVhZG9ubHkgcHJldkV4cGlyZXNBdD86IG51bWJlcjtcbiAgICAgIHJlYWRvbmx5IGVycm9yPzogRXJyb3JUeXBlcztcbiAgICAgIHJlYWRvbmx5IGludmFsaWRhdGVkPzogYm9vbGVhbjtcbiAgICAgIHJlYWRvbmx5IGVycm9yUG9saWN5PzogJ2hhcmQnIHwgJ3NvZnQnIHwgdW5kZWZpbmVkO1xuICAgIH07XG4gIH07XG4gIHJlYWRvbmx5IGVudGl0eU1ldGE6IHtcbiAgICByZWFkb25seSBbZW50aXR5S2V5OiBzdHJpbmddOiB7XG4gICAgICByZWFkb25seSBbcGs6IHN0cmluZ106IHtcbiAgICAgICAgcmVhZG9ubHkgZmV0Y2hlZEF0OiBudW1iZXI7XG4gICAgICAgIHJlYWRvbmx5IGRhdGU6IG51bWJlcjtcbiAgICAgICAgcmVhZG9ubHkgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIHJlYWRvbmx5IG9wdGltaXN0aWM6IChTZXRSZXNwb25zZUFjdGlvbiB8IE9wdGltaXN0aWNBY3Rpb24pW107XG4gIHJlYWRvbmx5IGxhc3RSZXNldDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZXI8QWN0aW9ucyA9IEFjdGlvblR5cGVzPiB7XG4gIGdldE1pZGRsZXdhcmUoKTogTWlkZGxld2FyZTxBY3Rpb25zPjtcbiAgY2xlYW51cCgpOiB2b2lkO1xuICBpbml0PzogKHN0YXRlOiBTdGF0ZTxhbnk+KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSB7IERpc3BhdGNoLCBNaWRkbGV3YXJlLCBNaWRkbGV3YXJlQVBJIH07XG4iXSwibWFwcGluZ3MiOiJBQWNBLGNBQWMsY0FBYztBQUFDIiwiaWdub3JlTGlzdCI6W119
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vcm1hbGl6ZWRJbmRleCB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuaW1wb3J0IHR5cGUge1xuICBVcGRhdGVGdW5jdGlvbixcbiAgQWJzdHJhY3RJbnN0YW5jZVR5cGUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuaW1wb3J0IHR5cGUgeyBFcnJvclR5cGVzIH0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbmltcG9ydCB0eXBlIHtcbiAgQWN0aW9uVHlwZXMsXG4gIFNldFJlc3BvbnNlQWN0aW9uLFxuICBPcHRpbWlzdGljQWN0aW9uLFxufSBmcm9tICcuL2FjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBEaXNwYXRjaCwgTWlkZGxld2FyZSwgTWlkZGxld2FyZUFQSSB9IGZyb20gJy4vbWlkZGxld2FyZVR5cGVzLmpzJztcblxuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zLmpzJztcblxuZXhwb3J0IHR5cGUgeyBBYnN0cmFjdEluc3RhbmNlVHlwZSwgVXBkYXRlRnVuY3Rpb24gfTtcblxuZXhwb3J0IHR5cGUgUEsgPSBzdHJpbmc7XG5cbi8qKiBOb3JtYWxpemVkIHN0YXRlIGZvciBSZWFjdGl2ZSBEYXRhIENsaWVudFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvY29uY2VwdHMvbm9ybWFsaXphdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlPFQ+IHtcbiAgcmVhZG9ubHkgZW50aXRpZXM6IHtcbiAgICByZWFkb25seSBbZW50aXR5S2V5OiBzdHJpbmddOiB7IHJlYWRvbmx5IFtwazogc3RyaW5nXTogVCB9IHwgdW5kZWZpbmVkO1xuICB9O1xuICByZWFkb25seSBlbmRwb2ludHM6IHtcbiAgICByZWFkb25seSBba2V5OiBzdHJpbmddOiB1bmtub3duIHwgUEtbXSB8IFBLIHwgdW5kZWZpbmVkO1xuICB9O1xuICByZWFkb25seSBpbmRleGVzOiBOb3JtYWxpemVkSW5kZXg7XG4gIHJlYWRvbmx5IG1ldGE6IHtcbiAgICByZWFkb25seSBba2V5OiBzdHJpbmddOiB7XG4gICAgICByZWFkb25seSBkYXRlOiBudW1iZXI7XG4gICAgICByZWFkb25seSBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICAgIHJlYWRvbmx5IHByZXZFeHBpcmVzQXQ/OiBudW1iZXI7XG4gICAgICByZWFkb25seSBlcnJvcj86IEVycm9yVHlwZXM7XG4gICAgICByZWFkb25seSBpbnZhbGlkYXRlZD86IGJvb2xlYW47XG4gICAgICByZWFkb25seSBlcnJvclBvbGljeT86ICdoYXJkJyB8ICdzb2Z0JyB8IHVuZGVmaW5lZDtcbiAgICB9O1xuICB9O1xuICByZWFkb25seSBlbnRpdHlNZXRhOiB7XG4gICAgcmVhZG9ubHkgW2VudGl0eUtleTogc3RyaW5nXToge1xuICAgICAgcmVhZG9ubHkgW3BrOiBzdHJpbmddOiB7XG4gICAgICAgIHJlYWRvbmx5IGZldGNoZWRBdDogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBkYXRlOiBudW1iZXI7XG4gICAgICAgIHJlYWRvbmx5IGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICByZWFkb25seSBvcHRpbWlzdGljOiAoU2V0UmVzcG9uc2VBY3Rpb24gfCBPcHRpbWlzdGljQWN0aW9uKVtdO1xuICByZWFkb25seSBsYXN0UmVzZXQ6IG51bWJlcjtcbn1cblxuLyoqIFNpbmdsZXRvbnMgdGhhdCBoYW5kbGUgZ2xvYmFsIHNpZGUtZWZmZWN0c1xuICpcbiAqIEtpbmQgb2YgbGlrZSB1c2VFZmZlY3QoKSBmb3IgdGhlIGNlbnRyYWwgZGF0YSBzdG9yZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL01hbmFnZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYW5hZ2VyPEFjdGlvbnMgPSBBY3Rpb25UeXBlcz4ge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvTWFuYWdlciNnZXRtaWRkbGV3YXJlICovXG4gIGdldE1pZGRsZXdhcmU/KCk6IE1pZGRsZXdhcmU8QWN0aW9ucz47XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9NYW5hZ2VyI21pZGRsZXdhcmUgKi9cbiAgbWlkZGxld2FyZT86IE1pZGRsZXdhcmU8QWN0aW9ucz47XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9NYW5hZ2VyI2NsZWFudXAgKi9cbiAgY2xlYW51cCgpOiB2b2lkO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvTWFuYWdlciNpbml0ICovXG4gIGluaXQ/OiAoc3RhdGU6IFN0YXRlPGFueT4pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIHsgRGlzcGF0Y2gsIE1pZGRsZXdhcmUsIE1pZGRsZXdhcmVBUEkgfTtcbiJdLCJtYXBwaW5ncyI6IkFBY0EsY0FBYyxjQUFjOztBQU01QjtBQUNBO0FBQ0E7QUFDQTs7QUFnQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEEiLCJpZ25vcmVMaXN0IjpbXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@data-client/core",
3
- "version": "0.14.4",
3
+ "version": "0.14.5",
4
4
  "description": "High performance mutable data framework.",
5
5
  "sideEffects": false,
6
6
  "main": "dist/index.js",
package/src/index.ts CHANGED
@@ -12,6 +12,7 @@ export type {
12
12
  Schema,
13
13
  EndpointInterface,
14
14
  EntityInterface,
15
+ SchemaClass,
15
16
  ResolveType,
16
17
  DenormalizeNullable,
17
18
  Denormalize,