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
package/index.js.flow CHANGED
@@ -9,8 +9,14 @@
9
9
  * @oncall relay
10
10
  */
11
11
 
12
+ /**
13
+ * LLM/AI Agent: Relay documentation is available in node_modules/relay-runtime/llm-docs/
14
+ */
15
+
12
16
  'use strict';
13
17
 
18
+ /* eslint relay-internal/esm-compatible-cjs: error */
19
+
14
20
  const {isErrorResult, isValueResult} = require('./experimental');
15
21
  const ConnectionHandler = require('./handlers/connection/ConnectionHandler');
16
22
  const ConnectionInterface = require('./handlers/connection/ConnectionInterface');
@@ -36,11 +42,13 @@ const {
36
42
  const createFragmentSpecResolver = require('./store/createFragmentSpecResolver');
37
43
  const createRelayContext = require('./store/createRelayContext');
38
44
  const createRelayLoggingContext = require('./store/createRelayLoggingContext');
45
+ const defaultGetDataID = require('./store/defaultGetDataID');
39
46
  const isRelayModernEnvironment = require('./store/isRelayModernEnvironment');
40
47
  const {
41
48
  isSuspenseSentinel,
42
49
  suspenseSentinel,
43
50
  } = require('./store/live-resolvers/LiveResolverSuspenseSentinel');
51
+ const NormalizationEngine = require('./store/NormalizationEngine');
44
52
  const normalizeResponse = require('./store/normalizeResponse');
45
53
  const readInlineData = require('./store/readInlineData');
46
54
  const RelayConcreteVariables = require('./store/RelayConcreteVariables');
@@ -262,6 +270,79 @@ if (__DEV__) {
262
270
  }
263
271
  }
264
272
 
273
+ const {
274
+ areEqualSelectors,
275
+ createNormalizationSelector,
276
+ createReaderSelector,
277
+ getDataIDsFromFragment,
278
+ getDataIDsFromObject,
279
+ getPluralSelector,
280
+ getSelector,
281
+ getSelectorsFromObject,
282
+ getSingularSelector,
283
+ getVariablesFromFragment,
284
+ getVariablesFromObject,
285
+ getVariablesFromPluralFragment,
286
+ getVariablesFromSingularFragment,
287
+ } = RelayModernSelector;
288
+
289
+ const {createOperationDescriptor, createRequestDescriptor} =
290
+ RelayModernOperationDescriptor;
291
+
292
+ const {
293
+ getArgumentValues,
294
+ getModuleComponentKey,
295
+ getModuleOperationKey,
296
+ getStorageKey,
297
+ FRAGMENTS_KEY,
298
+ FRAGMENT_OWNER_KEY,
299
+ ID_KEY,
300
+ REF_KEY,
301
+ REFS_KEY,
302
+ ROOT_ID,
303
+ ROOT_TYPE,
304
+ TYPENAME_KEY,
305
+ } = RelayStoreUtils;
306
+
307
+ const {
308
+ getNode,
309
+ getFragment,
310
+ getInlineDataFragment,
311
+ getPaginationFragment,
312
+ getRefetchableFragment,
313
+ getRequest,
314
+ graphql,
315
+ isFragment,
316
+ isInlineDataFragment,
317
+ isRequest,
318
+ } = GraphQLTag;
319
+
320
+ const {readFragment} = ResolverFragments;
321
+
322
+ const {DEFAULT_HANDLE_KEY} = RelayDefaultHandleKey;
323
+
324
+ const {MutationTypes, RangeOperations} = RelayDeclarativeMutationConfig;
325
+
326
+ const {VIEWER_ID, VIEWER_TYPE} = ViewerPattern;
327
+
328
+ const __internal = {
329
+ ResolverFragments,
330
+ OperationTracker: RelayOperationTracker,
331
+ createRelayContext: createRelayContext,
332
+ createRelayLoggingContext: createRelayLoggingContext,
333
+ defaultGetDataID: defaultGetDataID,
334
+ getOperationVariables: RelayConcreteVariables.getOperationVariables,
335
+ getLocalVariables: RelayConcreteVariables.getLocalVariables,
336
+ fetchQuery: fetchQueryInternal.fetchQuery,
337
+ fetchQueryDeduped: fetchQueryInternal.fetchQueryDeduped,
338
+ getPromiseForActiveRequest: fetchQueryInternal.getPromiseForActiveRequest,
339
+ getObservableForActiveRequest:
340
+ fetchQueryInternal.getObservableForActiveRequest,
341
+ NormalizationEngine: NormalizationEngine,
342
+ normalizeResponse: normalizeResponse,
343
+ withProvidedVariables: withProvidedVariables,
344
+ };
345
+
265
346
  /**
266
347
  * The public interface to Relay Runtime.
267
348
  */
