@data-client/core 0.13.5 → 0.14.0

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 (176) hide show
  1. package/dist/index.js +164 -191
  2. package/dist/index.umd.min.js +1 -1
  3. package/legacy/actions.js +1 -1
  4. package/legacy/controller/Controller.js +8 -17
  5. package/legacy/controller/actions/createExpireAll.js +8 -0
  6. package/legacy/controller/actions/createFetch.js +27 -0
  7. package/legacy/controller/actions/createInvalidate.js +10 -0
  8. package/legacy/controller/actions/createInvalidateAll.js +8 -0
  9. package/legacy/controller/actions/createMeta.js +9 -0
  10. package/legacy/controller/actions/createOptimistic.js +17 -0
  11. package/legacy/controller/actions/createReset.js +8 -0
  12. package/legacy/controller/actions/createSet.js +17 -0
  13. package/legacy/controller/actions/createSetResponse.js +26 -0
  14. package/legacy/controller/actions/createSubscription.js +22 -0
  15. package/legacy/controller/actions/index.js +11 -0
  16. package/legacy/index.js +3 -4
  17. package/legacy/manager/LogoutManager.js +2 -2
  18. package/legacy/manager/NetworkManager.js +27 -29
  19. package/legacy/manager/PollingSubscription.js +3 -3
  20. package/legacy/manager/SubscriptionManager.js +3 -3
  21. package/legacy/state/reducer/fetchReducer.js +6 -10
  22. package/legacy/state/reducer/invalidateReducer.js +2 -2
  23. package/legacy/state/reducer/setReducer.js +3 -3
  24. package/legacy/state/reducer/setResponseReducer.js +17 -17
  25. package/legacy/types.js +1 -1
  26. package/lib/actions.d.ts +34 -40
  27. package/lib/actions.d.ts.map +1 -1
  28. package/lib/actions.js +1 -1
  29. package/lib/controller/Controller.d.ts +1 -1
  30. package/lib/controller/Controller.d.ts.map +1 -1
  31. package/lib/controller/Controller.js +8 -17
  32. package/lib/controller/actions/createExpireAll.d.ts +3 -0
  33. package/lib/controller/actions/createExpireAll.d.ts.map +1 -0
  34. package/lib/controller/actions/createExpireAll.js +8 -0
  35. package/lib/controller/{createFetch.d.ts → actions/createFetch.d.ts} +3 -3
  36. package/lib/controller/actions/createFetch.d.ts.map +1 -0
  37. package/lib/controller/actions/createFetch.js +27 -0
  38. package/lib/controller/actions/createInvalidate.d.ts +6 -0
  39. package/lib/controller/actions/createInvalidate.d.ts.map +1 -0
  40. package/lib/controller/actions/createInvalidate.js +10 -0
  41. package/lib/controller/actions/createInvalidateAll.d.ts +3 -0
  42. package/lib/controller/actions/createInvalidateAll.d.ts.map +1 -0
  43. package/lib/controller/actions/createInvalidateAll.js +8 -0
  44. package/lib/controller/actions/createMeta.d.ts +3 -0
  45. package/lib/controller/actions/createMeta.d.ts.map +1 -0
  46. package/lib/controller/actions/createMeta.js +9 -0
  47. package/lib/controller/actions/createOptimistic.d.ts +7 -0
  48. package/lib/controller/actions/createOptimistic.d.ts.map +1 -0
  49. package/lib/controller/actions/createOptimistic.js +17 -0
  50. package/lib/controller/actions/createReset.d.ts +3 -0
  51. package/lib/controller/actions/createReset.d.ts.map +1 -0
  52. package/lib/controller/actions/createReset.js +8 -0
  53. package/lib/controller/{createSet.d.ts → actions/createSet.d.ts} +2 -2
  54. package/lib/controller/actions/createSet.d.ts.map +1 -0
  55. package/lib/controller/actions/createSet.js +17 -0
  56. package/lib/controller/{createSetResponse.d.ts → actions/createSetResponse.d.ts} +4 -4
  57. package/lib/controller/actions/createSetResponse.d.ts.map +1 -0
  58. package/lib/controller/actions/createSetResponse.js +26 -0
  59. package/lib/controller/{createSubscription.d.ts → actions/createSubscription.d.ts} +1 -1
  60. package/lib/controller/actions/createSubscription.d.ts.map +1 -0
  61. package/lib/controller/actions/createSubscription.js +22 -0
  62. package/lib/controller/actions/index.d.ts +11 -0
  63. package/lib/controller/actions/index.d.ts.map +1 -0
  64. package/lib/controller/actions/index.js +11 -0
  65. package/lib/index.d.ts +1 -3
  66. package/lib/index.d.ts.map +1 -1
  67. package/lib/index.js +3 -4
  68. package/lib/manager/LogoutManager.js +2 -2
  69. package/lib/manager/NetworkManager.d.ts +2 -2
  70. package/lib/manager/NetworkManager.d.ts.map +1 -1
  71. package/lib/manager/NetworkManager.js +27 -29
  72. package/lib/manager/PollingSubscription.js +3 -3
  73. package/lib/manager/SubscriptionManager.js +3 -3
  74. package/lib/state/reducer/expireReducer.d.ts +2 -2
  75. package/lib/state/reducer/fetchReducer.d.ts.map +1 -1
  76. package/lib/state/reducer/fetchReducer.js +8 -12
  77. package/lib/state/reducer/invalidateReducer.d.ts +2 -2
  78. package/lib/state/reducer/invalidateReducer.js +2 -2
  79. package/lib/state/reducer/setReducer.d.ts.map +1 -1
  80. package/lib/state/reducer/setReducer.js +3 -3
  81. package/lib/state/reducer/setResponseReducer.d.ts.map +1 -1
  82. package/lib/state/reducer/setResponseReducer.js +17 -17
  83. package/lib/types.d.ts +3 -3
  84. package/lib/types.d.ts.map +1 -1
  85. package/lib/types.js +1 -1
  86. package/package.json +2 -2
  87. package/src/actions.ts +36 -42
  88. package/src/controller/Controller.ts +15 -22
  89. package/src/controller/__tests__/Controller.ts +2 -2
  90. package/src/controller/actions/createExpireAll.ts +11 -0
  91. package/src/controller/{createFetch.ts → actions/createFetch.ts} +9 -13
  92. package/src/controller/actions/createInvalidate.ts +14 -0
  93. package/src/controller/actions/createInvalidateAll.ts +11 -0
  94. package/src/controller/actions/createMeta.ts +13 -0
  95. package/src/controller/actions/createOptimistic.ts +32 -0
  96. package/src/controller/actions/createReset.ts +9 -0
  97. package/src/controller/actions/createSet.ts +31 -0
  98. package/src/controller/{createSetResponse.ts → actions/createSetResponse.ts} +17 -23
  99. package/src/controller/{createSubscription.ts → actions/createSubscription.ts} +6 -10
  100. package/src/controller/actions/index.ts +13 -0
  101. package/src/index.ts +1 -3
  102. package/src/manager/LogoutManager.ts +1 -1
  103. package/src/manager/NetworkManager.ts +26 -27
  104. package/src/manager/PollingSubscription.ts +2 -2
  105. package/src/manager/SubscriptionManager.ts +2 -2
  106. package/src/manager/__tests__/__snapshots__/pollingSubscription.ts.snap +4 -10
  107. package/src/manager/__tests__/logoutManager.ts +1 -1
  108. package/src/manager/__tests__/networkManager.ts +37 -25
  109. package/src/manager/__tests__/pollingSubscription.ts +3 -3
  110. package/src/manager/__tests__/subscriptionManager.ts +22 -27
  111. package/src/state/__tests__/reducer.ts +42 -45
  112. package/src/state/reducer/fetchReducer.ts +12 -18
  113. package/src/state/reducer/invalidateReducer.ts +1 -1
  114. package/src/state/reducer/setReducer.ts +4 -10
  115. package/src/state/reducer/setResponseReducer.ts +18 -20
  116. package/src/types.ts +4 -4
  117. package/ts3.4/actions.d.ts +35 -41
  118. package/ts3.4/controller/Controller.d.ts +1 -1
  119. package/ts3.4/controller/actions/createExpireAll.d.ts +3 -0
  120. package/ts3.4/controller/{createFetch.d.ts → actions/createFetch.d.ts} +3 -3
  121. package/ts3.4/controller/{createInvalidate.d.ts → actions/createInvalidate.d.ts} +2 -2
  122. package/ts3.4/controller/actions/createInvalidateAll.d.ts +3 -0
  123. package/ts3.4/controller/actions/createMeta.d.ts +3 -0
  124. package/ts3.4/controller/actions/createOptimistic.d.ts +9 -0
  125. package/ts3.4/controller/actions/createReset.d.ts +3 -0
  126. package/ts3.4/controller/{createSet.d.ts → actions/createSet.d.ts} +2 -2
  127. package/ts3.4/controller/{createSetResponse.d.ts → actions/createSetResponse.d.ts} +4 -4
  128. package/ts3.4/controller/{createSubscription.d.ts → actions/createSubscription.d.ts} +1 -1
  129. package/ts3.4/controller/actions/index.d.ts +11 -0
  130. package/ts3.4/index.d.ts +2 -3
  131. package/ts3.4/manager/NetworkManager.d.ts +2 -2
  132. package/ts3.4/state/reducer/expireReducer.d.ts +2 -2
  133. package/ts3.4/state/reducer/invalidateReducer.d.ts +2 -2
  134. package/ts3.4/types.d.ts +3 -3
  135. package/legacy/controller/createExpireAll.js +0 -8
  136. package/legacy/controller/createFetch.js +0 -31
  137. package/legacy/controller/createInvalidate.js +0 -12
  138. package/legacy/controller/createInvalidateAll.js +0 -8
  139. package/legacy/controller/createOptimistic.js +0 -27
  140. package/legacy/controller/createReset.js +0 -8
  141. package/legacy/controller/createSet.js +0 -28
  142. package/legacy/controller/createSetResponse.js +0 -32
  143. package/legacy/controller/createSubscription.js +0 -26
  144. package/lib/controller/createExpireAll.d.ts +0 -3
  145. package/lib/controller/createExpireAll.d.ts.map +0 -1
  146. package/lib/controller/createExpireAll.js +0 -8
  147. package/lib/controller/createFetch.d.ts.map +0 -1
  148. package/lib/controller/createFetch.js +0 -31
  149. package/lib/controller/createInvalidate.d.ts +0 -6
  150. package/lib/controller/createInvalidate.d.ts.map +0 -1
  151. package/lib/controller/createInvalidate.js +0 -12
  152. package/lib/controller/createInvalidateAll.d.ts +0 -3
  153. package/lib/controller/createInvalidateAll.d.ts.map +0 -1
  154. package/lib/controller/createInvalidateAll.js +0 -8
  155. package/lib/controller/createOptimistic.d.ts +0 -10
  156. package/lib/controller/createOptimistic.d.ts.map +0 -1
  157. package/lib/controller/createOptimistic.js +0 -27
  158. package/lib/controller/createReset.d.ts +0 -3
  159. package/lib/controller/createReset.d.ts.map +0 -1
  160. package/lib/controller/createReset.js +0 -8
  161. package/lib/controller/createSet.d.ts.map +0 -1
  162. package/lib/controller/createSet.js +0 -28
  163. package/lib/controller/createSetResponse.d.ts.map +0 -1
  164. package/lib/controller/createSetResponse.js +0 -32
  165. package/lib/controller/createSubscription.d.ts.map +0 -1
  166. package/lib/controller/createSubscription.js +0 -26
  167. package/src/controller/createExpireAll.ts +0 -11
  168. package/src/controller/createInvalidate.ts +0 -16
  169. package/src/controller/createInvalidateAll.ts +0 -11
  170. package/src/controller/createOptimistic.ts +0 -41
  171. package/src/controller/createReset.ts +0 -9
  172. package/src/controller/createSet.ts +0 -43
  173. package/ts3.4/controller/createExpireAll.d.ts +0 -3
  174. package/ts3.4/controller/createInvalidateAll.d.ts +0 -3
  175. package/ts3.4/controller/createOptimistic.d.ts +0 -12
  176. package/ts3.4/controller/createReset.d.ts +0 -3
@@ -0,0 +1,11 @@
1
+ export { createSubscription, createUnsubscription } from './createSubscription.js';
2
+ export { createSetResponse } from './createSetResponse.js';
3
+ export { createSet } from './createSet.js';
4
+ export { createReset } from './createReset.js';
5
+ export { createOptimistic } from './createOptimistic.js';
6
+ export { createMeta } from './createMeta.js';
7
+ export { createInvalidateAll } from './createInvalidateAll.js';
8
+ export { createInvalidate } from './createInvalidate.js';
9
+ export { createFetch } from './createFetch.js';
10
+ export { createExpireAll } from './createExpireAll.js';
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVTdWJzY3JpcHRpb24iLCJjcmVhdGVVbnN1YnNjcmlwdGlvbiIsImNyZWF0ZVNldFJlc3BvbnNlIiwiY3JlYXRlU2V0IiwiY3JlYXRlUmVzZXQiLCJjcmVhdGVPcHRpbWlzdGljIiwiY3JlYXRlTWV0YSIsImNyZWF0ZUludmFsaWRhdGVBbGwiLCJjcmVhdGVJbnZhbGlkYXRlIiwiY3JlYXRlRmV0Y2giLCJjcmVhdGVFeHBpcmVBbGwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJvbGxlci9hY3Rpb25zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIGNyZWF0ZVN1YnNjcmlwdGlvbixcbiAgY3JlYXRlVW5zdWJzY3JpcHRpb24sXG59IGZyb20gJy4vY3JlYXRlU3Vic2NyaXB0aW9uLmpzJztcbmV4cG9ydCB7IGNyZWF0ZVNldFJlc3BvbnNlIH0gZnJvbSAnLi9jcmVhdGVTZXRSZXNwb25zZS5qcyc7XG5leHBvcnQgeyBjcmVhdGVTZXQgfSBmcm9tICcuL2NyZWF0ZVNldC5qcyc7XG5leHBvcnQgeyBjcmVhdGVSZXNldCB9IGZyb20gJy4vY3JlYXRlUmVzZXQuanMnO1xuZXhwb3J0IHsgY3JlYXRlT3B0aW1pc3RpYyB9IGZyb20gJy4vY3JlYXRlT3B0aW1pc3RpYy5qcyc7XG5leHBvcnQgeyBjcmVhdGVNZXRhIH0gZnJvbSAnLi9jcmVhdGVNZXRhLmpzJztcbmV4cG9ydCB7IGNyZWF0ZUludmFsaWRhdGVBbGwgfSBmcm9tICcuL2NyZWF0ZUludmFsaWRhdGVBbGwuanMnO1xuZXhwb3J0IHsgY3JlYXRlSW52YWxpZGF0ZSB9IGZyb20gJy4vY3JlYXRlSW52YWxpZGF0ZS5qcyc7XG5leHBvcnQgeyBjcmVhdGVGZXRjaCB9IGZyb20gJy4vY3JlYXRlRmV0Y2guanMnO1xuZXhwb3J0IHsgY3JlYXRlRXhwaXJlQWxsIH0gZnJvbSAnLi9jcmVhdGVFeHBpcmVBbGwuanMnO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSxrQkFBa0IsRUFDbEJDLG9CQUFvQixRQUNmLHlCQUF5QjtBQUNoQyxTQUFTQyxpQkFBaUIsUUFBUSx3QkFBd0I7QUFDMUQsU0FBU0MsU0FBUyxRQUFRLGdCQUFnQjtBQUMxQyxTQUFTQyxXQUFXLFFBQVEsa0JBQWtCO0FBQzlDLFNBQVNDLGdCQUFnQixRQUFRLHVCQUF1QjtBQUN4RCxTQUFTQyxVQUFVLFFBQVEsaUJBQWlCO0FBQzVDLFNBQVNDLG1CQUFtQixRQUFRLDBCQUEwQjtBQUM5RCxTQUFTQyxnQkFBZ0IsUUFBUSx1QkFBdUI7QUFDeEQsU0FBU0MsV0FBVyxRQUFRLGtCQUFrQjtBQUM5QyxTQUFTQyxlQUFlLFFBQVEsc0JBQXNCIiwiaWdub3JlTGlzdCI6W119
package/lib/index.d.ts CHANGED
@@ -6,9 +6,7 @@ export { default as createReducer, initialState, } from './state/reducer/createR
6
6
  export { default as applyManager } from './manager/applyManager.js';
7
7
  export { default as Controller } from './controller/Controller.js';
8
8
  export type { DataClientDispatch, GenericDispatch, } from './controller/Controller.js';
9
- export { default as createFetch } from './controller/createFetch.js';
10
- export { default as createSet } from './controller/createSet.js';
11
- export { default as createSetResponse } from './controller/createSetResponse.js';
9
+ export * as actions from './controller/actions/index.js';
12
10
  export * from './controller/types.js';
13
11
  export * as actionTypes from './actionTypes.js';
14
12
  export * from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,UAAU,EACV,EAAE,GACH,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,OAAO,IAAI,cAAc,EACzB,UAAU,GACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,OAAO,IAAI,aAAa,EACxB,YAAY,GACb,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EACV,kBAAkB,EAClB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEjF,cAAc,uBAAuB,CAAC;AACtC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAEhD,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,UAAU,EACV,EAAE,GACH,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,OAAO,IAAI,cAAc,EACzB,UAAU,GACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,OAAO,IAAI,aAAa,EACxB,YAAY,GACb,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EACV,kBAAkB,EAClB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAC;AAEzD,cAAc,uBAAuB,CAAC;AACtC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAEhD,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC"}
package/lib/index.js CHANGED
@@ -8,13 +8,12 @@ export { default as NetworkManager, ResetError } from './manager/NetworkManager.
8
8
  export { default as createReducer, initialState } from './state/reducer/createReducer.js';
9
9
  export { default as applyManager } from './manager/applyManager.js';
10
10
  export { default as Controller } from './controller/Controller.js';
11
- export { default as createFetch } from './controller/createFetch.js';
12
- export { default as createSet } from './controller/createSet.js';
13
- export { default as createSetResponse } from './controller/createSetResponse.js';
11
+ import * as _actions from './controller/actions/index.js';
12
+ export { _actions as actions };
14
13
  export * from './controller/types.js';
15
14
  import * as _actionTypes from './actionTypes.js';
16
15
  export { _actionTypes as actionTypes };
17
16
  /* istanbul ignore next */
18
17
  export * from './types.js';
