relay-runtime 21.0.0 → 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 (107) hide show
  1. package/experimental.d.ts +34 -0
  2. package/experimental.js +1 -1
  3. package/experimental.js.flow +4 -4
  4. package/handlers/RelayDefaultHandlerProvider.d.ts +12 -0
  5. package/handlers/connection/ConnectionHandler.d.ts +51 -0
  6. package/handlers/connection/ConnectionInterface.d.ts +40 -0
  7. package/handlers/connection/MutationHandlers.d.ts +17 -0
  8. package/index.d.ts +274 -0
  9. package/index.js +1 -1
  10. package/llm-docs/api-reference/relay-runtime/fetch-query.mdx +5 -0
  11. package/llm-docs/getting-started/compiler.mdx +19 -3
  12. package/llm-docs/getting-started/quick-start.mdx +15 -12
  13. package/llm-docs/guides/codemods.mdx +14 -1
  14. package/multi-actor-environment/ActorIdentifier.d.ts +17 -0
  15. package/multi-actor-environment/ActorSpecificEnvironment.js.flow +9 -9
  16. package/multi-actor-environment/MultiActorEnvironment.d.ts +123 -0
  17. package/multi-actor-environment/MultiActorEnvironment.js.flow +22 -18
  18. package/multi-actor-environment/MultiActorEnvironmentTypes.d.ts +225 -0
  19. package/multi-actor-environment/MultiActorEnvironmentTypes.js.flow +3 -3
  20. package/multi-actor-environment/index.d.ts +14 -0
  21. package/multi-actor-environment.d.ts +8 -0
  22. package/mutations/RelayDeclarativeMutationConfig.d.ts +70 -0
  23. package/mutations/applyOptimisticMutation.d.ts +25 -0
  24. package/mutations/commitLocalUpdate.d.ts +10 -0
  25. package/mutations/commitMutation.d.ts +48 -0
  26. package/mutations/commitMutation.js.flow +1 -1
  27. package/network/RelayNetwork.d.ts +12 -0
  28. package/network/RelayNetworkTypes.d.ts +145 -0
  29. package/network/RelayNetworkTypes.js.flow +15 -15
  30. package/network/RelayObservable.d.ts +197 -0
  31. package/network/RelayObservable.js.flow +21 -21
  32. package/network/RelayQueryResponseCache.d.ts +16 -0
  33. package/package.json +1 -1
  34. package/query/GraphQLTag.d.ts +45 -0
  35. package/query/fetchQuery.d.ts +21 -0
  36. package/query/fetchQueryInternal.d.ts +26 -0
  37. package/query/fetchQueryInternal.js.flow +4 -4
  38. package/query/fetchQuery_DEPRECATED.d.ts +17 -0
  39. package/store/ClientID.d.ts +14 -0
  40. package/store/DataChecker.js.flow +8 -6
  41. package/store/NormalizationEngine.js.flow +4 -1
  42. package/store/OperationExecutor.d.ts +51 -0
  43. package/store/OperationExecutor.js.flow +33 -30
  44. package/store/RelayModernEnvironment.d.ts +97 -0
  45. package/store/RelayModernEnvironment.js.flow +21 -21
  46. package/store/RelayModernOperationDescriptor.d.ts +28 -0
  47. package/store/RelayModernRecord.d.ts +92 -0
  48. package/store/RelayModernSelector.d.ts +123 -0
  49. package/store/RelayModernStore.d.ts +57 -0
  50. package/store/RelayOperationTracker.d.ts +29 -0
  51. package/store/RelayPublishQueue.js.flow +8 -8
  52. package/store/RelayRecordSource.d.ts +26 -0
  53. package/store/RelayRecordState.d.ts +28 -0
  54. package/store/RelayResponseNormalizer.d.ts +28 -0
  55. package/store/RelayResponseNormalizer.js.flow +8 -8
  56. package/store/RelayStoreTypes.d.ts +1327 -0
  57. package/store/RelayStoreTypes.js.flow +284 -280
  58. package/store/RelayStoreUtils.d.ts +86 -0
  59. package/store/RelayStoreUtils.js.flow +2 -2
  60. package/store/ResolverFragments.d.ts +43 -0
  61. package/store/ResolverFragments.js.flow +14 -6
  62. package/store/StoreInspector.js.flow +2 -2
  63. package/store/ViewerPattern.d.ts +11 -0
  64. package/store/createFragmentSpecResolver.d.ts +16 -0
  65. package/store/defaultGetDataID.js.flow +1 -1
  66. package/store/isRelayModernEnvironment.d.ts +8 -0
  67. package/store/live-resolvers/LiveResolverCache.js.flow +1 -1
  68. package/store/live-resolvers/resolverDataInjector.d.ts +27 -0
  69. package/store/observeFragmentExperimental.d.ts +46 -0
  70. package/store/observeFragmentExperimental.js.flow +1 -1
  71. package/store/observeQueryExperimental.d.ts +30 -0
  72. package/store/readInlineData.d.ts +19 -0
  73. package/store/readInlineData.js.flow +1 -1
  74. package/store/waitForFragmentExperimental.d.ts +49 -0
  75. package/subscription/requestSubscription.d.ts +27 -0
  76. package/subscription/requestSubscription.js.flow +3 -3
  77. package/util/JSResourceTypes.flow.js.flow +4 -4
  78. package/util/NormalizationNode.d.ts +235 -0
  79. package/util/NormalizationNode.js.flow +124 -122
  80. package/util/ReaderNode.d.ts +264 -0
  81. package/util/ReaderNode.js.flow +152 -149
  82. package/util/RelayConcreteNode.d.ts +120 -0
  83. package/util/RelayConcreteNode.js.flow +31 -31
  84. package/util/RelayError.d.ts +13 -0
  85. package/util/RelayFeatureFlags.d.ts +40 -0
  86. package/util/RelayProfiler.d.ts +121 -0
  87. package/util/RelayReplaySubject.d.ts +25 -0
  88. package/util/RelayRuntimeTypes.d.ts +59 -0
  89. package/util/RelayRuntimeTypes.js.flow +33 -30
  90. package/util/createPayloadFor3DField.d.ts +17 -0
  91. package/util/createPayloadFor3DField.js.flow +4 -4
  92. package/util/deepFreeze.d.ts +8 -0
  93. package/util/getFragmentIdentifier.d.ts +10 -0
  94. package/util/getPaginationMetadata.d.ts +20 -0
  95. package/util/getPaginationVariables.d.ts +20 -0
  96. package/util/getPendingOperationsForFragment.d.ts +18 -0
  97. package/util/getRefetchMetadata.d.ts +19 -0
  98. package/util/getRelayHandleKey.d.ts +8 -0
  99. package/util/getRequestIdentifier.d.ts +17 -0
  100. package/util/getValueAtPath.d.ts +8 -0
  101. package/util/handlePotentialSnapshotErrors.d.ts +14 -0
  102. package/util/isEmptyObject.js.flow +1 -1
  103. package/util/isPromise.d.ts +8 -0
  104. package/util/isScalarAndEqual.d.ts +8 -0
  105. package/util/recycleNodesInto.d.ts +8 -0
  106. package/util/stableCopy.d.ts +8 -0
  107. package/util/withProvidedVariables.d.ts +19 -0