@@ -276,59 +357,55 @@ module.exports = {
276
357
  ReplaySubject: RelayReplaySubject,
277
358
  Store: RelayModernStore,
278
359
 
279
- areEqualSelectors: RelayModernSelector.areEqualSelectors,
360
+ areEqualSelectors,
280
361
  createFragmentSpecResolver: createFragmentSpecResolver,
281
- createNormalizationSelector: RelayModernSelector.createNormalizationSelector,
282
- createOperationDescriptor:
283
- RelayModernOperationDescriptor.createOperationDescriptor,
284
- createReaderSelector: RelayModernSelector.createReaderSelector,
285
- createRequestDescriptor:
286
- RelayModernOperationDescriptor.createRequestDescriptor,
287
- getArgumentValues: RelayStoreUtils.getArgumentValues,
288
- getDataIDsFromFragment: RelayModernSelector.getDataIDsFromFragment,
289
- getDataIDsFromObject: RelayModernSelector.getDataIDsFromObject,
290
- getNode: GraphQLTag.getNode,
291
- getFragment: GraphQLTag.getFragment,
292
- getInlineDataFragment: GraphQLTag.getInlineDataFragment,
293
- getModuleComponentKey: RelayStoreUtils.getModuleComponentKey,
294
- getModuleOperationKey: RelayStoreUtils.getModuleOperationKey,
295
- getPaginationFragment: GraphQLTag.getPaginationFragment,
296
- getPluralSelector: RelayModernSelector.getPluralSelector,
297
- getRefetchableFragment: GraphQLTag.getRefetchableFragment,
298
- getRequest: GraphQLTag.getRequest,
362
+ createNormalizationSelector,
363
+ createOperationDescriptor,
364
+ createReaderSelector,
365
+ createRequestDescriptor,
366
+ getArgumentValues,
367
+ getDataIDsFromFragment,
368
+ getDataIDsFromObject,
369
+ getNode,
370
+ getFragment,
371
+ getInlineDataFragment,
372
+ getModuleComponentKey,
373
+ getModuleOperationKey,
374
+ getPaginationFragment,
375
+ getPluralSelector,
376
+ getRefetchableFragment,
377
+ getRequest,
299
378
  getRequestIdentifier: getRequestIdentifier,
300
- getSelector: RelayModernSelector.getSelector,
301
- getSelectorsFromObject: RelayModernSelector.getSelectorsFromObject,
302
- getSingularSelector: RelayModernSelector.getSingularSelector,
303
- getStorageKey: RelayStoreUtils.getStorageKey,
304
- getVariablesFromFragment: RelayModernSelector.getVariablesFromFragment,
305
- getVariablesFromObject: RelayModernSelector.getVariablesFromObject,
306
- getVariablesFromPluralFragment:
307
- RelayModernSelector.getVariablesFromPluralFragment,
308
- getVariablesFromSingularFragment:
309
- RelayModernSelector.getVariablesFromSingularFragment,
379
+ getSelector,
380
+ getSelectorsFromObject,
381
+ getSingularSelector,
382
+ getStorageKey,
383
+ getVariablesFromFragment,
384
+ getVariablesFromObject,
385
+ getVariablesFromPluralFragment,
386
+ getVariablesFromSingularFragment,
310
387
  handlePotentialSnapshotErrors,
311
- graphql: GraphQLTag.graphql,
388
+ graphql,
312
389
  isErrorResult: isErrorResult,
313
390
  isValueResult: isValueResult,
314
- isFragment: GraphQLTag.isFragment,
315
- isInlineDataFragment: GraphQLTag.isInlineDataFragment,
391
+ isFragment,
392
+ isInlineDataFragment,
316
393
  isSuspenseSentinel,
317
394
  suspenseSentinel,
318
- isRequest: GraphQLTag.isRequest,
395
+ isRequest,
319
396
  readInlineData,
320
- readFragment: ResolverFragments.readFragment,
397
+ readFragment,
321
398
 
322
399
  // Declarative mutation API
323
- MutationTypes: RelayDeclarativeMutationConfig.MutationTypes,
324
- RangeOperations: RelayDeclarativeMutationConfig.RangeOperations,
400
+ MutationTypes,
401
+ RangeOperations,
325
402
 
326
403
  // Extensions
327
404
  DefaultHandlerProvider: RelayDefaultHandlerProvider,
328
405
  ConnectionHandler,
329
406
  MutationHandlers,
330
- VIEWER_ID: ViewerPattern.VIEWER_ID,
331
- VIEWER_TYPE: ViewerPattern.VIEWER_TYPE,
407
+ VIEWER_ID,
408
+ VIEWER_TYPE,
332
409
 
333
410
  // Helpers (can be implemented via the above API)
334
411
  applyOptimisticMutation,
@@ -351,15 +428,15 @@ module.exports = {
351
428
  RelayConcreteNode: RelayConcreteNode,
352
429
  RelayError: RelayError,
353
430
  RelayFeatureFlags: RelayFeatureFlags,
354
- DEFAULT_HANDLE_KEY: RelayDefaultHandleKey.DEFAULT_HANDLE_KEY,
355
- FRAGMENTS_KEY: RelayStoreUtils.FRAGMENTS_KEY,
356
- FRAGMENT_OWNER_KEY: RelayStoreUtils.FRAGMENT_OWNER_KEY,
357
- ID_KEY: RelayStoreUtils.ID_KEY,
358
- REF_KEY: RelayStoreUtils.REF_KEY,
359
- REFS_KEY: RelayStoreUtils.REFS_KEY,
360
- ROOT_ID: RelayStoreUtils.ROOT_ID,
361
- ROOT_TYPE: RelayStoreUtils.ROOT_TYPE,
362
- TYPENAME_KEY: RelayStoreUtils.TYPENAME_KEY,
431
+ DEFAULT_HANDLE_KEY,
432
+ FRAGMENTS_KEY,
433
+ FRAGMENT_OWNER_KEY,
434
+ ID_KEY,
435
+ REF_KEY,
436
+ REFS_KEY,
437
+ ROOT_ID,
438
+ ROOT_TYPE,
439
+ TYPENAME_KEY,
363
440
 
364
441
  deepFreeze: deepFreeze,
365
442
  generateClientID: generateClientID,
@@ -377,19 +454,5 @@ module.exports = {
377
454
  getPaginationVariables: getPaginationVariables,
378
455
  getPendingOperationsForFragment: getPendingOperationsForFragment,
379
456
  getValueAtPath: getValueAtPath,
380
- __internal: {
381
- ResolverFragments,
382
- OperationTracker: RelayOperationTracker,
383
- createRelayContext: createRelayContext,
384
- createRelayLoggingContext: createRelayLoggingContext,
385
- getOperationVariables: RelayConcreteVariables.getOperationVariables,
386
- getLocalVariables: RelayConcreteVariables.getLocalVariables,
387
- fetchQuery: fetchQueryInternal.fetchQuery,
388
- fetchQueryDeduped: fetchQueryInternal.fetchQueryDeduped,
389
- getPromiseForActiveRequest: fetchQueryInternal.getPromiseForActiveRequest,
390
- getObservableForActiveRequest:
391
- fetchQueryInternal.getObservableForActiveRequest,
392
- normalizeResponse: normalizeResponse,
393
- withProvidedVariables: withProvidedVariables,
394
- },
457
+ __internal,
395
458
  };
@@ -14,10 +14,10 @@ function isErrorResult(input) {
14
14
  return input.ok === false;
15
15
  }
16
16
  module.exports = {
17
- resolverDataInjector: resolverDataInjector,
18
- isValueResult: isValueResult,
19
17
  isErrorResult: isErrorResult,
20
- observeQuery: observeQuery,
18
+ isValueResult: isValueResult,
21
19
  observeFragment: observeFragment,
20
+ observeQuery: observeQuery,
21
+ resolverDataInjector: resolverDataInjector,
22
22
  waitForFragmentData: waitForFragmentData
23
23
  };
package/lib/index.js CHANGED
@@ -26,10 +26,12 @@ var _require2 = require('./store/ClientID'),
26
26
  var createFragmentSpecResolver = require('./store/createFragmentSpecResolver');
27
27
  var createRelayContext = require('./store/createRelayContext');
28
28
  var createRelayLoggingContext = require('./store/createRelayLoggingContext');
29
+ var defaultGetDataID = require('./store/defaultGetDataID');
29
30
  var isRelayModernEnvironment = require('./store/isRelayModernEnvironment');
30
31
  var _require3 = require('./store/live-resolvers/LiveResolverSuspenseSentinel'),
31
32
  isSuspenseSentinel = _require3.isSuspenseSentinel,
32
33
  suspenseSentinel = _require3.suspenseSentinel;
34
+ var NormalizationEngine = require('./store/NormalizationEngine');
33
35
  var normalizeResponse = require('./store/normalizeResponse');
34
36
  var readInlineData = require('./store/readInlineData');
35
37
  var RelayConcreteVariables = require('./store/RelayConcreteVariables');
@@ -78,6 +80,65 @@ if (process.env.NODE_ENV !== "production") {
78
80
  throw new Error("relay-runtime requires ".concat([mapStr, setStr, promiseStr, objStr].filter(Boolean).join(', and '), " to exist. ") + 'Use a polyfill to provide these for older browsers.');
79
81
  }
80
82
  }
83
+ var areEqualSelectors = RelayModernSelector.areEqualSelectors,
84
+ createNormalizationSelector = RelayModernSelector.createNormalizationSelector,
85
+ createReaderSelector = RelayModernSelector.createReaderSelector,
86
+ getDataIDsFromFragment = RelayModernSelector.getDataIDsFromFragment,
87
+ getDataIDsFromObject = RelayModernSelector.getDataIDsFromObject,
88
+ getPluralSelector = RelayModernSelector.getPluralSelector,
89
+ getSelector = RelayModernSelector.getSelector,
90
+ getSelectorsFromObject = RelayModernSelector.getSelectorsFromObject,
91
+ getSingularSelector = RelayModernSelector.getSingularSelector,
92
+ getVariablesFromFragment = RelayModernSelector.getVariablesFromFragment,
93
+ getVariablesFromObject = RelayModernSelector.getVariablesFromObject,
94
+ getVariablesFromPluralFragment = RelayModernSelector.getVariablesFromPluralFragment,
95
+ getVariablesFromSingularFragment = RelayModernSelector.getVariablesFromSingularFragment;
96
+ var createOperationDescriptor = RelayModernOperationDescriptor.createOperationDescriptor,
97
+ createRequestDescriptor = RelayModernOperationDescriptor.createRequestDescriptor;
98
+ var getArgumentValues = RelayStoreUtils.getArgumentValues,
99
+ getModuleComponentKey = RelayStoreUtils.getModuleComponentKey,
100
+ getModuleOperationKey = RelayStoreUtils.getModuleOperationKey,
101
+ getStorageKey = RelayStoreUtils.getStorageKey,
102
+ FRAGMENTS_KEY = RelayStoreUtils.FRAGMENTS_KEY,
103
+ FRAGMENT_OWNER_KEY = RelayStoreUtils.FRAGMENT_OWNER_KEY,
104
+ ID_KEY = RelayStoreUtils.ID_KEY,
105
+ REF_KEY = RelayStoreUtils.REF_KEY,
106
+ REFS_KEY = RelayStoreUtils.REFS_KEY,
107
+ ROOT_ID = RelayStoreUtils.ROOT_ID,
108
+ ROOT_TYPE = RelayStoreUtils.ROOT_TYPE,
109
+ TYPENAME_KEY = RelayStoreUtils.TYPENAME_KEY;
110
+ var getNode = GraphQLTag.getNode,
111
+ getFragment = GraphQLTag.getFragment,
112
+ getInlineDataFragment = GraphQLTag.getInlineDataFragment,
113
+ getPaginationFragment = GraphQLTag.getPaginationFragment,
114
+ getRefetchableFragment = GraphQLTag.getRefetchableFragment,
115
+ getRequest = GraphQLTag.getRequest,
116
+ graphql = GraphQLTag.graphql,
117
+ isFragment = GraphQLTag.isFragment,
118
+ isInlineDataFragment = GraphQLTag.isInlineDataFragment,
119
+ isRequest = GraphQLTag.isRequest;
120
+ var readFragment = ResolverFragments.readFragment;
121
+ var DEFAULT_HANDLE_KEY = RelayDefaultHandleKey.DEFAULT_HANDLE_KEY;
122
+ var MutationTypes = RelayDeclarativeMutationConfig.MutationTypes,
123
+ RangeOperations = RelayDeclarativeMutationConfig.RangeOperations;
124
+ var VIEWER_ID = ViewerPattern.VIEWER_ID,
125
+ VIEWER_TYPE = ViewerPattern.VIEWER_TYPE;
126
+ var __internal = {
127
+ ResolverFragments: ResolverFragments,
128
+ OperationTracker: RelayOperationTracker,
129
+ createRelayContext: createRelayContext,
130
+ createRelayLoggingContext: createRelayLoggingContext,
131
+ defaultGetDataID: defaultGetDataID,
132
+ getOperationVariables: RelayConcreteVariables.getOperationVariables,
133
+ getLocalVariables: RelayConcreteVariables.getLocalVariables,
134
+ fetchQuery: fetchQueryInternal.fetchQuery,
135
+ fetchQueryDeduped: fetchQueryInternal.fetchQueryDeduped,
136
+ getPromiseForActiveRequest: fetchQueryInternal.getPromiseForActiveRequest,
137
+ getObservableForActiveRequest: fetchQueryInternal.getObservableForActiveRequest,
138
+ NormalizationEngine: NormalizationEngine,
139
+ normalizeResponse: normalizeResponse,
140
+ withProvidedVariables: withProvidedVariables
141
+ };
81
142
  module.exports = {
82
143
  Environment: RelayModernEnvironment,
83
144
  Network: RelayNetwork,
@@ -87,51 +148,51 @@ module.exports = {
87
148
  Record: RelayModernRecord,
88
149
  ReplaySubject: RelayReplaySubject,
89
150
  Store: RelayModernStore,
90
- areEqualSelectors: RelayModernSelector.areEqualSelectors,
151
+ areEqualSelectors: areEqualSelectors,
91
152
  createFragmentSpecResolver: createFragmentSpecResolver,
92
- createNormalizationSelector: RelayModernSelector.createNormalizationSelector,
93
- createOperationDescriptor: RelayModernOperationDescriptor.createOperationDescriptor,
94
- createReaderSelector: RelayModernSelector.createReaderSelector,
95
- createRequestDescriptor: RelayModernOperationDescriptor.createRequestDescriptor,
96
- getArgumentValues: RelayStoreUtils.getArgumentValues,
97
- getDataIDsFromFragment: RelayModernSelector.getDataIDsFromFragment,
98
- getDataIDsFromObject: RelayModernSelector.getDataIDsFromObject,
99
- getNode: GraphQLTag.getNode,
100
- getFragment: GraphQLTag.getFragment,
101
- getInlineDataFragment: GraphQLTag.getInlineDataFragment,
102
- getModuleComponentKey: RelayStoreUtils.getModuleComponentKey,
103
- getModuleOperationKey: RelayStoreUtils.getModuleOperationKey,
104
- getPaginationFragment: GraphQLTag.getPaginationFragment,
105
- getPluralSelector: RelayModernSelector.getPluralSelector,
106
- getRefetchableFragment: GraphQLTag.getRefetchableFragment,
107
- getRequest: GraphQLTag.getRequest,
153
+ createNormalizationSelector: createNormalizationSelector,
154
+ createOperationDescriptor: createOperationDescriptor,
155
+ createReaderSelector: createReaderSelector,
156
+ createRequestDescriptor: createRequestDescriptor,
157
+ getArgumentValues: getArgumentValues,
158
+ getDataIDsFromFragment: getDataIDsFromFragment,
159
+ getDataIDsFromObject: getDataIDsFromObject,
160
+ getNode: getNode,
161
+ getFragment: getFragment,
162
+ getInlineDataFragment: getInlineDataFragment,
163
+ getModuleComponentKey: getModuleComponentKey,
164
+ getModuleOperationKey: getModuleOperationKey,
165
+ getPaginationFragment: getPaginationFragment,
166
+ getPluralSelector: getPluralSelector,
167
+ getRefetchableFragment: getRefetchableFragment,
168
+ getRequest: getRequest,
108
169
  getRequestIdentifier: getRequestIdentifier,
109
- getSelector: RelayModernSelector.getSelector,
110
- getSelectorsFromObject: RelayModernSelector.getSelectorsFromObject,
111
- getSingularSelector: RelayModernSelector.getSingularSelector,
112
- getStorageKey: RelayStoreUtils.getStorageKey,
113
- getVariablesFromFragment: RelayModernSelector.getVariablesFromFragment,
114
- getVariablesFromObject: RelayModernSelector.getVariablesFromObject,
115
- getVariablesFromPluralFragment: RelayModernSelector.getVariablesFromPluralFragment,
116
- getVariablesFromSingularFragment: RelayModernSelector.getVariablesFromSingularFragment,
170
+ getSelector: getSelector,
171
+ getSelectorsFromObject: getSelectorsFromObject,
172
+ getSingularSelector: getSingularSelector,
173
+ getStorageKey: getStorageKey,
174
+ getVariablesFromFragment: getVariablesFromFragment,
175
+ getVariablesFromObject: getVariablesFromObject,
176
+ getVariablesFromPluralFragment: getVariablesFromPluralFragment,
177
+ getVariablesFromSingularFragment: getVariablesFromSingularFragment,
117
178
  handlePotentialSnapshotErrors: handlePotentialSnapshotErrors,
118
- graphql: GraphQLTag.graphql,
179
+ graphql: graphql,
119
180
  isErrorResult: isErrorResult,
120
181
  isValueResult: isValueResult,
121
- isFragment: GraphQLTag.isFragment,
122
- isInlineDataFragment: GraphQLTag.isInlineDataFragment,
182
+ isFragment: isFragment,
183
+ isInlineDataFragment: isInlineDataFragment,
123
184
  isSuspenseSentinel: isSuspenseSentinel,
124
185
  suspenseSentinel: suspenseSentinel,
125
- isRequest: GraphQLTag.isRequest,
186
+ isRequest: isRequest,
126
187
  readInlineData: readInlineData,
127
- readFragment: ResolverFragments.readFragment,
128
- MutationTypes: RelayDeclarativeMutationConfig.MutationTypes,
129
- RangeOperations: RelayDeclarativeMutationConfig.RangeOperations,
188
+ readFragment: readFragment,
189
+ MutationTypes: MutationTypes,
190
+ RangeOperations: RangeOperations,
130
191
  DefaultHandlerProvider: RelayDefaultHandlerProvider,
131
192
  ConnectionHandler: ConnectionHandler,
132
193
  MutationHandlers: MutationHandlers,
133
- VIEWER_ID: ViewerPattern.VIEWER_ID,
134
- VIEWER_TYPE: ViewerPattern.VIEWER_TYPE,
194
+ VIEWER_ID: VIEWER_ID,
195
+ VIEWER_TYPE: VIEWER_TYPE,
135
196
  applyOptimisticMutation: applyOptimisticMutation,
136
197
  commitLocalUpdate: commitLocalUpdate,
137
198
  commitMutation: commitMutation,
@@ -146,15 +207,15 @@ module.exports = {
146
207
  RelayConcreteNode: RelayConcreteNode,
147
208
  RelayError: RelayError,
148
209
  RelayFeatureFlags: RelayFeatureFlags,
149
- DEFAULT_HANDLE_KEY: RelayDefaultHandleKey.DEFAULT_HANDLE_KEY,
150
- FRAGMENTS_KEY: RelayStoreUtils.FRAGMENTS_KEY,
151
- FRAGMENT_OWNER_KEY: RelayStoreUtils.FRAGMENT_OWNER_KEY,
152
- ID_KEY: RelayStoreUtils.ID_KEY,
153
- REF_KEY: RelayStoreUtils.REF_KEY,
154
- REFS_KEY: RelayStoreUtils.REFS_KEY,
155
- ROOT_ID: RelayStoreUtils.ROOT_ID,
156
- ROOT_TYPE: RelayStoreUtils.ROOT_TYPE,
157
- TYPENAME_KEY: RelayStoreUtils.TYPENAME_KEY,
210
+ DEFAULT_HANDLE_KEY: DEFAULT_HANDLE_KEY,
211
+ FRAGMENTS_KEY: FRAGMENTS_KEY,
212
+ FRAGMENT_OWNER_KEY: FRAGMENT_OWNER_KEY,
213
+ ID_KEY: ID_KEY,
214
+ REF_KEY: REF_KEY,
215
+ REFS_KEY: REFS_KEY,
216
+ ROOT_ID: ROOT_ID,
217
+ ROOT_TYPE: ROOT_TYPE,
218
+ TYPENAME_KEY: TYPENAME_KEY,
158
219
  deepFreeze: deepFreeze,
159
220
  generateClientID: generateClientID,
160
221
  generateUniqueClientID: generateUniqueClientID,
@@ -171,18 +232,5 @@ module.exports = {
171
232
  getPaginationVariables: getPaginationVariables,
172
233
  getPendingOperationsForFragment: getPendingOperationsForFragment,
173
234
  getValueAtPath: getValueAtPath,
174
- __internal: {
175
- ResolverFragments: ResolverFragments,
176
- OperationTracker: RelayOperationTracker,
177
- createRelayContext: createRelayContext,
178
- createRelayLoggingContext: createRelayLoggingContext,
179
- getOperationVariables: RelayConcreteVariables.getOperationVariables,
180
- getLocalVariables: RelayConcreteVariables.getLocalVariables,
181
- fetchQuery: fetchQueryInternal.fetchQuery,
182
- fetchQueryDeduped: fetchQueryInternal.fetchQueryDeduped,
183
- getPromiseForActiveRequest: fetchQueryInternal.getPromiseForActiveRequest,
184
- getObservableForActiveRequest: fetchQueryInternal.getObservableForActiveRequest,
185
- normalizeResponse: normalizeResponse,
186
- withProvidedVariables: withProvidedVariables
187
- }
235
+ __internal: __internal
188
236
  };
@@ -6,12 +6,12 @@ function assertInternalActorIdentifier(actorIdentifier) {
6
6
  !(actorIdentifier === INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected to use only internal version of the `actorIdentifier`. "%s" was provided.', actorIdentifier) : invariant(false) : void 0;
7
7
  }
8
8
  module.exports = {
9
+ INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE: INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,
9
10
  assertInternalActorIdentifier: assertInternalActorIdentifier,
10
11
  getActorIdentifier: function getActorIdentifier(actorID) {
11
12
  return actorID;
12
13
  },
13
14
  getDefaultActorIdentifier: function getDefaultActorIdentifier() {
14
15
  throw new Error('Not Implemented');
15
- },
16
- INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE: INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE
16
+ }
17
17
  };
@@ -14,7 +14,7 @@ var RelayRecordSource = require('../store/RelayRecordSource');
14
14
  var ActorSpecificEnvironment = require('./ActorSpecificEnvironment');
15
15
  var MultiActorEnvironment = /*#__PURE__*/function () {
16
16
  function MultiActorEnvironment(config) {
17
- var _config$getDataID, _config$logFn, _config$relayFieldLog, _config$treatMissingF, _config$isServer, _config$missingFieldH, _config$defaultRender, _config$normalizeResp;
17
+ var _config$getDataID, _config$logFn, _config$relayFieldLog, _config$treatMissingF, _config$deferDeduplic, _config$isServer, _config$missingFieldH, _config$defaultRender, _config$normalizeResp;
18
18
  this._actorEnvironments = new Map();
19
19
  this._operationLoader = config.operationLoader;
20
20
  this._createNetworkForActor = config.createNetworkForActor;
@@ -26,6 +26,7 @@ var MultiActorEnvironment = /*#__PURE__*/function () {
26
26
  this._relayFieldLogger = (_config$relayFieldLog = config.relayFieldLogger) !== null && _config$relayFieldLog !== void 0 ? _config$relayFieldLog : defaultRelayFieldLogger;
27
27
  this._shouldProcessClientComponents = config.shouldProcessClientComponents;
28
28
  this._treatMissingFieldsAsNull = (_config$treatMissingF = config.treatMissingFieldsAsNull) !== null && _config$treatMissingF !== void 0 ? _config$treatMissingF : false;
29
+ this._deferDeduplicatedFields = (_config$deferDeduplic = config.deferDeduplicatedFields) !== null && _config$deferDeduplic !== void 0 ? _config$deferDeduplic : false;
29
30
  this._isServer = (_config$isServer = config.isServer) !== null && _config$isServer !== void 0 ? _config$isServer : false;
30
31
  this._missingFieldHandlers = (_config$missingFieldH = config.missingFieldHandlers) !== null && _config$missingFieldH !== void 0 ? _config$missingFieldH : [];
31
32
  this._createStoreForActor = config.createStoreForActor;
@@ -288,6 +289,7 @@ var MultiActorEnvironment = /*#__PURE__*/function () {
288
289
  return _this4.forActor(actorIdentifier).getStore();
289
290
  },
290
291
  treatMissingFieldsAsNull: _this4._treatMissingFieldsAsNull,
292
+ deferDeduplicatedFields: _this4._deferDeduplicatedFields,
291
293
  updater: updater,
292
294
  log: _this4._logFn,
293
295
  normalizeResponse: _this4._normalizeResponse
@@ -54,6 +54,14 @@ function commitMutation(environment, config) {
54
54
  updater: updater,
55
55
  uploadables: uploadables
56
56
  }).subscribe({
57
+ complete: function complete() {
58
+ var onCompleted = config.onCompleted;
59
+ if (onCompleted) {
60
+ var snapshot = environment.lookup(operation.fragment);
61
+ onCompleted(snapshot.data, errors.length !== 0 ? errors : null);
62
+ }
63
+ },
64
+ error: onError,
57
65
  next: function next(payload) {
58
66
  var _config$onNext;
59
67
  if (Array.isArray(payload)) {
@@ -69,14 +77,6 @@ function commitMutation(environment, config) {
69
77
  }
70
78
  (_config$onNext = config.onNext) === null || _config$onNext === void 0 ? void 0 : _config$onNext.call(config);
71
79
  },
72
- complete: function complete() {
73
- var onCompleted = config.onCompleted;
74
- if (onCompleted) {
75
- var snapshot = environment.lookup(operation.fragment);
76
- onCompleted(snapshot.data, errors.length !== 0 ? errors : null);
77
- }
78
- },
79
- error: onError,
80
80
  unsubscribe: onUnsubscribe
81
81
  });
82
82
  return {
@@ -21,12 +21,12 @@ if (process.env.NODE_ENV !== "production") {
21
21
  validateMutation = function validateMutation(optimisticResponse, mutation, variables) {
22
22
  var operationName = mutation.operation.name;
23
23
  var context = {
24
+ extraDiff: {},
25
+ missingDiff: {},
26
+ moduleImportPaths: new Set(),
24
27
  path: 'ROOT',
25
- visitedPaths: new Set(),
26
28
  variables: variables || {},
27
- missingDiff: {},
28
- extraDiff: {},
29
- moduleImportPaths: new Set()
29
+ visitedPaths: new Set()
30
30
  };
31
31
  validateSelections(optimisticResponse, mutation.operation.selections, context);
32
32
  validateOptimisticResponse(optimisticResponse, context);
@@ -73,15 +73,15 @@ function getInlineDataFragment(taggedNode) {
73
73
  }
74
74
  module.exports = {
75
75
  getFragment: getFragment,
76
+ getInlineDataFragment: getInlineDataFragment,
76
77
  getNode: getNode,
77
78
  getPaginationFragment: getPaginationFragment,
78
79
  getRefetchableFragment: getRefetchableFragment,
79
80
  getRequest: getRequest,
80
81
  getUpdatableQuery: getUpdatableQuery,
81
- getInlineDataFragment: getInlineDataFragment,
82
82
  graphql: graphql,
83
83
  isFragment: isFragment,
84
+ isInlineDataFragment: isInlineDataFragment,
84
85
  isRequest: isRequest,
85
- isUpdatableQuery: isUpdatableQuery,
86
- isInlineDataFragment: isInlineDataFragment
86
+ isUpdatableQuery: isUpdatableQuery
87
87
  };
@@ -31,10 +31,22 @@ function fetchQuery(environment, query, variables, options) {
31
31
  }
32
32
  case 'store-or-network':
33
33
  {
34
- if (environment.check(operation).status === 'available') {
35
- return RelayObservable.from(environment.lookup(operation.fragment)).map(readData);
34
+ var queryAvailability = environment.check(operation);
35
+ var shouldFetch = queryAvailability.status !== 'available';
36
+ var observable;
37
+ if (!shouldFetch) {
38
+ observable = RelayObservable.from(environment.lookup(operation.fragment)).map(readData);
39
+ } else {
40
+ observable = getNetworkObservable(environment, operation).map(readData);
36
41
  }
37
- return getNetworkObservable(environment, operation).map(readData);
42
+ environment.__log({
43
+ name: 'fetchquery.fetch',
44
+ operation: operation,
45
+ fetchPolicy: fetchPolicy,
46
+ queryAvailability: queryAvailability,
47
+ shouldFetch: shouldFetch
48
+ });
49
+ return observable;
38
50
  }
39
51
  default:
40
52
  fetchPolicy;