@data-client/core 0.1.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 (308) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +71 -0
  3. package/dist/index.js +1643 -0
  4. package/dist/index.umd.min.js +1 -0
  5. package/dist/next.js +461 -0
  6. package/dist/package.json +1 -0
  7. package/legacy/actionTypes.js +12 -0
  8. package/legacy/compatibleActions.js +2 -0
  9. package/legacy/controller/BaseController.js +289 -0
  10. package/legacy/controller/Controller.js +20 -0
  11. package/legacy/controller/createFetch.js +42 -0
  12. package/legacy/controller/createInvalidate.js +12 -0
  13. package/legacy/controller/createInvalidateAll.js +8 -0
  14. package/legacy/controller/createOptimistic.js +33 -0
  15. package/legacy/controller/createReceive.js +36 -0
  16. package/legacy/controller/createReset.js +8 -0
  17. package/legacy/controller/createSubscription.js +30 -0
  18. package/legacy/controller/types.js +2 -0
  19. package/legacy/endpoint/index.js +2 -0
  20. package/legacy/endpoint/shapes.js +2 -0
  21. package/legacy/endpoint/types.js +2 -0
  22. package/legacy/fsa.js +2 -0
  23. package/legacy/index.js +22 -0
  24. package/legacy/internal.js +4 -0
  25. package/legacy/legacyActions.js +2 -0
  26. package/legacy/manager/ConnectionListener.js +2 -0
  27. package/legacy/manager/DefaultConnectionListener.js +40 -0
  28. package/legacy/manager/DevtoolsManager.js +73 -0
  29. package/legacy/manager/LogoutManager.js +34 -0
  30. package/legacy/manager/NetworkManager.js +291 -0
  31. package/legacy/manager/PollingSubscription.js +159 -0
  32. package/legacy/manager/SubscriptionManager.js +117 -0
  33. package/legacy/manager/applyManager.js +23 -0
  34. package/legacy/manager/devtoolsTypes.js +2 -0
  35. package/legacy/manager/index.js +6 -0
  36. package/legacy/middlewareTypes.js +2 -0
  37. package/legacy/newActions.js +2 -0
  38. package/legacy/next/Controller.js +24 -0
  39. package/legacy/next/index.js +3 -0
  40. package/legacy/previousActions.js +2 -0
  41. package/legacy/state/RIC.js +3 -0
  42. package/legacy/state/applyUpdatersToResults.js +4 -0
  43. package/legacy/state/legacy-actions/createFetch.js +62 -0
  44. package/legacy/state/legacy-actions/createReceive.js +37 -0
  45. package/legacy/state/legacy-actions/createReceiveError.js +28 -0
  46. package/legacy/state/legacy-actions/index.js +4 -0
  47. package/legacy/state/reducer/createReducer.js +54 -0
  48. package/legacy/state/reducer/fetchReducer.js +32 -0
  49. package/legacy/state/reducer/invalidateReducer.js +28 -0
  50. package/legacy/state/reducer/setReducer.js +113 -0
  51. package/legacy/state/reducerInstance.js +9 -0
  52. package/legacy/state/selectMeta.js +4 -0
  53. package/legacy/types.js +8 -0
  54. package/lib/actionTypes.d.ts +11 -0
  55. package/lib/actionTypes.d.ts.map +1 -0
  56. package/lib/actionTypes.js +12 -0
  57. package/lib/compatibleActions.d.ts +47 -0
  58. package/lib/compatibleActions.d.ts.map +1 -0
  59. package/lib/compatibleActions.js +2 -0
  60. package/lib/controller/BaseController.d.ts +128 -0
  61. package/lib/controller/BaseController.d.ts.map +1 -0
  62. package/lib/controller/BaseController.js +289 -0
  63. package/lib/controller/Controller.d.ts +14 -0
  64. package/lib/controller/Controller.d.ts.map +1 -0
  65. package/lib/controller/Controller.js +20 -0
  66. package/lib/controller/createFetch.d.ts +12 -0
  67. package/lib/controller/createFetch.d.ts.map +1 -0
  68. package/lib/controller/createFetch.js +42 -0
  69. package/lib/controller/createInvalidate.d.ts +6 -0
  70. package/lib/controller/createInvalidate.d.ts.map +1 -0
  71. package/lib/controller/createInvalidate.js +12 -0
  72. package/lib/controller/createInvalidateAll.d.ts +3 -0
  73. package/lib/controller/createInvalidateAll.d.ts.map +1 -0
  74. package/lib/controller/createInvalidateAll.js +8 -0
  75. package/lib/controller/createOptimistic.d.ts +10 -0
  76. package/lib/controller/createOptimistic.d.ts.map +1 -0
  77. package/lib/controller/createOptimistic.js +33 -0
  78. package/lib/controller/createReceive.d.ts +20 -0
  79. package/lib/controller/createReceive.d.ts.map +1 -0
  80. package/lib/controller/createReceive.js +36 -0
  81. package/lib/controller/createReset.d.ts +3 -0
  82. package/lib/controller/createReset.d.ts.map +1 -0
  83. package/lib/controller/createReset.js +8 -0
  84. package/lib/controller/createSubscription.d.ts +9 -0
  85. package/lib/controller/createSubscription.d.ts.map +1 -0
  86. package/lib/controller/createSubscription.js +30 -0
  87. package/lib/controller/types.d.ts +6 -0
  88. package/lib/controller/types.d.ts.map +1 -0
  89. package/lib/controller/types.js +2 -0
  90. package/lib/endpoint/index.d.ts +3 -0
  91. package/lib/endpoint/index.d.ts.map +1 -0
  92. package/lib/endpoint/index.js +2 -0
  93. package/lib/endpoint/shapes.d.ts +25 -0
  94. package/lib/endpoint/shapes.d.ts.map +1 -0
  95. package/lib/endpoint/shapes.js +2 -0
  96. package/lib/endpoint/types.d.ts +45 -0
  97. package/lib/endpoint/types.d.ts.map +1 -0
  98. package/lib/endpoint/types.js +2 -0
  99. package/lib/fsa.d.ts +41 -0
  100. package/lib/fsa.d.ts.map +1 -0
  101. package/lib/fsa.js +2 -0
  102. package/lib/index.d.ts +19 -0
  103. package/lib/index.d.ts.map +1 -0
  104. package/lib/index.js +22 -0
  105. package/lib/internal.d.ts +4 -0
  106. package/lib/internal.d.ts.map +1 -0
  107. package/lib/internal.js +4 -0
  108. package/lib/legacyActions.d.ts +92 -0
  109. package/lib/legacyActions.d.ts.map +1 -0
  110. package/lib/legacyActions.js +2 -0
  111. package/lib/manager/ConnectionListener.d.ts +8 -0
  112. package/lib/manager/ConnectionListener.d.ts.map +1 -0
  113. package/lib/manager/ConnectionListener.js +2 -0
  114. package/lib/manager/DefaultConnectionListener.d.ts +20 -0
  115. package/lib/manager/DefaultConnectionListener.d.ts.map +1 -0
  116. package/lib/manager/DefaultConnectionListener.js +40 -0
  117. package/lib/manager/DevtoolsManager.d.ts +24 -0
  118. package/lib/manager/DevtoolsManager.d.ts.map +1 -0
  119. package/lib/manager/DevtoolsManager.js +74 -0
  120. package/lib/manager/LogoutManager.d.ts +25 -0
  121. package/lib/manager/LogoutManager.d.ts.map +1 -0
  122. package/lib/manager/LogoutManager.js +34 -0
  123. package/lib/manager/NetworkManager.d.ts +82 -0
  124. package/lib/manager/NetworkManager.d.ts.map +1 -0
  125. package/lib/manager/NetworkManager.js +295 -0
  126. package/lib/manager/PollingSubscription.d.ts +45 -0
  127. package/lib/manager/PollingSubscription.d.ts.map +1 -0
  128. package/lib/manager/PollingSubscription.js +159 -0
  129. package/lib/manager/SubscriptionManager.d.ts +55 -0
  130. package/lib/manager/SubscriptionManager.d.ts.map +1 -0
  131. package/lib/manager/SubscriptionManager.js +117 -0
  132. package/lib/manager/applyManager.d.ts +10 -0
  133. package/lib/manager/applyManager.d.ts.map +1 -0
  134. package/lib/manager/applyManager.js +23 -0
  135. package/lib/manager/devtoolsTypes.d.ts +205 -0
  136. package/lib/manager/devtoolsTypes.d.ts.map +1 -0
  137. package/lib/manager/devtoolsTypes.js +2 -0
  138. package/lib/manager/index.d.ts +8 -0
  139. package/lib/manager/index.d.ts.map +1 -0
  140. package/lib/manager/index.js +6 -0
  141. package/lib/middlewareTypes.d.ts +18 -0
  142. package/lib/middlewareTypes.d.ts.map +1 -0
  143. package/lib/middlewareTypes.js +2 -0
  144. package/lib/newActions.d.ts +85 -0
  145. package/lib/newActions.d.ts.map +1 -0
  146. package/lib/newActions.js +2 -0
  147. package/lib/next/Controller.d.ts +14 -0
  148. package/lib/next/Controller.d.ts.map +1 -0
  149. package/lib/next/Controller.js +24 -0
  150. package/lib/next/index.d.ts +3 -0
  151. package/lib/next/index.d.ts.map +1 -0
  152. package/lib/next/index.js +3 -0
  153. package/lib/previousActions.d.ts +91 -0
  154. package/lib/previousActions.d.ts.map +1 -0
  155. package/lib/previousActions.js +2 -0
  156. package/lib/state/RIC.d.ts +2 -0
  157. package/lib/state/RIC.js +3 -0
  158. package/lib/state/applyUpdatersToResults.d.ts +13 -0
  159. package/lib/state/applyUpdatersToResults.d.ts.map +1 -0
  160. package/lib/state/applyUpdatersToResults.js +7 -0
  161. package/lib/state/legacy-actions/createFetch.d.ts +19 -0
  162. package/lib/state/legacy-actions/createFetch.d.ts.map +1 -0
  163. package/lib/state/legacy-actions/createFetch.js +62 -0
  164. package/lib/state/legacy-actions/createReceive.d.ts +14 -0
  165. package/lib/state/legacy-actions/createReceive.d.ts.map +1 -0
  166. package/lib/state/legacy-actions/createReceive.js +37 -0
  167. package/lib/state/legacy-actions/createReceiveError.d.ts +9 -0
  168. package/lib/state/legacy-actions/createReceiveError.d.ts.map +1 -0
  169. package/lib/state/legacy-actions/createReceiveError.js +28 -0
  170. package/lib/state/legacy-actions/index.d.ts +4 -0
  171. package/lib/state/legacy-actions/index.d.ts.map +1 -0
  172. package/lib/state/legacy-actions/index.js +4 -0
  173. package/lib/state/reducer/createReducer.d.ts +7 -0
  174. package/lib/state/reducer/createReducer.d.ts.map +1 -0
  175. package/lib/state/reducer/createReducer.js +55 -0
  176. package/lib/state/reducer/fetchReducer.d.ts +4 -0
  177. package/lib/state/reducer/fetchReducer.d.ts.map +1 -0
  178. package/lib/state/reducer/fetchReducer.js +34 -0
  179. package/lib/state/reducer/invalidateReducer.d.ts +37 -0
  180. package/lib/state/reducer/invalidateReducer.d.ts.map +1 -0
  181. package/lib/state/reducer/invalidateReducer.js +34 -0
  182. package/lib/state/reducer/setReducer.d.ts +40 -0
  183. package/lib/state/reducer/setReducer.d.ts.map +1 -0
  184. package/lib/state/reducer/setReducer.js +119 -0
  185. package/lib/state/reducerInstance.d.ts +7 -0
  186. package/lib/state/reducerInstance.d.ts.map +1 -0
  187. package/lib/state/reducerInstance.js +9 -0
  188. package/lib/state/selectMeta.d.ts +3 -0
  189. package/lib/state/selectMeta.d.ts.map +1 -0
  190. package/lib/state/selectMeta.js +4 -0
  191. package/lib/types.d.ts +71 -0
  192. package/lib/types.d.ts.map +1 -0
  193. package/lib/types.js +8 -0
  194. package/node.mjs +1 -0
  195. package/package.json +127 -0
  196. package/src/actionTypes.ts +11 -0
  197. package/src/compatibleActions.ts +96 -0
  198. package/src/controller/BaseController.ts +508 -0
  199. package/src/controller/Controller.ts +32 -0
  200. package/src/controller/__tests__/Controller.ts +29 -0
  201. package/src/controller/__tests__/__snapshots__/getResponse.ts.snap +35 -0
  202. package/src/controller/__tests__/getResponse.ts +182 -0
  203. package/src/controller/createFetch.ts +54 -0
  204. package/src/controller/createInvalidate.ts +16 -0
  205. package/src/controller/createInvalidateAll.ts +11 -0
  206. package/src/controller/createOptimistic.ts +47 -0
  207. package/src/controller/createReceive.ts +85 -0
  208. package/src/controller/createReset.ts +9 -0
  209. package/src/controller/createSubscription.ts +39 -0
  210. package/src/controller/types.ts +22 -0
  211. package/src/endpoint/index.ts +14 -0
  212. package/src/endpoint/shapes.ts +53 -0
  213. package/src/endpoint/types.ts +72 -0
  214. package/src/fsa.ts +99 -0
  215. package/src/index.ts +61 -0
  216. package/src/internal.ts +3 -0
  217. package/src/legacyActions.ts +163 -0
  218. package/src/manager/ConnectionListener.ts +7 -0
  219. package/src/manager/DefaultConnectionListener.ts +54 -0
  220. package/src/manager/DevtoolsManager.ts +99 -0
  221. package/src/manager/LogoutManager.ts +57 -0
  222. package/src/manager/NetworkManager.ts +346 -0
  223. package/src/manager/PollingSubscription.ts +190 -0
  224. package/src/manager/SubscriptionManager.ts +156 -0
  225. package/src/manager/__tests__/__snapshots__/pollingSubscription-endpoint.ts.snap +49 -0
  226. package/src/manager/__tests__/__snapshots__/pollingSubscription.ts.snap +43 -0
  227. package/src/manager/__tests__/logoutManager.ts +112 -0
  228. package/src/manager/__tests__/manager.ts +44 -0
  229. package/src/manager/__tests__/networkManager-legacy.ts +394 -0
  230. package/src/manager/__tests__/networkManager.ts +426 -0
  231. package/src/manager/__tests__/pollingSubscription-endpoint.ts +423 -0
  232. package/src/manager/__tests__/pollingSubscription.ts +313 -0
  233. package/src/manager/__tests__/subscriptionManager.ts +208 -0
  234. package/src/manager/applyManager.ts +33 -0
  235. package/src/manager/devtoolsTypes.ts +210 -0
  236. package/src/manager/index.ts +7 -0
  237. package/src/middlewareTypes.ts +49 -0
  238. package/src/newActions.ts +140 -0
  239. package/src/next/Controller.ts +39 -0
  240. package/src/next/index.ts +2 -0
  241. package/src/package.json +1 -0
  242. package/src/previousActions.ts +159 -0
  243. package/src/state/RIC.d.ts +2 -0
  244. package/src/state/RIC.js +5 -0
  245. package/src/state/__tests__/RIC.web.ts +16 -0
  246. package/src/state/__tests__/__snapshots__/reducer.ts.snap +56 -0
  247. package/src/state/__tests__/applyUpdatersToResults.ts +40 -0
  248. package/src/state/__tests__/reducer.ts +868 -0
  249. package/src/state/applyUpdatersToResults.ts +29 -0
  250. package/src/state/legacy-actions/createFetch.ts +95 -0
  251. package/src/state/legacy-actions/createReceive.ts +68 -0
  252. package/src/state/legacy-actions/createReceiveError.ts +43 -0
  253. package/src/state/legacy-actions/index.ts +3 -0
  254. package/src/state/reducer/createReducer.ts +80 -0
  255. package/src/state/reducer/fetchReducer.ts +48 -0
  256. package/src/state/reducer/invalidateReducer.ts +39 -0
  257. package/src/state/reducer/setReducer.ts +157 -0
  258. package/src/state/reducerInstance.ts +14 -0
  259. package/src/state/selectMeta.ts +8 -0
  260. package/src/types.ts +125 -0
  261. package/ts3.4/actionTypes.d.ts +11 -0
  262. package/ts3.4/compatibleActions.d.ts +47 -0
  263. package/ts3.4/controller/BaseController.d.ts +170 -0
  264. package/ts3.4/controller/Controller.d.ts +14 -0
  265. package/ts3.4/controller/createFetch.d.ts +14 -0
  266. package/ts3.4/controller/createInvalidate.d.ts +8 -0
  267. package/ts3.4/controller/createInvalidateAll.d.ts +3 -0
  268. package/ts3.4/controller/createOptimistic.d.ts +12 -0
  269. package/ts3.4/controller/createReceive.d.ts +24 -0
  270. package/ts3.4/controller/createReset.d.ts +3 -0
  271. package/ts3.4/controller/createSubscription.d.ts +13 -0
  272. package/ts3.4/controller/types.d.ts +6 -0
  273. package/ts3.4/endpoint/index.d.ts +3 -0
  274. package/ts3.4/endpoint/shapes.d.ts +25 -0
  275. package/ts3.4/endpoint/types.d.ts +45 -0
  276. package/ts3.4/fsa.d.ts +41 -0
  277. package/ts3.4/index.d.ts +22 -0
  278. package/ts3.4/internal.d.ts +4 -0
  279. package/ts3.4/legacyActions.d.ts +95 -0
  280. package/ts3.4/manager/ConnectionListener.d.ts +8 -0
  281. package/ts3.4/manager/DefaultConnectionListener.d.ts +20 -0
  282. package/ts3.4/manager/DevtoolsManager.d.ts +24 -0
  283. package/ts3.4/manager/LogoutManager.d.ts +25 -0
  284. package/ts3.4/manager/NetworkManager.d.ts +82 -0
  285. package/ts3.4/manager/PollingSubscription.d.ts +45 -0
  286. package/ts3.4/manager/SubscriptionManager.d.ts +55 -0
  287. package/ts3.4/manager/applyManager.d.ts +10 -0
  288. package/ts3.4/manager/devtoolsTypes.d.ts +205 -0
  289. package/ts3.4/manager/index.d.ts +8 -0
  290. package/ts3.4/middlewareTypes.d.ts +18 -0
  291. package/ts3.4/newActions.d.ts +88 -0
  292. package/ts3.4/next/Controller.d.ts +14 -0
  293. package/ts3.4/next/index.d.ts +3 -0
  294. package/ts3.4/previousActions.d.ts +94 -0
  295. package/ts3.4/state/RIC.d.ts +2 -0
  296. package/ts3.4/state/applyUpdatersToResults.d.ts +13 -0
  297. package/ts3.4/state/legacy-actions/createFetch.d.ts +19 -0
  298. package/ts3.4/state/legacy-actions/createReceive.d.ts +14 -0
  299. package/ts3.4/state/legacy-actions/createReceiveError.d.ts +9 -0
  300. package/ts3.4/state/legacy-actions/index.d.ts +4 -0
  301. package/ts3.4/state/reducer/createReducer.d.ts +7 -0
  302. package/ts3.4/state/reducer/fetchReducer.d.ts +4 -0
  303. package/ts3.4/state/reducer/invalidateReducer.d.ts +37 -0
  304. package/ts3.4/state/reducer/setReducer.d.ts +40 -0
  305. package/ts3.4/state/reducerInstance.d.ts +7 -0
  306. package/ts3.4/state/selectMeta.d.ts +3 -0
  307. package/ts3.4/types.d.ts +73 -0
  308. package/typescript.svg +8 -0
