@ardatan/relay-compiler 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/LICENSE +21 -0
  2. package/bin/RelayCompilerBin.js.flow +169 -0
  3. package/bin/RelayCompilerMain.js.flow +515 -0
  4. package/bin/__fixtures__/plugin-module.js.flow +17 -0
  5. package/bin/relay-compiler +19066 -0
  6. package/codegen/CodegenDirectory.js.flow +375 -0
  7. package/codegen/CodegenRunner.js.flow +432 -0
  8. package/codegen/CodegenTypes.js.flow +28 -0
  9. package/codegen/CodegenWatcher.js.flow +254 -0
  10. package/codegen/NormalizationCodeGenerator.js.flow +566 -0
  11. package/codegen/ReaderCodeGenerator.js.flow +512 -0
  12. package/codegen/RelayCodeGenerator.js.flow +85 -0
  13. package/codegen/RelayFileWriter.js.flow +367 -0
  14. package/codegen/SourceControl.js.flow +58 -0
  15. package/codegen/compileRelayArtifacts.js.flow +182 -0
  16. package/codegen/createPrintRequireModuleDependency.js.flow +19 -0
  17. package/codegen/sortObjectByKey.js.flow +25 -0
  18. package/codegen/writeRelayGeneratedFile.js.flow +239 -0
  19. package/core/ASTCache.js.flow +74 -0
  20. package/core/ASTConvert.js.flow +233 -0
  21. package/core/CompilerContext.js.flow +191 -0
  22. package/core/CompilerError.js.flow +255 -0
  23. package/core/DotGraphQLParser.js.flow +39 -0
  24. package/core/GraphQLCompilerProfiler.js.flow +341 -0
  25. package/core/GraphQLDerivedFromMetadata.js.flow +36 -0
  26. package/core/GraphQLWatchmanClient.js.flow +111 -0
  27. package/core/IR.js.flow +326 -0
  28. package/core/IRPrinter.js.flow +478 -0
  29. package/core/IRTransformer.js.flow +377 -0
  30. package/core/IRValidator.js.flow +260 -0
  31. package/core/IRVisitor.js.flow +150 -0
  32. package/core/JSModuleParser.js.flow +24 -0
  33. package/core/RelayCompilerScope.js.flow +199 -0
  34. package/core/RelayFindGraphQLTags.js.flow +119 -0
  35. package/core/RelayGraphQLEnumsGenerator.js.flow +55 -0
  36. package/core/RelayIRTransforms.js.flow +138 -0
  37. package/core/RelayParser.js.flow +1734 -0
  38. package/core/RelaySourceModuleParser.js.flow +135 -0
  39. package/core/Schema.js.flow +2037 -0
  40. package/core/SchemaUtils.js.flow +120 -0
  41. package/core/filterContextForNode.js.flow +50 -0
  42. package/core/getFieldDefinition.js.flow +156 -0
  43. package/core/getIdentifierForArgumentValue.js.flow +49 -0
  44. package/core/getIdentifierForSelection.js.flow +69 -0
  45. package/core/getLiteralArgumentValues.js.flow +32 -0
  46. package/core/getNormalizationOperationName.js.flow +19 -0
  47. package/core/inferRootArgumentDefinitions.js.flow +323 -0
  48. package/index.js +10 -0
  49. package/index.js.flow +200 -0
  50. package/language/RelayLanguagePluginInterface.js.flow +283 -0
  51. package/language/javascript/FindGraphQLTags.js.flow +137 -0
  52. package/language/javascript/RelayFlowBabelFactories.js.flow +176 -0
  53. package/language/javascript/RelayFlowGenerator.js.flow +1100 -0
  54. package/language/javascript/RelayFlowTypeTransformers.js.flow +184 -0
  55. package/language/javascript/RelayLanguagePluginJavaScript.js.flow +34 -0
  56. package/language/javascript/formatGeneratedModule.js.flow +65 -0
  57. package/lib/bin/RelayCompilerBin.js +143 -0
  58. package/lib/bin/RelayCompilerMain.js +486 -0
  59. package/lib/bin/__fixtures__/plugin-module.js +16 -0
  60. package/lib/codegen/CodegenDirectory.js +336 -0
  61. package/lib/codegen/CodegenRunner.js +433 -0
  62. package/lib/codegen/CodegenTypes.js +11 -0
  63. package/lib/codegen/CodegenWatcher.js +271 -0
  64. package/lib/codegen/NormalizationCodeGenerator.js +480 -0
  65. package/lib/codegen/ReaderCodeGenerator.js +472 -0
  66. package/lib/codegen/RelayCodeGenerator.js +68 -0
  67. package/lib/codegen/RelayFileWriter.js +270 -0
  68. package/lib/codegen/SourceControl.js +60 -0
  69. package/lib/codegen/compileRelayArtifacts.js +157 -0
  70. package/lib/codegen/createPrintRequireModuleDependency.js +19 -0
  71. package/lib/codegen/sortObjectByKey.js +41 -0
  72. package/lib/codegen/writeRelayGeneratedFile.js +208 -0
  73. package/lib/core/ASTCache.js +70 -0
  74. package/lib/core/ASTConvert.js +198 -0
  75. package/lib/core/CompilerContext.js +165 -0
  76. package/lib/core/CompilerError.js +251 -0
  77. package/lib/core/DotGraphQLParser.js +40 -0
  78. package/lib/core/GraphQLCompilerProfiler.js +299 -0
  79. package/lib/core/GraphQLDerivedFromMetadata.js +31 -0
  80. package/lib/core/GraphQLWatchmanClient.js +150 -0
  81. package/lib/core/IR.js +11 -0
  82. package/lib/core/IRPrinter.js +389 -0
  83. package/lib/core/IRTransformer.js +345 -0
  84. package/lib/core/IRValidator.js +226 -0
  85. package/lib/core/IRVisitor.js +45 -0
  86. package/lib/core/JSModuleParser.js +18 -0
  87. package/lib/core/RelayCompilerScope.js +149 -0
  88. package/lib/core/RelayFindGraphQLTags.js +79 -0
  89. package/lib/core/RelayGraphQLEnumsGenerator.js +50 -0
  90. package/lib/core/RelayIRTransforms.js +109 -0
  91. package/lib/core/RelayParser.js +1382 -0
  92. package/lib/core/RelaySourceModuleParser.js +104 -0
  93. package/lib/core/Schema.js +1877 -0
  94. package/lib/core/SchemaUtils.js +98 -0
  95. package/lib/core/filterContextForNode.js +49 -0
  96. package/lib/core/getFieldDefinition.js +145 -0
  97. package/lib/core/getIdentifierForArgumentValue.js +53 -0
  98. package/lib/core/getIdentifierForSelection.js +48 -0
  99. package/lib/core/getLiteralArgumentValues.js +26 -0
  100. package/lib/core/getNormalizationOperationName.js +17 -0
  101. package/lib/core/inferRootArgumentDefinitions.js +351 -0
  102. package/lib/index.js +178 -0
  103. package/lib/language/RelayLanguagePluginInterface.js +14 -0
  104. package/lib/language/javascript/FindGraphQLTags.js +126 -0
  105. package/lib/language/javascript/RelayFlowBabelFactories.js +160 -0
  106. package/lib/language/javascript/RelayFlowGenerator.js +857 -0
  107. package/lib/language/javascript/RelayFlowTypeTransformers.js +119 -0
  108. package/lib/language/javascript/RelayLanguagePluginJavaScript.js +30 -0
  109. package/lib/language/javascript/formatGeneratedModule.js +36 -0
  110. package/lib/reporters/ConsoleReporter.js +61 -0
  111. package/lib/reporters/MultiReporter.js +45 -0
  112. package/lib/reporters/Reporter.js +11 -0
  113. package/lib/runner/Artifacts.js +323 -0
  114. package/lib/runner/BufferedFilesystem.js +261 -0
  115. package/lib/runner/GraphQLASTNodeGroup.js +256 -0
  116. package/lib/runner/GraphQLASTUtils.js +23 -0
  117. package/lib/runner/GraphQLNodeMap.js +81 -0
  118. package/lib/runner/Sources.js +271 -0
  119. package/lib/runner/StrictMap.js +134 -0
  120. package/lib/runner/compileArtifacts.js +39 -0
  121. package/lib/runner/extractAST.js +77 -0
  122. package/lib/runner/getChangedNodeNames.js +82 -0
  123. package/lib/runner/getSchemaInstance.js +30 -0
  124. package/lib/runner/types.js +12 -0
  125. package/lib/transforms/ApplyFragmentArgumentTransform.js +393 -0
  126. package/lib/transforms/ClientExtensionsTransform.js +222 -0
  127. package/lib/transforms/ConnectionTransform.js +643 -0
  128. package/lib/transforms/DeclarativeConnectionMutationTransform.js +221 -0
  129. package/lib/transforms/DeferStreamTransform.js +247 -0
  130. package/lib/transforms/DisallowIdAsAlias.js +41 -0
  131. package/lib/transforms/DisallowTypenameOnRoot.js +53 -0
  132. package/lib/transforms/FieldHandleTransform.js +81 -0
  133. package/lib/transforms/FilterCompilerDirectivesTransform.js +29 -0
  134. package/lib/transforms/FilterDirectivesTransform.js +41 -0
  135. package/lib/transforms/FlattenTransform.js +308 -0
  136. package/lib/transforms/GenerateIDFieldTransform.js +137 -0
  137. package/lib/transforms/GenerateTypeNameTransform.js +155 -0
  138. package/lib/transforms/InlineDataFragmentTransform.js +104 -0
  139. package/lib/transforms/InlineFragmentsTransform.js +63 -0
  140. package/lib/transforms/MaskTransform.js +121 -0
  141. package/lib/transforms/MatchTransform.js +438 -0
  142. package/lib/transforms/ReactFlightComponentTransform.js +161 -0
  143. package/lib/transforms/RefetchableFragmentTransform.js +249 -0
  144. package/lib/transforms/RelayDirectiveTransform.js +85 -0
  145. package/lib/transforms/RequiredFieldTransform.js +373 -0
  146. package/lib/transforms/SkipClientExtensionsTransform.js +49 -0
  147. package/lib/transforms/SkipHandleFieldTransform.js +45 -0
  148. package/lib/transforms/SkipRedundantNodesTransform.js +255 -0
  149. package/lib/transforms/SkipSplitOperationTransform.js +32 -0
  150. package/lib/transforms/SkipUnreachableNodeTransform.js +158 -0
  151. package/lib/transforms/SkipUnusedVariablesTransform.js +74 -0
  152. package/lib/transforms/SplitModuleImportTransform.js +85 -0
  153. package/lib/transforms/TestOperationTransform.js +145 -0
  154. package/lib/transforms/TransformUtils.js +21 -0
  155. package/lib/transforms/ValidateGlobalVariablesTransform.js +91 -0
  156. package/lib/transforms/ValidateRequiredArgumentsTransform.js +118 -0
  157. package/lib/transforms/ValidateServerOnlyDirectivesTransform.js +111 -0
  158. package/lib/transforms/ValidateUnusedVariablesTransform.js +96 -0
  159. package/lib/transforms/query-generators/FetchableQueryGenerator.js +157 -0
  160. package/lib/transforms/query-generators/NodeQueryGenerator.js +166 -0
  161. package/lib/transforms/query-generators/QueryQueryGenerator.js +48 -0
  162. package/lib/transforms/query-generators/ViewerQueryGenerator.js +77 -0
  163. package/lib/transforms/query-generators/index.js +60 -0
  164. package/lib/transforms/query-generators/utils.js +92 -0
  165. package/lib/util/CodeMarker.js +80 -0
  166. package/lib/util/DefaultHandleKey.js +15 -0
  167. package/lib/util/RelayCompilerCache.js +98 -0
  168. package/lib/util/Rollout.js +40 -0
  169. package/lib/util/TimeReporter.js +83 -0
  170. package/lib/util/areEqualArgValues.js +135 -0
  171. package/lib/util/argumentContainsVariables.js +37 -0
  172. package/lib/util/dedupeJSONStringify.js +160 -0
  173. package/lib/util/generateAbstractTypeRefinementKey.js +24 -0
  174. package/lib/util/getDefinitionNodeHash.js +22 -0
  175. package/lib/util/getModuleName.js +32 -0
  176. package/lib/util/joinArgumentDefinitions.js +66 -0
  177. package/lib/util/md5.js +17 -0
  178. package/lib/util/murmurHash.js +86 -0
  179. package/lib/util/nullthrowsOSS.js +23 -0
  180. package/lib/util/orList.js +36 -0
  181. package/lib/util/partitionArray.js +35 -0
  182. package/package.json +42 -0
  183. package/relay-compiler.js +17 -0
  184. package/relay-compiler.min.js +22 -0
  185. package/reporters/ConsoleReporter.js.flow +81 -0
  186. package/reporters/MultiReporter.js.flow +43 -0
  187. package/reporters/Reporter.js.flow +19 -0
  188. package/runner/Artifacts.js.flow +219 -0
  189. package/runner/BufferedFilesystem.js.flow +194 -0
  190. package/runner/GraphQLASTNodeGroup.js.flow +176 -0
  191. package/runner/GraphQLASTUtils.js.flow +26 -0
  192. package/runner/GraphQLNodeMap.js.flow +55 -0
  193. package/runner/Sources.js.flow +228 -0
  194. package/runner/StrictMap.js.flow +96 -0
  195. package/runner/compileArtifacts.js.flow +76 -0
  196. package/runner/extractAST.js.flow +100 -0
  197. package/runner/getChangedNodeNames.js.flow +48 -0
  198. package/runner/getSchemaInstance.js.flow +36 -0
  199. package/runner/types.js.flow +37 -0
  200. package/transforms/ApplyFragmentArgumentTransform.js.flow +526 -0
  201. package/transforms/ClientExtensionsTransform.js.flow +226 -0
  202. package/transforms/ConnectionTransform.js.flow +859 -0
  203. package/transforms/DeclarativeConnectionMutationTransform.js.flow +250 -0
  204. package/transforms/DeferStreamTransform.js.flow +266 -0
  205. package/transforms/DisallowIdAsAlias.js.flow +48 -0
  206. package/transforms/DisallowTypenameOnRoot.js.flow +45 -0
  207. package/transforms/FieldHandleTransform.js.flow +81 -0
  208. package/transforms/FilterCompilerDirectivesTransform.js.flow +33 -0
  209. package/transforms/FilterDirectivesTransform.js.flow +45 -0
  210. package/transforms/FlattenTransform.js.flow +462 -0
  211. package/transforms/GenerateIDFieldTransform.js.flow +154 -0
  212. package/transforms/GenerateTypeNameTransform.js.flow +167 -0
  213. package/transforms/InlineDataFragmentTransform.js.flow +129 -0
  214. package/transforms/InlineFragmentsTransform.js.flow +73 -0
  215. package/transforms/MaskTransform.js.flow +130 -0
  216. package/transforms/MatchTransform.js.flow +593 -0
  217. package/transforms/ReactFlightComponentTransform.js.flow +198 -0
  218. package/transforms/RefetchableFragmentTransform.js.flow +272 -0
  219. package/transforms/RelayDirectiveTransform.js.flow +99 -0
  220. package/transforms/RequiredFieldTransform.js.flow +419 -0
  221. package/transforms/SkipClientExtensionsTransform.js.flow +57 -0
  222. package/transforms/SkipHandleFieldTransform.js.flow +45 -0
  223. package/transforms/SkipRedundantNodesTransform.js.flow +259 -0
  224. package/transforms/SkipSplitOperationTransform.js.flow +37 -0
  225. package/transforms/SkipUnreachableNodeTransform.js.flow +149 -0
  226. package/transforms/SkipUnusedVariablesTransform.js.flow +59 -0
  227. package/transforms/SplitModuleImportTransform.js.flow +101 -0
  228. package/transforms/TestOperationTransform.js.flow +143 -0
  229. package/transforms/TransformUtils.js.flow +26 -0
  230. package/transforms/ValidateGlobalVariablesTransform.js.flow +81 -0
  231. package/transforms/ValidateRequiredArgumentsTransform.js.flow +131 -0
  232. package/transforms/ValidateServerOnlyDirectivesTransform.js.flow +115 -0
  233. package/transforms/ValidateUnusedVariablesTransform.js.flow +89 -0
  234. package/transforms/query-generators/FetchableQueryGenerator.js.flow +189 -0
  235. package/transforms/query-generators/NodeQueryGenerator.js.flow +219 -0
  236. package/transforms/query-generators/QueryQueryGenerator.js.flow +57 -0
  237. package/transforms/query-generators/ViewerQueryGenerator.js.flow +97 -0
  238. package/transforms/query-generators/index.js.flow +90 -0
  239. package/transforms/query-generators/utils.js.flow +76 -0
  240. package/util/CodeMarker.js.flow +79 -0
  241. package/util/DefaultHandleKey.js.flow +17 -0
  242. package/util/RelayCompilerCache.js.flow +88 -0
  243. package/util/Rollout.js.flow +39 -0
  244. package/util/TimeReporter.js.flow +79 -0
  245. package/util/areEqualArgValues.js.flow +126 -0
  246. package/util/argumentContainsVariables.js.flow +38 -0
  247. package/util/dedupeJSONStringify.js.flow +152 -0
  248. package/util/generateAbstractTypeRefinementKey.js.flow +29 -0
  249. package/util/getDefinitionNodeHash.js.flow +25 -0
  250. package/util/getModuleName.js.flow +39 -0
  251. package/util/joinArgumentDefinitions.js.flow +105 -0
  252. package/util/md5.js.flow +22 -0
  253. package/util/murmurHash.js.flow +94 -0
  254. package/util/nullthrowsOSS.js.flow +25 -0
  255. package/util/orList.js.flow +37 -0
  256. package/util/partitionArray.js.flow +37 -0
