relay-runtime 12.0.0 → 13.0.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 (216) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +67 -0
  3. package/handlers/RelayDefaultHandlerProvider.js.flow +3 -3
  4. package/handlers/connection/ConnectionHandler.js.flow +9 -18
  5. package/handlers/connection/ConnectionInterface.js.flow +1 -1
  6. package/handlers/connection/MutationHandlers.js.flow +8 -12
  7. package/index.js +2 -2
  8. package/index.js.flow +43 -34
  9. package/lib/handlers/RelayDefaultHandlerProvider.js +1 -1
  10. package/lib/handlers/connection/ConnectionHandler.js +13 -19
  11. package/lib/handlers/connection/ConnectionInterface.js +1 -1
  12. package/lib/handlers/connection/MutationHandlers.js +4 -7
  13. package/lib/index.js +49 -46
  14. package/lib/multi-actor-environment/ActorIdentifier.js +1 -1
  15. package/lib/multi-actor-environment/ActorSpecificEnvironment.js +9 -5
  16. package/lib/multi-actor-environment/ActorUtils.js +1 -1
  17. package/lib/multi-actor-environment/MultiActorEnvironment.js +36 -23
  18. package/lib/multi-actor-environment/MultiActorEnvironmentTypes.js +1 -1
  19. package/lib/multi-actor-environment/index.js +3 -3
  20. package/lib/mutations/RelayDeclarativeMutationConfig.js +5 -2
  21. package/lib/mutations/RelayRecordProxy.js +4 -3
  22. package/lib/mutations/RelayRecordSourceMutator.js +4 -3
  23. package/lib/mutations/RelayRecordSourceProxy.js +13 -5
  24. package/lib/mutations/RelayRecordSourceSelectorProxy.js +13 -5
  25. package/lib/mutations/applyOptimisticMutation.js +7 -7
  26. package/lib/mutations/commitLocalUpdate.js +1 -1
  27. package/lib/mutations/commitMutation.js +16 -15
  28. package/lib/mutations/readUpdatableQuery_EXPERIMENTAL.js +242 -0
  29. package/lib/mutations/validateMutation.js +7 -7
  30. package/lib/network/ConvertToExecuteFunction.js +3 -2
  31. package/lib/network/RelayNetwork.js +4 -3
  32. package/lib/network/RelayNetworkTypes.js +1 -1
  33. package/lib/network/RelayObservable.js +2 -4
  34. package/lib/network/RelayQueryResponseCache.js +3 -3
  35. package/lib/network/wrapNetworkWithLogObserver.js +3 -2
  36. package/lib/query/GraphQLTag.js +3 -2
  37. package/lib/query/PreloadableQueryRegistry.js +1 -1
  38. package/lib/query/fetchQuery.js +7 -6
  39. package/lib/query/fetchQueryInternal.js +1 -1
  40. package/lib/query/fetchQuery_DEPRECATED.js +3 -2
  41. package/lib/store/ClientID.js +8 -2
  42. package/lib/store/DataChecker.js +17 -18
  43. package/lib/store/OperationExecutor.js +14 -14
  44. package/lib/store/RelayConcreteVariables.js +7 -10
  45. package/lib/store/RelayExperimentalGraphResponseHandler.js +153 -0
  46. package/lib/store/RelayExperimentalGraphResponseTransform.js +391 -0
  47. package/lib/store/RelayModernEnvironment.js +67 -43
  48. package/lib/store/RelayModernFragmentSpecResolver.js +9 -9
  49. package/lib/store/RelayModernOperationDescriptor.js +3 -2
  50. package/lib/store/RelayModernRecord.js +13 -12
  51. package/lib/store/RelayModernSelector.js +15 -9
  52. package/lib/store/RelayModernStore.js +15 -16
  53. package/lib/store/RelayOperationTracker.js +1 -1
  54. package/lib/store/RelayOptimisticRecordSource.js +1 -1
  55. package/lib/store/RelayPublishQueue.js +12 -6
  56. package/lib/store/RelayReader.js +131 -40
  57. package/lib/store/RelayRecordSource.js +1 -1
  58. package/lib/store/RelayRecordState.js +1 -1
  59. package/lib/store/RelayReferenceMarker.js +11 -12
  60. package/lib/store/RelayResponseNormalizer.js +26 -23
  61. package/lib/store/RelayStoreReactFlightUtils.js +4 -4
  62. package/lib/store/RelayStoreSubscriptions.js +7 -5
  63. package/lib/store/RelayStoreTypes.js +1 -1
  64. package/lib/store/RelayStoreUtils.js +6 -6
  65. package/lib/store/ResolverCache.js +7 -7
  66. package/lib/store/ResolverFragments.js +12 -8
  67. package/lib/store/StoreInspector.js +1 -1
  68. package/lib/store/TypeID.js +1 -1
  69. package/lib/store/ViewerPattern.js +1 -1
  70. package/lib/store/cloneRelayHandleSourceField.js +6 -5
  71. package/lib/store/cloneRelayScalarHandleSourceField.js +6 -5
  72. package/lib/store/createFragmentSpecResolver.js +1 -1
  73. package/lib/store/createRelayContext.js +4 -2
  74. package/lib/store/defaultGetDataID.js +1 -1
  75. package/lib/store/defaultRequiredFieldLogger.js +1 -1
  76. package/lib/store/hasOverlappingIDs.js +1 -1
  77. package/lib/store/isRelayModernEnvironment.js +1 -1
  78. package/lib/store/normalizeRelayPayload.js +1 -1
  79. package/lib/store/readInlineData.js +7 -3
  80. package/lib/subscription/requestSubscription.js +4 -6
  81. package/lib/util/JSResourceTypes.flow.js +1 -1
  82. package/lib/util/NormalizationNode.js +1 -1
  83. package/lib/util/ReaderNode.js +1 -1
  84. package/lib/util/RelayConcreteNode.js +2 -1
  85. package/lib/util/RelayDefaultHandleKey.js +1 -1
  86. package/lib/util/RelayError.js +1 -1
  87. package/lib/util/RelayFeatureFlags.js +8 -3
  88. package/lib/util/RelayProfiler.js +1 -1
  89. package/lib/util/RelayReplaySubject.js +1 -1
  90. package/lib/util/RelayRuntimeTypes.js +1 -7
  91. package/lib/util/StringInterner.js +71 -0
  92. package/lib/util/createPayloadFor3DField.js +1 -1
  93. package/lib/util/deepFreeze.js +1 -1
  94. package/lib/util/generateID.js +1 -1
  95. package/lib/util/getAllRootVariables.js +29 -0
  96. package/lib/util/getFragmentIdentifier.js +16 -8
  97. package/lib/util/getOperation.js +3 -2
  98. package/lib/util/getPaginationMetadata.js +1 -1
  99. package/lib/util/getPaginationVariables.js +3 -4
  100. package/lib/util/getPendingOperationsForFragment.js +1 -1
  101. package/lib/util/getRefetchMetadata.js +1 -1
  102. package/lib/util/getRelayHandleKey.js +3 -3
  103. package/lib/util/getRequestIdentifier.js +3 -3
  104. package/lib/util/getValueAtPath.js +1 -1
  105. package/lib/util/isEmptyObject.js +1 -1
  106. package/lib/util/isPromise.js +1 -1
  107. package/lib/util/isScalarAndEqual.js +1 -1
  108. package/lib/util/recycleNodesInto.js +1 -1
  109. package/lib/util/registerEnvironmentWithDevTools.js +1 -1
  110. package/lib/util/reportMissingRequiredFields.js +1 -1
  111. package/lib/util/resolveImmediate.js +1 -1
  112. package/lib/util/stableCopy.js +1 -1
  113. package/lib/util/withDuration.js +1 -1
  114. package/multi-actor-environment/ActorIdentifier.js.flow +1 -1
  115. package/multi-actor-environment/ActorSpecificEnvironment.js.flow +28 -20
  116. package/multi-actor-environment/ActorUtils.js.flow +3 -3
  117. package/multi-actor-environment/MultiActorEnvironment.js.flow +46 -25
  118. package/multi-actor-environment/MultiActorEnvironmentTypes.js.flow +28 -12
  119. package/multi-actor-environment/index.js.flow +2 -3
  120. package/mutations/RelayDeclarativeMutationConfig.js.flow +33 -28
  121. package/mutations/RelayRecordProxy.js.flow +5 -6
  122. package/mutations/RelayRecordSourceMutator.js.flow +5 -7
  123. package/mutations/RelayRecordSourceProxy.js.flow +20 -11
  124. package/mutations/RelayRecordSourceSelectorProxy.js.flow +16 -6
  125. package/mutations/applyOptimisticMutation.js.flow +14 -15
  126. package/mutations/commitLocalUpdate.js.flow +2 -2
  127. package/mutations/commitMutation.js.flow +36 -49
  128. package/mutations/readUpdatableQuery_EXPERIMENTAL.js.flow +318 -0
  129. package/mutations/validateMutation.js.flow +20 -18
  130. package/network/ConvertToExecuteFunction.js.flow +3 -3
  131. package/network/RelayNetwork.js.flow +5 -6
  132. package/network/RelayNetworkTypes.js.flow +1 -1
  133. package/network/RelayObservable.js.flow +2 -4
  134. package/network/RelayQueryResponseCache.js.flow +4 -4
  135. package/network/wrapNetworkWithLogObserver.js.flow +9 -9
  136. package/package.json +2 -2
  137. package/query/GraphQLTag.js.flow +11 -11
  138. package/query/PreloadableQueryRegistry.js.flow +5 -3
  139. package/query/fetchQuery.js.flow +19 -19
  140. package/query/fetchQueryInternal.js.flow +7 -10
  141. package/query/fetchQuery_DEPRECATED.js.flow +7 -7
  142. package/relay-runtime.js +2 -2
  143. package/relay-runtime.min.js +3 -3
  144. package/store/ClientID.js.flow +10 -3
  145. package/store/DataChecker.js.flow +21 -30
  146. package/store/OperationExecutor.js.flow +55 -63
  147. package/store/RelayConcreteVariables.js.flow +5 -11
  148. package/store/RelayExperimentalGraphResponseHandler.js.flow +121 -0
  149. package/store/RelayExperimentalGraphResponseTransform.js.flow +470 -0
  150. package/store/RelayModernEnvironment.js.flow +57 -28
  151. package/store/RelayModernFragmentSpecResolver.js.flow +18 -20
  152. package/store/RelayModernOperationDescriptor.js.flow +11 -12
  153. package/store/RelayModernRecord.js.flow +20 -13
  154. package/store/RelayModernSelector.js.flow +25 -15
  155. package/store/RelayModernStore.js.flow +22 -26
  156. package/store/RelayOperationTracker.js.flow +12 -18
  157. package/store/RelayOptimisticRecordSource.js.flow +3 -3
  158. package/store/RelayPublishQueue.js.flow +43 -24
  159. package/store/RelayReader.js.flow +181 -68
  160. package/store/RelayRecordSource.js.flow +3 -3
  161. package/store/RelayRecordState.js.flow +1 -1
  162. package/store/RelayReferenceMarker.js.flow +13 -16
  163. package/store/RelayResponseNormalizer.js.flow +44 -42
  164. package/store/RelayStoreReactFlightUtils.js.flow +4 -5
  165. package/store/RelayStoreSubscriptions.js.flow +10 -9
  166. package/store/RelayStoreTypes.js.flow +73 -30
  167. package/store/RelayStoreUtils.js.flow +9 -10
  168. package/store/ResolverCache.js.flow +17 -15
  169. package/store/ResolverFragments.js.flow +18 -25
  170. package/store/StoreInspector.js.flow +3 -3
  171. package/store/TypeID.js.flow +2 -2
  172. package/store/ViewerPattern.js.flow +3 -3
  173. package/store/cloneRelayHandleSourceField.js.flow +6 -7
  174. package/store/cloneRelayScalarHandleSourceField.js.flow +6 -7
  175. package/store/createFragmentSpecResolver.js.flow +4 -5
  176. package/store/createRelayContext.js.flow +3 -3
  177. package/store/defaultGetDataID.js.flow +1 -1
  178. package/store/defaultRequiredFieldLogger.js.flow +1 -1
  179. package/store/hasOverlappingIDs.js.flow +1 -1
  180. package/store/isRelayModernEnvironment.js.flow +1 -1
  181. package/store/normalizeRelayPayload.js.flow +7 -8
  182. package/store/readInlineData.js.flow +8 -9
  183. package/subscription/requestSubscription.js.flow +16 -25
  184. package/util/JSResourceTypes.flow.js.flow +1 -1
  185. package/util/NormalizationNode.js.flow +1 -1
  186. package/util/ReaderNode.js.flow +10 -1
  187. package/util/RelayConcreteNode.js.flow +4 -1
  188. package/util/RelayDefaultHandleKey.js.flow +1 -1
  189. package/util/RelayError.js.flow +1 -1
  190. package/util/RelayFeatureFlags.js.flow +15 -5
  191. package/util/RelayProfiler.js.flow +1 -1
  192. package/util/RelayReplaySubject.js.flow +3 -4
  193. package/util/RelayRuntimeTypes.js.flow +70 -3
  194. package/util/StringInterner.js.flow +69 -0
  195. package/util/createPayloadFor3DField.js.flow +4 -4
  196. package/util/deepFreeze.js.flow +1 -1
  197. package/util/generateID.js.flow +1 -1
  198. package/util/getAllRootVariables.js.flow +36 -0
  199. package/util/getFragmentIdentifier.js.flow +28 -16
  200. package/util/getOperation.js.flow +3 -3
  201. package/util/getPaginationMetadata.js.flow +6 -11
  202. package/util/getPaginationVariables.js.flow +6 -10
  203. package/util/getPendingOperationsForFragment.js.flow +3 -3
  204. package/util/getRefetchMetadata.js.flow +8 -12
  205. package/util/getRelayHandleKey.js.flow +2 -3
  206. package/util/getRequestIdentifier.js.flow +4 -4
  207. package/util/getValueAtPath.js.flow +1 -1
  208. package/util/isEmptyObject.js.flow +1 -1
  209. package/util/isPromise.js.flow +1 -1
  210. package/util/isScalarAndEqual.js.flow +1 -1
  211. package/util/recycleNodesInto.js.flow +1 -1
  212. package/util/registerEnvironmentWithDevTools.js.flow +1 -1
  213. package/util/reportMissingRequiredFields.js.flow +1 -1
  214. package/util/resolveImmediate.js.flow +2 -2
  215. package/util/stableCopy.js.flow +1 -1
  216. package/util/withDuration.js.flow +1 -1
