@data-client/core 0.1.0 → 0.2.1

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 (247) hide show
  1. package/dist/index.js +134 -409
  2. package/dist/index.umd.min.js +1 -1
  3. package/dist/next.js +61 -101
  4. package/legacy/actionTypes.js +2 -2
  5. package/legacy/controller/Controller.js +276 -6
  6. package/legacy/controller/createFetch.js +3 -14
  7. package/legacy/controller/createInvalidate.js +1 -1
  8. package/legacy/controller/createInvalidateAll.js +1 -1
  9. package/legacy/controller/createOptimistic.js +1 -7
  10. package/legacy/controller/createReset.js +1 -1
  11. package/legacy/controller/createSet.js +31 -0
  12. package/legacy/controller/createSubscription.js +3 -7
  13. package/legacy/index.js +2 -5
  14. package/legacy/internal.js +2 -2
  15. package/legacy/manager/DevtoolsManager.js +2 -2
  16. package/legacy/manager/LogoutManager.js +2 -2
  17. package/legacy/manager/NetworkManager.js +28 -59
  18. package/legacy/manager/PollingSubscription.js +18 -27
  19. package/legacy/manager/SubscriptionManager.js +16 -42
  20. package/legacy/manager/applyManager.js +2 -1
  21. package/legacy/middlewareTypes.js +1 -1
  22. package/legacy/newActions.js +1 -1
  23. package/legacy/next/index.js +3 -3
  24. package/legacy/state/reducer/createReducer.js +2 -6
  25. package/legacy/state/reducer/fetchReducer.js +3 -13
  26. package/legacy/state/reducer/invalidateReducer.js +1 -1
  27. package/legacy/state/reducer/setReducer.js +9 -16
  28. package/legacy/types.js +2 -6
  29. package/lib/actionTypes.d.ts +1 -0
  30. package/lib/actionTypes.d.ts.map +1 -1
  31. package/lib/actionTypes.js +2 -2
  32. package/lib/controller/Controller.d.ts +126 -6
  33. package/lib/controller/Controller.d.ts.map +1 -1
  34. package/lib/controller/Controller.js +276 -6
  35. package/lib/controller/createFetch.d.ts +2 -2
  36. package/lib/controller/createFetch.d.ts.map +1 -1
  37. package/lib/controller/createFetch.js +3 -14
  38. package/lib/controller/createInvalidate.d.ts +1 -1
  39. package/lib/controller/createInvalidate.d.ts.map +1 -1
  40. package/lib/controller/createInvalidate.js +1 -1
  41. package/lib/controller/createInvalidateAll.d.ts +1 -1
  42. package/lib/controller/createInvalidateAll.d.ts.map +1 -1
  43. package/lib/controller/createInvalidateAll.js +1 -1
  44. package/lib/controller/createOptimistic.d.ts +2 -2
  45. package/lib/controller/createOptimistic.d.ts.map +1 -1
  46. package/lib/controller/createOptimistic.js +1 -7
  47. package/lib/controller/createReset.d.ts +1 -1
  48. package/lib/controller/createReset.d.ts.map +1 -1
  49. package/lib/controller/createReset.js +1 -1
  50. package/lib/controller/{createReceive.d.ts → createSet.d.ts} +6 -6
  51. package/lib/controller/createSet.d.ts.map +1 -0
  52. package/lib/controller/createSet.js +31 -0
  53. package/lib/controller/createSubscription.d.ts +3 -3
  54. package/lib/controller/createSubscription.d.ts.map +1 -1
  55. package/lib/controller/createSubscription.js +3 -7
  56. package/lib/index.d.ts +2 -6
  57. package/lib/index.d.ts.map +1 -1
  58. package/lib/index.js +2 -5
  59. package/lib/internal.d.ts +1 -1
  60. package/lib/internal.d.ts.map +1 -1
  61. package/lib/internal.js +2 -2
  62. package/lib/manager/DevtoolsManager.d.ts +1 -1
  63. package/lib/manager/DevtoolsManager.js +2 -2
  64. package/lib/manager/LogoutManager.d.ts +4 -5
  65. package/lib/manager/LogoutManager.d.ts.map +1 -1
  66. package/lib/manager/LogoutManager.js +2 -2
  67. package/lib/manager/NetworkManager.d.ts +4 -5
  68. package/lib/manager/NetworkManager.d.ts.map +1 -1
  69. package/lib/manager/NetworkManager.js +28 -61
  70. package/lib/manager/PollingSubscription.d.ts +9 -9
  71. package/lib/manager/PollingSubscription.d.ts.map +1 -1
  72. package/lib/manager/PollingSubscription.js +18 -27
  73. package/lib/manager/SubscriptionManager.d.ts +10 -15
  74. package/lib/manager/SubscriptionManager.d.ts.map +1 -1
  75. package/lib/manager/SubscriptionManager.js +16 -42
  76. package/lib/manager/applyManager.d.ts.map +1 -1
  77. package/lib/manager/applyManager.js +2 -1
  78. package/lib/middlewareTypes.d.ts +5 -5
  79. package/lib/middlewareTypes.d.ts.map +1 -1
  80. package/lib/middlewareTypes.js +1 -1
  81. package/lib/newActions.d.ts +26 -18
  82. package/lib/newActions.d.ts.map +1 -1
  83. package/lib/newActions.js +1 -1
  84. package/lib/next/index.d.ts +2 -2
  85. package/lib/next/index.d.ts.map +1 -1
  86. package/lib/next/index.js +3 -3
  87. package/lib/state/reducer/createReducer.d.ts.map +1 -1
  88. package/lib/state/reducer/createReducer.js +2 -6
  89. package/lib/state/reducer/fetchReducer.d.ts +1 -2
  90. package/lib/state/reducer/fetchReducer.d.ts.map +1 -1
  91. package/lib/state/reducer/fetchReducer.js +3 -14
  92. package/lib/state/reducer/invalidateReducer.d.ts +3 -4
  93. package/lib/state/reducer/invalidateReducer.d.ts.map +1 -1
  94. package/lib/state/reducer/invalidateReducer.js +1 -1
  95. package/lib/state/reducer/setReducer.d.ts +2 -38
  96. package/lib/state/reducer/setReducer.d.ts.map +1 -1
  97. package/lib/state/reducer/setReducer.js +9 -17
  98. package/lib/types.d.ts +9 -30
  99. package/lib/types.d.ts.map +1 -1
  100. package/lib/types.js +2 -6
  101. package/package.json +10 -7
  102. package/src/actionTypes.ts +1 -1
  103. package/src/controller/Controller.ts +491 -10
  104. package/src/controller/createFetch.ts +4 -19
  105. package/src/controller/createInvalidate.ts +1 -1
  106. package/src/controller/createInvalidateAll.ts +1 -1
  107. package/src/controller/createOptimistic.ts +3 -9
  108. package/src/controller/createReset.ts +1 -1
  109. package/src/controller/{createReceive.ts → createSet.ts} +9 -17
  110. package/src/controller/createSubscription.ts +3 -10
  111. package/src/index.ts +2 -16
  112. package/src/internal.ts +1 -1
  113. package/src/manager/DevtoolsManager.ts +1 -1
  114. package/src/manager/LogoutManager.ts +4 -5
  115. package/src/manager/NetworkManager.ts +31 -80
  116. package/src/manager/PollingSubscription.ts +40 -38
  117. package/src/manager/SubscriptionManager.ts +22 -54
  118. package/src/manager/__tests__/__snapshots__/pollingSubscription.ts.snap +10 -8
  119. package/src/manager/__tests__/logoutManager.ts +5 -5
  120. package/src/manager/__tests__/manager.ts +2 -4
  121. package/src/manager/__tests__/networkManager.ts +8 -42
  122. package/src/manager/__tests__/pollingSubscription.ts +259 -151
  123. package/src/manager/__tests__/subscriptionManager.ts +7 -13
  124. package/src/manager/applyManager.ts +1 -0
  125. package/src/middlewareTypes.ts +5 -10
  126. package/src/newActions.ts +33 -23
  127. package/src/next/index.ts +2 -2
  128. package/src/state/__tests__/reducer.ts +59 -297
  129. package/src/state/reducer/createReducer.ts +3 -11
  130. package/src/state/reducer/fetchReducer.ts +5 -18
  131. package/src/state/reducer/invalidateReducer.ts +2 -2
  132. package/src/state/reducer/setReducer.ts +10 -22
  133. package/src/types.ts +9 -78
  134. package/ts3.4/actionTypes.d.ts +1 -0
  135. package/ts3.4/controller/Controller.d.ts +168 -6
  136. package/ts3.4/controller/createFetch.d.ts +2 -2
  137. package/ts3.4/controller/createInvalidate.d.ts +1 -1
  138. package/ts3.4/controller/createInvalidateAll.d.ts +1 -1
  139. package/ts3.4/controller/createOptimistic.d.ts +1 -1
  140. package/ts3.4/controller/createReset.d.ts +1 -1
  141. package/ts3.4/controller/{createReceive.d.ts → createSet.d.ts} +6 -6
  142. package/ts3.4/controller/createSubscription.d.ts +3 -3
  143. package/ts3.4/index.d.ts +2 -7
  144. package/ts3.4/internal.d.ts +1 -1
  145. package/ts3.4/manager/DevtoolsManager.d.ts +1 -1
  146. package/ts3.4/manager/LogoutManager.d.ts +4 -5
  147. package/ts3.4/manager/NetworkManager.d.ts +4 -5
  148. package/ts3.4/manager/PollingSubscription.d.ts +9 -9
  149. package/ts3.4/manager/SubscriptionManager.d.ts +10 -15
  150. package/ts3.4/middlewareTypes.d.ts +5 -5
  151. package/ts3.4/newActions.d.ts +26 -18
  152. package/ts3.4/next/index.d.ts +2 -2
  153. package/ts3.4/state/reducer/fetchReducer.d.ts +1 -2
  154. package/ts3.4/state/reducer/invalidateReducer.d.ts +3 -4
  155. package/ts3.4/state/reducer/setReducer.d.ts +2 -38
  156. package/ts3.4/types.d.ts +8 -30
  157. package/legacy/compatibleActions.js +0 -2
  158. package/legacy/controller/BaseController.js +0 -289
  159. package/legacy/controller/createReceive.js +0 -36
  160. package/legacy/endpoint/index.js +0 -2
  161. package/legacy/endpoint/shapes.js +0 -2
  162. package/legacy/endpoint/types.js +0 -2
  163. package/legacy/legacyActions.js +0 -2
  164. package/legacy/next/Controller.js +0 -24
  165. package/legacy/previousActions.js +0 -2
  166. package/legacy/state/applyUpdatersToResults.js +0 -4
  167. package/legacy/state/legacy-actions/createFetch.js +0 -62
  168. package/legacy/state/legacy-actions/createReceive.js +0 -37
  169. package/legacy/state/legacy-actions/createReceiveError.js +0 -28
  170. package/legacy/state/legacy-actions/index.js +0 -4
  171. package/legacy/state/reducerInstance.js +0 -9
  172. package/lib/compatibleActions.d.ts +0 -47
  173. package/lib/compatibleActions.d.ts.map +0 -1
  174. package/lib/compatibleActions.js +0 -2
  175. package/lib/controller/BaseController.d.ts +0 -128
  176. package/lib/controller/BaseController.d.ts.map +0 -1
  177. package/lib/controller/BaseController.js +0 -289
  178. package/lib/controller/createReceive.d.ts.map +0 -1
  179. package/lib/controller/createReceive.js +0 -36
  180. package/lib/endpoint/index.d.ts +0 -3
  181. package/lib/endpoint/index.d.ts.map +0 -1
  182. package/lib/endpoint/index.js +0 -2
  183. package/lib/endpoint/shapes.d.ts +0 -25
  184. package/lib/endpoint/shapes.d.ts.map +0 -1
  185. package/lib/endpoint/shapes.js +0 -2
  186. package/lib/endpoint/types.d.ts +0 -45
  187. package/lib/endpoint/types.d.ts.map +0 -1
  188. package/lib/endpoint/types.js +0 -2
  189. package/lib/legacyActions.d.ts +0 -92
  190. package/lib/legacyActions.d.ts.map +0 -1
  191. package/lib/legacyActions.js +0 -2
  192. package/lib/next/Controller.d.ts +0 -14
  193. package/lib/next/Controller.d.ts.map +0 -1
  194. package/lib/next/Controller.js +0 -24
  195. package/lib/previousActions.d.ts +0 -91
  196. package/lib/previousActions.d.ts.map +0 -1
  197. package/lib/previousActions.js +0 -2
  198. package/lib/state/applyUpdatersToResults.d.ts +0 -13
  199. package/lib/state/applyUpdatersToResults.d.ts.map +0 -1
  200. package/lib/state/applyUpdatersToResults.js +0 -7
  201. package/lib/state/legacy-actions/createFetch.d.ts +0 -19
  202. package/lib/state/legacy-actions/createFetch.d.ts.map +0 -1
  203. package/lib/state/legacy-actions/createFetch.js +0 -62
  204. package/lib/state/legacy-actions/createReceive.d.ts +0 -14
  205. package/lib/state/legacy-actions/createReceive.d.ts.map +0 -1
  206. package/lib/state/legacy-actions/createReceive.js +0 -37
  207. package/lib/state/legacy-actions/createReceiveError.d.ts +0 -9
  208. package/lib/state/legacy-actions/createReceiveError.d.ts.map +0 -1
  209. package/lib/state/legacy-actions/createReceiveError.js +0 -28
  210. package/lib/state/legacy-actions/index.d.ts +0 -4
  211. package/lib/state/legacy-actions/index.d.ts.map +0 -1
  212. package/lib/state/legacy-actions/index.js +0 -4
  213. package/lib/state/reducerInstance.d.ts +0 -7
  214. package/lib/state/reducerInstance.d.ts.map +0 -1
  215. package/lib/state/reducerInstance.js +0 -9
  216. package/src/compatibleActions.ts +0 -96
  217. package/src/controller/BaseController.ts +0 -508
  218. package/src/endpoint/index.ts +0 -14
  219. package/src/endpoint/shapes.ts +0 -53
  220. package/src/endpoint/types.ts +0 -72
  221. package/src/legacyActions.ts +0 -163
  222. package/src/manager/__tests__/__snapshots__/pollingSubscription-endpoint.ts.snap +0 -49
  223. package/src/manager/__tests__/networkManager-legacy.ts +0 -394
  224. package/src/manager/__tests__/pollingSubscription-endpoint.ts +0 -423
  225. package/src/next/Controller.ts +0 -39
  226. package/src/previousActions.ts +0 -159
  227. package/src/state/__tests__/applyUpdatersToResults.ts +0 -40
  228. package/src/state/applyUpdatersToResults.ts +0 -29
  229. package/src/state/legacy-actions/createFetch.ts +0 -95
  230. package/src/state/legacy-actions/createReceive.ts +0 -68
  231. package/src/state/legacy-actions/createReceiveError.ts +0 -43
  232. package/src/state/legacy-actions/index.ts +0 -3
  233. package/src/state/reducerInstance.ts +0 -14
  234. package/ts3.4/compatibleActions.d.ts +0 -47
  235. package/ts3.4/controller/BaseController.d.ts +0 -170
  236. package/ts3.4/endpoint/index.d.ts +0 -3
  237. package/ts3.4/endpoint/shapes.d.ts +0 -25
  238. package/ts3.4/endpoint/types.d.ts +0 -45
  239. package/ts3.4/legacyActions.d.ts +0 -95
  240. package/ts3.4/next/Controller.d.ts +0 -14
  241. package/ts3.4/previousActions.d.ts +0 -94
  242. package/ts3.4/state/applyUpdatersToResults.d.ts +0 -13
  243. package/ts3.4/state/legacy-actions/createFetch.d.ts +0 -19
  244. package/ts3.4/state/legacy-actions/createReceive.d.ts +0 -14
  245. package/ts3.4/state/legacy-actions/createReceiveError.d.ts +0 -9
  246. package/ts3.4/state/legacy-actions/index.d.ts +0 -4
  247. package/ts3.4/state/reducerInstance.d.ts +0 -7
