relay-runtime 20.1.1 → 21.0.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 (334) hide show
  1. package/experimental.d.ts +34 -0
  2. package/experimental.js +1 -1
  3. package/experimental.js.flow +11 -11
  4. package/handlers/RelayDefaultHandlerProvider.d.ts +12 -0
  5. package/handlers/connection/ConnectionHandler.d.ts +51 -0
  6. package/handlers/connection/ConnectionHandler.js.flow +5 -5
  7. package/handlers/connection/ConnectionInterface.d.ts +40 -0
  8. package/handlers/connection/ConnectionInterface.js.flow +1 -1
  9. package/handlers/connection/MutationHandlers.d.ts +17 -0
  10. package/index.d.ts +274 -0
  11. package/index.js +1 -1
  12. package/index.js.flow +125 -62
  13. package/lib/experimental.js +3 -3
  14. package/lib/index.js +105 -57
  15. package/lib/multi-actor-environment/ActorIdentifier.js +2 -2
  16. package/lib/multi-actor-environment/MultiActorEnvironment.js +3 -1
  17. package/lib/mutations/commitMutation.js +8 -8
  18. package/lib/mutations/validateMutation.js +4 -4
  19. package/lib/query/GraphQLTag.js +3 -3
  20. package/lib/query/fetchQuery.js +15 -3
  21. package/lib/store/DataChecker.js +38 -4
  22. package/lib/store/NormalizationEngine.js +373 -0
  23. package/lib/store/OperationExecutor.js +172 -113
  24. package/lib/store/RelayConcreteVariables.js +1 -1
  25. package/lib/store/RelayErrorTrie.js +2 -2
  26. package/lib/store/RelayExperimentalGraphResponseTransform.js +8 -8
  27. package/lib/store/RelayModernEnvironment.js +26 -19
  28. package/lib/store/RelayModernRecord.js +18 -8
  29. package/lib/store/RelayModernSelector.js +9 -9
  30. package/lib/store/RelayModernStore.js +152 -43
  31. package/lib/store/RelayPublishQueue.js +1 -1
  32. package/lib/store/RelayReader.js +76 -38
  33. package/lib/store/RelayRecordSource.js +6 -0
  34. package/lib/store/RelayReferenceMarker.js +2 -1
  35. package/lib/store/RelayResponseNormalizer.js +88 -55
  36. package/lib/store/RelayStoreSubscriptions.js +34 -10
  37. package/lib/store/RelayStoreUtils.js +8 -1
  38. package/lib/store/ResolverFragments.js +2 -2
  39. package/lib/store/live-resolvers/LiveResolverCache.js +25 -9
  40. package/lib/store/observeFragmentExperimental.js +17 -1
  41. package/lib/store/observeQueryExperimental.js +2 -2
  42. package/lib/subscription/requestSubscription.js +3 -3
  43. package/lib/util/RelayError.js +3 -0
  44. package/lib/util/RelayFeatureFlags.js +6 -2
  45. package/lib/util/RelayReplaySubject.js +4 -4
  46. package/lib/util/handlePotentialSnapshotErrors.js +2 -2
  47. package/lib/util/stableCopy.js +2 -2
  48. package/llm-docs/api-reference/entrypoint-apis/entrypoint-container.mdx +38 -0
  49. package/llm-docs/api-reference/entrypoint-apis/load-entrypoint.mdx +77 -0
  50. package/llm-docs/api-reference/entrypoint-apis/use-entrypoint-loader.mdx +99 -0
  51. package/llm-docs/api-reference/graphql/graphql-directives.mdx +378 -0
  52. package/llm-docs/api-reference/hooks/_use-lazy-load-query-extra.mdx +16 -0
  53. package/llm-docs/api-reference/hooks/load-query.mdx +84 -0
  54. package/llm-docs/api-reference/hooks/relay-environment-provider.mdx +78 -0
  55. package/llm-docs/api-reference/hooks/use-client-query.mdx +65 -0
  56. package/llm-docs/api-reference/hooks/use-fragment.mdx +69 -0
  57. package/llm-docs/api-reference/hooks/use-lazy-load-query.mdx +62 -0
  58. package/llm-docs/api-reference/hooks/use-mutation.mdx +94 -0
  59. package/llm-docs/api-reference/hooks/use-pagination-fragment.mdx +166 -0
  60. package/llm-docs/api-reference/hooks/use-prefetchable-forward-pagination-fragment.mdx +134 -0
  61. package/llm-docs/api-reference/hooks/use-preloaded-query.mdx +84 -0
  62. package/llm-docs/api-reference/hooks/use-query-loader.mdx +95 -0
  63. package/llm-docs/api-reference/hooks/use-refetchable-fragment.mdx +122 -0
  64. package/llm-docs/api-reference/hooks/use-relay-environment.mdx +37 -0
  65. package/llm-docs/api-reference/hooks/use-subscription.mdx +66 -0
  66. package/llm-docs/api-reference/relay-resolvers/docblock-format.mdx +321 -0
  67. package/llm-docs/api-reference/relay-resolvers/runtime-functions.mdx +94 -0
  68. package/llm-docs/api-reference/relay-runtime/commit-mutation.mdx +65 -0
  69. package/llm-docs/api-reference/relay-runtime/fetch-query.mdx +118 -0
  70. package/llm-docs/api-reference/relay-runtime/field-logger.mdx +170 -0
  71. package/llm-docs/api-reference/relay-runtime/observe-fragment.mdx +92 -0
  72. package/llm-docs/api-reference/relay-runtime/relay-environment.mdx +53 -0
  73. package/llm-docs/api-reference/relay-runtime/request-subscription.mdx +54 -0
  74. package/llm-docs/api-reference/relay-runtime/runtime-configuration.mdx +52 -0
  75. package/llm-docs/api-reference/relay-runtime/store.mdx +734 -0
  76. package/llm-docs/api-reference/relay-runtime/wait-for-fragment-data.mdx +89 -0
  77. package/llm-docs/api-reference/types/CacheConfig.mdx +8 -0
  78. package/llm-docs/api-reference/types/Disposable.mdx +4 -0
  79. package/llm-docs/api-reference/types/GraphQLSubscriptionConfig.mdx +17 -0
  80. package/llm-docs/api-reference/types/MutationConfig.mdx +31 -0
  81. package/llm-docs/api-reference/types/SelectorStoreUpdater.mdx +6 -0
  82. package/llm-docs/api-reference/types/UploadableMap.mdx +3 -0
  83. package/llm-docs/community/learning-resources.mdx +64 -0
  84. package/llm-docs/debugging/declarative-mutation-directives.mdx +34 -0
  85. package/llm-docs/debugging/disallowed-id-types-error.mdx +43 -0
  86. package/llm-docs/debugging/inconsistent-typename-error.mdx +47 -0
  87. package/llm-docs/debugging/relay-devtools.mdx +73 -0
  88. package/llm-docs/debugging/why-null.mdx +116 -0
  89. package/llm-docs/editor-support.mdx +55 -0
  90. package/llm-docs/error-reference/unknown-field.mdx +36 -0
  91. package/llm-docs/getting-started/babel-plugin.mdx +31 -0
  92. package/llm-docs/getting-started/compiler-config.mdx +25 -0
  93. package/llm-docs/getting-started/compiler.mdx +98 -0
  94. package/llm-docs/getting-started/lint-rules.mdx +87 -0
  95. package/llm-docs/getting-started/production.mdx +30 -0
  96. package/llm-docs/getting-started/quick-start.mdx +216 -0
  97. package/llm-docs/glossary/glossary.mdx +1040 -0
  98. package/llm-docs/guided-tour/list-data/advanced-pagination.mdx +157 -0
  99. package/llm-docs/guided-tour/list-data/connections.mdx +81 -0
  100. package/llm-docs/guided-tour/list-data/pagination.mdx +193 -0
  101. package/llm-docs/guided-tour/list-data/rendering-connections.mdx +112 -0
  102. package/llm-docs/guided-tour/list-data/streaming-pagination.mdx +87 -0
  103. package/llm-docs/guided-tour/managing-data-outside-react/retaining-queries.mdx +51 -0
  104. package/llm-docs/guided-tour/refetching/refetching-queries-with-different-data.mdx +337 -0
  105. package/llm-docs/guided-tour/refetching/refreshing-queries.mdx +350 -0
  106. package/llm-docs/guided-tour/rendering/environment.mdx +59 -0
  107. package/llm-docs/guided-tour/rendering/error-states.mdx +295 -0
  108. package/llm-docs/guided-tour/rendering/fragments.mdx +354 -0
  109. package/llm-docs/guided-tour/rendering/loading-states.mdx +245 -0
  110. package/llm-docs/guided-tour/rendering/queries.mdx +261 -0
  111. package/llm-docs/guided-tour/rendering/variables.mdx +233 -0
  112. package/llm-docs/guided-tour/reusing-cached-data/fetch-policies.mdx +56 -0
  113. package/llm-docs/guided-tour/reusing-cached-data/filling-in-missing-data.mdx +102 -0
  114. package/llm-docs/guided-tour/reusing-cached-data/introduction.mdx +22 -0
  115. package/llm-docs/guided-tour/reusing-cached-data/presence-of-data.mdx +93 -0
  116. package/llm-docs/guided-tour/reusing-cached-data/rendering-partially-cached-data.mdx +175 -0
  117. package/llm-docs/guided-tour/reusing-cached-data/staleness-of-data.mdx +116 -0
  118. package/llm-docs/guided-tour/updating-data/client-only-data.mdx +115 -0
  119. package/llm-docs/guided-tour/updating-data/graphql-mutations.mdx +334 -0
  120. package/llm-docs/guided-tour/updating-data/graphql-subscriptions.mdx +279 -0
  121. package/llm-docs/guided-tour/updating-data/imperatively-modifying-linked-fields.mdx +511 -0
  122. package/llm-docs/guided-tour/updating-data/imperatively-modifying-store-data-legacy.mdx +142 -0
  123. package/llm-docs/guided-tour/updating-data/imperatively-modifying-store-data.mdx +275 -0
  124. package/llm-docs/guided-tour/updating-data/introduction.mdx +25 -0
  125. package/llm-docs/guided-tour/updating-data/local-data-updates.mdx +71 -0
  126. package/llm-docs/guided-tour/updating-data/typesafe-updaters-faq.mdx +83 -0
  127. package/llm-docs/guided-tour/updating-data/updating-connections.mdx +592 -0
  128. package/llm-docs/guides/alias-directive.mdx +160 -0
  129. package/llm-docs/guides/catch-directive.mdx +167 -0
  130. package/llm-docs/guides/client-schema-extensions.mdx +208 -0
  131. package/llm-docs/guides/codemods.mdx +79 -0
  132. package/llm-docs/guides/data-driven-dependencies/client-3d.mdx +255 -0
  133. package/llm-docs/guides/data-driven-dependencies/configuration.mdx +127 -0
  134. package/llm-docs/guides/data-driven-dependencies/introduction.mdx +39 -0
  135. package/llm-docs/guides/data-driven-dependencies/server-3d.mdx +664 -0
  136. package/llm-docs/guides/document-comparison.mdx +106 -0
  137. package/llm-docs/guides/graphql-server-specification.mdx +453 -0
  138. package/llm-docs/guides/network-layer.mdx +69 -0
  139. package/llm-docs/guides/persisted-queries.mdx +328 -0
  140. package/llm-docs/guides/relay-resolvers/context.mdx +99 -0
  141. package/llm-docs/guides/relay-resolvers/defining-fields.mdx +151 -0
  142. package/llm-docs/guides/relay-resolvers/defining-types.mdx +164 -0
  143. package/llm-docs/guides/relay-resolvers/deprecated.mdx +27 -0
  144. package/llm-docs/guides/relay-resolvers/derived-fields.mdx +127 -0
  145. package/llm-docs/guides/relay-resolvers/descriptions.mdx +44 -0
  146. package/llm-docs/guides/relay-resolvers/enabling.mdx +41 -0
  147. package/llm-docs/guides/relay-resolvers/errors.mdx +64 -0
  148. package/llm-docs/guides/relay-resolvers/field-arguments.mdx +63 -0
  149. package/llm-docs/guides/relay-resolvers/introduction.mdx +62 -0
  150. package/llm-docs/guides/relay-resolvers/limitations.mdx +30 -0
  151. package/llm-docs/guides/relay-resolvers/live-fields.mdx +164 -0
  152. package/llm-docs/guides/relay-resolvers/return-types.mdx +161 -0
  153. package/llm-docs/guides/relay-resolvers/suspense.mdx +41 -0
  154. package/llm-docs/guides/required-directive.mdx +240 -0
  155. package/llm-docs/guides/semantic-nullability.mdx +93 -0
  156. package/llm-docs/guides/testing-relay-components.mdx +642 -0
  157. package/llm-docs/guides/testing-relay-with-preloaded-queries.mdx +160 -0
  158. package/llm-docs/guides/throw-on-field-error-directive.mdx +58 -0
  159. package/llm-docs/guides/type-emission.mdx +414 -0
  160. package/llm-docs/home.mdx +32 -0
  161. package/llm-docs/principles-and-architecture/architecture-overview.mdx +24 -0
  162. package/llm-docs/principles-and-architecture/compiler-architecture.mdx +106 -0
  163. package/llm-docs/principles-and-architecture/runtime-architecture.mdx +249 -0
  164. package/llm-docs/principles-and-architecture/thinking-in-graphql.mdx +309 -0
  165. package/llm-docs/principles-and-architecture/thinking-in-relay.mdx +104 -0
  166. package/llm-docs/principles-and-architecture/videos.mdx +50 -0
  167. package/llm-docs/tutorial/arrays-lists.mdx +126 -0
  168. package/llm-docs/tutorial/fragments-1.mdx +487 -0
  169. package/llm-docs/tutorial/graphql.mdx +172 -0
  170. package/llm-docs/tutorial/interfaces-polymorphism.mdx +161 -0
  171. package/llm-docs/tutorial/intro.mdx +58 -0
  172. package/llm-docs/tutorial/mutations-updates.mdx +624 -0
  173. package/llm-docs/tutorial/organizing-mutations-queries-and-subscriptions.mdx +13 -0
  174. package/llm-docs/tutorial/queries-1.mdx +267 -0
  175. package/llm-docs/tutorial/queries-2.mdx +389 -0
  176. package/llm-docs/tutorial/refetchable-fragments.mdx +352 -0
  177. package/multi-actor-environment/ActorIdentifier.d.ts +17 -0
  178. package/multi-actor-environment/ActorIdentifier.js.flow +2 -2
  179. package/multi-actor-environment/ActorSpecificEnvironment.js.flow +15 -15
  180. package/multi-actor-environment/ActorUtils.js.flow +1 -1
  181. package/multi-actor-environment/MultiActorEnvironment.d.ts +123 -0
  182. package/multi-actor-environment/MultiActorEnvironment.js.flow +32 -24
  183. package/multi-actor-environment/MultiActorEnvironmentTypes.d.ts +225 -0
  184. package/multi-actor-environment/MultiActorEnvironmentTypes.js.flow +6 -6
  185. package/multi-actor-environment/index.d.ts +14 -0
  186. package/multi-actor-environment.d.ts +8 -0
  187. package/mutations/RelayDeclarativeMutationConfig.d.ts +70 -0
  188. package/mutations/RelayDeclarativeMutationConfig.js.flow +9 -9
  189. package/mutations/RelayRecordProxy.js.flow +8 -11
  190. package/mutations/RelayRecordSourceMutator.js.flow +4 -4
  191. package/mutations/RelayRecordSourceProxy.js.flow +4 -4
  192. package/mutations/RelayRecordSourceSelectorProxy.js.flow +6 -6
  193. package/mutations/applyOptimisticMutation.d.ts +25 -0
  194. package/mutations/applyOptimisticMutation.js.flow +2 -2
  195. package/mutations/commitLocalUpdate.d.ts +10 -0
  196. package/mutations/commitMutation.d.ts +48 -0
  197. package/mutations/commitMutation.js.flow +21 -17
  198. package/mutations/createUpdatableProxy.js.flow +19 -19
  199. package/mutations/readUpdatableFragment.js.flow +3 -3
  200. package/mutations/readUpdatableQuery.js.flow +3 -3
  201. package/mutations/validateMutation.js.flow +7 -7
  202. package/network/RelayNetwork.d.ts +12 -0
  203. package/network/RelayNetworkTypes.d.ts +145 -0
  204. package/network/RelayNetworkTypes.js.flow +18 -18
  205. package/network/RelayObservable.d.ts +197 -0
  206. package/network/RelayObservable.js.flow +32 -30
  207. package/network/RelayQueryResponseCache.d.ts +16 -0
  208. package/network/RelayQueryResponseCache.js.flow +3 -3
  209. package/network/wrapNetworkWithLogObserver.js.flow +1 -1
  210. package/package.json +2 -1
  211. package/query/GraphQLTag.d.ts +45 -0
  212. package/query/GraphQLTag.js.flow +22 -10
  213. package/query/fetchQuery.d.ts +21 -0
  214. package/query/fetchQuery.js.flow +23 -10
  215. package/query/fetchQueryInternal.d.ts +26 -0
  216. package/query/fetchQueryInternal.js.flow +4 -4
  217. package/query/fetchQuery_DEPRECATED.d.ts +17 -0
  218. package/query/fetchQuery_DEPRECATED.js.flow +1 -1
  219. package/store/ClientID.d.ts +14 -0
  220. package/store/DataChecker.js.flow +51 -15
  221. package/store/NormalizationEngine.js.flow +782 -0
  222. package/store/OperationExecutor.d.ts +51 -0
  223. package/store/OperationExecutor.js.flow +204 -98
  224. package/store/RelayConcreteVariables.js.flow +5 -5
  225. package/store/RelayErrorTrie.js.flow +12 -12
  226. package/store/RelayExperimentalGraphResponseHandler.js.flow +3 -3
  227. package/store/RelayExperimentalGraphResponseTransform.js.flow +10 -10
  228. package/store/RelayModernEnvironment.d.ts +97 -0
  229. package/store/RelayModernEnvironment.js.flow +58 -43
  230. package/store/RelayModernFragmentSpecResolver.js.flow +1 -1
  231. package/store/RelayModernOperationDescriptor.d.ts +28 -0
  232. package/store/RelayModernOperationDescriptor.js.flow +1 -1
  233. package/store/RelayModernRecord.d.ts +92 -0
  234. package/store/RelayModernRecord.js.flow +44 -20
  235. package/store/RelayModernSelector.d.ts +123 -0
  236. package/store/RelayModernSelector.js.flow +21 -21
  237. package/store/RelayModernStore.d.ts +57 -0
  238. package/store/RelayModernStore.js.flow +219 -58
  239. package/store/RelayOperationTracker.d.ts +29 -0
  240. package/store/RelayOperationTracker.js.flow +2 -2
  241. package/store/RelayOptimisticRecordSource.js.flow +2 -2
  242. package/store/RelayPublishQueue.js.flow +29 -20
  243. package/store/RelayReader.js.flow +129 -57
  244. package/store/RelayRecordSource.d.ts +26 -0
  245. package/store/RelayRecordSource.js.flow +10 -0
  246. package/store/RelayRecordState.d.ts +28 -0
  247. package/store/RelayRecordState.js.flow +1 -1
  248. package/store/RelayReferenceMarker.js.flow +5 -4
  249. package/store/RelayResponseNormalizer.d.ts +28 -0
  250. package/store/RelayResponseNormalizer.js.flow +130 -62
  251. package/store/RelayStoreSubscriptions.js.flow +52 -8
  252. package/store/RelayStoreTypes.d.ts +1327 -0
  253. package/store/RelayStoreTypes.js.flow +371 -278
  254. package/store/RelayStoreUtils.d.ts +86 -0
  255. package/store/RelayStoreUtils.js.flow +16 -8
  256. package/store/ResolverCache.js.flow +2 -2
  257. package/store/ResolverFragments.d.ts +43 -0
  258. package/store/ResolverFragments.js.flow +22 -14
  259. package/store/StoreInspector.js.flow +7 -8
  260. package/store/ViewerPattern.d.ts +11 -0
  261. package/store/cloneRelayHandleSourceField.js.flow +1 -1
  262. package/store/cloneRelayScalarHandleSourceField.js.flow +1 -1
  263. package/store/createFragmentSpecResolver.d.ts +16 -0
  264. package/store/createRelayContext.js.flow +1 -1
  265. package/store/createRelayLoggingContext.js.flow +4 -4
  266. package/store/defaultGetDataID.js.flow +2 -2
  267. package/store/isRelayModernEnvironment.d.ts +8 -0
  268. package/store/isRelayModernEnvironment.js.flow +4 -2
  269. package/store/live-resolvers/LiveResolverCache.js.flow +55 -20
  270. package/store/live-resolvers/LiveResolverSuspenseSentinel.js.flow +3 -3
  271. package/store/live-resolvers/getOutputTypeRecordIDs.js.flow +1 -1
  272. package/store/live-resolvers/isLiveStateValue.js.flow +2 -2
  273. package/store/live-resolvers/resolverDataInjector.d.ts +27 -0
  274. package/store/live-resolvers/resolverDataInjector.js.flow +8 -5
  275. package/store/observeFragmentExperimental.d.ts +46 -0
  276. package/store/observeFragmentExperimental.js.flow +50 -21
  277. package/store/observeQueryExperimental.d.ts +30 -0
  278. package/store/observeQueryExperimental.js.flow +5 -5
  279. package/store/readInlineData.d.ts +19 -0
  280. package/store/readInlineData.js.flow +5 -5
  281. package/store/waitForFragmentExperimental.d.ts +49 -0
  282. package/store/waitForFragmentExperimental.js.flow +3 -3
  283. package/subscription/requestSubscription.d.ts +27 -0
  284. package/subscription/requestSubscription.js.flow +10 -10
  285. package/util/JSResourceTypes.flow.js.flow +4 -4
  286. package/util/NormalizationNode.d.ts +235 -0
  287. package/util/NormalizationNode.js.flow +127 -123
  288. package/util/ReaderNode.d.ts +264 -0
  289. package/util/ReaderNode.js.flow +156 -151
  290. package/util/RelayConcreteNode.d.ts +120 -0
  291. package/util/RelayConcreteNode.js.flow +32 -32
  292. package/util/RelayError.d.ts +13 -0
  293. package/util/RelayError.js.flow +4 -1
  294. package/util/RelayFeatureFlags.d.ts +40 -0
  295. package/util/RelayFeatureFlags.js.flow +21 -1
  296. package/util/RelayProfiler.d.ts +121 -0
  297. package/util/RelayProfiler.js.flow +1 -1
  298. package/util/RelayReplaySubject.d.ts +25 -0
  299. package/util/RelayReplaySubject.js.flow +3 -3
  300. package/util/RelayRuntimeTypes.d.ts +59 -0
  301. package/util/RelayRuntimeTypes.js.flow +36 -33
  302. package/util/createPayloadFor3DField.d.ts +17 -0
  303. package/util/createPayloadFor3DField.js.flow +9 -5
  304. package/util/deepFreeze.d.ts +8 -0
  305. package/util/deepFreeze.js.flow +2 -2
  306. package/util/getFragmentIdentifier.d.ts +10 -0
  307. package/util/getFragmentIdentifier.js.flow +1 -1
  308. package/util/getPaginationMetadata.d.ts +20 -0
  309. package/util/getPaginationMetadata.js.flow +1 -1
  310. package/util/getPaginationVariables.d.ts +20 -0
  311. package/util/getPaginationVariables.js.flow +1 -1
  312. package/util/getPendingOperationsForFragment.d.ts +18 -0
  313. package/util/getPendingOperationsForFragment.js.flow +2 -2
  314. package/util/getRefetchMetadata.d.ts +19 -0
  315. package/util/getRefetchMetadata.js.flow +6 -5
  316. package/util/getRelayHandleKey.d.ts +8 -0
  317. package/util/getRequestIdentifier.d.ts +17 -0
  318. package/util/getValueAtPath.d.ts +8 -0
  319. package/util/getValueAtPath.js.flow +3 -3
  320. package/util/handlePotentialSnapshotErrors.d.ts +14 -0
  321. package/util/handlePotentialSnapshotErrors.js.flow +5 -5
  322. package/util/isEmptyObject.js.flow +1 -1
  323. package/util/isPromise.d.ts +8 -0
  324. package/util/isPromise.js.flow +2 -2
  325. package/util/isScalarAndEqual.d.ts +8 -0
  326. package/util/isScalarAndEqual.js.flow +1 -1
  327. package/util/recycleNodesInto.d.ts +8 -0
  328. package/util/recycleNodesInto.js.flow +2 -2
  329. package/util/registerEnvironmentWithDevTools.js.flow +1 -1
  330. package/util/shallowFreeze.js.flow +1 -1
  331. package/util/stableCopy.d.ts +8 -0
  332. package/util/stableCopy.js.flow +5 -5
  333. package/util/withProvidedVariables.d.ts +19 -0
  334. package/util/withProvidedVariables.js.flow +14 -10