@@ -0,0 +1,242 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ *
8
+ * @emails oncall+relay
9
+ * @format
10
+ */
11
+ // flowlint ambiguous-object-type:error
12
+ 'use strict';
13
+
14
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
15
+
16
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
17
+
18
+ var _require = require('../query/GraphQLTag'),
19
+ getRequest = _require.getRequest;
20
+
21
+ var _require2 = require('../store/RelayStoreUtils'),
22
+ getArgumentValues = _require2.getArgumentValues;
23
+
24
+ var nonUpdatableKeys = ['id', '__id', '__typename'];
25
+
26
+ function readUpdatableQuery_EXPERIMENTAL(query, variables, proxy) {
27
+ // TODO assert that the concrete request is an updatable query
28
+ var request = getRequest(query);
29
+ var updatableProxy = {};
30
+ updateProxyFromSelections(updatableProxy, proxy.getRoot(), variables, request.fragment.selections, proxy);
31
+
32
+ if (process.env.NODE_ENV !== "production") {
33
+ Object.freeze(updatableProxy);
34
+ }
35
+
36
+ return updatableProxy;
37
+ }
38
+
39
+ function updateProxyFromSelections(mutableUpdatableProxy, recordProxy, queryVariables, selections, root) {
40
+ var _selection$alias, _selection$alias2;
41
+
42
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(selections),
43
+ _step;
44
+
45
+ try {
46
+ var _loop = function _loop() {
47
+ var selection = _step.value;
48
+
49
+ switch (selection.kind) {
50
+ case 'LinkedField':
51
+ // Linked fields are assignable if they contain fragment spreads or
52
+ // read-only otherwise.
53
+ var isAssignable = selection.selections.some(function (item) {
54
+ return item.kind === 'FragmentSpread';
55
+ });
56
+ var set = !isAssignable ? undefined : selection.plural ? createSetterForPluralLinkedField(selection, queryVariables, recordProxy, root) : createSetterForSingularLinkedField(selection, queryVariables, recordProxy, root);
57
+ var get = selection.plural ? createGetterForPluralLinkedField(selection, queryVariables, recordProxy, root) : createGetterForSingularLinkedField(selection, queryVariables, recordProxy, root);
58
+ Object.defineProperty(mutableUpdatableProxy, (_selection$alias = selection.alias) !== null && _selection$alias !== void 0 ? _selection$alias : selection.name, {
59
+ get: get,
60
+ set: set
61
+ });
62
+ break;
63
+
64
+ case 'ScalarField':
65
+ var scalarFieldName = (_selection$alias2 = selection.alias) !== null && _selection$alias2 !== void 0 ? _selection$alias2 : selection.name;
66
+ Object.defineProperty(mutableUpdatableProxy, scalarFieldName, {
67
+ get: function get() {
68
+ var _selection$args;
69
+
70
+ var variables = getArgumentValues((_selection$args = selection.args) !== null && _selection$args !== void 0 ? _selection$args : [], queryVariables); // Flow incorrect assumes that the return value for the get method must match
71
+ // the set parameter.
72
+
73
+ return recordProxy.getValue(selection.name, // $FlowFixMe[unclear-type] No good way to type these variables
74
+ variables // $FlowFixMe[unclear-type] Typed by the generated updatable query flow type
75
+ );
76
+ },
77
+ set: nonUpdatableKeys.includes(selection.name) ? undefined : // $FlowFixMe[unclear-type] Typed by the generated updatable query flow type
78
+ function (newValue) {
79
+ var _selection$args2;
80
+
81
+ var variables = getArgumentValues((_selection$args2 = selection.args) !== null && _selection$args2 !== void 0 ? _selection$args2 : [], queryVariables);
82
+ recordProxy.setValue(newValue, selection.name, // $FlowFixMe[unclear-type] No good way to type these variables
83
+ variables);
84
+ }
85
+ });
86
+ break;
87
+
88
+ case 'InlineFragment':
89
+ if (recordProxy.getType() === selection.type) {
90
+ updateProxyFromSelections(mutableUpdatableProxy, recordProxy, queryVariables, selection.selections, root);
91
+ }
92
+
93
+ break;
94
+
95
+ case 'ClientExtension':
96
+ updateProxyFromSelections(mutableUpdatableProxy, recordProxy, queryVariables, selection.selections, root);
97
+ break;
98
+
99
+ case 'FragmentSpread':
100
+ // Explicitly ignore
101
+ break;
102
+
103
+ default:
104
+ throw new Error('Encountered an unexpected ReaderSelection variant in RelayRecordSourceProxy. This indicates a bug in Relay.');
105
+ }
106
+ };
107
+
108
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
109
+ _loop();
110
+ }
111
+ } catch (err) {
112
+ _iterator.e(err);
113
+ } finally {
114
+ _iterator.f();
115
+ }
116
+ }
117
+
118
+ function createSetterForPluralLinkedField(selection, queryVariables, recordProxy, root) {
119
+ return function set(newValue) {
120
+ var _selection$args3;
121
+
122
+ var variables = getArgumentValues((_selection$args3 = selection.args) !== null && _selection$args3 !== void 0 ? _selection$args3 : [], queryVariables);
123
+
124
+ if (newValue == null) {
125
+ // $FlowFixMe[unclear-type] No good way to type these variables
126
+ recordProxy.setValue(null, selection.name, variables);
127
+ } else {
128
+ var recordProxies = newValue.map(function (item) {
129
+ if (item == null) {
130
+ throw new Error('When assigning an array of items, none of the items should be null or undefined.');
131
+ }
132
+
133
+ var __id = item.__id;
134
+
135
+ if (__id == null) {
136
+ throw new Error('The __id field must be present on each item passed to the setter. This indicates a bug in Relay.');
137
+ }
138
+
139
+ var newValueRecord = root.get(__id);
140
+
141
+ if (newValueRecord == null) {
142
+ throw new Error("Did not find item with data id ".concat(__id, " in the store."));
143
+ }
144
+
145
+ return newValueRecord;
146
+ });
147
+ recordProxy.setLinkedRecords(recordProxies, selection.name, // $FlowFixMe[unclear-type] No good way to type these variables
148
+ variables);
149
+ }
150
+ };
151
+ }
152
+
153
+ function createSetterForSingularLinkedField(selection, queryVariables, recordProxy, root) {
154
+ return function set(newValue) {
155
+ var _selection$args4;
156
+
157
+ var variables = getArgumentValues((_selection$args4 = selection.args) !== null && _selection$args4 !== void 0 ? _selection$args4 : [], queryVariables);
158
+
159
+ if (newValue == null) {
160
+ // $FlowFixMe[unclear-type] No good way to type these variables
161
+ recordProxy.setValue(null, selection.name, variables);
162
+ } else {
163
+ var __id = newValue.__id;
164
+
165
+ if (__id == null) {
166
+ throw new Error('The __id field must be present on the argument. This indicates a bug in Relay.');
167
+ }
168
+
169
+ var newValueRecord = root.get(__id);
170
+
171
+ if (newValueRecord == null) {
172
+ throw new Error("Did not find item with data id ".concat(__id, " in the store."));
173
+ }
174
+
175
+ recordProxy.setLinkedRecord(newValueRecord, selection.name, // $FlowFixMe[unclear-type] No good way to type these variables
176
+ variables);
177
+ }
178
+ };
179
+ }
180
+
181
+ function createGetterForPluralLinkedField(selection, queryVariables, recordProxy, root) {
182
+ return function () {
183
+ var _selection$args5;
184
+
185
+ var variables = getArgumentValues((_selection$args5 = selection.args) !== null && _selection$args5 !== void 0 ? _selection$args5 : [], queryVariables);
186
+ var linkedRecords = recordProxy.getLinkedRecords(selection.name, // $FlowFixMe[unclear-type] No good way to type these variables
187
+ variables);
188
+
189
+ if (linkedRecords != null) {
190
+ return linkedRecords.map(function (linkedRecord) {
191
+ if (linkedRecord != null) {
192
+ var updatableProxy = {};
193
+ updateProxyFromSelections(updatableProxy, linkedRecord, queryVariables, selection.selections, root);
194
+
195
+ if (process.env.NODE_ENV !== "production") {
196
+ Object.freeze(updatableProxy);
197
+ } // Flow incorrect assumes that the return value for the get method must match
198
+ // the set parameter.
199
+ // $FlowFixMe[unclear-type] Typed by the generated updatable query flow type
200
+
201
+
202
+ return updatableProxy;
203
+ } else {
204
+ return linkedRecord;
205
+ } // $FlowFixMe[unclear-type] Typed by the generated updatable query flow type
206
+
207
+ });
208
+ } else {
209
+ return linkedRecords;
210
+ }
211
+ };
212
+ }
213
+
214
+ function createGetterForSingularLinkedField(selection, queryVariables, recordProxy, root) {
215
+ return function () {
216
+ var _selection$args6;
217
+
218
+ var variables = getArgumentValues((_selection$args6 = selection.args) !== null && _selection$args6 !== void 0 ? _selection$args6 : [], queryVariables);
219
+ var linkedRecord = recordProxy.getLinkedRecord(selection.name, // $FlowFixMe[unclear-type] No good way to type these variables
220
+ variables);
221
+
222
+ if (linkedRecord != null) {
223
+ var updatableProxy = {};
224
+ updateProxyFromSelections(updatableProxy, linkedRecord, queryVariables, selection.selections, root);
225
+
226
+ if (process.env.NODE_ENV !== "production") {
227
+ Object.freeze(updatableProxy);
228
+ } // Flow incorrect assumes that the return value for the get method must match
229
+ // the set parameter.
230
+ // $FlowFixMe[unclear-type] Typed by the generated updatable query flow type
231
+
232
+
233
+ return updatableProxy;
234
+ } else {
235
+ return linkedRecord;
236
+ }
237
+ };
238
+ }
239
+
240
+ module.exports = {
241
+ readUpdatableQuery_EXPERIMENTAL: readUpdatableQuery_EXPERIMENTAL
242
+ };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -14,16 +14,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
14
14
 