@@ -17,57 +17,57 @@ import type {ConcreteRequest} from './RelayConcreteNode';
17
17
  import type {JSResourceReference} from 'JSResourceReference';
18
18
 
19
19
  export type ReaderFragmentSpread = {
20
- +kind: 'FragmentSpread',
21
- +name: string,
22
- +args?: ?ReadonlyArray<ReaderArgument>,
20
+ readonly kind: 'FragmentSpread',
21
+ readonly name: string,
22
+ readonly args?: ?ReadonlyArray<ReaderArgument>,
23
23
  };
24
24
 
25
25
  export type ReaderInlineDataFragmentSpread = {
26
- +kind: 'InlineDataFragmentSpread',
27
- +name: string,
28
- +selections: ReadonlyArray<ReaderSelection>,
29
- +args?: ?ReadonlyArray<ReaderArgument>,
30
- +argumentDefinitions: ReadonlyArray<ReaderArgumentDefinition>,
26
+ readonly kind: 'InlineDataFragmentSpread',
27
+ readonly name: string,
28
+ readonly selections: ReadonlyArray<ReaderSelection>,
29
+ readonly args?: ?ReadonlyArray<ReaderArgument>,
30
+ readonly argumentDefinitions: ReadonlyArray<ReaderArgumentDefinition>,
31
31
  };
32
32
 
