relay-runtime 11.0.1 → 13.0.0-rc.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 (169) hide show
  1. package/handlers/RelayDefaultHandlerProvider.js.flow +2 -2
  2. package/handlers/connection/ConnectionHandler.js.flow +8 -17
  3. package/handlers/connection/MutationHandlers.js.flow +7 -11
  4. package/index.js +1 -1
  5. package/index.js.flow +60 -36
  6. package/lib/handlers/RelayDefaultHandlerProvider.js +1 -1
  7. package/lib/handlers/connection/ConnectionHandler.js +13 -19
  8. package/lib/handlers/connection/MutationHandlers.js +4 -7
  9. package/lib/index.js +58 -43
  10. package/lib/multi-actor-environment/ActorIdentifier.js +33 -0
  11. package/lib/multi-actor-environment/ActorSpecificEnvironment.js +152 -0
  12. package/lib/multi-actor-environment/ActorUtils.js +27 -0
  13. package/lib/multi-actor-environment/MultiActorEnvironment.js +419 -0
  14. package/lib/multi-actor-environment/MultiActorEnvironmentTypes.js +11 -0
  15. package/lib/multi-actor-environment/index.js +21 -0
  16. package/lib/mutations/RelayDeclarativeMutationConfig.js +4 -1
  17. package/lib/mutations/RelayRecordProxy.js +3 -2
  18. package/lib/mutations/RelayRecordSourceMutator.js +3 -2
  19. package/lib/mutations/RelayRecordSourceProxy.js +12 -4
  20. package/lib/mutations/RelayRecordSourceSelectorProxy.js +18 -5
  21. package/lib/mutations/applyOptimisticMutation.js +6 -6
  22. package/lib/mutations/commitMutation.js +14 -10
  23. package/lib/mutations/readUpdatableQuery_EXPERIMENTAL.js +238 -0
  24. package/lib/mutations/validateMutation.js +10 -5
  25. package/lib/network/ConvertToExecuteFunction.js +2 -1
  26. package/lib/network/RelayNetwork.js +3 -2
  27. package/lib/network/RelayQueryResponseCache.js +21 -5
  28. package/lib/network/wrapNetworkWithLogObserver.js +79 -0
  29. package/lib/query/GraphQLTag.js +3 -2
  30. package/lib/query/fetchQuery.js +6 -5
  31. package/lib/query/fetchQueryInternal.js +1 -1
  32. package/lib/query/fetchQuery_DEPRECATED.js +2 -1
  33. package/lib/store/ClientID.js +7 -1
  34. package/lib/store/DataChecker.js +123 -54
  35. package/lib/store/{RelayModernQueryExecutor.js → OperationExecutor.js} +518 -200
  36. package/lib/store/RelayConcreteVariables.js +26 -8
  37. package/lib/store/RelayExperimentalGraphResponseHandler.js +153 -0
  38. package/lib/store/RelayExperimentalGraphResponseTransform.js +391 -0
  39. package/lib/store/RelayModernEnvironment.js +175 -240
  40. package/lib/store/RelayModernFragmentSpecResolver.js +52 -26
  41. package/lib/store/RelayModernOperationDescriptor.js +2 -1
  42. package/lib/store/RelayModernRecord.js +47 -12
  43. package/lib/store/RelayModernSelector.js +14 -8
  44. package/lib/store/RelayModernStore.js +56 -28
  45. package/lib/store/RelayOperationTracker.js +34 -24
  46. package/lib/store/RelayPublishQueue.js +41 -13
  47. package/lib/store/RelayReader.js +288 -48
  48. package/lib/store/RelayRecordSource.js +87 -3
  49. package/lib/store/RelayReferenceMarker.js +34 -22
  50. package/lib/store/RelayResponseNormalizer.js +211 -110
  51. package/lib/store/RelayStoreReactFlightUtils.js +4 -10
  52. package/lib/store/RelayStoreSubscriptions.js +14 -9
  53. package/lib/store/RelayStoreUtils.js +12 -7
  54. package/lib/store/ResolverCache.js +213 -0
  55. package/lib/store/ResolverFragments.js +61 -0
  56. package/lib/store/cloneRelayHandleSourceField.js +5 -4
  57. package/lib/store/cloneRelayScalarHandleSourceField.js +5 -4
  58. package/lib/store/createRelayContext.js +4 -2
  59. package/lib/store/readInlineData.js +6 -2
  60. package/lib/subscription/requestSubscription.js +34 -25
  61. package/lib/util/RelayConcreteNode.js +3 -0
  62. package/lib/util/RelayFeatureFlags.js +10 -4
  63. package/lib/util/RelayProfiler.js +17 -187
  64. package/lib/util/RelayReplaySubject.js +22 -7
  65. package/lib/util/RelayRuntimeTypes.js +0 -6
  66. package/lib/util/StringInterner.js +71 -0
  67. package/lib/util/getFragmentIdentifier.js +15 -7
  68. package/lib/util/getOperation.js +2 -1
  69. package/lib/util/getPaginationMetadata.js +41 -0
  70. package/lib/util/getPaginationVariables.js +66 -0
  71. package/lib/util/getPendingOperationsForFragment.js +55 -0
  72. package/lib/util/getRefetchMetadata.js +36 -0
  73. package/lib/util/getRelayHandleKey.js +2 -2
  74. package/lib/util/getRequestIdentifier.js +2 -2
  75. package/lib/util/getValueAtPath.js +51 -0
  76. package/lib/util/isEmptyObject.js +1 -1
  77. package/lib/util/registerEnvironmentWithDevTools.js +26 -0
  78. package/lib/util/withDuration.js +31 -0
  79. package/multi-actor-environment/ActorIdentifier.js.flow +43 -0
  80. package/multi-actor-environment/ActorSpecificEnvironment.js.flow +225 -0
  81. package/multi-actor-environment/ActorUtils.js.flow +33 -0
  82. package/multi-actor-environment/MultiActorEnvironment.js.flow +506 -0
  83. package/multi-actor-environment/MultiActorEnvironmentTypes.js.flow +261 -0
  84. package/multi-actor-environment/index.js.flow +26 -0
  85. package/mutations/RelayDeclarativeMutationConfig.js.flow +32 -26
  86. package/mutations/RelayRecordProxy.js.flow +4 -5
  87. package/mutations/RelayRecordSourceMutator.js.flow +4 -6
  88. package/mutations/RelayRecordSourceProxy.js.flow +19 -10
  89. package/mutations/RelayRecordSourceSelectorProxy.js.flow +22 -7
  90. package/mutations/applyOptimisticMutation.js.flow +13 -14
  91. package/mutations/commitLocalUpdate.js.flow +1 -1
  92. package/mutations/commitMutation.js.flow +35 -46
  93. package/mutations/readUpdatableQuery_EXPERIMENTAL.js.flow +309 -0
  94. package/mutations/validateMutation.js.flow +26 -16
  95. package/network/ConvertToExecuteFunction.js.flow +2 -2
  96. package/network/RelayNetwork.js.flow +4 -5
  97. package/network/RelayNetworkTypes.js.flow +5 -4
  98. package/network/RelayObservable.js.flow +1 -1
  99. package/network/RelayQueryResponseCache.js.flow +34 -21
  100. package/network/wrapNetworkWithLogObserver.js.flow +100 -0
  101. package/package.json +3 -2
  102. package/query/GraphQLTag.js.flow +9 -9
  103. package/query/PreloadableQueryRegistry.js.flow +2 -1
  104. package/query/fetchQuery.js.flow +11 -13
  105. package/query/fetchQueryInternal.js.flow +6 -9
  106. package/query/fetchQuery_DEPRECATED.js.flow +6 -6
  107. package/relay-runtime.js +2 -2
  108. package/relay-runtime.min.js +2 -2
  109. package/store/ClientID.js.flow +14 -3
  110. package/store/DataChecker.js.flow +141 -59
  111. package/store/{RelayModernQueryExecutor.js.flow → OperationExecutor.js.flow} +605 -303
  112. package/store/RelayConcreteVariables.js.flow +27 -8
  113. package/store/RelayExperimentalGraphResponseHandler.js.flow +124 -0
  114. package/store/RelayExperimentalGraphResponseTransform.js.flow +475 -0
  115. package/store/RelayModernEnvironment.js.flow +173 -240
  116. package/store/RelayModernFragmentSpecResolver.js.flow +55 -31
  117. package/store/RelayModernOperationDescriptor.js.flow +12 -7
  118. package/store/RelayModernRecord.js.flow +67 -11
  119. package/store/RelayModernSelector.js.flow +24 -14
  120. package/store/RelayModernStore.js.flow +66 -36
  121. package/store/RelayOperationTracker.js.flow +59 -43
  122. package/store/RelayOptimisticRecordSource.js.flow +2 -2
  123. package/store/RelayPublishQueue.js.flow +79 -34
  124. package/store/RelayReader.js.flow +351 -73
  125. package/store/RelayRecordSource.js.flow +72 -6
  126. package/store/RelayReferenceMarker.js.flow +40 -26
  127. package/store/RelayResponseNormalizer.js.flow +258 -99
  128. package/store/RelayStoreReactFlightUtils.js.flow +4 -11
  129. package/store/RelayStoreSubscriptions.js.flow +19 -11
  130. package/store/RelayStoreTypes.js.flow +209 -43
  131. package/store/RelayStoreUtils.js.flow +24 -11
  132. package/store/ResolverCache.js.flow +249 -0
  133. package/store/ResolverFragments.js.flow +121 -0
  134. package/store/StoreInspector.js.flow +2 -2
  135. package/store/TypeID.js.flow +1 -1
  136. package/store/ViewerPattern.js.flow +2 -2
  137. package/store/cloneRelayHandleSourceField.js.flow +5 -6
  138. package/store/cloneRelayScalarHandleSourceField.js.flow +5 -6
  139. package/store/createFragmentSpecResolver.js.flow +3 -4
  140. package/store/createRelayContext.js.flow +3 -3
  141. package/store/normalizeRelayPayload.js.flow +6 -7
  142. package/store/readInlineData.js.flow +7 -8
  143. package/subscription/requestSubscription.js.flow +53 -41
  144. package/util/NormalizationNode.js.flow +10 -3
  145. package/util/ReaderNode.js.flow +38 -2
  146. package/util/RelayConcreteNode.js.flow +5 -0
  147. package/util/RelayFeatureFlags.js.flow +24 -10
  148. package/util/RelayProfiler.js.flow +22 -194
  149. package/util/RelayReplaySubject.js.flow +9 -9
  150. package/util/RelayRuntimeTypes.js.flow +72 -3
  151. package/util/StringInterner.js.flow +69 -0
  152. package/util/createPayloadFor3DField.js.flow +3 -3
  153. package/util/getFragmentIdentifier.js.flow +27 -15
  154. package/util/getOperation.js.flow +2 -2
  155. package/util/getPaginationMetadata.js.flow +72 -0
  156. package/util/getPaginationVariables.js.flow +108 -0
  157. package/util/getPendingOperationsForFragment.js.flow +62 -0
  158. package/util/getRefetchMetadata.js.flow +79 -0
  159. package/util/getRelayHandleKey.js.flow +1 -2
  160. package/util/getRequestIdentifier.js.flow +3 -3
  161. package/util/getValueAtPath.js.flow +46 -0
  162. package/util/isEmptyObject.js.flow +1 -0
  163. package/util/registerEnvironmentWithDevTools.js.flow +33 -0
  164. package/util/resolveImmediate.js.flow +1 -1
  165. package/util/withDuration.js.flow +32 -0
  166. package/lib/store/RelayRecordSourceMapImpl.js +0 -107
  167. package/lib/store/RelayStoreSubscriptionsUsingMapByID.js +0 -318
  168. package/store/RelayRecordSourceMapImpl.js.flow +0 -91
  169. package/store/RelayStoreSubscriptionsUsingMapByID.js.flow +0 -283