@@ -0,0 +1,326 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its 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
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ // flowlint ambiguous-object-type:error
12
+
13
+ 'use strict';
14
+
15
+ import type {
16
+ LinkedFieldTypeID,
17
+ ScalarFieldTypeID,
18
+ CompositeTypeID,
19
+ InputTypeID,
20
+ } from './Schema';
21
+ import type {Source} from 'graphql';
22
+
23
+ export type Metadata = ?{[key: string]: mixed, ...};
24
+
25
+ export type SourceLocation = {|
26
+ +kind: 'Source',
27
+ +start: number,
28
+ +end: number,
29
+ +source: Source,
30
+ |};
31
+ export type GeneratedLocation = {|
32
+ +kind: 'Generated',
33
+ |};
34
+ export type DerivedLocation = {|
35
+ +kind: 'Derived',
36
+ +source: Location,
37
+ |};
38
+ export type UnknownLocation = {|+kind: 'Unknown'|};
39
+
40
+ export type Location =
41
+ | SourceLocation
42
+ | GeneratedLocation
43
+ | DerivedLocation
44
+ | UnknownLocation;
45
+
46
+ export type Argument = {|
47
+ +kind: 'Argument',
48
+ +loc: Location,
49
+ +name: string,
50
+ +type: ?InputTypeID,
51
+ +value: ArgumentValue,
52
+ |};
53
+
54
+ export type ArgumentDefinition =
55
+ | LocalArgumentDefinition
56
+ | RootArgumentDefinition;
57
+
58
+ export type ArgumentValue = ListValue | Literal | ObjectValue | Variable;
59
+
60
+ export type Condition = {|
61
+ +kind: 'Condition',
62
+ +condition: Literal | Variable,
63
+ +loc: Location,
64
+ +passingValue: boolean,
65
+ +selections: $ReadOnlyArray<Selection>,
66
+ |};
67
+
68
+ export type Directive = {|
69
+ +args: $ReadOnlyArray<Argument>,
70
+ +kind: 'Directive',
71
+ +loc: Location,
72
+ +name: string,
73
+ |};
74
+
75
+ export type Field = LinkedField | ScalarField;
76
+
77
+ export type Fragment = {|
78
+ +argumentDefinitions: $ReadOnlyArray<ArgumentDefinition>,
79
+ +directives: $ReadOnlyArray<Directive>,
80
+ +kind: 'Fragment',
81
+ +loc: Location,
82
+ +metadata: Metadata,
83
+ +name: string,
84
+ +selections: $ReadOnlyArray<Selection>,
85
+ +type: CompositeTypeID,
86
+ |};
87
+
88
+ export type FragmentSpread = {|
89
+ +args: $ReadOnlyArray<Argument>,
90
+ +directives: $ReadOnlyArray<Directive>,
91
+ +kind: 'FragmentSpread',
92
+ +loc: Location,
93
+ +metadata: Metadata,
94
+ +name: string,
95
+ |};
96
+
97
+ export type Defer = {|
98
+ +kind: 'Defer',
99
+ +loc: Location,
100
+ +selections: $ReadOnlyArray<Selection>,
101
+ +label: string,
102
+ +if: ArgumentValue | null,
103
+ |};
104
+
105
+ export type Stream = {|
106
+ +kind: 'Stream',
107
+ +loc: Location,
108
+ +metadata: Metadata,
109
+ +selections: $ReadOnlyArray<Selection>,
110
+ +label: string,
111
+ +if: ArgumentValue | null,
112
+ +initialCount: ArgumentValue,
113
+ +useCustomizedBatch: ArgumentValue | null,
114
+ |};
115
+
116
+ export type InlineDataFragmentSpread = {|
117
+ +kind: 'InlineDataFragmentSpread',
118
+ +loc: Location,
119
+ +metadata: Metadata,
120
+ +name: string,
121
+ +selections: $ReadOnlyArray<Selection>,
122
+ |};
123
+
124
+ export type IR =
125
+ | Argument
126
+ | ClientExtension
127
+ | Condition
128
+ | Defer
129
+ | Directive
130
+ | Fragment
131
+ | FragmentSpread
132
+ | InlineDataFragmentSpread
133
+ | InlineFragment
134
+ | LinkedField
135
+ | ListValue
136
+ | Literal
137
+ | LocalArgumentDefinition
138
+ | ModuleImport
139
+ | ObjectFieldValue
140
+ | ObjectValue
141
+ | Request
142
+ | Root
143
+ | RootArgumentDefinition
144
+ | ScalarField
145
+ | SplitOperation
146
+ | Stream
147
+ | Variable;
148
+
149
+ export type ObjectFieldValue = {|
150
+ +kind: 'ObjectFieldValue',
151
+ +loc: Location,
152
+ +name: string,
153
+ +value: ArgumentValue,
154
+ |};
155
+
156
+ export type ObjectValue = {|
157
+ +kind: 'ObjectValue',
158
+ +fields: $ReadOnlyArray<ObjectFieldValue>,
159
+ +loc: Location,
160
+ |};
161
+
162
+ export type RootArgumentDefinition = {|
163
+ +kind: 'RootArgumentDefinition',
164
+ +loc: Location,
165
+ +name: string,
166
+ +type: InputTypeID,
167
+ |};
168
+
169
+ export type InlineFragment = {|
170
+ +directives: $ReadOnlyArray<Directive>,
171
+ +kind: 'InlineFragment',
172
+ +loc: Location,
173
+ +metadata: Metadata,
174
+ +selections: $ReadOnlyArray<Selection>,
175
+ +typeCondition: CompositeTypeID,
176
+ |};
177
+
178
+ export type Handle = {|
179
+ +name: string,
180
+ +key: string,
181
+ +dynamicKey: Variable | null,
182
+ +filters: ?$ReadOnlyArray<string>,
183
+ +handleArgs?: $ReadOnlyArray<Argument>,
184
+ |};
185
+
186
+ export type ClientExtension = {|
187
+ +kind: 'ClientExtension',
188
+ +loc: Location,
189
+ +metadata: Metadata,
190
+ +selections: $ReadOnlyArray<Selection>,
191
+ |};
192
+
193
+ export type LinkedField = {|
194
+ +alias: string,
195
+ +args: $ReadOnlyArray<Argument>,
196
+ +connection: boolean,
197
+ +directives: $ReadOnlyArray<Directive>,
198
+ +handles: ?$ReadOnlyArray<Handle>,
199
+ +kind: 'LinkedField',
200
+ +loc: Location,
201
+ +metadata: Metadata,
202
+ +name: string,
203
+ +selections: $ReadOnlyArray<Selection>,
204
+ +type: LinkedFieldTypeID,
205
+ |};
206
+
207
+ export type ListValue = {|
208
+ +kind: 'ListValue',
209
+ +items: $ReadOnlyArray<ArgumentValue>,
210
+ +loc: Location,
211
+ |};
212
+
213
+ export type Literal = {|
214
+ +kind: 'Literal',
215
+ +loc: Location,
216
+ +value: mixed,
217
+ |};
218
+
219
+ export type LocalArgumentDefinition = {|
220
+ +defaultValue: mixed,
221
+ +kind: 'LocalArgumentDefinition',
222
+ +loc: Location,
223
+ +name: string,
224
+ +type: InputTypeID,
225
+ |};
226
+
227
+ export type ModuleImport = {|
228
+ +kind: 'ModuleImport',
229
+ +loc: Location,
230
+ // a key used as part of the storage key for fields relating to this @module
231
+ // instance. by default the key is the name of the document where the @module
232
+ // was defined, but can be overridden with the 'key' argument.
233
+ +key: string,
234
+ // the name of the document where the module was defined, used for attributing
235
+ // the generated SplitOperations to the module that caused their creation.
236
+ +sourceDocument: string,
237
+ // the name of the module to require
238
+ +module: string,
239
+ // a value that uniquely identifies this @module position in the codebase:
240
+ // the documentName plus the relative field path of the @module within that
241
+ // document
242
+ +id: string,
243
+ // the name of the original FragmentSpread on which @module was applied
244
+ +name: string,
245
+ +selections: $ReadOnlyArray<Selection>,
246
+ |};
247
+
248
+ export type Node =
249
+ | ClientExtension
250
+ | Condition
251
+ | Defer
252
+ | Fragment
253
+ | InlineDataFragmentSpread
254
+ | InlineFragment
255
+ | LinkedField
256
+ | ModuleImport
257
+ | Root
258
+ | SplitOperation
259
+ | Stream;
260
+
261
+ export type Request = {|
262
+ +kind: 'Request',
263
+ +fragment: Fragment,
264
+ +id: ?string,
265
+ +loc: Location,
266
+ +metadata: Metadata,
267
+ +name: string,
268
+ +root: Root,
269
+ +text: ?string,
270
+ |};
271
+
272
+ export type Root = {|
273
+ +argumentDefinitions: $ReadOnlyArray<LocalArgumentDefinition>,
274
+ +directives: $ReadOnlyArray<Directive>,
275
+ +kind: 'Root',
276
+ +loc: Location,
277
+ +metadata: Metadata,
278
+ +name: string,
279
+ +operation: 'query' | 'mutation' | 'subscription',
280
+ +selections: $ReadOnlyArray<Selection>,
281
+ +type: CompositeTypeID,
282
+ |};
283
+
284
+ export type ScalarField = {|
285
+ +alias: string,
286
+ +args: $ReadOnlyArray<Argument>,
287
+ +directives: $ReadOnlyArray<Directive>,
288
+ +handles: ?$ReadOnlyArray<Handle>,
289
+ +kind: 'ScalarField',
290
+ +loc: Location,
291
+ +metadata: Metadata,
292
+ +name: string,
293
+ +type: ScalarFieldTypeID,
294
+ |};
295
+
296
+ export type Selection =
297
+ | ClientExtension
298
+ | Condition
299
+ | Defer
300
+ | FragmentSpread
301
+ | InlineDataFragmentSpread
302
+ | InlineFragment
303
+ | LinkedField
304
+ | ModuleImport
305
+ | ScalarField
306
+ | Stream;
307
+
308
+ export type Definition = Fragment | Root | SplitOperation;
309
+ export type GeneratedDefinition = Fragment | Request | SplitOperation;
310
+
311
+ export type SplitOperation = {|
312
+ +kind: 'SplitOperation',
313
+ +name: string,
314
+ +selections: $ReadOnlyArray<Selection>,
315
+ +loc: Location,
316
+ +metadata: Metadata,
317
+ +parentSources: Set<string>,
318
+ +type: CompositeTypeID,
319
+ |};
320
+
321
+ export type Variable = {|
322
+ +kind: 'Variable',
323
+ +loc: Location,
324
+ +variableName: string,
325
+ +type: ?InputTypeID,
326
+ |};