33
33
  export type ReaderFragment = {
34
- +kind: 'Fragment',
35
- +name: string,
36
- +type: string,
37
- +abstractKey?: ?string,
38
- +metadata?: ?{
39
- +connection?: ReadonlyArray<ConnectionMetadata>,
34
+ readonly kind: 'Fragment',
35
+ readonly name: string,
36
+ readonly type: string,
37
+ readonly abstractKey?: ?string,
38
+ readonly metadata?: ?{
39
+ readonly connection?: ReadonlyArray<ConnectionMetadata>,
40
40
  // Indicates if the fragment has been annotated with `@throwOnFieldError`
41
- +throwOnFieldError?: boolean,
41
+ readonly throwOnFieldError?: boolean,
42
42
  // Indicates if the fragment has been annotated with `@catch`
43
- +catchTo?: CatchFieldTo,
44
- +hasClientEdges?: boolean,
45
- +mask?: boolean,
46
- +plural?: boolean,
47
- +refetch?: ReaderRefetchMetadata,
48
- +vultureHash?: string,
43
+ readonly catchTo?: CatchFieldTo,
44
+ readonly hasClientEdges?: boolean,
45
+ readonly mask?: boolean,
46
+ readonly plural?: boolean,
47
+ readonly refetch?: ReaderRefetchMetadata,
48
+ readonly vultureHash?: string,
49
49
  },
50
- +argumentDefinitions: ReadonlyArray<ReaderArgumentDefinition>,
51
- +selections: ReadonlyArray<ReaderSelection>,
50
+ readonly argumentDefinitions: ReadonlyArray<ReaderArgumentDefinition>,
51
+ readonly selections: ReadonlyArray<ReaderSelection>,
52
52
  };
53
53
 
54
54
  // Marker type for a @refetchable fragment
55
55
  export type ReaderRefetchableFragment = {
56
56
  ...ReaderFragment,
57
- +metadata: {
58
- +connection?: [ConnectionMetadata],
59
- +hasClientEdges?: boolean,
60
- +refetch: ReaderRefetchMetadata,
57
+ readonly metadata: {
58
+ readonly connection?: [ConnectionMetadata],
59
+ readonly hasClientEdges?: boolean,
60
+ readonly refetch: ReaderRefetchMetadata,
61
61
  },
62
62
  };
63
63
 
64
64
  // Marker Type for a @refetchable fragment with a single use of @connection
65
65
  export type ReaderPaginationFragment = {
66
66
  ...ReaderFragment,
67
- +metadata: {
68
- +connection: [ConnectionMetadata],
69
- +hasClientEdges?: boolean,
70
- +refetch: {
67
+ readonly metadata: {
68
+ readonly connection: [ConnectionMetadata],
69
+ readonly hasClientEdges?: boolean,
70
+ readonly refetch: {
71
71
  ...ReaderRefetchMetadata,
72
72
  connection: ReaderPaginationMetadata,
73
73
  },
@@ -75,34 +75,34 @@ export type ReaderPaginationFragment = {
75
75
  };
76
76
 
77
77
  export type RefetchableIdentifierInfo = {
78
- +identifierField: string,
79
- +identifierQueryVariableName: string,
78
+ readonly identifierField: string,
79
+ readonly identifierQueryVariableName: string,
80
80
  };
81
81
 
82
82
  export type ReaderRefetchMetadata = {
83
- +connection?: ?ReaderPaginationMetadata,
84
- +operation: string | ConcreteRequest,
85
- +fragmentPathInResult: Array<string>,
86
- +identifierInfo?: ?RefetchableIdentifierInfo,
87
- +edgesFragment?: ReaderFragment,
83
+ readonly connection?: ?ReaderPaginationMetadata,
84
+ readonly operation: string | ConcreteRequest,
85
+ readonly fragmentPathInResult: Array<string>,
86
+ readonly identifierInfo?: ?RefetchableIdentifierInfo,
87
+ readonly edgesFragment?: ReaderFragment,
88
88
  };
89
89
 
90
90
  // Stricter form of ConnectionMetadata
91
91
  export type ReaderPaginationMetadata = {
92
- +backward: {
93
- +count: string,
94
- +cursor: string,
92
+ readonly backward: {
93
+ readonly count: string,
94
+ readonly cursor: string,
95
95
  } | null,
96
- +forward: {
97
- +count: string,
98
- +cursor: string,
96
+ readonly forward: {
97
+ readonly count: string,
98
+ readonly cursor: string,
99
99
  } | null,
100
- +path: ReadonlyArray<string>,
100
+ readonly path: ReadonlyArray<string>,
101
101
  };
102
102
 
103
103
  export type ReaderInlineDataFragment = {
104
- +kind: 'InlineDataFragment',
105
- +name: string,
104
+ readonly kind: 'InlineDataFragment',
105
+ readonly name: string,
106
106
  };
107
107
 
108
108
  export type ReaderArgument =
@@ -114,15 +114,15 @@ export type ReaderArgument =
114
114
  export type ReaderArgumentDefinition = ReaderLocalArgument | ReaderRootArgument;
115
115
 
116
116
  export type ReaderCondition = {
117
- +kind: 'Condition',
118
- +passingValue: boolean,
119
- +condition: string,
120
- +selections: ReadonlyArray<ReaderSelection>,
117
+ readonly kind: 'Condition',
118
+ readonly passingValue: boolean,
119
+ readonly condition: string,
120
+ readonly selections: ReadonlyArray<ReaderSelection>,
121
121
  };
122
122
 
123
123
  export type ReaderClientExtension = {
124
- +kind: 'ClientExtension',
125
- +selections: ReadonlyArray<ReaderSelection>,
124
+ readonly kind: 'ClientExtension',
125
+ readonly selections: ReadonlyArray<ReaderSelection>,
126
126
  };
127
127
 
128
128
  export type ReaderField =
@@ -132,78 +132,78 @@ export type ReaderField =
132
132
  | ReaderRelayLiveResolver;
133
133
 
134
134
  export type ReaderRootArgument = {
135
- +kind: 'RootArgument',
136
- +name: string,
135
+ readonly kind: 'RootArgument',
136
+ readonly name: string,
137
137
  };
138
138
 
139
139
  export type ReaderInlineFragment = {
140
- +kind: 'InlineFragment',
141
- +selections: ReadonlyArray<ReaderSelection>,
142
- +type: ?string,
143
- +abstractKey?: ?string,
140
+ readonly kind: 'InlineFragment',
141
+ readonly selections: ReadonlyArray<ReaderSelection>,
142
+ readonly type: ?string,
143
+ readonly abstractKey?: ?string,
144
144
  };
145
145
 
146
146
  export type ReaderAliasedInlineFragmentSpread = {
147
- +kind: 'AliasedInlineFragmentSpread',
148
- +name: string,
149
- +fragment: ReaderInlineFragment,
147
+ readonly kind: 'AliasedInlineFragmentSpread',
148
+ readonly name: string,
149
+ readonly fragment: ReaderInlineFragment,
150
150
  };
151
151
 
152
152
  export type ReaderLinkedField = {
153
- +kind: 'LinkedField',
154
- +alias?: ?string,
155
- +name: string,
156
- +storageKey?: ?string,
157
- +args?: ?ReadonlyArray<ReaderArgument>,
158
- +concreteType?: ?string,
159
- +plural: boolean,
160
- +selections: ReadonlyArray<ReaderSelection>,
153
+ readonly kind: 'LinkedField',
154
+ readonly alias?: ?string,
155
+ readonly name: string,
156
+ readonly storageKey?: ?string,
157
+ readonly args?: ?ReadonlyArray<ReaderArgument>,
158
+ readonly concreteType?: ?string,
159
+ readonly plural: boolean,
160
+ readonly selections: ReadonlyArray<ReaderSelection>,
161
161
  };
162
162
 
163
163
  export type ReaderActorChange = {
164
- +kind: 'ActorChange',
165
- +alias?: ?string,
166
- +name: string,
167
- +storageKey?: ?string,
168
- +args?: ?ReadonlyArray<ReaderArgument>,
169
- +fragmentSpread: ReaderFragmentSpread,
164
+ readonly kind: 'ActorChange',
165
+ readonly alias?: ?string,
166
+ readonly name: string,
167
+ readonly storageKey?: ?string,
168
+ readonly args?: ?ReadonlyArray<ReaderArgument>,
169
+ readonly fragmentSpread: ReaderFragmentSpread,
170
170
  };
171
171
 
172
172
  export type ReaderModuleImport = {
173
- +args?: ?ReadonlyArray<ReaderArgument>,
174
- +kind: 'ModuleImport',
175
- +documentName: string,
176
- +fragmentPropName: string,
177
- +fragmentName: string,
178
- +componentModuleProvider?: () =>
173
+ readonly args?: ?ReadonlyArray<ReaderArgument>,
174
+ readonly kind: 'ModuleImport',
175
+ readonly documentName: string,
176
+ readonly fragmentPropName: string,
177
+ readonly fragmentName: string,
178
+ readonly componentModuleProvider?: () =>
179
179
  | unknown
180
180
  | Promise<unknown>
181
181
  | JSResourceReference<unknown>,
182
182
  };
183
183
 
184
184
  export type ReaderListValueArgument = {
185
- +kind: 'ListValue',
186
- +name: string,
187
- +items: ReadonlyArray<ReaderArgument | null>,
185
+ readonly kind: 'ListValue',
186
+ readonly name: string,
187
+ readonly items: ReadonlyArray<ReaderArgument | null>,
188
188
  };
189
189
 
190
190
  export type ReaderLiteralArgument = {
191
- +kind: 'Literal',
192
- +name: string,
193
- +type?: ?string,
194
- +value: unknown,
191
+ readonly kind: 'Literal',
192
+ readonly name: string,
193
+ readonly type?: ?string,
194
+ readonly value: unknown,
195
195
  };
196
196
 
197
197
  export type ReaderLocalArgument = {
198
- +kind: 'LocalArgument',
199
- +name: string,
200
- +defaultValue: unknown,
198
+ readonly kind: 'LocalArgument',
199
+ readonly name: string,
200
+ readonly defaultValue: unknown,
201
201
  };
202
202
 
203
203
  export type ReaderObjectValueArgument = {
204
- +kind: 'ObjectValue',
205
- +name: string,
206
- +fields: ReadonlyArray<ReaderArgument>,
204
+ readonly kind: 'ObjectValue',
205
+ readonly name: string,
206
+ readonly fields: ReadonlyArray<ReaderArgument>,
207
207
  };
208
208
 
209
209
  export type ReaderNode =
@@ -213,41 +213,44 @@ export type ReaderNode =
213
213
  | ReaderInlineFragment;
214
214
 
215
215
  export type ReaderScalarField = {
216
- +kind: 'ScalarField',
217
- +alias?: ?string,
218
- +name: string,
219
- +args?: ?ReadonlyArray<ReaderArgument>,
220
- +storageKey?: ?string,
216
+ readonly kind: 'ScalarField',
217
+ readonly alias?: ?string,
218
+ readonly name: string,
219
+ readonly args?: ?ReadonlyArray<ReaderArgument>,
220
+ readonly storageKey?: ?string,
221
221
  };
222
222
 
223
223
  export type ReaderDefer = {
224
- +kind: 'Defer',
225
- +selections: ReadonlyArray<ReaderSelection>,
224
+ readonly kind: 'Defer',
225
+ readonly selections: ReadonlyArray<ReaderSelection>,
226
226
  };
227
227
 
228
228
  export type ReaderStream = {
229
- +kind: 'Stream',
230
- +selections: ReadonlyArray<ReaderSelection>,
229
+ readonly kind: 'Stream',
230
+ readonly selections: ReadonlyArray<ReaderSelection>,
231
231
  };
232
232
 
233
233
  export type RequiredFieldAction = 'NONE' | 'LOG' | 'THROW';
234
234
 
235
235
  export type ReaderRequiredField = {
236
- +kind: 'RequiredField',
237
- +field: ReaderField | ReaderClientEdge,
238
- +action: RequiredFieldAction,
236
+ readonly kind: 'RequiredField',
237
+ readonly field: ReaderField | ReaderClientEdge,
238
+ readonly action: RequiredFieldAction,
239
239
  // TODO: This field is not used any more, we should be able to remove it.
240
- +path?: unknown,
240
+ readonly path?: unknown,
241
241
  };
242
242
 
243
243
  export type CatchFieldTo = 'RESULT' | 'NULL';
244
244
 
245
245
  export type ReaderCatchField = {
246
- +kind: 'CatchField',
247
- +field: ReaderField | ReaderClientEdge | ReaderAliasedInlineFragmentSpread,
248
- +to: CatchFieldTo,
246
+ readonly kind: 'CatchField',
247
+ readonly field:
248
+ | ReaderField
249
+ | ReaderClientEdge
250
+ | ReaderAliasedInlineFragmentSpread,
251
+ readonly to: CatchFieldTo,
249
252
  // TODO: This field is not used any more, we should be able to remove it.
250
- +path?: unknown,
253
+ readonly path?: unknown,
251
254
  };
252
255
 
253
256
  export type ResolverFunction = (...args: Array<any>) => unknown; // flowlint-line unclear-type:off
@@ -259,59 +262,59 @@ export type ResolverNormalizationInfo =
259
262
  | ResolverWeakModelNormalizationInfo;
260
263
 
261
264
  export type ResolverOutputTypeNormalizationInfo = {
262
- +kind: 'OutputType',
263
- +concreteType: string | null,
264
- +plural: boolean,
265
- +normalizationNode: NormalizationSelectableNode,
265
+ readonly kind: 'OutputType',
266
+ readonly concreteType: string | null,
267
+ readonly plural: boolean,
268
+ readonly normalizationNode: NormalizationSelectableNode,
266
269
  };
267
270
 
268
271
  export type ResolverWeakModelNormalizationInfo = {
269
- +kind: 'WeakModel',
270
- +concreteType: string | null,
271
- +plural: boolean,
272
+ readonly kind: 'WeakModel',
273
+ readonly concreteType: string | null,
274
+ readonly plural: boolean,
272
275
  };
273
276
 
274
277
  export type ReaderRelayResolver = {
275
- +kind: 'RelayResolver',
276
- +alias?: ?string,
277
- +name: string,
278
- +args?: ?ReadonlyArray<ReaderArgument>,
279
- +fragment?: ?ReaderFragmentSpread,
280
- +path: string,
281
- +resolverModule: ResolverModule,
282
- +normalizationInfo?: ResolverNormalizationInfo,
278
+ readonly kind: 'RelayResolver',
279
+ readonly alias?: ?string,
280
+ readonly name: string,
281
+ readonly args?: ?ReadonlyArray<ReaderArgument>,
282
+ readonly fragment?: ?ReaderFragmentSpread,
283
+ readonly path: string,
284
+ readonly resolverModule: ResolverModule,
285
+ readonly normalizationInfo?: ResolverNormalizationInfo,
283
286
  };
284
287
 
285
288
  export type ReaderRelayLiveResolver = {
286
- +kind: 'RelayLiveResolver',
287
- +alias?: ?string,
288
- +name: string,
289
- +args?: ?ReadonlyArray<ReaderArgument>,
290
- +fragment?: ?ReaderFragmentSpread,
291
- +path: string,
292
- +resolverModule: ResolverModule,
293
- +normalizationInfo?: ResolverNormalizationInfo,
289
+ readonly kind: 'RelayLiveResolver',
290
+ readonly alias?: ?string,
291
+ readonly name: string,
292
+ readonly args?: ?ReadonlyArray<ReaderArgument>,
293
+ readonly fragment?: ?ReaderFragmentSpread,
294
+ readonly path: string,
295
+ readonly resolverModule: ResolverModule,
296
+ readonly normalizationInfo?: ResolverNormalizationInfo,
294
297
  };
295
298
 
296
299
  export type ReaderClientEdgeToClientObject = {
297
- +kind: 'ClientEdgeToClientObject',
298
- +concreteType: string | null,
299
- +modelResolvers: {
300
+ readonly kind: 'ClientEdgeToClientObject',
301
+ readonly concreteType: string | null,
302
+ readonly modelResolvers: {
300
303
  [string]: ReaderRelayResolver | ReaderRelayLiveResolver,
301
304
  } | null,
302
- +serverObjectOperations?: {[string]: ConcreteRequest} | null,
303
- +linkedField: ReaderLinkedField,
304
- +backingField:
305
+ readonly serverObjectOperations?: {[string]: ConcreteRequest} | null,
306
+ readonly linkedField: ReaderLinkedField,
307
+ readonly backingField:
305
308
  | ReaderRelayResolver
306
309
  | ReaderRelayLiveResolver
307
310
  | ReaderClientExtension,
308
311
  };
309
312
 
310
313
  export type ReaderClientEdgeToServerObject = {
311
- +kind: 'ClientEdgeToServerObject',
312
- +linkedField: ReaderLinkedField,
313
- +operation: ConcreteRequest,
314
- +backingField:
314
+ readonly kind: 'ClientEdgeToServerObject',
315
+ readonly linkedField: ReaderLinkedField,
316
+ readonly operation: ConcreteRequest,
317
+ readonly backingField:
315
318
  | ReaderRelayResolver
316
319
  | ReaderRelayLiveResolver
317
320
  | ReaderClientExtension,
@@ -339,8 +342,8 @@ export type ReaderSelection =
339
342
  | ReaderRelayResolver;
340
343
 
341
344
  export type ReaderVariableArgument = {
342
- +kind: 'Variable',
343
- +name: string,
344
- +type?: ?string,
345
- +variableName: string,
345
+ readonly kind: 'Variable',
346
+ readonly name: string,
347
+ readonly type?: ?string,
348
+ readonly variableName: string,
346
349
  };
@@ -0,0 +1,120 @@
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 {NormalizationOperation, NormalizationSplitOperation} from './NormalizationNode';
9
+ import {ReaderFragment, ReaderInlineDataFragment} from './ReaderNode';
10
+ import { OperationType } from './RelayRuntimeTypes';
11
+
12
+ /**
13
+ * Represents a common GraphQL request that can be executed, an `operation`
14
+ * containing information to normalize the results, and a `fragment` derived
15
+ * from that operation to read the response data (masking data from child
16
+ * fragments).
17
+ */
18
+ export interface ConcreteRequest {
19
+ readonly kind: 'Request';
20
+ readonly fragment: ReaderFragment;
21
+ readonly operation: NormalizationOperation;
22
+ readonly params: RequestParameters;
23
+ }
24
+
25
+ /**
26
+ * Represents the minimal information necessary to identify and execute
27
+ * a particular GraphQL request.
28
+ */
29
+ // Note: the phantom type parameter here helps ensures that the
30
+ // $Parameters.js value matches the type param provided to preloadQuery.
31
+ export interface PreloadableConcreteRequest<_TQuery extends OperationType> {
32
+ readonly kind: 'PreloadableConcreteRequest';
33
+ readonly params: RequestParameters;
34
+ }
35
+
36
+ export interface ConcreteUpdatableQuery {
37
+ readonly kind: 'UpdatableQuery';
38
+ readonly fragment: ReaderFragment;
39
+ }
40
+
41
+ /**
42
+ * Contains the parameters required for executing a GraphQL request.
43
+ * The operation can either be provided as a persisted `id` or `text`. If given
44
+ * in `text` format, a `cacheID` as a hash of the text should be set to be used
45
+ * for local caching.
46
+ */
47
+ export type RequestParameters =
48
+ | {
49
+ readonly id: string;
50
+ readonly text: null;
51
+ // common fields
52
+ readonly name: string;
53
+ readonly operationKind: 'mutation' | 'query' | 'subscription';
54
+ readonly providedVariables?: ProvidedVariablesType;
55
+ readonly metadata: { [key: string]: unknown };
56
+ }
57
+ | {
58
+ readonly cacheID: string;
59
+ readonly id: null;
60
+ readonly text: string | null;
61
+ // common fields
62
+ readonly name: string;
63
+ readonly operationKind: 'mutation' | 'query' | 'subscription';
64
+ readonly providedVariables?: ProvidedVariablesType;
65
+ readonly metadata: { [key: string]: unknown };
66
+ };
67
+
68
+ export type GeneratedNode =
69
+ | ConcreteRequest
70
+ | ReaderFragment
71
+ | ReaderInlineDataFragment
72
+ | NormalizationSplitOperation
73
+ | ConcreteUpdatableQuery;
74
+
75
+ export const RelayConcreteNode: {
76
+ ACTOR_CHANGE: 'ActorChange';
77
+ CONDITION: 'Condition';
78
+ CLIENT_COMPONENT: 'ClientComponent';
79
+ CLIENT_EDGE_TO_SERVER_OBJECT: 'ClientEdgeToServerObject';
80
+ CLIENT_EDGE_TO_CLIENT_OBJECT: 'ClientEdgeToClientObject';
81
+ CLIENT_EXTENSION: 'ClientExtension';
82
+ DEFER: 'Defer';
83
+ CONNECTION: 'Connection';
84
+ FLIGHT_FIELD: 'FlightField';
85
+ FRAGMENT: 'Fragment';
86
+ FRAGMENT_SPREAD: 'FragmentSpread';
87
+ INLINE_DATA_FRAGMENT_SPREAD: 'InlineDataFragmentSpread';
88
+ INLINE_DATA_FRAGMENT: 'InlineDataFragment';
89
+ INLINE_FRAGMENT: 'InlineFragment';
90
+ LINKED_FIELD: 'LinkedField';
91
+ LINKED_HANDLE: 'LinkedHandle';
92
+ LITERAL: 'Literal';
93
+ LIST_VALUE: 'ListValue';
94
+ LOCAL_ARGUMENT: 'LocalArgument';
95
+ MODULE_IMPORT: 'ModuleImport';
96
+ ALIASED_FRAGMENT_SPREAD: 'AliasedFragmentSpread';
97
+ ALIASED_INLINE_FRAGMENT_SPREAD: 'AliasedInlineFragmentSpread';
98
+ RELAY_RESOLVER: 'RelayResolver';
99
+ RELAY_LIVE_RESOLVER: 'RelayLiveResolver';
100
+ REQUIRED_FIELD: 'RequiredField';
101
+ OBJECT_VALUE: 'ObjectValue';
102
+ OPERATION: 'Operation';
103
+ REQUEST: 'Request';
104
+ ROOT_ARGUMENT: 'RootArgument';
105
+ SCALAR_FIELD: 'ScalarField';
106
+ SCALAR_HANDLE: 'ScalarHandle';
107
+ SPLIT_OPERATION: 'SplitOperation';
108
+ STREAM: 'Stream';
109
+ TYPE_DISCRIMINATOR: 'TypeDiscriminator';
110
+ UPDATABLE_QUERY: 'UpdatableQuery';
111
+ VARIABLE: 'Variable';
112
+ };
113
+
114
+ export interface ProvidedVariablesType {
115
+ readonly [key: string]: { get(): unknown };
116
+ }
117
+
118
+ export interface ProvidedVariableType {
119
+ get(): unknown;
120
+ }
@@ -24,15 +24,15 @@ import type {ReaderFragment, ReaderInlineDataFragment} from './ReaderNode';
24
24
  * fragments).
25
25
  */
26
26
  export type ConcreteRequest = {
27
- +kind: 'Request',
28
- +fragment: ReaderFragment,
29
- +operation: NormalizationOperation,
30
- +params: RequestParameters,
27
+ readonly kind: 'Request',
28
+ readonly fragment: ReaderFragment,
29
+ readonly operation: NormalizationOperation,
30
+ readonly params: RequestParameters,
31
31
  };
32
32
 
33
33
  export type ConcreteUpdatableQuery = {
34
- +kind: 'UpdatableQuery',
35
- +fragment: ReaderFragment,
34
+ readonly kind: 'UpdatableQuery',
35
+ readonly fragment: ReaderFragment,
36
36
  };
37
37
 
38
38
  export type NormalizationRootNode =
@@ -41,7 +41,7 @@ export type NormalizationRootNode =
41
41
 
42
42
  export type ProvidedVariableType = {get(): unknown};
43
43
 
44
- export type ProvidedVariablesType = {+[key: string]: {get(): unknown}};
44
+ export type ProvidedVariablesType = {readonly [key: string]: {get(): unknown}};
45
45
 
46
46
  /**
47
47
  * Contains the parameters required for executing a GraphQL request.
@@ -51,41 +51,41 @@ export type ProvidedVariablesType = {+[key: string]: {get(): unknown}};
51
51
  */
52
52
  export type RequestParameters =
53
53
  | {
54
- +id: string,
55
- +text: string | null,
54
+ readonly id: string,
55
+ readonly text: string | null,
56
56
  // common fields
57
- +name: string,
58
- +operationKind: 'mutation' | 'query' | 'subscription',
59
- +providedVariables?: ProvidedVariablesType,
60
- +metadata: {[key: string]: unknown, ...},
57
+ readonly name: string,
58
+ readonly operationKind: 'mutation' | 'query' | 'subscription',
59
+ readonly providedVariables?: ProvidedVariablesType,
60
+ readonly metadata: {[key: string]: unknown, ...},
61
61
  }
62
62
  | {
63
- +cacheID: string,
64
- +id: null,
65
- +text: string | null,
63
+ readonly cacheID: string,
64
+ readonly id: null,
65
+ readonly text: string | null,
66
66
  // common fields
67
- +name: string,
68
- +operationKind: 'mutation' | 'query' | 'subscription',
69
- +providedVariables?: ProvidedVariablesType,
70
- +metadata: {[key: string]: unknown, ...},
67
+ readonly name: string,
68
+ readonly operationKind: 'mutation' | 'query' | 'subscription',
69
+ readonly providedVariables?: ProvidedVariablesType,
70
+ readonly metadata: {[key: string]: unknown, ...},
71
71
  };
72
72
 
73
73
  export type ClientRequestParameters = {
74
- +cacheID: string,
75
- +id: null,
76
- +text: null,
74
+ readonly cacheID: string,
75
+ readonly id: null,
76
+ readonly text: null,
77
77
  // common fields
78
- +name: string,
79
- +operationKind: 'query' | 'mutation',
80
- +providedVariables?: ProvidedVariablesType,
81
- +metadata: {[key: string]: unknown, ...},
78
+ readonly name: string,
79
+ readonly operationKind: 'query' | 'mutation',
80
+ readonly providedVariables?: ProvidedVariablesType,
81
+ readonly metadata: {[key: string]: unknown, ...},
82
82
  };
83
83
 
84
84
  export type ClientRequest = {
85
- +kind: 'Request',
86
- +fragment: ReaderFragment,
87
- +operation: NormalizationOperation,
88
- +params: ClientRequestParameters,
85
+ readonly kind: 'Request',
86
+ readonly fragment: ReaderFragment,
87
+ readonly operation: NormalizationOperation,
88
+ readonly params: ClientRequestParameters,
89
89
  };
90
90
 
91
91
  export type GeneratedNode =
@@ -0,0 +1,13 @@
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
+ declare const RelayError: {
9
+ create(name: string, messageFormat: string, ...messageParams: Array<string | number | boolean>): Error;
10
+ createWarning(name: string, messageFormat: string, ...messageParams: Array<string | number | boolean>): Error;
11
+ };
12
+
13
+ export default RelayError;