15
15
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
16
16
 
17
- var warning = require("fbjs/lib/warning"); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
18
-
19
-
20
- var hasOwnProperty = Object.prototype.hasOwnProperty;
21
-
22
17
  var _require = require('../util/RelayConcreteNode'),
23
18
  ACTOR_CHANGE = _require.ACTOR_CHANGE,
24
- CONDITION = _require.CONDITION,
25
19
  CLIENT_COMPONENT = _require.CLIENT_COMPONENT,
26
20
  CLIENT_EXTENSION = _require.CLIENT_EXTENSION,
21
+ CONDITION = _require.CONDITION,
27
22
  DEFER = _require.DEFER,
28
23
  FLIGHT_FIELD = _require.FLIGHT_FIELD,
29
24
  FRAGMENT_SPREAD = _require.FRAGMENT_SPREAD,
@@ -36,6 +31,11 @@ var _require = require('../util/RelayConcreteNode'),
36
31
  STREAM = _require.STREAM,
37
32
  TYPE_DISCRIMINATOR = _require.TYPE_DISCRIMINATOR;
38
33
 
34
+ var warning = require("fbjs/lib/warning");
35
+
36
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
37
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
38
+
39
39
  var validateMutation = function validateMutation() {};
40
40
 
41
41
  if (process.env.NODE_ENV !== "production") {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -11,10 +11,11 @@
11
11
  'use strict';
12
12
 
13
13
  var RelayObservable = require('./RelayObservable');
14
-
15
14
  /**
16
15
  * Converts a FetchFunction into an ExecuteFunction for use by RelayNetwork.
17
16
  */
17
+
18
+
18
19
  function convertFetch(fn) {
19
20
  return function fetch(request, variables, cacheConfig, uploadables, logRequestInfo) {
20
21
  var result = fn(request, variables, cacheConfig, uploadables, logRequestInfo); // Note: We allow FetchFunction to directly return Error to indicate
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -10,15 +10,16 @@
10
10
  // flowlint ambiguous-object-type:error
11
11
  'use strict';
12
12
 
13
- var invariant = require('invariant');
14
-
15
13
  var _require = require('./ConvertToExecuteFunction'),
16
14
  convertFetch = _require.convertFetch;
17
15
 
16
+ var invariant = require('invariant');
18
17
  /**
19
18
  * Creates an implementation of the `Network` interface defined in
20
19
  * `RelayNetworkTypes` given `fetch` and `subscribe` functions.
21
20
  */
21
+
22
+
22
23
  function create(fetchFn, subscribe) {
23
24
  // Convert to functions that returns RelayObservable.
24
25
  var observeFetch = convertFetch(fetchFn);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -332,15 +332,13 @@ var RelayObservable = /*#__PURE__*/function () {
332
332
  if (subscriptions.length === 0) {
333
333
  sink.complete();
334
334
  }
335
- } // $FlowFixMe[incompatible-call]
336
-
335
+ }
337
336
 
338
337
  _this7.subscribe({
339
338
  start: start,
340
339
  next: function next(value) {
341
340
  try {
342
341
  if (!sink.closed) {
343
- // $FlowFixMe[incompatible-call]
344
342
  RelayObservable.from(fn(value)).subscribe({
345
343
  start: start,
346
344
  next: sink.next,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -14,10 +14,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
14
14
 
15
15
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
16
16
 
17
- var invariant = require('invariant');
18
-
19
17
  var stableCopy = require('../util/stableCopy');
20
18
 
19
+ var invariant = require('invariant');
20
+
21
21
  /**
22
22
  * A cache for storing query responses, featuring:
23
23
  * - `get` with TTL
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -11,7 +11,6 @@
11
11
  'use strict';
12
12
 
13
13
  var generateID = require('../util/generateID');
14
-
15
14
  /**
16
15
  * Wraps the network with logging to ensure that network requests are
17
16
  * always logged. Relying on each network callsite to be wrapped is
@@ -20,6 +19,8 @@ var generateID = require('../util/generateID');
20
19
  * devtools will mutate the `env.__log` method, and the devtools rely
21
20
  * on it to receive network events.
22
21
  */
22
+
23
+
23
24
  function wrapNetworkWithLogObserver(env, network) {
24
25
  return {
25
26
  execute: function execute(params, variables, cacheConfig, uploadables) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -14,7 +14,8 @@ var RelayConcreteNode = require('../util/RelayConcreteNode');
14
14
 
15
15
  var invariant = require('invariant');
16
16
 
17
- var warning = require("fbjs/lib/warning");
17
+ var warning = require("fbjs/lib/warning"); // The type of a graphql`...` tagged template expression.
18
+
18
19
 
19
20
  /**
20
21
  * Runtime function to correspond to the `graphql` tagged template function.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -17,18 +17,17 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/obje
17
17
 
18
18
  var RelayObservable = require('../network/RelayObservable');
19
19
 
20
- var fetchQueryInternal = require('./fetchQueryInternal');
21
-
22
- var invariant = require('invariant');
20
+ var _require = require('../store/RelayModernOperationDescriptor'),
21
+ createOperationDescriptor = _require.createOperationDescriptor;
23
22
 
24
23
  var reportMissingRequiredFields = require('../util/reportMissingRequiredFields');
25
24
 
26
- var _require = require('../store/RelayModernOperationDescriptor'),
27
- createOperationDescriptor = _require.createOperationDescriptor;
25
+ var fetchQueryInternal = require('./fetchQueryInternal');
28
26
 
29
27
  var _require2 = require('./GraphQLTag'),
30
28
  getRequest = _require2.getRequest;
31
29
 
30
+ var invariant = require('invariant');
32
31
  /**
33
32
  * Fetches the given query and variables on the provided environment,
34
33
  * and de-dupes identical in-flight requests.
@@ -106,6 +105,8 @@ var _require2 = require('./GraphQLTag'),
106
105
  * ```
107
106
  * NOTE: When using .toPromise(), the request cannot be cancelled.
108
107
  */
108
+
109
+
109
110
  function fetchQuery(environment, query, variables, options) {
110
111
  var _options$fetchPolicy;
111
112
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -15,12 +15,13 @@ var _require = require('../store/RelayModernOperationDescriptor'),
15
15
 
16
16
  var _require2 = require('./GraphQLTag'),
17
17
  getRequest = _require2.getRequest;
18
-
19
18
  /**
20
19
  * A helper function to fetch the results of a query. Note that results for
21
20
  * fragment spreads are masked: fields must be explicitly listed in the query in
22
21
  * order to be accessible in the result object.
23
22
  */
23
+
24
+
24
25
  function fetchQuery_DEPRECATED(environment, taggedNode, variables, cacheConfig) {
25
26
  var query = getRequest(taggedNode);
26
27
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -10,10 +10,16 @@
10
10
  // flowlint ambiguous-object-type:error
11
11
  'use strict';
12
12
 
13
+ var RelayFeatureFlags = require('../util/RelayFeatureFlags');
14
+
15
+ var _require = require('../util/StringInterner'),
16
+ intern = _require.intern;
17
+
13
18
  var PREFIX = 'client:';
14
19
 
15
20
  function generateClientID(id, storageKey, index) {
16
- var key = id + ':' + storageKey;
21
+ var internedId = RelayFeatureFlags.STRING_INTERN_LEVEL <= 0 ? id : intern(id, RelayFeatureFlags.MAX_DATA_ID_LENGTH);
22
+ var key = internedId + ':' + storageKey;
17
23
 
18
24
  if (index != null) {
19
25
  key += ':' + index;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -15,41 +15,41 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
15
15
 
16
16
  var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
17
17
 
18
- var RelayConcreteNode = require('../util/RelayConcreteNode');
19
-
20
- var RelayFeatureFlags = require('../util/RelayFeatureFlags');
21
-
22
- var RelayModernRecord = require('./RelayModernRecord');
23
-
24
18
  var RelayRecordSourceMutator = require('../mutations/RelayRecordSourceMutator');
25
19
 
26
20
  var RelayRecordSourceProxy = require('../mutations/RelayRecordSourceProxy');
27
21
 
28
- var RelayStoreReactFlightUtils = require('./RelayStoreReactFlightUtils');
29
-
30
- var RelayStoreUtils = require('./RelayStoreUtils');
31
-
32
- var cloneRelayHandleSourceField = require('./cloneRelayHandleSourceField');
33
-
34
- var cloneRelayScalarHandleSourceField = require('./cloneRelayScalarHandleSourceField');
35
-
36
22
  var getOperation = require('../util/getOperation');
37
23
 
38
- var invariant = require('invariant');
24
+ var RelayConcreteNode = require('../util/RelayConcreteNode');
25
+
26
+ var RelayFeatureFlags = require('../util/RelayFeatureFlags');
39
27
 
40
28
  var _require = require('./ClientID'),
41
29
  isClientID = _require.isClientID;
42
30
 
31
+ var cloneRelayHandleSourceField = require('./cloneRelayHandleSourceField');
32
+
33
+ var cloneRelayScalarHandleSourceField = require('./cloneRelayScalarHandleSourceField');
34
+
43
35
  var _require2 = require('./RelayConcreteVariables'),
44
36
  getLocalVariables = _require2.getLocalVariables;
45
37
 
38
+ var RelayModernRecord = require('./RelayModernRecord');
39
+
46
40
  var _require3 = require('./RelayRecordState'),
47
41
  EXISTENT = _require3.EXISTENT,
48
42
  UNKNOWN = _require3.UNKNOWN;
49
43
 
44
+ var RelayStoreReactFlightUtils = require('./RelayStoreReactFlightUtils');
45
+
46
+ var RelayStoreUtils = require('./RelayStoreUtils');
47
+
50
48
  var _require4 = require('./TypeID'),
51
49
  generateTypeID = _require4.generateTypeID;
52
50
 
51
+ var invariant = require('invariant');
52
+
53
53
  var ACTOR_CHANGE = RelayConcreteNode.ACTOR_CHANGE,
54
54
  CONDITION = RelayConcreteNode.CONDITION,
55
55
  CLIENT_COMPONENT = RelayConcreteNode.CLIENT_COMPONENT,
@@ -145,8 +145,7 @@ var DataChecker = /*#__PURE__*/function () {
145
145
  };
146
146
 
147
147
  _proto._getVariableValue = function _getVariableValue(name) {
148
- !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayAsyncLoader(): Undefined variable `%s`.', name) : invariant(false) : void 0; // $FlowFixMe[cannot-write]
149
-
148
+ !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayAsyncLoader(): Undefined variable `%s`.', name) : invariant(false) : void 0;
150
149
  return this._variables[name];
151
150
  };
152
151
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -21,27 +21,17 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
21
21
 
22
22
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
23
23
 
24
- var RelayError = require('../util/RelayError');
25
-
26
- var RelayFeatureFlags = require('../util/RelayFeatureFlags');
27
-
28
- var RelayModernRecord = require('./RelayModernRecord');
29
-
30
24
  var RelayObservable = require('../network/RelayObservable');
31
25
 
32
- var RelayRecordSource = require('./RelayRecordSource');
33
-
34
- var RelayResponseNormalizer = require('./RelayResponseNormalizer');
35
-
36
26
  var generateID = require('../util/generateID');
37
27
 
38
28
  var getOperation = require('../util/getOperation');
39
29
 
40
- var invariant = require('invariant');
30
+ var RelayError = require('../util/RelayError');
41
31
 
42
- var stableCopy = require('../util/stableCopy');
32
+ var RelayFeatureFlags = require('../util/RelayFeatureFlags');
43
33
 
44
- var warning = require("fbjs/lib/warning");
34
+ var stableCopy = require('../util/stableCopy');
45
35
 
46
36
  var withDuration = require('../util/withDuration');
47
37
 
@@ -52,15 +42,25 @@ var _require = require('./ClientID'),
52
42
  var _require2 = require('./RelayConcreteVariables'),
53
43
  getLocalVariables = _require2.getLocalVariables;
54
44
 
45
+ var RelayModernRecord = require('./RelayModernRecord');
46
+
55
47
  var _require3 = require('./RelayModernSelector'),
56
48
  createNormalizationSelector = _require3.createNormalizationSelector,
57
49
  createReaderSelector = _require3.createReaderSelector;
58
50
 
51
+ var RelayRecordSource = require('./RelayRecordSource');
52
+
53
+ var RelayResponseNormalizer = require('./RelayResponseNormalizer');
54
+
59
55
  var _require4 = require('./RelayStoreUtils'),
60
56
  ROOT_TYPE = _require4.ROOT_TYPE,
61
57
  TYPENAME_KEY = _require4.TYPENAME_KEY,
62
58
  getStorageKey = _require4.getStorageKey;
63
59
 
60
+ var invariant = require('invariant');
61
+
62
+ var warning = require("fbjs/lib/warning");
63
+
64
64
  function execute(config) {
65
65
  return new Executor(config);
66
66
  }