@@ -20,15 +20,17 @@ import type {JSResourceReference} from 'JSResourceReference';
20
20
  * request results.
21
21
  */
22
22
  export type NormalizationOperation = {
23
- +kind: 'Operation',
24
- +name: string,
25
- +argumentDefinitions: $ReadOnlyArray<NormalizationLocalArgumentDefinition>,
26
- +selections: $ReadOnlyArray<NormalizationSelection>,
27
- +clientAbstractTypes?: {
28
- +[string]: $ReadOnlyArray<string>,
23
+ readonly kind: 'Operation',
24
+ readonly name: string,
25
+ readonly argumentDefinitions: ReadonlyArray<NormalizationLocalArgumentDefinition>,
26
+ readonly selections: ReadonlyArray<NormalizationSelection>,
27
+ readonly clientAbstractTypes?: {
28
+ readonly [string]: ReadonlyArray<string>,
29
29
  },
30
- +use_exec_time_resolvers?: boolean,
31
- +exec_time_resolvers_enabled_provider?: ProvidedVariableType,
30
+ readonly has_server_to_client_resolvers?: boolean,
31
+ readonly use_exec_time_resolvers?: boolean,
32
+ readonly exec_time_resolvers_enabled_provider?: ProvidedVariableType,
33
+ readonly use_experimental_provider?: ProvidedVariableType,
32
34
  };
33
35
 
34
36
  export type NormalizationHandle =
@@ -36,29 +38,29 @@ export type NormalizationHandle =
36
38
  | NormalizationLinkedHandle;
37
39
 
38
40
  export type NormalizationLinkedHandle = {
39
- +kind: 'LinkedHandle',
40
- +alias?: ?string,
41
- +name: string,
42
- +args?: ?$ReadOnlyArray<NormalizationArgument>,
43
- +handle: string,
44
- +key: string,
41
+ readonly kind: 'LinkedHandle',
42
+ readonly alias?: ?string,
43
+ readonly name: string,
44
+ readonly args?: ?ReadonlyArray<NormalizationArgument>,
45
+ readonly handle: string,
46
+ readonly key: string,
45
47
  // NOTE: this property is optional because it's expected to be rarely used
46
- +dynamicKey?: ?NormalizationArgument,
47
- +filters?: ?$ReadOnlyArray<string>,
48
- +handleArgs?: $ReadOnlyArray<NormalizationArgument>,
48
+ readonly dynamicKey?: ?NormalizationArgument,
49
+ readonly filters?: ?ReadonlyArray<string>,
50
+ readonly handleArgs?: ReadonlyArray<NormalizationArgument>,
49
51
  };
50
52
 
51
53
  export type NormalizationScalarHandle = {
52
- +kind: 'ScalarHandle',
53
- +alias?: ?string,
54
- +name: string,
55
- +args?: ?$ReadOnlyArray<NormalizationArgument>,
56
- +handle: string,
57
- +key: string,
54
+ readonly kind: 'ScalarHandle',
55
+ readonly alias?: ?string,
56
+ readonly name: string,
57
+ readonly args?: ?ReadonlyArray<NormalizationArgument>,
58
+ readonly handle: string,
59
+ readonly key: string,
58
60
  // NOTE: this property is optional because it's expected to be rarely used
59
- +dynamicKey?: ?NormalizationArgument,
60
- +filters?: ?$ReadOnlyArray<string>,
61
- +handleArgs?: $ReadOnlyArray<NormalizationArgument>,
61
+ readonly dynamicKey?: ?NormalizationArgument,
62
+ readonly filters?: ?ReadonlyArray<string>,
63
+ readonly handleArgs?: ReadonlyArray<NormalizationArgument>,
62
64
  };
63
65
 
64
66
  export type NormalizationArgument =
@@ -68,15 +70,15 @@ export type NormalizationArgument =
68
70
  | NormalizationVariableArgument;
69
71
 
70
72
  export type NormalizationCondition = {
71
- +kind: 'Condition',
72
- +passingValue: boolean,
73
- +condition: string,
74
- +selections: $ReadOnlyArray<NormalizationSelection>,
73
+ readonly kind: 'Condition',
74
+ readonly passingValue: boolean,
75
+ readonly condition: string,
76
+ readonly selections: ReadonlyArray<NormalizationSelection>,
75
77
  };
76
78
 
77
79
  export type NormalizationClientExtension = {
78
- +kind: 'ClientExtension',
79
- +selections: $ReadOnlyArray<NormalizationSelection>,
80
+ readonly kind: 'ClientExtension',
81
+ readonly selections: ReadonlyArray<NormalizationSelection>,
80
82
  };
81
83
 
82
84
  export type NormalizationField =
@@ -86,67 +88,67 @@ export type NormalizationField =
86
88
  | NormalizationLinkedField;
87
89
 
88
90
  export type NormalizationInlineFragment = {
89
- +kind: 'InlineFragment',
90
- +selections: $ReadOnlyArray<NormalizationSelection>,
91
- +type: string,
92
- +abstractKey?: ?string,
91
+ readonly kind: 'InlineFragment',
92
+ readonly selections: ReadonlyArray<NormalizationSelection>,
93
+ readonly type: string,
94
+ readonly abstractKey?: ?string,
93
95
  };
94
96
 
95
97
  export type NormalizationFragmentSpread = {
96
- +kind: 'FragmentSpread',
97
- +fragment: NormalizationSplitOperation,
98
- +args?: ?$ReadOnlyArray<NormalizationArgument>,
98
+ readonly kind: 'FragmentSpread',
99
+ readonly fragment: NormalizationSplitOperation,
100
+ readonly args?: ?ReadonlyArray<NormalizationArgument>,
99
101
  };
100
102
 
101
103
  export type NormalizationLinkedField = {
102
- +kind: 'LinkedField',
103
- +alias?: ?string,
104
- +name: string,
105
- +storageKey?: ?string,
106
- +args?: ?$ReadOnlyArray<NormalizationArgument>,
107
- +concreteType?: ?string,
108
- +plural: boolean,
109
- +selections: $ReadOnlyArray<NormalizationSelection>,
104
+ readonly kind: 'LinkedField',
105
+ readonly alias?: ?string,
106
+ readonly name: string,
107
+ readonly storageKey?: ?string,
108
+ readonly args?: ?ReadonlyArray<NormalizationArgument>,
109
+ readonly concreteType?: ?string,
110
+ readonly plural: boolean,
111
+ readonly selections: ReadonlyArray<NormalizationSelection>,
110
112
  };
111
113
 
112
114
  export type NormalizationActorChange = {
113
- +kind: 'ActorChange',
114
- +linkedField: NormalizationLinkedField,
115
+ readonly kind: 'ActorChange',
116
+ readonly linkedField: NormalizationLinkedField,
115
117
  };
116
118
 
117
119
  export type NormalizationModuleImport = {
118
- +args?: ?$ReadOnlyArray<NormalizationArgument>,
119
- +kind: 'ModuleImport',
120
- +documentName: string,
121
- +fragmentPropName: string,
122
- +fragmentName: string,
123
- +componentModuleProvider?: () =>
124
- | mixed
125
- | Promise<mixed>
126
- | JSResourceReference<mixed>,
127
- +operationModuleProvider?: () =>
120
+ readonly args?: ?ReadonlyArray<NormalizationArgument>,
121
+ readonly kind: 'ModuleImport',
122
+ readonly documentName: string,
123
+ readonly fragmentPropName: string,
124
+ readonly fragmentName: string,
125
+ readonly componentModuleProvider?: () =>
126
+ | unknown
127
+ | Promise<unknown>
128
+ | JSResourceReference<unknown>,
129
+ readonly operationModuleProvider?: () =>
128
130
  | NormalizationRootNode
129
131
  | Promise<NormalizationRootNode>
130
132
  | JSResourceReference<NormalizationRootNode>,
131
133
  };
132
134
 
133
135
  export type NormalizationListValueArgument = {
134
- +kind: 'ListValue',
135
- +name: string,
136
- +items: $ReadOnlyArray<NormalizationArgument | null>,
136
+ readonly kind: 'ListValue',
137
+ readonly name: string,
138
+ readonly items: ReadonlyArray<NormalizationArgument | null>,
137
139
  };
138
140
 
139
141
  export type NormalizationLiteralArgument = {
140
- +kind: 'Literal',
141
- +name: string,
142
- +type?: ?string,
143
- +value: mixed,
142
+ readonly kind: 'Literal',
143
+ readonly name: string,
144
+ readonly type?: ?string,
145
+ readonly value: unknown,
144
146
  };
145
147
 
146
148
  export type NormalizationLocalArgumentDefinition = {
147
- +kind: 'LocalArgument',
148
- +name: string,
149
- +defaultValue: mixed,
149
+ readonly kind: 'LocalArgument',
150
+ readonly name: string,
151
+ readonly defaultValue: unknown,
150
152
  };
151
153
 
152
154
  export type NormalizationNode =
@@ -160,70 +162,72 @@ export type NormalizationNode =
160
162
  | NormalizationStream;
161
163
 
162
164
  export type NormalizationScalarField = {
163
- +kind: 'ScalarField',
164
- +alias?: ?string,
165
- +name: string,
166
- +args?: ?$ReadOnlyArray<NormalizationArgument>,
167
- +storageKey?: ?string,
165
+ readonly kind: 'ScalarField',
166
+ readonly alias?: ?string,
167
+ readonly name: string,
168
+ readonly args?: ?ReadonlyArray<NormalizationArgument>,
169
+ readonly storageKey?: ?string,
168
170
  };
169
171
 
170
172
  export type ResolverReference = {
171
- +fieldType: string,
172
- +resolverFunctionName: string,
173
+ readonly fieldType: string,
174
+ readonly resolverFunctionName: string,
173
175
  };
174
176
 
175
177
  export type ResolverInfo = {
176
- +resolverFunction: ResolverFunction,
177
- +rootFragment?: ?NormalizationSplitOperation,
178
+ readonly resolverFunction: ResolverFunction,
179
+ readonly rootFragment?: ?NormalizationSplitOperation,
178
180
  };
179
181
 
180
182
  type ResolverData =
181
- | {+resolverModule?: ResolverModule}
182
- | {+resolverReference?: ResolverReference}
183
- | {+resolverInfo?: ResolverInfo};
183
+ | {readonly resolverModule?: ResolverModule}
184
+ | {readonly resolverReference?: ResolverReference}
185
+ | {readonly resolverInfo?: ResolverInfo};
184
186
 
185
187
  export type NormalizationResolverField = {
186
- +kind: 'RelayResolver',
187
- +name: string,
188
- +args?: ?$ReadOnlyArray<NormalizationArgument>,
189
- +fragment?: ?NormalizationInlineFragment,
190
- +storageKey?: ?string,
191
- +isOutputType: boolean,
188
+ readonly kind: 'RelayResolver',
189
+ readonly name: string,
190
+ readonly args?: ?ReadonlyArray<NormalizationArgument>,
191
+ readonly fragment?: ?NormalizationInlineFragment,
192
+ readonly storageKey?: ?string,
193
+ readonly isOutputType: boolean,
192
194
  ...ResolverData,
193
195
  };
194
196
 
195
197
  export type NormalizationLiveResolverField = {
196
- +kind: 'RelayLiveResolver',
197
- +name: string,
198
- +args?: ?$ReadOnlyArray<NormalizationArgument>,
199
- +fragment?: ?NormalizationInlineFragment,
200
- +storageKey?: ?string,
201
- +isOutputType: boolean,
198
+ readonly kind: 'RelayLiveResolver',
199
+ readonly name: string,
200
+ readonly args?: ?ReadonlyArray<NormalizationArgument>,
201
+ readonly fragment?: ?NormalizationInlineFragment,
202
+ readonly storageKey?: ?string,
203
+ readonly isOutputType: boolean,
202
204
  ...ResolverData,
203
205
  };
204
206
 
205
207
  export type NormalizationModelResolvers = {
206
208
  [string]: {
207
- +resolverModule: ResolverModule,
209
+ readonly resolverModule: ResolverModule,
208
210
  },
209
211
  };
210
212
 
211
213
  export type NormalizationClientEdgeToClientObject = {
212
- +kind: 'ClientEdgeToClientObject',
213
- +linkedField: NormalizationLinkedField,
214
- +backingField: NormalizationResolverField | NormalizationLiveResolverField,
215
- +modelResolvers?: NormalizationModelResolvers | null,
214
+ readonly kind: 'ClientEdgeToClientObject',
215
+ readonly linkedField: NormalizationLinkedField,
216
+ readonly backingField:
217
+ | NormalizationResolverField
218
+ | NormalizationLiveResolverField,
219
+ readonly modelResolvers?: NormalizationModelResolvers | null,
216
220
  };
217
221
 
218
222
  export type NormalizationClientComponent = {
219
- +args?: ?$ReadOnlyArray<NormalizationArgument>,
220
- +kind: 'ClientComponent',
221
- +fragment: NormalizationNode,
223
+ readonly args?: ?ReadonlyArray<NormalizationArgument>,
224
+ readonly kind: 'ClientComponent',
225
+ readonly fragment: NormalizationNode,
222
226
  };
223
227
 
224
228
  export type NormalizationTypeDiscriminator = {
225
- +kind: 'TypeDiscriminator',
226
- +abstractKey: string,
229
+ readonly kind: 'TypeDiscriminator',
230
+ readonly abstractKey: string,
227
231
  };
228
232
 
229
233
  export type NormalizationSelection =
@@ -242,38 +246,38 @@ export type NormalizationSelection =
242
246
  | NormalizationTypeDiscriminator;
243
247
 
244
248
  export type NormalizationSplitOperation = {
245
- +argumentDefinitions?: $ReadOnlyArray<NormalizationLocalArgumentDefinition>,
246
- +kind: 'SplitOperation',
247
- +name: string,
248
- +metadata?: ?{+[key: string]: mixed, ...},
249
- +selections: $ReadOnlyArray<NormalizationSelection>,
249
+ readonly argumentDefinitions?: ReadonlyArray<NormalizationLocalArgumentDefinition>,
250
+ readonly kind: 'SplitOperation',
251
+ readonly name: string,
252
+ readonly metadata?: ?{readonly [key: string]: unknown, ...},
253
+ readonly selections: ReadonlyArray<NormalizationSelection>,
250
254
  };
251
255
 
252
256
  export type NormalizationStream = {
253
- +if: string | null,
254
- +kind: 'Stream',
255
- +label: string,
256
- +selections: $ReadOnlyArray<NormalizationSelection>,
257
+ readonly if: string | null,
258
+ readonly kind: 'Stream',
259
+ readonly label: string,
260
+ readonly selections: ReadonlyArray<NormalizationSelection>,
257
261
  };
258
262
 
259
263
  export type NormalizationDefer = {
260
- +if: string | null,
261
- +kind: 'Defer',
262
- +label: string,
263
- +selections: $ReadOnlyArray<NormalizationSelection>,
264
+ readonly if: string | null,
265
+ readonly kind: 'Defer',
266
+ readonly label: string,
267
+ readonly selections: ReadonlyArray<NormalizationSelection>,
264
268
  };
265
269
 
266
270
  export type NormalizationVariableArgument = {
267
- +kind: 'Variable',
268
- +name: string,
269
- +type?: ?string,
270
- +variableName: string,
271
+ readonly kind: 'Variable',
272
+ readonly name: string,
273
+ readonly type?: ?string,
274
+ readonly variableName: string,
271
275
  };
272
276
 
273
277
  export type NormalizationObjectValueArgument = {
274
- +kind: 'ObjectValue',
275
- +name: string,
276
- +fields: $ReadOnlyArray<NormalizationArgument>,
278
+ readonly kind: 'ObjectValue',
279
+ readonly name: string,
280
+ readonly fields: ReadonlyArray<NormalizationArgument>,
277
281
  };
278
282
 
279
283
  export type NormalizationSelectableNode =
@@ -0,0 +1,264 @@
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
+ import type { ConnectionMetadata } from '../handlers/connection/ConnectionHandler';
9
+ import type { ConcreteRequest } from './RelayConcreteNode';
10
+
11
+ export interface ReaderFragmentSpread {
12
+ readonly kind: 'FragmentSpread';
13
+ readonly name: string;
14
+ readonly args?: readonly ReaderArgument[] | null | undefined;
15
+ }
16
+
17
+ export interface ReaderInlineDataFragmentSpread {
18
+ readonly kind: 'InlineDataFragmentSpread';
19
+ readonly name: string;
20
+ readonly selections: readonly ReaderSelection[];
21
+ }
22
+
23
+ export interface ReaderLinkedField {
24
+ readonly kind: 'LinkedField';
25
+ readonly alias?: string | null | undefined;
26
+ readonly name: string;
27
+ readonly storageKey?: string | null | undefined;
28
+ readonly args?: readonly ReaderArgument[] | null | undefined;
29
+ readonly concreteType?: string | null | undefined;
30
+ readonly plural: boolean;
31
+ readonly selections: readonly ReaderSelection[];
32
+ }
33
+
34
+ export interface ReaderFragment {
35
+ readonly kind: 'Fragment';
36
+ readonly name: string;
37
+ readonly type: string;
38
+ readonly abstractKey?: string | null | undefined;
39
+ readonly metadata?:
40
+ | {
41
+ readonly connection?: readonly ConnectionMetadata[];
42
+ readonly mask?: boolean;
43
+ readonly plural?: boolean;
44
+ readonly refetch?: ReaderRefetchMetadata;
45
+ }
46
+ | null
47
+ | undefined;
48
+ readonly argumentDefinitions: readonly ReaderArgumentDefinition[];
49
+ readonly selections: readonly ReaderSelection[];
50
+ }
51
+
52
+ // Marker type for a @refetchable fragment
53
+ export interface ReaderRefetchableFragment extends ReaderFragment {
54
+ readonly metadata: {
55
+ readonly connection?: [ConnectionMetadata];
56
+ readonly refetch: ReaderRefetchMetadata;
57
+ };
58
+ }
59
+
60
+ // Marker Type for a @refetchable fragment with a single use of @connection
61
+ export interface ReaderPaginationFragment extends ReaderFragment {
62
+ readonly metadata: {
63
+ readonly connection: [ConnectionMetadata];
64
+ readonly refetch: ReaderRefetchMetadata & {
65
+ connection: ReaderPaginationMetadata;
66
+ };
67
+ };
68
+ }
69
+
70
+ export interface RefetchableIdentifierInfo {
71
+ readonly identifierField: string;
72
+ readonly identifierQueryVariableName: string;
73
+ }
74
+
75
+ export interface ReaderRefetchMetadata {
76
+ readonly connection?: ReaderPaginationMetadata | null | undefined;
77
+ readonly operation: string | ConcreteRequest;
78
+ readonly fragmentPathInResult: string[];
79
+ readonly identifierInfo?: RefetchableIdentifierInfo | null | undefined;
80
+ }
81
+
82
+ // Stricter form of ConnectionMetadata
83
+ export interface ReaderPaginationMetadata {
84
+ readonly backward: {
85
+ readonly count: string;
86
+ readonly cursor: string;
87
+ } | null;
88
+ readonly forward: {
89
+ readonly count: string;
90
+ readonly cursor: string;
91
+ } | null;
92
+ readonly path: readonly string[];
93
+ }
94
+
95
+ export interface ReaderInlineDataFragment {
96
+ readonly kind: 'InlineDataFragment';
97
+ readonly name: string;
98
+ }
99
+
100
+ export type ReaderArgument =
101
+ | ReaderListValueArgument
102
+ | ReaderLiteralArgument
103
+ | ReaderObjectValueArgument
104
+ | ReaderVariableArgument;
105
+
106
+ export type ReaderArgumentDefinition = ReaderLocalArgument | ReaderRootArgument;
107
+
108
+ export interface ReaderCondition {
109
+ readonly kind: 'Condition';
110
+ readonly passingValue: boolean;
111
+ readonly condition: string;
112
+ readonly selections: readonly ReaderSelection[];
113
+ }
114
+
115
+ export interface ReaderClientExtension {
116
+ readonly kind: 'ClientExtension';
117
+ readonly selections: readonly ReaderSelection[];
118
+ }
119
+
120
+ export type ReaderField = ReaderScalarField | ReaderLinkedField | ReaderRelayResolver;
121
+
122
+ export interface ReaderRootArgument {
123
+ readonly kind: 'RootArgument';
124
+ readonly name: string;
125
+ }
126
+
127
+ export interface ReaderInlineFragment {
128
+ readonly kind: 'InlineFragment';
129
+ readonly selections: readonly ReaderSelection[];
130
+ readonly type: string;
131
+ readonly abstractKey?: string | null | undefined;
132
+ }
133
+
134
+ export interface ReaderLinkedField {
135
+ readonly kind: 'LinkedField';
136
+ readonly alias?: string | null | undefined;
137
+ readonly name: string;
138
+ readonly storageKey?: string | null | undefined;
139
+ readonly args?: readonly ReaderArgument[] | null | undefined;
140
+ readonly concreteType?: string | null | undefined;
141
+ readonly plural: boolean;
142
+ readonly selections: readonly ReaderSelection[];
143
+ }
144
+
145
+ export interface ReaderActorChange {
146
+ readonly kind: 'ActorChange';
147
+ readonly alias?: string | null | undefined;
148
+ readonly name: string;
149
+ readonly storageKey?: string | null | undefined;
150
+ readonly args?: readonly ReaderArgument[] | null | undefined;
151
+ readonly fragmentSpread: ReaderFragmentSpread;
152
+ }
153
+
154
+ export interface ReaderModuleImport {
155
+ readonly args?: readonly ReaderArgument[] | null | undefined;
156
+ readonly kind: 'ModuleImport';
157
+ readonly documentName: string;
158
+ readonly fragmentPropName: string;
159
+ readonly fragmentName: string;
160
+ }
161
+
162
+ export interface ReaderListValueArgument {
163
+ readonly kind: 'ListValue';
164
+ readonly name: string;
165
+ readonly items: ReadonlyArray<ReaderArgument | null>;
166
+ }
167
+
168
+ export interface ReaderLiteralArgument {
169
+ readonly kind: 'Literal';
170
+ readonly name: string;
171
+ readonly type?: string | null | undefined;
172
+ readonly value: any;
173
+ }
174
+
175
+ export interface ReaderLocalArgument {
176
+ readonly kind: 'LocalArgument';
177
+ readonly name: string;
178
+ readonly defaultValue: any;
179
+ }
180
+
181
+ export interface ReaderObjectValueArgument {
182
+ readonly kind: 'ObjectValue';
183
+ readonly name: string;
184
+ readonly fields: readonly ReaderArgument[];
185
+ }
186
+
187
+ export type ReaderNode = ReaderCondition | ReaderLinkedField | ReaderFragment | ReaderInlineFragment;
188
+
189
+ export interface ReaderScalarField {
190
+ readonly kind: 'ScalarField';
191
+ readonly alias?: string | null | undefined;
192
+ readonly name: string;
193
+ readonly args?: readonly ReaderArgument[] | null | undefined;
194
+ readonly storageKey?: string | null | undefined;
195
+ }
196
+
197
+ export interface ReaderFlightField {
198
+ readonly kind: 'FlightField';
199
+ readonly alias?: string | null | undefined;
200
+ readonly name: string;
201
+ readonly args?: readonly ReaderArgument[] | null | undefined;
202
+ readonly storageKey: string | null | undefined;
203
+ }
204
+
205
+ export interface ReaderDefer {
206
+ readonly kind: 'Defer';
207
+ readonly selections: readonly ReaderSelection[];
208
+ }
209
+
210
+ export interface ReaderStream {
211
+ readonly kind: 'Stream';
212
+ readonly selections: readonly ReaderSelection[];
213
+ }
214
+
215
+ export type RequiredFieldAction = 'NONE' | 'LOG' | 'THROW';
216
+
217
+ export interface ReaderRequiredField {
218
+ readonly kind: 'RequiredField';
219
+ readonly field: ReaderField;
220
+ readonly action: RequiredFieldAction;
221
+ readonly path: string;
222
+ }
223
+
224
+ export interface ReaderRelayResolver {
225
+ readonly kind: 'RelayResolver';
226
+ readonly alias?: string | null | undefined;
227
+ readonly name: string;
228
+ readonly fragment: ReaderFragmentSpread;
229
+ readonly resolverModule: (rootKey: {
230
+ readonly $data?: any;
231
+ readonly $fragmentSpreads: any;
232
+ readonly $fragmentRefs: any;
233
+ }) => any;
234
+ }
235
+
236
+ export interface ReaderClientEdge {
237
+ readonly kind: 'ClientEdge';
238
+ readonly linkedField: ReaderLinkedField;
239
+ readonly operation: ConcreteRequest;
240
+ readonly backingField: ReaderRelayResolver | ReaderClientExtension;
241
+ }
242
+
243
+ export type ReaderSelection =
244
+ | ReaderCondition
245
+ | ReaderClientEdge
246
+ | ReaderClientExtension
247
+ | ReaderDefer
248
+ | ReaderField
249
+ | ReaderActorChange
250
+ | ReaderFlightField
251
+ | ReaderFragmentSpread
252
+ | ReaderInlineDataFragmentSpread
253
+ | ReaderInlineFragment
254
+ | ReaderModuleImport
255
+ | ReaderStream
256
+ | ReaderRequiredField
257
+ | ReaderRelayResolver;
258
+
259
+ export interface ReaderVariableArgument {
260
+ readonly kind: 'Variable';
261
+ readonly name: string;
262
+ readonly type?: string | null | undefined;
263
+ readonly variableName: string;
264
+ }