@@ -0,0 +1,119 @@
1
+ import { normalize } from '@data-client/normalizr';
2
+ import { OPTIMISTIC_TYPE } from '../../actionTypes.js';
3
+ import applyUpdatersToResults from '../applyUpdatersToResults.js';
4
+ export function setReducer(state, action, controller) {
5
+ if (action.error) {
6
+ return reduceError(state, action, action.payload);
7
+ }
8
+ try {
9
+ var _state$meta$action$me;
10
+ let payload;
11
+ // for true receives payload is contained in action
12
+ if (action.type === OPTIMISTIC_TYPE) {
13
+ if (!action.endpoint.getOptimisticResponse) return state;
14
+ try {
15
+ // compute optimistic response based on current state
16
+ payload = action.endpoint.getOptimisticResponse.call(action.endpoint, controller.snapshot(state, action.meta.fetchedAt),
17
+ // if endpoint exists, so must args; TODO: fix typing
18
+ ...action.meta.args);
19
+ } catch (e) {
20
+ var _e$constructor;
21
+ // AbortOptimistic means 'do nothing', otherwise we count the exception as endpoint failure
22
+ if (((_e$constructor = e.constructor) == null ? void 0 : _e$constructor.name) === 'AbortOptimistic') {
23
+ return state;
24
+ }
25
+ throw e;
26
+ }
27
+ } else {
28
+ payload = action.payload;
29
+ }
30
+ const {
31
+ result,
32
+ entities,
33
+ indexes,
34
+ entityMeta
35
+ } = normalize(payload, action.meta.schema, action.meta.args, state.entities, state.indexes, state.entityMeta, {
36
+ fetchedAt: action.meta.date,
37
+ ...action.meta
38
+ });
39
+ let results = {
40
+ ...state.results,
41
+ [action.meta.key]: result
42
+ };
43
+ try {
44
+ if ('updaters' in action.meta && action.meta.updaters) {
45
+ results = applyUpdatersToResults(results, result, action.meta.updaters);
46
+ }
47
+ if (action.meta.update) {
48
+ const updaters = action.meta.update(result, ...(action.meta.args || []));
49
+ Object.keys(updaters).forEach(key => {
50
+ results[key] = updaters[key](results[key]);
51
+ });
52
+ }
53
+ // no reason to completely fail because of user-code error
54
+ // integrity of this state update is still guaranteed
55
+ } catch (error) {
56
+ console.error(`The following error occured during Endpoint.update() for ${action.meta.key}`);
57
+ console.error(error);
58
+ }
59
+ return {
60
+ entities,
61
+ indexes,
62
+ results,
63
+ entityMeta,
64
+ meta: {
65
+ ...state.meta,
66
+ [action.meta.key]: {
67
+ date: action.meta.date,
68
+ expiresAt: action.meta.expiresAt,
69
+ prevExpiresAt: (_state$meta$action$me = state.meta[action.meta.key]) == null ? void 0 : _state$meta$action$me.expiresAt
70
+ }
71
+ },
72
+ optimistic: filterOptimistic(state, action),
73
+ lastReset: state.lastReset
74
+ };
75
+ // reducer must update the state, so in case of processing errors we simply compute the results inline
76
+ } catch (error) {
77
+ if (typeof error === 'object') {
78
+ error.message = `Error processing ${action.meta.key}\n\nFull Schema: ${JSON.stringify(action.meta.schema, undefined, 2)}\n\nError:\n${error.message}`;
79
+ if ('payload' in action) error.payload = action.payload;
80
+ error.status = 400;
81
+ }
82
+
83
+ // this is not always bubbled up, so let's double sure this doesn't fail silently
84
+ /* istanbul ignore else */
85
+ if (process.env.NODE_ENV !== 'production') {
86
+ console.error(error);
87
+ }
88
+ return reduceError(state, action, error);
89
+ }
90
+ }
91
+ function reduceError(state, action, error) {
92
+ if (error.name === 'AbortError') {
93
+ // In case we abort simply undo the optimistic update and act like no fetch even occured
94
+ // We still want those watching promises from fetch directly to observed the abort, but we don't want to
95
+ // Trigger errors in this case. This means theoretically improperly built abortes useResource() could suspend forever.
96
+ return {
97
+ ...state,
98
+ optimistic: filterOptimistic(state, action)
99
+ };
100
+ }
101
+ return {
102
+ ...state,
103
+ meta: {
104
+ ...state.meta,
105
+ [action.meta.key]: {
106
+ date: action.meta.date,
107
+ error,
108
+ expiresAt: action.meta.expiresAt,
109
+ errorPolicy: action.meta.errorPolicy == null ? void 0 : action.meta.errorPolicy(error)
110
+ }
111
+ },
112
+ optimistic: filterOptimistic(state, action)
113
+ };
114
+ }
115
+ /** Filter all requests with same serialization that did not start after the resolving request */
116
+ function filterOptimistic(state, resolvingAction) {
117
+ return state.optimistic.filter(optimisticAction => optimisticAction.meta.key !== resolvingAction.meta.key || (optimisticAction.type === OPTIMISTIC_TYPE ? optimisticAction.meta.fetchedAt !== resolvingAction.meta.fetchedAt : optimisticAction.meta.date > resolvingAction.meta.date));
118
+ }
119
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJPUFRJTUlTVElDX1RZUEUiLCJhcHBseVVwZGF0ZXJzVG9SZXN1bHRzIiwic2V0UmVkdWNlciIsInN0YXRlIiwiYWN0aW9uIiwiY29udHJvbGxlciIsImVycm9yIiwicmVkdWNlRXJyb3IiLCJwYXlsb2FkIiwiX3N0YXRlJG1ldGEkYWN0aW9uJG1lIiwidHlwZSIsImVuZHBvaW50IiwiZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlIiwiY2FsbCIsInNuYXBzaG90IiwibWV0YSIsImZldGNoZWRBdCIsImFyZ3MiLCJlIiwiX2UkY29uc3RydWN0b3IiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJyZXN1bHQiLCJlbnRpdGllcyIsImluZGV4ZXMiLCJlbnRpdHlNZXRhIiwic2NoZW1hIiwiZGF0ZSIsInJlc3VsdHMiLCJrZXkiLCJ1cGRhdGVycyIsInVwZGF0ZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwiY29uc29sZSIsImV4cGlyZXNBdCIsInByZXZFeHBpcmVzQXQiLCJvcHRpbWlzdGljIiwiZmlsdGVyT3B0aW1pc3RpYyIsImxhc3RSZXNldCIsIm1lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwidW5kZWZpbmVkIiwic3RhdHVzIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXJyb3JQb2xpY3kiLCJyZXNvbHZpbmdBY3Rpb24iLCJmaWx0ZXIiLCJvcHRpbWlzdGljQWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRlL3JlZHVjZXIvc2V0UmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemUgfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcblxuaW1wb3J0IHsgT1BUSU1JU1RJQ19UWVBFIH0gZnJvbSAnLi4vLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgQ29udHJvbGxlciBmcm9tICcuLi8uLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBSZWNlaXZlQWN0aW9uLCBPcHRpbWlzdGljQWN0aW9uIH0gZnJvbSAnLi4vLi4vcHJldmlvdXNBY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhdGUgfSBmcm9tICcuLi8uLi90eXBlcy5qcyc7XG5pbXBvcnQgYXBwbHlVcGRhdGVyc1RvUmVzdWx0cyBmcm9tICcuLi9hcHBseVVwZGF0ZXJzVG9SZXN1bHRzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlZHVjZXIoXG4gIHN0YXRlOiBTdGF0ZTx1bmtub3duPixcbiAgYWN0aW9uOiBPcHRpbWlzdGljQWN0aW9uIHwgUmVjZWl2ZUFjdGlvbixcbiAgY29udHJvbGxlcjogQ29udHJvbGxlcixcbikge1xuICBpZiAoYWN0aW9uLmVycm9yKSB7XG4gICAgcmV0dXJuIHJlZHVjZUVycm9yKHN0YXRlLCBhY3Rpb24sIGFjdGlvbi5wYXlsb2FkKTtcbiAgfVxuICB0cnkge1xuICAgIGxldCBwYXlsb2FkOiBhbnk7XG4gICAgLy8gZm9yIHRydWUgcmVjZWl2ZXMgcGF5bG9hZCBpcyBjb250YWluZWQgaW4gYWN0aW9uXG4gICAgaWYgKGFjdGlvbi50eXBlID09PSBPUFRJTUlTVElDX1RZUEUpIHtcbiAgICAgIGlmICghYWN0aW9uLmVuZHBvaW50LmdldE9wdGltaXN0aWNSZXNwb25zZSkgcmV0dXJuIHN0YXRlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gY29tcHV0ZSBvcHRpbWlzdGljIHJlc3BvbnNlIGJhc2VkIG9uIGN1cnJlbnQgc3RhdGVcbiAgICAgICAgcGF5bG9hZCA9IGFjdGlvbi5lbmRwb2ludC5nZXRPcHRpbWlzdGljUmVzcG9uc2UuY2FsbChcbiAgICAgICAgICBhY3Rpb24uZW5kcG9pbnQsXG4gICAgICAgICAgY29udHJvbGxlci5zbmFwc2hvdChzdGF0ZSwgYWN0aW9uLm1ldGEuZmV0Y2hlZEF0KSxcbiAgICAgICAgICAvLyBpZiBlbmRwb2ludCBleGlzdHMsIHNvIG11c3QgYXJnczsgVE9ETzogZml4IHR5cGluZ1xuICAgICAgICAgIC4uLihhY3Rpb24ubWV0YS5hcmdzIGFzIGFueVtdKSxcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAvLyBBYm9ydE9wdGltaXN0aWMgbWVhbnMgJ2RvIG5vdGhpbmcnLCBvdGhlcndpc2Ugd2UgY291bnQgdGhlIGV4Y2VwdGlvbiBhcyBlbmRwb2ludCBmYWlsdXJlXG4gICAgICAgIGlmIChlLmNvbnN0cnVjdG9yPy5uYW1lID09PSAnQWJvcnRPcHRpbWlzdGljJykge1xuICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXlsb2FkID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgfVxuICAgIGNvbnN0IHsgcmVzdWx0LCBlbnRpdGllcywgaW5kZXhlcywgZW50aXR5TWV0YSB9ID0gbm9ybWFsaXplKFxuICAgICAgcGF5bG9hZCxcbiAgICAgIGFjdGlvbi5tZXRhLnNjaGVtYSxcbiAgICAgIGFjdGlvbi5tZXRhLmFyZ3MgYXMgYW55LFxuICAgICAgc3RhdGUuZW50aXRpZXMsXG4gICAgICBzdGF0ZS5pbmRleGVzLFxuICAgICAgc3RhdGUuZW50aXR5TWV0YSxcbiAgICAgIHsgZmV0Y2hlZEF0OiBhY3Rpb24ubWV0YS5kYXRlLCAuLi5hY3Rpb24ubWV0YSB9LFxuICAgICk7XG4gICAgbGV0IHJlc3VsdHMgPSB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgW2FjdGlvbi5tZXRhLmtleV06IHJlc3VsdCxcbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBpZiAoJ3VwZGF0ZXJzJyBpbiBhY3Rpb24ubWV0YSAmJiBhY3Rpb24ubWV0YS51cGRhdGVycykge1xuICAgICAgICByZXN1bHRzID0gYXBwbHlVcGRhdGVyc1RvUmVzdWx0cyhcbiAgICAgICAgICByZXN1bHRzLFxuICAgICAgICAgIHJlc3VsdCxcbiAgICAgICAgICBhY3Rpb24ubWV0YS51cGRhdGVycyBhcyBhbnksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoYWN0aW9uLm1ldGEudXBkYXRlKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZXJzID0gYWN0aW9uLm1ldGEudXBkYXRlKFxuICAgICAgICAgIHJlc3VsdCxcbiAgICAgICAgICAuLi4oYWN0aW9uLm1ldGEuYXJncyB8fCBbXSksXG4gICAgICAgICk7XG4gICAgICAgIE9iamVjdC5rZXlzKHVwZGF0ZXJzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgcmVzdWx0c1trZXldID0gdXBkYXRlcnNba2V5XShyZXN1bHRzW2tleV0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIG5vIHJlYXNvbiB0byBjb21wbGV0ZWx5IGZhaWwgYmVjYXVzZSBvZiB1c2VyLWNvZGUgZXJyb3JcbiAgICAgIC8vIGludGVncml0eSBvZiB0aGlzIHN0YXRlIHVwZGF0ZSBpcyBzdGlsbCBndWFyYW50ZWVkXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBUaGUgZm9sbG93aW5nIGVycm9yIG9jY3VyZWQgZHVyaW5nIEVuZHBvaW50LnVwZGF0ZSgpIGZvciAke2FjdGlvbi5tZXRhLmtleX1gLFxuICAgICAgKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZW50aXRpZXMsXG4gICAgICBpbmRleGVzLFxuICAgICAgcmVzdWx0cyxcbiAgICAgIGVudGl0eU1ldGEsXG4gICAgICBtZXRhOiB7XG4gICAgICAgIC4uLnN0YXRlLm1ldGEsXG4gICAgICAgIFthY3Rpb24ubWV0YS5rZXldOiB7XG4gICAgICAgICAgZGF0ZTogYWN0aW9uLm1ldGEuZGF0ZSxcbiAgICAgICAgICBleHBpcmVzQXQ6IGFjdGlvbi5tZXRhLmV4cGlyZXNBdCxcbiAgICAgICAgICBwcmV2RXhwaXJlc0F0OiBzdGF0ZS5tZXRhW2FjdGlvbi5tZXRhLmtleV0/LmV4cGlyZXNBdCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICAgICAgbGFzdFJlc2V0OiBzdGF0ZS5sYXN0UmVzZXQsXG4gICAgfTtcbiAgICAvLyByZWR1Y2VyIG11c3QgdXBkYXRlIHRoZSBzdGF0ZSwgc28gaW4gY2FzZSBvZiBwcm9jZXNzaW5nIGVycm9ycyB3ZSBzaW1wbHkgY29tcHV0ZSB0aGUgcmVzdWx0cyBpbmxpbmVcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgICBlcnJvci5tZXNzYWdlID0gYEVycm9yIHByb2Nlc3NpbmcgJHtcbiAgICAgICAgYWN0aW9uLm1ldGEua2V5XG4gICAgICB9XFxuXFxuRnVsbCBTY2hlbWE6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIGFjdGlvbi5tZXRhLnNjaGVtYSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAyLFxuICAgICAgKX1cXG5cXG5FcnJvcjpcXG4ke2Vycm9yLm1lc3NhZ2V9YDtcbiAgICAgIGlmICgncGF5bG9hZCcgaW4gYWN0aW9uKSBlcnJvci5wYXlsb2FkID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBlcnJvci5zdGF0dXMgPSA0MDA7XG4gICAgfVxuXG4gICAgLy8gdGhpcyBpcyBub3QgYWx3YXlzIGJ1YmJsZWQgdXAsIHNvIGxldCdzIGRvdWJsZSBzdXJlIHRoaXMgZG9lc24ndCBmYWlsIHNpbGVudGx5XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgfVxuICAgIHJldHVybiByZWR1Y2VFcnJvcihzdGF0ZSwgYWN0aW9uLCBlcnJvcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVkdWNlRXJyb3IoXG4gIHN0YXRlOiBTdGF0ZTx1bmtub3duPixcbiAgYWN0aW9uOiBSZWNlaXZlQWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbiAgZXJyb3I6IGFueSxcbik6IFN0YXRlPHVua25vd24+IHtcbiAgaWYgKGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgIC8vIEluIGNhc2Ugd2UgYWJvcnQgc2ltcGx5IHVuZG8gdGhlIG9wdGltaXN0aWMgdXBkYXRlIGFuZCBhY3QgbGlrZSBubyBmZXRjaCBldmVuIG9jY3VyZWRcbiAgICAvLyBXZSBzdGlsbCB3YW50IHRob3NlIHdhdGNoaW5nIHByb21pc2VzIGZyb20gZmV0Y2ggZGlyZWN0bHkgdG8gb2JzZXJ2ZWQgdGhlIGFib3J0LCBidXQgd2UgZG9uJ3Qgd2FudCB0b1xuICAgIC8vIFRyaWdnZXIgZXJyb3JzIGluIHRoaXMgY2FzZS4gVGhpcyBtZWFucyB0aGVvcmV0aWNhbGx5IGltcHJvcGVybHkgYnVpbHQgYWJvcnRlcyB1c2VSZXNvdXJjZSgpIGNvdWxkIHN1c3BlbmQgZm9yZXZlci5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtZXRhOiB7XG4gICAgICAuLi5zdGF0ZS5tZXRhLFxuICAgICAgW2FjdGlvbi5tZXRhLmtleV06IHtcbiAgICAgICAgZGF0ZTogYWN0aW9uLm1ldGEuZGF0ZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGV4cGlyZXNBdDogYWN0aW9uLm1ldGEuZXhwaXJlc0F0LFxuICAgICAgICBlcnJvclBvbGljeTogYWN0aW9uLm1ldGEuZXJyb3JQb2xpY3k/LihlcnJvciksXG4gICAgICB9LFxuICAgIH0sXG4gICAgb3B0aW1pc3RpYzogZmlsdGVyT3B0aW1pc3RpYyhzdGF0ZSwgYWN0aW9uKSxcbiAgfTtcbn1cbi8qKiBGaWx0ZXIgYWxsIHJlcXVlc3RzIHdpdGggc2FtZSBzZXJpYWxpemF0aW9uIHRoYXQgZGlkIG5vdCBzdGFydCBhZnRlciB0aGUgcmVzb2x2aW5nIHJlcXVlc3QgKi9cbmZ1bmN0aW9uIGZpbHRlck9wdGltaXN0aWMoXG4gIHN0YXRlOiBTdGF0ZTx1bmtub3duPixcbiAgcmVzb2x2aW5nQWN0aW9uOiBSZWNlaXZlQWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbikge1xuICByZXR1cm4gc3RhdGUub3B0aW1pc3RpYy5maWx0ZXIoXG4gICAgb3B0aW1pc3RpY0FjdGlvbiA9PlxuICAgICAgb3B0aW1pc3RpY0FjdGlvbi5tZXRhLmtleSAhPT0gcmVzb2x2aW5nQWN0aW9uLm1ldGEua2V5IHx8XG4gICAgICAob3B0aW1pc3RpY0FjdGlvbi50eXBlID09PSBPUFRJTUlTVElDX1RZUEVcbiAgICAgICAgPyBvcHRpbWlzdGljQWN0aW9uLm1ldGEuZmV0Y2hlZEF0ICE9PSByZXNvbHZpbmdBY3Rpb24ubWV0YS5mZXRjaGVkQXRcbiAgICAgICAgOiBvcHRpbWlzdGljQWN0aW9uLm1ldGEuZGF0ZSA+IHJlc29sdmluZ0FjdGlvbi5tZXRhLmRhdGUpLFxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLFFBQVEsd0JBQXdCO0FBRWxELFNBQVNDLGVBQWUsUUFBUSxzQkFBc0I7QUFJdEQsT0FBT0Msc0JBQXNCLE1BQU0sOEJBQThCO0FBRWpFLE9BQU8sU0FBU0MsVUFBVUEsQ0FDeEJDLEtBQXFCLEVBQ3JCQyxNQUF3QyxFQUN4Q0MsVUFBc0IsRUFDdEI7RUFDQSxJQUFJRCxNQUFNLENBQUNFLEtBQUssRUFBRTtJQUNoQixPQUFPQyxXQUFXLENBQUNKLEtBQUssRUFBRUMsTUFBTSxFQUFFQSxNQUFNLENBQUNJLE9BQU8sQ0FBQztFQUNuRDtFQUNBLElBQUk7SUFBQSxJQUFBQyxxQkFBQTtJQUNGLElBQUlELE9BQVk7SUFDaEI7SUFDQSxJQUFJSixNQUFNLENBQUNNLElBQUksS0FBS1YsZUFBZSxFQUFF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
@@ -0,0 +1,7 @@
1
+ import { ActionTypes, State } from '../types.js';
2
+ /**
3
+ * @deprecated use createReducer instead
4
+ */
5
+ declare const reducer: (state: State<unknown> | undefined, action: ActionTypes) => State<unknown>;
6
+ export default reducer;
7
+ //# sourceMappingURL=reducerInstance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducerInstance.d.ts","sourceRoot":"","sources":["../../src/state/reducerInstance.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEjD;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,CACb,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,EACjC,MAAM,EAAE,WAAW,KAChB,KAAK,CAAC,OAAO,CAAmC,CAAC;AAEtD,eAAe,OAAO,CAAC"}
@@ -0,0 +1,9 @@
1
+ /* istanbul ignore file */
2
+ import createReducer from './reducer/createReducer.js';
3
+ import Controller from '../controller/Controller.js';
4
+ /**
5
+ * @deprecated use createReducer instead
6
+ */
7
+ const reducer = createReducer(new Controller());
8
+ export default reducer;
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVSZWR1Y2VyIiwiQ29udHJvbGxlciIsInJlZHVjZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhdGUvcmVkdWNlckluc3RhbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG5pbXBvcnQgY3JlYXRlUmVkdWNlciBmcm9tICcuL3JlZHVjZXIvY3JlYXRlUmVkdWNlci5qcyc7XG5pbXBvcnQgQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHsgQWN0aW9uVHlwZXMsIFN0YXRlIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBjcmVhdGVSZWR1Y2VyIGluc3RlYWRcbiAqL1xuY29uc3QgcmVkdWNlcjogKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4gfCB1bmRlZmluZWQsXG4gIGFjdGlvbjogQWN0aW9uVHlwZXMsXG4pID0+IFN0YXRlPHVua25vd24+ID0gY3JlYXRlUmVkdWNlcihuZXcgQ29udHJvbGxlcigpKTtcblxuZXhwb3J0IGRlZmF1bHQgcmVkdWNlcjtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxPQUFPQSxhQUFhLE1BQU0sNEJBQTRCO0FBQ3RELE9BQU9DLFVBQVUsTUFBTSw2QkFBNkI7QUFHcEQ7QUFDQTtBQUNBO0FBQ0EsTUFBTUMsT0FHYSxHQUFHRixhQUFhLENBQUMsSUFBSUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUVyRCxlQUFlQyxPQUFPIn0=
@@ -0,0 +1,3 @@
1
+ import type { State } from '../types.js';
2
+ export default function selectMeta<R = any>(state: State<R>, fetchKey: string): State<R>['meta'][string];
3
+ //# sourceMappingURL=selectMeta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectMeta.d.ts","sourceRoot":"","sources":["../../src/state/selectMeta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,CAAC,GAAG,GAAG,EACxC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,QAAQ,EAAE,MAAM,GACf,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAE1B"}
@@ -0,0 +1,4 @@
1
+ export default function selectMeta(state, fetchKey) {
2
+ return state.meta[fetchKey];
3
+ }
4
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzZWxlY3RNZXRhIiwic3RhdGUiLCJmZXRjaEtleSIsIm1ldGEiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhdGUvc2VsZWN0TWV0YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFN0YXRlIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzZWxlY3RNZXRhPFIgPSBhbnk+KFxuICBzdGF0ZTogU3RhdGU8Uj4sXG4gIGZldGNoS2V5OiBzdHJpbmcsXG4pOiBTdGF0ZTxSPlsnbWV0YSddW3N0cmluZ10ge1xuICByZXR1cm4gc3RhdGUubWV0YVtmZXRjaEtleV07XG59XG4iXSwibWFwcGluZ3MiOiJBQUVBLGVBQWUsU0FBU0EsVUFBVUEsQ0FDaENDLEtBQWUsRUFDZkMsUUFBZ0IsRUFDVTtFQUMxQixPQUFPRCxLQUFLLENBQUNFLElBQUksQ0FBQ0QsUUFBUSxDQUFDO0FBQzdCIn0=
package/lib/types.d.ts ADDED
@@ -0,0 +1,71 @@
1
+ import { EndpointInterface, NormalizedIndex, Schema } from '@data-client/normalizr';
2
+ import type { UpdateFunction, AbstractInstanceType } from '@data-client/normalizr';
3
+ import type { ErrorTypes } from '@data-client/normalizr';
4
+ import { RECEIVE_TYPE } from './actionTypes.js';
5
+ import { CompatibleFetchAction, CompatibleReceiveAction, CompatibleSubscribeAction, CompatibleUnsubscribeAction } from './compatibleActions.js';
6
+ import { EndpointUpdateFunction } from './controller/types.js';
7
+ import * as legacyActions from './legacyActions.js';
8
+ import { Dispatch, Middleware, MiddlewareAPI } from './middlewareTypes.js';
9
+ import * as newActions from './newActions.js';
10
+ import * as previousActions from './previousActions.js';
11
+ export type { AbstractInstanceType, UpdateFunction };
12
+ export type ReceiveTypes = typeof RECEIVE_TYPE;
13
+ export type PK = string;
14
+ export interface State<T> {
15
+ readonly entities: {
16
+ readonly [entityKey: string]: {
17
+ readonly [pk: string]: T;
18
+ } | undefined;
19
+ };
20
+ readonly indexes: NormalizedIndex;
21
+ readonly results: {
22
+ readonly [key: string]: unknown | PK[] | PK | undefined;
23
+ };
24
+ readonly meta: {
25
+ readonly [key: string]: {
26
+ readonly date: number;
27
+ readonly error?: ErrorTypes;
28
+ readonly expiresAt: number;
29
+ readonly prevExpiresAt?: number;
30
+ readonly invalidated?: boolean;
31
+ readonly errorPolicy?: 'hard' | 'soft' | undefined;
32
+ };
33
+ };
34
+ readonly entityMeta: {
35
+ readonly [entityKey: string]: {
36
+ readonly [pk: string]: {
37
+ readonly date: number;
38
+ readonly expiresAt: number;
39
+ readonly fetchedAt: number;
40
+ };
41
+ };
42
+ };
43
+ readonly optimistic: (previousActions.ReceiveAction | previousActions.OptimisticAction)[];
44
+ readonly lastReset: Date | number;
45
+ }
46
+ export * as legacyActions from './legacyActions.js';
47
+ export * as newActions from './newActions.js';
48
+ export type { SetAction } from './newActions.js';
49
+ export type OptimisticAction<E extends EndpointInterface & {
50
+ update?: EndpointUpdateFunction<E>;
51
+ } = EndpointInterface & {
52
+ update?: EndpointUpdateFunction<EndpointInterface>;
53
+ }> = newActions.OptimisticAction<E>;
54
+ export type InvalidateAction = newActions.InvalidateAction;
55
+ export type ResetAction = newActions.ResetAction | legacyActions.ResetAction;
56
+ export type GCAction = newActions.GCAction;
57
+ export type FetchAction<Payload extends object | string | number | null = object | string | number | null, S extends Schema | undefined = any> = CompatibleFetchAction | legacyActions.FetchAction<Payload, S>;
58
+ export type ReceiveAction<Payload extends object | string | number | null = object | string | number | null, S extends Schema | undefined = any> = CompatibleReceiveAction | legacyActions.ReceiveAction<Payload, S>;
59
+ export type SubscribeAction = CompatibleSubscribeAction | legacyActions.SubscribeAction;
60
+ export type UnsubscribeAction = CompatibleUnsubscribeAction | legacyActions.UnsubscribeAction;
61
+ export type ResponseActions = ReceiveAction;
62
+ export type OldActionTypes = previousActions.ActionTypes;
63
+ export type CombinedActionTypes = OptimisticAction | InvalidateAction | ResetAction | GCAction | FetchAction | ReceiveAction | SubscribeAction | UnsubscribeAction;
64
+ export type ActionTypes = CombinedActionTypes;
65
+ export interface Manager<Actions = CombinedActionTypes> {
66
+ getMiddleware(): Middleware<Actions>;
67
+ cleanup(): void;
68
+ init?: (state: State<any>) => void;
69
+ }
70
+ export type { Dispatch, Middleware, MiddlewareAPI };
71
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/lib/types.js ADDED
@@ -0,0 +1,8 @@
1
+ import * as _legacyActions from './legacyActions.js';
2
+ export { _legacyActions as legacyActions };
3
+ import * as _newActions from './newActions.js';
4
+ export { _newActions as newActions };
5
+ /* maintain backwards compatibility */
6
+ /* TODO: switch to only include newActions in future */
7
+ // put other actions here in union
8
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVnYWN5QWN0aW9ucyIsImxlZ2FjeUFjdGlvbnMiLCJfbmV3QWN0aW9ucyIsIm5ld0FjdGlvbnMiXSwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW5kcG9pbnRJbnRlcmZhY2UsXG4gIE5vcm1hbGl6ZWRJbmRleCxcbiAgU2NoZW1hLFxufSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcbmltcG9ydCB0eXBlIHtcbiAgVXBkYXRlRnVuY3Rpb24sXG4gIEFic3RyYWN0SW5zdGFuY2VUeXBlLFxufSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcbmltcG9ydCB0eXBlIHsgRXJyb3JUeXBlcyB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgeyBSRUNFSVZFX1RZUEUgfSBmcm9tICcuL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB7XG4gIENvbXBhdGlibGVGZXRjaEFjdGlvbixcbiAgQ29tcGF0aWJsZVJlY2VpdmVBY3Rpb24sXG4gIENvbXBhdGlibGVTdWJzY3JpYmVBY3Rpb24sXG4gIENvbXBhdGlibGVVbnN1YnNjcmliZUFjdGlvbixcbn0gZnJvbSAnLi9jb21wYXRpYmxlQWN0aW9ucy5qcyc7XG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi9jb250cm9sbGVyL3R5cGVzLmpzJztcbmltcG9ydCAqIGFzIGxlZ2FjeUFjdGlvbnMgZnJvbSAnLi9sZWdhY3lBY3Rpb25zLmpzJztcbmltcG9ydCB7IERpc3BhdGNoLCBNaWRkbGV3YXJlLCBNaWRkbGV3YXJlQVBJIH0gZnJvbSAnLi9taWRkbGV3YXJlVHlwZXMuanMnO1xuaW1wb3J0ICogYXMgbmV3QWN0aW9ucyBmcm9tICcuL25ld0FjdGlvbnMuanMnO1xuaW1wb3J0ICogYXMgcHJldmlvdXNBY3Rpb25zIGZyb20gJy4vcHJldmlvdXNBY3Rpb25zLmpzJztcblxuZXhwb3J0IHR5cGUgeyBBYnN0cmFjdEluc3RhbmNlVHlwZSwgVXBkYXRlRnVuY3Rpb24gfTtcblxuZXhwb3J0IHR5cGUgUmVjZWl2ZVR5cGVzID0gdHlwZW9mIFJFQ0VJVkVfVFlQRTtcblxuZXhwb3J0IHR5cGUgUEsgPSBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGU8VD4ge1xuICByZWFkb25seSBlbnRpdGllczoge1xuICAgIHJlYWRvbmx5IFtlbnRpdHlLZXk6IHN0cmluZ106IHsgcmVhZG9ubHkgW3BrOiBzdHJpbmddOiBUIH0gfCB1bmRlZmluZWQ7XG4gIH07XG4gIHJlYWRvbmx5IGluZGV4ZXM6IE5vcm1hbGl6ZWRJbmRleDtcbiAgcmVhZG9ubHkgcmVzdWx0czogeyByZWFkb25seSBba2V5OiBzdHJpbmddOiB1bmtub3duIHwgUEtbXSB8IFBLIHwgdW5kZWZpbmVkIH07XG4gIHJlYWRvbmx5IG1ldGE6IHtcbiAgICByZWFkb25seSBba2V5OiBzdHJpbmddOiB7XG4gICAgICByZWFkb25seSBkYXRlOiBudW1iZXI7XG4gICAgICByZWFkb25seSBlcnJvcj86IEVycm9yVHlwZXM7XG4gICAgICByZWFkb25seSBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICAgIHJlYWRvbmx5IHByZXZFeHBpcmVzQXQ/OiBudW1iZXI7XG4gICAgICByZWFkb25seSBpbnZhbGlkYXRlZD86IGJvb2xlYW47XG4gICAgICByZWFkb25seSBlcnJvclBvbGljeT86ICdoYXJkJyB8ICdzb2Z0JyB8IHVuZGVmaW5lZDtcbiAgICB9O1xuICB9O1xuICByZWFkb25seSBlbnRpdHlNZXRhOiB7XG4gICAgcmVhZG9ubHkgW2VudGl0eUtleTogc3RyaW5nXToge1xuICAgICAgcmVhZG9ubHkgW3BrOiBzdHJpbmddOiB7XG4gICAgICAgIHJlYWRvbmx5IGRhdGU6IG51bWJlcjtcbiAgICAgICAgcmVhZG9ubHkgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgICAgIHJlYWRvbmx5IGZldGNoZWRBdDogbnVtYmVyO1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICByZWFkb25seSBvcHRpbWlzdGljOiAoXG4gICAgfCBwcmV2aW91c0FjdGlvbnMuUmVjZWl2ZUFjdGlvblxuICAgIHwgcHJldmlvdXNBY3Rpb25zLk9wdGltaXN0aWNBY3Rpb25cbiAgKVtdO1xuICByZWFkb25seSBsYXN0UmVzZXQ6IERhdGUgfCBudW1iZXI7XG59XG5cbmV4cG9ydCAqIGFzIGxlZ2FjeUFjdGlvbnMgZnJvbSAnLi9sZWdhY3lBY3Rpb25zLmpzJztcbmV4cG9ydCAqIGFzIG5ld0FjdGlvbnMgZnJvbSAnLi9uZXdBY3Rpb25zLmpzJztcbmV4cG9ydCB0eXBlIHsgU2V0QWN0aW9uIH0gZnJvbSAnLi9uZXdBY3Rpb25zLmpzJztcblxuLyogbWFpbnRhaW4gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgKi9cbi8qIFRPRE86IHN3aXRjaCB0byBvbmx5IGluY2x1ZGUgbmV3QWN0aW9ucyBpbiBmdXR1cmUgKi9cbmV4cG9ydCB0eXBlIE9wdGltaXN0aWNBY3Rpb248XG4gIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZSAmIHtcbiAgICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+O1xuICB9ID0gRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFbmRwb2ludEludGVyZmFjZT47XG4gIH0sXG4+ID0gbmV3QWN0aW9ucy5PcHRpbWlzdGljQWN0aW9uPEU+O1xuZXhwb3J0IHR5cGUgSW52YWxpZGF0ZUFjdGlvbiA9IG5ld0FjdGlvbnMuSW52YWxpZGF0ZUFjdGlvbjtcbmV4cG9ydCB0eXBlIFJlc2V0QWN0aW9uID0gbmV3QWN0aW9ucy5SZXNldEFjdGlvbiB8IGxlZ2FjeUFjdGlvbnMuUmVzZXRBY3Rpb247XG5leHBvcnQgdHlwZSBHQ0FjdGlvbiA9IG5ld0FjdGlvbnMuR0NBY3Rpb247XG5leHBvcnQgdHlwZSBGZXRjaEFjdGlvbjxcbiAgUGF5bG9hZCBleHRlbmRzIG9iamVjdCB8IHN0cmluZyB8IG51bWJlciB8IG51bGwgPVxuICAgIHwgb2JqZWN0XG4gICAgfCBzdHJpbmdcbiAgICB8IG51bWJlclxuICAgIHwgbnVsbCxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbj4gPSBDb21wYXRpYmxlRmV0Y2hBY3Rpb24gfCBsZWdhY3lBY3Rpb25zLkZldGNoQWN0aW9uPFBheWxvYWQsIFM+O1xuZXhwb3J0IHR5cGUgUmVjZWl2ZUFjdGlvbjxcbiAgUGF5bG9hZCBleHRlbmRzIG9iamVjdCB8IHN0cmluZyB8IG51bWJlciB8IG51bGwgPVxuICAgIHwgb2JqZWN0XG4gICAgfCBzdHJpbmdcbiAgICB8IG51bWJlclxuICAgIHwgbnVsbCxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbj4gPSBDb21wYXRpYmxlUmVjZWl2ZUFjdGlvbiB8IGxlZ2FjeUFjdGlvbnMuUmVjZWl2ZUFjdGlvbjxQYXlsb2FkLCBTPjtcbmV4cG9ydCB0eXBlIFN1YnNjcmliZUFjdGlvbiA9XG4gIHwgQ29tcGF0aWJsZVN1YnNjcmliZUFjdGlvblxuICB8IGxlZ2FjeUFjdGlvbnMuU3Vic2NyaWJlQWN0aW9uO1xuZXhwb3J0IHR5cGUgVW5zdWJzY3JpYmVBY3Rpb24gPVxuICB8IENvbXBhdGlibGVVbnN1YnNjcmliZUFjdGlvblxuICB8IGxlZ2FjeUFjdGlvbnMuVW5zdWJzY3JpYmVBY3Rpb247XG5cbmV4cG9ydCB0eXBlIFJlc3BvbnNlQWN0aW9ucyA9IFJlY2VpdmVBY3Rpb247XG5cbi8vIHB1dCBvdGhlciBhY3Rpb25zIGhlcmUgaW4gdW5pb25cbmV4cG9ydCB0eXBlIE9sZEFjdGlvblR5cGVzID0gcHJldmlvdXNBY3Rpb25zLkFjdGlvblR5cGVzO1xuXG5leHBvcnQgdHlwZSBDb21iaW5lZEFjdGlvblR5cGVzID1cbiAgfCBPcHRpbWlzdGljQWN0aW9uXG4gIHwgSW52YWxpZGF0ZUFjdGlvblxuICB8IFJlc2V0QWN0aW9uXG4gIHwgR0NBY3Rpb25cbiAgfCBGZXRjaEFjdGlvblxuICB8IFJlY2VpdmVBY3Rpb25cbiAgfCBTdWJzY3JpYmVBY3Rpb25cbiAgfCBVbnN1YnNjcmliZUFjdGlvbjtcblxuZXhwb3J0IHR5cGUgQWN0aW9uVHlwZXMgPSBDb21iaW5lZEFjdGlvblR5cGVzO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZXI8QWN0aW9ucyA9IENvbWJpbmVkQWN0aW9uVHlwZXM+IHtcbiAgZ2V0TWlkZGxld2FyZSgpOiBNaWRkbGV3YXJlPEFjdGlvbnM+O1xuICBjbGVhbnVwKCk6IHZvaWQ7XG4gIGluaXQ/OiAoc3RhdGU6IFN0YXRlPGFueT4pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIHsgRGlzcGF0Y2gsIE1pZGRsZXdhcmUsIE1pZGRsZXdhcmVBUEkgfTtcbiJdLCJtYXBwaW5ncyI6ImdDQThEK0Isb0JBQW9CO0FBQUEsU0FBQUEsY0FBQSxJQUF2Q0MsYUFBYTtBQUFBLFlBQUFDLFdBQUEsTUFDRyxpQkFBaUI7QUFBQSxTQUFBQSxXQUFBLElBQWpDQyxVQUFVO0FBR3RCO0FBQ0E7QUFvQ0EifQ==
package/node.mjs ADDED
@@ -0,0 +1 @@
1
+ export * from './dist/index.js';
package/package.json ADDED
@@ -0,0 +1,127 @@
1
+ {
2
+ "name": "@data-client/core",
3
+ "version": "0.1.0",
4
+ "description": "High performance reactive framework for async data.",
5
+ "sideEffects": false,
6
+ "main": "dist/index.js",
7
+ "react-native": "legacy/index.js",
8
+ "module": "legacy/index.js",
9
+ "unpkg": "dist/index.umd.min.js",
10
+ "types": "lib/index.d.ts",
11
+ "typesVersions": {
12
+ ">=4.0": {
13
+ "": [
14
+ "lib/index.d.ts"
15
+ ],
16
+ "next": [
17
+ "lib/next/index.d.ts"
18
+ ],
19
+ "*": [
20
+ "lib/index.d.ts"
21
+ ]
22
+ },
23
+ ">=3.4": {
24
+ "": [
25
+ "ts3.4/index.d.ts"
26
+ ],
27
+ "next": [
28
+ "ts3.4/next/index.d.ts"
29
+ ],
30
+ "*": [
31
+ "ts3.4/index.d.ts"
32
+ ]
33
+ }
34
+ },
35
+ "exports": {
36
+ ".": {
37
+ "module": "./lib/index.js",
38
+ "import": "./node.mjs",
39
+ "require": "./dist/index.js",
40
+ "default": "./lib/index.js"
41
+ },
42
+ "./next": {
43
+ "types": "./lib/next/index.d.ts",
44
+ "require": "./dist/next.js",
45
+ "default": "./lib/next/index.js"
46
+ },
47
+ "./package.json": "./package.json"
48
+ },
49
+ "type": "module",
50
+ "engines": {
51
+ "node": "^12.17 || ^13.7 || >=14"
52
+ },
53
+ "files": [
54
+ "src",
55
+ "dist",
56
+ "lib",
57
+ "ts3.4",
58
+ "node.mjs",
59
+ "legacy",
60
+ "LICENSE",
61
+ "README.md",
62
+ "./typescript.svg",
63
+ "./rest_hooks_logo_and_text.svg"
64
+ ],
65
+ "scripts": {
66
+ "build:lib": "NODE_ENV=production BROWSERSLIST_ENV='2020' yarn g:babel --out-dir lib",
67
+ "build:legacy:lib": "NODE_ENV=production BROWSERSLIST_ENV='2018' yarn g:babel --out-dir legacy",
68
+ "build:js:node": "BROWSERSLIST_ENV=node12 yarn g:rollup",
69
+ "build:js:browser": "BROWSERSLIST_ENV=legacy yarn g:rollup",
70
+ "build:bundle": "yarn g:runs build:js:\\* && echo '{\"type\":\"commonjs\"}' > dist/package.json",
71
+ "build:clean": "yarn g:clean ./index.d.ts",
72
+ "build:legacy-types": "yarn g:downtypes lib ts3.4",
73
+ "build": "run build:lib && run build:legacy:lib && run build:bundle",
74
+ "dev": "run build:lib -w",
75
+ "prepare": "run build:lib",
76
+ "prepack": "run prepare && run build:bundle && run build:legacy:lib"
77
+ },
78
+ "keywords": [
79
+ "data",
80
+ "cache",
81
+ "normalizr",
82
+ "normalization",
83
+ "flux",
84
+ "fetch",
85
+ "hook",
86
+ "networking",
87
+ "async",
88
+ "typescript",
89
+ "async",
90
+ "data fetching",
91
+ "data cache",
92
+ "api client",
93
+ "api",
94
+ "normalized cache",
95
+ "swr",
96
+ "GraphQL",
97
+ "query",
98
+ "ios",
99
+ "android",
100
+ "web",
101
+ "middleware",
102
+ "websocket",
103
+ "sse",
104
+ "declarative",
105
+ "scalable"
106
+ ],
107
+ "author": "Nathaniel Tucker <me@ntucker.me> (https://github.com/ntucker)",
108
+ "license": "Apache-2.0",
109
+ "homepage": "https://dataclient.io",
110
+ "repository": {
111
+ "type": "git",
112
+ "url": "git+ssh://git@github.com:data-client/data-client.git",
113
+ "directory": "packages/core"
114
+ },
115
+ "bugs": {
116
+ "url": "https://github.com/data-client/data-client/issues"
117
+ },
118
+ "dependencies": {
119
+ "@babel/runtime": "^7.17.0",
120
+ "@data-client/normalizr": "^0.1.0",
121
+ "flux-standard-action": "^2.1.1"
122
+ },
123
+ "devDependencies": {
124
+ "@anansi/browserslist-config": "^1.4.2",
125
+ "@types/node": "^20.0.0"
126
+ }
127
+ }
@@ -0,0 +1,11 @@
1
+ export const FETCH_TYPE = 'rest-hooks/fetch' as const;
2
+ // TODO(breaking): deprecate this
3
+ export const RECEIVE_TYPE = 'rest-hooks/receive' as const;
4
+ export const SET_TYPE = RECEIVE_TYPE;
5
+ export const OPTIMISTIC_TYPE = 'rest-hooks/optimistic' as const;
6
+ export const RESET_TYPE = 'rest-hooks/reset' as const;
7
+ export const SUBSCRIBE_TYPE = 'rest-hooks/subscribe' as const;
8
+ export const UNSUBSCRIBE_TYPE = 'rest-hook/unsubscribe' as const;
9
+ export const INVALIDATE_TYPE = 'rest-hooks/invalidate' as const;
10
+ export const INVALIDATEALL_TYPE = 'rest-hooks/invalidateall' as const;
11
+ export const GC_TYPE = 'rest-hooks/gc' as const;
@@ -0,0 +1,96 @@
1
+ /* These are the actions actually created */
2
+ import {
3
+ EndpointExtraOptions,
4
+ EndpointInterface,
5
+ Schema,
6
+ } from '@data-client/normalizr';
7
+
8
+ import {
9
+ FetchAction,
10
+ FetchMeta,
11
+ GCAction,
12
+ InvalidateAction,
13
+ OptimisticAction,
14
+ ReceiveAction,
15
+ ReceiveActionError,
16
+ ReceiveActionSuccess,
17
+ ReceiveMeta,
18
+ ResetAction,
19
+ SubscribeAction,
20
+ UnsubscribeAction,
21
+ } from './newActions.js';
22
+
23
+ export interface CompatibleFetchMeta extends FetchMeta {
24
+ key: string;
25
+ schema?: Schema;
26
+ type: 'mutate' | 'read';
27
+ update?: (result: any, ...args: any) => Record<string, (...args: any) => any>;
28
+ options?: EndpointExtraOptions;
29
+ optimisticResponse?: {};
30
+ }
31
+ export interface CompatibleFetchAction<
32
+ E extends EndpointInterface = EndpointInterface,
33
+ > extends FetchAction<E> {
34
+ meta: CompatibleFetchMeta;
35
+ }
36
+
37
+ export interface CompatibleReceiveMeta extends ReceiveMeta {
38
+ key: string;
39
+ schema?: any;
40
+ update?: (result: any, ...args: any) => Record<string, (...args: any) => any>;
41
+ errorPolicy?: (error: any) => 'hard' | 'soft' | undefined;
42
+ }
43
+ export interface CompatibleReceiveActionSuccess<
44
+ E extends EndpointInterface = EndpointInterface,
45
+ > extends ReceiveActionSuccess<E> {
46
+ meta: CompatibleReceiveMeta;
47
+ payload: any;
48
+ }
49
+ export interface CompatibleReceiveActionError<
50
+ E extends EndpointInterface = EndpointInterface,
51
+ > extends ReceiveActionError<E> {
52
+ meta: CompatibleReceiveMeta;
53
+ payload: any;
54
+ }
55
+ export type CompatibleReceiveAction<
56
+ E extends EndpointInterface = EndpointInterface,
57
+ > = CompatibleReceiveActionSuccess<E> | CompatibleReceiveActionError<E>;
58
+
59
+ export interface CompatibleSubscribeAction<
60
+ E extends EndpointInterface = EndpointInterface,
61
+ > extends SubscribeAction<E> {
62
+ meta: {
63
+ args: readonly any[];
64
+ schema: Schema | undefined;
65
+ fetch: () => Promise<any>;
66
+ key: string;
67
+ options: EndpointExtraOptions | undefined;
68
+ };
69
+ }
70
+
71
+ export interface CompatibleUnsubscribeAction<
72
+ E extends EndpointInterface = EndpointInterface,
73
+ > extends UnsubscribeAction<E> {
74
+ meta: {
75
+ args: readonly any[];
76
+ key: string;
77
+ options: EndpointExtraOptions | undefined;
78
+ };
79
+ }
80
+
81
+ export type {
82
+ OptimisticAction,
83
+ InvalidateAction,
84
+ ResetAction,
85
+ GCAction,
86
+ } from './newActions.js';
87
+
88
+ export type CompatibleActionTypes =
89
+ | CompatibleFetchAction
90
+ | OptimisticAction
91
+ | CompatibleReceiveAction
92
+ | CompatibleSubscribeAction
93
+ | CompatibleUnsubscribeAction
94
+ | InvalidateAction
95
+ | ResetAction
96
+ | GCAction;