@@ -12,12 +12,12 @@
12
12
 
13
13
  'use strict';
14
14
 
15
+ import type {Handler} from '../store/RelayStoreTypes';
16
+
15
17
  const ConnectionHandler = require('./connection/ConnectionHandler');
16
18
  const MutationHandlers = require('./connection/MutationHandlers');
17
-
18
19
  const invariant = require('invariant');
19
20
 
20
- import type {Handler} from '../store/RelayStoreTypes';
21
21
  export type HandlerProvider = (name: string) => ?Handler;
22
22
 
23
23
  function RelayDefaultHandlerProvider(handle: string): Handler {
@@ -12,23 +12,21 @@
12
12
 
13
13
  'use strict';
14
14
 
15
- const ConnectionInterface = require('./ConnectionInterface');
16
-
17
- const getRelayHandleKey = require('../../util/getRelayHandleKey');
18
- const invariant = require('invariant');
19
- const warning = require('warning');
20
-
21
- const {generateClientID} = require('../../store/ClientID');
22
- const {getStableStorageKey} = require('../../store/RelayStoreUtils');
23
-
24
15
  import type {
25
16
  HandleFieldPayload,
26
- RecordProxy,
27
17
  ReadOnlyRecordProxy,
18
+ RecordProxy,
28
19
  RecordSourceProxy,
29
20
  } from '../../store/RelayStoreTypes';
30
21
  import type {DataID, Variables} from '../../util/RelayRuntimeTypes';
31
22
 
23
+ const {generateClientID} = require('../../store/ClientID');
24
+ const {getStableStorageKey} = require('../../store/RelayStoreUtils');
25
+ const getRelayHandleKey = require('../../util/getRelayHandleKey');
26
+ const ConnectionInterface = require('./ConnectionInterface');
27
+ const invariant = require('invariant');
28
+ const warning = require('warning');
29
+
32
30
  export type ConnectionMetadata = {
33
31
  path: ?Array<string>,
34
32
  direction: ?('forward' | 'backward' | 'bidirectional'),
@@ -146,12 +144,10 @@ function update(store: RecordSourceProxy, payload: HandleFieldPayload): void {
146
144
  let nextEdges = [];
147
145
  const args = payload.args;
148
146
  if (prevEdges && serverEdges) {
149
- // $FlowFixMe[prop-missing]
150
147
  if (args.after != null) {
151
148
  // Forward pagination from the end of the connection: append edges
152
149
  if (
153
150
  clientPageInfo &&
154
- // $FlowFixMe[prop-missing]
155
151
  args.after === clientPageInfo.getValue(END_CURSOR)
156
152
  ) {
157
153
  const nodeIDs = new Set();
@@ -167,12 +163,10 @@ function update(store: RecordSourceProxy, payload: HandleFieldPayload): void {
167
163
  );
168
164
  return;
169
165
  }
170
- // $FlowFixMe[prop-missing]
171
166
  } else if (args.before != null) {
172
167
  // Backward pagination from the start of the connection: prepend edges
173
168
  if (
174
169
  clientPageInfo &&
175
- // $FlowFixMe[prop-missing]
176
170
  args.before === clientPageInfo.getValue(START_CURSOR)
177
171
  ) {
178
172
  const nodeIDs = new Set();
@@ -204,12 +198,10 @@ function update(store: RecordSourceProxy, payload: HandleFieldPayload): void {
204
198
  }
205
199
  // Page info should be updated even if no new edge were returned.
206
200
  if (clientPageInfo && serverPageInfo) {
207
- // $FlowFixMe[prop-missing]
208
201
  if (args.after == null && args.before == null) {
209
202
  // The connection was refetched from the beginning/end: replace
210
203
  // page_info
211
204
  clientPageInfo.copyFieldsFrom(serverPageInfo);
212
- // $FlowFixMe[prop-missing]
213
205
  } else if (args.before != null || (args.after == null && args.last)) {
214
206
  clientPageInfo.setValue(
215
207
  !!serverPageInfo.getValue(HAS_PREV_PAGE),
@@ -219,7 +211,6 @@ function update(store: RecordSourceProxy, payload: HandleFieldPayload): void {
219
211
  if (typeof startCursor === 'string') {
220
212
  clientPageInfo.setValue(startCursor, START_CURSOR);
221
213
  }
222
- // $FlowFixMe[prop-missing]
223
214
  } else if (args.after != null || (args.before == null && args.first)) {
224
215
  clientPageInfo.setValue(
225
216
  !!serverPageInfo.getValue(HAS_NEXT_PAGE),
@@ -12,19 +12,18 @@
12
12
 
13
13
  'use strict';
14
14
 
15
- const ConnectionHandler = require('./ConnectionHandler');
16
- const ConnectionInterface = require('./ConnectionInterface');
17
-
18
- const invariant = require('invariant');
19
- const warning = require('warning');
20
-
21
15
  import type {
22
- RecordProxy,
23
16
  HandleFieldPayload,
24
- RecordSourceProxy,
25
17
  Handler,
18
+ RecordProxy,
19
+ RecordSourceProxy,
26
20
  } from '../../store/RelayStoreTypes';
27
21
 
22
+ const ConnectionHandler = require('./ConnectionHandler');
23
+ const ConnectionInterface = require('./ConnectionInterface');
24
+ const invariant = require('invariant');
25
+ const warning = require('warning');
26
+
28
27
  const DeleteRecordHandler = {
29
28
  update: (store: RecordSourceProxy, payload: HandleFieldPayload) => {
30
29
  const record = store.get(payload.dataID);
@@ -51,7 +50,6 @@ const DeleteEdgeHandler = {
51
50
  if (record == null) {
52
51
  return;
53
52
  }
54
- // $FlowFixMe[prop-missing]
55
53
  const {connections} = payload.handleArgs;
56
54
  invariant(
57
55
  connections != null,
@@ -101,7 +99,6 @@ function edgeUpdater(
101
99
  if (record == null) {
102
100
  return;
103
101
  }
104
- // $FlowFixMe[prop-missing]
105
102
  const {connections} = payload.handleArgs;
106
103
  invariant(
107
104
  connections != null,
@@ -174,7 +171,6 @@ function nodeUpdater(
174
171
  if (record == null) {
175
172
  return;
176
173
  }
177
- // $FlowFixMe[prop-missing]
178
174
  const {connections, edgeTypeName} = payload.handleArgs;
179
175
  invariant(
180
176
  connections != null,
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Relay v11.0.1
2
+ * Relay v13.0.0-rc.1
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.
5
5
  *
package/index.js.flow CHANGED
@@ -14,59 +14,62 @@
14
14
 
15
15
  const ConnectionHandler = require('./handlers/connection/ConnectionHandler');
16
16
  const ConnectionInterface = require('./handlers/connection/ConnectionInterface');
17
- const GraphQLTag = require('./query/GraphQLTag');
18
17
  const MutationHandlers = require('./handlers/connection/MutationHandlers');
18
+ const RelayDefaultHandlerProvider = require('./handlers/RelayDefaultHandlerProvider');
19
+ const applyOptimisticMutation = require('./mutations/applyOptimisticMutation');
20
+ const commitLocalUpdate = require('./mutations/commitLocalUpdate');
21
+ const commitMutation = require('./mutations/commitMutation');
22
+ const RelayDeclarativeMutationConfig = require('./mutations/RelayDeclarativeMutationConfig');
23
+ const RelayNetwork = require('./network/RelayNetwork');
24
+ const RelayObservable = require('./network/RelayObservable');
25
+ const RelayQueryResponseCache = require('./network/RelayQueryResponseCache');
26
+ const fetchQuery = require('./query/fetchQuery');
27
+ const fetchQuery_DEPRECATED = require('./query/fetchQuery_DEPRECATED');
28
+ const fetchQueryInternal = require('./query/fetchQueryInternal');
29
+ const GraphQLTag = require('./query/GraphQLTag');
19
30
  const PreloadableQueryRegistry = require('./query/PreloadableQueryRegistry');
20
- const RelayConcreteNode = require('./util/RelayConcreteNode');
31
+ const {
32
+ generateClientID,
33
+ generateUniqueClientID,
34
+ isClientID,
35
+ } = require('./store/ClientID');
36
+ const createFragmentSpecResolver = require('./store/createFragmentSpecResolver');
37
+ const createRelayContext = require('./store/createRelayContext');
38
+ const isRelayModernEnvironment = require('./store/isRelayModernEnvironment');
39
+ const readInlineData = require('./store/readInlineData');
21
40
  const RelayConcreteVariables = require('./store/RelayConcreteVariables');
22
- const RelayDeclarativeMutationConfig = require('./mutations/RelayDeclarativeMutationConfig');
23
- const RelayDefaultHandleKey = require('./util/RelayDefaultHandleKey');
24
- const RelayDefaultHandlerProvider = require('./handlers/RelayDefaultHandlerProvider');
25
- const RelayError = require('./util/RelayError');
26
- const RelayFeatureFlags = require('./util/RelayFeatureFlags');
27
41
  const RelayModernEnvironment = require('./store/RelayModernEnvironment');
28
42
  const RelayModernOperationDescriptor = require('./store/RelayModernOperationDescriptor');
29
43
  const RelayModernRecord = require('./store/RelayModernRecord');
30
44
  const RelayModernSelector = require('./store/RelayModernSelector');
31
45
  const RelayModernStore = require('./store/RelayModernStore');
32
- const RelayNetwork = require('./network/RelayNetwork');
33
- const RelayObservable = require('./network/RelayObservable');
34
46
  const RelayOperationTracker = require('./store/RelayOperationTracker');
35
- const RelayProfiler = require('./util/RelayProfiler');
36
- const RelayQueryResponseCache = require('./network/RelayQueryResponseCache');
37
47
  const RelayRecordSource = require('./store/RelayRecordSource');
38
- const RelayReplaySubject = require('./util/RelayReplaySubject');
39
48
  const RelayStoreUtils = require('./store/RelayStoreUtils');
40
49
  const ViewerPattern = require('./store/ViewerPattern');
41
-
42
- const applyOptimisticMutation = require('./mutations/applyOptimisticMutation');
43
- const commitLocalUpdate = require('./mutations/commitLocalUpdate');
44
- const commitMutation = require('./mutations/commitMutation');
45
- const createFragmentSpecResolver = require('./store/createFragmentSpecResolver');
50
+ const requestSubscription = require('./subscription/requestSubscription');
46
51
  const createPayloadFor3DField = require('./util/createPayloadFor3DField');
47
- const createRelayContext = require('./store/createRelayContext');
48
52
  const deepFreeze = require('./util/deepFreeze');
49
- const fetchQuery = require('./query/fetchQuery');
50
- const fetchQueryInternal = require('./query/fetchQueryInternal');
51
- const fetchQuery_DEPRECATED = require('./query/fetchQuery_DEPRECATED');
52
53
  const getFragmentIdentifier = require('./util/getFragmentIdentifier');
54
+ const getPaginationMetadata = require('./util/getPaginationMetadata');
55
+ const getPaginationVariables = require('./util/getPaginationVariables');
56
+ const getPendingOperationsForFragment = require('./util/getPendingOperationsForFragment');
57
+ const getRefetchMetadata = require('./util/getRefetchMetadata');
53
58
  const getRelayHandleKey = require('./util/getRelayHandleKey');
54
59
  const getRequestIdentifier = require('./util/getRequestIdentifier');
60
+ const getValueAtPath = require('./util/getValueAtPath');
55
61
  const isPromise = require('./util/isPromise');
56
- const isRelayModernEnvironment = require('./store/isRelayModernEnvironment');
57
62
  const isScalarAndEqual = require('./util/isScalarAndEqual');
58
- const readInlineData = require('./store/readInlineData');
59
63
  const recycleNodesInto = require('./util/recycleNodesInto');
64
+ const RelayConcreteNode = require('./util/RelayConcreteNode');
65
+ const RelayDefaultHandleKey = require('./util/RelayDefaultHandleKey');
66
+ const RelayError = require('./util/RelayError');
67
+ const RelayFeatureFlags = require('./util/RelayFeatureFlags');
68
+ const RelayProfiler = require('./util/RelayProfiler');
69
+ const RelayReplaySubject = require('./util/RelayReplaySubject');
60
70
  const reportMissingRequiredFields = require('./util/reportMissingRequiredFields');
61
- const requestSubscription = require('./subscription/requestSubscription');
62
71
  const stableCopy = require('./util/stableCopy');
63
72
 
64
- const {
65
- generateClientID,
66
- generateUniqueClientID,
67
- isClientID,
68
- } = require('./store/ClientID');
69
-
70
73
  export type {ConnectionMetadata} from './handlers/connection/ConnectionHandler';
71
74
  export type {
72
75
  EdgeRecord,
@@ -82,7 +85,6 @@ export type {OptimisticMutationConfig} from './mutations/applyOptimisticMutation
82
85
  export type {
83
86
  DEPRECATED_MutationConfig,
84
87
  MutationConfig,
85
- MutationParameters,
86
88
  } from './mutations/commitMutation';
87
89
  export type {
88
90
  ExecuteFunction,
@@ -110,12 +112,15 @@ export type {
110
112
  Subscription,
111
113
  } from './network/RelayObservable';
112
114
  export type {GraphQLTaggedNode} from './query/GraphQLTag';
115
+ export type {TaskScheduler} from './store/OperationExecutor';
113
116
  export type {EnvironmentConfig} from './store/RelayModernEnvironment';
114
- export type {TaskScheduler} from './store/RelayModernQueryExecutor';
115
117
  export type {RecordState} from './store/RelayRecordState';
116
118
  export type {
119
+ ExecuteMutationConfig,
117
120
  FragmentMap,
118
- FragmentReference,
121
+ // DEPRECATED: use FragmentType instead of FragmentReference
122
+ FragmentType as FragmentReference,
123
+ FragmentType,
119
124
  FragmentSpecResolver,
120
125
  HandleFieldPayload,
121
126
  IEnvironment,
@@ -125,6 +130,7 @@ export type {
125
130
  MissingFieldHandler,
126
131
  MissingRequiredFields,
127
132
  ModuleImportPointer,
133
+ MutationParameters,
128
134
  NormalizationSelector,
129
135
  OperationAvailability,
130
136
  OperationDescriptor,
@@ -136,9 +142,9 @@ export type {
136
142
  PluralReaderSelector,
137
143
  Props,
138
144
  PublishQueue,
145
+ ReactFlightClientResponse,
139
146
  ReactFlightPayloadDeserializer,
140
147
  ReactFlightServerErrorHandler,
141
- ReactFlightClientResponse,
142
148
  ReaderSelector,
143
149
  ReadOnlyRecordProxy,
144
150
  RecordProxy,
@@ -146,13 +152,18 @@ export type {
146
152
  RecordSourceSelectorProxy,
147
153
  RelayContext,
148
154
  RequestDescriptor,
155
+ RequiredFieldLogger,
149
156
  SelectorData,
150
157
  SelectorStoreUpdater,
151
158
  SingularReaderSelector,
152
159
  Snapshot,
153
160
  StoreUpdater,
154
161
  } from './store/RelayStoreTypes';
155
- export type {GraphQLSubscriptionConfig} from './subscription/requestSubscription';
162
+ export type {
163
+ DEPRECATED_GraphQLSubscriptionConfig,
164
+ GraphQLSubscriptionConfig,
165
+ SubscriptionParameters,
166
+ } from './subscription/requestSubscription';
156
167
  export type {JSResourceReference} from './util/JSResourceTypes.flow';
157
168
  export type {
158
169
  NormalizationArgument,
@@ -168,8 +179,8 @@ export type {
168
179
  NormalizationSplitOperation,
169
180
  NormalizationStream,
170
181
  NormalizationTypeDiscriminator,
182
+ NormalizationOperation,
171
183
  } from './util/NormalizationNode';
172
- export type {NormalizationOperation} from './util/NormalizationNode';
173
184
  export type {
174
185
  ReaderArgument,
175
186
  ReaderArgumentDefinition,
@@ -199,12 +210,20 @@ export type {
199
210
  Disposable,
200
211
  FetchPolicy,
201
212
  FetchQueryFetchPolicy,
213
+ Fragment,
214
+ GraphQLSubscription,
215
+ InlineFragment,
216
+ Mutation,
217
+ Operation,
202
218
  OperationType,
219
+ Query,
220
+ RefetchableFragment,
203
221
  RenderPolicy,
204
222
  Variables,
205
223
  VariablesOf,
206
224
  } from './util/RelayRuntimeTypes';
207
225
  export type {Local3DPayload} from './util/createPayloadFor3DField';
226
+ export type {Direction} from './util/getPaginationVariables';
208
227
  export type {RequestIdentifier} from './util/getRequestIdentifier';
209
228
 
210
229
  // As early as possible, check for the existence of the JavaScript globals which
@@ -327,6 +346,11 @@ module.exports = {
327
346
  recycleNodesInto: recycleNodesInto,
328
347
  stableCopy: stableCopy,
329
348
  getFragmentIdentifier: getFragmentIdentifier,
349
+ getRefetchMetadata: getRefetchMetadata,
350
+ getPaginationMetadata: getPaginationMetadata,
351
+ getPaginationVariables: getPaginationVariables,
352
+ getPendingOperationsForFragment: getPendingOperationsForFragment,
353
+ getValueAtPath: getValueAtPath,
330
354
  __internal: {
331
355
  OperationTracker: RelayOperationTracker,
332
356
  createRelayContext: createRelayContext,
@@ -14,7 +14,7 @@ var ConnectionHandler = require('./connection/ConnectionHandler');
14
14
 
15
15
  var MutationHandlers = require('./connection/MutationHandlers');
16
16
 
17
- var invariant = require("fbjs/lib/invariant");
17
+ var invariant = require('invariant');
18
18
 
19
19
  function RelayDefaultHandlerProvider(handle) {
20
20
  switch (handle) {
@@ -10,20 +10,20 @@
10
10
  // flowlint ambiguous-object-type:error
11
11
  'use strict';
12
12
 
13
- var ConnectionInterface = require('./ConnectionInterface');
14
-
15
- var getRelayHandleKey = require('../../util/getRelayHandleKey');
16
-
17
- var invariant = require("fbjs/lib/invariant");
18
-
19
- var warning = require("fbjs/lib/warning");
20
-
21
13
  var _require = require('../../store/ClientID'),
22
14
  generateClientID = _require.generateClientID;
23
15
 
24
16
  var _require2 = require('../../store/RelayStoreUtils'),
25
17
  getStableStorageKey = _require2.getStableStorageKey;
26
18
 
19
+ var getRelayHandleKey = require('../../util/getRelayHandleKey');
20
+
21
+ var ConnectionInterface = require('./ConnectionInterface');
22
+
23
+ var invariant = require('invariant');
24
+
25
+ var warning = require("fbjs/lib/warning");
26
+
27
27
  var CONNECTION = 'connection'; // Per-instance incrementing index used to generate unique edge IDs
28
28
 
29
29
  var NEXT_EDGE_INDEX = '__connection_next_edge_index';
@@ -133,23 +133,19 @@ function update(store, payload) {
133
133
  var args = payload.args;
134
134
 
135
135
  if (prevEdges && _serverEdges) {
136
- // $FlowFixMe[prop-missing]
137
136
  if (args.after != null) {
138
137
  // Forward pagination from the end of the connection: append edges
139
- if (clientPageInfo && // $FlowFixMe[prop-missing]
140
- args.after === clientPageInfo.getValue(END_CURSOR)) {
138
+ if (clientPageInfo && args.after === clientPageInfo.getValue(END_CURSOR)) {
141
139
  var nodeIDs = new Set();
142
140
  mergeEdges(prevEdges, nextEdges, nodeIDs);
143
141
  mergeEdges(_serverEdges, nextEdges, nodeIDs);
144
142
  } else {
145
143
  process.env.NODE_ENV !== "production" ? warning(false, 'Relay: Unexpected after cursor `%s`, edges must ' + 'be fetched from the end of the list (`%s`).', args.after, clientPageInfo && clientPageInfo.getValue(END_CURSOR)) : void 0;
146
144
  return;
147
- } // $FlowFixMe[prop-missing]
148
-
145
+ }
149
146
  } else if (args.before != null) {
150
147
  // Backward pagination from the start of the connection: prepend edges
151
- if (clientPageInfo && // $FlowFixMe[prop-missing]
152
- args.before === clientPageInfo.getValue(START_CURSOR)) {
148
+ if (clientPageInfo && args.before === clientPageInfo.getValue(START_CURSOR)) {
153
149
  var _nodeIDs = new Set();
154
150
 
155
151
  mergeEdges(_serverEdges, nextEdges, _nodeIDs);
@@ -176,19 +172,17 @@ function update(store, payload) {
176
172
 
177
173
 
178
174
  if (clientPageInfo && serverPageInfo) {
179
- // $FlowFixMe[prop-missing]
180
175
  if (args.after == null && args.before == null) {
181
176
  // The connection was refetched from the beginning/end: replace
182
177
  // page_info
183
- clientPageInfo.copyFieldsFrom(serverPageInfo); // $FlowFixMe[prop-missing]
178
+ clientPageInfo.copyFieldsFrom(serverPageInfo);
184
179
  } else if (args.before != null || args.after == null && args.last) {
185
180
  clientPageInfo.setValue(!!serverPageInfo.getValue(HAS_PREV_PAGE), HAS_PREV_PAGE);
186
181
  var startCursor = serverPageInfo.getValue(START_CURSOR);
187
182
 
188
183
  if (typeof startCursor === 'string') {
189
184
  clientPageInfo.setValue(startCursor, START_CURSOR);
190
- } // $FlowFixMe[prop-missing]
191
-
185
+ }
192
186
  } else if (args.after != null || args.before == null && args.first) {
193
187
  clientPageInfo.setValue(!!serverPageInfo.getValue(HAS_NEXT_PAGE), HAS_NEXT_PAGE);
194
188
  var endCursor = serverPageInfo.getValue(END_CURSOR);
@@ -18,7 +18,7 @@ var ConnectionHandler = require('./ConnectionHandler');
18
18
 
19
19
  var ConnectionInterface = require('./ConnectionInterface');
20
20
 
21
- var invariant = require("fbjs/lib/invariant");
21
+ var invariant = require('invariant');
22
22
 
23
23
  var warning = require("fbjs/lib/warning");
24
24
 
@@ -47,8 +47,7 @@ var DeleteEdgeHandler = {
47
47
 
48
48
  if (record == null) {
49
49
  return;
50
- } // $FlowFixMe[prop-missing]
51
-
50
+ }
52
51
 
53
52
  var connections = payload.handleArgs.connections;
54
53
  !(connections != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'MutationHandlers: Expected connection IDs to be specified.') : invariant(false) : void 0;
@@ -101,8 +100,7 @@ function edgeUpdater(insertFn) {
101
100
 
102
101
  if (record == null) {
103
102
  return;
104
- } // $FlowFixMe[prop-missing]
105
-
103
+ }
106
104
 
107
105
  var connections = payload.handleArgs.connections;
108
106
  !(connections != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'MutationHandlers: Expected connection IDs to be specified.') : invariant(false) : void 0;
@@ -205,8 +203,7 @@ function nodeUpdater(insertFn) {
205
203
 
206
204
  if (record == null) {
207
205
  return;
208
- } // $FlowFixMe[prop-missing]
209
-
206
+ }
210
207
 
211
208
  var _payload$handleArgs = payload.handleArgs,
212
209
  connections = _payload$handleArgs.connections,
package/lib/index.js CHANGED
@@ -14,25 +14,48 @@ var ConnectionHandler = require('./handlers/connection/ConnectionHandler');
14
14
 
15
15
  var ConnectionInterface = require('./handlers/connection/ConnectionInterface');
16
16
 
17
- var GraphQLTag = require('./query/GraphQLTag');
18
-
19
17
  var MutationHandlers = require('./handlers/connection/MutationHandlers');
20
18
 
21
- var PreloadableQueryRegistry = require('./query/PreloadableQueryRegistry');
19
+ var RelayDefaultHandlerProvider = require('./handlers/RelayDefaultHandlerProvider');
22
20
 
23
- var RelayConcreteNode = require('./util/RelayConcreteNode');
21
+ var applyOptimisticMutation = require('./mutations/applyOptimisticMutation');
24
22
 
25
- var RelayConcreteVariables = require('./store/RelayConcreteVariables');
23
+ var commitLocalUpdate = require('./mutations/commitLocalUpdate');
24
+
25
+ var commitMutation = require('./mutations/commitMutation');
26
26
 
27
27
  var RelayDeclarativeMutationConfig = require('./mutations/RelayDeclarativeMutationConfig');
28
28
 
29
- var RelayDefaultHandleKey = require('./util/RelayDefaultHandleKey');
29
+ var RelayNetwork = require('./network/RelayNetwork');
30
30
 
31
- var RelayDefaultHandlerProvider = require('./handlers/RelayDefaultHandlerProvider');
31
+ var RelayObservable = require('./network/RelayObservable');
32
32
 
33
- var RelayError = require('./util/RelayError');
33
+ var RelayQueryResponseCache = require('./network/RelayQueryResponseCache');
34
34
 
35
- var RelayFeatureFlags = require('./util/RelayFeatureFlags');
35
+ var fetchQuery = require('./query/fetchQuery');
36
+
37
+ var fetchQuery_DEPRECATED = require('./query/fetchQuery_DEPRECATED');
38
+
39
+ var fetchQueryInternal = require('./query/fetchQueryInternal');
40
+
41
+ var GraphQLTag = require('./query/GraphQLTag');
42
+
43
+ var PreloadableQueryRegistry = require('./query/PreloadableQueryRegistry');
44
+
45
+ var _require = require('./store/ClientID'),
46
+ generateClientID = _require.generateClientID,
47
+ generateUniqueClientID = _require.generateUniqueClientID,
48
+ isClientID = _require.isClientID;
49
+
50
+ var createFragmentSpecResolver = require('./store/createFragmentSpecResolver');
51
+
52
+ var createRelayContext = require('./store/createRelayContext');
53
+
54
+ var isRelayModernEnvironment = require('./store/isRelayModernEnvironment');
55
+
56
+ var readInlineData = require('./store/readInlineData');
57
+
58
+ var RelayConcreteVariables = require('./store/RelayConcreteVariables');
36
59
 
37
60
  var RelayModernEnvironment = require('./store/RelayModernEnvironment');
38
61
 
@@ -44,70 +67,57 @@ var RelayModernSelector = require('./store/RelayModernSelector');
44
67
 
45
68
  var RelayModernStore = require('./store/RelayModernStore');
46
69
 
47
- var RelayNetwork = require('./network/RelayNetwork');
48
-
49
- var RelayObservable = require('./network/RelayObservable');
50
-
51
70
  var RelayOperationTracker = require('./store/RelayOperationTracker');
52
71
 
53
- var RelayProfiler = require('./util/RelayProfiler');
54
-
55
- var RelayQueryResponseCache = require('./network/RelayQueryResponseCache');
56
-
57
72
  var RelayRecordSource = require('./store/RelayRecordSource');
58
73
 
59
- var RelayReplaySubject = require('./util/RelayReplaySubject');
60
-
61
74
  var RelayStoreUtils = require('./store/RelayStoreUtils');
62
75
 
63
76
  var ViewerPattern = require('./store/ViewerPattern');
64
77
 
65
- var applyOptimisticMutation = require('./mutations/applyOptimisticMutation');
66
-
67
- var commitLocalUpdate = require('./mutations/commitLocalUpdate');
68
-
69
- var commitMutation = require('./mutations/commitMutation');
70
-
71
- var createFragmentSpecResolver = require('./store/createFragmentSpecResolver');
78
+ var requestSubscription = require('./subscription/requestSubscription');
72
79
 
73
80
  var createPayloadFor3DField = require('./util/createPayloadFor3DField');
74
81
 
75
- var createRelayContext = require('./store/createRelayContext');
76
-
77
82
  var deepFreeze = require('./util/deepFreeze');
78
83
 
79
- var fetchQuery = require('./query/fetchQuery');
84
+ var getFragmentIdentifier = require('./util/getFragmentIdentifier');
80
85
 
81
- var fetchQueryInternal = require('./query/fetchQueryInternal');
86
+ var getPaginationMetadata = require('./util/getPaginationMetadata');
82
87
 
83
- var fetchQuery_DEPRECATED = require('./query/fetchQuery_DEPRECATED');
88
+ var getPaginationVariables = require('./util/getPaginationVariables');
84
89
 
85
- var getFragmentIdentifier = require('./util/getFragmentIdentifier');
90
+ var getPendingOperationsForFragment = require('./util/getPendingOperationsForFragment');
91
+
92
+ var getRefetchMetadata = require('./util/getRefetchMetadata');
86
93
 
87
94
  var getRelayHandleKey = require('./util/getRelayHandleKey');
88
95
 
89
96
  var getRequestIdentifier = require('./util/getRequestIdentifier');
90
97
 
91
- var isPromise = require('./util/isPromise');
98
+ var getValueAtPath = require('./util/getValueAtPath');
92
99
 
93
- var isRelayModernEnvironment = require('./store/isRelayModernEnvironment');
100
+ var isPromise = require('./util/isPromise');
94
101
 
95
102
  var isScalarAndEqual = require('./util/isScalarAndEqual');
96
103
 
97
- var readInlineData = require('./store/readInlineData');
98
-
99
104
  var recycleNodesInto = require('./util/recycleNodesInto');
100
105
 
101
- var reportMissingRequiredFields = require('./util/reportMissingRequiredFields');
106
+ var RelayConcreteNode = require('./util/RelayConcreteNode');
102
107
 
103
- var requestSubscription = require('./subscription/requestSubscription');
108
+ var RelayDefaultHandleKey = require('./util/RelayDefaultHandleKey');
104
109
 
105
- var stableCopy = require('./util/stableCopy');
110
+ var RelayError = require('./util/RelayError');
106
111
 
107
- var _require = require('./store/ClientID'),
108
- generateClientID = _require.generateClientID,
109
- generateUniqueClientID = _require.generateUniqueClientID,
110
- isClientID = _require.isClientID;
112
+ var RelayFeatureFlags = require('./util/RelayFeatureFlags');
113
+
114
+ var RelayProfiler = require('./util/RelayProfiler');
115
+
116
+ var RelayReplaySubject = require('./util/RelayReplaySubject');
117
+
118
+ var reportMissingRequiredFields = require('./util/reportMissingRequiredFields');
119
+
120
+ var stableCopy = require('./util/stableCopy');
111
121
 
112
122
  // As early as possible, check for the existence of the JavaScript globals which
113
123
  // Relay Runtime relies upon, and produce a clear message if they do not exist.
@@ -214,6 +224,11 @@ module.exports = {
214
224
  recycleNodesInto: recycleNodesInto,
215
225
  stableCopy: stableCopy,
216
226
  getFragmentIdentifier: getFragmentIdentifier,
227
+ getRefetchMetadata: getRefetchMetadata,
228
+ getPaginationMetadata: getPaginationMetadata,
229
+ getPaginationVariables: getPaginationVariables,
230
+ getPendingOperationsForFragment: getPendingOperationsForFragment,
231
+ getValueAtPath: getValueAtPath,
217
232
  __internal: {
218
233
  OperationTracker: RelayOperationTracker,
219
234
  createRelayContext: createRelayContext,