@@ -1,289 +0,0 @@
1
- import { WeakEntityMap, ExpiryStatus, denormalizeCached, isEntity } from '@data-client/normalizr';
2
- import { inferResults, validateInference } from '@data-client/normalizr';
3
- import createInvalidate from './createInvalidate.js';
4
- import createInvalidateAll from './createInvalidateAll.js';
5
- import createReceive from './createReceive.js';
6
- import createReset from './createReset.js';
7
- import { createUnsubscription, createSubscription } from './createSubscription.js';
8
- import { initialState } from '../state/reducer/createReducer.js';
9
- import selectMeta from '../state/selectMeta.js';
10
- const unsetDispatch = action => {
11
- throw new Error(`Dispatching while constructing your middleware is not allowed. ` + `Other middleware would not be applied to this dispatch.`);
12
- };
13
- const unsetState = () => {
14
- // This is only the value until it is set by the CacheProvider
15
- /* istanbul ignore next */
16
- return initialState;
17
- };
18
-
19
- /**
20
- * Imperative control of Rest Hooks store
21
- * @see https://resthooks.io/docs/api/Controller
22
- */
23
- export default class Controller {
24
- /**
25
- * Dispatches an action to Rest Hooks reducer.
26
- *
27
- * @see https://resthooks.io/docs/api/Controller#dispatch
28
- */
29
-
30
- /**
31
- * Gets the latest state snapshot that is fully committed.
32
- *
33
- * This can be useful for imperative use-cases like event handlers.
34
- * This should *not* be used to render; instead useSuspense() or useCache()
35
- * @see https://resthooks.io/docs/api/Controller#getState
36
- */
37
-
38
- constructor({
39
- dispatch = unsetDispatch,
40
- getState = unsetState,
41
- globalCache = {
42
- entities: {},
43
- results: {}
44
- }
45
- } = {}) {
46
- /*************** Action Dispatchers ***************/
47
- /**
48
- * Forces refetching and suspense on useSuspense with the same Endpoint and parameters.
49
- * @see https://resthooks.io/docs/api/Controller#invalidate
50
- */
51
- this.invalidate = (endpoint, ...args) => args[0] !== null ? this.dispatch(createInvalidate(endpoint, {
52
- args: args
53
- })) : Promise.resolve();
54
- /**
55
- * Forces refetching and suspense on useSuspense on all matching endpoint result keys.
56
- * @see https://resthooks.io/docs/api/Controller#invalidateAll
57
- */
58
- this.invalidateAll = options => this.dispatch(createInvalidateAll(key => options.testKey(key)));
59
- /**
60
- * Resets the entire Rest Hooks cache. All inflight requests will not resolve.
61
- * @see https://resthooks.io/docs/api/Controller#resetEntireStore
62
- */
63
- this.resetEntireStore = () => this.dispatch(createReset());
64
- /**
65
- * Stores response in cache for given Endpoint and args.
66
- * @see https://resthooks.io/docs/api/Controller#set
67
- */
68
- this.setResponse = (endpoint, ...rest) => {
69
- const response = rest[rest.length - 1];
70
- const action = createReceive(endpoint, {
71
- args: rest.slice(0, rest.length - 1),
72
- response
73
- });
74
- return this.dispatch(action);
75
- };
76
- // TODO: deprecate
77
- /**
78
- * Another name for setResponse
79
- * @see https://resthooks.io/docs/api/Controller#setResponse
80
- */
81
- /* istanbul ignore next */
82
- this.receive = (endpoint, ...rest) => {
83
- /* istanbul ignore next */
84
- return this.setResponse(endpoint, ...rest);
85
- };
86
- /**
87
- * Stores the result of Endpoint and args as the error provided.
88
- * @see https://resthooks.io/docs/api/Controller#setError
89
- */
90
- this.setError = (endpoint, ...rest) => {
91
- const response = rest[rest.length - 1];
92
- const action = createReceive(endpoint, {
93
- args: rest.slice(0, rest.length - 1),
94
- response,
95
- error: true
96
- });
97
- return this.dispatch(action);
98
- };
99
- // TODO: deprecate
100
- /**
101
- * Another name for setError
102
- * @see https://resthooks.io/docs/api/Controller#setError
103
- */
104
- /* istanbul ignore next */
105
- this.receiveError = (endpoint, ...rest) => {
106
- /* istanbul ignore next */
107
- return this.setError(endpoint, ...rest);
108
- };
109
- /**
110
- * Resolves an inflight fetch. `fetchedAt` should `fetch`'s `createdAt`
111
- * @see https://resthooks.io/docs/api/Controller#resolve
112
- */
113
- this.resolve = (endpoint, meta) => {
114
- return this.dispatch(createReceive(endpoint, meta));
115
- };
116
- /**
117
- * Marks a new subscription to a given Endpoint.
118
- * @see https://resthooks.io/docs/api/Controller#subscribe
119
- */
120
- this.subscribe = (endpoint, ...args) => args[0] !== null ? this.dispatch(createSubscription(endpoint, {
121
- args: args
122
- })) : Promise.resolve();
123
- /**
124
- * Marks completion of subscription to a given Endpoint.
125
- * @see https://resthooks.io/docs/api/Controller#unsubscribe
126
- */
127
- this.unsubscribe = (endpoint, ...args) => args[0] !== null ? this.dispatch(createUnsubscription(endpoint, {
128
- args: args
129
- })) : Promise.resolve();
130
- /*************** More ***************/
131
- /* TODO:
132
- abort = <E extends EndpointInterface>(
133
- endpoint: E,
134
- ...args: readonly [...Parameters<E>]
135
- ): Promise<void>
136
- */
137
- /**
138
- * Gets a snapshot (https://resthooks.io/docs/api/Snapshot)
139
- * @see https://resthooks.io/docs/api/Controller#snapshot
140
- */
141
- this.snapshot = (state, fetchedAt) => {
142
- return new Snapshot(this, state, fetchedAt);
143
- };
144
- /**
145
- * Gets the error, if any, for a given endpoint. Returns undefined for no errors.
146
- * @see https://resthooks.io/docs/api/Controller#getError
147
- */
148
- this.getError = (endpoint, ...rest) => {
149
- if (rest[0] === null) return;
150
- const state = rest[rest.length - 1];
151
- // this is typescript generics breaking
152
- const args = rest.slice(0, rest.length - 1);
153
- const key = endpoint.key(...args);
154
- const meta = selectMeta(state, key);
155
- const results = state.results[key];
156
- if (results !== undefined && (meta == null ? void 0 : meta.errorPolicy) === 'soft') return;
157
- return meta == null ? void 0 : meta.error;
158
- };
159
- /**
160
- * Gets the (globally referentially stable) response for a given endpoint/args pair from state given.
161
- * @see https://resthooks.io/docs/api/Controller#getResponse
162
- */
163
- this.getResponse = (endpoint, ...rest) => {
164
- const state = rest[rest.length - 1];
165
- // this is typescript generics breaking
166
- const args = rest.slice(0, rest.length - 1);
167
- const isActive = args.length !== 1 || args[0] !== null;
168
- const key = isActive ? endpoint.key(...args) : '';
169
- const cacheResults = isActive ? state.results[key] : undefined;
170
- const schema = endpoint.schema;
171
- const meta = selectMeta(state, key);
172
- let expiresAt = meta == null ? void 0 : meta.expiresAt;
173
- let invalidResults = false;
174
- let results;
175
- if (cacheResults === undefined && endpoint.schema !== undefined) {
176
- results = inferResults(endpoint.schema, args, state.indexes, state.entities);
177
- invalidResults = !validateInference(results);
178
- if (!expiresAt && invalidResults) expiresAt = 1;
179
- } else {
180
- results = cacheResults;
181
- }
182
- if (!isActive) {
183
- return {
184
- data: results,
185
- expiryStatus: ExpiryStatus.Valid,
186
- expiresAt: Infinity
187
- };
188
- }
189
- if (!endpoint.schema || !schemaHasEntity(endpoint.schema)) {
190
- return {
191
- data: results,
192
- expiryStatus: meta != null && meta.invalidated ? ExpiryStatus.Invalid : cacheResults && !endpoint.invalidIfStale ? ExpiryStatus.Valid : ExpiryStatus.InvalidIfStale,
193
- expiresAt: expiresAt || 0
194
- };
195
- }
196
-
197
- // Warn users with bad configurations
198
- /* istanbul ignore next */
199
- if (process.env.NODE_ENV !== 'production' && schema && isEntity(schema)) {
200
- if (Array.isArray(results)) {
201
- throw new Error(`fetch key ${key} has list results when single result is expected`);
202
- }
203
- if (typeof results === 'object') {
204
- throw new Error(`fetch key ${key} has object results when entity's primary key (string) result is expected`);
205
- }
206
- }
207
- if (!this.globalCache.results[key]) this.globalCache.results[key] = new WeakEntityMap();
208
-
209
- // second argument is false if any entities are missing
210
- // eslint-disable-next-line prefer-const
211
- const {
212
- data,
213
- paths
214
- } = denormalizeCached(results, schema, state.entities, this.globalCache.entities, this.globalCache.results[key], args);
215
- const invalidDenormalize = typeof data === 'symbol';
216
-
217
- // fallback to entity expiry time
218
- if (!expiresAt) {
219
- expiresAt = entityExpiresAt(paths, state.entityMeta);
220
- }
221
-
222
- // https://resthooks.io/docs/concepts/expiry-policy#expiry-status
223
- // we don't track the difference between stale or fresh because that is tied to triggering
224
- // conditions
225
- const expiryStatus = meta != null && meta.invalidated || invalidDenormalize && !(meta != null && meta.error) ? ExpiryStatus.Invalid : invalidDenormalize || endpoint.invalidIfStale || invalidResults ? ExpiryStatus.InvalidIfStale : ExpiryStatus.Valid;
226
- return {
227
- data,
228
- expiryStatus,
229
- expiresAt
230
- };
231
- };
232
- this.dispatch = dispatch;
233
- this.getState = getState;
234
- this.globalCache = globalCache;
235
- }
236
- }
237
-
238
- // benchmark: https://www.measurethat.net/Benchmarks/Show/24691/0/min-reducer-vs-imperative-with-paths
239
- // earliest expiry dictates age
240
- function entityExpiresAt(paths, entityMeta) {
241
- let expiresAt = Infinity;
242
- for (const {
243
- pk,
244
- key
245
- } of paths) {
246
- var _entityMeta$key, _entityMeta$key$pk;
247
- const entityExpiry = (_entityMeta$key = entityMeta[key]) == null ? void 0 : (_entityMeta$key$pk = _entityMeta$key[pk]) == null ? void 0 : _entityMeta$key$pk.expiresAt;
248
- // expiresAt will always resolve to false with any comparison
249
- if (entityExpiry < expiresAt) expiresAt = entityExpiry;
250
- }
251
- return expiresAt;
252
- }
253
-
254
- /** Determine whether the schema has any entities.
255
- *
256
- * Without entities, denormalization is not needed, and results should not be inferred.
257
- */
258
- function schemaHasEntity(schema) {
259
- if (isEntity(schema)) return true;
260
- if (Array.isArray(schema)) return schema.length !== 0 && schemaHasEntity(schema[0]);
261
- if (schema && (typeof schema === 'object' || typeof schema === 'function')) {
262
- const nestedSchema = 'schema' in schema ? schema.schema : schema;
263
- if (typeof nestedSchema === 'function') {
264
- return schemaHasEntity(nestedSchema);
265
- }
266
- return Object.values(nestedSchema).some(x => schemaHasEntity(x));
267
- }
268
- return false;
269
- }
270
- class Snapshot {
271
- constructor(controller, state, fetchedAt = 0) {
272
- this.state = void 0;
273
- this.controller = void 0;
274
- this.fetchedAt = void 0;
275
- /*************** Data Access ***************/
276
- /** @see https://resthooks.io/docs/api/Snapshot#getResponse */
277
- this.getResponse = (endpoint, ...args) => {
278
- return this.controller.getResponse(endpoint, ...args, this.state);
279
- };
280
- /** @see https://resthooks.io/docs/api/Snapshot#getError */
281
- this.getError = (endpoint, ...args) => {
282
- return this.controller.getError(endpoint, ...args, this.state);
283
- };
284
- this.state = state;
285
- this.controller = controller;
286
- this.fetchedAt = fetchedAt;
287
- }
288
- }
289
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXZWFrRW50aXR5TWFwIiwiRXhwaXJ5U3RhdHVzIiwiZGVub3JtYWxpemVDYWNoZWQiLCJpc0VudGl0eSIsImluZmVyUmVzdWx0cyIsInZhbGlkYXRlSW5mZXJlbmNlIiwiY3JlYXRlSW52YWxpZGF0ZSIsImNyZWF0ZUludmFsaWRhdGVBbGwiLCJjcmVhdGVSZWNlaXZlIiwiY3JlYXRlUmVzZXQiLCJjcmVhdGVVbnN1YnNjcmlwdGlvbiIsImNyZWF0ZVN1YnNjcmlwdGlvbiIsImluaXRpYWxTdGF0ZSIsInNlbGVjdE1ldGEiLCJ1bnNldERpc3BhdGNoIiwiYWN0aW9uIiwiRXJyb3IiLCJ1bnNldFN0YXRlIiwiQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiZGlzcGF0Y2giLCJnZXRTdGF0ZSIsImdsb2JhbENhY2hlIiwiZW50aXRpZXMiLCJyZXN1bHRzIiwiaW52YWxpZGF0ZSIsImVuZHBvaW50IiwiYXJncyIsIlByb21pc2UiLCJyZXNvbHZlIiwiaW52YWxpZGF0ZUFsbCIsIm9wdGlvbnMiLCJrZXkiLCJ0ZXN0S2V5IiwicmVzZXRFbnRpcmVTdG9yZSIsInNldFJlc3BvbnNlIiwicmVzdCIsInJlc3BvbnNlIiwibGVuZ3RoIiwic2xpY2UiLCJyZWNlaXZlIiwic2V0RXJyb3IiLCJlcnJvciIsInJlY2VpdmVFcnJvciIsIm1ldGEiLCJzdWJzY3JpYmUiLCJ1bnN1YnNjcmliZSIsInNuYXBzaG90Iiwic3RhdGUiLCJmZXRjaGVkQXQiLCJTbmFwc2hvdCIsImdldEVycm9yIiwidW5kZWZpbmVkIiwiZXJyb3JQb2xpY3kiLCJnZXRSZXNwb25zZSIsImlzQWN0aXZlIiwiY2FjaGVSZXN1bHRzIiwic2NoZW1hIiwiZXhwaXJlc0F0IiwiaW52YWxpZFJlc3VsdHMiLCJpbmRleGVzIiwiZGF0YSIsImV4cGlyeVN0YXR1cyIsIlZhbGlkIiwiSW5maW5pdHkiLCJzY2hlbWFIYXNFbnRpdHkiLCJpbnZhbGlkYXRlZCIsIkludmFsaWQiLCJpbnZhbGlkSWZTdGFsZSIsIkludmFsaWRJZlN0YWxlIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiQXJyYXkiLCJpc0FycmF5IiwicGF0aHMiLCJpbnZhbGlkRGVub3JtYWxpemUiLCJlbnRpdHlFeHBpcmVzQXQiLCJlbnRpdHlNZXRhIiwicGsiLCJfZW50aXR5TWV0YSRrZXkiLCJfZW50aXR5TWV0YSRrZXkkcGsiLCJlbnRpdHlFeHBpcnkiLCJuZXN0ZWRTY2hlbWEiLCJPYmplY3QiLCJ2YWx1ZXMiLCJzb21lIiwieCIsImNvbnRyb2xsZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJvbGxlci9CYXNlQ29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEVycm9yVHlwZXMsXG4gIFNuYXBzaG90SW50ZXJmYWNlLFxuICBEZW5vcm1hbGl6ZUNhY2hlLFxuICBTY2hlbWEsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuaW1wb3J0IHtcbiAgV2Vha0VudGl0eU1hcCxcbiAgRXhwaXJ5U3RhdHVzLFxuICBFbmRwb2ludEludGVyZmFjZSxcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG4gIERlbm9ybWFsaXplTnVsbGFibGUsXG4gIFBhdGgsXG4gIGRlbm9ybWFsaXplQ2FjaGVkLFxuICBpc0VudGl0eSxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5pbXBvcnQgeyBpbmZlclJlc3VsdHMsIHZhbGlkYXRlSW5mZXJlbmNlIH0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbmltcG9ydCBjcmVhdGVJbnZhbGlkYXRlIGZyb20gJy4vY3JlYXRlSW52YWxpZGF0ZS5qcyc7XG5pbXBvcnQgY3JlYXRlSW52YWxpZGF0ZUFsbCBmcm9tICcuL2NyZWF0ZUludmFsaWRhdGVBbGwuanMnO1xuaW1wb3J0IGNyZWF0ZVJlY2VpdmUgZnJvbSAnLi9jcmVhdGVSZWNlaXZlLmpzJztcbmltcG9ydCBjcmVhdGVSZXNldCBmcm9tICcuL2NyZWF0ZVJlc2V0LmpzJztcbmltcG9ydCB7XG4gIGNyZWF0ZVVuc3Vic2NyaXB0aW9uLFxuICBjcmVhdGVTdWJzY3JpcHRpb24sXG59IGZyb20gJy4vY3JlYXRlU3Vic2NyaXB0aW9uLmpzJztcbmltcG9ydCB0eXBlIHsgRW5kcG9pbnRVcGRhdGVGdW5jdGlvbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuaW1wb3J0IHsgaW5pdGlhbFN0YXRlIH0gZnJvbSAnLi4vc3RhdGUvcmVkdWNlci9jcmVhdGVSZWR1Y2VyLmpzJztcbmltcG9ydCBzZWxlY3RNZXRhIGZyb20gJy4uL3N0YXRlL3NlbGVjdE1ldGEuanMnO1xuaW1wb3J0IHR5cGUge1xuICBBY3Rpb25UeXBlcyBhcyBCcm9hZEFjdGlvblR5cGVzLFxuICBDb21iaW5lZEFjdGlvblR5cGVzLFxuICBTdGF0ZSxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgdHlwZSBHZW5lcmljRGlzcGF0Y2ggPSAodmFsdWU6IGFueSkgPT4gUHJvbWlzZTx2b2lkPjtcbmV4cG9ydCB0eXBlIENvbXBhdGlibGVEaXNwYXRjaCA9ICh2YWx1ZTogQ29tYmluZWRBY3Rpb25UeXBlcykgPT4gUHJvbWlzZTx2b2lkPjtcbnR5cGUgUHJldmlvdXNEaXNwYXRjaCA9ICh2YWx1ZTogQnJvYWRBY3Rpb25UeXBlcykgPT4gUHJvbWlzZTx2b2lkPjtcblxuaW50ZXJmYWNlIENvbnN0cnVjdG9yUHJvcHM8RCBleHRlbmRzIEdlbmVyaWNEaXNwYXRjaCA9IENvbXBhdGlibGVEaXNwYXRjaD4ge1xuICBkaXNwYXRjaD86IEQ7XG4gIGdldFN0YXRlPzogKCkgPT4gU3RhdGU8dW5rbm93bj47XG4gIGdsb2JhbENhY2hlPzogRGVub3JtYWxpemVDYWNoZTtcbn1cblxuY29uc3QgdW5zZXREaXNwYXRjaCA9IChhY3Rpb246IHVua25vd24pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgIGBEaXNwYXRjaGluZyB3aGlsZSBjb25zdHJ1Y3RpbmcgeW91ciBtaWRkbGV3YXJlIGlzIG5vdCBhbGxvd2VkLiBgICtcbiAgICAgIGBPdGhlciBtaWRkbGV3YXJlIHdvdWxkIG5vdCBiZSBhcHBsaWVkIHRvIHRoaXMgZGlzcGF0Y2guYCxcbiAgKTtcbn07XG5jb25zdCB1bnNldFN0YXRlID0gKCk6IFN0YXRlPHVua25vd24+ID0+IHtcbiAgLy8gVGhpcyBpcyBvbmx5IHRoZSB2YWx1ZSB1bnRpbCBpdCBpcyBzZXQgYnkgdGhlIENhY2hlUHJvdmlkZXJcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuIGluaXRpYWxTdGF0ZTtcbn07XG5cbi8qKlxuICogSW1wZXJhdGl2ZSBjb250cm9sIG9mIFJlc3QgSG9va3Mgc3RvcmVcbiAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250cm9sbGVyPFxuICBEIGV4dGVuZHMgR2VuZXJpY0Rpc3BhdGNoID0gQ29tcGF0aWJsZURpc3BhdGNoLFxuPiB7XG4gIC8qKlxuICAgKiBEaXNwYXRjaGVzIGFuIGFjdGlvbiB0byBSZXN0IEhvb2tzIHJlZHVjZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNkaXNwYXRjaFxuICAgKi9cbiAgZGVjbGFyZSByZWFkb25seSBkaXNwYXRjaDogRDtcbiAgLyoqXG4gICAqIEdldHMgdGhlIGxhdGVzdCBzdGF0ZSBzbmFwc2hvdCB0aGF0IGlzIGZ1bGx5IGNvbW1pdHRlZC5cbiAgICpcbiAgICogVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBpbXBlcmF0aXZlIHVzZS1jYXNlcyBsaWtlIGV2ZW50IGhhbmRsZXJzLlxuICAgKiBUaGlzIHNob3VsZCAqbm90KiBiZSB1c2VkIHRvIHJlbmRlcjsgaW5zdGVhZCB1c2VTdXNwZW5zZSgpIG9yIHVzZUNhY2hlKClcbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI2dldFN0YXRlXG4gICAqL1xuICBkZWNsYXJlIHJlYWRvbmx5IGdldFN0YXRlOiAoKSA9PiBTdGF0ZTx1bmtub3duPjtcbiAgZGVjbGFyZSByZWFkb25seSBnbG9iYWxDYWNoZTogRGVub3JtYWxpemVDYWNoZTtcblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgZGlzcGF0Y2ggPSB1bnNldERpc3BhdGNoIGFzIGFueSxcbiAgICBnZXRTdGF0ZSA9IHVuc2V0U3RhdGUsXG4gICAgZ2xvYmFsQ2FjaGUgPSB7XG4gICAgICBlbnRpdGllczoge30sXG4gICAgICByZXN1bHRzOiB7fSxcbiAgICB9LFxuICB9OiBDb25zdHJ1Y3RvclByb3BzPEQ+ID0ge30pIHtcbiAgICB0aGlzLmRpc3BhdGNoID0gZGlzcGF0Y2g7XG4gICAgdGhpcy5nZXRTdGF0ZSA9IGdldFN0YXRlO1xuICAgIHRoaXMuZ2xvYmFsQ2FjaGUgPSBnbG9iYWxDYWNoZTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKiogQWN0aW9uIERpc3BhdGNoZXJzICoqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogRm9yY2VzIHJlZmV0Y2hpbmcgYW5kIHN1c3BlbnNlIG9uIHVzZVN1c3BlbnNlIHdpdGggdGhlIHNhbWUgRW5kcG9pbnQgYW5kIHBhcmFtZXRlcnMuXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNpbnZhbGlkYXRlXG4gICAqL1xuICBpbnZhbGlkYXRlID0gPEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZT4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dIHwgcmVhZG9ubHkgW251bGxdXG4gICk6IFByb21pc2U8dm9pZD4gPT5cbiAgICBhcmdzWzBdICE9PSBudWxsXG4gICAgICA/IHRoaXMuZGlzcGF0Y2goXG4gICAgICAgICAgY3JlYXRlSW52YWxpZGF0ZShlbmRwb2ludCwge1xuICAgICAgICAgICAgYXJnczogYXJncyBhcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0sXG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgIDogUHJvbWlzZS5yZXNvbHZlKCk7XG5cbiAgLyoqXG4gICAqIEZvcmNlcyByZWZldGNoaW5nIGFuZCBzdXNwZW5zZSBvbiB1c2VTdXNwZW5zZSBvbiBhbGwgbWF0Y2hpbmcgZW5kcG9pbnQgcmVzdWx0IGtleXMuXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNpbnZhbGlkYXRlQWxsXG4gICAqL1xuICBpbnZhbGlkYXRlQWxsID0gKG9wdGlvbnM6IHsgdGVzdEtleTogKGtleTogc3RyaW5nKSA9PiBib29sZWFuIH0pID0+XG4gICAgdGhpcy5kaXNwYXRjaChjcmVhdGVJbnZhbGlkYXRlQWxsKChrZXk6IHN0cmluZykgPT4gb3B0aW9ucy50ZXN0S2V5KGtleSkpKTtcblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBlbnRpcmUgUmVzdCBIb29rcyBjYWNoZS4gQWxsIGluZmxpZ2h0IHJlcXVlc3RzIHdpbGwgbm90IHJlc29sdmUuXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNyZXNldEVudGlyZVN0b3JlXG4gICAqL1xuICByZXNldEVudGlyZVN0b3JlID0gKCk6IFByb21pc2U8dm9pZD4gPT4gdGhpcy5kaXNwYXRjaChjcmVhdGVSZXNldCgpKTtcblxuICAvKipcbiAgICogU3RvcmVzIHJlc3BvbnNlIGluIGNhY2hlIGZvciBnaXZlbiBFbmRwb2ludCBhbmQgYXJncy5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI3NldFxuICAgKi9cbiAgc2V0UmVzcG9uc2UgPSA8XG4gICAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgICAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPjtcbiAgICB9LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLnJlc3Q6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+LCBhbnldXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlOiBSZXNvbHZlVHlwZTxFPiA9IHJlc3RbcmVzdC5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBhY3Rpb24gPSBjcmVhdGVSZWNlaXZlKGVuZHBvaW50LCB7XG4gICAgICBhcmdzOiByZXN0LnNsaWNlKDAsIHJlc3QubGVuZ3RoIC0gMSkgYXMgUGFyYW1ldGVyczxFPixcbiAgICAgIHJlc3BvbnNlLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKGFjdGlvbik7XG4gIH07XG5cbiAgLy8gVE9ETzogZGVwcmVjYXRlXG4gIC8qKlxuICAgKiBBbm90aGVyIG5hbWUgZm9yIHNldFJlc3BvbnNlXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNzZXRSZXNwb25zZVxuICAgKi9cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gcmVjZWl2ZSA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+O1xuICAgIH0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT4sIGFueV1cbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdGhpcy5zZXRSZXNwb25zZShlbmRwb2ludCwgLi4ucmVzdCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFN0b3JlcyB0aGUgcmVzdWx0IG9mIEVuZHBvaW50IGFuZCBhcmdzIGFzIHRoZSBlcnJvciBwcm92aWRlZC5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI3NldEVycm9yXG4gICAqL1xuICBzZXRFcnJvciA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+O1xuICAgIH0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT4sIEVycm9yXVxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCByZXNwb25zZTogRXJyb3IgPSByZXN0W3Jlc3QubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgYWN0aW9uID0gY3JlYXRlUmVjZWl2ZShlbmRwb2ludCwge1xuICAgICAgYXJnczogcmVzdC5zbGljZSgwLCByZXN0Lmxlbmd0aCAtIDEpIGFzIFBhcmFtZXRlcnM8RT4sXG4gICAgICByZXNwb25zZSxcbiAgICAgIGVycm9yOiB0cnVlLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKGFjdGlvbik7XG4gIH07XG5cbiAgLy8gVE9ETzogZGVwcmVjYXRlXG4gIC8qKlxuICAgKiBBbm90aGVyIG5hbWUgZm9yIHNldEVycm9yXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNzZXRFcnJvclxuICAgKi9cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gcmVjZWl2ZUVycm9yID0gPFxuICAgIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZSAmIHtcbiAgICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gICAgfSxcbiAgPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5yZXN0OiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPiwgRXJyb3JdXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHRoaXMuc2V0RXJyb3IoZW5kcG9pbnQsIC4uLnJlc3QpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhbiBpbmZsaWdodCBmZXRjaC4gYGZldGNoZWRBdGAgc2hvdWxkIGBmZXRjaGAncyBgY3JlYXRlZEF0YFxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjcmVzb2x2ZVxuICAgKi9cbiAgcmVzb2x2ZSA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+O1xuICAgIH0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgbWV0YTpcbiAgICAgIHwge1xuICAgICAgICAgIGFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XTtcbiAgICAgICAgICByZXNwb25zZTogRXJyb3I7XG4gICAgICAgICAgZmV0Y2hlZEF0OiBudW1iZXI7XG4gICAgICAgICAgZXJyb3I6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIGFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XTtcbiAgICAgICAgICByZXNwb25zZTogYW55O1xuICAgICAgICAgIGZldGNoZWRBdDogbnVtYmVyO1xuICAgICAgICAgIGVycm9yPzogZmFsc2U7XG4gICAgICAgIH0sXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKGNyZWF0ZVJlY2VpdmUoZW5kcG9pbnQsIG1ldGEgYXMgYW55KSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIE1hcmtzIGEgbmV3IHN1YnNjcmlwdGlvbiB0byBhIGdpdmVuIEVuZHBvaW50LlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjc3Vic2NyaWJlXG4gICAqL1xuICBzdWJzY3JpYmUgPSA8XG4gICAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlPFxuICAgICAgRmV0Y2hGdW5jdGlvbixcbiAgICAgIFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCB8IGZhbHNlXG4gICAgPixcbiAgPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5hcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0gfCByZWFkb25seSBbbnVsbF1cbiAgKTogUHJvbWlzZTx2b2lkPiA9PlxuICAgIGFyZ3NbMF0gIT09IG51bGxcbiAgICAgID8gdGhpcy5kaXNwYXRjaChcbiAgICAgICAgICBjcmVhdGVTdWJzY3JpcHRpb24oZW5kcG9pbnQsIHtcbiAgICAgICAgICAgIGFyZ3M6IGFyZ3MgYXMgcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICA6IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIC8qKlxuICAgKiBNYXJrcyBjb21wbGV0aW9uIG9mIHN1YnNjcmlwdGlvbiB0byBhIGdpdmVuIEVuZHBvaW50LlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjdW5zdWJzY3JpYmVcbiAgICovXG4gIHVuc3Vic2NyaWJlID0gPFxuICAgIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZTxcbiAgICAgIEZldGNoRnVuY3Rpb24sXG4gICAgICBTY2hlbWEgfCB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQgfCBmYWxzZVxuICAgID4sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dIHwgcmVhZG9ubHkgW251bGxdXG4gICk6IFByb21pc2U8dm9pZD4gPT5cbiAgICBhcmdzWzBdICE9PSBudWxsXG4gICAgICA/IHRoaXMuZGlzcGF0Y2goXG4gICAgICAgICAgY3JlYXRlVW5zdWJzY3JpcHRpb24oZW5kcG9pbnQsIHtcbiAgICAgICAgICAgIGFyZ3M6IGFyZ3MgYXMgcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICA6IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gIC8qKioqKioqKioqKioqKiogTW9yZSAqKioqKioqKioqKioqKiovXG5cbiAgLyogVE9ETzpcbiAgYWJvcnQgPSA8RSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5hcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl1cbiAgKTogUHJvbWlzZTx2b2lkPlxuICAqL1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgc25hcHNob3QgKGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL1NuYXBzaG90KVxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjc25hcHNob3RcbiAgICovXG4gIHNuYXBzaG90ID0gKHN0YXRlOiBTdGF0ZTx1bmtub3duPiwgZmV0Y2hlZEF0PzogbnVtYmVyKTogU25hcHNob3RJbnRlcmZhY2UgPT4ge1xuICAgIHJldHVybiBuZXcgU25hcHNob3QodGhpcywgc3RhdGUsIGZldGNoZWRBdCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGVycm9yLCBpZiBhbnksIGZvciBhIGdpdmVuIGVuZHBvaW50LiBSZXR1cm5zIHVuZGVmaW5lZCBmb3Igbm8gZXJyb3JzLlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjZ2V0RXJyb3JcbiAgICovXG4gIGdldEVycm9yID0gPFxuICAgIEUgZXh0ZW5kcyBQaWNrPEVuZHBvaW50SW50ZXJmYWNlLCAna2V5Jz4sXG4gICAgQXJncyBleHRlbmRzIHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEVbJ2tleSddPl0gfCByZWFkb25seSBbbnVsbF0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogWy4uLkFyZ3MsIFN0YXRlPHVua25vd24+XVxuICApOiBFcnJvclR5cGVzIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAocmVzdFswXSA9PT0gbnVsbCkgcmV0dXJuO1xuICAgIGNvbnN0IHN0YXRlID0gcmVzdFtyZXN0Lmxlbmd0aCAtIDFdIGFzIFN0YXRlPHVua25vd24+O1xuICAgIC8vIHRoaXMgaXMgdHlwZXNjcmlwdCBnZW5lcmljcyBicmVha2luZ1xuICAgIGNvbnN0IGFyZ3M6IGFueSA9IHJlc3Quc2xpY2UoMCwgcmVzdC5sZW5ndGggLSAxKSBhcyBQYXJhbWV0ZXJzPEVbJ2tleSddPjtcbiAgICBjb25zdCBrZXkgPSBlbmRwb2ludC5rZXkoLi4uYXJncyk7XG5cbiAgICBjb25zdCBtZXRhID0gc2VsZWN0TWV0YShzdGF0ZSwga2V5KTtcbiAgICBjb25zdCByZXN1bHRzID0gc3RhdGUucmVzdWx0c1trZXldO1xuXG4gICAgaWYgKHJlc3VsdHMgIT09IHVuZGVmaW5lZCAmJiBtZXRhPy5lcnJvclBvbGljeSA9PT0gJ3NvZnQnKSByZXR1cm47XG5cbiAgICByZXR1cm4gbWV0YT8uZXJyb3IgYXMgYW55O1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSAoZ2xvYmFsbHkgcmVmZXJlbnRpYWxseSBzdGFibGUpIHJlc3BvbnNlIGZvciBhIGdpdmVuIGVuZHBvaW50L2FyZ3MgcGFpciBmcm9tIHN0YXRlIGdpdmVuLlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjZ2V0UmVzcG9uc2VcbiAgICovXG4gIGdldFJlc3BvbnNlID0gPFxuICAgIEUgZXh0ZW5kcyBQaWNrPEVuZHBvaW50SW50ZXJmYWNlLCAna2V5JyB8ICdzY2hlbWEnIHwgJ2ludmFsaWRJZlN0YWxlJz4sXG4gICAgQXJncyBleHRlbmRzIHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEVbJ2tleSddPl0gfCByZWFkb25seSBbbnVsbF0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogWy4uLkFyZ3MsIFN0YXRlPHVua25vd24+XVxuICApOiB7XG4gICAgZGF0YTogRGVub3JtYWxpemVOdWxsYWJsZTxFWydzY2hlbWEnXT47XG4gICAgZXhwaXJ5U3RhdHVzOiBFeHBpcnlTdGF0dXM7XG4gICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gIH0gPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gcmVzdFtyZXN0Lmxlbmd0aCAtIDFdIGFzIFN0YXRlPHVua25vd24+O1xuICAgIC8vIHRoaXMgaXMgdHlwZXNjcmlwdCBnZW5lcmljcyBicmVha2luZ1xuICAgIGNvbnN0IGFyZ3M6IGFueSA9IHJlc3Quc2xpY2UoMCwgcmVzdC5sZW5ndGggLSAxKSBhcyBQYXJhbWV0ZXJzPEVbJ2tleSddPjtcbiAgICBjb25zdCBpc0FjdGl2ZSA9IGFyZ3MubGVuZ3RoICE9PSAxIHx8IGFyZ3NbMF0gIT09IG51bGw7XG4gICAgY29uc3Qga2V5ID0gaXNBY3RpdmUgPyBlbmRwb2ludC5rZXkoLi4uYXJncykgOiAnJztcbiAgICBjb25zdCBjYWNoZVJlc3VsdHMgPSBpc0FjdGl2ZSA/IHN0YXRlLnJlc3VsdHNba2V5XSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBzY2hlbWEgPSBlbmRwb2ludC5zY2hlbWE7XG4gICAgY29uc3QgbWV0YSA9IHNlbGVjdE1ldGEoc3RhdGUsIGtleSk7XG4gICAgbGV0IGV4cGlyZXNBdCA9IG1ldGE/LmV4cGlyZXNBdDtcblxuICAgIGxldCBpbnZhbGlkUmVzdWx0cyA9IGZhbHNlO1xuICAgIGxldCByZXN1bHRzO1xuICAgIGlmIChjYWNoZVJlc3VsdHMgPT09IHVuZGVmaW5lZCAmJiBlbmRwb2ludC5zY2hlbWEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0cyA9IGluZmVyUmVzdWx0cyhcbiAgICAgICAgZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgICBhcmdzLFxuICAgICAgICBzdGF0ZS5pbmRleGVzLFxuICAgICAgICBzdGF0ZS5lbnRpdGllcyxcbiAgICAgICk7XG4gICAgICBpbnZhbGlkUmVzdWx0cyA9ICF2YWxpZGF0ZUluZmVyZW5jZShyZXN1bHRzKTtcbiAgICAgIGlmICghZXhwaXJlc0F0ICYmIGludmFsaWRSZXN1bHRzKSBleHBpcmVzQXQgPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRzID0gY2FjaGVSZXN1bHRzO1xuICAgIH1cblxuICAgIGlmICghaXNBY3RpdmUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGE6IHJlc3VsdHMgYXMgYW55LFxuICAgICAgICBleHBpcnlTdGF0dXM6IEV4cGlyeVN0YXR1cy5WYWxpZCxcbiAgICAgICAgZXhwaXJlc0F0OiBJbmZpbml0eSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKCFlbmRwb2ludC5zY2hlbWEgfHwgIXNjaGVtYUhhc0VudGl0eShlbmRwb2ludC5zY2hlbWEpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiByZXN1bHRzLFxuICAgICAgICBleHBpcnlTdGF0dXM6IG1ldGE/LmludmFsaWRhdGVkXG4gICAgICAgICAgPyBFeHBpcnlTdGF0dXMuSW52YWxpZFxuICAgICAgICAgIDogY2FjaGVSZXN1bHRzICYmICFlbmRwb2ludC5pbnZhbGlkSWZTdGFsZVxuICAgICAgICAgID8gRXhwaXJ5U3RhdHVzLlZhbGlkXG4gICAgICAgICAgOiBFeHBpcnlTdGF0dXMuSW52YWxpZElmU3RhbGUsXG4gICAgICAgIGV4cGlyZXNBdDogZXhwaXJlc0F0IHx8IDAsXG4gICAgICB9IGFzIHtcbiAgICAgICAgZGF0YTogRGVub3JtYWxpemVOdWxsYWJsZTxFWydzY2hlbWEnXT47XG4gICAgICAgIGV4cGlyeVN0YXR1czogRXhwaXJ5U3RhdHVzO1xuICAgICAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gV2FybiB1c2VycyB3aXRoIGJhZCBjb25maWd1cmF0aW9uc1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgc2NoZW1hICYmIGlzRW50aXR5KHNjaGVtYSkpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdHMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgZmV0Y2gga2V5ICR7a2V5fSBoYXMgbGlzdCByZXN1bHRzIHdoZW4gc2luZ2xlIHJlc3VsdCBpcyBleHBlY3RlZGAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHJlc3VsdHMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgZmV0Y2gga2V5ICR7a2V5fSBoYXMgb2JqZWN0IHJlc3VsdHMgd2hlbiBlbnRpdHkncyBwcmltYXJ5IGtleSAoc3RyaW5nKSByZXN1bHQgaXMgZXhwZWN0ZWRgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5nbG9iYWxDYWNoZS5yZXN1bHRzW2tleV0pXG4gICAgICB0aGlzLmdsb2JhbENhY2hlLnJlc3VsdHNba2V5XSA9IG5ldyBXZWFrRW50aXR5TWFwKCk7XG5cbiAgICAvLyBzZWNvbmQgYXJndW1lbnQgaXMgZmFsc2UgaWYgYW55IGVudGl0aWVzIGFyZSBtaXNzaW5nXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICAgIGNvbnN0IHsgZGF0YSwgcGF0aHMgfSA9IGRlbm9ybWFsaXplQ2FjaGVkKFxuICAgICAgcmVzdWx0cyxcbiAgICAgIHNjaGVtYSxcbiAgICAgIHN0YXRlLmVudGl0aWVzLFxuICAgICAgdGhpcy5nbG9iYWxDYWNoZS5lbnRpdGllcyxcbiAgICAgIHRoaXMuZ2xvYmFsQ2FjaGUucmVzdWx0c1trZXldLFxuICAgICAgYXJncyxcbiAgICApIGFzIHsgZGF0YTogRGVub3JtYWxpemVOdWxsYWJsZTxFWydzY2hlbWEnXT47IHBhdGhzOiBQYXRoW10gfTtcbiAgICBjb25zdCBpbnZhbGlkRGVub3JtYWxpemUgPSB0eXBlb2YgZGF0YSA9PT0gJ3N5bWJvbCc7XG5cbiAgICAvLyBmYWxsYmFjayB0byBlbnRpdHkgZXhwaXJ5IHRpbWVcbiAgICBpZiAoIWV4cGlyZXNBdCkge1xuICAgICAgZXhwaXJlc0F0ID0gZW50aXR5RXhwaXJlc0F0KHBhdGhzLCBzdGF0ZS5lbnRpdHlNZXRhKTtcbiAgICB9XG5cbiAgICAvLyBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2NvbmNlcHRzL2V4cGlyeS1wb2xpY3kjZXhwaXJ5LXN0YXR1c1xuICAgIC8vIHdlIGRvbid0IHRyYWNrIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gc3RhbGUgb3IgZnJlc2ggYmVjYXVzZSB0aGF0IGlzIHRpZWQgdG8gdHJpZ2dlcmluZ1xuICAgIC8vIGNvbmRpdGlvbnNcbiAgICBjb25zdCBleHBpcnlTdGF0dXMgPVxuICAgICAgbWV0YT8uaW52YWxpZGF0ZWQgfHwgKGludmFsaWREZW5vcm1hbGl6ZSAmJiAhbWV0YT8uZXJyb3IpXG4gICAgICAgID8gRXhwaXJ5U3RhdHVzLkludmFsaWRcbiAgICAgICAgOiBpbnZhbGlkRGVub3JtYWxpemUgfHwgZW5kcG9pbnQuaW52YWxpZElmU3RhbGUgfHwgaW52YWxpZFJlc3VsdHNcbiAgICAgICAgPyBFeHBpcnlTdGF0dXMuSW52YWxpZElmU3RhbGVcbiAgICAgICAgOiBFeHBpcnlTdGF0dXMuVmFsaWQ7XG5cbiAgICByZXR1cm4geyBkYXRhLCBleHBpcnlTdGF0dXMsIGV4cGlyZXNBdCB9O1xuICB9O1xufVxuXG4vLyBiZW5jaG1hcms6IGh0dHBzOi8vd3d3Lm1lYXN1cmV0aGF0Lm5ldC9CZW5jaG1hcmtzL1Nob3cvMjQ2OTEvMC9taW4tcmVkdWNlci12cy1pbXBlcmF0aXZlLXdpdGgtcGF0aHNcbi8vIGVhcmxpZXN0IGV4cGlyeSBkaWN0YXRlcyBhZ2VcbmZ1bmN0aW9uIGVudGl0eUV4cGlyZXNBdChcbiAgcGF0aHM6IFBhdGhbXSxcbiAgZW50aXR5TWV0YToge1xuICAgIHJlYWRvbmx5IFtlbnRpdHlLZXk6IHN0cmluZ106IHtcbiAgICAgIHJlYWRvbmx5IFtwazogc3RyaW5nXToge1xuICAgICAgICByZWFkb25seSBkYXRlOiBudW1iZXI7XG4gICAgICAgIHJlYWRvbmx5IGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBmZXRjaGVkQXQ6IG51bWJlcjsgLy8gVGhpcyBpcyBvbmx5IHRoZSB2YWx1ZSB1bnRpbCBpdCBpcyBzZXQgYnkgdGhlIENhY2hlUHJvdmlkZXJcbiAgICAgIH07XG4gICAgfTtcbiAgfSxcbikge1xuICBsZXQgZXhwaXJlc0F0ID0gSW5maW5pdHk7XG4gIGZvciAoY29uc3QgeyBwaywga2V5IH0gb2YgcGF0aHMpIHtcbiAgICBjb25zdCBlbnRpdHlFeHBpcnkgPSBlbnRpdHlNZXRhW2tleV0/Lltwa10/LmV4cGlyZXNBdDtcbiAgICAvLyBleHBpcmVzQXQgd2lsbCBhbHdheXMgcmVzb2x2ZSB0byBmYWxzZSB3aXRoIGFueSBjb21wYXJpc29uXG4gICAgaWYgKGVudGl0eUV4cGlyeSA8IGV4cGlyZXNBdCkgZXhwaXJlc0F0ID0gZW50aXR5RXhwaXJ5O1xuICB9XG4gIHJldHVybiBleHBpcmVzQXQ7XG59XG5cbi8qKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgc2NoZW1hIGhhcyBhbnkgZW50aXRpZXMuXG4gKlxuICogV2l0aG91dCBlbnRpdGllcywgZGVub3JtYWxpemF0aW9uIGlzIG5vdCBuZWVkZWQsIGFuZCByZXN1bHRzIHNob3VsZCBub3QgYmUgaW5mZXJyZWQuXG4gKi9cbmZ1bmN0aW9uIHNjaGVtYUhhc0VudGl0eShzY2hlbWE6IFNjaGVtYSk6IGJvb2xlYW4ge1xuICBpZiAoaXNFbnRpdHkoc2NoZW1hKSkgcmV0dXJuIHRydWU7XG4gIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYSkpXG4gICAgcmV0dXJuIHNjaGVtYS5sZW5ndGggIT09IDAgJiYgc2NoZW1hSGFzRW50aXR5KHNjaGVtYVswXSk7XG4gIGlmIChzY2hlbWEgJiYgKHR5cGVvZiBzY2hlbWEgPT09ICdvYmplY3QnIHx8IHR5cGVvZiBzY2hlbWEgPT09ICdmdW5jdGlvbicpKSB7XG4gICAgY29uc3QgbmVzdGVkU2NoZW1hID1cbiAgICAgICdzY2hlbWEnIGluIHNjaGVtYSA/IChzY2hlbWEuc2NoZW1hIGFzIFJlY29yZDxzdHJpbmcsIFNjaGVtYT4pIDogc2NoZW1hO1xuICAgIGlmICh0eXBlb2YgbmVzdGVkU2NoZW1hID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gc2NoZW1hSGFzRW50aXR5KG5lc3RlZFNjaGVtYSk7XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKG5lc3RlZFNjaGVtYSkuc29tZSh4ID0+IHNjaGVtYUhhc0VudGl0eSh4KSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgdHlwZSB7IEVycm9yVHlwZXMgfTtcblxuY2xhc3MgU25hcHNob3Q8VCA9IHVua25vd24+IGltcGxlbWVudHMgU25hcHNob3RJbnRlcmZhY2Uge1xuICBwcml2YXRlIHN0YXRlOiBTdGF0ZTxUPjtcbiAgcHJpdmF0ZSBjb250cm9sbGVyOiBDb250cm9sbGVyO1xuICByZWFkb25seSBmZXRjaGVkQXQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihjb250cm9sbGVyOiBDb250cm9sbGVyLCBzdGF0ZTogU3RhdGU8VD4sIGZldGNoZWRBdCA9IDApIHtcbiAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjtcbiAgICB0aGlzLmZldGNoZWRBdCA9IGZldGNoZWRBdDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKiogRGF0YSBBY2Nlc3MgKioqKioqKioqKioqKioqL1xuICAvKiogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9TbmFwc2hvdCNnZXRSZXNwb25zZSAqL1xuICBnZXRSZXNwb25zZSA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleScgfCAnc2NoZW1hJyB8ICdpbnZhbGlkSWZTdGFsZSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IEFyZ3NcbiAgKToge1xuICAgIGRhdGE6IERlbm9ybWFsaXplTnVsbGFibGU8RVsnc2NoZW1hJ10+O1xuICAgIGV4cGlyeVN0YXR1czogRXhwaXJ5U3RhdHVzO1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICB9ID0+IHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmdldFJlc3BvbnNlKGVuZHBvaW50LCAuLi5hcmdzLCB0aGlzLnN0YXRlKTtcbiAgfTtcblxuICAvKiogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9TbmFwc2hvdCNnZXRFcnJvciAqL1xuICBnZXRFcnJvciA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IEFyZ3NcbiAgKTogRXJyb3JUeXBlcyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5nZXRFcnJvcihlbmRwb2ludCwgLi4uYXJncywgdGhpcy5zdGF0ZSk7XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQU1BLFNBQ0VBLGFBQWEsRUFDYkMsWUFBWSxFQU1aQyxpQkFBaUIsRUFDakJDLFFBQVEsUUFDSCx3QkFBd0I7QUFDL0IsU0FBU0MsWUFBWSxFQUFFQyxpQkFBaUIsUUFBUSx3QkFBd0I7QUFFeEUsT0FBT0MsZ0JBQWdCLE1BQU0sdUJBQXVCO0FBQ3BELE9BQU9DLG1CQUFtQixNQUFNLDBCQUEwQjtBQUMxRCxPQUFPQyxhQUFhLE1BQU0sb0JBQW9CO0FBQzlDLE9BQU9DLFdBQVcsTUFBTSxrQkFBa0I7QUFDMUMsU0FDRUMsb0JBQW9CLEVB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
@@ -1 +0,0 @@
1
- {"version":3,"file":"createReceive.d.ts","sourceRoot":"","sources":["../../src/controller/createReceive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,CAAC,SAAS,iBAAiB,GAAG;IAC5B,MAAM,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;CACpC,EAED,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE;IACP,IAAI,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,IAAI,CAAC;CACb,GACA,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAE9B,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,CAAC,SAAS,iBAAiB,GAAG;IAC5B,MAAM,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;CACpC,EAED,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE;IACP,IAAI,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,GACA,uBAAuB,CAAC,CAAC,CAAC,CAAC"}
@@ -1,36 +0,0 @@
1
- import { SET_TYPE } from '../actionTypes.js';
2
- export default function createReceive(endpoint, {
3
- args,
4
- fetchedAt,
5
- response,
6
- error = false
7
- }) {
8
- var _endpoint$errorExpiry, _endpoint$dataExpiryL;
9
- const expiryLength = error ? (_endpoint$errorExpiry = endpoint.errorExpiryLength) != null ? _endpoint$errorExpiry : 1000 : (_endpoint$dataExpiryL = endpoint.dataExpiryLength) != null ? _endpoint$dataExpiryL : 60000;
10
- /* istanbul ignore next */
11
- if (process.env.NODE_ENV === 'development' && expiryLength < 0) {
12
- throw new Error('Negative expiry length are not allowed.');
13
- }
14
- const now = Date.now();
15
- const meta = {
16
- args,
17
- fetchedAt: fetchedAt != null ? fetchedAt : now,
18
- date: now,
19
- expiresAt: now + expiryLength,
20
- // For legacy support; TODO: remove
21
- schema: endpoint.schema,
22
- key: endpoint.key(...args)
23
- };
24
- // For legacy support; TODO: remove
25
- if (endpoint.update) meta.update = endpoint.update;
26
- if (endpoint.errorPolicy) meta.errorPolicy = endpoint.errorPolicy;
27
- const action = {
28
- type: SET_TYPE,
29
- payload: response,
30
- endpoint: endpoint,
31
- meta
32
- };
33
- if (error) action.error = true;
34
- return action;
35
- }
36
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfVFlQRSIsImNyZWF0ZVJlY2VpdmUiLCJlbmRwb2ludCIsImFyZ3MiLCJmZXRjaGVkQXQiLCJyZXNwb25zZSIsImVycm9yIiwiX2VuZHBvaW50JGVycm9yRXhwaXJ5IiwiX2VuZHBvaW50JGRhdGFFeHBpcnlMIiwiZXhwaXJ5TGVuZ3RoIiwiZXJyb3JFeHBpcnlMZW5ndGgiLCJkYXRhRXhwaXJ5TGVuZ3RoIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiRXJyb3IiLCJub3ciLCJEYXRlIiwibWV0YSIsImRhdGUiLCJleHBpcmVzQXQiLCJzY2hlbWEiLCJrZXkiLCJ1cGRhdGUiLCJlcnJvclBvbGljeSIsImFjdGlvbiIsInR5cGUiLCJwYXlsb2FkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2xsZXIvY3JlYXRlUmVjZWl2ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVuZHBvaW50SW50ZXJmYWNlLCBSZXNvbHZlVHlwZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBTRVRfVFlQRSB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tcGF0aWJsZVJlY2VpdmVBY3Rpb24sXG4gIENvbXBhdGlibGVSZWNlaXZlTWV0YSxcbn0gZnJvbSAnLi4vY29tcGF0aWJsZUFjdGlvbnMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVSZWNlaXZlPFxuICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPjtcbiAgfSxcbj4oXG4gIGVuZHBvaW50OiBFLFxuICBvcHRpb25zOiB7XG4gICAgYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dO1xuICAgIHJlc3BvbnNlOiBFcnJvcjtcbiAgICBmZXRjaGVkQXQ/OiBudW1iZXI7XG4gICAgZXJyb3I6IHRydWU7XG4gIH0sXG4pOiBDb21wYXRpYmxlUmVjZWl2ZUFjdGlvbjxFPjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVjZWl2ZTxcbiAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gIH0sXG4+KFxuICBlbmRwb2ludDogRSxcbiAgb3B0aW9uczoge1xuICAgIGFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XTtcbiAgICByZXNwb25zZTogUmVzb2x2ZVR5cGU8RT47XG4gICAgZmV0Y2hlZEF0PzogbnVtYmVyO1xuICAgIGVycm9yPzogZmFsc2U7XG4gIH0sXG4pOiBDb21wYXRpYmxlUmVjZWl2ZUFjdGlvbjxFPjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVjZWl2ZTxcbiAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gIH0sXG4+KFxuICBlbmRwb2ludDogRSxcbiAge1xuICAgIGFyZ3MsXG4gICAgZmV0Y2hlZEF0LFxuICAgIHJlc3BvbnNlLFxuICAgIGVycm9yID0gZmFsc2UsXG4gIH06IHtcbiAgICBhcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl07XG4gICAgcmVzcG9uc2U6IGFueTtcbiAgICBmZXRjaGVkQXQ/OiBudW1iZXI7XG4gICAgZXJyb3I/OiBib29sZWFuO1xuICB9LFxuKTogQ29tcGF0aWJsZVJlY2VpdmVBY3Rpb248RT4ge1xuICBjb25zdCBleHBpcnlMZW5ndGg6IG51bWJlciA9IGVycm9yXG4gICAgPyBlbmRwb2ludC5lcnJvckV4cGlyeUxlbmd0aCA/PyAxMDAwXG4gICAgOiBlbmRwb2ludC5kYXRhRXhwaXJ5TGVuZ3RoID8/IDYwMDAwO1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiYgZXhwaXJ5TGVuZ3RoIDwgMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTmVnYXRpdmUgZXhwaXJ5IGxlbmd0aCBhcmUgbm90IGFsbG93ZWQuJyk7XG4gIH1cbiAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgbWV0YTogQ29tcGF0aWJsZVJlY2VpdmVNZXRhID0ge1xuICAgIGFyZ3MsXG4gICAgZmV0Y2hlZEF0OiBmZXRjaGVkQXQgPz8gbm93LFxuICAgIGRhdGU6IG5vdyxcbiAgICBleHBpcmVzQXQ6IG5vdyArIGV4cGlyeUxlbmd0aCxcbiAgICAvLyBGb3IgbGVnYWN5IHN1cHBvcnQ7IFRPRE86IHJlbW92ZVxuICAgIHNjaGVtYTogZW5kcG9pbnQuc2NoZW1hLFxuICAgIGtleTogZW5kcG9pbnQua2V5KC4uLmFyZ3MpLFxuICB9O1xuICAvLyBGb3IgbGVnYWN5IHN1cHBvcnQ7IFRPRE86IHJlbW92ZVxuICBpZiAoZW5kcG9pbnQudXBkYXRlKSBtZXRhLnVwZGF0ZSA9IGVuZHBvaW50LnVwZGF0ZTtcbiAgaWYgKGVuZHBvaW50LmVycm9yUG9saWN5KSBtZXRhLmVycm9yUG9saWN5ID0gZW5kcG9pbnQuZXJyb3JQb2xpY3k7XG5cbiAgY29uc3QgYWN0aW9uOiBDb21wYXRpYmxlUmVjZWl2ZUFjdGlvbjxFPiA9IHtcbiAgICB0eXBlOiBTRVRfVFlQRSxcbiAgICBwYXlsb2FkOiByZXNwb25zZSxcbiAgICBlbmRwb2ludDogZW5kcG9pbnQsXG4gICAgbWV0YSxcbiAgfTtcbiAgaWYgKGVycm9yKSAoYWN0aW9uIGFzIGFueSkuZXJyb3IgPSB0cnVlO1xuICByZXR1cm4gYWN0aW9uO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFHQSxTQUFTQSxRQUFRLFFBQVEsbUJBQW1CO0FBa0M1QyxlQUFlLFNBQVNDLGFBQWFBLENBS25DQyxRQUFXLEVBQ1g7RUFDRUMsSUFBSTtFQUNKQyxTQUFTO0VBQ1RDLFFBQVE7RUFDUkMsS0FBSyxHQUFHO0FBTVYsQ0FBQyxFQUMyQjtFQUFBLElBQUFDLHFCQUFBLEVBQUFDLHFCQUFBO0VBQzVCLE1BQU1DLFlBQW9CLEdBQUdILEtBQUssSUFBQUMscUJBQUEsR0FDOUJMLFFBQVEsQ0FBQ1EsaUJBQWlCLFlBQUFILHFCQUFBLEdBQUksSUFBSSxJQUFBQyxxQkFBQSxHQUNsQ04sUUFBUSxDQUFDUyxnQkFBZ0IsWUFBQUgscUJBQUEsR0FBSSxLQUFLO0VBQ3RDO0VBQ0EsSUFBSUksT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxhQUFhLElBQUlMLFlBQVksR0FBRyxDQUFDLEVBQUU7SUFDOUQsTUFBTSxJQUFJTSxLQUFLLENBQUMseUNBQXlDLENBQUM7RUFDNUQ7RUFDQSxNQUFNQyxHQUFHLEdBQUdDLElBQUksQ0FBQ0QsR0FBRyxDQUFDLENBQUM7RUFDdEIsTUFBTUUsSUFBMkIsR0FBRztJQUNsQ2YsSUFBSTtJQUNKQyxTQUFTLEVBQUVBLFNBQVMsV0FBVEEsU0FBUyxHQUFJWSxHQUFHO0lBQzNCRyxJQUFJLEVBQUVILEdBQUc7SUFDVEksU0FBUyxFQUFFSixHQUFHLEdBQUdQLFlBQVk7SUFDN0I7SUFDQVksTUFBTSxFQUFFbkIsUUFBUSxDQUFDbUIsTUFBTTtJQUN2QkMsR0FBRyxFQUFFcEIsUUFBUSxDQUFDb0IsR0FBRyxDQUFDLEdBQUduQixJQUFJO0VBQzNCLENBQUM7RUFDRDtFQUNBLElBQUlELFFBQVEsQ0FBQ3FCLE1BQU0sRUFBRUwsSUFBSSxDQUFDSyxNQUFNLEdBQUdyQixRQUFRLENBQUNxQixNQUFNO0VBQ2xELElBQUlyQixRQUFRLENBQUNzQixXQUFXLEVBQUVOLElBQUksQ0FBQ00sV0FBVyxHQUFHdEIsUUFBUSxDQUFDc0IsV0FBVztFQUVqRSxNQUFNQyxNQUFrQyxHQUFHO0lBQ3pDQyxJQUFJLEVBQUUxQixRQUFRO0lBQ2QyQixPQUFPLEVBQUV0QixRQUFRO0lBQ2pCSCxRQUFRLEVBQUVBLFFBQVE7SUFDbEJnQjtFQUNGLENBQUM7RUFDRCxJQUFJWixLQUFLLEVBQUdtQixNQUFNLENBQVNuQixLQUFLLEdBQUcsSUFBSTtFQUN2QyxPQUFPbUIsTUFBTTtBQUNmIn0=
@@ -1,3 +0,0 @@
1
- export type { FetchShape, ReadShape, MutateShape, DeleteShape, } from './shapes.js';
2
- export type { SetShapeParams, ParamsFromShape, OptimisticUpdateParams, SchemaFromShape, BodyFromShape, ReturnFromShape, } from './types.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoint/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,YAAY,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VuZHBvaW50L2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIHtcbiAgRmV0Y2hTaGFwZSxcbiAgUmVhZFNoYXBlLFxuICBNdXRhdGVTaGFwZSxcbiAgRGVsZXRlU2hhcGUsXG59IGZyb20gJy4vc2hhcGVzLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgU2V0U2hhcGVQYXJhbXMsXG4gIFBhcmFtc0Zyb21TaGFwZSxcbiAgT3B0aW1pc3RpY1VwZGF0ZVBhcmFtcyxcbiAgU2NoZW1hRnJvbVNoYXBlLFxuICBCb2R5RnJvbVNoYXBlLFxuICBSZXR1cm5Gcm9tU2hhcGUsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuIl0sIm1hcHBpbmdzIjoiIn0=
@@ -1,25 +0,0 @@
1
- import { Schema, EndpointExtraOptions as FetchOptions } from '@data-client/normalizr';
2
- /** Defines the shape of a network request */
3
- export interface FetchShape<S extends Schema | undefined, Params extends Readonly<object> = Readonly<object>, Body extends Readonly<object | string> | void | unknown = Readonly<object | string> | undefined, Response = any> {
4
- readonly type: 'read' | 'mutate' | 'delete';
5
- fetch(params: Params, body?: Body): Promise<Response>;
6
- getFetchKey(params: Params): string;
7
- readonly schema: S;
8
- readonly options?: FetchOptions;
9
- }
10
- /** To change values on the server */
11
- export interface MutateShape<S extends Schema | undefined, Params extends Readonly<object> = Readonly<object>, Body extends Readonly<object | string> | void | unknown = Readonly<object | string> | undefined, Response extends object | string | number | boolean | null = any> extends FetchShape<S, Params, Body, Response> {
12
- readonly type: 'mutate';
13
- fetch(params: Params, body: Body): Promise<Response>;
14
- }
15
- /** Removes entities */
16
- export interface DeleteShape<S extends Schema | undefined, Params extends Readonly<object> = Readonly<object>, Response extends object | string | number | boolean | null = any> extends FetchShape<S, Params, undefined, Response> {
17
- readonly type: 'mutate';
18
- fetch(params: Params, ...args: any): Promise<Response>;
19
- }
20
- /** For retrieval requests */
21
- export interface ReadShape<S extends Schema | undefined, Params extends Readonly<object> = Readonly<object>, Response extends object | string | number | boolean | null = any> extends FetchShape<S, Params, undefined, Response> {
22
- readonly type: 'read';
23
- fetch(params: Params): Promise<Response>;
24
- }
25
- //# sourceMappingURL=shapes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shapes.d.ts","sourceRoot":"","sources":["../../src/endpoint/shapes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,oBAAoB,IAAI,YAAY,EACrC,MAAM,wBAAwB,CAAC;AAEhC,6CAA6C;AAC7C,MAAM,WAAW,UAAU,CACzB,CAAC,SAAS,MAAM,GAAG,SAAS,EAC5B,MAAM,SAAS,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAClD,IAAI,SAAS,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,OAAO,GACnD,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,GACzB,SAAS,EACb,QAAQ,GAAG,GAAG;IAEd,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC5C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;CACjC;AAED,qCAAqC;AACrC,MAAM,WAAW,WAAW,CAC1B,CAAC,SAAS,MAAM,GAAG,SAAS,EAC5B,MAAM,SAAS,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAClD,IAAI,SAAS,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,OAAO,GACnD,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,GACzB,SAAS,EACb,QAAQ,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,CAChE,SAAQ,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtD;AAED,uBAAuB;AACvB,MAAM,WAAW,WAAW,CAC1B,CAAC,SAAS,MAAM,GAAG,SAAS,EAC5B,MAAM,SAAS,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAClD,QAAQ,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,CAChE,SAAQ,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACxD;AAED,6BAA6B;AAC7B,MAAM,WAAW,SAAS,CACxB,CAAC,SAAS,MAAM,GAAG,SAAS,EAC5B,MAAM,SAAS,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAClD,QAAQ,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,CAChE,SAAQ,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1C"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VuZHBvaW50L3NoYXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTY2hlbWEsXG4gIEVuZHBvaW50RXh0cmFPcHRpb25zIGFzIEZldGNoT3B0aW9ucyxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbi8qKiBEZWZpbmVzIHRoZSBzaGFwZSBvZiBhIG5ldHdvcmsgcmVxdWVzdCAqL1xuZXhwb3J0IGludGVyZmFjZSBGZXRjaFNoYXBlPFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBQYXJhbXMgZXh0ZW5kcyBSZWFkb25seTxvYmplY3Q+ID0gUmVhZG9ubHk8b2JqZWN0PixcbiAgQm9keSBleHRlbmRzIFJlYWRvbmx5PG9iamVjdCB8IHN0cmluZz4gfCB2b2lkIHwgdW5rbm93biA9XG4gICAgfCBSZWFkb25seTxvYmplY3QgfCBzdHJpbmc+XG4gICAgfCB1bmRlZmluZWQsXG4gIFJlc3BvbnNlID0gYW55LFxuPiB7XG4gIHJlYWRvbmx5IHR5cGU6ICdyZWFkJyB8ICdtdXRhdGUnIHwgJ2RlbGV0ZSc7XG4gIGZldGNoKHBhcmFtczogUGFyYW1zLCBib2R5PzogQm9keSk6IFByb21pc2U8UmVzcG9uc2U+O1xuICBnZXRGZXRjaEtleShwYXJhbXM6IFBhcmFtcyk6IHN0cmluZztcbiAgcmVhZG9ubHkgc2NoZW1hOiBTO1xuICByZWFkb25seSBvcHRpb25zPzogRmV0Y2hPcHRpb25zO1xufVxuXG4vKiogVG8gY2hhbmdlIHZhbHVlcyBvbiB0aGUgc2VydmVyICovXG5leHBvcnQgaW50ZXJmYWNlIE11dGF0ZVNoYXBlPFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBQYXJhbXMgZXh0ZW5kcyBSZWFkb25seTxvYmplY3Q+ID0gUmVhZG9ubHk8b2JqZWN0PixcbiAgQm9keSBleHRlbmRzIFJlYWRvbmx5PG9iamVjdCB8IHN0cmluZz4gfCB2b2lkIHwgdW5rbm93biA9XG4gICAgfCBSZWFkb25seTxvYmplY3QgfCBzdHJpbmc+XG4gICAgfCB1bmRlZmluZWQsXG4gIFJlc3BvbnNlIGV4dGVuZHMgb2JqZWN0IHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgPSBhbnksXG4+IGV4dGVuZHMgRmV0Y2hTaGFwZTxTLCBQYXJhbXMsIEJvZHksIFJlc3BvbnNlPiB7XG4gIHJlYWRvbmx5IHR5cGU6ICdtdXRhdGUnO1xuICBmZXRjaChwYXJhbXM6IFBhcmFtcywgYm9keTogQm9keSk6IFByb21pc2U8UmVzcG9uc2U+O1xufVxuXG4vKiogUmVtb3ZlcyBlbnRpdGllcyAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWxldGVTaGFwZTxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgUGFyYW1zIGV4dGVuZHMgUmVhZG9ubHk8b2JqZWN0PiA9IFJlYWRvbmx5PG9iamVjdD4sXG4gIFJlc3BvbnNlIGV4dGVuZHMgb2JqZWN0IHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgPSBhbnksXG4+IGV4dGVuZHMgRmV0Y2hTaGFwZTxTLCBQYXJhbXMsIHVuZGVmaW5lZCwgUmVzcG9uc2U+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ211dGF0ZSc7XG4gIGZldGNoKHBhcmFtczogUGFyYW1zLCAuLi5hcmdzOiBhbnkpOiBQcm9taXNlPFJlc3BvbnNlPjtcbn1cblxuLyoqIEZvciByZXRyaWV2YWwgcmVxdWVzdHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZFNoYXBlPFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBQYXJhbXMgZXh0ZW5kcyBSZWFkb25seTxvYmplY3Q+ID0gUmVhZG9ubHk8b2JqZWN0PixcbiAgUmVzcG9uc2UgZXh0ZW5kcyBvYmplY3QgfCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCA9IGFueSxcbj4gZXh0ZW5kcyBGZXRjaFNoYXBlPFMsIFBhcmFtcywgdW5kZWZpbmVkLCBSZXNwb25zZT4ge1xuICByZWFkb25seSB0eXBlOiAncmVhZCc7XG4gIGZldGNoKHBhcmFtczogUGFyYW1zKTogUHJvbWlzZTxSZXNwb25zZT47XG59XG4iXSwibWFwcGluZ3MiOiIifQ==
@@ -1,45 +0,0 @@
1
- import { Schema } from '@data-client/normalizr';
2
- import type { Denormalize } from '@data-client/normalizr';
3
- import { FetchShape } from './shapes.js';
4
- import { UpdateFunction } from '../types.js';
5
- export type ResultShape<RS> = RS extends {
6
- schema: infer U;
7
- } ? U : never;
8
- export type SelectReturn<RS> = RS extends {
9
- select: (...args: any[]) => infer U;
10
- } ? U : never;
11
- export type AlwaysSelect<RS> = NonNullable<SelectReturn<RS>>;
12
- export type ParamArg<RS> = RS extends {
13
- getFetchKey: (params: infer U) => any;
14
- } ? U : never;
15
- export type BodyArg<RS> = RS extends {
16
- fetch: (url: any, body: infer U) => any;
17
- } ? U : never;
18
- /** Sets a FetchShape's Param type.
19
- * Useful to constrain acceptable params (second arg) in hooks like useResource().
20
- *
21
- * @param [Shape] FetchShape to act upon
22
- * @param [Params] what to set the Params to
23
- */
24
- export type SetShapeParams<Shape extends FetchShape<any, any, any>, Params extends Readonly<object>> = {
25
- [K in keyof Shape]: Shape[K];
26
- } & (Shape['fetch'] extends (first: any, ...rest: infer Args) => infer Return ? {
27
- fetch: (first: Params, ...rest: Args) => Return;
28
- } : never);
29
- /** Get the Params type for a given Shape */
30
- export type ParamsFromShape<S> = S extends {
31
- fetch: (first: infer A, ...rest: any) => any;
32
- } ? A : S extends {
33
- getFetchKey: (first: infer A, ...rest: any) => any;
34
- } ? A : never;
35
- /** Get the Schema type for a given Shape */
36
- export type SchemaFromShape<F extends FetchShape<Schema | undefined, any, any>> = F['schema'];
37
- /** Get the Body type for a given Shape */
38
- export type BodyFromShape<F extends FetchShape<any, any, any>> = Parameters<F['fetch']>[1];
39
- export type OptimisticUpdateParams<SourceSchema extends Schema | undefined, DestShape extends FetchShape<any, any, any>> = [
40
- DestShape,
41
- ParamsFromShape<DestShape>,
42
- UpdateFunction<SourceSchema, SchemaFromShape<DestShape>>
43
- ];
44
- export type ReturnFromShape<S extends FetchShape<any, any, any>> = ReturnType<S['fetch']> extends unknown ? Promise<Denormalize<S['schema']>> : ReturnType<S['fetch']>;
45
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/endpoint/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VuZHBvaW50L3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjaGVtYSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuaW1wb3J0IHR5cGUgeyBEZW5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgeyBGZXRjaFNoYXBlIH0gZnJvbSAnLi9zaGFwZXMuanMnO1xuaW1wb3J0IHsgVXBkYXRlRnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCB0eXBlIFJlc3VsdFNoYXBlPFJTPiA9IFJTIGV4dGVuZHMgeyBzY2hlbWE6IGluZmVyIFUgfSA/IFUgOiBuZXZlcjtcbmV4cG9ydCB0eXBlIFNlbGVjdFJldHVybjxSUz4gPSBSUyBleHRlbmRzIHtcbiAgc2VsZWN0OiAoLi4uYXJnczogYW55W10pID0+IGluZmVyIFU7XG59XG4gID8gVVxuICA6IG5ldmVyO1xuZXhwb3J0IHR5cGUgQWx3YXlzU2VsZWN0PFJTPiA9IE5vbk51bGxhYmxlPFNlbGVjdFJldHVybjxSUz4+O1xuZXhwb3J0IHR5cGUgUGFyYW1Bcmc8UlM+ID0gUlMgZXh0ZW5kcyB7XG4gIGdldEZldGNoS2V5OiAocGFyYW1zOiBpbmZlciBVKSA9PiBhbnk7XG59XG4gID8gVVxuICA6IG5ldmVyO1xuZXhwb3J0IHR5cGUgQm9keUFyZzxSUz4gPSBSUyBleHRlbmRzIHtcbiAgZmV0Y2g6ICh1cmw6IGFueSwgYm9keTogaW5mZXIgVSkgPT4gYW55O1xufVxuICA/IFVcbiAgOiBuZXZlcjtcblxuLyoqIFNldHMgYSBGZXRjaFNoYXBlJ3MgUGFyYW0gdHlwZS5cbiAqIFVzZWZ1bCB0byBjb25zdHJhaW4gYWNjZXB0YWJsZSBwYXJhbXMgKHNlY29uZCBhcmcpIGluIGhvb2tzIGxpa2UgdXNlUmVzb3VyY2UoKS5cbiAqXG4gKiBAcGFyYW0gW1NoYXBlXSBGZXRjaFNoYXBlIHRvIGFjdCB1cG9uXG4gKiBAcGFyYW0gW1BhcmFtc10gd2hhdCB0byBzZXQgdGhlIFBhcmFtcyB0b1xuICovXG5leHBvcnQgdHlwZSBTZXRTaGFwZVBhcmFtczxcbiAgU2hhcGUgZXh0ZW5kcyBGZXRjaFNoYXBlPGFueSwgYW55LCBhbnk+LFxuICBQYXJhbXMgZXh0ZW5kcyBSZWFkb25seTxvYmplY3Q+LFxuPiA9IHtcbiAgW0sgaW4ga2V5b2YgU2hhcGVdOiBTaGFwZVtLXTtcbn0gJiAoU2hhcGVbJ2ZldGNoJ10gZXh0ZW5kcyAoZmlyc3Q6IGFueSwgLi4ucmVzdDogaW5mZXIgQXJncykgPT4gaW5mZXIgUmV0dXJuXG4gID8geyBmZXRjaDogKGZpcnN0OiBQYXJhbXMsIC4uLnJlc3Q6IEFyZ3MpID0+IFJldHVybiB9XG4gIDogbmV2ZXIpO1xuXG4vKiogR2V0IHRoZSBQYXJhbXMgdHlwZSBmb3IgYSBnaXZlbiBTaGFwZSAqL1xuZXhwb3J0IHR5cGUgUGFyYW1zRnJvbVNoYXBlPFM+ID0gUyBleHRlbmRzIHtcbiAgZmV0Y2g6IChmaXJzdDogaW5mZXIgQSwgLi4ucmVzdDogYW55KSA9PiBhbnk7XG59XG4gID8gQVxuICA6IFMgZXh0ZW5kcyB7IGdldEZldGNoS2V5OiAoZmlyc3Q6IGluZmVyIEEsIC4uLnJlc3Q6IGFueSkgPT4gYW55IH1cbiAgPyBBXG4gIDogbmV2ZXI7XG5cbi8qKiBHZXQgdGhlIFNjaGVtYSB0eXBlIGZvciBhIGdpdmVuIFNoYXBlICovXG5leHBvcnQgdHlwZSBTY2hlbWFGcm9tU2hhcGU8XG4gIEYgZXh0ZW5kcyBGZXRjaFNoYXBlPFNjaGVtYSB8IHVuZGVmaW5lZCwgYW55LCBhbnk+LFxuPiA9IEZbJ3NjaGVtYSddO1xuXG4vKiogR2V0IHRoZSBCb2R5IHR5cGUgZm9yIGEgZ2l2ZW4gU2hhcGUgKi9cbmV4cG9ydCB0eXBlIEJvZHlGcm9tU2hhcGU8RiBleHRlbmRzIEZldGNoU2hhcGU8YW55LCBhbnksIGFueT4+ID0gUGFyYW1ldGVyczxcbiAgRlsnZmV0Y2gnXVxuPlsxXTtcblxuZXhwb3J0IHR5cGUgT3B0aW1pc3RpY1VwZGF0ZVBhcmFtczxcbiAgU291cmNlU2NoZW1hIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBEZXN0U2hhcGUgZXh0ZW5kcyBGZXRjaFNoYXBlPGFueSwgYW55LCBhbnk+LFxuPiA9IFtcbiAgRGVzdFNoYXBlLFxuICBQYXJhbXNGcm9tU2hhcGU8RGVzdFNoYXBlPixcbiAgVXBkYXRlRnVuY3Rpb248U291cmNlU2NoZW1hLCBTY2hlbWFGcm9tU2hhcGU8RGVzdFNoYXBlPj4sXG5dO1xuXG5leHBvcnQgdHlwZSBSZXR1cm5Gcm9tU2hhcGU8UyBleHRlbmRzIEZldGNoU2hhcGU8YW55LCBhbnksIGFueT4+ID0gUmV0dXJuVHlwZTxcbiAgU1snZmV0Y2gnXVxuPiBleHRlbmRzIHVua25vd25cbiAgPyBQcm9taXNlPERlbm9ybWFsaXplPFNbJ3NjaGVtYSddPj5cbiAgOiBSZXR1cm5UeXBlPFNbJ2ZldGNoJ10+O1xuIl0sIm1hcHBpbmdzIjoiIn0=
@@ -1,92 +0,0 @@
1
- import type { UpdateFunction, Schema, EndpointExtraOptions, EndpointInterface } from '@data-client/normalizr';
2
- import { FSAWithPayloadAndMeta, FSAWithMeta } from 'flux-standard-action';
3
- import { RECEIVE_TYPE, RESET_TYPE, FETCH_TYPE, SUBSCRIBE_TYPE, UNSUBSCRIBE_TYPE, INVALIDATE_TYPE, GC_TYPE, OPTIMISTIC_TYPE } from './actionTypes.js';
4
- import type { EndpointUpdateFunction } from './controller/types.js';
5
- import { FetchShape } from './endpoint/index.js';
6
- import { ErrorableFSAWithPayloadAndMeta } from './fsa.js';
7
- export interface ReceiveMeta<S extends Schema | undefined> {
8
- schema?: S;
9
- key: string;
10
- args?: readonly any[];
11
- updaters?: Record<string, UpdateFunction<S, any>>;
12
- update?: (result: any, ...args: any) => Record<string, (...args: any) => any>;
13
- fetchedAt?: number;
14
- date: number;
15
- expiresAt: number;
16
- errorPolicy?: (error: any) => 'hard' | 'soft' | undefined;
17
- }
18
- export type ReceiveAction<Payload extends object | string | number | null = object | string | number | null, S extends Schema | undefined = any> = ErrorableFSAWithPayloadAndMeta<typeof RECEIVE_TYPE, Payload, ReceiveMeta<S>>;
19
- export type OptimisticAction<E extends EndpointInterface & {
20
- update?: EndpointUpdateFunction<E>;
21
- } = EndpointInterface & {
22
- update?: EndpointUpdateFunction<EndpointInterface>;
23
- }> = {
24
- type: typeof OPTIMISTIC_TYPE;
25
- meta: {
26
- schema: E['schema'];
27
- key: string;
28
- args: readonly any[];
29
- update?: (result: any, ...args: any) => Record<string, (...args: any) => any>;
30
- fetchedAt: number;
31
- date: number;
32
- expiresAt: number;
33
- errorPolicy?: (error: any) => 'hard' | 'soft' | undefined;
34
- };
35
- endpoint: E;
36
- error?: undefined;
37
- };
38
- export interface ResetAction {
39
- type: typeof RESET_TYPE;
40
- date: number | Date;
41
- }
42
- interface FetchMeta<Payload extends object | string | number | null = object | string | number | null, S extends Schema | undefined = any> {
43
- type: FetchShape<any, any>['type'];
44
- schema?: S;
45
- key: string;
46
- args?: readonly any[];
47
- updaters?: Record<string, UpdateFunction<S, any>>;
48
- update?: (result: any, ...args: any) => Record<string, (...args: any) => any>;
49
- options?: EndpointExtraOptions;
50
- throttle: boolean;
51
- resolve: (value?: any | PromiseLike<any>) => void;
52
- reject: (reason?: any) => void;
53
- promise: PromiseLike<any>;
54
- createdAt: number | Date;
55
- optimisticResponse?: Payload;
56
- nm?: boolean;
57
- }
58
- export interface FetchAction<Payload extends object | string | number | null = object | string | number | null, S extends Schema | undefined = any> extends FSAWithPayloadAndMeta<typeof FETCH_TYPE, () => Promise<Payload>, FetchMeta<any, any>> {
59
- meta: FetchMeta<Payload, S>;
60
- endpoint?: undefined;
61
- }
62
- export interface SubscribeAction extends FSAWithMeta<typeof SUBSCRIBE_TYPE, undefined, any> {
63
- meta: {
64
- args?: readonly any[];
65
- schema: Schema | undefined;
66
- fetch: () => Promise<any>;
67
- key: string;
68
- options: EndpointExtraOptions | undefined;
69
- };
70
- endpoint?: undefined;
71
- }
72
- export interface UnsubscribeAction extends FSAWithMeta<typeof UNSUBSCRIBE_TYPE, undefined, any> {
73
- meta: {
74
- args?: readonly any[];
75
- key: string;
76
- options: EndpointExtraOptions | undefined;
77
- };
78
- endpoint?: undefined;
79
- }
80
- export interface InvalidateAction extends FSAWithMeta<typeof INVALIDATE_TYPE, undefined, any> {
81
- meta: {
82
- key: string;
83
- };
84
- }
85
- export interface GCAction {
86
- type: typeof GC_TYPE;
87
- entities: [string, string][];
88
- results: string[];
89
- }
90
- export type ActionTypes = FetchAction | OptimisticAction | ReceiveAction | SubscribeAction | UnsubscribeAction | InvalidateAction | ResetAction | GCAction;
91
- export {};
92
- //# sourceMappingURL=legacyActions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacyActions.d.ts","sourceRoot":"","sources":["../src/legacyActions.ts"],"names":[],"mappings":"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"}