19
18
  export * from './manager/index.js';
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9JTlRFUk5BTF9fIiwiX19JTlRFUk5BTF9fIiwiRXhwaXJ5U3RhdHVzIiwiZGVmYXVsdCIsIk5ldHdvcmtNYW5hZ2VyIiwiUmVzZXRFcnJvciIsImNyZWF0ZVJlZHVjZXIiLCJpbml0aWFsU3RhdGUiLCJhcHBseU1hbmFnZXIiLCJDb250cm9sbGVyIiwiY3JlYXRlRmV0Y2giLCJjcmVhdGVTZXQiLCJjcmVhdGVTZXRSZXNwb25zZSIsIl9hY3Rpb25UeXBlcyIsImFjdGlvblR5cGVzIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIk9iamVjdC5oYXNPd24gPVxuICBPYmplY3QuaGFzT3duIHx8XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIGZ1bmN0aW9uIGhhc093bihpdCwga2V5KSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcbiAgfTtcblxuZXhwb3J0ICogYXMgX19JTlRFUk5BTF9fIGZyb20gJy4vaW50ZXJuYWwuanMnO1xuZXhwb3J0IHR5cGUge1xuICBOZXR3b3JrRXJyb3IsXG4gIFVua25vd25FcnJvcixcbiAgRXJyb3JUeXBlcyxcbiAgU2NoZW1hLFxuICBFbmRwb2ludEludGVyZmFjZSxcbiAgRW50aXR5SW50ZXJmYWNlLFxuICBSZXNvbHZlVHlwZSxcbiAgRGVub3JtYWxpemVOdWxsYWJsZSxcbiAgRGVub3JtYWxpemUsXG4gIE5vcm1hbGl6ZSxcbiAgTm9ybWFsaXplTnVsbGFibGUsXG4gIEZldGNoRnVuY3Rpb24sXG4gIEVuZHBvaW50RXh0cmFPcHRpb25zLFxuICBRdWVyeWFibGUsXG4gIFNjaGVtYUFyZ3MsXG4gIE5JLFxufSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcbmV4cG9ydCB7IEV4cGlyeVN0YXR1cyB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBOZXR3b3JrTWFuYWdlcixcbiAgUmVzZXRFcnJvcixcbn0gZnJvbSAnLi9tYW5hZ2VyL05ldHdvcmtNYW5hZ2VyLmpzJztcbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgY3JlYXRlUmVkdWNlcixcbiAgaW5pdGlhbFN0YXRlLFxufSBmcm9tICcuL3N0YXRlL3JlZHVjZXIvY3JlYXRlUmVkdWNlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGFwcGx5TWFuYWdlciB9IGZyb20gJy4vbWFuYWdlci9hcHBseU1hbmFnZXIuanMnO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbnRyb2xsZXIgfSBmcm9tICcuL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIERhdGFDbGllbnREaXNwYXRjaCxcbiAgR2VuZXJpY0Rpc3BhdGNoLFxufSBmcm9tICcuL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNyZWF0ZUZldGNoIH0gZnJvbSAnLi9jb250cm9sbGVyL2NyZWF0ZUZldGNoLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY3JlYXRlU2V0IH0gZnJvbSAnLi9jb250cm9sbGVyL2NyZWF0ZVNldC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNyZWF0ZVNldFJlc3BvbnNlIH0gZnJvbSAnLi9jb250cm9sbGVyL2NyZWF0ZVNldFJlc3BvbnNlLmpzJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9sbGVyL3R5cGVzLmpzJztcbmV4cG9ydCAqIGFzIGFjdGlvblR5cGVzIGZyb20gJy4vYWN0aW9uVHlwZXMuanMnO1xuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9tYW5hZ2VyL2luZGV4LmpzJztcbiJdLCJtYXBwaW5ncyI6IkFBQUFBLE1BQU0sQ0FBQ0MsTUFBTSxHQUNYRCxNQUFNLENBQUNDLE1BQU0sSUFDYiwwQkFBMkIsU0FBU0EsTUFBTUEsQ0FBQ0MsRUFBRSxFQUFFQyxHQUFHLEVBQUU7RUFDbEQsT0FBT0gsTUFBTSxDQUFDSSxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDSixFQUFFLEVBQUVDLEdBQUcsQ0FBQztBQUN0RCxDQUFDO0FBQUMsWUFBQUksV0FBQSxNQUUwQixlQUFlO0FBQUEsU0FBQUEsV0FBQSxJQUFqQ0MsWUFBWTtBQW1CeEIsU0FBU0MsWUFBWSxRQUFRLHdCQUF3QjtBQUNyRCxTQUNFQyxPQUFPLElBQUlDLGNBQWMsRUFDekJDLFVBQVUsUUFDTCw2QkFBNkI7QUFDcEMsU0FDRUYsT0FBTyxJQUFJRyxhQUFhLEVBQ3hCQyxZQUFZLFFBQ1Asa0NBQWtDO0FBQ3pDLFNBQVNKLE9BQU8sSUFBSUssWUFBWSxRQUFRLDJCQUEyQjtBQUVuRSxTQUFTTCxPQUFPLElBQUlNLFVBQVUsUUFBUSw0QkFBNEI7QUFLbEUsU0FBU04sT0FBTyxJQUFJTyxXQUFXLFFBQVEsNkJBQTZCO0FBQ3BFLFNBQVNQLE9BQU8sSUFBSVEsU0FBUyxRQUFRLDJCQUEyQjtBQUNoRSxTQUFTUixPQUFPLElBQUlTLGlCQUFpQixRQUFRLG1DQUFtQztBQUVoRixjQUFjLHVCQUF1QjtBQUFDLFlBQUFDLFlBQUEsTUFDVCxrQkFBa0I7QUFBQSxTQUFBQSxZQUFBLElBQW5DQyxXQUFXO0FBQ3ZCO0FBQ0EsY0FBYyxZQUFZO0FBQzFCLGNBQWMsb0JBQW9CIiwiaWdub3JlTGlzdCI6W119
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9JTlRFUk5BTF9fIiwiX19JTlRFUk5BTF9fIiwiRXhwaXJ5U3RhdHVzIiwiZGVmYXVsdCIsIk5ldHdvcmtNYW5hZ2VyIiwiUmVzZXRFcnJvciIsImNyZWF0ZVJlZHVjZXIiLCJpbml0aWFsU3RhdGUiLCJhcHBseU1hbmFnZXIiLCJDb250cm9sbGVyIiwiX2FjdGlvbnMiLCJhY3Rpb25zIiwiX2FjdGlvblR5cGVzIiwiYWN0aW9uVHlwZXMiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiT2JqZWN0Lmhhc093biA9XG4gIE9iamVjdC5oYXNPd24gfHxcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuICB9O1xuXG5leHBvcnQgKiBhcyBfX0lOVEVSTkFMX18gZnJvbSAnLi9pbnRlcm5hbC5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIE5ldHdvcmtFcnJvcixcbiAgVW5rbm93bkVycm9yLFxuICBFcnJvclR5cGVzLFxuICBTY2hlbWEsXG4gIEVuZHBvaW50SW50ZXJmYWNlLFxuICBFbnRpdHlJbnRlcmZhY2UsXG4gIFJlc29sdmVUeXBlLFxuICBEZW5vcm1hbGl6ZU51bGxhYmxlLFxuICBEZW5vcm1hbGl6ZSxcbiAgTm9ybWFsaXplLFxuICBOb3JtYWxpemVOdWxsYWJsZSxcbiAgRmV0Y2hGdW5jdGlvbixcbiAgRW5kcG9pbnRFeHRyYU9wdGlvbnMsXG4gIFF1ZXJ5YWJsZSxcbiAgU2NoZW1hQXJncyxcbiAgTkksXG59IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuZXhwb3J0IHsgRXhwaXJ5U3RhdHVzIH0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5leHBvcnQge1xuICBkZWZhdWx0IGFzIE5ldHdvcmtNYW5hZ2VyLFxuICBSZXNldEVycm9yLFxufSBmcm9tICcuL21hbmFnZXIvTmV0d29ya01hbmFnZXIuanMnO1xuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyBjcmVhdGVSZWR1Y2VyLFxuICBpbml0aWFsU3RhdGUsXG59IGZyb20gJy4vc3RhdGUvcmVkdWNlci9jcmVhdGVSZWR1Y2VyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYXBwbHlNYW5hZ2VyIH0gZnJvbSAnLi9tYW5hZ2VyL2FwcGx5TWFuYWdlci5qcyc7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udHJvbGxlciB9IGZyb20gJy4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgRGF0YUNsaWVudERpc3BhdGNoLFxuICBHZW5lcmljRGlzcGF0Y2gsXG59IGZyb20gJy4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmV4cG9ydCAqIGFzIGFjdGlvbnMgZnJvbSAnLi9jb250cm9sbGVyL2FjdGlvbnMvaW5kZXguanMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xsZXIvdHlwZXMuanMnO1xuZXhwb3J0ICogYXMgYWN0aW9uVHlwZXMgZnJvbSAnLi9hY3Rpb25UeXBlcy5qcyc7XG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL21hbmFnZXIvaW5kZXguanMnO1xuIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxNQUFNLEdBQ1hELE1BQU0sQ0FBQ0MsTUFBTSxJQUNiLDBCQUEyQixTQUFTQSxNQUFNQSxDQUFDQyxFQUFFLEVBQUVDLEdBQUcsRUFBRTtFQUNsRCxPQUFPSCxNQUFNLENBQUNJLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNKLEVBQUUsRUFBRUMsR0FBRyxDQUFDO0FBQ3RELENBQUM7QUFBQyxZQUFBSSxXQUFBLE1BRTBCLGVBQWU7QUFBQSxTQUFBQSxXQUFBLElBQWpDQyxZQUFZO0FBbUJ4QixTQUFTQyxZQUFZLFFBQVEsd0JBQXdCO0FBQ3JELFNBQ0VDLE9BQU8sSUFBSUMsY0FBYyxFQUN6QkMsVUFBVSxRQUNMLDZCQUE2QjtBQUNwQyxTQUNFRixPQUFPLElBQUlHLGFBQWEsRUFDeEJDLFlBQVksUUFDUCxrQ0FBa0M7QUFDekMsU0FBU0osT0FBTyxJQUFJSyxZQUFZLFFBQVEsMkJBQTJCO0FBRW5FLFNBQVNMLE9BQU8sSUFBSU0sVUFBVSxRQUFRLDRCQUE0QjtBQUFDLFlBQUFDLFFBQUEsTUFLMUMsK0JBQStCO0FBQUEsU0FBQUEsUUFBQSxJQUE1Q0MsT0FBTztBQUVuQixjQUFjLHVCQUF1QjtBQUFDLFlBQUFDLFlBQUEsTUFDVCxrQkFBa0I7QUFBQSxTQUFBQSxZQUFBLElBQW5DQyxXQUFXO0FBQ3ZCO0FBQ0EsY0FBYyxZQUFZO0FBQzFCLGNBQWMsb0JBQW9CIiwiaWdub3JlTGlzdCI6W119
@@ -12,7 +12,7 @@ export default class LogoutManager {
12
12
  if (shouldLogout) this.shouldLogout = shouldLogout;
13
13
  this.middleware = controller => next => async action => {
14
14
  await next(action);
15
- if (action.type === SET_RESPONSE_TYPE && action.error && this.shouldLogout(action.payload)) {
15
+ if (action.type === SET_RESPONSE_TYPE && action.error && this.shouldLogout(action.response)) {
16
16
  this.handleLogout(controller);
17
17
  }
18
18
  };
@@ -31,4 +31,4 @@ export default class LogoutManager {
31
31
  }
32
32
 
33
33
  // this further restricts the types to be future compatible
34
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfUkVTUE9OU0VfVFlQRSIsIkxvZ291dE1hbmFnZXIiLCJjb25zdHJ1Y3RvciIsImhhbmRsZUxvZ291dCIsInNob3VsZExvZ291dCIsIm1pZGRsZXdhcmUiLCJjb250cm9sbGVyIiwibmV4dCIsImFjdGlvbiIsInR5cGUiLCJlcnJvciIsInBheWxvYWQiLCJjbGVhbnVwIiwiZ2V0TWlkZGxld2FyZSIsInN0YXR1cyIsInJlc2V0RW50aXJlU3RvcmUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFuYWdlci9Mb2dvdXRNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFVF9SRVNQT05TRV9UWVBFIH0gZnJvbSAnLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB7IFVua25vd25FcnJvciB9IGZyb20gJy4uL2luZGV4LmpzJztcbmltcG9ydCB7IEFjdGlvblR5cGVzLCBNYW5hZ2VyIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKiogSGFuZGxpbmcgbmV0d29yayB1bmF1dGhvcml6ZWQgaW5kaWNhdG9ycyBsaWtlIEhUVFAgNDAxXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvTG9nb3V0TWFuYWdlclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2dvdXRNYW5hZ2VyIGltcGxlbWVudHMgTWFuYWdlciB7XG4gIHByb3RlY3RlZCBkZWNsYXJlIG1pZGRsZXdhcmU6IE1pZGRsZXdhcmU7XG5cbiAgY29uc3RydWN0b3IoeyBoYW5kbGVMb2dvdXQsIHNob3VsZExvZ291dCB9OiBQcm9wcyA9IHt9KSB7XG4gICAgaWYgKGhhbmRsZUxvZ291dCkgdGhpcy5oYW5kbGVMb2dvdXQgPSBoYW5kbGVMb2dvdXQ7XG4gICAgaWYgKHNob3VsZExvZ291dCkgdGhpcy5zaG91bGRMb2dvdXQgPSBzaG91bGRMb2dvdXQ7XG4gICAgdGhpcy5taWRkbGV3YXJlID0gY29udHJvbGxlciA9PiBuZXh0ID0+IGFzeW5jIGFjdGlvbiA9PiB7XG4gICAgICBhd2FpdCBuZXh0KGFjdGlvbik7XG4gICAgICBpZiAoXG4gICAgICAgIGFjdGlvbi50eXBlID09PSBTRVRfUkVTUE9OU0VfVFlQRSAmJlxuICAgICAgICBhY3Rpb24uZXJyb3IgJiZcbiAgICAgICAgdGhpcy5zaG91bGRMb2dvdXQoYWN0aW9uLnBheWxvYWQpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5oYW5kbGVMb2dvdXQoY29udHJvbGxlcik7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGNsZWFudXAoKSB7fVxuXG4gIGdldE1pZGRsZXdhcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMubWlkZGxld2FyZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzaG91bGRMb2dvdXQoZXJyb3I6IFVua25vd25FcnJvcikge1xuICAgIC8vIDQwMSBpbmRpY2F0ZXMgcmVhdXRob3JpemF0aW9uIGlzIG5lZWRlZFxuICAgIHJldHVybiBlcnJvci5zdGF0dXMgPT09IDQwMTtcbiAgfVxuXG4gIGhhbmRsZUxvZ291dChjb250cm9sbGVyOiBDb250cm9sbGVyPERpc3BhdGNoPikge1xuICAgIGNvbnRyb2xsZXIucmVzZXRFbnRpcmVTdG9yZSgpO1xuICB9XG59XG5cbnR5cGUgRGlzcGF0Y2ggPSAodmFsdWU6IEFjdGlvblR5cGVzKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4vLyB0aGlzIGZ1cnRoZXIgcmVzdHJpY3RzIHRoZSB0eXBlcyB0byBiZSBmdXR1cmUgY29tcGF0aWJsZVxuZXhwb3J0IHR5cGUgTWlkZGxld2FyZSA9IDxDIGV4dGVuZHMgQ29udHJvbGxlcjxEaXNwYXRjaD4+KFxuICBjb250cm9sbGVyOiBDLFxuKSA9PiAobmV4dDogQ1snZGlzcGF0Y2gnXSkgPT4gQ1snZGlzcGF0Y2gnXTtcblxudHlwZSBIYW5kbGVMb2dvdXQgPSAoY29udHJvbGxlcjogQ29udHJvbGxlcjxEaXNwYXRjaD4pID0+IHZvaWQ7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGhhbmRsZUxvZ291dD86IEhhbmRsZUxvZ291dDtcbiAgc2hvdWxkTG9nb3V0PzogKGVycm9yOiBVbmtub3duRXJyb3IpID0+IGJvb2xlYW47XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGlCQUFpQixRQUFRLG1CQUFtQjtBQUtyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsTUFBTUMsYUFBYSxDQUFvQjtFQUdwREMsV0FBV0EsQ0FBQztJQUFFQyxZQUFZO0lBQUVDO0VBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUN0RCxJQUFJRCxZQUFZLEVBQUUsSUFBSSxDQUFDQSxZQUFZLEdBQUdBLFlBQVk7SUFDbEQsSUFBSUMsWUFBWSxFQUFFLElBQUksQ0FBQ0EsWUFBWSxHQUFHQSxZQUFZO0lBQ2xELElBQUksQ0FBQ0MsVUFBVSxHQUFHQyxVQUFVLElBQUlDLElBQUksSUFBSSxNQUFNQyxNQUFNLElBQUk7TUFDdEQsTUFBTUQsSUFBSSxDQUFDQyxNQUFNLENBQUM7TUFDbEIsSUFDRUEsTUFBTSxDQUFDQyxJQUFJLEtBQUtULGlCQUFpQixJQUNqQ1EsTUFBTSxDQUFDRSxLQUFLLElBQ1osSUFBSSxDQUFDTixZQUFZLENBQUNJLE1BQU0sQ0FBQ0csT0FBTyxDQUFDLEVBQ2pDO1FBQ0EsSUFBSSxDQUFDUixZQUFZLENBQUNHLFVBQVUsQ0FBQztNQUMvQjtJQUNGLENBQUM7RUFDSDtFQUVBTSxPQUFPQSxDQUFBLEVBQUcsQ0FBQztFQUVYQyxhQUFhQSxDQUFBLEVBQUc7SUFDZCxPQUFPLElBQUksQ0FBQ1IsVUFBVTtFQUN4QjtFQUVVRCxZQUFZQSxDQUFDTSxLQUFtQixFQUFFO0lBQzFDO0lBQ0EsT0FBT0EsS0FBSyxDQUFDSSxNQUFNLEtBQUssR0FBRztFQUM3QjtFQUVBWCxZQUFZQSxDQUFDRyxVQUFnQyxFQUFFO0lBQzdDQSxVQUFVLENBQUNTLGdCQUFnQixDQUFDLENBQUM7RUFDL0I7QUFDRjs7QUFJQSIsImlnbm9yZUxpc3QiOltdfQ==
34
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfUkVTUE9OU0VfVFlQRSIsIkxvZ291dE1hbmFnZXIiLCJjb25zdHJ1Y3RvciIsImhhbmRsZUxvZ291dCIsInNob3VsZExvZ291dCIsIm1pZGRsZXdhcmUiLCJjb250cm9sbGVyIiwibmV4dCIsImFjdGlvbiIsInR5cGUiLCJlcnJvciIsInJlc3BvbnNlIiwiY2xlYW51cCIsImdldE1pZGRsZXdhcmUiLCJzdGF0dXMiLCJyZXNldEVudGlyZVN0b3JlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvTG9nb3V0TWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTRVRfUkVTUE9OU0VfVFlQRSB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCBDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgeyBVbmtub3duRXJyb3IgfSBmcm9tICcuLi9pbmRleC5qcyc7XG5pbXBvcnQgeyBBY3Rpb25UeXBlcywgTWFuYWdlciB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuLyoqIEhhbmRsaW5nIG5ldHdvcmsgdW5hdXRob3JpemVkIGluZGljYXRvcnMgbGlrZSBIVFRQIDQwMVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0xvZ291dE1hbmFnZXJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9nb3V0TWFuYWdlciBpbXBsZW1lbnRzIE1hbmFnZXIge1xuICBwcm90ZWN0ZWQgZGVjbGFyZSBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlO1xuXG4gIGNvbnN0cnVjdG9yKHsgaGFuZGxlTG9nb3V0LCBzaG91bGRMb2dvdXQgfTogUHJvcHMgPSB7fSkge1xuICAgIGlmIChoYW5kbGVMb2dvdXQpIHRoaXMuaGFuZGxlTG9nb3V0ID0gaGFuZGxlTG9nb3V0O1xuICAgIGlmIChzaG91bGRMb2dvdXQpIHRoaXMuc2hvdWxkTG9nb3V0ID0gc2hvdWxkTG9nb3V0O1xuICAgIHRoaXMubWlkZGxld2FyZSA9IGNvbnRyb2xsZXIgPT4gbmV4dCA9PiBhc3luYyBhY3Rpb24gPT4ge1xuICAgICAgYXdhaXQgbmV4dChhY3Rpb24pO1xuICAgICAgaWYgKFxuICAgICAgICBhY3Rpb24udHlwZSA9PT0gU0VUX1JFU1BPTlNFX1RZUEUgJiZcbiAgICAgICAgYWN0aW9uLmVycm9yICYmXG4gICAgICAgIHRoaXMuc2hvdWxkTG9nb3V0KGFjdGlvbi5yZXNwb25zZSlcbiAgICAgICkge1xuICAgICAgICB0aGlzLmhhbmRsZUxvZ291dChjb250cm9sbGVyKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgY2xlYW51cCgpIHt9XG5cbiAgZ2V0TWlkZGxld2FyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5taWRkbGV3YXJlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNob3VsZExvZ291dChlcnJvcjogVW5rbm93bkVycm9yKSB7XG4gICAgLy8gNDAxIGluZGljYXRlcyByZWF1dGhvcml6YXRpb24gaXMgbmVlZGVkXG4gICAgcmV0dXJuIGVycm9yLnN0YXR1cyA9PT0gNDAxO1xuICB9XG5cbiAgaGFuZGxlTG9nb3V0KGNvbnRyb2xsZXI6IENvbnRyb2xsZXI8RGlzcGF0Y2g+KSB7XG4gICAgY29udHJvbGxlci5yZXNldEVudGlyZVN0b3JlKCk7XG4gIH1cbn1cblxudHlwZSBEaXNwYXRjaCA9ICh2YWx1ZTogQWN0aW9uVHlwZXMpID0+IFByb21pc2U8dm9pZD47XG5cbi8vIHRoaXMgZnVydGhlciByZXN0cmljdHMgdGhlIHR5cGVzIHRvIGJlIGZ1dHVyZSBjb21wYXRpYmxlXG5leHBvcnQgdHlwZSBNaWRkbGV3YXJlID0gPEMgZXh0ZW5kcyBDb250cm9sbGVyPERpc3BhdGNoPj4oXG4gIGNvbnRyb2xsZXI6IEMsXG4pID0+IChuZXh0OiBDWydkaXNwYXRjaCddKSA9PiBDWydkaXNwYXRjaCddO1xuXG50eXBlIEhhbmRsZUxvZ291dCA9IChjb250cm9sbGVyOiBDb250cm9sbGVyPERpc3BhdGNoPikgPT4gdm9pZDtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgaGFuZGxlTG9nb3V0PzogSGFuZGxlTG9nb3V0O1xuICBzaG91bGRMb2dvdXQ/OiAoZXJyb3I6IFVua25vd25FcnJvcikgPT4gYm9vbGVhbjtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsaUJBQWlCLFFBQVEsbUJBQW1CO0FBS3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxNQUFNQyxhQUFhLENBQW9CO0VBR3BEQyxXQUFXQSxDQUFDO0lBQUVDLFlBQVk7SUFBRUM7RUFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0lBQ3RELElBQUlELFlBQVksRUFBRSxJQUFJLENBQUNBLFlBQVksR0FBR0EsWUFBWTtJQUNsRCxJQUFJQyxZQUFZLEVBQUUsSUFBSSxDQUFDQSxZQUFZLEdBQUdBLFlBQVk7SUFDbEQsSUFBSSxDQUFDQyxVQUFVLEdBQUdDLFVBQVUsSUFBSUMsSUFBSSxJQUFJLE1BQU1DLE1BQU0sSUFBSTtNQUN0RCxNQUFNRCxJQUFJLENBQUNDLE1BQU0sQ0FBQztNQUNsQixJQUNFQSxNQUFNLENBQUNDLElBQUksS0FBS1QsaUJBQWlCLElBQ2pDUSxNQUFNLENBQUNFLEtBQUssSUFDWixJQUFJLENBQUNOLFlBQVksQ0FBQ0ksTUFBTSxDQUFDRyxRQUFRLENBQUMsRUFDbEM7UUFDQSxJQUFJLENBQUNSLFlBQVksQ0FBQ0csVUFBVSxDQUFDO01BQy9CO0lBQ0YsQ0FBQztFQUNIO0VBRUFNLE9BQU9BLENBQUEsRUFBRyxDQUFDO0VBRVhDLGFBQWFBLENBQUEsRUFBRztJQUNkLE9BQU8sSUFBSSxDQUFDUixVQUFVO0VBQ3hCO0VBRVVELFlBQVlBLENBQUNNLEtBQW1CLEVBQUU7SUFDMUM7SUFDQSxPQUFPQSxLQUFLLENBQUNJLE1BQU0sS0FBSyxHQUFHO0VBQzdCO0VBRUFYLFlBQVlBLENBQUNHLFVBQWdDLEVBQUU7SUFDN0NBLFVBQVUsQ0FBQ1MsZ0JBQWdCLENBQUMsQ0FBQztFQUMvQjtBQUNGOztBQUlBIiwiaWdub3JlTGlzdCI6W119
@@ -49,7 +49,7 @@ export default class NetworkManager implements Manager {
49
49
  * Will then start a promise for a key and potentially start the network
50
50
  * fetch.
51
51
  *
52
- * Uses throttle only when instructed by action meta. This is valuable
52
+ * Uses throttle endpoints without sideEffects. This is valuable
53
53
  * for ensures mutation requests always go through.
54
54
  */
55
55
  protected handleFetch(action: FetchAction): Promise<any>;
@@ -76,7 +76,7 @@ export default class NetworkManager implements Manager {
76
76
  * This ensures promises are resolved only once their data is processed
77
77
  * by the reducer.
78
78
  */
79
- protected throttle(key: string, fetch: () => Promise<any>, createdAt: number): Promise<any>;
79
+ protected throttle(key: string, fetch: () => Promise<any>, fetchedAt: number): Promise<any>;
80
80
  /** Calls the callback when client is not 'busy' with high priority interaction tasks
81
81
  *
82
82
  * Override for platform-specific implementations
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkManager.d.ts","sourceRoot":"","sources":["../../src/manager/NetworkManager.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,6BAA6B,CAAC;AAErD,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,gBAAgB,SAAQ,EAAE,iBAAiB,SAAO;IA8D9D,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,UAAkB,UAAU,EAAE,UAAU,CAAC;IACzC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAoB;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;gBAEjB,gBAAgB,SAAQ,EAAE,iBAAiB,SAAO;IA6D9D,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,6 +1,6 @@
1
1
  import { SET_RESPONSE_TYPE, FETCH_TYPE, RESET_TYPE } from '../actionTypes.js';
2
+ import { createSetResponse } from '../controller/actions/index.js';
2
3
  import Controller from '../controller/Controller.js';
3
- import createSetResponse from '../controller/createSetResponse.js';
4
4
  export class ResetError extends Error {
5
5
  constructor() {
6
6
  super('Aborted due to RESET');
@@ -42,14 +42,14 @@ export default class NetworkManager {
42
42
  case SET_RESPONSE_TYPE:
43
43
  // only set after new state is computed
44
44
  return next(action).then(() => {
45
- if (action.meta.key in this.fetched) {
45
+ if (action.key in this.fetched) {
46
46
  var _controller$getState$;
47
47
  // Note: meta *must* be set by reducer so this should be safe
48
- const error = (_controller$getState$ = controller.getState().meta[action.meta.key]) == null ? void 0 : _controller$getState$.error;
48
+ const error = (_controller$getState$ = controller.getState().meta[action.key]) == null ? void 0 : _controller$getState$.error;
49
49
  // processing errors result in state meta having error, so we should reject the promise
50
50
  if (error) {
51
51
  this.handleSet(createSetResponse(action.endpoint, {
52
- args: action.meta.args,
52
+ args: action.args,
53
53
  response: error,
54
54
  fetchedAt: action.meta.fetchedAt,
55
55
  error: true
@@ -83,7 +83,7 @@ export default class NetworkManager {
83
83
  /** Used by DevtoolsManager to determine whether to log an action */
84
84
  skipLogging(action) {
85
85
  /* istanbul ignore next */
86
- return action.type === FETCH_TYPE && action.meta.key in this.fetched;
86
+ return action.type === FETCH_TYPE && action.key in this.fetched;
87
87
  }
88
88
 
89
89
  /** On mount */
@@ -127,20 +127,18 @@ export default class NetworkManager {
127
127
  * Will then start a promise for a key and potentially start the network
128
128
  * fetch.
129
129
  *
130
- * Uses throttle only when instructed by action meta. This is valuable
130
+ * Uses throttle endpoints without sideEffects. This is valuable
131
131
  * for ensures mutation requests always go through.
132
132
  */
133
133
  handleFetch(action) {
134
- const fetch = action.payload;
135
134
  const {
136
- key,
137
- throttle,
138
135
  resolve,
139
136
  reject,
140
- createdAt
137
+ fetchedAt
141
138
  } = action.meta;
139
+ const throttle = !action.endpoint.sideEffect;
142
140
  const deferedFetch = () => {
143
- let promise = fetch();
141
+ let promise = action.endpoint(...action.args);
144
142
  const resolvePromise = promise => promise.then(data => {
145
143
  resolve(data);
146
144
  return data;
@@ -154,7 +152,7 @@ export default class NetworkManager {
154
152
  if (!throttle) {
155
153
  promise = resolvePromise(promise);
156
154
  }
157
- promise = promise.then(data => {
155
+ promise = promise.then(response => {
158
156
  let lastReset = this.getLastReset();
159
157
 
160
158
  /* istanbul ignore else */
@@ -164,22 +162,22 @@ export default class NetworkManager {
164
162
  }
165
163
 
166
164
  // don't update state with promises started before last clear
167
- if (createdAt >= lastReset) {
165
+ if (fetchedAt >= lastReset) {
168
166
  this.controller.resolve(action.endpoint, {
169
- args: action.meta.args,
170
- response: data,
171
- fetchedAt: createdAt
167
+ args: action.args,
168
+ response,
169
+ fetchedAt
172
170
  });
173
171
  }
174
- return data;
172
+ return response;
175
173
  }).catch(error => {
176
174
  const lastReset = this.getLastReset();
177
175
  // don't update state with promises started before last clear
178
- if (createdAt >= lastReset) {
176
+ if (fetchedAt >= lastReset) {
179
177
  this.controller.resolve(action.endpoint, {
180
- args: action.meta.args,
178
+ args: action.args,
181
179
  response: error,
182
- fetchedAt: createdAt,
180
+ fetchedAt,
183
181
  error: true
184
182
  });
185
183
  }
@@ -188,7 +186,7 @@ export default class NetworkManager {
188
186
  return promise;
189
187
  };
190
188
  if (throttle) {
191
- return this.throttle(key, deferedFetch, createdAt).then(data => resolve(data)).catch(error => reject(error));
189
+ return this.throttle(action.key, deferedFetch, fetchedAt).then(data => resolve(data)).catch(error => reject(error));
192
190
  } else {
193
191
  return deferedFetch().catch(() => {});
194
192
  }
@@ -200,16 +198,16 @@ export default class NetworkManager {
200
198
  */
201
199
  handleSet(action) {
202
200
  // this can still turn out to be untrue since this is async
203
- if (action.meta.key in this.fetched) {
201
+ if (action.key in this.fetched) {
204
202
  let promiseHandler;
205
203
  if (action.error) {
206
- promiseHandler = this.rejectors[action.meta.key];
204
+ promiseHandler = this.rejectors[action.key];
207
205
  } else {
208
- promiseHandler = this.resolvers[action.meta.key];
206
+ promiseHandler = this.resolvers[action.key];
209
207
  }
210
- promiseHandler(action.payload);
208
+ promiseHandler(action.response);
211
209
  // since we're resolved we no longer need to keep track of this promise
212
- this.clear(action.meta.key);
210
+ this.clear(action.key);
213
211
  }
214
212
  }
215
213
 
@@ -234,7 +232,7 @@ export default class NetworkManager {
234
232
  * This ensures promises are resolved only once their data is processed
235
233
  * by the reducer.
236
234
  */
237
- throttle(key, fetch, createdAt) {
235
+ throttle(key, fetch, fetchedAt) {
238
236
  const lastReset = this.getLastReset();
239
237
  // we're already fetching so reuse the promise
240
238
  // fetches after reset do not count
@@ -245,7 +243,7 @@ export default class NetworkManager {
245
243
  this.resolvers[key] = resolve;
246
244
  this.rejectors[key] = reject;
247
245
  });
248
- this.fetchedAt[key] = createdAt;
246
+ this.fetchedAt[key] = fetchedAt;
249
247
  this.idleCallback(() => {
250
248
  // since our real promise is resolved via the wrapReducer(),
251
249
  // we should just stop all errors here.
@@ -265,4 +263,4 @@ export default class NetworkManager {
265
263
  callback();
266
264
  }
267
265
  }
268
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfUkVTUE9OU0VfVFlQRSIsIkZFVENIX1RZUEUiLCJSRVNFVF9UWVBFIiwiQ29udHJvbGxlciIsImNyZWF0ZVNldFJlc3BvbnNlIiwiUmVzZXRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiTmV0d29ya01hbmFnZXIiLCJkYXRhRXhwaXJ5TGVuZ3RoIiwiZXJyb3JFeHBpcnlMZW5ndGgiLCJmZXRjaGVkIiwiT2JqZWN0IiwiY3JlYXRlIiwicmVzb2x2ZXJzIiwicmVqZWN0b3JzIiwiZmV0Y2hlZEF0IiwiY29udHJvbGxlciIsIm1pZGRsZXdhcmUiLCJuZXh0IiwiYWN0aW9uIiwidHlwZSIsImhhbmRsZUZldGNoIiwiZW5kcG9pbnQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJ1bmRlZmluZWQiLCJzaWRlRWZmZWN0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwibWV0YSIsImtleSIsIl9jb250cm9sbGVyJGdldFN0YXRlJCIsImVycm9yIiwiZ2V0U3RhdGUiLCJoYW5kbGVTZXQiLCJhcmdzIiwicmVzcG9uc2UiLCJjbGVhckFsbCIsImsiLCJza2lwTG9nZ2luZyIsImluaXQiLCJjbGVhbnVwRGF0ZSIsImNsZWFudXAiLCJEYXRlIiwibm93IiwiYWxsU2V0dGxlZCIsImZldGNoZXMiLCJ2YWx1ZXMiLCJsZW5ndGgiLCJjbGVhciIsImNhdGNoIiwiZ2V0TGFzdFJlc2V0IiwibGFzdFJlc2V0IiwiZmV0Y2giLCJwYXlsb2FkIiwidGhyb3R0bGUiLCJyZWplY3QiLCJjcmVhdGVkQXQiLCJkZWZlcmVkRmV0Y2giLCJwcm9taXNlIiwicmVzb2x2ZVByb21pc2UiLCJkYXRhIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiaXNOYU4iLCJjb25zb2xlIiwicHJvbWlzZUhhbmRsZXIiLCJnZXRNaWRkbGV3YXJlIiwiaWRsZUNhbGxiYWNrIiwidGltZW91dCIsImNhbGxiYWNrIiwib3B0aW9ucyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2VyL05ldHdvcmtNYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFVF9SRVNQT05TRV9UWVBFLCBGRVRDSF9UWVBFLCBSRVNFVF9UWVBFIH0gZnJvbSAnLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCBjcmVhdGVTZXRSZXNwb25zZSBmcm9tICcuLi9jb250cm9sbGVyL2NyZWF0ZVNldFJlc3BvbnNlLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgRmV0Y2hBY3Rpb24sXG4gIE1hbmFnZXIsXG4gIEFjdGlvblR5cGVzLFxuICBNaWRkbGV3YXJlQVBJLFxuICBNaWRkbGV3YXJlLFxuICBTZXRSZXNwb25zZUFjdGlvbixcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgUmVzZXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgbmFtZSA9ICdSZXNldEVycm9yJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignQWJvcnRlZCBkdWUgdG8gUkVTRVQnKTtcbiAgfVxufVxuXG4vKiogSGFuZGxlcyBhbGwgYXN5bmMgbmV0d29yayBkaXNwYXRjaGVzXG4gKlxuICogRGVkdXBlcyBjb25jdXJyZW50IHJlcXVlc3RzIGJ5IGtlZXBpbmcgdHJhY2sgb2YgYWxsIGZldGNoZXMgaW4gZmxpZ2h0XG4gKiBhbmQgcmV0dXJuaW5nIGV4aXN0aW5nIHByb21pc2VzIGZvciByZXF1ZXN0cyBhbHJlYWR5IGluIGZsaWdodC5cbiAqXG4gKiBJbnRlcmZhY2VzIHdpdGggc3RvcmUgdmlhIGEgcmVkdXgtY29tcGF0aWJsZSBtaWRkbGV3YXJlLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL05ldHdvcmtNYW5hZ2VyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5ldHdvcmtNYW5hZ2VyIGltcGxlbWVudHMgTWFuYWdlciB7XG4gIHByb3RlY3RlZCBmZXRjaGVkOiB7IFtrOiBzdHJpbmddOiBQcm9taXNlPGFueT4gfSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIHByb3RlY3RlZCByZXNvbHZlcnM6IHsgW2s6IHN0cmluZ106ICh2YWx1ZT86IGFueSkgPT4gdm9pZCB9ID0ge307XG4gIHByb3RlY3RlZCByZWplY3RvcnM6IHsgW2s6IHN0cmluZ106ICh2YWx1ZT86IGFueSkgPT4gdm9pZCB9ID0ge307XG4gIHByb3RlY3RlZCBmZXRjaGVkQXQ6IHsgW2s6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gIGRlY2xhcmUgcmVhZG9ubHkgZGF0YUV4cGlyeUxlbmd0aDogbnVtYmVyO1xuICBkZWNsYXJlIHJlYWRvbmx5IGVycm9yRXhwaXJ5TGVuZ3RoOiBudW1iZXI7XG4gIHByb3RlY3RlZCBkZWNsYXJlIG1pZGRsZXdhcmU6IE1pZGRsZXdhcmU7XG4gIHByb3RlY3RlZCBjb250cm9sbGVyOiBDb250cm9sbGVyID0gbmV3IENvbnRyb2xsZXIoKTtcbiAgZGVjbGFyZSBjbGVhbnVwRGF0ZT86IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihkYXRhRXhwaXJ5TGVuZ3RoID0gNjAwMDAsIGVycm9yRXhwaXJ5TGVuZ3RoID0gMTAwMCkge1xuICAgIHRoaXMuZGF0YUV4cGlyeUxlbmd0aCA9IGRhdGFFeHBpcnlMZW5ndGg7XG4gICAgdGhpcy5lcnJvckV4cGlyeUxlbmd0aCA9IGVycm9yRXhwaXJ5TGVuZ3RoO1xuXG4gICAgdGhpcy5taWRkbGV3YXJlID0gPEMgZXh0ZW5kcyBNaWRkbGV3YXJlQVBJPihjb250cm9sbGVyOiBDKSA9PiB7XG4gICAgICB0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuICAgICAgcmV0dXJuIChuZXh0OiBDWydkaXNwYXRjaCddKTogQ1snZGlzcGF0Y2gnXSA9PlxuICAgICAgICAoYWN0aW9uKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICAgICAgY2FzZSBGRVRDSF9UWVBFOlxuICAgICAgICAgICAgICB0aGlzLmhhbmRsZUZldGNoKGFjdGlvbik7XG4gICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG9ubHkgY2FzZSB0aGF0IGNhdXNlcyBhbnkgc3RhdGUgY2hhbmdlXG4gICAgICAgICAgICAgIC8vIEl0J3MgaW1wb3J0YW50IHRvIGludGVyY2VwdCBvdGhlciBmZXRjaGVzIGFzIHdlIGRvbid0IHdhbnQgdG8gdHJpZ2dlciByZWR1Y2VycyBkdXJpbmdcbiAgICAgICAgICAgICAgLy8gcmVuZGVyIC0gc28gd2UgbmVlZCB0byBzdG9wICdyZWFkb25seScgZmV0Y2hlcyB3aGljaCBjYW4gYmUgdHJpZ2dlcmVkIGluIHJlbmRlclxuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgYWN0aW9uLmVuZHBvaW50LmdldE9wdGltaXN0aWNSZXNwb25zZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgYWN0aW9uLmVuZHBvaW50LnNpZGVFZmZlY3RcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICBjYXNlIFNFVF9SRVNQT05TRV9UWVBFOlxuICAgICAgICAgICAgICAvLyBvbmx5IHNldCBhZnRlciBuZXcgc3RhdGUgaXMgY29tcHV0ZWRcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uLm1ldGEua2V5IGluIHRoaXMuZmV0Y2hlZCkge1xuICAgICAgICAgICAgICAgICAgLy8gTm90ZTogbWV0YSAqbXVzdCogYmUgc2V0IGJ5IHJlZHVjZXIgc28gdGhpcyBzaG91bGQgYmUgc2FmZVxuICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPVxuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmdldFN0YXRlKCkubWV0YVthY3Rpb24ubWV0YS5rZXldPy5lcnJvcjtcbiAgICAgICAgICAgICAgICAgIC8vIHByb2Nlc3NpbmcgZXJyb3JzIHJlc3VsdCBpbiBzdGF0ZSBtZXRhIGhhdmluZyBlcnJvciwgc28gd2Ugc2hvdWxkIHJlamVjdCB0aGUgcHJvbWlzZVxuICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU2V0KFxuICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNldFJlc3BvbnNlKGFjdGlvbi5lbmRwb2ludCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogYWN0aW9uLm1ldGEuYXJncyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlOiBlcnJvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoZWRBdDogYWN0aW9uLm1ldGEuZmV0Y2hlZEF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVNldChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYXNlIFJFU0VUX1RZUEU6IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVqZWN0b3JzID0geyAuLi50aGlzLnJlamVjdG9ycyB9O1xuXG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJBbGwoKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyB0aGVyZSBjb3VsZCBiZSBleHRlcm5hbCBsaXN0ZW5lcnMgdG8gdGhlIHByb21pc2VcbiAgICAgICAgICAgICAgICAvLyB0aGlzIG11c3QgaGFwcGVuIGFmdGVyIGNvbW1pdCBzbyBvdXIgb3duIHJlamVjdG9yIGtub3dzIG5vdCB0byBkaXNwYXRjaCBhbiBlcnJvciBiYXNlZCBvbiB0aGlzXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrIGluIHJlamVjdG9ycykge1xuICAgICAgICAgICAgICAgICAgcmVqZWN0b3JzW2tdKG5ldyBSZXNldEVycm9yKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIFVzZWQgYnkgRGV2dG9vbHNNYW5hZ2VyIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIGxvZyBhbiBhY3Rpb24gKi9cbiAgc2tpcExvZ2dpbmcoYWN0aW9uOiBBY3Rpb25UeXBlcykge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIGFjdGlvbi50eXBlID09PSBGRVRDSF9UWVBFICYmIGFjdGlvbi5tZXRhLmtleSBpbiB0aGlzLmZldGNoZWQ7XG4gIH1cblxuICAvKiogT24gbW91bnQgKi9cbiAgaW5pdCgpIHtcbiAgICBkZWxldGUgdGhpcy5jbGVhbnVwRGF0ZTtcbiAgfVxuXG4gIC8qKiBFbnN1cmVzIGFsbCBwcm9taXNlcyBhcmUgY29tcGxldGVkIGJ5IHJlamVjdGluZyByZW1haW5pbmcuICovXG4gIGNsZWFudXAoKSB7XG4gICAgLy8gZW5zdXJlIG5vIGRpc3BhdGNoZXMgYWZ0ZXIgdW5tb3VudFxuICAgIC8vIHRoaXMgbXVzdCBiZSByZXZlcnNpYmxlIChkb25lIGluIGluaXQpIHNvIHVzZUVmZmVjdCgpIHJlbWFpbnMgc3ltbWV0cmljXG4gICAgdGhpcy5jbGVhbnVwRGF0ZSA9IERhdGUubm93KCk7XG4gIH1cblxuICBhbGxTZXR0bGVkKCkge1xuICAgIGNvbnN0IGZldGNoZXMgPSBPYmplY3QudmFsdWVzKHRoaXMuZmV0Y2hlZCk7XG4gICAgaWYgKGZldGNoZXMubGVuZ3RoKSByZXR1cm4gUHJvbWlzZS5hbGxTZXR0bGVkKGZldGNoZXMpO1xuICB9XG5cbiAgLyoqIENsZWFyIGFsbCBwcm9taXNlIHN0YXRlICovXG4gIHByb3RlY3RlZCBjbGVhckFsbCgpIHtcbiAgICBmb3IgKGNvbnN0IGsgaW4gdGhpcy5yZWplY3RvcnMpIHtcbiAgICAgIHRoaXMuY2xlYXIoayk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENsZWFyIHByb21pc2Ugc3RhdGUgZm9yIGEgZ2l2ZW4ga2V5ICovXG4gIHByb3RlY3RlZCBjbGVhcihrZXk6IHN0cmluZykge1xuICAgIHRoaXMuZmV0Y2hlZFtrZXldLmNhdGNoKCgpID0+IHt9KTtcbiAgICBkZWxldGUgdGhpcy5yZXNvbHZlcnNba2V5XTtcbiAgICBkZWxldGUgdGhpcy5yZWplY3RvcnNba2V5XTtcbiAgICBkZWxldGUgdGhpcy5mZXRjaGVkW2tleV07XG4gICAgZGVsZXRlIHRoaXMuZmV0Y2hlZEF0W2tleV07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TGFzdFJlc2V0KCkge1xuICAgIGlmICh0aGlzLmNsZWFudXBEYXRlKSByZXR1cm4gdGhpcy5jbGVhbnVwRGF0ZTtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmdldFN0YXRlKCkubGFzdFJlc2V0O1xuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyAncmRjL2ZldGNoJyBhY3Rpb24uXG4gICAqXG4gICAqIFdpbGwgdGhlbiBzdGFydCBhIHByb21pc2UgZm9yIGEga2V5IGFuZCBwb3RlbnRpYWxseSBzdGFydCB0aGUgbmV0d29ya1xuICAgKiBmZXRjaC5cbiAgICpcbiAgICogVXNlcyB0aHJvdHRsZSBvbmx5IHdoZW4gaW5zdHJ1Y3RlZCBieSBhY3Rpb24gbWV0YS4gVGhpcyBpcyB2YWx1YWJsZVxuICAgKiBmb3IgZW5zdXJlcyBtdXRhdGlvbiByZXF1ZXN0cyBhbHdheXMgZ28gdGhyb3VnaC5cbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVGZXRjaChhY3Rpb246IEZldGNoQWN0aW9uKSB7XG4gICAgY29uc3QgZmV0Y2ggPSBhY3Rpb24ucGF5bG9hZDtcbiAgICBjb25zdCB7IGtleSwgdGhyb3R0bGUsIHJlc29sdmUsIHJlamVjdCwgY3JlYXRlZEF0IH0gPSBhY3Rpb24ubWV0YTtcblxuICAgIGNvbnN0IGRlZmVyZWRGZXRjaCA9ICgpID0+IHtcbiAgICAgIGxldCBwcm9taXNlID0gZmV0Y2goKTtcbiAgICAgIGNvbnN0IHJlc29sdmVQcm9taXNlID0gKFxuICAgICAgICBwcm9taXNlOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IG9iamVjdCB8IG51bGw+LFxuICAgICAgKSA9PlxuICAgICAgICBwcm9taXNlXG4gICAgICAgICAgLnRoZW4oZGF0YSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKGRhdGEpO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgIH0pO1xuICAgICAgLy8gc2NoZWR1bGUgbm9uLXRocm90dGxlZCByZXNvbHV0aW9ucyBpbiBhIG1pY3JvdGFzayBiZWZvcmUgc2V0XG4gICAgICAvLyB0aGlzIGVuYWJsZXMgdXNlcnMgYXdhaXRpbmcgdGhlaXIgZmV0Y2ggdG8gdHJpZ2dlciBhbnkgcmVhY3QgdXBkYXRlcyBuZWVkZWQgdG8gZGVhbFxuICAgICAgLy8gd2l0aCB1cGNvbWluZyBjaGFuZ2VzIGJlY2F1c2Ugb2YgdGhlIGZldGNoIChmb3IgaW5zdGFuY2UgYXZvaWRpbmcgc3VzcGVuc2UgaWYgc29tZXRoaW5nIGlzIGRlbGV0ZWQpXG4gICAgICBpZiAoIXRocm90dGxlKSB7XG4gICAgICAgIHByb21pc2UgPSByZXNvbHZlUHJvbWlzZShwcm9taXNlKTtcbiAgICAgIH1cbiAgICAgIHByb21pc2UgPSBwcm9taXNlXG4gICAgICAgIC50aGVuKGRhdGEgPT4ge1xuICAgICAgICAgIGxldCBsYXN0UmVzZXQgPSB0aGlzLmdldExhc3RSZXNldCgpO1xuXG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBpc05hTihsYXN0UmVzZXQpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAnc3RhdGUubGFzdFJlc2V0IGlzIE5hTi4gT25seSBwb3NpdGl2ZSB0aW1lc3RhbXBzIGFyZSB2YWxpZC4nLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGxhc3RSZXNldCA9IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gZG9uJ3QgdXBkYXRlIHN0YXRlIHdpdGggcHJvbWlzZXMgc3RhcnRlZCBiZWZvcmUgbGFzdCBjbGVhclxuICAgICAgICAgIGlmIChjcmVhdGVkQXQgPj0gbGFzdFJlc2V0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIucmVzb2x2ZShhY3Rpb24uZW5kcG9pbnQsIHtcbiAgICAgICAgICAgICAgYXJnczogYWN0aW9uLm1ldGEuYXJncyxcbiAgICAgICAgICAgICAgcmVzcG9uc2U6IGRhdGEsXG4gICAgICAgICAgICAgIGZldGNoZWRBdDogY3JlYXRlZEF0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnN0IGxhc3RSZXNldCA9IHRoaXMuZ2V0TGFzdFJlc2V0KCk7XG4gICAgICAgICAgLy8gZG9uJ3QgdXBkYXRlIHN0YXRlIHdpdGggcHJvbWlzZXMgc3RhcnRlZCBiZWZvcmUgbGFzdCBjbGVhclxuICAgICAgICAgIGlmIChjcmVhdGVkQXQgPj0gbGFzdFJlc2V0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIucmVzb2x2ZShhY3Rpb24uZW5kcG9pbnQsIHtcbiAgICAgICAgICAgICAgYXJnczogYWN0aW9uLm1ldGEuYXJncyxcbiAgICAgICAgICAgICAgcmVzcG9uc2U6IGVycm9yLFxuICAgICAgICAgICAgICBmZXRjaGVkQXQ6IGNyZWF0ZWRBdCxcbiAgICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfTtcblxuICAgIGlmICh0aHJvdHRsZSkge1xuICAgICAgcmV0dXJuIHRoaXMudGhyb3R0bGUoa2V5LCBkZWZlcmVkRmV0Y2gsIGNyZWF0ZWRBdClcbiAgICAgICAgLnRoZW4oZGF0YSA9PiByZXNvbHZlKGRhdGEpKVxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkZWZlcmVkRmV0Y2goKS5jYXRjaCgoKSA9PiB7fSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyBhIHNldCBhY3Rpb24uXG4gICAqXG4gICAqIFdpbGwgcmVzb2x2ZSB0aGUgcHJvbWlzZSBhc3NvY2lhdGVkIHdpdGggc2V0IGtleS5cbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVTZXQoYWN0aW9uOiBTZXRSZXNwb25zZUFjdGlvbikge1xuICAgIC8vIHRoaXMgY2FuIHN0aWxsIHR1cm4gb3V0IHRvIGJlIHVudHJ1ZSBzaW5jZSB0aGlzIGlzIGFzeW5jXG4gICAgaWYgKGFjdGlvbi5tZXRhLmtleSBpbiB0aGlzLmZldGNoZWQpIHtcbiAgICAgIGxldCBwcm9taXNlSGFuZGxlcjogKHZhbHVlPzogYW55KSA9PiB2b2lkO1xuICAgICAgaWYgKGFjdGlvbi5lcnJvcikge1xuICAgICAgICBwcm9taXNlSGFuZGxlciA9IHRoaXMucmVqZWN0b3JzW2FjdGlvbi5tZXRhLmtleV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9taXNlSGFuZGxlciA9IHRoaXMucmVzb2x2ZXJzW2FjdGlvbi5tZXRhLmtleV07XG4gICAgICB9XG4gICAgICBwcm9taXNlSGFuZGxlcihhY3Rpb24ucGF5bG9hZCk7XG4gICAgICAvLyBzaW5jZSB3ZSdyZSByZXNvbHZlZCB3ZSBubyBsb25nZXIgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoaXMgcHJvbWlzZVxuICAgICAgdGhpcy5jbGVhcihhY3Rpb24ubWV0YS5rZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBdHRhY2hlcyBOZXR3b3JrTWFuYWdlciB0byBzdG9yZVxuICAgKlxuICAgKiBJbnRlcmNlcHRzICdyZGMvZmV0Y2gnIGFjdGlvbnMgdG8gc3RhcnQgcmVxdWVzdHMuXG4gICAqXG4gICAqIFJlc29sdmUvcmVqZWN0cyBhIHJlcXVlc3Qgd2hlbiBtYXRjaGluZyAncmRjL3NldCcgZXZlbnRcbiAgICogaXMgc2Vlbi5cbiAgICovXG4gIGdldE1pZGRsZXdhcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMubWlkZGxld2FyZTtcbiAgfVxuXG4gIC8qKiBFbnN1cmVzIG9ubHkgb25lIHJlcXVlc3QgZm9yIGEgZ2l2ZW4ga2V5IGlzIGluIGZsaWdodCBhdCBhbnkgdGltZVxuICAgKlxuICAgKiBVc2VzIGtleSB0byBlaXRoZXIgcmV0cmlldmUgaW4tZmxpZ2h0IHByb21pc2UsIG9yIGlmIG5vdFxuICAgKiBjcmVhdGUgYSBuZXcgcHJvbWlzZSBhbmQgY2FsbCBmZXRjaC5cbiAgICpcbiAgICogTm90ZTogVGhlIG5ldyBwcm9taXNlIGlzIG5vdCBhY3R1YWxseSB0aWVkIHRvIGZldGNoIGF0IGFsbCxcbiAgICogYnV0IGlzIHJlc29sdmVkIHdoZW4gdGhlIGV4cGVjdGVkICdyZWNpZXZlJyBhY3Rpb24gaXMgcHJvY2Vzc2VkLlxuICAgKiBUaGlzIGVuc3VyZXMgcHJvbWlzZXMgYXJlIHJlc29sdmVkIG9ubHkgb25jZSB0aGVpciBkYXRhIGlzIHByb2Nlc3NlZFxuICAgKiBieSB0aGUgcmVkdWNlci5cbiAgICovXG4gIHByb3RlY3RlZCB0aHJvdHRsZShcbiAgICBrZXk6IHN0cmluZyxcbiAgICBmZXRjaDogKCkgPT4gUHJvbWlzZTxhbnk+LFxuICAgIGNyZWF0ZWRBdDogbnVtYmVyLFxuICApIHtcbiAgICBjb25zdCBsYXN0UmVzZXQgPSB0aGlzLmdldExhc3RSZXNldCgpO1xuICAgIC8vIHdlJ3JlIGFscmVhZHkgZmV0Y2hpbmcgc28gcmV1c2UgdGhlIHByb21pc2VcbiAgICAvLyBmZXRjaGVzIGFmdGVyIHJlc2V0IGRvIG5vdCBjb3VudFxuICAgIGlmIChrZXkgaW4gdGhpcy5mZXRjaGVkICYmIHRoaXMuZmV0Y2hlZEF0W2tleV0gPiBsYXN0UmVzZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLmZldGNoZWRba2V5XTtcbiAgICB9XG5cbiAgICB0aGlzLmZldGNoZWRba2V5XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMucmVzb2x2ZXJzW2tleV0gPSByZXNvbHZlO1xuICAgICAgdGhpcy5yZWplY3RvcnNba2V5XSA9IHJlamVjdDtcbiAgICB9KTtcbiAgICB0aGlzLmZldGNoZWRBdFtrZXldID0gY3JlYXRlZEF0O1xuXG4gICAgdGhpcy5pZGxlQ2FsbGJhY2soXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIHNpbmNlIG91ciByZWFsIHByb21pc2UgaXMgcmVzb2x2ZWQgdmlhIHRoZSB3cmFwUmVkdWNlcigpLFxuICAgICAgICAvLyB3ZSBzaG91bGQganVzdCBzdG9wIGFsbCBlcnJvcnMgaGVyZS5cbiAgICAgICAgLy8gVE9ETzogZGVjb3VwbGUgdGhpcyBmcm9tIHVzZUZldGNoZXIoKSAodGhhdCdzIHdoYXQncyBkaXNwYXRjaGluZyB0aGUgZXJyb3IgdGhlIHJlc29sdmVzIGluIGhlcmUpXG4gICAgICAgIGZldGNoKCkuY2F0Y2goKCkgPT4gbnVsbCk7XG4gICAgICB9LFxuICAgICAgeyB0aW1lb3V0OiA1MDAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hlZFtrZXldO1xuICB9XG5cbiAgLyoqIENhbGxzIHRoZSBjYWxsYmFjayB3aGVuIGNsaWVudCBpcyBub3QgJ2J1c3knIHdpdGggaGlnaCBwcmlvcml0eSBpbnRlcmFjdGlvbiB0YXNrc1xuICAgKlxuICAgKiBPdmVycmlkZSBmb3IgcGxhdGZvcm0tc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZUNhbGxiYWNrKFxuICAgIGNhbGxiYWNrOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQsXG4gICAgb3B0aW9ucz86IElkbGVSZXF1ZXN0T3B0aW9ucyxcbiAgKSB7XG4gICAgY2FsbGJhY2soKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxpQkFBaUIsRUFBRUMsVUFBVSxFQUFFQyxVQUFVLFFBQVEsbUJBQW1CO0FBQzdFLE9BQU9DLFVBQVUsTUFBTSw2QkFBNkI7QUFDcEQsT0FBT0MsaUJBQWlCLE1BQU0sb0NBQW9DO0FBVWxFLE9BQU8sTUFBTUMsVUFBVSxTQUFTQyxLQUFLLENBQUM7RUFHcENDLFdBQVdBLENBQUEsRUFBRztJQUNaLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQztJQUFDLEtBSGhDQyxJQUFJLEdBQUcsWUFBWTtFQUluQjtBQUNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsTUFBTUMsY0FBYyxDQUFvQjtFQVdyREYsV0FBV0EsQ0FBQ0csZ0JBQWdCLEdBQUcsS0FBSyxFQUFFQyxpQkFBaUIsR0FBRyxJQUFJLEVBQUU7SUFBQSxLQVZ0REMsT0FBTyxHQUFrQ0MsTUFBTSxDQUFDQyxN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
266
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfUkVTUE9OU0VfVFlQRSIsIkZFVENIX1RZUEUiLCJSRVNFVF9UWVBFIiwiY3JlYXRlU2V0UmVzcG9uc2UiLCJDb250cm9sbGVyIiwiUmVzZXRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiTmV0d29ya01hbmFnZXIiLCJkYXRhRXhwaXJ5TGVuZ3RoIiwiZXJyb3JFeHBpcnlMZW5ndGgiLCJmZXRjaGVkIiwiT2JqZWN0IiwiY3JlYXRlIiwicmVzb2x2ZXJzIiwicmVqZWN0b3JzIiwiZmV0Y2hlZEF0IiwiY29udHJvbGxlciIsIm1pZGRsZXdhcmUiLCJuZXh0IiwiYWN0aW9uIiwidHlwZSIsImhhbmRsZUZldGNoIiwiZW5kcG9pbnQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJ1bmRlZmluZWQiLCJzaWRlRWZmZWN0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwia2V5IiwiX2NvbnRyb2xsZXIkZ2V0U3RhdGUkIiwiZXJyb3IiLCJnZXRTdGF0ZSIsIm1ldGEiLCJoYW5kbGVTZXQiLCJhcmdzIiwicmVzcG9uc2UiLCJjbGVhckFsbCIsImsiLCJza2lwTG9nZ2luZyIsImluaXQiLCJjbGVhbnVwRGF0ZSIsImNsZWFudXAiLCJEYXRlIiwibm93IiwiYWxsU2V0dGxlZCIsImZldGNoZXMiLCJ2YWx1ZXMiLCJsZW5ndGgiLCJjbGVhciIsImNhdGNoIiwiZ2V0TGFzdFJlc2V0IiwibGFzdFJlc2V0IiwicmVqZWN0IiwidGhyb3R0bGUiLCJkZWZlcmVkRmV0Y2giLCJwcm9taXNlIiwicmVzb2x2ZVByb21pc2UiLCJkYXRhIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiaXNOYU4iLCJjb25zb2xlIiwicHJvbWlzZUhhbmRsZXIiLCJnZXRNaWRkbGV3YXJlIiwiZmV0Y2giLCJpZGxlQ2FsbGJhY2siLCJ0aW1lb3V0IiwiY2FsbGJhY2siLCJvcHRpb25zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvTmV0d29ya01hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU0VUX1JFU1BPTlNFX1RZUEUsIEZFVENIX1RZUEUsIFJFU0VUX1RZUEUgfSBmcm9tICcuLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVTZXRSZXNwb25zZSB9IGZyb20gJy4uL2NvbnRyb2xsZXIvYWN0aW9ucy9pbmRleC5qcyc7XG5pbXBvcnQgQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUge1xuICBGZXRjaEFjdGlvbixcbiAgTWFuYWdlcixcbiAgQWN0aW9uVHlwZXMsXG4gIE1pZGRsZXdhcmVBUEksXG4gIE1pZGRsZXdhcmUsXG4gIFNldFJlc3BvbnNlQWN0aW9uLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBSZXNldEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBuYW1lID0gJ1Jlc2V0RXJyb3InO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdBYm9ydGVkIGR1ZSB0byBSRVNFVCcpO1xuICB9XG59XG5cbi8qKiBIYW5kbGVzIGFsbCBhc3luYyBuZXR3b3JrIGRpc3BhdGNoZXNcbiAqXG4gKiBEZWR1cGVzIGNvbmN1cnJlbnQgcmVxdWVzdHMgYnkga2VlcGluZyB0cmFjayBvZiBhbGwgZmV0Y2hlcyBpbiBmbGlnaHRcbiAqIGFuZCByZXR1cm5pbmcgZXhpc3RpbmcgcHJvbWlzZXMgZm9yIHJlcXVlc3RzIGFscmVhZHkgaW4gZmxpZ2h0LlxuICpcbiAqIEludGVyZmFjZXMgd2l0aCBzdG9yZSB2aWEgYSByZWR1eC1jb21wYXRpYmxlIG1pZGRsZXdhcmUuXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvTmV0d29ya01hbmFnZXJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV0d29ya01hbmFnZXIgaW1wbGVtZW50cyBNYW5hZ2VyIHtcbiAgcHJvdGVjdGVkIGZldGNoZWQ6IHsgW2s6IHN0cmluZ106IFByb21pc2U8YW55PiB9ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgcHJvdGVjdGVkIHJlc29sdmVyczogeyBbazogc3RyaW5nXTogKHZhbHVlPzogYW55KSA9PiB2b2lkIH0gPSB7fTtcbiAgcHJvdGVjdGVkIHJlamVjdG9yczogeyBbazogc3RyaW5nXTogKHZhbHVlPzogYW55KSA9PiB2b2lkIH0gPSB7fTtcbiAgcHJvdGVjdGVkIGZldGNoZWRBdDogeyBbazogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgZGVjbGFyZSByZWFkb25seSBkYXRhRXhwaXJ5TGVuZ3RoOiBudW1iZXI7XG4gIGRlY2xhcmUgcmVhZG9ubHkgZXJyb3JFeHBpcnlMZW5ndGg6IG51bWJlcjtcbiAgcHJvdGVjdGVkIGRlY2xhcmUgbWlkZGxld2FyZTogTWlkZGxld2FyZTtcbiAgcHJvdGVjdGVkIGNvbnRyb2xsZXI6IENvbnRyb2xsZXIgPSBuZXcgQ29udHJvbGxlcigpO1xuICBkZWNsYXJlIGNsZWFudXBEYXRlPzogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGFFeHBpcnlMZW5ndGggPSA2MDAwMCwgZXJyb3JFeHBpcnlMZW5ndGggPSAxMDAwKSB7XG4gICAgdGhpcy5kYXRhRXhwaXJ5TGVuZ3RoID0gZGF0YUV4cGlyeUxlbmd0aDtcbiAgICB0aGlzLmVycm9yRXhwaXJ5TGVuZ3RoID0gZXJyb3JFeHBpcnlMZW5ndGg7XG5cbiAgICB0aGlzLm1pZGRsZXdhcmUgPSA8QyBleHRlbmRzIE1pZGRsZXdhcmVBUEk+KGNvbnRyb2xsZXI6IEMpID0+IHtcbiAgICAgIHRoaXMuY29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG4gICAgICByZXR1cm4gKG5leHQ6IENbJ2Rpc3BhdGNoJ10pOiBDWydkaXNwYXRjaCddID0+XG4gICAgICAgIChhY3Rpb24pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZFVENIX1RZUEU6XG4gICAgICAgICAgICAgIHRoaXMuaGFuZGxlRmV0Y2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgb25seSBjYXNlIHRoYXQgY2F1c2VzIGFueSBzdGF0ZSBjaGFuZ2VcbiAgICAgICAgICAgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gaW50ZXJjZXB0IG90aGVyIGZldGNoZXMgYXMgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIHJlZHVjZXJzIGR1cmluZ1xuICAgICAgICAgICAgICAvLyByZW5kZXIgLSBzbyB3ZSBuZWVkIHRvIHN0b3AgJ3JlYWRvbmx5JyBmZXRjaGVzIHdoaWNoIGNhbiBiZSB0cmlnZ2VyZWQgaW4gcmVuZGVyXG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBhY3Rpb24uZW5kcG9pbnQuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBhY3Rpb24uZW5kcG9pbnQuc2lkZUVmZmVjdFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIGNhc2UgU0VUX1JFU1BPTlNFX1RZUEU6XG4gICAgICAgICAgICAgIC8vIG9ubHkgc2V0IGFmdGVyIG5ldyBzdGF0ZSBpcyBjb21wdXRlZFxuICAgICAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhY3Rpb24ua2V5IGluIHRoaXMuZmV0Y2hlZCkge1xuICAgICAgICAgICAgICAgICAgLy8gTm90ZTogbWV0YSAqbXVzdCogYmUgc2V0IGJ5IHJlZHVjZXIgc28gdGhpcyBzaG91bGQgYmUgc2FmZVxuICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBjb250cm9sbGVyLmdldFN0YXRlKCkubWV0YVthY3Rpb24ua2V5XT8uZXJyb3I7XG4gICAgICAgICAgICAgICAgICAvLyBwcm9jZXNzaW5nIGVycm9ycyByZXN1bHQgaW4gc3RhdGUgbWV0YSBoYXZpbmcgZXJyb3IsIHNvIHdlIHNob3VsZCByZWplY3QgdGhlIHByb21pc2VcbiAgICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVNldChcbiAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTZXRSZXNwb25zZShhY3Rpb24uZW5kcG9pbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IGFjdGlvbi5hcmdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6IGVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hlZEF0OiBhY3Rpb24ubWV0YS5mZXRjaGVkQXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU2V0KGFjdGlvbik7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgUkVTRVRfVFlQRToge1xuICAgICAgICAgICAgICBjb25zdCByZWplY3RvcnMgPSB7IC4uLnRoaXMucmVqZWN0b3JzIH07XG5cbiAgICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xuICAgICAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIHRoZXJlIGNvdWxkIGJlIGV4dGVybmFsIGxpc3RlbmVycyB0byB0aGUgcHJvbWlzZVxuICAgICAgICAgICAgICAgIC8vIHRoaXMgbXVzdCBoYXBwZW4gYWZ0ZXIgY29tbWl0IHNvIG91ciBvd24gcmVqZWN0b3Iga25vd3Mgbm90IHRvIGRpc3BhdGNoIGFuIGVycm9yIGJhc2VkIG9uIHRoaXNcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGsgaW4gcmVqZWN0b3JzKSB7XG4gICAgICAgICAgICAgICAgICByZWplY3RvcnNba10obmV3IFJlc2V0RXJyb3IoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG4gIH1cblxuICAvKiogVXNlZCBieSBEZXZ0b29sc01hbmFnZXIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gbG9nIGFuIGFjdGlvbiAqL1xuICBza2lwTG9nZ2luZyhhY3Rpb246IEFjdGlvblR5cGVzKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gYWN0aW9uLnR5cGUgPT09IEZFVENIX1RZUEUgJiYgYWN0aW9uLmtleSBpbiB0aGlzLmZldGNoZWQ7XG4gIH1cblxuICAvKiogT24gbW91bnQgKi9cbiAgaW5pdCgpIHtcbiAgICBkZWxldGUgdGhpcy5jbGVhbnVwRGF0ZTtcbiAgfVxuXG4gIC8qKiBFbnN1cmVzIGFsbCBwcm9taXNlcyBhcmUgY29tcGxldGVkIGJ5IHJlamVjdGluZyByZW1haW5pbmcuICovXG4gIGNsZWFudXAoKSB7XG4gICAgLy8gZW5zdXJlIG5vIGRpc3BhdGNoZXMgYWZ0ZXIgdW5tb3VudFxuICAgIC8vIHRoaXMgbXVzdCBiZSByZXZlcnNpYmxlIChkb25lIGluIGluaXQpIHNvIHVzZUVmZmVjdCgpIHJlbWFpbnMgc3ltbWV0cmljXG4gICAgdGhpcy5jbGVhbnVwRGF0ZSA9IERhdGUubm93KCk7XG4gIH1cblxuICBhbGxTZXR0bGVkKCkge1xuICAgIGNvbnN0IGZldGNoZXMgPSBPYmplY3QudmFsdWVzKHRoaXMuZmV0Y2hlZCk7XG4gICAgaWYgKGZldGNoZXMubGVuZ3RoKSByZXR1cm4gUHJvbWlzZS5hbGxTZXR0bGVkKGZldGNoZXMpO1xuICB9XG5cbiAgLyoqIENsZWFyIGFsbCBwcm9taXNlIHN0YXRlICovXG4gIHByb3RlY3RlZCBjbGVhckFsbCgpIHtcbiAgICBmb3IgKGNvbnN0IGsgaW4gdGhpcy5yZWplY3RvcnMpIHtcbiAgICAgIHRoaXMuY2xlYXIoayk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENsZWFyIHByb21pc2Ugc3RhdGUgZm9yIGEgZ2l2ZW4ga2V5ICovXG4gIHByb3RlY3RlZCBjbGVhcihrZXk6IHN0cmluZykge1xuICAgIHRoaXMuZmV0Y2hlZFtrZXldLmNhdGNoKCgpID0+IHt9KTtcbiAgICBkZWxldGUgdGhpcy5yZXNvbHZlcnNba2V5XTtcbiAgICBkZWxldGUgdGhpcy5yZWplY3RvcnNba2V5XTtcbiAgICBkZWxldGUgdGhpcy5mZXRjaGVkW2tleV07XG4gICAgZGVsZXRlIHRoaXMuZmV0Y2hlZEF0W2tleV07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TGFzdFJlc2V0KCkge1xuICAgIGlmICh0aGlzLmNsZWFudXBEYXRlKSByZXR1cm4gdGhpcy5jbGVhbnVwRGF0ZTtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmdldFN0YXRlKCkubGFzdFJlc2V0O1xuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyAncmRjL2ZldGNoJyBhY3Rpb24uXG4gICAqXG4gICAqIFdpbGwgdGhlbiBzdGFydCBhIHByb21pc2UgZm9yIGEga2V5IGFuZCBwb3RlbnRpYWxseSBzdGFydCB0aGUgbmV0d29ya1xuICAgKiBmZXRjaC5cbiAgICpcbiAgICogVXNlcyB0aHJvdHRsZSBlbmRwb2ludHMgd2l0aG91dCBzaWRlRWZmZWN0cy4gVGhpcyBpcyB2YWx1YWJsZVxuICAgKiBmb3IgZW5zdXJlcyBtdXRhdGlvbiByZXF1ZXN0cyBhbHdheXMgZ28gdGhyb3VnaC5cbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVGZXRjaChhY3Rpb246IEZldGNoQWN0aW9uKSB7XG4gICAgY29uc3QgeyByZXNvbHZlLCByZWplY3QsIGZldGNoZWRBdCB9ID0gYWN0aW9uLm1ldGE7XG4gICAgY29uc3QgdGhyb3R0bGUgPSAhYWN0aW9uLmVuZHBvaW50LnNpZGVFZmZlY3Q7XG5cbiAgICBjb25zdCBkZWZlcmVkRmV0Y2ggPSAoKSA9PiB7XG4gICAgICBsZXQgcHJvbWlzZSA9IGFjdGlvbi5lbmRwb2ludCguLi5hY3Rpb24uYXJncyk7XG4gICAgICBjb25zdCByZXNvbHZlUHJvbWlzZSA9IChcbiAgICAgICAgcHJvbWlzZTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBvYmplY3QgfCBudWxsPixcbiAgICAgICkgPT5cbiAgICAgICAgcHJvbWlzZVxuICAgICAgICAgIC50aGVuKGRhdGEgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZShkYXRhKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICB9KTtcbiAgICAgIC8vIHNjaGVkdWxlIG5vbi10aHJvdHRsZWQgcmVzb2x1dGlvbnMgaW4gYSBtaWNyb3Rhc2sgYmVmb3JlIHNldFxuICAgICAgLy8gdGhpcyBlbmFibGVzIHVzZXJzIGF3YWl0aW5nIHRoZWlyIGZldGNoIHRvIHRyaWdnZXIgYW55IHJlYWN0IHVwZGF0ZXMgbmVlZGVkIHRvIGRlYWxcbiAgICAgIC8vIHdpdGggdXBjb21pbmcgY2hhbmdlcyBiZWNhdXNlIG9mIHRoZSBmZXRjaCAoZm9yIGluc3RhbmNlIGF2b2lkaW5nIHN1c3BlbnNlIGlmIHNvbWV0aGluZyBpcyBkZWxldGVkKVxuICAgICAgaWYgKCF0aHJvdHRsZSkge1xuICAgICAgICBwcm9taXNlID0gcmVzb2x2ZVByb21pc2UocHJvbWlzZSk7XG4gICAgICB9XG4gICAgICBwcm9taXNlID0gcHJvbWlzZVxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgbGV0IGxhc3RSZXNldCA9IHRoaXMuZ2V0TGFzdFJlc2V0KCk7XG5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzTmFOKGxhc3RSZXNldCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICdzdGF0ZS5sYXN0UmVzZXQgaXMgTmFOLiBPbmx5IHBvc2l0aXZlIHRpbWVzdGFtcHMgYXJlIHZhbGlkLicsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbGFzdFJlc2V0ID0gMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBkb24ndCB1cGRhdGUgc3RhdGUgd2l0aCBwcm9taXNlcyBzdGFydGVkIGJlZm9yZSBsYXN0IGNsZWFyXG4gICAgICAgICAgaWYgKGZldGNoZWRBdCA+PSBsYXN0UmVzZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5yZXNvbHZlKGFjdGlvbi5lbmRwb2ludCwge1xuICAgICAgICAgICAgICBhcmdzOiBhY3Rpb24uYXJncyxcbiAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgIGZldGNoZWRBdCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgY29uc3QgbGFzdFJlc2V0ID0gdGhpcy5nZXRMYXN0UmVzZXQoKTtcbiAgICAgICAgICAvLyBkb24ndCB1cGRhdGUgc3RhdGUgd2l0aCBwcm9taXNlcyBzdGFydGVkIGJlZm9yZSBsYXN0IGNsZWFyXG4gICAgICAgICAgaWYgKGZldGNoZWRBdCA+PSBsYXN0UmVzZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5yZXNvbHZlKGFjdGlvbi5lbmRwb2ludCwge1xuICAgICAgICAgICAgICBhcmdzOiBhY3Rpb24uYXJncyxcbiAgICAgICAgICAgICAgcmVzcG9uc2U6IGVycm9yLFxuICAgICAgICAgICAgICBmZXRjaGVkQXQsXG4gICAgICAgICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH07XG5cbiAgICBpZiAodGhyb3R0bGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnRocm90dGxlKGFjdGlvbi5rZXksIGRlZmVyZWRGZXRjaCwgZmV0Y2hlZEF0KVxuICAgICAgICAudGhlbihkYXRhID0+IHJlc29sdmUoZGF0YSkpXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiByZWplY3QoZXJyb3IpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRlZmVyZWRGZXRjaCgpLmNhdGNoKCgpID0+IHt9KTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gbWlkZGxld2FyZSBpbnRlcmNlcHRzIGEgc2V0IGFjdGlvbi5cbiAgICpcbiAgICogV2lsbCByZXNvbHZlIHRoZSBwcm9taXNlIGFzc29jaWF0ZWQgd2l0aCBzZXQga2V5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVNldChhY3Rpb246IFNldFJlc3BvbnNlQWN0aW9uKSB7XG4gICAgLy8gdGhpcyBjYW4gc3RpbGwgdHVybiBvdXQgdG8gYmUgdW50cnVlIHNpbmNlIHRoaXMgaXMgYXN5bmNcbiAgICBpZiAoYWN0aW9uLmtleSBpbiB0aGlzLmZldGNoZWQpIHtcbiAgICAgIGxldCBwcm9taXNlSGFuZGxlcjogKHZhbHVlPzogYW55KSA9PiB2b2lkO1xuICAgICAgaWYgKGFjdGlvbi5lcnJvcikge1xuICAgICAgICBwcm9taXNlSGFuZGxlciA9IHRoaXMucmVqZWN0b3JzW2FjdGlvbi5rZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvbWlzZUhhbmRsZXIgPSB0aGlzLnJlc29sdmVyc1thY3Rpb24ua2V5XTtcbiAgICAgIH1cbiAgICAgIHByb21pc2VIYW5kbGVyKGFjdGlvbi5yZXNwb25zZSk7XG4gICAgICAvLyBzaW5jZSB3ZSdyZSByZXNvbHZlZCB3ZSBubyBsb25nZXIgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoaXMgcHJvbWlzZVxuICAgICAgdGhpcy5jbGVhcihhY3Rpb24ua2V5KTtcbiAgICB9XG4gIH1cblxuICAvKiogQXR0YWNoZXMgTmV0d29ya01hbmFnZXIgdG8gc3RvcmVcbiAgICpcbiAgICogSW50ZXJjZXB0cyAncmRjL2ZldGNoJyBhY3Rpb25zIHRvIHN0YXJ0IHJlcXVlc3RzLlxuICAgKlxuICAgKiBSZXNvbHZlL3JlamVjdHMgYSByZXF1ZXN0IHdoZW4gbWF0Y2hpbmcgJ3JkYy9zZXQnIGV2ZW50XG4gICAqIGlzIHNlZW4uXG4gICAqL1xuICBnZXRNaWRkbGV3YXJlKCkge1xuICAgIHJldHVybiB0aGlzLm1pZGRsZXdhcmU7XG4gIH1cblxuICAvKiogRW5zdXJlcyBvbmx5IG9uZSByZXF1ZXN0IGZvciBhIGdpdmVuIGtleSBpcyBpbiBmbGlnaHQgYXQgYW55IHRpbWVcbiAgICpcbiAgICogVXNlcyBrZXkgdG8gZWl0aGVyIHJldHJpZXZlIGluLWZsaWdodCBwcm9taXNlLCBvciBpZiBub3RcbiAgICogY3JlYXRlIGEgbmV3IHByb21pc2UgYW5kIGNhbGwgZmV0Y2guXG4gICAqXG4gICAqIE5vdGU6IFRoZSBuZXcgcHJvbWlzZSBpcyBub3QgYWN0dWFsbHkgdGllZCB0byBmZXRjaCBhdCBhbGwsXG4gICAqIGJ1dCBpcyByZXNvbHZlZCB3aGVuIHRoZSBleHBlY3RlZCAncmVjaWV2ZScgYWN0aW9uIGlzIHByb2Nlc3NlZC5cbiAgICogVGhpcyBlbnN1cmVzIHByb21pc2VzIGFyZSByZXNvbHZlZCBvbmx5IG9uY2UgdGhlaXIgZGF0YSBpcyBwcm9jZXNzZWRcbiAgICogYnkgdGhlIHJlZHVjZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgdGhyb3R0bGUoXG4gICAga2V5OiBzdHJpbmcsXG4gICAgZmV0Y2g6ICgpID0+IFByb21pc2U8YW55PixcbiAgICBmZXRjaGVkQXQ6IG51bWJlcixcbiAgKSB7XG4gICAgY29uc3QgbGFzdFJlc2V0ID0gdGhpcy5nZXRMYXN0UmVzZXQoKTtcbiAgICAvLyB3ZSdyZSBhbHJlYWR5IGZldGNoaW5nIHNvIHJldXNlIHRoZSBwcm9taXNlXG4gICAgLy8gZmV0Y2hlcyBhZnRlciByZXNldCBkbyBub3QgY291bnRcbiAgICBpZiAoa2V5IGluIHRoaXMuZmV0Y2hlZCAmJiB0aGlzLmZldGNoZWRBdFtrZXldID4gbGFzdFJlc2V0KSB7XG4gICAgICByZXR1cm4gdGhpcy5mZXRjaGVkW2tleV07XG4gICAgfVxuXG4gICAgdGhpcy5mZXRjaGVkW2tleV0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLnJlc29sdmVyc1trZXldID0gcmVzb2x2ZTtcbiAgICAgIHRoaXMucmVqZWN0b3JzW2tleV0gPSByZWplY3Q7XG4gICAgfSk7XG4gICAgdGhpcy5mZXRjaGVkQXRba2V5XSA9IGZldGNoZWRBdDtcblxuICAgIHRoaXMuaWRsZUNhbGxiYWNrKFxuICAgICAgKCkgPT4ge1xuICAgICAgICAvLyBzaW5jZSBvdXIgcmVhbCBwcm9taXNlIGlzIHJlc29sdmVkIHZpYSB0aGUgd3JhcFJlZHVjZXIoKSxcbiAgICAgICAgLy8gd2Ugc2hvdWxkIGp1c3Qgc3RvcCBhbGwgZXJyb3JzIGhlcmUuXG4gICAgICAgIC8vIFRPRE86IGRlY291cGxlIHRoaXMgZnJvbSB1c2VGZXRjaGVyKCkgKHRoYXQncyB3aGF0J3MgZGlzcGF0Y2hpbmcgdGhlIGVycm9yIHRoZSByZXNvbHZlcyBpbiBoZXJlKVxuICAgICAgICBmZXRjaCgpLmNhdGNoKCgpID0+IG51bGwpO1xuICAgICAgfSxcbiAgICAgIHsgdGltZW91dDogNTAwIH0sXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmZldGNoZWRba2V5XTtcbiAgfVxuXG4gIC8qKiBDYWxscyB0aGUgY2FsbGJhY2sgd2hlbiBjbGllbnQgaXMgbm90ICdidXN5JyB3aXRoIGhpZ2ggcHJpb3JpdHkgaW50ZXJhY3Rpb24gdGFza3NcbiAgICpcbiAgICogT3ZlcnJpZGUgZm9yIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGlkbGVDYWxsYmFjayhcbiAgICBjYWxsYmFjazogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkLFxuICAgIG9wdGlvbnM/OiBJZGxlUmVxdWVzdE9wdGlvbnMsXG4gICkge1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsaUJBQWlCLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxRQUFRLG1CQUFtQjtBQUM3RSxTQUFTQyxpQkFBaUIsUUFBUSxnQ0FBZ0M7QUFDbEUsT0FBT0MsVUFBVSxNQUFNLDZCQUE2QjtBQVVwRCxPQUFPLE1BQU1DLFVBQVUsU0FBU0MsS0FBSyxDQUFDO0VBR3BDQyxXQUFXQSxDQUFBLEVBQUc7SUFDWixLQUFLLENBQUMsc0JBQXNCLENBQUM7SUFBQyxLQUhoQ0MsSUFBSSxHQUFHLFlBQVk7RUFJbkI7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE1BQU1DLGNBQWMsQ0FBb0I7RUFXckRGLFdBQVdBLENBQUNHLGdCQUFnQixHQUFHLEtBQUssRUFBRUMsaUJBQWlCLEdBQUcsSUFBSSxFQUFFO0lBQUEsS0FWdERDLE9BQU8sR0FBa0NDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQztJQUFBLEtBQzVEQyxTQUFTLEdBQTJDLENBQUMsQ0FBQztJQUFBLEtBQ3REQyxTQUFTLEdBQTJDLENBQUMsQ0FBQztJ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LGNBQWMsR0FBRyxJQUFJLENBQUNuRCxTQUFTLENBQUNNLE1BQU0sQ0FBQ1UsR0FBRyxDQUFDO01BQzdDO01BQ0FtQyxjQUFjLENBQUM3QyxNQUFNLENBQUNpQixRQUFRLENBQUM7TUFDL0I7TUFDQSxJQUFJLENBQUNhLEtBQUssQ0FBQzlCLE1BQU0sQ0FBQ1UsR0FBRyxDQUFDO0lBQ3hCO0VBQ0Y7O0VBRUE7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRW9DLGFBQWFBLENBQUEsRUFBRztJQUNkLE9BQU8sSUFBSSxDQUFDaEQsVUFBVTtFQUN4Qjs7RUFFQTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNZcUMsUUFBUUEsQ0FDaEJ6QixHQUFXLEVBQ1hxQyxLQUF5QixFQUN6Qm5ELFNBQWlCLEVBQ2pCO0lBQ0EsTUFBTXFDLFNBQVMsR0FBRyxJQUFJLENBQUNELFlBQVksQ0FBQyxDQUFDO0lBQ3JDO0lBQ0E7SUFDQSxJQUFJdEIsR0FBRyxJQUFJLElBQUksQ0FBQ25CLE9BQU8sSUFBSSxJQUFJLENBQUNLLFNBQVMsQ0FBQ2MsR0FBRyxDQUFDLEdBQUd1QixTQUFTLEVBQUU7TUFDMUQsT0FBTyxJQUFJLENBQUMxQyxPQUFPLENBQUNtQixHQUFHLENBQUM7SUFDMUI7SUFFQSxJQUFJLENBQUNuQixPQUFPLENBQUNtQixHQUFHLENBQUMsR0FBRyxJQUFJSCxPQUFPLENBQUMsQ0FBQ0MsT0FBTyxFQUFFMEIsTUFBTSxLQUFLO01BQ25ELElBQUksQ0FBQ3hDLFNBQVMsQ0FBQ2dCLEdBQUcsQ0FBQyxHQUFHRixPQUFPO01BQzdCLElBQUksQ0FBQ2IsU0FBUyxDQUFDZSxHQUFHLENBQUMsR0FBR3dCLE1BQU07SUFDOUIsQ0FBQyxDQUFDO0lBQ0YsSUFBSSxDQUFDdEMsU0FBUyxDQUFDYyxHQUFHLENBQUMsR0FBR2QsU0FBUztJQUUvQixJQUFJLENBQUNvRCxZQUFZLENBQ2YsTUFBTTtNQUNKO01BQ0E7TUFDQTtNQUNBRCxLQUFLLENBQUMsQ0FBQyxDQUFDaEIsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDO0lBQzNCLENBQUMsRUFDRDtNQUFFa0IsT0FBTyxFQUFFO0lBQUksQ0FDakIsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDMUQsT0FBTyxDQUFDbUIsR0FBRyxDQUFDO0VBQzFCOztFQUVBO0FBQ0Y7QUFDQTtBQUNBO0VBQ1lzQyxZQUFZQSxDQUNwQkUsUUFBa0MsRUFDbENDLE9BQTRCLEVBQzVCO0lBQ0FELFFBQVEsQ0FBQyxDQUFDO0VBQ1o7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -33,8 +33,8 @@ export default class PollingSubscription {
33
33
  if (action.endpoint.pollFrequency === undefined) throw new Error('frequency needed for polling subscription');
34
34
  this.endpoint = action.endpoint;
35
35
  this.frequency = action.endpoint.pollFrequency;
36
- this.args = action.meta.args;
37
- this.key = action.meta.key;
36
+ this.args = action.args;
37
+ this.key = action.key;
38
38
  this.frequencyHistogram.set(this.frequency, 1);
39
39
  this.controller = controller;
40
40
  this.connectionListener = connectionListener || new DefaultConnectionListener();
@@ -147,4 +147,4 @@ export default class PollingSubscription {
147
147
  return (_this$controller$getS = (_this$controller$getS2 = this.controller.getState().meta[this.key]) == null ? void 0 : _this$controller$getS2.date) != null ? _this$controller$getS : 0;
148
148
  }
149
149
  }
150
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZWZhdWx0Q29ubmVjdGlvbkxpc3RlbmVyIiwiUG9sbGluZ1N1YnNjcmlwdGlvbiIsImNvbnN0cnVjdG9yIiwiYWN0aW9uIiwiY29udHJvbGxlciIsImNvbm5lY3Rpb25MaXN0ZW5lciIsImZyZXF1ZW5jeUhpc3RvZ3JhbSIsIk1hcCIsIm9mZmxpbmVMaXN0ZW5lciIsImNsZWFudXAiLCJhZGRPbmxpbmVMaXN0ZW5lciIsIm9ubGluZUxpc3RlbmVyIiwicmVtb3ZlT25saW5lTGlzdGVuZXIiLCJub3ciLCJEYXRlIiwic3RhcnRJZCIsInNldFRpbWVvdXQiLCJ1cGRhdGUiLCJydW4iLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zb2xlIiwid2FybiIsImtleSIsIk1hdGgiLCJtYXgiLCJsYXN0RmV0Y2hUaW1lIiwiZnJlcXVlbmN5IiwiYWRkT2ZmbGluZUxpc3RlbmVyIiwiZW5kcG9pbnQiLCJwb2xsRnJlcXVlbmN5IiwidW5kZWZpbmVkIiwiRXJyb3IiLCJhcmdzIiwibWV0YSIsInNldCIsImlzT25saW5lIiwiYWRkIiwiaGFzIiwiZ2V0IiwicmVtb3ZlIiwiZGVsZXRlIiwic2l6ZSIsIm1pbiIsImtleXMiLCJlcnJvciIsImludGVydmFsSWQiLCJjbGVhckludGVydmFsIiwibGFzdEludGVydmFsSWQiLCJjbGVhclRpbWVvdXQiLCJyZW1vdmVPZmZsaW5lTGlzdGVuZXIiLCJzdXAiLCJjYWxsIiwiT2JqZWN0IiwiYXNzaWduIiwiZGF0YUV4cGlyeUxlbmd0aCIsImVycm9yRXhwaXJ5TGVuZ3RoIiwiZXJyb3JQb2xpY3kiLCJmZXRjaCIsImNhdGNoIiwic2V0SW50ZXJ2YWwiLCJfdGhpcyRjb250cm9sbGVyJGdldFMiLCJfdGhpcyRjb250cm9sbGVyJGdldFMyIiwiZ2V0U3RhdGUiLCJkYXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvUG9sbGluZ1N1YnNjcmlwdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVuZHBvaW50SW50ZXJmYWNlIH0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbmltcG9ydCBDb25uZWN0aW9uTGlzdGVuZXIgZnJvbSAnLi9Db25uZWN0aW9uTGlzdGVuZXIuanMnO1xuaW1wb3J0IERlZmF1bHRDb25uZWN0aW9uTGlzdGVuZXIgZnJvbSAnLi9EZWZhdWx0Q29ubmVjdGlvbkxpc3RlbmVyLmpzJztcbmltcG9ydCB0eXBlIHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAnLi9TdWJzY3JpcHRpb25NYW5hZ2VyLmpzJztcbmltcG9ydCB0eXBlIENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHsgU3Vic2NyaWJlQWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKipcbiAqIFBvbGxpbmdTdWJzY3JpcHRpb24ga2VlcHMgYSBnaXZlbiByZXNvdXJjZSB1cGRhdGVkIGJ5XG4gKiBkaXNwYXRjaGluZyBhIGZldGNoIGF0IGEgcmF0ZSBlcXVhbCB0byB0aGUgbWluaW11bSB1cGRhdGVcbiAqIGludGVydmFsIHJlcXVlc3RlZC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Qb2xsaW5nU3Vic2NyaXB0aW9uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvbGxpbmdTdWJzY3JpcHRpb24gaW1wbGVtZW50cyBTdWJzY3JpcHRpb24ge1xuICBwcm90ZWN0ZWQgZGVjbGFyZSByZWFkb25seSBlbmRwb2ludDogRW5kcG9pbnRJbnRlcmZhY2U7XG4gIHByb3RlY3RlZCBkZWNsYXJlIHJlYWRvbmx5IGFyZ3M6IHJlYWRvbmx5IGFueVtdO1xuICBwcm90ZWN0ZWQgZGVjbGFyZSByZWFkb25seSBrZXk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGRlY2xhcmUgZnJlcXVlbmN5OiBudW1iZXI7XG4gIHByb3RlY3RlZCBmcmVxdWVuY3lIaXN0b2dyYW06IE1hcDxudW1iZXIsIG51bWJlcj4gPSBuZXcgTWFwKCk7XG4gIHByb3RlY3RlZCBkZWNsYXJlIGNvbnRyb2xsZXI6IENvbnRyb2xsZXI7XG4gIHByb3RlY3RlZCBkZWNsYXJlIGludGVydmFsSWQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD47XG4gIHByb3RlY3RlZCBkZWNsYXJlIGxhc3RJbnRlcnZhbElkPzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+O1xuICBwcm90ZWN0ZWQgZGVjbGFyZSBzdGFydElkPzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgZGVjbGFyZSBjb25uZWN0aW9uTGlzdGVuZXI6IENvbm5lY3Rpb25MaXN0ZW5lcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhY3Rpb246IE9taXQ8U3Vic2NyaWJlQWN0aW9uLCAndHlwZSc+LFxuICAgIGNvbnRyb2xsZXI6IENvbnRyb2xsZXIsXG4gICAgY29ubmVjdGlvbkxpc3RlbmVyPzogQ29ubmVjdGlvbkxpc3RlbmVyLFxuICApIHtcbiAgICBpZiAoYWN0aW9uLmVuZHBvaW50LnBvbGxGcmVxdWVuY3kgPT09IHVuZGVmaW5lZClcbiAgICAgIHRocm93IG5ldyBFcnJvcignZnJlcXVlbmN5IG5lZWRlZCBmb3IgcG9sbGluZyBzdWJzY3JpcHRpb24nKTtcbiAgICB0aGlzLmVuZHBvaW50ID0gYWN0aW9uLmVuZHBvaW50O1xuICAgIHRoaXMuZnJlcXVlbmN5ID0gYWN0aW9uLmVuZHBvaW50LnBvbGxGcmVxdWVuY3k7XG4gICAgdGhpcy5hcmdzID0gYWN0aW9uLm1ldGEuYXJncztcbiAgICB0aGlzLmtleSA9IGFjdGlvbi5tZXRhLmtleTtcbiAgICB0aGlzLmZyZXF1ZW5jeUhpc3RvZ3JhbS5zZXQodGhpcy5mcmVxdWVuY3ksIDEpO1xuICAgIHRoaXMuY29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG4gICAgdGhpcy5jb25uZWN0aW9uTGlzdGVuZXIgPVxuICAgICAgY29ubmVjdGlvbkxpc3RlbmVyIHx8IG5ldyBEZWZhdWx0Q29ubmVjdGlvbkxpc3RlbmVyKCk7XG5cbiAgICAvLyBLaWNrc3RhcnQgcnVubmluZyBzaW5jZSB0aGlzIGlzIGluaXRpYWxpemVkIGFmdGVyIHRoZSBvbmxpbmUgbm90aWYgaXMgc2VudFxuICAgIGlmICh0aGlzLmNvbm5lY3Rpb25MaXN0ZW5lci5pc09ubGluZSgpKSB7XG4gICAgICB0aGlzLm9ubGluZUxpc3RlbmVyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub2ZmbGluZUxpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFN1YnNjcmliZSB0byBhIGZyZXF1ZW5jeSAqL1xuICBhZGQoZnJlcXVlbmN5PzogbnVtYmVyKSB7XG4gICAgaWYgKGZyZXF1ZW5jeSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgaWYgKHRoaXMuZnJlcXVlbmN5SGlzdG9ncmFtLmhhcyhmcmVxdWVuY3kpKSB7XG4gICAgICB0aGlzLmZyZXF1ZW5jeUhpc3RvZ3JhbS5zZXQoXG4gICAgICAgIGZyZXF1ZW5jeSxcbiAgICAgICAgKHRoaXMuZnJlcXVlbmN5SGlzdG9ncmFtLmdldChmcmVxdWVuY3kpIGFzIG51bWJlcikgKyAxLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mcmVxdWVuY3lIaXN0b2dyYW0uc2V0KGZyZXF1ZW5jeSwgMSk7XG5cbiAgICAgIC8vIG5ldyBtaW4gc28gcmVzdGFydCBzZXJ2aWNlXG4gICAgICBpZiAoZnJlcXVlbmN5IDwgdGhpcy5mcmVxdWVuY3kpIHtcbiAgICAgICAgdGhpcy5mcmVxdWVuY3kgPSBmcmVxdWVuY3k7XG4gICAgICAgIHRoaXMucnVuKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIFVuc3Vic2NyaWJlIGZyb20gYSBmcmVxdWVuY3kgKi9cbiAgcmVtb3ZlKGZyZXF1ZW5jeT86IG51bWJlcikge1xuICAgIGlmIChmcmVxdWVuY3kgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLmZyZXF1ZW5jeUhpc3RvZ3JhbS5oYXMoZnJlcXVlbmN5KSkge1xuICAgICAgdGhpcy5mcmVxdWVuY3lIaXN0b2dyYW0uc2V0KFxuICAgICAgICBmcmVxdWVuY3ksXG4gICAgICAgICh0aGlzLmZyZXF1ZW5jeUhpc3RvZ3JhbS5nZXQoZnJlcXVlbmN5KSBhcyBudW1iZXIpIC0gMSxcbiAgICAgICk7XG4gICAgICBpZiAoKHRoaXMuZnJlcXVlbmN5SGlzdG9ncmFtLmdldChmcmVxdWVuY3kpIGFzIG51bWJlcikgPCAxKSB7XG4gICAgICAgIHRoaXMuZnJlcXVlbmN5SGlzdG9ncmFtLmRlbGV0ZShmcmVxdWVuY3kpO1xuXG4gICAgICAgIC8vIG5vdGhpbmcgc3Vic2NyaWJlZCB0byB0aGlzIGFueW1vcmUuLi5pdCBpcyBpbnZhbGlkXG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeUhpc3RvZ3JhbS5zaXplID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0aGlzIHdhcyB0aGUgbWluLCBzbyBmaW5kIHRoZSBuZXh0IHNpemVcbiAgICAgICAgaWYgKGZyZXF1ZW5jeSA8PSB0aGlzLmZyZXF1ZW5jeSkge1xuICAgICAgICAgIHRoaXMuZnJlcXVlbmN5ID0gTWF0aC5taW4oLi4udGhpcy5mcmVxdWVuY3lIaXN0b2dyYW0ua2V5cygpKTtcbiAgICAgICAgICB0aGlzLnJ1bigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBlbHNlIGlmIChcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbidcbiAgICApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBNaXNtYXRjaGVkIHJlbW92ZTogJHtmcmVxdWVuY3l9IGlzIG5vdCBzdWJzY3JpYmVkIGZvciAke3RoaXMua2V5fWAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQ2xlYW51cCBtZWFucyBjbGVhcmluZyBvdXQgYmFja2dyb3VuZCBpbnRlcnZhbC4gKi9cbiAgY2xlYW51cCgpIHtcbiAgICBpZiAodGhpcy5pbnRlcnZhbElkKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XG4gICAgICBkZWxldGUgdGhpcy5pbnRlcnZhbElkO1xuICAgIH1cbiAgICBpZiAodGhpcy5sYXN0SW50ZXJ2YWxJZCkge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmxhc3RJbnRlcnZhbElkKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmxhc3RJbnRlcnZhbElkO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdGFydElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5zdGFydElkKTtcbiAgICAgIGRlbGV0ZSB0aGlzLnN0YXJ0SWQ7XG4gICAgfVxuICAgIHRoaXMuY29ubmVjdGlvbkxpc3RlbmVyLnJlbW92ZU9ubGluZUxpc3RlbmVyKHRoaXMub25saW5lTGlzdGVuZXIpO1xuICAgIHRoaXMuY29ubmVjdGlvbkxpc3RlbmVyLnJlbW92ZU9mZmxpbmVMaXN0ZW5lcih0aGlzLm9mZmxpbmVMaXN0ZW5lcik7XG4gIH1cblxuICAvKiogVHJpZ2dlciByZXF1ZXN0IGZvciBsYXRlc3QgcmVzb3VyY2UgKi9cbiAgcHJvdGVjdGVkIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBzdXAgPSB0aGlzLmVuZHBvaW50O1xuICAgIGNvbnN0IGVuZHBvaW50ID0gZnVuY3Rpb24gKHRoaXM6IGFueSwgLi4uYXJnczogYW55W10pIHtcbiAgICAgIHJldHVybiBzdXAuY2FsbCh0aGlzLCAuLi5hcmdzKTtcbiAgICB9O1xuICAgIE9iamVjdC5hc3NpZ24oZW5kcG9pbnQsIHRoaXMuZW5kcG9pbnQpO1xuICAgIGVuZHBvaW50LmRhdGFFeHBpcnlMZW5ndGggPSB0aGlzLmZyZXF1ZW5jeSAvIDI7XG4gICAgZW5kcG9pbnQuZXJyb3JFeHBpcnlMZW5ndGggPSB0aGlzLmZyZXF1ZW5jeSAvIDEwO1xuICAgIGVuZHBvaW50LmVycm9yUG9saWN5ID0gKCkgPT4gJ3NvZnQnIGFzIGNvbnN0O1xuICAgIGVuZHBvaW50LmtleSA9ICgpID0+IHRoaXMua2V5O1xuICAgIC8vIHN0b3AgYW55IGVycm9ycyBoZXJlIGZyb20gYnViYmxpbmdcbiAgICB0aGlzLmNvbnRyb2xsZXIuZmV0Y2goZW5kcG9pbnQsIC4uLnRoaXMuYXJncykuY2F0Y2goKCkgPT4gbnVsbCk7XG4gIH1cblxuICAvKiogV2hhdCBoYXBwZW5zIHdoZW4gYnJvd3NlciBnb2VzIG9mZmxpbmUgKi9cbiAgcHJvdGVjdGVkIG9mZmxpbmVMaXN0ZW5lciA9ICgpID0+IHtcbiAgICAvLyB0aGlzIGNsZWFycyBleGlzdGluZyBsaXN0ZW5lcnMsIHNvIG5vIG5lZWQgdG8gY2xlYXIgb2ZmbGluZSBsaXN0ZW5lclxuICAgIHRoaXMuY2xlYW51cCgpO1xuICAgIHRoaXMuY29ubmVjdGlvbkxpc3RlbmVyLmFkZE9ubGluZUxpc3RlbmVyKHRoaXMub25saW5lTGlzdGVuZXIpO1xuICB9O1xuXG4gIC8qKiBXaGF0IGhhcHBlbnMgd2hlbiBicm93c2VyIGNvbWVzIG9ubGluZSAqL1xuICBwcm90ZWN0ZWQgb25saW5lTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgdGhpcy5jb25uZWN0aW9uTGlzdGVuZXIucmVtb3ZlT25saW5lTGlzdGVuZXIodGhpcy5vbmxpbmVMaXN0ZW5lcik7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICB0aGlzLnN0YXJ0SWQgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zdGFydElkKSB7XG4gICAgICAgICAgZGVsZXRlIHRoaXMuc3RhcnRJZDtcbiAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICAgIHRoaXMucnVuKCk7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBQb2xsIHNldFRpbWVvdXQgZm9yICR7dGhpcy5rZXl9IHN0aWxsIHJ1bm5pbmcsIGJ1dCB0aW1lb3V0SWQgZGVsZXRlZGAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIE1hdGgubWF4KDAsIHRoaXMubGFzdEZldGNoVGltZSgpIC0gbm93ICsgdGhpcy5mcmVxdWVuY3kpLFxuICAgICk7XG4gICAgdGhpcy5jb25uZWN0aW9uTGlzdGVuZXIuYWRkT2ZmbGluZUxpc3RlbmVyKHRoaXMub2ZmbGluZUxpc3RlbmVyKTtcbiAgfTtcblxuICAvKiogUnVuIHBvbGxpbmcgcHJvY2VzcyB3aXRoIGN1cnJlbnQgZnJlcXVlbmN5XG4gICAqXG4gICAqIFdpbGwgY2xlYW4gdXAgb2xkIHBvbGwgaW50ZXJ2YWwgb24gbmV4dCBydW5cbiAgICovXG4gIHByb3RlY3RlZCBydW4oKSB7XG4gICAgaWYgKHRoaXMuc3RhcnRJZCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmludGVydmFsSWQpIHRoaXMubGFzdEludGVydmFsSWQgPSB0aGlzLmludGVydmFsSWQ7XG4gICAgdGhpcy5pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgLy8gc2luY2Ugd2UgZG9uJ3Qga25vdyBob3cgbG9uZyBpbnRvIHRoZSBsYXN0IHBvbGwgaXQgd2FzIGJlZm9yZSByZXNldHRpbmdcbiAgICAgIC8vIHdlIHdhaXQgdGlsIHRoZSBuZXh0IGZldGNoIHRvIGNsZWFyIG9sZCBpbnRlcnZhbHNcbiAgICAgIGlmICh0aGlzLmxhc3RJbnRlcnZhbElkKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5sYXN0SW50ZXJ2YWxJZCk7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmxhc3RJbnRlcnZhbElkO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaW50ZXJ2YWxJZCkgdGhpcy51cGRhdGUoKTtcbiAgICAgIGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBQb2xsIGludGVydmFsSWQgZm9yICR7dGhpcy5rZXl9IHN0aWxsIHJ1bm5pbmcsIGJ1dCBpbnRlcnZhbElkIGRlbGV0ZWRgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIHRoaXMuZnJlcXVlbmN5KTtcbiAgfVxuXG4gIC8qKiBMYXN0IGZldGNoIHRpbWUgKi9cbiAgcHJvdGVjdGVkIGxhc3RGZXRjaFRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5nZXRTdGF0ZSgpLm1ldGFbdGhpcy5rZXldPy5kYXRlID8/IDA7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBR0EsT0FBT0EseUJBQXlCLE1BQU0sZ0NBQWdDO0FBS3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxNQUFNQyxtQkFBbUIsQ0FBeUI7RUFZL0RDLFdBQVdBLENBQ1RDLE1BQXFDLEVBQ3JDQyxVQUFzQixFQUN0QkMsa0JBQXVDLEVBQ3ZDO0lBQUEsS0FYUUMsa0JBQWtCLEdBQXdCLElBQUlDLEdBQUcsQ0FBQyxDQUFDO0lBb0g3RDtJQUFBLEtBQ1VDLGVBQWUsR0FBRyxNQUFNO01BQ2hDO01BQ0EsSUFBSSxDQUFDQyxPQUFPLENBQUMsQ0FBQztNQUNkLElBQUksQ0FBQ0osa0JBQWtCLENBQUNLLGlCQUFpQixDQUFDLElBQUksQ0FBQ0MsY0FBYyxDQUFDO0lBQ2hFLENBQUM7SUFFRDtJQUFBLEtBQ1VBLGNBQWMsR0FBRyxNQUFNO01BQy9CLElBQUksQ0FBQ04sa0JBQWtCLENBQUNPLG9CQUFvQixDQUFDLElBQUksQ0FBQ0QsY0FBYyxDQUFDO01BQ2pFLE1BQU1FLEdBQUcsR0FBR0MsSUFBSSxDQUFDRCxHQUFHLENBQUMsQ0FBQztNQUN0QixJQUFJLENBQUNFLE9BQU8sR0FBR0MsVUFBVSxDQUN2QixNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUNELE9BQU8sRUFBRTtVQUNo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
150
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZWZhdWx0Q29ubmVjdGlvbkxpc3RlbmVyIiwiUG9sbGluZ1N1YnNjcmlwdGlvbiIsImNvbnN0cnVjdG9yIiwiYWN0aW9uIiwiY29udHJvbGxlciIsImNvbm5lY3Rpb25MaXN0ZW5lciIsImZyZXF1ZW5jeUhpc3RvZ3JhbSIsIk1hcCIsIm9mZmxpbmVMaXN0ZW5lciIsImNsZWFudXAiLCJhZGRPbmxpbmVMaXN0ZW5lciIsIm9ubGluZUxpc3RlbmVyIiwicmVtb3ZlT25saW5lTGlzdGVuZXIiLCJub3ciLCJEYXRlIiwic3RhcnRJZCIsInNldFRpbWVvdXQiLCJ1cGRhdGUiLCJydW4iLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zb2xlIiwid2FybiIsImtleSIsIk1hdGgiLCJtYXgiLCJsYXN0RmV0Y2hUaW1lIiwiZnJlcXVlbmN5IiwiYWRkT2ZmbGluZUxpc3RlbmVyIiwiZW5kcG9pbnQiLCJwb2xsRnJlcXVlbmN5IiwidW5kZWZpbmVkIiwiRXJyb3IiLCJhcmdzIiwic2V0IiwiaXNPbmxpbmUiLCJhZGQiLCJoYXMiLCJnZXQiLCJyZW1vdmUiLCJkZWxldGUiLCJzaXplIiwibWluIiwia2V5cyIsImVycm9yIiwiaW50ZXJ2YWxJZCIsImNsZWFySW50ZXJ2YWwiLCJsYXN0SW50ZXJ2YWxJZCIsImNsZWFyVGltZW91dCIsInJlbW92ZU9mZmxpbmVMaXN0ZW5lciIsInN1cCIsImNhbGwiLCJPYmplY3QiLCJhc3NpZ24iLCJkYXRhRXhwaXJ5TGVuZ3RoIiwiZXJyb3JFeHBpcnlMZW5ndGgiLCJlcnJvclBvbGljeSIsImZldGNoIiwiY2F0Y2giLCJzZXRJbnRlcnZhbCIsIl90aGlzJGNvbnRyb2xsZXIkZ2V0UyIsIl90aGlzJGNvbnRyb2xsZXIkZ2V0UzIiLCJnZXRTdGF0ZSIsIm1ldGEiLCJkYXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvUG9sbGluZ1N1YnNjcmlwdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVuZHBvaW50SW50ZXJmYWNlIH0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbmltcG9ydCBDb25uZWN0aW9uTGlzdGVuZXIgZnJvbSAnLi9Db25uZWN0aW9uTGlzdGVuZXIuanMnO1xuaW1wb3J0IERlZmF1bHRDb25uZWN0aW9uTGlzdGVuZXIgZnJvbSAnLi9EZWZhdWx0Q29ubmVjdGlvbkxpc3RlbmVyLmpzJztcbmltcG9ydCB0eXBlIHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAnLi9TdWJzY3JpcHRpb25NYW5hZ2VyLmpzJztcbmltcG9ydCB0eXBlIENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHsgU3Vic2NyaWJlQWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKipcbiAqIFBvbGxpbmdTdWJzY3JpcHRpb24ga2VlcHMgYSBnaXZlbiByZXNvdXJjZSB1cGRhdGVkIGJ5XG4gKiBkaXNwYXRjaGluZyBhIGZldGNoIGF0IGEgcmF0ZSBlcXVhbCB0byB0aGUgbWluaW11bSB1cGRhdGVcbiAqIGludGVydmFsIHJlcXVlc3RlZC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Qb2xsaW5nU3Vic2NyaXB0aW9uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvbGxpbmdTdWJzY3JpcHRpb24gaW1wbGVtZW50cyBTdWJzY3JpcHRpb24ge1xuICBwcm90ZWN0ZWQgZGVjbGFyZSByZWFkb25seSBlbmRwb2ludDogRW5kcG9pbnRJbnRlcmZhY2U7XG4gIHByb3RlY3RlZCBkZWNsYXJlIHJlYWRvbmx5IGFyZ3M6IHJlYWRvbmx5IGFueVtdO1xuICBwcm90ZWN0ZWQgZGVjbGFyZSByZWFkb25seSBrZXk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGRlY2xhcmUgZnJlcXVlbmN5OiBudW1iZXI7XG4gIHByb3RlY3RlZCBmcmVxdWVuY3lIaXN0b2dyYW06IE1hcDxudW1iZXIsIG51bWJlcj4gPSBuZXcgTWFwKCk7XG4gIHByb3RlY3RlZCBkZWNsYXJlIGNvbnRyb2xsZXI6IENvbnRyb2xsZXI7XG4gIHByb3RlY3RlZCBkZWNsYXJlIGludGVydmFsSWQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD47XG4gIHByb3RlY3RlZCBkZWNsYXJlIGxhc3RJbnRlcnZhbElkPzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+O1xuICBwcm90ZWN0ZWQgZGVjbGFyZSBzdGFydElkPzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgZGVjbGFyZSBjb25uZWN0aW9uTGlzdGVuZXI6IENvbm5lY3Rpb25MaXN0ZW5lcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhY3Rpb246IE9taXQ8U3Vic2NyaWJlQWN0aW9uLCAndHlwZSc+LFxuICAgIGNvbnRyb2xsZXI6IENvbnRyb2xsZXIsXG4gICAgY29ubmVjdGlvbkxpc3RlbmVyPzogQ29ubmVjdGlvbkxpc3RlbmVyLFxuICApIHtcbiAgICBpZiAoYWN0aW9uLmVuZHBvaW50LnBvbGxGcmVxdWVuY3kgPT09IHVuZGVmaW5lZClcbiAgICAgIHRocm93IG5ldyBFcnJvcignZnJlcXVlbmN5IG5lZWRlZCBmb3IgcG9sbGluZyBzdWJzY3JpcHRpb24nKTtcbiAgICB0aGlzLmVuZHBvaW50ID0gYWN0aW9uLmVuZHBvaW50O1xuICAgIHRoaXMuZnJlcXVlbmN5ID0gYWN0aW9uLmVuZHBvaW50LnBvbGxGcmVxdWVuY3k7XG4gICAgdGhpcy5hcmdzID0gYWN0aW9uLmFyZ3M7XG4gICAgdGhpcy5rZXkgPSBhY3Rpb24ua2V5O1xuICAgIHRoaXMuZnJlcXVlbmN5SGlzdG9ncmFtLnNldCh0aGlzLmZyZXF1ZW5jeSwgMSk7XG4gICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjtcbiAgICB0aGlzLmNvbm5lY3Rpb25MaXN0ZW5lciA9XG4gICAgICBjb25uZWN0aW9uTGlzdGVuZXIgfHwgbmV3IERlZmF1bHRDb25uZWN0aW9uTGlzdGVuZXIoKTtcblxuICAgIC8vIEtpY2tzdGFydCBydW5uaW5nIHNpbmNlIHRoaXMgaXMgaW5pdGlhbGl6ZWQgYWZ0ZXIgdGhlIG9ubGluZSBub3RpZiBpcyBzZW50XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbkxpc3RlbmVyLmlzT25saW5lKCkpIHtcbiAgICAgIHRoaXMub25saW5lTGlzdGVuZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vZmZsaW5lTGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICAvKiogU3Vic2NyaWJlIHRvIGEgZnJlcXVlbmN5ICovXG4gIGFkZChmcmVxdWVuY3k/OiBudW1iZXIpIHtcbiAgICBpZiAoZnJlcXVlbmN5ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICBpZiAodGhpcy5mcmVxdWVuY3lIaXN0b2dyYW0uaGFzKGZyZXF1ZW5jeSkpIHtcbiAgICAgIHRoaXMuZnJlcXVlbmN5SGlzdG9ncmFtLnNldChcbiAgICAgICAgZnJlcXVlbmN5LFxuICAgICAgICAodGhpcy5mcmVxdWVuY3lIaXN0b2dyYW0uZ2V0KGZyZXF1ZW5jeSkgYXMgbnVtYmVyKSArIDEsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZyZXF1ZW5jeUhpc3RvZ3JhbS5zZXQoZnJlcXVlbmN5LCAxKTtcblxuICAgICAgLy8gbmV3IG1pbiBzbyByZXN0YXJ0IHNlcnZpY2VcbiAgICAgIGlmIChmcmVxdWVuY3kgPCB0aGlzLmZyZXF1ZW5jeSkge1xuICAgICAgICB0aGlzLmZyZXF1ZW5jeSA9IGZyZXF1ZW5jeTtcbiAgICAgICAgdGhpcy5ydW4oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogVW5zdWJzY3JpYmUgZnJvbSBhIGZyZXF1ZW5jeSAqL1xuICByZW1vdmUoZnJlcXVlbmN5PzogbnVtYmVyKSB7XG4gICAgaWYgKGZyZXF1ZW5jeSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMuZnJlcXVlbmN5SGlzdG9ncmFtLmhhcyhmcmVxdWVuY3kpKSB7XG4gICAgICB0aGlzLmZyZXF1ZW5jeUhpc3RvZ3JhbS5zZXQoXG4gICAgICAgIGZyZXF1ZW5jeSxcbiAgICAgICAgKHRoaXMuZnJlcXVlbmN5SGlzdG9ncmFtLmdldChmcmVxdWVuY3kpIGFzIG51bWJlcikgLSAxLFxuICAgICAgKTtcbiAgICAgIGlmICgodGhpcy5mcmVxdWVuY3lIaXN0b2dyYW0uZ2V0KGZyZXF1ZW5jeSkgYXMgbnVtYmVyKSA8IDEpIHtcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lIaXN0b2dyYW0uZGVsZXRlKGZyZXF1ZW5jeSk7XG5cbiAgICAgICAgLy8gbm90aGluZyBzdWJzY3JpYmVkIHRvIHRoaXMgYW55bW9yZS4uLml0IGlzIGludmFsaWRcbiAgICAgICAgaWYgKHRoaXMuZnJlcXVlbmN5SGlzdG9ncmFtLnNpemUgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRoaXMgd2FzIHRoZSBtaW4sIHNvIGZpbmQgdGhlIG5leHQgc2l6ZVxuICAgICAgICBpZiAoZnJlcXVlbmN5IDw9IHRoaXMuZnJlcXVlbmN5KSB7XG4gICAgICAgICAgdGhpcy5mcmVxdWVuY3kgPSBNYXRoLm1pbiguLi50aGlzLmZyZXF1ZW5jeUhpc3RvZ3JhbS5rZXlzKCkpO1xuICAgICAgICAgIHRoaXMucnVuKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIGVsc2UgaWYgKFxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJ1xuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYE1pc21hdGNoZWQgcmVtb3ZlOiAke2ZyZXF1ZW5jeX0gaXMgbm90IHN1YnNjcmliZWQgZm9yICR7dGhpcy5rZXl9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBDbGVhbnVwIG1lYW5zIGNsZWFyaW5nIG91dCBiYWNrZ3JvdW5kIGludGVydmFsLiAqL1xuICBjbGVhbnVwKCkge1xuICAgIGlmICh0aGlzLmludGVydmFsSWQpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmludGVydmFsSWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLmxhc3RJbnRlcnZhbElkKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMubGFzdEludGVydmFsSWQpO1xuICAgICAgZGVsZXRlIHRoaXMubGFzdEludGVydmFsSWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLnN0YXJ0SWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnN0YXJ0SWQpO1xuICAgICAgZGVsZXRlIHRoaXMuc3RhcnRJZDtcbiAgICB9XG4gICAgdGhpcy5jb25uZWN0aW9uTGlzdGVuZXIucmVtb3ZlT25saW5lTGlzdGVuZXIodGhpcy5vbmxpbmVMaXN0ZW5lcik7XG4gICAgdGhpcy5jb25uZWN0aW9uTGlzdGVuZXIucmVtb3ZlT2ZmbGluZUxpc3RlbmVyKHRoaXMub2ZmbGluZUxpc3RlbmVyKTtcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyIHJlcXVlc3QgZm9yIGxhdGVzdCByZXNvdXJjZSAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlKCkge1xuICAgIGNvbnN0IHN1cCA9IHRoaXMuZW5kcG9pbnQ7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBmdW5jdGlvbiAodGhpczogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgICAgcmV0dXJuIHN1cC5jYWxsKHRoaXMsIC4uLmFyZ3MpO1xuICAgIH07XG4gICAgT2JqZWN0LmFzc2lnbihlbmRwb2ludCwgdGhpcy5lbmRwb2ludCk7XG4gICAgZW5kcG9pbnQuZGF0YUV4cGlyeUxlbmd0aCA9IHRoaXMuZnJlcXVlbmN5IC8gMjtcbiAgICBlbmRwb2ludC5lcnJvckV4cGlyeUxlbmd0aCA9IHRoaXMuZnJlcXVlbmN5IC8gMTA7XG4gICAgZW5kcG9pbnQuZXJyb3JQb2xpY3kgPSAoKSA9PiAnc29mdCcgYXMgY29uc3Q7XG4gICAgZW5kcG9pbnQua2V5ID0gKCkgPT4gdGhpcy5rZXk7XG4gICAgLy8gc3RvcCBhbnkgZXJyb3JzIGhlcmUgZnJvbSBidWJibGluZ1xuICAgIHRoaXMuY29udHJvbGxlci5mZXRjaChlbmRwb2ludCwgLi4udGhpcy5hcmdzKS5jYXRjaCgoKSA9PiBudWxsKTtcbiAgfVxuXG4gIC8qKiBXaGF0IGhhcHBlbnMgd2hlbiBicm93c2VyIGdvZXMgb2ZmbGluZSAqL1xuICBwcm90ZWN0ZWQgb2ZmbGluZUxpc3RlbmVyID0gKCkgPT4ge1xuICAgIC8vIHRoaXMgY2xlYXJzIGV4aXN0aW5nIGxpc3RlbmVycywgc28gbm8gbmVlZCB0byBjbGVhciBvZmZsaW5lIGxpc3RlbmVyXG4gICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgdGhpcy5jb25uZWN0aW9uTGlzdGVuZXIuYWRkT25saW5lTGlzdGVuZXIodGhpcy5vbmxpbmVMaXN0ZW5lcik7XG4gIH07XG5cbiAgLyoqIFdoYXQgaGFwcGVucyB3aGVuIGJyb3dzZXIgY29tZXMgb25saW5lICovXG4gIHByb3RlY3RlZCBvbmxpbmVMaXN0ZW5lciA9ICgpID0+IHtcbiAgICB0aGlzLmNvbm5lY3Rpb25MaXN0ZW5lci5yZW1vdmVPbmxpbmVMaXN0ZW5lcih0aGlzLm9ubGluZUxpc3RlbmVyKTtcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIHRoaXMuc3RhcnRJZCA9IHNldFRpbWVvdXQoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnN0YXJ0SWQpIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5zdGFydElkO1xuICAgICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgICAgICAgdGhpcy5ydW4oKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFBvbGwgc2V0VGltZW91dCBmb3IgJHt0aGlzLmtleX0gc3RpbGwgcnVubmluZywgYnV0IHRpbWVvdXRJZCBkZWxldGVkYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgTWF0aC5tYXgoMCwgdGhpcy5sYXN0RmV0Y2hUaW1lKCkgLSBub3cgKyB0aGlzLmZyZXF1ZW5jeSksXG4gICAgKTtcbiAgICB0aGlzLmNvbm5lY3Rpb25MaXN0ZW5lci5hZGRPZmZsaW5lTGlzdGVuZXIodGhpcy5vZmZsaW5lTGlzdGVuZXIpO1xuICB9O1xuXG4gIC8qKiBSdW4gcG9sbGluZyBwcm9jZXNzIHdpdGggY3VycmVudCBmcmVxdWVuY3lcbiAgICpcbiAgICogV2lsbCBjbGVhbiB1cCBvbGQgcG9sbCBpbnRlcnZhbCBvbiBuZXh0IHJ1blxuICAgKi9cbiAgcHJvdGVjdGVkIHJ1bigpIHtcbiAgICBpZiAodGhpcy5zdGFydElkKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWxJZCkgdGhpcy5sYXN0SW50ZXJ2YWxJZCA9IHRoaXMuaW50ZXJ2YWxJZDtcbiAgICB0aGlzLmludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAvLyBzaW5jZSB3ZSBkb24ndCBrbm93IGhvdyBsb25nIGludG8gdGhlIGxhc3QgcG9sbCBpdCB3YXMgYmVmb3JlIHJlc2V0dGluZ1xuICAgICAgLy8gd2Ugd2FpdCB0aWwgdGhlIG5leHQgZmV0Y2ggdG8gY2xlYXIgb2xkIGludGVydmFsc1xuICAgICAgaWYgKHRoaXMubGFzdEludGVydmFsSWQpIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmxhc3RJbnRlcnZhbElkKTtcbiAgICAgICAgZGVsZXRlIHRoaXMubGFzdEludGVydmFsSWQ7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pbnRlcnZhbElkKSB0aGlzLnVwZGF0ZSgpO1xuICAgICAgZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFBvbGwgaW50ZXJ2YWxJZCBmb3IgJHt0aGlzLmtleX0gc3RpbGwgcnVubmluZywgYnV0IGludGVydmFsSWQgZGVsZXRlZGAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgdGhpcy5mcmVxdWVuY3kpO1xuICB9XG5cbiAgLyoqIExhc3QgZmV0Y2ggdGltZSAqL1xuICBwcm90ZWN0ZWQgbGFzdEZldGNoVGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmdldFN0YXRlKCkubWV0YVt0aGlzLmtleV0/LmRhdGUgPz8gMDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFHQSxPQUFPQSx5QkFBeUIsTUFBTSxnQ0FBZ0M7QUFLdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE1BQU1DLG1CQUFtQixDQUF5QjtFQVkvREMsV0FBV0EsQ0FDVEMsTUFBcUMsRUFDckNDLFVBQXNCLEVBQ3RCQyxrQkFBdUMsRUFDdkM7SUFBQSxLQVhRQyxrQkFBa0IsR0FBd0IsSUFBSUMsR0FBRyxDQUFDLENBQUM7SUFvSDdEO0lBQUEsS0FDVUMsZUFBZSxHQUFHLE1BQU07TUFDaEM7TUFDQSxJQUFJLENBQUNDLE9BQU8sQ0FBQyxDQUFDO01BQ2QsSUFBSSxDQUFDSixrQkFBa0IsQ0FBQ0ssaUJBQWlCLENBQUMsSUFBSSxDQUFDQyxjQUFjLENBQUM7SUFDaEUsQ0FBQztJQUVEO0lBQUEsS0FDVUEsY0FBYyxHQUFHLE1BQU07TUFDL0IsSUFBSSxDQUFDTixrQkFBa0IsQ0FBQ08sb0JBQW9CLENBQUMsSUFBSSxDQUFDRCxjQUFjLENBQUM7TUFDakUsTUFBTUUsR0FBRyxHQUFHQyxJQUFJLENBQUNELEdBQUcsQ0FBQyxDQUFDO01BQ3RCLElBQUksQ0FBQ0UsT0FBTyxHQUFHQyxVQUFVLENBQ3ZCLE1BQU07UUFDSixJQUFJLElBQUksQ0FBQ0QsT0FBTyxFQUFFO1VBQ2hCLE9BQU8sSUFB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
@@ -49,7 +49,7 @@ export default class SubscriptionManager {
49
49
  *
50
50
  */
51
51
  handleSubscribe(action) {
52
- const key = action.meta.key;
52
+ const key = action.key;
53
53
  if (key in this.subscriptions) {
54
54
  const frequency = action.endpoint.pollFrequency;
55
55
  this.subscriptions[key].add(frequency);
@@ -62,7 +62,7 @@ export default class SubscriptionManager {
62
62
  *
63
63
  */
64
64
  handleUnsubscribe(action) {
65
- const key = action.meta.key;
65
+ const key = action.key;
66
66
 
67
67
  /* istanbul ignore else */
68
68
  if (key in this.subscriptions) {
@@ -88,4 +88,4 @@ export default class SubscriptionManager {
88
88
  return this.middleware;
89
89
  }
90
90
  }
91
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVUJTQ1JJQkVfVFlQRSIsIlVOU1VCU0NSSUJFX1RZUEUiLCJDb250cm9sbGVyIiwiU3Vic2NyaXB0aW9uTWFuYWdlciIsImNvbnN0cnVjdG9yIiwiU3Vic2NyaXB0aW9uIiwic3Vic2NyaXB0aW9ucyIsImNvbnRyb2xsZXIiLCJtaWRkbGV3YXJlIiwibmV4dCIsImFjdGlvbiIsInR5cGUiLCJoYW5kbGVTdWJzY3JpYmUiLCJlIiwiY29uc29sZSIsImVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJoYW5kbGVVbnN1YnNjcmliZSIsImNsZWFudXAiLCJrZXkiLCJtZXRhIiwiZnJlcXVlbmN5IiwiZW5kcG9pbnQiLCJwb2xsRnJlcXVlbmN5IiwiYWRkIiwiZW1wdHkiLCJyZW1vdmUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJnZXRNaWRkbGV3YXJlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvU3Vic2NyaXB0aW9uTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTVUJTQ1JJQkVfVFlQRSwgVU5TVUJTQ1JJQkVfVFlQRSB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCBDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIE1hbmFnZXIsXG4gIE1pZGRsZXdhcmVBUEksXG4gIE1pZGRsZXdhcmUsXG4gIFVuc3Vic2NyaWJlQWN0aW9uLFxuICBTdWJzY3JpYmVBY3Rpb24sXG59IGZyb20gJy4uL3R5cGVzLmpzJztcblxudHlwZSBBY3Rpb25zID0gVW5zdWJzY3JpYmVBY3Rpb24gfCBTdWJzY3JpYmVBY3Rpb247XG5cbi8qKiBJbnRlcmZhY2UgaGFuZGxpbmcgYSBzaW5nbGUgcmVzb3VyY2Ugc3Vic2NyaXB0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvbiB7XG4gIGFkZChmcmVxdWVuY3k/OiBudW1iZXIpOiB2b2lkO1xuICByZW1vdmUoZnJlcXVlbmN5PzogbnVtYmVyKTogYm9vbGVhbjtcbiAgY2xlYW51cCgpOiB2b2lkO1xufVxuXG4vKiogVGhlIHN0YXRpYyBjbGFzcyB0aGF0IGNvbnN0cnVjdHMgU3Vic2NyaXB0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvbkNvbnN0cnVjdGFibGUge1xuICBuZXcgKFxuICAgIGFjdGlvbjogT21pdDxTdWJzY3JpYmVBY3Rpb24sICd0eXBlJz4sXG4gICAgY29udHJvbGxlcjogQ29udHJvbGxlcixcbiAgKTogU3Vic2NyaXB0aW9uO1xufVxuXG4vKiogSGFuZGxlcyBzdWJzY3JpcHRpb24gYWN0aW9ucyAtPiBmZXRjaCBvciBzZXQgYWN0aW9uc1xuICpcbiAqIENvbnN0cnVjdG9yIHRha2VzIGEgU3Vic2NyaXB0aW9uQ29uc3RydWN0YWJsZSBjbGFzcyB0byBjb250cm9sIGhvd1xuICogc3Vic2NyaXB0aW9ucyBhcmUgaGFuZGxlZC4gKGUuZy4sIHBvbGxpbmcsIHdlYnNvY2tldHMpXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vZG9jcy9hcGkvU3Vic2NyaXB0aW9uTWFuYWdlclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdWJzY3JpcHRpb25NYW5hZ2VyPFMgZXh0ZW5kcyBTdWJzY3JpcHRpb25Db25zdHJ1Y3RhYmxlPlxuICBpbXBsZW1lbnRzIE1hbmFnZXI8QWN0aW9ucz5cbntcbiAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbnM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBJbnN0YW5jZVR5cGU8Uz47XG4gIH0gPSB7fTtcblxuICBwcm90ZWN0ZWQgZGVjbGFyZSByZWFkb25seSBTdWJzY3JpcHRpb246IFM7XG4gIHByb3RlY3RlZCBkZWNsYXJlIG1pZGRsZXdhcmU6IE1pZGRsZXdhcmU7XG4gIHByb3RlY3RlZCBjb250cm9sbGVyOiBDb250cm9sbGVyID0gbmV3IENvbnRyb2xsZXIoKTtcblxuICBjb25zdHJ1Y3RvcihTdWJzY3JpcHRpb246IFMpIHtcbiAgICB0aGlzLlN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbjtcblxuICAgIHRoaXMubWlkZGxld2FyZSA9IDxDIGV4dGVuZHMgTWlkZGxld2FyZUFQST4oY29udHJvbGxlcjogQykgPT4ge1xuICAgICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjtcbiAgICAgIHJldHVybiAobmV4dDogQ1snZGlzcGF0Y2gnXSk6IENbJ2Rpc3BhdGNoJ10gPT5cbiAgICAgICAgYWN0aW9uID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFNVQlNDUklCRV9UWVBFOlxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU3Vic2NyaWJlKGFjdGlvbik7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIGNhc2UgVU5TVUJTQ1JJQkVfVFlQRTpcbiAgICAgICAgICAgICAgdGhpcy5oYW5kbGVVbnN1YnNjcmliZShhY3Rpb24pO1xuICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIEVuc3VyZXMgYWxsIHN1YnNjcmlwdGlvbnMgYXJlIGNsZWFuZWQgdXAuICovXG4gIGNsZWFudXAoKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5zdWJzY3JpcHRpb25zKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XS5jbGVhbnVwKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyAncmRjL3N1YnNjcmliZScgYWN0aW9uLlxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVN1YnNjcmliZShhY3Rpb246IFN1YnNjcmliZUFjdGlvbikge1xuICAgIGNvbnN0IGtleSA9IGFjdGlvbi5tZXRhLmtleTtcblxuICAgIGlmIChrZXkgaW4gdGhpcy5zdWJzY3JpcHRpb25zKSB7XG4gICAgICBjb25zdCBmcmVxdWVuY3kgPSBhY3Rpb24uZW5kcG9pbnQucG9sbEZyZXF1ZW5jeTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1trZXldLmFkZChmcmVxdWVuY3kpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XSA9IG5ldyB0aGlzLlN1YnNjcmlwdGlvbihcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICB0aGlzLmNvbnRyb2xsZXIsXG4gICAgICApIGFzIEluc3RhbmNlVHlwZTxTPjtcbiAgICB9XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gbWlkZGxld2FyZSBpbnRlcmNlcHRzICdyZGMvdW5zdWJzY3JpYmUnIGFjdGlvbi5cbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVVbnN1YnNjcmliZShhY3Rpb246IFVuc3Vic2NyaWJlQWN0aW9uKSB7XG4gICAgY29uc3Qga2V5ID0gYWN0aW9uLm1ldGEua2V5O1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoa2V5IGluIHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgY29uc3QgZnJlcXVlbmN5ID0gYWN0aW9uLmVuZHBvaW50LnBvbGxGcmVxdWVuY3k7XG4gICAgICBjb25zdCBlbXB0eSA9IHRoaXMuc3Vic2NyaXB0aW9uc1trZXldLnJlbW92ZShmcmVxdWVuY3kpO1xuICAgICAgaWYgKGVtcHR5KSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1pc21hdGNoZWQgdW5zdWJzY3JpYmU6ICR7a2V5fSBpcyBub3Qgc3Vic2NyaWJlZGApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBdHRhY2hlcyBNYW5hZ2VyIHRvIHN0b3JlXG4gICAqXG4gICAqIEludGVyY2VwdHMgJ3JkYy9zdWJzY3JpYmUnLydyZXN0LWhvcmRjL3JpYmUnIHRvIHJlZ2lzdGVyIHJlc291cmNlcyB0aGF0XG4gICAqIG5lZWQgdG8gYmUga2VwdCB1cCB0byBkYXRlLlxuICAgKlxuICAgKiBXaWxsIHBvc3NpYmx5IGRpc3BhdGNoICdyZGMvZmV0Y2gnIG9yICdyZXN0LWhvcmRjLycgdG8ga2VlcCByZXNvdXJjZXMgZnJlc2hcbiAgICpcbiAgICovXG4gIGdldE1pZGRsZXdhcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMubWlkZGxld2FyZTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxjQUFjLEVBQUVDLGdCQUFnQixRQUFRLG1CQUFtQjtBQUNwRSxPQUFPQyxVQUFVLE1BQU0sNkJBQTZCOztBQVdwRDs7QUFPQTs7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsTUFBTUMsbUJBQW1CLENBRXhDO0VBU0VDLFdBQVdBLENBQUNDLFlBQWUsRUFBRTtJQUFBLEtBUm5CQyxhQUFhLEdBRW5CLENBQUMsQ0FBQztJQUFBLEtBSUlDLFVBQVUsR0FBZSxJQUFJTCxVQUFVLENBQUMsQ0FBQztJQUdqRCxJQUFJLENBQUNHLFlBQVksR0FBR0EsWUFBWTtJQUVoQyxJQUFJLENBQUNHLFVBQVUsR0FBNkJELFVBQWEsSUFBSztNQUM1RCxJQUFJLENBQUNBLFVBQVUsR0FBR0EsVUFBVTtNQUM1QixPQUFRRSxJQUFtQixJQUN6QkMsTUFBTSxJQUFJO1FBQ1IsUUFBUUEsTUFBTSxDQUFDQyxJQUFJO1VBQ2pCLEtBQUtYLGNBQWM7WUFDakIsSUFBSTtjQUNGLElBQUksQ0FBQ1ksZUFBZSxDQUFDRixNQUFNLENBQUM7WUFDOUIsQ0FBQyxDQUFDLE9BQU9HLENBQUMsRUFBRTtjQUNWQyxPQUFPLENBQUNDLEtBQUssQ0FBQ0YsQ0FBQyxDQUFDO1lBQ2xCO1lBQ0EsT0FBT0csT0FBTyxDQUFDQyxPQUFPLENBQUMsQ0FBQztVQUMxQixLQUFLaEIsZ0JBQWdCO1lBQ25CLElBQUksQ0FBQ2lCLGlCQUFpQixDQUFDUixNQUFNLENBQUM7WUFDOUIsT0FBT00sT0FBTyxDQUFDQyxPQUFPLENBQUMsQ0FBQztVQUMxQjtZQUNFLE9BQU9SLElBQUksQ0FBQ0MsTUFBTSxDQUFDO1FBQ3ZCO01BQ0YsQ0FBQztJQUNMLENBQUM7RUFDSDs7RUFFQTtFQUNBUyxPQUFPQSxDQUFBLEVBQUc7SUFDUixLQUFLLE1BQU1DLEdBQUcsSUFBSSxJQUFJLENBQUNkLGFBQWEsRUFBRTtNQUNwQyxJQUFJLENBQUNBLGFBQWEsQ0FBQ2MsR0FBRyxDQUFDLENBQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ25DO0VBQ0Y7O0VBRUE7QUFDRjtBQUNBO0VBQ1lQLGVBQWVBLENBQUNGLE1BQXVCLEVBQUU7SUFDakQsTUFBTVUsR0FBRyxHQUFHVixNQUFNLENBQUNXLElBQUksQ0FBQ0QsR0FBRztJQUUzQixJQUFJQSxHQUFHLElBQUksSUFBSSxDQUFDZCxhQUFhLEVBQUU7TUFDN0IsTUFBTWdCLFNBQVMsR0FBR1osTUFBTSxDQUFDYSxRQUFRLENBQUNDLGFBQWE7TUFDL0MsSUFBSSxDQUFDbEIsYUFBYSxDQUFDYyxHQUFHLENBQUMsQ0FBQ0ssR0FBRyxDQUFDSCxTQUFTLENBQUM7SUFDeEMsQ0FBQyxNQUFNO01BQ0wsSUFBSSxDQUFDaEIsYUFBYSxDQUFDYyxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQ2YsWUFBWSxDQUM3Q0ssTUFBTSxFQUNOLElBQUksQ0FBQ0gsVUFDUCxDQUFvQjtJQUN0QjtFQUNGOztFQUVBO0FBQ0Y7QUFDQTtFQUNZVyxpQkFBaUJBLENBQUNSLE1BQXlCLEVBQUU7SUFDckQsTUFBTVUsR0FBRyxHQUFHVixNQUFNLENBQUNXLElBQUksQ0FBQ0QsR0FBRzs7SUFFM0I7SUFDQSxJQUFJQSxHQUFHLElBQUksSUFBSSxDQUFDZCxhQUFhLEVBQUU7TUFDN0IsTUFBTWdCLFNBQVMsR0FBR1osTUFBTSxDQUFDYSxRQUFRLENBQUNDLGFBQWE7TUFDL0MsTUFBTUUsS0FBSyxHQUFHLElBQUksQ0FBQ3BCLGFBQWEsQ0FBQ2MsR0FBRyxDQUFDLENBQUNPLE1BQU0sQ0FBQ0wsU0FBUyxDQUFDO01BQ3ZELElBQUlJLEtBQUssRUFBRTtRQUNULE9BQU8sSUFBSSxDQUFDcEIsYUFBYSxDQUFDYyxHQUFHLENBQUM7TUFDaEM7SUFDRixDQUFDLE1BQU0sSUFBSVEsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7TUFDaERoQixPQUFPLENBQUNDLEtBQUssQ0FBQywyQkFBMkJLLEdBQUcsb0JBQW9CLENBQUM7SUFDbkU7RUFDRjs7RUFFQTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0VXLGFBQWFBLENBQUEsRUFBRztJQUNkLE9BQU8sSUFBSSxDQUFDdkIsVUFBVTtFQUN4QjtBQUNGIiwiaWdub3JlTGlzdCI6W119
91
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVUJTQ1JJQkVfVFlQRSIsIlVOU1VCU0NSSUJFX1RZUEUiLCJDb250cm9sbGVyIiwiU3Vic2NyaXB0aW9uTWFuYWdlciIsImNvbnN0cnVjdG9yIiwiU3Vic2NyaXB0aW9uIiwic3Vic2NyaXB0aW9ucyIsImNvbnRyb2xsZXIiLCJtaWRkbGV3YXJlIiwibmV4dCIsImFjdGlvbiIsInR5cGUiLCJoYW5kbGVTdWJzY3JpYmUiLCJlIiwiY29uc29sZSIsImVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJoYW5kbGVVbnN1YnNjcmliZSIsImNsZWFudXAiLCJrZXkiLCJmcmVxdWVuY3kiLCJlbmRwb2ludCIsInBvbGxGcmVxdWVuY3kiLCJhZGQiLCJlbXB0eSIsInJlbW92ZSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImdldE1pZGRsZXdhcmUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFuYWdlci9TdWJzY3JpcHRpb25NYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNVQlNDUklCRV9UWVBFLCBVTlNVQlNDUklCRV9UWVBFIH0gZnJvbSAnLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgTWFuYWdlcixcbiAgTWlkZGxld2FyZUFQSSxcbiAgTWlkZGxld2FyZSxcbiAgVW5zdWJzY3JpYmVBY3Rpb24sXG4gIFN1YnNjcmliZUFjdGlvbixcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG50eXBlIEFjdGlvbnMgPSBVbnN1YnNjcmliZUFjdGlvbiB8IFN1YnNjcmliZUFjdGlvbjtcblxuLyoqIEludGVyZmFjZSBoYW5kbGluZyBhIHNpbmdsZSByZXNvdXJjZSBzdWJzY3JpcHRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uIHtcbiAgYWRkKGZyZXF1ZW5jeT86IG51bWJlcik6IHZvaWQ7XG4gIHJlbW92ZShmcmVxdWVuY3k/OiBudW1iZXIpOiBib29sZWFuO1xuICBjbGVhbnVwKCk6IHZvaWQ7XG59XG5cbi8qKiBUaGUgc3RhdGljIGNsYXNzIHRoYXQgY29uc3RydWN0cyBTdWJzY3JpcHRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uQ29uc3RydWN0YWJsZSB7XG4gIG5ldyAoXG4gICAgYWN0aW9uOiBPbWl0PFN1YnNjcmliZUFjdGlvbiwgJ3R5cGUnPixcbiAgICBjb250cm9sbGVyOiBDb250cm9sbGVyLFxuICApOiBTdWJzY3JpcHRpb247XG59XG5cbi8qKiBIYW5kbGVzIHN1YnNjcmlwdGlvbiBhY3Rpb25zIC0+IGZldGNoIG9yIHNldCBhY3Rpb25zXG4gKlxuICogQ29uc3RydWN0b3IgdGFrZXMgYSBTdWJzY3JpcHRpb25Db25zdHJ1Y3RhYmxlIGNsYXNzIHRvIGNvbnRyb2wgaG93XG4gKiBzdWJzY3JpcHRpb25zIGFyZSBoYW5kbGVkLiAoZS5nLiwgcG9sbGluZywgd2Vic29ja2V0cylcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9TdWJzY3JpcHRpb25NYW5hZ2VyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN1YnNjcmlwdGlvbk1hbmFnZXI8UyBleHRlbmRzIFN1YnNjcmlwdGlvbkNvbnN0cnVjdGFibGU+XG4gIGltcGxlbWVudHMgTWFuYWdlcjxBY3Rpb25zPlxue1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczoge1xuICAgIFtrZXk6IHN0cmluZ106IEluc3RhbmNlVHlwZTxTPjtcbiAgfSA9IHt9O1xuXG4gIHByb3RlY3RlZCBkZWNsYXJlIHJlYWRvbmx5IFN1YnNjcmlwdGlvbjogUztcbiAgcHJvdGVjdGVkIGRlY2xhcmUgbWlkZGxld2FyZTogTWlkZGxld2FyZTtcbiAgcHJvdGVjdGVkIGNvbnRyb2xsZXI6IENvbnRyb2xsZXIgPSBuZXcgQ29udHJvbGxlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFN1YnNjcmlwdGlvbjogUykge1xuICAgIHRoaXMuU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uO1xuXG4gICAgdGhpcy5taWRkbGV3YXJlID0gPEMgZXh0ZW5kcyBNaWRkbGV3YXJlQVBJPihjb250cm9sbGVyOiBDKSA9PiB7XG4gICAgICB0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuICAgICAgcmV0dXJuIChuZXh0OiBDWydkaXNwYXRjaCddKTogQ1snZGlzcGF0Y2gnXSA9PlxuICAgICAgICBhY3Rpb24gPT4ge1xuICAgICAgICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU1VCU0NSSUJFX1RZUEU6XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTdWJzY3JpYmUoYWN0aW9uKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICAgICAgY2FzZSBVTlNVQlNDUklCRV9UWVBFOlxuICAgICAgICAgICAgICB0aGlzLmhhbmRsZVVuc3Vic2NyaWJlKGFjdGlvbik7XG4gICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG4gIH1cblxuICAvKiogRW5zdXJlcyBhbGwgc3Vic2NyaXB0aW9ucyBhcmUgY2xlYW5lZCB1cC4gKi9cbiAgY2xlYW51cCgpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1trZXldLmNsZWFudXAoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gbWlkZGxld2FyZSBpbnRlcmNlcHRzICdyZGMvc3Vic2NyaWJlJyBhY3Rpb24uXG4gICAqXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlU3Vic2NyaWJlKGFjdGlvbjogU3Vic2NyaWJlQWN0aW9uKSB7XG4gICAgY29uc3Qga2V5ID0gYWN0aW9uLmtleTtcblxuICAgIGlmIChrZXkgaW4gdGhpcy5zdWJzY3JpcHRpb25zKSB7XG4gICAgICBjb25zdCBmcmVxdWVuY3kgPSBhY3Rpb24uZW5kcG9pbnQucG9sbEZyZXF1ZW5jeTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1trZXldLmFkZChmcmVxdWVuY3kpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XSA9IG5ldyB0aGlzLlN1YnNjcmlwdGlvbihcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICB0aGlzLmNvbnRyb2xsZXIsXG4gICAgICApIGFzIEluc3RhbmNlVHlwZTxTPjtcbiAgICB9XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gbWlkZGxld2FyZSBpbnRlcmNlcHRzICdyZGMvdW5zdWJzY3JpYmUnIGFjdGlvbi5cbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVVbnN1YnNjcmliZShhY3Rpb246IFVuc3Vic2NyaWJlQWN0aW9uKSB7XG4gICAgY29uc3Qga2V5ID0gYWN0aW9uLmtleTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGtleSBpbiB0aGlzLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIGNvbnN0IGZyZXF1ZW5jeSA9IGFjdGlvbi5lbmRwb2ludC5wb2xsRnJlcXVlbmN5O1xuICAgICAgY29uc3QgZW1wdHkgPSB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XS5yZW1vdmUoZnJlcXVlbmN5KTtcbiAgICAgIGlmIChlbXB0eSkge1xuICAgICAgICBkZWxldGUgdGhpcy5zdWJzY3JpcHRpb25zW2tleV07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNaXNtYXRjaGVkIHVuc3Vic2NyaWJlOiAke2tleX0gaXMgbm90IHN1YnNjcmliZWRgKTtcbiAgICB9XG4gIH1cblxuICAvKiogQXR0YWNoZXMgTWFuYWdlciB0byBzdG9yZVxuICAgKlxuICAgKiBJbnRlcmNlcHRzICdyZGMvc3Vic2NyaWJlJy8ncmVzdC1ob3JkYy9yaWJlJyB0byByZWdpc3RlciByZXNvdXJjZXMgdGhhdFxuICAgKiBuZWVkIHRvIGJlIGtlcHQgdXAgdG8gZGF0ZS5cbiAgICpcbiAgICogV2lsbCBwb3NzaWJseSBkaXNwYXRjaCAncmRjL2ZldGNoJyBvciAncmVzdC1ob3JkYy8nIHRvIGtlZXAgcmVzb3VyY2VzIGZyZXNoXG4gICAqXG4gICAqL1xuICBnZXRNaWRkbGV3YXJlKCkge1xuICAgIHJldHVybiB0aGlzLm1pZGRsZXdhcmU7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsY0FBYyxFQUFFQyxnQkFBZ0IsUUFBUSxtQkFBbUI7QUFDcEUsT0FBT0MsVUFBVSxNQUFNLDZCQUE2Qjs7QUFXcEQ7O0FBT0E7O0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE1BQU1DLG1CQUFtQixDQUV4QztFQVNFQyxXQUFXQSxDQUFDQyxZQUFlLEVBQUU7SUFBQSxLQVJuQkMsYUFBYSxHQUVuQixDQUFDLENBQUM7SUFBQSxLQUlJQyxVQUFVLEdBQWUsSUFBSUwsVUFBVSxDQUFDLENBQUM7SUFHakQsSUFBSSxDQUFDRyxZQUFZLEdBQUdBLFlBQVk7SUFFaEMsSUFBSSxDQUFDRyxVQUFVLEdBQTZCRCxVQUFhLElBQUs7TUFDNUQsSUFBSSxDQUFDQSxVQUFVLEdBQUdBLFVBQVU7TUFDNUIsT0FBUUUsSUFBbUIsSUFDekJDLE1BQU0sSUFBSTtRQUNSLFFBQVFBLE1BQU0sQ0FBQ0MsSUFBSTtVQUNqQixLQUFLWCxjQUFjO1lBQ2pCLElBQUk7Y0FDRixJQUFJLENBQUNZLGVBQWUsQ0FBQ0YsTUFBTSxDQUFDO1lBQzlCLENBQUMsQ0FBQyxPQUFPRyxDQUFDLEVBQUU7Y0FDVkMsT0FBTyxDQUFDQyxLQUFLLENBQUNGLENBQUMsQ0FBQztZQUNsQjtZQUNBLE9BQU9HLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUM7VUFDMUIsS0FBS2hCLGdCQUFnQjtZQUNuQixJQUFJLENBQUNpQixpQkFBaUIsQ0FBQ1IsTUFBTSxDQUFDO1lBQzlCLE9BQU9NLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUM7VUFDMUI7WUFDRSxPQUFPUixJQUFJLENBQUNDLE1BQU0sQ0FBQztRQUN2QjtNQUNGLENBQUM7SUFDTCxDQUFDO0VBQ0g7O0VBRUE7RUFDQVMsT0FBT0EsQ0FBQSxFQUFHO0lBQ1IsS0FBSyxNQUFNQyxHQUFHLElBQUksSUFBSSxDQUFDZCxhQUFhLEVBQUU7TUFDcEMsSUFBSSxDQUFDQSxhQUFhLENBQUNjLEdBQUcsQ0FBQyxDQUFDRCxPQUFPLENBQUMsQ0FBQztJQUNuQztFQUNGOztFQUVBO0FBQ0Y7QUFDQTtFQUNZUCxlQUFlQSxDQUFDRixNQUF1QixFQUFFO0lBQ2pELE1BQU1VLEdBQUcsR0FBR1YsTUFBTSxDQUFDVSxHQUFHO0lBRXRCLElBQUlBLEdBQUcsSUFBSSxJQUFJLENBQUNkLGFBQWEsRUFBRTtNQUM3QixNQUFNZSxTQUFTLEdBQUdYLE1BQU0sQ0FBQ1ksUUFBUSxDQUFDQyxhQUFhO01BQy9DLElBQUksQ0FBQ2pCLGFBQWEsQ0FBQ2MsR0FBRyxDQUFDLENBQUNJLEdBQUcsQ0FBQ0gsU0FBUyxDQUFDO0lBQ3hDLENBQUMsTUFBTTtNQUNMLElBQUksQ0FBQ2YsYUFBYSxDQUFDYyxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQ2YsWUFBWSxDQUM3Q0ssTUFBTSxFQUNOLElBQUksQ0FBQ0gsVUFDUCxDQUFvQjtJQUN0QjtFQUNGOztFQUVBO0FBQ0Y7QUFDQTtFQUNZVyxpQkFBaUJBLENBQUNSLE1BQXlCLEVBQUU7SUFDckQsTUFBTVUsR0FBRyxHQUFHVixNQUFNLENBQUNVLEdBQUc7O0lBRXRCO0lBQ0EsSUFBSUEsR0FBRyxJQUFJLElBQUksQ0FBQ2QsYUFBYSxFQUFFO01BQzdCLE1BQU1lLFNBQVMsR0FBR1gsTUFBTSxDQUFDWSxRQUFRLENBQUNDLGFBQWE7TUFDL0MsTUFBTUUsS0FBSyxHQUFHLElBQUksQ0FBQ25CLGFBQWEsQ0FBQ2MsR0FBRyxDQUFDLENBQUNNLE1BQU0sQ0FBQ0wsU0FBUyxDQUFDO01BQ3ZELElBQUlJLEtBQUssRUFBRTtRQUNULE9BQU8sSUFBSSxDQUFDbkIsYUFBYSxDQUFDYyxHQUFHLENBQUM7TUFDaEM7SUFDRixDQUFDLE1BQU0sSUFBSU8sT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7TUFDaERmLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLDJCQUEyQkssR0FBRyxvQkFBb0IsQ0FBQztJQUNuRTtFQUNGOztFQUVBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRVUsYUFBYUEsQ0FBQSxFQUFHO0lBQ2QsT0FBTyxJQUFJLENBQUN0QixVQUFVO0VBQ3hCO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -3,9 +3,9 @@ export declare function expireReducer(state: State<unknown>, action: ExpireAllAc
3
3
  meta: {
4
4
  [x: string]: {
5
5
  readonly date: number;
6
- readonly error?: import("packages/normalizr/lib/index.js").ErrorTypes;
7
6
  readonly expiresAt: number;
8
7
  readonly prevExpiresAt?: number;
8
+ readonly error?: import("packages/normalizr/lib/index.js").ErrorTypes;
9
9
  readonly invalidated?: boolean;
10
10
  readonly errorPolicy?: "hard" | "soft" | undefined;
11
11
  };
@@ -22,9 +22,9 @@ export declare function expireReducer(state: State<unknown>, action: ExpireAllAc
22
22
  entityMeta: {
23
23
  readonly [entityKey: string]: {
24
24
  readonly [pk: string]: {
25
+ readonly fetchedAt: number;
25
26
  readonly date: number;
26
27
  readonly expiresAt: number;
27
- readonly fetchedAt: number;
28
28
  };
29
29
  };
30
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fetchReducer.d.ts","sourceRoot":"","sources":["../../../src/state/reducer/fetchReducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EAGL,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,kBA0BtE"}
1
+ {"version":3,"file":"fetchReducer.d.ts","sourceRoot":"","sources":["../../../src/state/reducer/fetchReducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEzD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,kBAyBtE"}
@@ -1,23 +1,19 @@
1
- import createOptimistic from '../../controller/createOptimistic.js';
1
+ import { createOptimistic } from '../../controller/actions/createOptimistic.js';
2
2
  export function fetchReducer(state, action) {
3
- let setAction;
4
3
  if (action.endpoint.getOptimisticResponse && action.endpoint.sideEffect) {
5
- setAction = createOptimistic(action.endpoint, {
6
- args: action.meta.args,
7
- fetchedAt: action.meta.createdAt
8
- });
4
+ const setAction = createOptimistic(action.endpoint, action.args, action.meta.fetchedAt);
5
+ return {
6
+ ...state,
7
+ optimistic: [...state.optimistic, setAction]
8
+ };
9
9
  } else {
10
10
  // If 'fetch' action reaches the reducer there are no middlewares installed to handle it
11
11
  /* istanbul ignore next */
12
12
  if (process.env.NODE_ENV !== 'production') {
13
13
  console.warn('Fetch appears unhandled - you are likely missing the NetworkManager middleware');
14
- console.warn('See https://dataclient.io/docs/guides/redux#indextsx for hooking up redux');
14
+ console.warn('See https://dataclient.io/docs/guides/redux for hooking up redux');
15
15
  }
16
16
  return state;
17
17
  }
18
- return {
19
- ...state,
20
- optimistic: [...state.optimistic, setAction]
21
- };
22
18
  }
23
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVPcHRpbWlzdGljIiwiZmV0Y2hSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJzZXRBY3Rpb24iLCJlbmRwb2ludCIsImdldE9wdGltaXN0aWNSZXNwb25zZSIsInNpZGVFZmZlY3QiLCJhcmdzIiwibWV0YSIsImZldGNoZWRBdCIsImNyZWF0ZWRBdCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNvbnNvbGUiLCJ3YXJuIiwib3B0aW1pc3RpYyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0ZS9yZWR1Y2VyL2ZldGNoUmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlT3B0aW1pc3RpYyBmcm9tICcuLi8uLi9jb250cm9sbGVyL2NyZWF0ZU9wdGltaXN0aWMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBTdGF0ZSxcbiAgU2V0UmVzcG9uc2VBY3Rpb24sXG4gIE9wdGltaXN0aWNBY3Rpb24sXG4gIEZldGNoQWN0aW9uLFxufSBmcm9tICcuLi8uLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmZXRjaFJlZHVjZXIoc3RhdGU6IFN0YXRlPHVua25vd24+LCBhY3Rpb246IEZldGNoQWN0aW9uKSB7XG4gIGxldCBzZXRBY3Rpb246IFNldFJlc3BvbnNlQWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbjtcblxuICBpZiAoYWN0aW9uLmVuZHBvaW50LmdldE9wdGltaXN0aWNSZXNwb25zZSAmJiBhY3Rpb24uZW5kcG9pbnQuc2lkZUVmZmVjdCkge1xuICAgIHNldEFjdGlvbiA9IGNyZWF0ZU9wdGltaXN0aWMoYWN0aW9uLmVuZHBvaW50LCB7XG4gICAgICBhcmdzOiBhY3Rpb24ubWV0YS5hcmdzLFxuICAgICAgZmV0Y2hlZEF0OiBhY3Rpb24ubWV0YS5jcmVhdGVkQXQsXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gSWYgJ2ZldGNoJyBhY3Rpb24gcmVhY2hlcyB0aGUgcmVkdWNlciB0aGVyZSBhcmUgbm8gbWlkZGxld2FyZXMgaW5zdGFsbGVkIHRvIGhhbmRsZSBpdFxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ0ZldGNoIGFwcGVhcnMgdW5oYW5kbGVkIC0geW91IGFyZSBsaWtlbHkgbWlzc2luZyB0aGUgTmV0d29ya01hbmFnZXIgbWlkZGxld2FyZScsXG4gICAgICApO1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnU2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2d1aWRlcy9yZWR1eCNpbmRleHRzeCBmb3IgaG9va2luZyB1cCByZWR1eCcsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIG9wdGltaXN0aWM6IFsuLi5zdGF0ZS5vcHRpbWlzdGljLCBzZXRBY3Rpb25dLFxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxnQkFBZ0IsTUFBTSxzQ0FBc0M7QUFRbkUsT0FBTyxTQUFTQyxZQUFZQSxDQUFDQyxLQUFxQixFQUFFQyxNQUFtQixFQUFFO0VBQ3ZFLElBQUlDLFNBQStDO0VBRW5ELElBQUlELE1BQU0sQ0FBQ0UsUUFBUSxDQUFDQyxxQkFBcUIsSUFBSUgsTUFBTSxDQUFDRSxRQUFRLENBQUNFLFVBQVUsRUFBRTtJQUN2RUgsU0FBUyxHQUFHSixnQkFBZ0IsQ0FBQ0csTUFBTSxDQUFDRSxRQUFRLEVBQUU7TUFDNUNHLElBQUksRUFBRUwsTUFBTSxDQUFDTSxJQUFJLENBQUNELElBQUk7TUFDdEJFLFNBQVMsRUFBRVAsTUFBTSxDQUFDTSxJQUFJLENBQUNFO0lBQ3pCLENBQUMsQ0FBQztFQUNKLENBQUMsTUFBTTtJQUNMO0lBQ0E7SUFDQSxJQUFJQyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLLFlBQVksRUFBRTtNQUN6Q0MsT0FBTyxDQUFDQyxJQUFJLENBQ1YsZ0ZBQ0YsQ0FBQztNQUNERCxPQUFPLENBQUNDLElBQUksQ0FDViwyRUFDRixDQUFDO0lBQ0g7SUFFQSxPQUFPZCxLQUFLO0VBQ2Q7RUFDQSxPQUFPO0lBQ0wsR0FBR0EsS0FBSztJQUNSZSxVQUFVLEVBQUUsQ0FBQyxHQUFHZixLQUFLLENBQUNlLFVBQVUsRUFBRWIsU0FBUztFQUM3QyxDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVPcHRpbWlzdGljIiwiZmV0Y2hSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJlbmRwb2ludCIsImdldE9wdGltaXN0aWNSZXNwb25zZSIsInNpZGVFZmZlY3QiLCJzZXRBY3Rpb24iLCJhcmdzIiwibWV0YSIsImZldGNoZWRBdCIsIm9wdGltaXN0aWMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zb2xlIiwid2FybiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0ZS9yZWR1Y2VyL2ZldGNoUmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVPcHRpbWlzdGljIH0gZnJvbSAnLi4vLi4vY29udHJvbGxlci9hY3Rpb25zL2NyZWF0ZU9wdGltaXN0aWMuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGF0ZSwgRmV0Y2hBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmZXRjaFJlZHVjZXIoc3RhdGU6IFN0YXRlPHVua25vd24+LCBhY3Rpb246IEZldGNoQWN0aW9uKSB7XG4gIGlmIChhY3Rpb24uZW5kcG9pbnQuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlICYmIGFjdGlvbi5lbmRwb2ludC5zaWRlRWZmZWN0KSB7XG4gICAgY29uc3Qgc2V0QWN0aW9uID0gY3JlYXRlT3B0aW1pc3RpYyhcbiAgICAgIGFjdGlvbi5lbmRwb2ludCxcbiAgICAgIGFjdGlvbi5hcmdzLFxuICAgICAgYWN0aW9uLm1ldGEuZmV0Y2hlZEF0LFxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgb3B0aW1pc3RpYzogWy4uLnN0YXRlLm9wdGltaXN0aWMsIHNldEFjdGlvbl0sXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICAvLyBJZiAnZmV0Y2gnIGFjdGlvbiByZWFjaGVzIHRoZSByZWR1Y2VyIHRoZXJlIGFyZSBubyBtaWRkbGV3YXJlcyBpbnN0YWxsZWQgdG8gaGFuZGxlIGl0XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnRmV0Y2ggYXBwZWFycyB1bmhhbmRsZWQgLSB5b3UgYXJlIGxpa2VseSBtaXNzaW5nIHRoZSBOZXR3b3JrTWFuYWdlciBtaWRkbGV3YXJlJyxcbiAgICAgICk7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdTZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvZ3VpZGVzL3JlZHV4IGZvciBob29raW5nIHVwIHJlZHV4JyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGdCQUFnQixRQUFRLDhDQUE4QztBQUcvRSxPQUFPLFNBQVNDLFlBQVlBLENBQUNDLEtBQXFCLEVBQUVDLE1BQW1CLEVBQUU7RUFDdkUsSUFBSUEsTUFBTSxDQUFDQyxRQUFRLENBQUNDLHFCQUFxQixJQUFJRixNQUFNLENBQUNDLFFBQVEsQ0FBQ0UsVUFBVSxFQUFFO0lBQ3ZFLE1BQU1DLFNBQVMsR0FBR1AsZ0JBQWdCLENBQ2hDRyxNQUFNLENBQUNDLFFBQVEsRUFDZkQsTUFBTSxDQUFDSyxJQUFJLEVBQ1hMLE1BQU0sQ0FBQ00sSUFBSSxDQUFDQyxTQUNkLENBQUM7SUFDRCxPQUFPO01BQ0wsR0FBR1IsS0FBSztNQUNSUyxVQUFVLEVBQUUsQ0FBQyxHQUFHVCxLQUFLLENBQUNTLFVBQVUsRUFBRUosU0FBUztJQUM3QyxDQUFDO0VBQ0gsQ0FBQyxNQUFNO0lBQ0w7SUFDQTtJQUNBLElBQUlLLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxRQUFRLEtBQUssWUFBWSxFQUFFO01BQ3pDQyxPQUFPLENBQUNDLElBQUksQ0FDVixnRkFDRixDQUFDO01BQ0RELE9BQU8sQ0FBQ0MsSUFBSSxDQUNWLGtFQUNGLENBQUM7SUFDSDtJQUVBLE9BQU9kLEtBQUs7RUFDZDtBQUNGIiwiaWdub3JlTGlzdCI6W119