relay-compiler 16.2.0 → 18.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4704 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "ConfigFile",
4
+ "anyOf": [
5
+ {
6
+ "description": "Base case configuration (mostly of OSS) where the project have single schema, and single source directory",
7
+ "type": "object",
8
+ "required": [
9
+ "language"
10
+ ],
11
+ "properties": {
12
+ "$schema": {
13
+ "description": "The user may hard-code the JSON Schema for their version of the config.",
14
+ "default": null,
15
+ "type": [
16
+ "string",
17
+ "null"
18
+ ]
19
+ },
20
+ "artifactDirectory": {
21
+ "description": "A specific directory to output all artifacts to. When enabling this the babel plugin needs `artifactDirectory` set as well.",
22
+ "default": null,
23
+ "type": [
24
+ "string",
25
+ "null"
26
+ ]
27
+ },
28
+ "codegenCommand": {
29
+ "description": "Name of the command that runs the relay compiler",
30
+ "default": null,
31
+ "type": [
32
+ "string",
33
+ "null"
34
+ ]
35
+ },
36
+ "customErrorType": {
37
+ "description": "A map from GraphQL error name to import path, example: {\"name:: \"MyErrorName\", \"path\": \"../src/MyError\"}",
38
+ "type": [
39
+ "object",
40
+ "null"
41
+ ],
42
+ "required": [
43
+ "name",
44
+ "path"
45
+ ],
46
+ "properties": {
47
+ "name": {
48
+ "type": "string"
49
+ },
50
+ "path": {
51
+ "type": "string"
52
+ }
53
+ }
54
+ },
55
+ "customScalarTypes": {
56
+ "description": "A map from GraphQL scalar types to a custom JS type, example: { \"Url\": \"String\" } { \"Url\": {\"name:: \"MyURL\", \"path\": \"../src/MyUrlTypes\"} }",
57
+ "default": {},
58
+ "type": "object",
59
+ "additionalProperties": {
60
+ "anyOf": [
61
+ {
62
+ "type": "string"
63
+ },
64
+ {
65
+ "type": "object",
66
+ "required": [
67
+ "name",
68
+ "path"
69
+ ],
70
+ "properties": {
71
+ "name": {
72
+ "type": "string"
73
+ },
74
+ "path": {
75
+ "type": "string"
76
+ }
77
+ }
78
+ }
79
+ ]
80
+ }
81
+ },
82
+ "eagerEsModules": {
83
+ "description": "This option enables emitting es modules artifacts.",
84
+ "default": false,
85
+ "type": "boolean"
86
+ },
87
+ "enumModuleSuffix": {
88
+ "title": "For Flow type generation",
89
+ "description": "When set, enum values are imported from a module with this suffix. For example, an enum Foo and this property set to \".test\" would be imported from \"Foo.test\". Note: an empty string is allowed and different from not setting the value, in the example above it would just import from \"Foo\".",
90
+ "type": [
91
+ "string",
92
+ "null"
93
+ ]
94
+ },
95
+ "excludes": {
96
+ "description": "Directories to ignore under src default: ['**/node_modules/**', '**/__mocks__/**', '**/__generated__/**'],",
97
+ "default": [
98
+ "**/node_modules/**",
99
+ "**/__mocks__/**",
100
+ "**/__generated__/**"
101
+ ],
102
+ "type": "array",
103
+ "items": {
104
+ "type": "string"
105
+ }
106
+ },
107
+ "featureFlags": {
108
+ "default": null,
109
+ "type": [
110
+ "object",
111
+ "null"
112
+ ],
113
+ "properties": {
114
+ "actor_change_support": {
115
+ "default": {
116
+ "kind": "disabled"
117
+ },
118
+ "oneOf": [
119
+ {
120
+ "description": "Fully disabled: developers may not use this feature",
121
+ "type": "object",
122
+ "required": [
123
+ "kind"
124
+ ],
125
+ "properties": {
126
+ "kind": {
127
+ "type": "string",
128
+ "enum": [
129
+ "disabled"
130
+ ]
131
+ }
132
+ }
133
+ },
134
+ {
135
+ "description": "Fully enabled: developers may use this feature",
136
+ "type": "object",
137
+ "required": [
138
+ "kind"
139
+ ],
140
+ "properties": {
141
+ "kind": {
142
+ "type": "string",
143
+ "enum": [
144
+ "enabled"
145
+ ]
146
+ }
147
+ }
148
+ },
149
+ {
150
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
151
+ "type": "object",
152
+ "required": [
153
+ "allowlist",
154
+ "kind"
155
+ ],
156
+ "properties": {
157
+ "allowlist": {
158
+ "type": "array",
159
+ "items": {
160
+ "type": "string"
161
+ },
162
+ "uniqueItems": true
163
+ },
164
+ "kind": {
165
+ "type": "string",
166
+ "enum": [
167
+ "limited"
168
+ ]
169
+ }
170
+ }
171
+ },
172
+ {
173
+ "description": "Partially enabled: used for gradual rollout of the feature",
174
+ "type": "object",
175
+ "required": [
176
+ "kind",
177
+ "rollout"
178
+ ],
179
+ "properties": {
180
+ "kind": {
181
+ "type": "string",
182
+ "enum": [
183
+ "rollout"
184
+ ]
185
+ },
186
+ "rollout": {
187
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
188
+ "type": [
189
+ "integer",
190
+ "null"
191
+ ],
192
+ "format": "uint8",
193
+ "minimum": 0.0
194
+ }
195
+ }
196
+ }
197
+ ]
198
+ },
199
+ "allow_required_in_mutation_response": {
200
+ "description": "@required with an action of THROW is read-time feature that is not compatible with our mutation APIs. We are in the process of removing any existing examples, but this flag is part of a process of removing any existing examples.",
201
+ "default": {
202
+ "kind": "disabled"
203
+ },
204
+ "oneOf": [
205
+ {
206
+ "description": "Fully disabled: developers may not use this feature",
207
+ "type": "object",
208
+ "required": [
209
+ "kind"
210
+ ],
211
+ "properties": {
212
+ "kind": {
213
+ "type": "string",
214
+ "enum": [
215
+ "disabled"
216
+ ]
217
+ }
218
+ }
219
+ },
220
+ {
221
+ "description": "Fully enabled: developers may use this feature",
222
+ "type": "object",
223
+ "required": [
224
+ "kind"
225
+ ],
226
+ "properties": {
227
+ "kind": {
228
+ "type": "string",
229
+ "enum": [
230
+ "enabled"
231
+ ]
232
+ }
233
+ }
234
+ },
235
+ {
236
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
237
+ "type": "object",
238
+ "required": [
239
+ "allowlist",
240
+ "kind"
241
+ ],
242
+ "properties": {
243
+ "allowlist": {
244
+ "type": "array",
245
+ "items": {
246
+ "type": "string"
247
+ },
248
+ "uniqueItems": true
249
+ },
250
+ "kind": {
251
+ "type": "string",
252
+ "enum": [
253
+ "limited"
254
+ ]
255
+ }
256
+ }
257
+ },
258
+ {
259
+ "description": "Partially enabled: used for gradual rollout of the feature",
260
+ "type": "object",
261
+ "required": [
262
+ "kind",
263
+ "rollout"
264
+ ],
265
+ "properties": {
266
+ "kind": {
267
+ "type": "string",
268
+ "enum": [
269
+ "rollout"
270
+ ]
271
+ },
272
+ "rollout": {
273
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
274
+ "type": [
275
+ "integer",
276
+ "null"
277
+ ],
278
+ "format": "uint8",
279
+ "minimum": 0.0
280
+ }
281
+ }
282
+ }
283
+ ]
284
+ },
285
+ "allow_resolver_non_nullable_return_type": {
286
+ "description": "Allow non-nullable return types from resolvers.",
287
+ "default": {
288
+ "kind": "disabled"
289
+ },
290
+ "oneOf": [
291
+ {
292
+ "description": "Fully disabled: developers may not use this feature",
293
+ "type": "object",
294
+ "required": [
295
+ "kind"
296
+ ],
297
+ "properties": {
298
+ "kind": {
299
+ "type": "string",
300
+ "enum": [
301
+ "disabled"
302
+ ]
303
+ }
304
+ }
305
+ },
306
+ {
307
+ "description": "Fully enabled: developers may use this feature",
308
+ "type": "object",
309
+ "required": [
310
+ "kind"
311
+ ],
312
+ "properties": {
313
+ "kind": {
314
+ "type": "string",
315
+ "enum": [
316
+ "enabled"
317
+ ]
318
+ }
319
+ }
320
+ },
321
+ {
322
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
323
+ "type": "object",
324
+ "required": [
325
+ "allowlist",
326
+ "kind"
327
+ ],
328
+ "properties": {
329
+ "allowlist": {
330
+ "type": "array",
331
+ "items": {
332
+ "type": "string"
333
+ },
334
+ "uniqueItems": true
335
+ },
336
+ "kind": {
337
+ "type": "string",
338
+ "enum": [
339
+ "limited"
340
+ ]
341
+ }
342
+ }
343
+ },
344
+ {
345
+ "description": "Partially enabled: used for gradual rollout of the feature",
346
+ "type": "object",
347
+ "required": [
348
+ "kind",
349
+ "rollout"
350
+ ],
351
+ "properties": {
352
+ "kind": {
353
+ "type": "string",
354
+ "enum": [
355
+ "rollout"
356
+ ]
357
+ },
358
+ "rollout": {
359
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
360
+ "type": [
361
+ "integer",
362
+ "null"
363
+ ],
364
+ "format": "uint8",
365
+ "minimum": 0.0
366
+ }
367
+ }
368
+ }
369
+ ]
370
+ },
371
+ "allow_resolvers_in_mutation_response": {
372
+ "description": "Relay Resolvers are a read-time feature that are not actually handled in our mutation APIs. We are in the process of removing any existing examples, but this flag is part of a process of removing any existing examples.",
373
+ "default": {
374
+ "kind": "disabled"
375
+ },
376
+ "oneOf": [
377
+ {
378
+ "description": "Fully disabled: developers may not use this feature",
379
+ "type": "object",
380
+ "required": [
381
+ "kind"
382
+ ],
383
+ "properties": {
384
+ "kind": {
385
+ "type": "string",
386
+ "enum": [
387
+ "disabled"
388
+ ]
389
+ }
390
+ }
391
+ },
392
+ {
393
+ "description": "Fully enabled: developers may use this feature",
394
+ "type": "object",
395
+ "required": [
396
+ "kind"
397
+ ],
398
+ "properties": {
399
+ "kind": {
400
+ "type": "string",
401
+ "enum": [
402
+ "enabled"
403
+ ]
404
+ }
405
+ }
406
+ },
407
+ {
408
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
409
+ "type": "object",
410
+ "required": [
411
+ "allowlist",
412
+ "kind"
413
+ ],
414
+ "properties": {
415
+ "allowlist": {
416
+ "type": "array",
417
+ "items": {
418
+ "type": "string"
419
+ },
420
+ "uniqueItems": true
421
+ },
422
+ "kind": {
423
+ "type": "string",
424
+ "enum": [
425
+ "limited"
426
+ ]
427
+ }
428
+ }
429
+ },
430
+ {
431
+ "description": "Partially enabled: used for gradual rollout of the feature",
432
+ "type": "object",
433
+ "required": [
434
+ "kind",
435
+ "rollout"
436
+ ],
437
+ "properties": {
438
+ "kind": {
439
+ "type": "string",
440
+ "enum": [
441
+ "rollout"
442
+ ]
443
+ },
444
+ "rollout": {
445
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
446
+ "type": [
447
+ "integer",
448
+ "null"
449
+ ],
450
+ "format": "uint8",
451
+ "minimum": 0.0
452
+ }
453
+ }
454
+ }
455
+ ]
456
+ },
457
+ "compact_query_text": {
458
+ "description": "Print queries in compact form",
459
+ "default": {
460
+ "kind": "disabled"
461
+ },
462
+ "oneOf": [
463
+ {
464
+ "description": "Fully disabled: developers may not use this feature",
465
+ "type": "object",
466
+ "required": [
467
+ "kind"
468
+ ],
469
+ "properties": {
470
+ "kind": {
471
+ "type": "string",
472
+ "enum": [
473
+ "disabled"
474
+ ]
475
+ }
476
+ }
477
+ },
478
+ {
479
+ "description": "Fully enabled: developers may use this feature",
480
+ "type": "object",
481
+ "required": [
482
+ "kind"
483
+ ],
484
+ "properties": {
485
+ "kind": {
486
+ "type": "string",
487
+ "enum": [
488
+ "enabled"
489
+ ]
490
+ }
491
+ }
492
+ },
493
+ {
494
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
495
+ "type": "object",
496
+ "required": [
497
+ "allowlist",
498
+ "kind"
499
+ ],
500
+ "properties": {
501
+ "allowlist": {
502
+ "type": "array",
503
+ "items": {
504
+ "type": "string"
505
+ },
506
+ "uniqueItems": true
507
+ },
508
+ "kind": {
509
+ "type": "string",
510
+ "enum": [
511
+ "limited"
512
+ ]
513
+ }
514
+ }
515
+ },
516
+ {
517
+ "description": "Partially enabled: used for gradual rollout of the feature",
518
+ "type": "object",
519
+ "required": [
520
+ "kind",
521
+ "rollout"
522
+ ],
523
+ "properties": {
524
+ "kind": {
525
+ "type": "string",
526
+ "enum": [
527
+ "rollout"
528
+ ]
529
+ },
530
+ "rollout": {
531
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
532
+ "type": [
533
+ "integer",
534
+ "null"
535
+ ],
536
+ "format": "uint8",
537
+ "minimum": 0.0
538
+ }
539
+ }
540
+ }
541
+ ]
542
+ },
543
+ "disable_edge_type_name_validation_on_declerative_connection_directives": {
544
+ "description": "Disable validation of the `edgeTypeName` argument on `@prependNode` and `@appendNode`.",
545
+ "default": {
546
+ "kind": "disabled"
547
+ },
548
+ "oneOf": [
549
+ {
550
+ "description": "Fully disabled: developers may not use this feature",
551
+ "type": "object",
552
+ "required": [
553
+ "kind"
554
+ ],
555
+ "properties": {
556
+ "kind": {
557
+ "type": "string",
558
+ "enum": [
559
+ "disabled"
560
+ ]
561
+ }
562
+ }
563
+ },
564
+ {
565
+ "description": "Fully enabled: developers may use this feature",
566
+ "type": "object",
567
+ "required": [
568
+ "kind"
569
+ ],
570
+ "properties": {
571
+ "kind": {
572
+ "type": "string",
573
+ "enum": [
574
+ "enabled"
575
+ ]
576
+ }
577
+ }
578
+ },
579
+ {
580
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
581
+ "type": "object",
582
+ "required": [
583
+ "allowlist",
584
+ "kind"
585
+ ],
586
+ "properties": {
587
+ "allowlist": {
588
+ "type": "array",
589
+ "items": {
590
+ "type": "string"
591
+ },
592
+ "uniqueItems": true
593
+ },
594
+ "kind": {
595
+ "type": "string",
596
+ "enum": [
597
+ "limited"
598
+ ]
599
+ }
600
+ }
601
+ },
602
+ {
603
+ "description": "Partially enabled: used for gradual rollout of the feature",
604
+ "type": "object",
605
+ "required": [
606
+ "kind",
607
+ "rollout"
608
+ ],
609
+ "properties": {
610
+ "kind": {
611
+ "type": "string",
612
+ "enum": [
613
+ "rollout"
614
+ ]
615
+ },
616
+ "rollout": {
617
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
618
+ "type": [
619
+ "integer",
620
+ "null"
621
+ ],
622
+ "format": "uint8",
623
+ "minimum": 0.0
624
+ }
625
+ }
626
+ }
627
+ ]
628
+ },
629
+ "disable_full_argument_type_validation": {
630
+ "description": "Disable full GraphQL argument type validation. Historically, we only applied argument type validation to the query that was actually going to be persisted and sent to the server. This meant that we didn't typecheck arguments passed to Relay Resolvers or Client Schema Extensions.\n\nWe also permitted an escape hatch of `uncheckedArguments_DEPRECATED` for defining fragment arguments which were not typechecked.\n\nWe no-longer support `uncheckedArguments_DEPRECATED`, and we typecheck both client and server arguments. This flag allows you to opt out of this new behavior to enable gradual adoption of the new validations.\n\nThis flag will be removed in a future version of Relay.",
631
+ "default": {
632
+ "kind": "disabled"
633
+ },
634
+ "oneOf": [
635
+ {
636
+ "description": "Fully disabled: developers may not use this feature",
637
+ "type": "object",
638
+ "required": [
639
+ "kind"
640
+ ],
641
+ "properties": {
642
+ "kind": {
643
+ "type": "string",
644
+ "enum": [
645
+ "disabled"
646
+ ]
647
+ }
648
+ }
649
+ },
650
+ {
651
+ "description": "Fully enabled: developers may use this feature",
652
+ "type": "object",
653
+ "required": [
654
+ "kind"
655
+ ],
656
+ "properties": {
657
+ "kind": {
658
+ "type": "string",
659
+ "enum": [
660
+ "enabled"
661
+ ]
662
+ }
663
+ }
664
+ },
665
+ {
666
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
667
+ "type": "object",
668
+ "required": [
669
+ "allowlist",
670
+ "kind"
671
+ ],
672
+ "properties": {
673
+ "allowlist": {
674
+ "type": "array",
675
+ "items": {
676
+ "type": "string"
677
+ },
678
+ "uniqueItems": true
679
+ },
680
+ "kind": {
681
+ "type": "string",
682
+ "enum": [
683
+ "limited"
684
+ ]
685
+ }
686
+ }
687
+ },
688
+ {
689
+ "description": "Partially enabled: used for gradual rollout of the feature",
690
+ "type": "object",
691
+ "required": [
692
+ "kind",
693
+ "rollout"
694
+ ],
695
+ "properties": {
696
+ "kind": {
697
+ "type": "string",
698
+ "enum": [
699
+ "rollout"
700
+ ]
701
+ },
702
+ "rollout": {
703
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
704
+ "type": [
705
+ "integer",
706
+ "null"
707
+ ],
708
+ "format": "uint8",
709
+ "minimum": 0.0
710
+ }
711
+ }
712
+ }
713
+ ]
714
+ },
715
+ "disable_resolver_reader_ast": {
716
+ "description": "Mirror of `enable_resolver_normalization_ast` excludes resolver metadata from reader ast",
717
+ "default": false,
718
+ "type": "boolean"
719
+ },
720
+ "disable_schema_validation": {
721
+ "description": "Disable validating the composite schema (server, client schema extensions, Relay Resolvers) after its built.",
722
+ "default": false,
723
+ "type": "boolean"
724
+ },
725
+ "enable_3d_branch_arg_generation": {
726
+ "default": false,
727
+ "type": "boolean"
728
+ },
729
+ "enable_exec_time_resolvers_directive": {
730
+ "description": "Allow per-query opt in to normalization AST for Resolvers with exec_time_resolvers directive. In contrast to enable_resolver_normalization_ast, if this is true, a normalization AST can be generated for a query using the @exec_time_resolvers directive",
731
+ "default": false,
732
+ "type": "boolean"
733
+ },
734
+ "enable_fragment_argument_transform": {
735
+ "description": "Add support for parsing and transforming variable definitions on fragment definitions and arguments on fragment spreads.",
736
+ "default": false,
737
+ "type": "boolean"
738
+ },
739
+ "enable_relay_resolver_mutations": {
740
+ "description": "Allow relay resolvers to extend the Mutation type",
741
+ "default": false,
742
+ "type": "boolean"
743
+ },
744
+ "enable_relay_resolver_transform": {
745
+ "default": false,
746
+ "type": "boolean"
747
+ },
748
+ "enable_resolver_normalization_ast": {
749
+ "description": "Fully build the normalization AST for Resolvers",
750
+ "default": false,
751
+ "type": "boolean"
752
+ },
753
+ "enable_strict_custom_scalars": {
754
+ "description": "Perform strict validations when custom scalar types are used",
755
+ "default": false,
756
+ "type": "boolean"
757
+ },
758
+ "enforce_fragment_alias_where_ambiguous": {
759
+ "description": "Enforce that you must add `@alias` to a fragment if it may not match, due to type mismatch or `@skip`/`@include`",
760
+ "default": {
761
+ "kind": "disabled"
762
+ },
763
+ "oneOf": [
764
+ {
765
+ "description": "Fully disabled: developers may not use this feature",
766
+ "type": "object",
767
+ "required": [
768
+ "kind"
769
+ ],
770
+ "properties": {
771
+ "kind": {
772
+ "type": "string",
773
+ "enum": [
774
+ "disabled"
775
+ ]
776
+ }
777
+ }
778
+ },
779
+ {
780
+ "description": "Fully enabled: developers may use this feature",
781
+ "type": "object",
782
+ "required": [
783
+ "kind"
784
+ ],
785
+ "properties": {
786
+ "kind": {
787
+ "type": "string",
788
+ "enum": [
789
+ "enabled"
790
+ ]
791
+ }
792
+ }
793
+ },
794
+ {
795
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
796
+ "type": "object",
797
+ "required": [
798
+ "allowlist",
799
+ "kind"
800
+ ],
801
+ "properties": {
802
+ "allowlist": {
803
+ "type": "array",
804
+ "items": {
805
+ "type": "string"
806
+ },
807
+ "uniqueItems": true
808
+ },
809
+ "kind": {
810
+ "type": "string",
811
+ "enum": [
812
+ "limited"
813
+ ]
814
+ }
815
+ }
816
+ },
817
+ {
818
+ "description": "Partially enabled: used for gradual rollout of the feature",
819
+ "type": "object",
820
+ "required": [
821
+ "kind",
822
+ "rollout"
823
+ ],
824
+ "properties": {
825
+ "kind": {
826
+ "type": "string",
827
+ "enum": [
828
+ "rollout"
829
+ ]
830
+ },
831
+ "rollout": {
832
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
833
+ "type": [
834
+ "integer",
835
+ "null"
836
+ ],
837
+ "format": "uint8",
838
+ "minimum": 0.0
839
+ }
840
+ }
841
+ }
842
+ ]
843
+ },
844
+ "no_inline": {
845
+ "description": "For now, this also disallows fragments with variable definitions This also makes @module to opt in using @no_inline internally NOTE that the presence of a fragment in this list only controls whether a fragment is *allowed* to use @no_inline: whether the fragment is inlined or not depends on whether it actually uses that directive.",
846
+ "default": {
847
+ "kind": "disabled"
848
+ },
849
+ "oneOf": [
850
+ {
851
+ "description": "Fully disabled: developers may not use this feature",
852
+ "type": "object",
853
+ "required": [
854
+ "kind"
855
+ ],
856
+ "properties": {
857
+ "kind": {
858
+ "type": "string",
859
+ "enum": [
860
+ "disabled"
861
+ ]
862
+ }
863
+ }
864
+ },
865
+ {
866
+ "description": "Fully enabled: developers may use this feature",
867
+ "type": "object",
868
+ "required": [
869
+ "kind"
870
+ ],
871
+ "properties": {
872
+ "kind": {
873
+ "type": "string",
874
+ "enum": [
875
+ "enabled"
876
+ ]
877
+ }
878
+ }
879
+ },
880
+ {
881
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
882
+ "type": "object",
883
+ "required": [
884
+ "allowlist",
885
+ "kind"
886
+ ],
887
+ "properties": {
888
+ "allowlist": {
889
+ "type": "array",
890
+ "items": {
891
+ "type": "string"
892
+ },
893
+ "uniqueItems": true
894
+ },
895
+ "kind": {
896
+ "type": "string",
897
+ "enum": [
898
+ "limited"
899
+ ]
900
+ }
901
+ }
902
+ },
903
+ {
904
+ "description": "Partially enabled: used for gradual rollout of the feature",
905
+ "type": "object",
906
+ "required": [
907
+ "kind",
908
+ "rollout"
909
+ ],
910
+ "properties": {
911
+ "kind": {
912
+ "type": "string",
913
+ "enum": [
914
+ "rollout"
915
+ ]
916
+ },
917
+ "rollout": {
918
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
919
+ "type": [
920
+ "integer",
921
+ "null"
922
+ ],
923
+ "format": "uint8",
924
+ "minimum": 0.0
925
+ }
926
+ }
927
+ }
928
+ ]
929
+ },
930
+ "prefer_fetchable_in_refetch_queries": {
931
+ "description": "Feature flag to prefer `fetch_MyType()` generatior over `node()` query generator in @refetchable transform",
932
+ "default": false,
933
+ "type": "boolean"
934
+ },
935
+ "relay_resolver_enable_interface_output_type": {
936
+ "default": {
937
+ "kind": "disabled"
938
+ },
939
+ "oneOf": [
940
+ {
941
+ "description": "Fully disabled: developers may not use this feature",
942
+ "type": "object",
943
+ "required": [
944
+ "kind"
945
+ ],
946
+ "properties": {
947
+ "kind": {
948
+ "type": "string",
949
+ "enum": [
950
+ "disabled"
951
+ ]
952
+ }
953
+ }
954
+ },
955
+ {
956
+ "description": "Fully enabled: developers may use this feature",
957
+ "type": "object",
958
+ "required": [
959
+ "kind"
960
+ ],
961
+ "properties": {
962
+ "kind": {
963
+ "type": "string",
964
+ "enum": [
965
+ "enabled"
966
+ ]
967
+ }
968
+ }
969
+ },
970
+ {
971
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
972
+ "type": "object",
973
+ "required": [
974
+ "allowlist",
975
+ "kind"
976
+ ],
977
+ "properties": {
978
+ "allowlist": {
979
+ "type": "array",
980
+ "items": {
981
+ "type": "string"
982
+ },
983
+ "uniqueItems": true
984
+ },
985
+ "kind": {
986
+ "type": "string",
987
+ "enum": [
988
+ "limited"
989
+ ]
990
+ }
991
+ }
992
+ },
993
+ {
994
+ "description": "Partially enabled: used for gradual rollout of the feature",
995
+ "type": "object",
996
+ "required": [
997
+ "kind",
998
+ "rollout"
999
+ ],
1000
+ "properties": {
1001
+ "kind": {
1002
+ "type": "string",
1003
+ "enum": [
1004
+ "rollout"
1005
+ ]
1006
+ },
1007
+ "rollout": {
1008
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
1009
+ "type": [
1010
+ "integer",
1011
+ "null"
1012
+ ],
1013
+ "format": "uint8",
1014
+ "minimum": 0.0
1015
+ }
1016
+ }
1017
+ }
1018
+ ]
1019
+ },
1020
+ "skip_printing_nulls": {
1021
+ "default": {
1022
+ "kind": "disabled"
1023
+ },
1024
+ "oneOf": [
1025
+ {
1026
+ "description": "Fully disabled: developers may not use this feature",
1027
+ "type": "object",
1028
+ "required": [
1029
+ "kind"
1030
+ ],
1031
+ "properties": {
1032
+ "kind": {
1033
+ "type": "string",
1034
+ "enum": [
1035
+ "disabled"
1036
+ ]
1037
+ }
1038
+ }
1039
+ },
1040
+ {
1041
+ "description": "Fully enabled: developers may use this feature",
1042
+ "type": "object",
1043
+ "required": [
1044
+ "kind"
1045
+ ],
1046
+ "properties": {
1047
+ "kind": {
1048
+ "type": "string",
1049
+ "enum": [
1050
+ "enabled"
1051
+ ]
1052
+ }
1053
+ }
1054
+ },
1055
+ {
1056
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
1057
+ "type": "object",
1058
+ "required": [
1059
+ "allowlist",
1060
+ "kind"
1061
+ ],
1062
+ "properties": {
1063
+ "allowlist": {
1064
+ "type": "array",
1065
+ "items": {
1066
+ "type": "string"
1067
+ },
1068
+ "uniqueItems": true
1069
+ },
1070
+ "kind": {
1071
+ "type": "string",
1072
+ "enum": [
1073
+ "limited"
1074
+ ]
1075
+ }
1076
+ }
1077
+ },
1078
+ {
1079
+ "description": "Partially enabled: used for gradual rollout of the feature",
1080
+ "type": "object",
1081
+ "required": [
1082
+ "kind",
1083
+ "rollout"
1084
+ ],
1085
+ "properties": {
1086
+ "kind": {
1087
+ "type": "string",
1088
+ "enum": [
1089
+ "rollout"
1090
+ ]
1091
+ },
1092
+ "rollout": {
1093
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
1094
+ "type": [
1095
+ "integer",
1096
+ "null"
1097
+ ],
1098
+ "format": "uint8",
1099
+ "minimum": 0.0
1100
+ }
1101
+ }
1102
+ }
1103
+ ]
1104
+ },
1105
+ "text_artifacts": {
1106
+ "description": "Enable generation of text artifacts used to generate full query strings later.",
1107
+ "default": {
1108
+ "kind": "disabled"
1109
+ },
1110
+ "oneOf": [
1111
+ {
1112
+ "description": "Fully disabled: developers may not use this feature",
1113
+ "type": "object",
1114
+ "required": [
1115
+ "kind"
1116
+ ],
1117
+ "properties": {
1118
+ "kind": {
1119
+ "type": "string",
1120
+ "enum": [
1121
+ "disabled"
1122
+ ]
1123
+ }
1124
+ }
1125
+ },
1126
+ {
1127
+ "description": "Fully enabled: developers may use this feature",
1128
+ "type": "object",
1129
+ "required": [
1130
+ "kind"
1131
+ ],
1132
+ "properties": {
1133
+ "kind": {
1134
+ "type": "string",
1135
+ "enum": [
1136
+ "enabled"
1137
+ ]
1138
+ }
1139
+ }
1140
+ },
1141
+ {
1142
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
1143
+ "type": "object",
1144
+ "required": [
1145
+ "allowlist",
1146
+ "kind"
1147
+ ],
1148
+ "properties": {
1149
+ "allowlist": {
1150
+ "type": "array",
1151
+ "items": {
1152
+ "type": "string"
1153
+ },
1154
+ "uniqueItems": true
1155
+ },
1156
+ "kind": {
1157
+ "type": "string",
1158
+ "enum": [
1159
+ "limited"
1160
+ ]
1161
+ }
1162
+ }
1163
+ },
1164
+ {
1165
+ "description": "Partially enabled: used for gradual rollout of the feature",
1166
+ "type": "object",
1167
+ "required": [
1168
+ "kind",
1169
+ "rollout"
1170
+ ],
1171
+ "properties": {
1172
+ "kind": {
1173
+ "type": "string",
1174
+ "enum": [
1175
+ "rollout"
1176
+ ]
1177
+ },
1178
+ "rollout": {
1179
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
1180
+ "type": [
1181
+ "integer",
1182
+ "null"
1183
+ ],
1184
+ "format": "uint8",
1185
+ "minimum": 0.0
1186
+ }
1187
+ }
1188
+ }
1189
+ ]
1190
+ }
1191
+ },
1192
+ "additionalProperties": false
1193
+ },
1194
+ "isDevVariableName": {
1195
+ "description": "We may generate some content in the artifacts that's stripped in production if __DEV__ variable is set This config option is here to define the name of that special variable",
1196
+ "default": null,
1197
+ "type": [
1198
+ "string",
1199
+ "null"
1200
+ ]
1201
+ },
1202
+ "jsModuleFormat": {
1203
+ "description": "Formatting style for generated files.",
1204
+ "default": "commonjs",
1205
+ "oneOf": [
1206
+ {
1207
+ "description": "Common JS style, e.g. `require('../path/MyModule')`",
1208
+ "type": "string",
1209
+ "enum": [
1210
+ "commonjs"
1211
+ ]
1212
+ },
1213
+ {
1214
+ "description": "Facebook style, e.g. `require('MyModule')`",
1215
+ "type": "string",
1216
+ "enum": [
1217
+ "haste"
1218
+ ]
1219
+ }
1220
+ ]
1221
+ },
1222
+ "language": {
1223
+ "description": "The desired output language, \"flow\" or \"typescript\".",
1224
+ "type": "string",
1225
+ "enum": [
1226
+ "javascript",
1227
+ "typescript",
1228
+ "flow"
1229
+ ]
1230
+ },
1231
+ "moduleImportConfig": {
1232
+ "description": "Configuration for @module",
1233
+ "default": {
1234
+ "dynamicModuleProvider": null,
1235
+ "surface": null
1236
+ },
1237
+ "type": "object",
1238
+ "properties": {
1239
+ "dynamicModuleProvider": {
1240
+ "description": "Defines the custom import statement to be generated on the `ModuleImport` node in ASTs, used for dynamically loading components at runtime.",
1241
+ "anyOf": [
1242
+ {
1243
+ "oneOf": [
1244
+ {
1245
+ "description": "Generates a module provider using JSResource",
1246
+ "type": "object",
1247
+ "required": [
1248
+ "mode"
1249
+ ],
1250
+ "properties": {
1251
+ "mode": {
1252
+ "type": "string",
1253
+ "enum": [
1254
+ "JSResource"
1255
+ ]
1256
+ }
1257
+ }
1258
+ },
1259
+ {
1260
+ "description": "Generates a custom JS import, Use `<$module>` as the placeholder for the actual module. e.g. `\"() => import('<$module>')\"`",
1261
+ "type": "object",
1262
+ "required": [
1263
+ "mode",
1264
+ "statement"
1265
+ ],
1266
+ "properties": {
1267
+ "mode": {
1268
+ "type": "string",
1269
+ "enum": [
1270
+ "Custom"
1271
+ ]
1272
+ },
1273
+ "statement": {
1274
+ "type": "string"
1275
+ }
1276
+ }
1277
+ }
1278
+ ]
1279
+ },
1280
+ {
1281
+ "type": "null"
1282
+ }
1283
+ ]
1284
+ },
1285
+ "surface": {
1286
+ "description": "Defines the surface upon which @module is enabled.",
1287
+ "type": [
1288
+ "string",
1289
+ "null"
1290
+ ],
1291
+ "enum": [
1292
+ "resolvers",
1293
+ "all"
1294
+ ]
1295
+ }
1296
+ },
1297
+ "additionalProperties": false
1298
+ },
1299
+ "noFutureProofEnums": {
1300
+ "description": "This option controls whether or not a catch-all entry is added to enum type definitions for values that may be added in the future. Enabling this means you will have to update your application whenever the GraphQL server schema adds new enum values to prevent it from breaking.",
1301
+ "default": false,
1302
+ "type": "boolean"
1303
+ },
1304
+ "noSourceControl": {
1305
+ "description": "Opt out of source control checks/integration.",
1306
+ "default": null,
1307
+ "type": [
1308
+ "boolean",
1309
+ "null"
1310
+ ]
1311
+ },
1312
+ "optionalInputFields": {
1313
+ "title": "For Flow type generation",
1314
+ "description": "When set, generated input types will have the listed fields optional even if the schema defines them as required.",
1315
+ "default": [],
1316
+ "type": "array",
1317
+ "items": {
1318
+ "type": "string"
1319
+ }
1320
+ },
1321
+ "persistConfig": {
1322
+ "description": "Query Persist Configuration It contains URL and addition parameters that will be included with the request (think API_KEY, APP_ID, etc...)",
1323
+ "default": null,
1324
+ "anyOf": [
1325
+ {
1326
+ "anyOf": [
1327
+ {
1328
+ "type": "object",
1329
+ "required": [
1330
+ "url"
1331
+ ],
1332
+ "properties": {
1333
+ "concurrency": {
1334
+ "default": null,
1335
+ "type": [
1336
+ "integer",
1337
+ "null"
1338
+ ],
1339
+ "format": "uint",
1340
+ "minimum": 0.0
1341
+ },
1342
+ "headers": {
1343
+ "description": "Additional headers to send",
1344
+ "default": {},
1345
+ "type": "object",
1346
+ "additionalProperties": {
1347
+ "type": "string"
1348
+ }
1349
+ },
1350
+ "includeQueryText": {
1351
+ "default": false,
1352
+ "type": "boolean"
1353
+ },
1354
+ "params": {
1355
+ "description": "The document will be in a POST parameter `text`. This map can contain additional parameters to send.",
1356
+ "default": {},
1357
+ "type": "object",
1358
+ "additionalProperties": {
1359
+ "type": "string"
1360
+ }
1361
+ },
1362
+ "url": {
1363
+ "description": "URL to send a POST request to to persist.",
1364
+ "type": "string"
1365
+ }
1366
+ },
1367
+ "additionalProperties": false
1368
+ },
1369
+ {
1370
+ "type": "object",
1371
+ "required": [
1372
+ "file"
1373
+ ],
1374
+ "properties": {
1375
+ "algorithm": {
1376
+ "default": "MD5",
1377
+ "type": "string",
1378
+ "enum": [
1379
+ "MD5",
1380
+ "SHA1",
1381
+ "SHA256"
1382
+ ]
1383
+ },
1384
+ "file": {
1385
+ "type": "string"
1386
+ },
1387
+ "include_query_text": {
1388
+ "default": false,
1389
+ "type": "boolean"
1390
+ }
1391
+ },
1392
+ "additionalProperties": false
1393
+ }
1394
+ ]
1395
+ },
1396
+ {
1397
+ "type": "null"
1398
+ }
1399
+ ]
1400
+ },
1401
+ "requireCustomScalarTypes": {
1402
+ "description": "Require all GraphQL scalar types mapping to be defined, will throw if a GraphQL scalar type doesn't have a JS type",
1403
+ "default": false,
1404
+ "type": "boolean"
1405
+ },
1406
+ "resolverContextType": {
1407
+ "description": "Indicates the type to import and use as the context for live resolvers.",
1408
+ "default": null,
1409
+ "anyOf": [
1410
+ {
1411
+ "anyOf": [
1412
+ {
1413
+ "description": "Specifies how Relay can import the Resolver context type from a path",
1414
+ "type": "object",
1415
+ "required": [
1416
+ "name",
1417
+ "path"
1418
+ ],
1419
+ "properties": {
1420
+ "name": {
1421
+ "description": "The name under which the type is exported from the module",
1422
+ "type": "string"
1423
+ },
1424
+ "path": {
1425
+ "description": "The path to the module relative to the project root",
1426
+ "type": "string"
1427
+ }
1428
+ }
1429
+ },
1430
+ {
1431
+ "description": "Specifies how Relay can import the Resolver context type from a named package",
1432
+ "type": "object",
1433
+ "required": [
1434
+ "name",
1435
+ "package"
1436
+ ],
1437
+ "properties": {
1438
+ "name": {
1439
+ "description": "The name under which the type is exported from the package",
1440
+ "type": "string"
1441
+ },
1442
+ "package": {
1443
+ "description": "The name of the package",
1444
+ "type": "string"
1445
+ }
1446
+ }
1447
+ }
1448
+ ]
1449
+ },
1450
+ {
1451
+ "type": "null"
1452
+ }
1453
+ ]
1454
+ },
1455
+ "resolversSchemaModule": {
1456
+ "description": "Configuration for resolvers_schema_module generation",
1457
+ "default": null,
1458
+ "type": [
1459
+ "object",
1460
+ "null"
1461
+ ],
1462
+ "properties": {
1463
+ "applyToNormalizationAst": {
1464
+ "default": false,
1465
+ "type": "boolean"
1466
+ },
1467
+ "path": {
1468
+ "default": "",
1469
+ "type": "string"
1470
+ }
1471
+ },
1472
+ "additionalProperties": false
1473
+ },
1474
+ "schema": {
1475
+ "description": "Path to schema.graphql",
1476
+ "default": "",
1477
+ "type": "string"
1478
+ },
1479
+ "schemaConfig": {
1480
+ "description": "Extra configuration for the schema itself.",
1481
+ "default": {
1482
+ "connectionInterface": {
1483
+ "cursor": "cursor",
1484
+ "edges": "edges",
1485
+ "endCursor": "endCursor",
1486
+ "hasNextPage": "hasNextPage",
1487
+ "hasPreviousPage": "hasPreviousPage",
1488
+ "node": "node",
1489
+ "pageInfo": "pageInfo",
1490
+ "startCursor": "startCursor"
1491
+ },
1492
+ "deferStreamInterface": {
1493
+ "deferName": "defer",
1494
+ "ifArg": "if",
1495
+ "initialCountArg": "initialCount",
1496
+ "labelArg": "label",
1497
+ "streamName": "stream",
1498
+ "useCustomizedBatchArg": "useCustomizedBatch"
1499
+ },
1500
+ "nodeInterfaceIdField": "id",
1501
+ "nodeInterfaceIdVariableName": "id",
1502
+ "nonNodeIdFields": null,
1503
+ "unselectableDirectiveName": "unselectable"
1504
+ },
1505
+ "type": "object",
1506
+ "properties": {
1507
+ "connectionInterface": {
1508
+ "description": "Configuration where Relay should expect some fields in the schema.",
1509
+ "default": {
1510
+ "cursor": "cursor",
1511
+ "edges": "edges",
1512
+ "endCursor": "endCursor",
1513
+ "hasNextPage": "hasNextPage",
1514
+ "hasPreviousPage": "hasPreviousPage",
1515
+ "node": "node",
1516
+ "pageInfo": "pageInfo",
1517
+ "startCursor": "startCursor"
1518
+ },
1519
+ "type": "object",
1520
+ "required": [
1521
+ "cursor",
1522
+ "edges",
1523
+ "endCursor",
1524
+ "hasNextPage",
1525
+ "hasPreviousPage",
1526
+ "node",
1527
+ "pageInfo",
1528
+ "startCursor"
1529
+ ],
1530
+ "properties": {
1531
+ "cursor": {
1532
+ "type": "string"
1533
+ },
1534
+ "edges": {
1535
+ "type": "string"
1536
+ },
1537
+ "endCursor": {
1538
+ "type": "string"
1539
+ },
1540
+ "hasNextPage": {
1541
+ "type": "string"
1542
+ },
1543
+ "hasPreviousPage": {
1544
+ "type": "string"
1545
+ },
1546
+ "node": {
1547
+ "type": "string"
1548
+ },
1549
+ "pageInfo": {
1550
+ "type": "string"
1551
+ },
1552
+ "startCursor": {
1553
+ "type": "string"
1554
+ }
1555
+ },
1556
+ "additionalProperties": false
1557
+ },
1558
+ "deferStreamInterface": {
1559
+ "description": "Configuration where Relay should expect some fields in the schema.",
1560
+ "default": {
1561
+ "deferName": "defer",
1562
+ "ifArg": "if",
1563
+ "initialCountArg": "initialCount",
1564
+ "labelArg": "label",
1565
+ "streamName": "stream",
1566
+ "useCustomizedBatchArg": "useCustomizedBatch"
1567
+ },
1568
+ "type": "object",
1569
+ "required": [
1570
+ "deferName",
1571
+ "ifArg",
1572
+ "initialCountArg",
1573
+ "labelArg",
1574
+ "streamName",
1575
+ "useCustomizedBatchArg"
1576
+ ],
1577
+ "properties": {
1578
+ "deferName": {
1579
+ "description": "Wrapper struct for clarity rather than having StringKey everywhere.",
1580
+ "type": "string"
1581
+ },
1582
+ "ifArg": {
1583
+ "type": "string"
1584
+ },
1585
+ "initialCountArg": {
1586
+ "type": "string"
1587
+ },
1588
+ "labelArg": {
1589
+ "type": "string"
1590
+ },
1591
+ "streamName": {
1592
+ "description": "Wrapper struct for clarity rather than having StringKey everywhere.",
1593
+ "type": "string"
1594
+ },
1595
+ "useCustomizedBatchArg": {
1596
+ "type": "string"
1597
+ }
1598
+ },
1599
+ "additionalProperties": false
1600
+ },
1601
+ "nodeInterfaceIdField": {
1602
+ "description": "The name of the `id` field that exists on the `Node` interface.",
1603
+ "default": "id",
1604
+ "type": "string"
1605
+ },
1606
+ "nodeInterfaceIdVariableName": {
1607
+ "description": "The name of the variable expected by the `node` query.",
1608
+ "default": "id",
1609
+ "type": "string"
1610
+ },
1611
+ "nonNodeIdFields": {
1612
+ "description": "Configuration of Relay's validation for `id` fields outside of the `Node` interface.",
1613
+ "default": null,
1614
+ "type": [
1615
+ "object",
1616
+ "null"
1617
+ ],
1618
+ "properties": {
1619
+ "allowedIdTypes": {
1620
+ "description": "A map of parent type names to allowed type names for fields named `id`",
1621
+ "default": {},
1622
+ "type": "object",
1623
+ "additionalProperties": {
1624
+ "type": "string"
1625
+ }
1626
+ }
1627
+ },
1628
+ "additionalProperties": false
1629
+ },
1630
+ "unselectableDirectiveName": {
1631
+ "description": "The name of the directive indicating fields that cannot be selected",
1632
+ "default": "unselectable",
1633
+ "type": "string"
1634
+ }
1635
+ }
1636
+ },
1637
+ "schemaExtensions": {
1638
+ "description": "List of directories with schema extensions.",
1639
+ "default": [],
1640
+ "type": "array",
1641
+ "items": {
1642
+ "type": "string"
1643
+ }
1644
+ },
1645
+ "src": {
1646
+ "description": "Root directory of application code",
1647
+ "default": "",
1648
+ "type": "string"
1649
+ },
1650
+ "typegenPhase": {
1651
+ "description": "Added in 13.1.1 to customize Final/Compat mode in the single project config file Removed in 14.0.0",
1652
+ "default": null
1653
+ },
1654
+ "typescriptExcludeUndefinedFromNullableUnion": {
1655
+ "description": "Keep the previous compiler behavior by outputting an union of the raw type and null, and not the **correct** behavior of an union with the raw type, null and undefined.",
1656
+ "default": false,
1657
+ "type": "boolean"
1658
+ },
1659
+ "useImportTypeSyntax": {
1660
+ "title": "For Typescript type generation",
1661
+ "description": "Whether to use the `import type` syntax introduced in Typescript version 3.8. This will prevent warnings from `importsNotUsedAsValues`.",
1662
+ "default": false,
1663
+ "type": "boolean"
1664
+ }
1665
+ },
1666
+ "additionalProperties": false
1667
+ },
1668
+ {
1669
+ "description": "Relay can support multiple projects with multiple schemas and different options (output, typegen, etc...). This MultiProjectConfigFile is responsible for configuring these type of projects (complex)",
1670
+ "type": "object",
1671
+ "required": [
1672
+ "projects",
1673
+ "sources"
1674
+ ],
1675
+ "properties": {
1676
+ "$schema": {
1677
+ "description": "The user may hard-code the JSON Schema for their version of the config.",
1678
+ "type": [
1679
+ "string",
1680
+ "null"
1681
+ ]
1682
+ },
1683
+ "codegenCommand": {
1684
+ "default": null,
1685
+ "type": [
1686
+ "string",
1687
+ "null"
1688
+ ]
1689
+ },
1690
+ "excludes": {
1691
+ "description": "Glob patterns that should not be part of the sources even if they are in the source set directories.",
1692
+ "default": [
1693
+ "**/node_modules/**",
1694
+ "**/__mocks__/**",
1695
+ "**/__generated__/**"
1696
+ ],
1697
+ "type": "array",
1698
+ "items": {
1699
+ "type": "string"
1700
+ }
1701
+ },
1702
+ "featureFlags": {
1703
+ "default": {
1704
+ "actor_change_support": {
1705
+ "kind": "disabled"
1706
+ },
1707
+ "allow_required_in_mutation_response": {
1708
+ "kind": "disabled"
1709
+ },
1710
+ "allow_resolver_non_nullable_return_type": {
1711
+ "kind": "disabled"
1712
+ },
1713
+ "allow_resolvers_in_mutation_response": {
1714
+ "kind": "disabled"
1715
+ },
1716
+ "compact_query_text": {
1717
+ "kind": "disabled"
1718
+ },
1719
+ "disable_edge_type_name_validation_on_declerative_connection_directives": {
1720
+ "kind": "disabled"
1721
+ },
1722
+ "disable_full_argument_type_validation": {
1723
+ "kind": "disabled"
1724
+ },
1725
+ "disable_resolver_reader_ast": false,
1726
+ "disable_schema_validation": false,
1727
+ "enable_3d_branch_arg_generation": false,
1728
+ "enable_exec_time_resolvers_directive": false,
1729
+ "enable_fragment_argument_transform": false,
1730
+ "enable_relay_resolver_mutations": false,
1731
+ "enable_relay_resolver_transform": false,
1732
+ "enable_resolver_normalization_ast": false,
1733
+ "enable_strict_custom_scalars": false,
1734
+ "enforce_fragment_alias_where_ambiguous": {
1735
+ "kind": "disabled"
1736
+ },
1737
+ "no_inline": {
1738
+ "kind": "disabled"
1739
+ },
1740
+ "prefer_fetchable_in_refetch_queries": false,
1741
+ "relay_resolver_enable_interface_output_type": {
1742
+ "kind": "disabled"
1743
+ },
1744
+ "skip_printing_nulls": {
1745
+ "kind": "disabled"
1746
+ },
1747
+ "text_artifacts": {
1748
+ "kind": "disabled"
1749
+ }
1750
+ },
1751
+ "type": "object",
1752
+ "properties": {
1753
+ "actor_change_support": {
1754
+ "default": {
1755
+ "kind": "disabled"
1756
+ },
1757
+ "oneOf": [
1758
+ {
1759
+ "description": "Fully disabled: developers may not use this feature",
1760
+ "type": "object",
1761
+ "required": [
1762
+ "kind"
1763
+ ],
1764
+ "properties": {
1765
+ "kind": {
1766
+ "type": "string",
1767
+ "enum": [
1768
+ "disabled"
1769
+ ]
1770
+ }
1771
+ }
1772
+ },
1773
+ {
1774
+ "description": "Fully enabled: developers may use this feature",
1775
+ "type": "object",
1776
+ "required": [
1777
+ "kind"
1778
+ ],
1779
+ "properties": {
1780
+ "kind": {
1781
+ "type": "string",
1782
+ "enum": [
1783
+ "enabled"
1784
+ ]
1785
+ }
1786
+ }
1787
+ },
1788
+ {
1789
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
1790
+ "type": "object",
1791
+ "required": [
1792
+ "allowlist",
1793
+ "kind"
1794
+ ],
1795
+ "properties": {
1796
+ "allowlist": {
1797
+ "type": "array",
1798
+ "items": {
1799
+ "type": "string"
1800
+ },
1801
+ "uniqueItems": true
1802
+ },
1803
+ "kind": {
1804
+ "type": "string",
1805
+ "enum": [
1806
+ "limited"
1807
+ ]
1808
+ }
1809
+ }
1810
+ },
1811
+ {
1812
+ "description": "Partially enabled: used for gradual rollout of the feature",
1813
+ "type": "object",
1814
+ "required": [
1815
+ "kind",
1816
+ "rollout"
1817
+ ],
1818
+ "properties": {
1819
+ "kind": {
1820
+ "type": "string",
1821
+ "enum": [
1822
+ "rollout"
1823
+ ]
1824
+ },
1825
+ "rollout": {
1826
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
1827
+ "type": [
1828
+ "integer",
1829
+ "null"
1830
+ ],
1831
+ "format": "uint8",
1832
+ "minimum": 0.0
1833
+ }
1834
+ }
1835
+ }
1836
+ ]
1837
+ },
1838
+ "allow_required_in_mutation_response": {
1839
+ "description": "@required with an action of THROW is read-time feature that is not compatible with our mutation APIs. We are in the process of removing any existing examples, but this flag is part of a process of removing any existing examples.",
1840
+ "default": {
1841
+ "kind": "disabled"
1842
+ },
1843
+ "oneOf": [
1844
+ {
1845
+ "description": "Fully disabled: developers may not use this feature",
1846
+ "type": "object",
1847
+ "required": [
1848
+ "kind"
1849
+ ],
1850
+ "properties": {
1851
+ "kind": {
1852
+ "type": "string",
1853
+ "enum": [
1854
+ "disabled"
1855
+ ]
1856
+ }
1857
+ }
1858
+ },
1859
+ {
1860
+ "description": "Fully enabled: developers may use this feature",
1861
+ "type": "object",
1862
+ "required": [
1863
+ "kind"
1864
+ ],
1865
+ "properties": {
1866
+ "kind": {
1867
+ "type": "string",
1868
+ "enum": [
1869
+ "enabled"
1870
+ ]
1871
+ }
1872
+ }
1873
+ },
1874
+ {
1875
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
1876
+ "type": "object",
1877
+ "required": [
1878
+ "allowlist",
1879
+ "kind"
1880
+ ],
1881
+ "properties": {
1882
+ "allowlist": {
1883
+ "type": "array",
1884
+ "items": {
1885
+ "type": "string"
1886
+ },
1887
+ "uniqueItems": true
1888
+ },
1889
+ "kind": {
1890
+ "type": "string",
1891
+ "enum": [
1892
+ "limited"
1893
+ ]
1894
+ }
1895
+ }
1896
+ },
1897
+ {
1898
+ "description": "Partially enabled: used for gradual rollout of the feature",
1899
+ "type": "object",
1900
+ "required": [
1901
+ "kind",
1902
+ "rollout"
1903
+ ],
1904
+ "properties": {
1905
+ "kind": {
1906
+ "type": "string",
1907
+ "enum": [
1908
+ "rollout"
1909
+ ]
1910
+ },
1911
+ "rollout": {
1912
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
1913
+ "type": [
1914
+ "integer",
1915
+ "null"
1916
+ ],
1917
+ "format": "uint8",
1918
+ "minimum": 0.0
1919
+ }
1920
+ }
1921
+ }
1922
+ ]
1923
+ },
1924
+ "allow_resolver_non_nullable_return_type": {
1925
+ "description": "Allow non-nullable return types from resolvers.",
1926
+ "default": {
1927
+ "kind": "disabled"
1928
+ },
1929
+ "oneOf": [
1930
+ {
1931
+ "description": "Fully disabled: developers may not use this feature",
1932
+ "type": "object",
1933
+ "required": [
1934
+ "kind"
1935
+ ],
1936
+ "properties": {
1937
+ "kind": {
1938
+ "type": "string",
1939
+ "enum": [
1940
+ "disabled"
1941
+ ]
1942
+ }
1943
+ }
1944
+ },
1945
+ {
1946
+ "description": "Fully enabled: developers may use this feature",
1947
+ "type": "object",
1948
+ "required": [
1949
+ "kind"
1950
+ ],
1951
+ "properties": {
1952
+ "kind": {
1953
+ "type": "string",
1954
+ "enum": [
1955
+ "enabled"
1956
+ ]
1957
+ }
1958
+ }
1959
+ },
1960
+ {
1961
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
1962
+ "type": "object",
1963
+ "required": [
1964
+ "allowlist",
1965
+ "kind"
1966
+ ],
1967
+ "properties": {
1968
+ "allowlist": {
1969
+ "type": "array",
1970
+ "items": {
1971
+ "type": "string"
1972
+ },
1973
+ "uniqueItems": true
1974
+ },
1975
+ "kind": {
1976
+ "type": "string",
1977
+ "enum": [
1978
+ "limited"
1979
+ ]
1980
+ }
1981
+ }
1982
+ },
1983
+ {
1984
+ "description": "Partially enabled: used for gradual rollout of the feature",
1985
+ "type": "object",
1986
+ "required": [
1987
+ "kind",
1988
+ "rollout"
1989
+ ],
1990
+ "properties": {
1991
+ "kind": {
1992
+ "type": "string",
1993
+ "enum": [
1994
+ "rollout"
1995
+ ]
1996
+ },
1997
+ "rollout": {
1998
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
1999
+ "type": [
2000
+ "integer",
2001
+ "null"
2002
+ ],
2003
+ "format": "uint8",
2004
+ "minimum": 0.0
2005
+ }
2006
+ }
2007
+ }
2008
+ ]
2009
+ },
2010
+ "allow_resolvers_in_mutation_response": {
2011
+ "description": "Relay Resolvers are a read-time feature that are not actually handled in our mutation APIs. We are in the process of removing any existing examples, but this flag is part of a process of removing any existing examples.",
2012
+ "default": {
2013
+ "kind": "disabled"
2014
+ },
2015
+ "oneOf": [
2016
+ {
2017
+ "description": "Fully disabled: developers may not use this feature",
2018
+ "type": "object",
2019
+ "required": [
2020
+ "kind"
2021
+ ],
2022
+ "properties": {
2023
+ "kind": {
2024
+ "type": "string",
2025
+ "enum": [
2026
+ "disabled"
2027
+ ]
2028
+ }
2029
+ }
2030
+ },
2031
+ {
2032
+ "description": "Fully enabled: developers may use this feature",
2033
+ "type": "object",
2034
+ "required": [
2035
+ "kind"
2036
+ ],
2037
+ "properties": {
2038
+ "kind": {
2039
+ "type": "string",
2040
+ "enum": [
2041
+ "enabled"
2042
+ ]
2043
+ }
2044
+ }
2045
+ },
2046
+ {
2047
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
2048
+ "type": "object",
2049
+ "required": [
2050
+ "allowlist",
2051
+ "kind"
2052
+ ],
2053
+ "properties": {
2054
+ "allowlist": {
2055
+ "type": "array",
2056
+ "items": {
2057
+ "type": "string"
2058
+ },
2059
+ "uniqueItems": true
2060
+ },
2061
+ "kind": {
2062
+ "type": "string",
2063
+ "enum": [
2064
+ "limited"
2065
+ ]
2066
+ }
2067
+ }
2068
+ },
2069
+ {
2070
+ "description": "Partially enabled: used for gradual rollout of the feature",
2071
+ "type": "object",
2072
+ "required": [
2073
+ "kind",
2074
+ "rollout"
2075
+ ],
2076
+ "properties": {
2077
+ "kind": {
2078
+ "type": "string",
2079
+ "enum": [
2080
+ "rollout"
2081
+ ]
2082
+ },
2083
+ "rollout": {
2084
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
2085
+ "type": [
2086
+ "integer",
2087
+ "null"
2088
+ ],
2089
+ "format": "uint8",
2090
+ "minimum": 0.0
2091
+ }
2092
+ }
2093
+ }
2094
+ ]
2095
+ },
2096
+ "compact_query_text": {
2097
+ "description": "Print queries in compact form",
2098
+ "default": {
2099
+ "kind": "disabled"
2100
+ },
2101
+ "oneOf": [
2102
+ {
2103
+ "description": "Fully disabled: developers may not use this feature",
2104
+ "type": "object",
2105
+ "required": [
2106
+ "kind"
2107
+ ],
2108
+ "properties": {
2109
+ "kind": {
2110
+ "type": "string",
2111
+ "enum": [
2112
+ "disabled"
2113
+ ]
2114
+ }
2115
+ }
2116
+ },
2117
+ {
2118
+ "description": "Fully enabled: developers may use this feature",
2119
+ "type": "object",
2120
+ "required": [
2121
+ "kind"
2122
+ ],
2123
+ "properties": {
2124
+ "kind": {
2125
+ "type": "string",
2126
+ "enum": [
2127
+ "enabled"
2128
+ ]
2129
+ }
2130
+ }
2131
+ },
2132
+ {
2133
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
2134
+ "type": "object",
2135
+ "required": [
2136
+ "allowlist",
2137
+ "kind"
2138
+ ],
2139
+ "properties": {
2140
+ "allowlist": {
2141
+ "type": "array",
2142
+ "items": {
2143
+ "type": "string"
2144
+ },
2145
+ "uniqueItems": true
2146
+ },
2147
+ "kind": {
2148
+ "type": "string",
2149
+ "enum": [
2150
+ "limited"
2151
+ ]
2152
+ }
2153
+ }
2154
+ },
2155
+ {
2156
+ "description": "Partially enabled: used for gradual rollout of the feature",
2157
+ "type": "object",
2158
+ "required": [
2159
+ "kind",
2160
+ "rollout"
2161
+ ],
2162
+ "properties": {
2163
+ "kind": {
2164
+ "type": "string",
2165
+ "enum": [
2166
+ "rollout"
2167
+ ]
2168
+ },
2169
+ "rollout": {
2170
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
2171
+ "type": [
2172
+ "integer",
2173
+ "null"
2174
+ ],
2175
+ "format": "uint8",
2176
+ "minimum": 0.0
2177
+ }
2178
+ }
2179
+ }
2180
+ ]
2181
+ },
2182
+ "disable_edge_type_name_validation_on_declerative_connection_directives": {
2183
+ "description": "Disable validation of the `edgeTypeName` argument on `@prependNode` and `@appendNode`.",
2184
+ "default": {
2185
+ "kind": "disabled"
2186
+ },
2187
+ "oneOf": [
2188
+ {
2189
+ "description": "Fully disabled: developers may not use this feature",
2190
+ "type": "object",
2191
+ "required": [
2192
+ "kind"
2193
+ ],
2194
+ "properties": {
2195
+ "kind": {
2196
+ "type": "string",
2197
+ "enum": [
2198
+ "disabled"
2199
+ ]
2200
+ }
2201
+ }
2202
+ },
2203
+ {
2204
+ "description": "Fully enabled: developers may use this feature",
2205
+ "type": "object",
2206
+ "required": [
2207
+ "kind"
2208
+ ],
2209
+ "properties": {
2210
+ "kind": {
2211
+ "type": "string",
2212
+ "enum": [
2213
+ "enabled"
2214
+ ]
2215
+ }
2216
+ }
2217
+ },
2218
+ {
2219
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
2220
+ "type": "object",
2221
+ "required": [
2222
+ "allowlist",
2223
+ "kind"
2224
+ ],
2225
+ "properties": {
2226
+ "allowlist": {
2227
+ "type": "array",
2228
+ "items": {
2229
+ "type": "string"
2230
+ },
2231
+ "uniqueItems": true
2232
+ },
2233
+ "kind": {
2234
+ "type": "string",
2235
+ "enum": [
2236
+ "limited"
2237
+ ]
2238
+ }
2239
+ }
2240
+ },
2241
+ {
2242
+ "description": "Partially enabled: used for gradual rollout of the feature",
2243
+ "type": "object",
2244
+ "required": [
2245
+ "kind",
2246
+ "rollout"
2247
+ ],
2248
+ "properties": {
2249
+ "kind": {
2250
+ "type": "string",
2251
+ "enum": [
2252
+ "rollout"
2253
+ ]
2254
+ },
2255
+ "rollout": {
2256
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
2257
+ "type": [
2258
+ "integer",
2259
+ "null"
2260
+ ],
2261
+ "format": "uint8",
2262
+ "minimum": 0.0
2263
+ }
2264
+ }
2265
+ }
2266
+ ]
2267
+ },
2268
+ "disable_full_argument_type_validation": {
2269
+ "description": "Disable full GraphQL argument type validation. Historically, we only applied argument type validation to the query that was actually going to be persisted and sent to the server. This meant that we didn't typecheck arguments passed to Relay Resolvers or Client Schema Extensions.\n\nWe also permitted an escape hatch of `uncheckedArguments_DEPRECATED` for defining fragment arguments which were not typechecked.\n\nWe no-longer support `uncheckedArguments_DEPRECATED`, and we typecheck both client and server arguments. This flag allows you to opt out of this new behavior to enable gradual adoption of the new validations.\n\nThis flag will be removed in a future version of Relay.",
2270
+ "default": {
2271
+ "kind": "disabled"
2272
+ },
2273
+ "oneOf": [
2274
+ {
2275
+ "description": "Fully disabled: developers may not use this feature",
2276
+ "type": "object",
2277
+ "required": [
2278
+ "kind"
2279
+ ],
2280
+ "properties": {
2281
+ "kind": {
2282
+ "type": "string",
2283
+ "enum": [
2284
+ "disabled"
2285
+ ]
2286
+ }
2287
+ }
2288
+ },
2289
+ {
2290
+ "description": "Fully enabled: developers may use this feature",
2291
+ "type": "object",
2292
+ "required": [
2293
+ "kind"
2294
+ ],
2295
+ "properties": {
2296
+ "kind": {
2297
+ "type": "string",
2298
+ "enum": [
2299
+ "enabled"
2300
+ ]
2301
+ }
2302
+ }
2303
+ },
2304
+ {
2305
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
2306
+ "type": "object",
2307
+ "required": [
2308
+ "allowlist",
2309
+ "kind"
2310
+ ],
2311
+ "properties": {
2312
+ "allowlist": {
2313
+ "type": "array",
2314
+ "items": {
2315
+ "type": "string"
2316
+ },
2317
+ "uniqueItems": true
2318
+ },
2319
+ "kind": {
2320
+ "type": "string",
2321
+ "enum": [
2322
+ "limited"
2323
+ ]
2324
+ }
2325
+ }
2326
+ },
2327
+ {
2328
+ "description": "Partially enabled: used for gradual rollout of the feature",
2329
+ "type": "object",
2330
+ "required": [
2331
+ "kind",
2332
+ "rollout"
2333
+ ],
2334
+ "properties": {
2335
+ "kind": {
2336
+ "type": "string",
2337
+ "enum": [
2338
+ "rollout"
2339
+ ]
2340
+ },
2341
+ "rollout": {
2342
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
2343
+ "type": [
2344
+ "integer",
2345
+ "null"
2346
+ ],
2347
+ "format": "uint8",
2348
+ "minimum": 0.0
2349
+ }
2350
+ }
2351
+ }
2352
+ ]
2353
+ },
2354
+ "disable_resolver_reader_ast": {
2355
+ "description": "Mirror of `enable_resolver_normalization_ast` excludes resolver metadata from reader ast",
2356
+ "default": false,
2357
+ "type": "boolean"
2358
+ },
2359
+ "disable_schema_validation": {
2360
+ "description": "Disable validating the composite schema (server, client schema extensions, Relay Resolvers) after its built.",
2361
+ "default": false,
2362
+ "type": "boolean"
2363
+ },
2364
+ "enable_3d_branch_arg_generation": {
2365
+ "default": false,
2366
+ "type": "boolean"
2367
+ },
2368
+ "enable_exec_time_resolvers_directive": {
2369
+ "description": "Allow per-query opt in to normalization AST for Resolvers with exec_time_resolvers directive. In contrast to enable_resolver_normalization_ast, if this is true, a normalization AST can be generated for a query using the @exec_time_resolvers directive",
2370
+ "default": false,
2371
+ "type": "boolean"
2372
+ },
2373
+ "enable_fragment_argument_transform": {
2374
+ "description": "Add support for parsing and transforming variable definitions on fragment definitions and arguments on fragment spreads.",
2375
+ "default": false,
2376
+ "type": "boolean"
2377
+ },
2378
+ "enable_relay_resolver_mutations": {
2379
+ "description": "Allow relay resolvers to extend the Mutation type",
2380
+ "default": false,
2381
+ "type": "boolean"
2382
+ },
2383
+ "enable_relay_resolver_transform": {
2384
+ "default": false,
2385
+ "type": "boolean"
2386
+ },
2387
+ "enable_resolver_normalization_ast": {
2388
+ "description": "Fully build the normalization AST for Resolvers",
2389
+ "default": false,
2390
+ "type": "boolean"
2391
+ },
2392
+ "enable_strict_custom_scalars": {
2393
+ "description": "Perform strict validations when custom scalar types are used",
2394
+ "default": false,
2395
+ "type": "boolean"
2396
+ },
2397
+ "enforce_fragment_alias_where_ambiguous": {
2398
+ "description": "Enforce that you must add `@alias` to a fragment if it may not match, due to type mismatch or `@skip`/`@include`",
2399
+ "default": {
2400
+ "kind": "disabled"
2401
+ },
2402
+ "oneOf": [
2403
+ {
2404
+ "description": "Fully disabled: developers may not use this feature",
2405
+ "type": "object",
2406
+ "required": [
2407
+ "kind"
2408
+ ],
2409
+ "properties": {
2410
+ "kind": {
2411
+ "type": "string",
2412
+ "enum": [
2413
+ "disabled"
2414
+ ]
2415
+ }
2416
+ }
2417
+ },
2418
+ {
2419
+ "description": "Fully enabled: developers may use this feature",
2420
+ "type": "object",
2421
+ "required": [
2422
+ "kind"
2423
+ ],
2424
+ "properties": {
2425
+ "kind": {
2426
+ "type": "string",
2427
+ "enum": [
2428
+ "enabled"
2429
+ ]
2430
+ }
2431
+ }
2432
+ },
2433
+ {
2434
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
2435
+ "type": "object",
2436
+ "required": [
2437
+ "allowlist",
2438
+ "kind"
2439
+ ],
2440
+ "properties": {
2441
+ "allowlist": {
2442
+ "type": "array",
2443
+ "items": {
2444
+ "type": "string"
2445
+ },
2446
+ "uniqueItems": true
2447
+ },
2448
+ "kind": {
2449
+ "type": "string",
2450
+ "enum": [
2451
+ "limited"
2452
+ ]
2453
+ }
2454
+ }
2455
+ },
2456
+ {
2457
+ "description": "Partially enabled: used for gradual rollout of the feature",
2458
+ "type": "object",
2459
+ "required": [
2460
+ "kind",
2461
+ "rollout"
2462
+ ],
2463
+ "properties": {
2464
+ "kind": {
2465
+ "type": "string",
2466
+ "enum": [
2467
+ "rollout"
2468
+ ]
2469
+ },
2470
+ "rollout": {
2471
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
2472
+ "type": [
2473
+ "integer",
2474
+ "null"
2475
+ ],
2476
+ "format": "uint8",
2477
+ "minimum": 0.0
2478
+ }
2479
+ }
2480
+ }
2481
+ ]
2482
+ },
2483
+ "no_inline": {
2484
+ "description": "For now, this also disallows fragments with variable definitions This also makes @module to opt in using @no_inline internally NOTE that the presence of a fragment in this list only controls whether a fragment is *allowed* to use @no_inline: whether the fragment is inlined or not depends on whether it actually uses that directive.",
2485
+ "default": {
2486
+ "kind": "disabled"
2487
+ },
2488
+ "oneOf": [
2489
+ {
2490
+ "description": "Fully disabled: developers may not use this feature",
2491
+ "type": "object",
2492
+ "required": [
2493
+ "kind"
2494
+ ],
2495
+ "properties": {
2496
+ "kind": {
2497
+ "type": "string",
2498
+ "enum": [
2499
+ "disabled"
2500
+ ]
2501
+ }
2502
+ }
2503
+ },
2504
+ {
2505
+ "description": "Fully enabled: developers may use this feature",
2506
+ "type": "object",
2507
+ "required": [
2508
+ "kind"
2509
+ ],
2510
+ "properties": {
2511
+ "kind": {
2512
+ "type": "string",
2513
+ "enum": [
2514
+ "enabled"
2515
+ ]
2516
+ }
2517
+ }
2518
+ },
2519
+ {
2520
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
2521
+ "type": "object",
2522
+ "required": [
2523
+ "allowlist",
2524
+ "kind"
2525
+ ],
2526
+ "properties": {
2527
+ "allowlist": {
2528
+ "type": "array",
2529
+ "items": {
2530
+ "type": "string"
2531
+ },
2532
+ "uniqueItems": true
2533
+ },
2534
+ "kind": {
2535
+ "type": "string",
2536
+ "enum": [
2537
+ "limited"
2538
+ ]
2539
+ }
2540
+ }
2541
+ },
2542
+ {
2543
+ "description": "Partially enabled: used for gradual rollout of the feature",
2544
+ "type": "object",
2545
+ "required": [
2546
+ "kind",
2547
+ "rollout"
2548
+ ],
2549
+ "properties": {
2550
+ "kind": {
2551
+ "type": "string",
2552
+ "enum": [
2553
+ "rollout"
2554
+ ]
2555
+ },
2556
+ "rollout": {
2557
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
2558
+ "type": [
2559
+ "integer",
2560
+ "null"
2561
+ ],
2562
+ "format": "uint8",
2563
+ "minimum": 0.0
2564
+ }
2565
+ }
2566
+ }
2567
+ ]
2568
+ },
2569
+ "prefer_fetchable_in_refetch_queries": {
2570
+ "description": "Feature flag to prefer `fetch_MyType()` generatior over `node()` query generator in @refetchable transform",
2571
+ "default": false,
2572
+ "type": "boolean"
2573
+ },
2574
+ "relay_resolver_enable_interface_output_type": {
2575
+ "default": {
2576
+ "kind": "disabled"
2577
+ },
2578
+ "oneOf": [
2579
+ {
2580
+ "description": "Fully disabled: developers may not use this feature",
2581
+ "type": "object",
2582
+ "required": [
2583
+ "kind"
2584
+ ],
2585
+ "properties": {
2586
+ "kind": {
2587
+ "type": "string",
2588
+ "enum": [
2589
+ "disabled"
2590
+ ]
2591
+ }
2592
+ }
2593
+ },
2594
+ {
2595
+ "description": "Fully enabled: developers may use this feature",
2596
+ "type": "object",
2597
+ "required": [
2598
+ "kind"
2599
+ ],
2600
+ "properties": {
2601
+ "kind": {
2602
+ "type": "string",
2603
+ "enum": [
2604
+ "enabled"
2605
+ ]
2606
+ }
2607
+ }
2608
+ },
2609
+ {
2610
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
2611
+ "type": "object",
2612
+ "required": [
2613
+ "allowlist",
2614
+ "kind"
2615
+ ],
2616
+ "properties": {
2617
+ "allowlist": {
2618
+ "type": "array",
2619
+ "items": {
2620
+ "type": "string"
2621
+ },
2622
+ "uniqueItems": true
2623
+ },
2624
+ "kind": {
2625
+ "type": "string",
2626
+ "enum": [
2627
+ "limited"
2628
+ ]
2629
+ }
2630
+ }
2631
+ },
2632
+ {
2633
+ "description": "Partially enabled: used for gradual rollout of the feature",
2634
+ "type": "object",
2635
+ "required": [
2636
+ "kind",
2637
+ "rollout"
2638
+ ],
2639
+ "properties": {
2640
+ "kind": {
2641
+ "type": "string",
2642
+ "enum": [
2643
+ "rollout"
2644
+ ]
2645
+ },
2646
+ "rollout": {
2647
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
2648
+ "type": [
2649
+ "integer",
2650
+ "null"
2651
+ ],
2652
+ "format": "uint8",
2653
+ "minimum": 0.0
2654
+ }
2655
+ }
2656
+ }
2657
+ ]
2658
+ },
2659
+ "skip_printing_nulls": {
2660
+ "default": {
2661
+ "kind": "disabled"
2662
+ },
2663
+ "oneOf": [
2664
+ {
2665
+ "description": "Fully disabled: developers may not use this feature",
2666
+ "type": "object",
2667
+ "required": [
2668
+ "kind"
2669
+ ],
2670
+ "properties": {
2671
+ "kind": {
2672
+ "type": "string",
2673
+ "enum": [
2674
+ "disabled"
2675
+ ]
2676
+ }
2677
+ }
2678
+ },
2679
+ {
2680
+ "description": "Fully enabled: developers may use this feature",
2681
+ "type": "object",
2682
+ "required": [
2683
+ "kind"
2684
+ ],
2685
+ "properties": {
2686
+ "kind": {
2687
+ "type": "string",
2688
+ "enum": [
2689
+ "enabled"
2690
+ ]
2691
+ }
2692
+ }
2693
+ },
2694
+ {
2695
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
2696
+ "type": "object",
2697
+ "required": [
2698
+ "allowlist",
2699
+ "kind"
2700
+ ],
2701
+ "properties": {
2702
+ "allowlist": {
2703
+ "type": "array",
2704
+ "items": {
2705
+ "type": "string"
2706
+ },
2707
+ "uniqueItems": true
2708
+ },
2709
+ "kind": {
2710
+ "type": "string",
2711
+ "enum": [
2712
+ "limited"
2713
+ ]
2714
+ }
2715
+ }
2716
+ },
2717
+ {
2718
+ "description": "Partially enabled: used for gradual rollout of the feature",
2719
+ "type": "object",
2720
+ "required": [
2721
+ "kind",
2722
+ "rollout"
2723
+ ],
2724
+ "properties": {
2725
+ "kind": {
2726
+ "type": "string",
2727
+ "enum": [
2728
+ "rollout"
2729
+ ]
2730
+ },
2731
+ "rollout": {
2732
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
2733
+ "type": [
2734
+ "integer",
2735
+ "null"
2736
+ ],
2737
+ "format": "uint8",
2738
+ "minimum": 0.0
2739
+ }
2740
+ }
2741
+ }
2742
+ ]
2743
+ },
2744
+ "text_artifacts": {
2745
+ "description": "Enable generation of text artifacts used to generate full query strings later.",
2746
+ "default": {
2747
+ "kind": "disabled"
2748
+ },
2749
+ "oneOf": [
2750
+ {
2751
+ "description": "Fully disabled: developers may not use this feature",
2752
+ "type": "object",
2753
+ "required": [
2754
+ "kind"
2755
+ ],
2756
+ "properties": {
2757
+ "kind": {
2758
+ "type": "string",
2759
+ "enum": [
2760
+ "disabled"
2761
+ ]
2762
+ }
2763
+ }
2764
+ },
2765
+ {
2766
+ "description": "Fully enabled: developers may use this feature",
2767
+ "type": "object",
2768
+ "required": [
2769
+ "kind"
2770
+ ],
2771
+ "properties": {
2772
+ "kind": {
2773
+ "type": "string",
2774
+ "enum": [
2775
+ "enabled"
2776
+ ]
2777
+ }
2778
+ }
2779
+ },
2780
+ {
2781
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
2782
+ "type": "object",
2783
+ "required": [
2784
+ "allowlist",
2785
+ "kind"
2786
+ ],
2787
+ "properties": {
2788
+ "allowlist": {
2789
+ "type": "array",
2790
+ "items": {
2791
+ "type": "string"
2792
+ },
2793
+ "uniqueItems": true
2794
+ },
2795
+ "kind": {
2796
+ "type": "string",
2797
+ "enum": [
2798
+ "limited"
2799
+ ]
2800
+ }
2801
+ }
2802
+ },
2803
+ {
2804
+ "description": "Partially enabled: used for gradual rollout of the feature",
2805
+ "type": "object",
2806
+ "required": [
2807
+ "kind",
2808
+ "rollout"
2809
+ ],
2810
+ "properties": {
2811
+ "kind": {
2812
+ "type": "string",
2813
+ "enum": [
2814
+ "rollout"
2815
+ ]
2816
+ },
2817
+ "rollout": {
2818
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
2819
+ "type": [
2820
+ "integer",
2821
+ "null"
2822
+ ],
2823
+ "format": "uint8",
2824
+ "minimum": 0.0
2825
+ }
2826
+ }
2827
+ }
2828
+ ]
2829
+ }
2830
+ },
2831
+ "additionalProperties": false
2832
+ },
2833
+ "generatedSources": {
2834
+ "description": "Similar to sources but not affected by excludes.",
2835
+ "default": {},
2836
+ "type": "object",
2837
+ "additionalProperties": {
2838
+ "description": "Set of project names.",
2839
+ "type": "array",
2840
+ "items": {
2841
+ "anyOf": [
2842
+ {
2843
+ "type": "null"
2844
+ },
2845
+ {
2846
+ "type": "string"
2847
+ }
2848
+ ]
2849
+ }
2850
+ }
2851
+ },
2852
+ "header": {
2853
+ "default": [],
2854
+ "type": "array",
2855
+ "items": {
2856
+ "type": "string"
2857
+ }
2858
+ },
2859
+ "isDevVariableName": {
2860
+ "description": "Then name of the global __DEV__ variable to use in generated artifacts",
2861
+ "type": [
2862
+ "string",
2863
+ "null"
2864
+ ]
2865
+ },
2866
+ "name": {
2867
+ "description": "Optional name for this config, might be used for logging or custom extra artifact generator code.",
2868
+ "default": null,
2869
+ "type": [
2870
+ "string",
2871
+ "null"
2872
+ ]
2873
+ },
2874
+ "noSourceControl": {
2875
+ "description": "Opt out of source control checks/integration.",
2876
+ "type": [
2877
+ "boolean",
2878
+ "null"
2879
+ ]
2880
+ },
2881
+ "projects": {
2882
+ "description": "Configuration of projects to compile.",
2883
+ "type": "object",
2884
+ "additionalProperties": {
2885
+ "type": "object",
2886
+ "required": [
2887
+ "language"
2888
+ ],
2889
+ "properties": {
2890
+ "base": {
2891
+ "description": "If a base project is set, the documents of that project can be referenced, but won't produce output artifacts. Extensions from the base project will be added as well and the schema of the base project should be a subset of the schema of this project.",
2892
+ "default": null,
2893
+ "anyOf": [
2894
+ {
2895
+ "anyOf": [
2896
+ {
2897
+ "type": "null"
2898
+ },
2899
+ {
2900
+ "type": "string"
2901
+ }
2902
+ ]
2903
+ },
2904
+ {
2905
+ "type": "null"
2906
+ }
2907
+ ]
2908
+ },
2909
+ "codegenCommand": {
2910
+ "default": null,
2911
+ "type": [
2912
+ "string",
2913
+ "null"
2914
+ ]
2915
+ },
2916
+ "customErrorType": {
2917
+ "description": "A map from GraphQL error name to import path, example: {\"name:: \"MyErrorName\", \"path\": \"../src/MyError\"}",
2918
+ "type": [
2919
+ "object",
2920
+ "null"
2921
+ ],
2922
+ "required": [
2923
+ "name",
2924
+ "path"
2925
+ ],
2926
+ "properties": {
2927
+ "name": {
2928
+ "type": "string"
2929
+ },
2930
+ "path": {
2931
+ "type": "string"
2932
+ }
2933
+ }
2934
+ },
2935
+ "customScalarTypes": {
2936
+ "description": "A map from GraphQL scalar types to a custom JS type, example: { \"Url\": \"String\" } { \"Url\": {\"name:: \"MyURL\", \"path\": \"../src/MyUrlTypes\"} }",
2937
+ "default": {},
2938
+ "type": "object",
2939
+ "additionalProperties": {
2940
+ "anyOf": [
2941
+ {
2942
+ "type": "string"
2943
+ },
2944
+ {
2945
+ "type": "object",
2946
+ "required": [
2947
+ "name",
2948
+ "path"
2949
+ ],
2950
+ "properties": {
2951
+ "name": {
2952
+ "type": "string"
2953
+ },
2954
+ "path": {
2955
+ "type": "string"
2956
+ }
2957
+ }
2958
+ }
2959
+ ]
2960
+ }
2961
+ },
2962
+ "diagnosticReportConfig": {
2963
+ "description": "Configuration for all diagnostic reporting in the compiler",
2964
+ "default": {
2965
+ "criticalLevel": "error"
2966
+ },
2967
+ "type": "object",
2968
+ "required": [
2969
+ "criticalLevel"
2970
+ ],
2971
+ "properties": {
2972
+ "criticalLevel": {
2973
+ "description": "Threshold for diagnostics to be critical to the compiler's execution. All diagnostic with severities at and below this level will cause the compiler to fatally exit.",
2974
+ "oneOf": [
2975
+ {
2976
+ "description": "Report only errors",
2977
+ "type": "string",
2978
+ "enum": [
2979
+ "error"
2980
+ ]
2981
+ },
2982
+ {
2983
+ "description": "Report diagnostics up to warnings",
2984
+ "type": "string",
2985
+ "enum": [
2986
+ "warning"
2987
+ ]
2988
+ },
2989
+ {
2990
+ "description": "Report diagnostics up to informational diagnostics",
2991
+ "type": "string",
2992
+ "enum": [
2993
+ "info"
2994
+ ]
2995
+ },
2996
+ {
2997
+ "description": "Report diagnostics up to hints",
2998
+ "type": "string",
2999
+ "enum": [
3000
+ "hint"
3001
+ ]
3002
+ }
3003
+ ]
3004
+ }
3005
+ }
3006
+ },
3007
+ "eagerEsModules": {
3008
+ "description": "This option enables emitting es modules artifacts.",
3009
+ "default": false,
3010
+ "type": "boolean"
3011
+ },
3012
+ "enumModuleSuffix": {
3013
+ "title": "For Flow type generation",
3014
+ "description": "When set, enum values are imported from a module with this suffix. For example, an enum Foo and this property set to \".test\" would be imported from \"Foo.test\". Note: an empty string is allowed and different from not setting the value, in the example above it would just import from \"Foo\".",
3015
+ "type": [
3016
+ "string",
3017
+ "null"
3018
+ ]
3019
+ },
3020
+ "extra": {
3021
+ "description": "A placeholder for allowing extra information in the config file",
3022
+ "default": null
3023
+ },
3024
+ "extraArtifactsOutput": {
3025
+ "description": "Some projects may need to generate extra artifacts. For those, we may need to provide an additional directory to put them. By default the will use `output` *if available",
3026
+ "type": [
3027
+ "string",
3028
+ "null"
3029
+ ]
3030
+ },
3031
+ "featureFlags": {
3032
+ "default": null,
3033
+ "type": [
3034
+ "object",
3035
+ "null"
3036
+ ],
3037
+ "properties": {
3038
+ "actor_change_support": {
3039
+ "default": {
3040
+ "kind": "disabled"
3041
+ },
3042
+ "oneOf": [
3043
+ {
3044
+ "description": "Fully disabled: developers may not use this feature",
3045
+ "type": "object",
3046
+ "required": [
3047
+ "kind"
3048
+ ],
3049
+ "properties": {
3050
+ "kind": {
3051
+ "type": "string",
3052
+ "enum": [
3053
+ "disabled"
3054
+ ]
3055
+ }
3056
+ }
3057
+ },
3058
+ {
3059
+ "description": "Fully enabled: developers may use this feature",
3060
+ "type": "object",
3061
+ "required": [
3062
+ "kind"
3063
+ ],
3064
+ "properties": {
3065
+ "kind": {
3066
+ "type": "string",
3067
+ "enum": [
3068
+ "enabled"
3069
+ ]
3070
+ }
3071
+ }
3072
+ },
3073
+ {
3074
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3075
+ "type": "object",
3076
+ "required": [
3077
+ "allowlist",
3078
+ "kind"
3079
+ ],
3080
+ "properties": {
3081
+ "allowlist": {
3082
+ "type": "array",
3083
+ "items": {
3084
+ "type": "string"
3085
+ },
3086
+ "uniqueItems": true
3087
+ },
3088
+ "kind": {
3089
+ "type": "string",
3090
+ "enum": [
3091
+ "limited"
3092
+ ]
3093
+ }
3094
+ }
3095
+ },
3096
+ {
3097
+ "description": "Partially enabled: used for gradual rollout of the feature",
3098
+ "type": "object",
3099
+ "required": [
3100
+ "kind",
3101
+ "rollout"
3102
+ ],
3103
+ "properties": {
3104
+ "kind": {
3105
+ "type": "string",
3106
+ "enum": [
3107
+ "rollout"
3108
+ ]
3109
+ },
3110
+ "rollout": {
3111
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
3112
+ "type": [
3113
+ "integer",
3114
+ "null"
3115
+ ],
3116
+ "format": "uint8",
3117
+ "minimum": 0.0
3118
+ }
3119
+ }
3120
+ }
3121
+ ]
3122
+ },
3123
+ "allow_required_in_mutation_response": {
3124
+ "description": "@required with an action of THROW is read-time feature that is not compatible with our mutation APIs. We are in the process of removing any existing examples, but this flag is part of a process of removing any existing examples.",
3125
+ "default": {
3126
+ "kind": "disabled"
3127
+ },
3128
+ "oneOf": [
3129
+ {
3130
+ "description": "Fully disabled: developers may not use this feature",
3131
+ "type": "object",
3132
+ "required": [
3133
+ "kind"
3134
+ ],
3135
+ "properties": {
3136
+ "kind": {
3137
+ "type": "string",
3138
+ "enum": [
3139
+ "disabled"
3140
+ ]
3141
+ }
3142
+ }
3143
+ },
3144
+ {
3145
+ "description": "Fully enabled: developers may use this feature",
3146
+ "type": "object",
3147
+ "required": [
3148
+ "kind"
3149
+ ],
3150
+ "properties": {
3151
+ "kind": {
3152
+ "type": "string",
3153
+ "enum": [
3154
+ "enabled"
3155
+ ]
3156
+ }
3157
+ }
3158
+ },
3159
+ {
3160
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3161
+ "type": "object",
3162
+ "required": [
3163
+ "allowlist",
3164
+ "kind"
3165
+ ],
3166
+ "properties": {
3167
+ "allowlist": {
3168
+ "type": "array",
3169
+ "items": {
3170
+ "type": "string"
3171
+ },
3172
+ "uniqueItems": true
3173
+ },
3174
+ "kind": {
3175
+ "type": "string",
3176
+ "enum": [
3177
+ "limited"
3178
+ ]
3179
+ }
3180
+ }
3181
+ },
3182
+ {
3183
+ "description": "Partially enabled: used for gradual rollout of the feature",
3184
+ "type": "object",
3185
+ "required": [
3186
+ "kind",
3187
+ "rollout"
3188
+ ],
3189
+ "properties": {
3190
+ "kind": {
3191
+ "type": "string",
3192
+ "enum": [
3193
+ "rollout"
3194
+ ]
3195
+ },
3196
+ "rollout": {
3197
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
3198
+ "type": [
3199
+ "integer",
3200
+ "null"
3201
+ ],
3202
+ "format": "uint8",
3203
+ "minimum": 0.0
3204
+ }
3205
+ }
3206
+ }
3207
+ ]
3208
+ },
3209
+ "allow_resolver_non_nullable_return_type": {
3210
+ "description": "Allow non-nullable return types from resolvers.",
3211
+ "default": {
3212
+ "kind": "disabled"
3213
+ },
3214
+ "oneOf": [
3215
+ {
3216
+ "description": "Fully disabled: developers may not use this feature",
3217
+ "type": "object",
3218
+ "required": [
3219
+ "kind"
3220
+ ],
3221
+ "properties": {
3222
+ "kind": {
3223
+ "type": "string",
3224
+ "enum": [
3225
+ "disabled"
3226
+ ]
3227
+ }
3228
+ }
3229
+ },
3230
+ {
3231
+ "description": "Fully enabled: developers may use this feature",
3232
+ "type": "object",
3233
+ "required": [
3234
+ "kind"
3235
+ ],
3236
+ "properties": {
3237
+ "kind": {
3238
+ "type": "string",
3239
+ "enum": [
3240
+ "enabled"
3241
+ ]
3242
+ }
3243
+ }
3244
+ },
3245
+ {
3246
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3247
+ "type": "object",
3248
+ "required": [
3249
+ "allowlist",
3250
+ "kind"
3251
+ ],
3252
+ "properties": {
3253
+ "allowlist": {
3254
+ "type": "array",
3255
+ "items": {
3256
+ "type": "string"
3257
+ },
3258
+ "uniqueItems": true
3259
+ },
3260
+ "kind": {
3261
+ "type": "string",
3262
+ "enum": [
3263
+ "limited"
3264
+ ]
3265
+ }
3266
+ }
3267
+ },
3268
+ {
3269
+ "description": "Partially enabled: used for gradual rollout of the feature",
3270
+ "type": "object",
3271
+ "required": [
3272
+ "kind",
3273
+ "rollout"
3274
+ ],
3275
+ "properties": {
3276
+ "kind": {
3277
+ "type": "string",
3278
+ "enum": [
3279
+ "rollout"
3280
+ ]
3281
+ },
3282
+ "rollout": {
3283
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
3284
+ "type": [
3285
+ "integer",
3286
+ "null"
3287
+ ],
3288
+ "format": "uint8",
3289
+ "minimum": 0.0
3290
+ }
3291
+ }
3292
+ }
3293
+ ]
3294
+ },
3295
+ "allow_resolvers_in_mutation_response": {
3296
+ "description": "Relay Resolvers are a read-time feature that are not actually handled in our mutation APIs. We are in the process of removing any existing examples, but this flag is part of a process of removing any existing examples.",
3297
+ "default": {
3298
+ "kind": "disabled"
3299
+ },
3300
+ "oneOf": [
3301
+ {
3302
+ "description": "Fully disabled: developers may not use this feature",
3303
+ "type": "object",
3304
+ "required": [
3305
+ "kind"
3306
+ ],
3307
+ "properties": {
3308
+ "kind": {
3309
+ "type": "string",
3310
+ "enum": [
3311
+ "disabled"
3312
+ ]
3313
+ }
3314
+ }
3315
+ },
3316
+ {
3317
+ "description": "Fully enabled: developers may use this feature",
3318
+ "type": "object",
3319
+ "required": [
3320
+ "kind"
3321
+ ],
3322
+ "properties": {
3323
+ "kind": {
3324
+ "type": "string",
3325
+ "enum": [
3326
+ "enabled"
3327
+ ]
3328
+ }
3329
+ }
3330
+ },
3331
+ {
3332
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3333
+ "type": "object",
3334
+ "required": [
3335
+ "allowlist",
3336
+ "kind"
3337
+ ],
3338
+ "properties": {
3339
+ "allowlist": {
3340
+ "type": "array",
3341
+ "items": {
3342
+ "type": "string"
3343
+ },
3344
+ "uniqueItems": true
3345
+ },
3346
+ "kind": {
3347
+ "type": "string",
3348
+ "enum": [
3349
+ "limited"
3350
+ ]
3351
+ }
3352
+ }
3353
+ },
3354
+ {
3355
+ "description": "Partially enabled: used for gradual rollout of the feature",
3356
+ "type": "object",
3357
+ "required": [
3358
+ "kind",
3359
+ "rollout"
3360
+ ],
3361
+ "properties": {
3362
+ "kind": {
3363
+ "type": "string",
3364
+ "enum": [
3365
+ "rollout"
3366
+ ]
3367
+ },
3368
+ "rollout": {
3369
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
3370
+ "type": [
3371
+ "integer",
3372
+ "null"
3373
+ ],
3374
+ "format": "uint8",
3375
+ "minimum": 0.0
3376
+ }
3377
+ }
3378
+ }
3379
+ ]
3380
+ },
3381
+ "compact_query_text": {
3382
+ "description": "Print queries in compact form",
3383
+ "default": {
3384
+ "kind": "disabled"
3385
+ },
3386
+ "oneOf": [
3387
+ {
3388
+ "description": "Fully disabled: developers may not use this feature",
3389
+ "type": "object",
3390
+ "required": [
3391
+ "kind"
3392
+ ],
3393
+ "properties": {
3394
+ "kind": {
3395
+ "type": "string",
3396
+ "enum": [
3397
+ "disabled"
3398
+ ]
3399
+ }
3400
+ }
3401
+ },
3402
+ {
3403
+ "description": "Fully enabled: developers may use this feature",
3404
+ "type": "object",
3405
+ "required": [
3406
+ "kind"
3407
+ ],
3408
+ "properties": {
3409
+ "kind": {
3410
+ "type": "string",
3411
+ "enum": [
3412
+ "enabled"
3413
+ ]
3414
+ }
3415
+ }
3416
+ },
3417
+ {
3418
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3419
+ "type": "object",
3420
+ "required": [
3421
+ "allowlist",
3422
+ "kind"
3423
+ ],
3424
+ "properties": {
3425
+ "allowlist": {
3426
+ "type": "array",
3427
+ "items": {
3428
+ "type": "string"
3429
+ },
3430
+ "uniqueItems": true
3431
+ },
3432
+ "kind": {
3433
+ "type": "string",
3434
+ "enum": [
3435
+ "limited"
3436
+ ]
3437
+ }
3438
+ }
3439
+ },
3440
+ {
3441
+ "description": "Partially enabled: used for gradual rollout of the feature",
3442
+ "type": "object",
3443
+ "required": [
3444
+ "kind",
3445
+ "rollout"
3446
+ ],
3447
+ "properties": {
3448
+ "kind": {
3449
+ "type": "string",
3450
+ "enum": [
3451
+ "rollout"
3452
+ ]
3453
+ },
3454
+ "rollout": {
3455
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
3456
+ "type": [
3457
+ "integer",
3458
+ "null"
3459
+ ],
3460
+ "format": "uint8",
3461
+ "minimum": 0.0
3462
+ }
3463
+ }
3464
+ }
3465
+ ]
3466
+ },
3467
+ "disable_edge_type_name_validation_on_declerative_connection_directives": {
3468
+ "description": "Disable validation of the `edgeTypeName` argument on `@prependNode` and `@appendNode`.",
3469
+ "default": {
3470
+ "kind": "disabled"
3471
+ },
3472
+ "oneOf": [
3473
+ {
3474
+ "description": "Fully disabled: developers may not use this feature",
3475
+ "type": "object",
3476
+ "required": [
3477
+ "kind"
3478
+ ],
3479
+ "properties": {
3480
+ "kind": {
3481
+ "type": "string",
3482
+ "enum": [
3483
+ "disabled"
3484
+ ]
3485
+ }
3486
+ }
3487
+ },
3488
+ {
3489
+ "description": "Fully enabled: developers may use this feature",
3490
+ "type": "object",
3491
+ "required": [
3492
+ "kind"
3493
+ ],
3494
+ "properties": {
3495
+ "kind": {
3496
+ "type": "string",
3497
+ "enum": [
3498
+ "enabled"
3499
+ ]
3500
+ }
3501
+ }
3502
+ },
3503
+ {
3504
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3505
+ "type": "object",
3506
+ "required": [
3507
+ "allowlist",
3508
+ "kind"
3509
+ ],
3510
+ "properties": {
3511
+ "allowlist": {
3512
+ "type": "array",
3513
+ "items": {
3514
+ "type": "string"
3515
+ },
3516
+ "uniqueItems": true
3517
+ },
3518
+ "kind": {
3519
+ "type": "string",
3520
+ "enum": [
3521
+ "limited"
3522
+ ]
3523
+ }
3524
+ }
3525
+ },
3526
+ {
3527
+ "description": "Partially enabled: used for gradual rollout of the feature",
3528
+ "type": "object",
3529
+ "required": [
3530
+ "kind",
3531
+ "rollout"
3532
+ ],
3533
+ "properties": {
3534
+ "kind": {
3535
+ "type": "string",
3536
+ "enum": [
3537
+ "rollout"
3538
+ ]
3539
+ },
3540
+ "rollout": {
3541
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
3542
+ "type": [
3543
+ "integer",
3544
+ "null"
3545
+ ],
3546
+ "format": "uint8",
3547
+ "minimum": 0.0
3548
+ }
3549
+ }
3550
+ }
3551
+ ]
3552
+ },
3553
+ "disable_full_argument_type_validation": {
3554
+ "description": "Disable full GraphQL argument type validation. Historically, we only applied argument type validation to the query that was actually going to be persisted and sent to the server. This meant that we didn't typecheck arguments passed to Relay Resolvers or Client Schema Extensions.\n\nWe also permitted an escape hatch of `uncheckedArguments_DEPRECATED` for defining fragment arguments which were not typechecked.\n\nWe no-longer support `uncheckedArguments_DEPRECATED`, and we typecheck both client and server arguments. This flag allows you to opt out of this new behavior to enable gradual adoption of the new validations.\n\nThis flag will be removed in a future version of Relay.",
3555
+ "default": {
3556
+ "kind": "disabled"
3557
+ },
3558
+ "oneOf": [
3559
+ {
3560
+ "description": "Fully disabled: developers may not use this feature",
3561
+ "type": "object",
3562
+ "required": [
3563
+ "kind"
3564
+ ],
3565
+ "properties": {
3566
+ "kind": {
3567
+ "type": "string",
3568
+ "enum": [
3569
+ "disabled"
3570
+ ]
3571
+ }
3572
+ }
3573
+ },
3574
+ {
3575
+ "description": "Fully enabled: developers may use this feature",
3576
+ "type": "object",
3577
+ "required": [
3578
+ "kind"
3579
+ ],
3580
+ "properties": {
3581
+ "kind": {
3582
+ "type": "string",
3583
+ "enum": [
3584
+ "enabled"
3585
+ ]
3586
+ }
3587
+ }
3588
+ },
3589
+ {
3590
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3591
+ "type": "object",
3592
+ "required": [
3593
+ "allowlist",
3594
+ "kind"
3595
+ ],
3596
+ "properties": {
3597
+ "allowlist": {
3598
+ "type": "array",
3599
+ "items": {
3600
+ "type": "string"
3601
+ },
3602
+ "uniqueItems": true
3603
+ },
3604
+ "kind": {
3605
+ "type": "string",
3606
+ "enum": [
3607
+ "limited"
3608
+ ]
3609
+ }
3610
+ }
3611
+ },
3612
+ {
3613
+ "description": "Partially enabled: used for gradual rollout of the feature",
3614
+ "type": "object",
3615
+ "required": [
3616
+ "kind",
3617
+ "rollout"
3618
+ ],
3619
+ "properties": {
3620
+ "kind": {
3621
+ "type": "string",
3622
+ "enum": [
3623
+ "rollout"
3624
+ ]
3625
+ },
3626
+ "rollout": {
3627
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
3628
+ "type": [
3629
+ "integer",
3630
+ "null"
3631
+ ],
3632
+ "format": "uint8",
3633
+ "minimum": 0.0
3634
+ }
3635
+ }
3636
+ }
3637
+ ]
3638
+ },
3639
+ "disable_resolver_reader_ast": {
3640
+ "description": "Mirror of `enable_resolver_normalization_ast` excludes resolver metadata from reader ast",
3641
+ "default": false,
3642
+ "type": "boolean"
3643
+ },
3644
+ "disable_schema_validation": {
3645
+ "description": "Disable validating the composite schema (server, client schema extensions, Relay Resolvers) after its built.",
3646
+ "default": false,
3647
+ "type": "boolean"
3648
+ },
3649
+ "enable_3d_branch_arg_generation": {
3650
+ "default": false,
3651
+ "type": "boolean"
3652
+ },
3653
+ "enable_exec_time_resolvers_directive": {
3654
+ "description": "Allow per-query opt in to normalization AST for Resolvers with exec_time_resolvers directive. In contrast to enable_resolver_normalization_ast, if this is true, a normalization AST can be generated for a query using the @exec_time_resolvers directive",
3655
+ "default": false,
3656
+ "type": "boolean"
3657
+ },
3658
+ "enable_fragment_argument_transform": {
3659
+ "description": "Add support for parsing and transforming variable definitions on fragment definitions and arguments on fragment spreads.",
3660
+ "default": false,
3661
+ "type": "boolean"
3662
+ },
3663
+ "enable_relay_resolver_mutations": {
3664
+ "description": "Allow relay resolvers to extend the Mutation type",
3665
+ "default": false,
3666
+ "type": "boolean"
3667
+ },
3668
+ "enable_relay_resolver_transform": {
3669
+ "default": false,
3670
+ "type": "boolean"
3671
+ },
3672
+ "enable_resolver_normalization_ast": {
3673
+ "description": "Fully build the normalization AST for Resolvers",
3674
+ "default": false,
3675
+ "type": "boolean"
3676
+ },
3677
+ "enable_strict_custom_scalars": {
3678
+ "description": "Perform strict validations when custom scalar types are used",
3679
+ "default": false,
3680
+ "type": "boolean"
3681
+ },
3682
+ "enforce_fragment_alias_where_ambiguous": {
3683
+ "description": "Enforce that you must add `@alias` to a fragment if it may not match, due to type mismatch or `@skip`/`@include`",
3684
+ "default": {
3685
+ "kind": "disabled"
3686
+ },
3687
+ "oneOf": [
3688
+ {
3689
+ "description": "Fully disabled: developers may not use this feature",
3690
+ "type": "object",
3691
+ "required": [
3692
+ "kind"
3693
+ ],
3694
+ "properties": {
3695
+ "kind": {
3696
+ "type": "string",
3697
+ "enum": [
3698
+ "disabled"
3699
+ ]
3700
+ }
3701
+ }
3702
+ },
3703
+ {
3704
+ "description": "Fully enabled: developers may use this feature",
3705
+ "type": "object",
3706
+ "required": [
3707
+ "kind"
3708
+ ],
3709
+ "properties": {
3710
+ "kind": {
3711
+ "type": "string",
3712
+ "enum": [
3713
+ "enabled"
3714
+ ]
3715
+ }
3716
+ }
3717
+ },
3718
+ {
3719
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3720
+ "type": "object",
3721
+ "required": [
3722
+ "allowlist",
3723
+ "kind"
3724
+ ],
3725
+ "properties": {
3726
+ "allowlist": {
3727
+ "type": "array",
3728
+ "items": {
3729
+ "type": "string"
3730
+ },
3731
+ "uniqueItems": true
3732
+ },
3733
+ "kind": {
3734
+ "type": "string",
3735
+ "enum": [
3736
+ "limited"
3737
+ ]
3738
+ }
3739
+ }
3740
+ },
3741
+ {
3742
+ "description": "Partially enabled: used for gradual rollout of the feature",
3743
+ "type": "object",
3744
+ "required": [
3745
+ "kind",
3746
+ "rollout"
3747
+ ],
3748
+ "properties": {
3749
+ "kind": {
3750
+ "type": "string",
3751
+ "enum": [
3752
+ "rollout"
3753
+ ]
3754
+ },
3755
+ "rollout": {
3756
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
3757
+ "type": [
3758
+ "integer",
3759
+ "null"
3760
+ ],
3761
+ "format": "uint8",
3762
+ "minimum": 0.0
3763
+ }
3764
+ }
3765
+ }
3766
+ ]
3767
+ },
3768
+ "no_inline": {
3769
+ "description": "For now, this also disallows fragments with variable definitions This also makes @module to opt in using @no_inline internally NOTE that the presence of a fragment in this list only controls whether a fragment is *allowed* to use @no_inline: whether the fragment is inlined or not depends on whether it actually uses that directive.",
3770
+ "default": {
3771
+ "kind": "disabled"
3772
+ },
3773
+ "oneOf": [
3774
+ {
3775
+ "description": "Fully disabled: developers may not use this feature",
3776
+ "type": "object",
3777
+ "required": [
3778
+ "kind"
3779
+ ],
3780
+ "properties": {
3781
+ "kind": {
3782
+ "type": "string",
3783
+ "enum": [
3784
+ "disabled"
3785
+ ]
3786
+ }
3787
+ }
3788
+ },
3789
+ {
3790
+ "description": "Fully enabled: developers may use this feature",
3791
+ "type": "object",
3792
+ "required": [
3793
+ "kind"
3794
+ ],
3795
+ "properties": {
3796
+ "kind": {
3797
+ "type": "string",
3798
+ "enum": [
3799
+ "enabled"
3800
+ ]
3801
+ }
3802
+ }
3803
+ },
3804
+ {
3805
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3806
+ "type": "object",
3807
+ "required": [
3808
+ "allowlist",
3809
+ "kind"
3810
+ ],
3811
+ "properties": {
3812
+ "allowlist": {
3813
+ "type": "array",
3814
+ "items": {
3815
+ "type": "string"
3816
+ },
3817
+ "uniqueItems": true
3818
+ },
3819
+ "kind": {
3820
+ "type": "string",
3821
+ "enum": [
3822
+ "limited"
3823
+ ]
3824
+ }
3825
+ }
3826
+ },
3827
+ {
3828
+ "description": "Partially enabled: used for gradual rollout of the feature",
3829
+ "type": "object",
3830
+ "required": [
3831
+ "kind",
3832
+ "rollout"
3833
+ ],
3834
+ "properties": {
3835
+ "kind": {
3836
+ "type": "string",
3837
+ "enum": [
3838
+ "rollout"
3839
+ ]
3840
+ },
3841
+ "rollout": {
3842
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
3843
+ "type": [
3844
+ "integer",
3845
+ "null"
3846
+ ],
3847
+ "format": "uint8",
3848
+ "minimum": 0.0
3849
+ }
3850
+ }
3851
+ }
3852
+ ]
3853
+ },
3854
+ "prefer_fetchable_in_refetch_queries": {
3855
+ "description": "Feature flag to prefer `fetch_MyType()` generatior over `node()` query generator in @refetchable transform",
3856
+ "default": false,
3857
+ "type": "boolean"
3858
+ },
3859
+ "relay_resolver_enable_interface_output_type": {
3860
+ "default": {
3861
+ "kind": "disabled"
3862
+ },
3863
+ "oneOf": [
3864
+ {
3865
+ "description": "Fully disabled: developers may not use this feature",
3866
+ "type": "object",
3867
+ "required": [
3868
+ "kind"
3869
+ ],
3870
+ "properties": {
3871
+ "kind": {
3872
+ "type": "string",
3873
+ "enum": [
3874
+ "disabled"
3875
+ ]
3876
+ }
3877
+ }
3878
+ },
3879
+ {
3880
+ "description": "Fully enabled: developers may use this feature",
3881
+ "type": "object",
3882
+ "required": [
3883
+ "kind"
3884
+ ],
3885
+ "properties": {
3886
+ "kind": {
3887
+ "type": "string",
3888
+ "enum": [
3889
+ "enabled"
3890
+ ]
3891
+ }
3892
+ }
3893
+ },
3894
+ {
3895
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3896
+ "type": "object",
3897
+ "required": [
3898
+ "allowlist",
3899
+ "kind"
3900
+ ],
3901
+ "properties": {
3902
+ "allowlist": {
3903
+ "type": "array",
3904
+ "items": {
3905
+ "type": "string"
3906
+ },
3907
+ "uniqueItems": true
3908
+ },
3909
+ "kind": {
3910
+ "type": "string",
3911
+ "enum": [
3912
+ "limited"
3913
+ ]
3914
+ }
3915
+ }
3916
+ },
3917
+ {
3918
+ "description": "Partially enabled: used for gradual rollout of the feature",
3919
+ "type": "object",
3920
+ "required": [
3921
+ "kind",
3922
+ "rollout"
3923
+ ],
3924
+ "properties": {
3925
+ "kind": {
3926
+ "type": "string",
3927
+ "enum": [
3928
+ "rollout"
3929
+ ]
3930
+ },
3931
+ "rollout": {
3932
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
3933
+ "type": [
3934
+ "integer",
3935
+ "null"
3936
+ ],
3937
+ "format": "uint8",
3938
+ "minimum": 0.0
3939
+ }
3940
+ }
3941
+ }
3942
+ ]
3943
+ },
3944
+ "skip_printing_nulls": {
3945
+ "default": {
3946
+ "kind": "disabled"
3947
+ },
3948
+ "oneOf": [
3949
+ {
3950
+ "description": "Fully disabled: developers may not use this feature",
3951
+ "type": "object",
3952
+ "required": [
3953
+ "kind"
3954
+ ],
3955
+ "properties": {
3956
+ "kind": {
3957
+ "type": "string",
3958
+ "enum": [
3959
+ "disabled"
3960
+ ]
3961
+ }
3962
+ }
3963
+ },
3964
+ {
3965
+ "description": "Fully enabled: developers may use this feature",
3966
+ "type": "object",
3967
+ "required": [
3968
+ "kind"
3969
+ ],
3970
+ "properties": {
3971
+ "kind": {
3972
+ "type": "string",
3973
+ "enum": [
3974
+ "enabled"
3975
+ ]
3976
+ }
3977
+ }
3978
+ },
3979
+ {
3980
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3981
+ "type": "object",
3982
+ "required": [
3983
+ "allowlist",
3984
+ "kind"
3985
+ ],
3986
+ "properties": {
3987
+ "allowlist": {
3988
+ "type": "array",
3989
+ "items": {
3990
+ "type": "string"
3991
+ },
3992
+ "uniqueItems": true
3993
+ },
3994
+ "kind": {
3995
+ "type": "string",
3996
+ "enum": [
3997
+ "limited"
3998
+ ]
3999
+ }
4000
+ }
4001
+ },
4002
+ {
4003
+ "description": "Partially enabled: used for gradual rollout of the feature",
4004
+ "type": "object",
4005
+ "required": [
4006
+ "kind",
4007
+ "rollout"
4008
+ ],
4009
+ "properties": {
4010
+ "kind": {
4011
+ "type": "string",
4012
+ "enum": [
4013
+ "rollout"
4014
+ ]
4015
+ },
4016
+ "rollout": {
4017
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
4018
+ "type": [
4019
+ "integer",
4020
+ "null"
4021
+ ],
4022
+ "format": "uint8",
4023
+ "minimum": 0.0
4024
+ }
4025
+ }
4026
+ }
4027
+ ]
4028
+ },
4029
+ "text_artifacts": {
4030
+ "description": "Enable generation of text artifacts used to generate full query strings later.",
4031
+ "default": {
4032
+ "kind": "disabled"
4033
+ },
4034
+ "oneOf": [
4035
+ {
4036
+ "description": "Fully disabled: developers may not use this feature",
4037
+ "type": "object",
4038
+ "required": [
4039
+ "kind"
4040
+ ],
4041
+ "properties": {
4042
+ "kind": {
4043
+ "type": "string",
4044
+ "enum": [
4045
+ "disabled"
4046
+ ]
4047
+ }
4048
+ }
4049
+ },
4050
+ {
4051
+ "description": "Fully enabled: developers may use this feature",
4052
+ "type": "object",
4053
+ "required": [
4054
+ "kind"
4055
+ ],
4056
+ "properties": {
4057
+ "kind": {
4058
+ "type": "string",
4059
+ "enum": [
4060
+ "enabled"
4061
+ ]
4062
+ }
4063
+ }
4064
+ },
4065
+ {
4066
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
4067
+ "type": "object",
4068
+ "required": [
4069
+ "allowlist",
4070
+ "kind"
4071
+ ],
4072
+ "properties": {
4073
+ "allowlist": {
4074
+ "type": "array",
4075
+ "items": {
4076
+ "type": "string"
4077
+ },
4078
+ "uniqueItems": true
4079
+ },
4080
+ "kind": {
4081
+ "type": "string",
4082
+ "enum": [
4083
+ "limited"
4084
+ ]
4085
+ }
4086
+ }
4087
+ },
4088
+ {
4089
+ "description": "Partially enabled: used for gradual rollout of the feature",
4090
+ "type": "object",
4091
+ "required": [
4092
+ "kind",
4093
+ "rollout"
4094
+ ],
4095
+ "properties": {
4096
+ "kind": {
4097
+ "type": "string",
4098
+ "enum": [
4099
+ "rollout"
4100
+ ]
4101
+ },
4102
+ "rollout": {
4103
+ "description": "A utility to enable gradual rollout of large codegen changes. Can be constructed as the Default which passes or a percentage between 0 and 100.",
4104
+ "type": [
4105
+ "integer",
4106
+ "null"
4107
+ ],
4108
+ "format": "uint8",
4109
+ "minimum": 0.0
4110
+ }
4111
+ }
4112
+ }
4113
+ ]
4114
+ }
4115
+ },
4116
+ "additionalProperties": false
4117
+ },
4118
+ "jsModuleFormat": {
4119
+ "description": "Formatting style for generated files.",
4120
+ "default": "commonjs",
4121
+ "oneOf": [
4122
+ {
4123
+ "description": "Common JS style, e.g. `require('../path/MyModule')`",
4124
+ "type": "string",
4125
+ "enum": [
4126
+ "commonjs"
4127
+ ]
4128
+ },
4129
+ {
4130
+ "description": "Facebook style, e.g. `require('MyModule')`",
4131
+ "type": "string",
4132
+ "enum": [
4133
+ "haste"
4134
+ ]
4135
+ }
4136
+ ]
4137
+ },
4138
+ "language": {
4139
+ "description": "The desired output language, \"flow\" or \"typescript\".",
4140
+ "type": "string",
4141
+ "enum": [
4142
+ "javascript",
4143
+ "typescript",
4144
+ "flow"
4145
+ ]
4146
+ },
4147
+ "moduleImportConfig": {
4148
+ "description": "Configuration for @module.",
4149
+ "default": {
4150
+ "dynamicModuleProvider": null,
4151
+ "surface": null
4152
+ },
4153
+ "type": "object",
4154
+ "properties": {
4155
+ "dynamicModuleProvider": {
4156
+ "description": "Defines the custom import statement to be generated on the `ModuleImport` node in ASTs, used for dynamically loading components at runtime.",
4157
+ "anyOf": [
4158
+ {
4159
+ "oneOf": [
4160
+ {
4161
+ "description": "Generates a module provider using JSResource",
4162
+ "type": "object",
4163
+ "required": [
4164
+ "mode"
4165
+ ],
4166
+ "properties": {
4167
+ "mode": {
4168
+ "type": "string",
4169
+ "enum": [
4170
+ "JSResource"
4171
+ ]
4172
+ }
4173
+ }
4174
+ },
4175
+ {
4176
+ "description": "Generates a custom JS import, Use `<$module>` as the placeholder for the actual module. e.g. `\"() => import('<$module>')\"`",
4177
+ "type": "object",
4178
+ "required": [
4179
+ "mode",
4180
+ "statement"
4181
+ ],
4182
+ "properties": {
4183
+ "mode": {
4184
+ "type": "string",
4185
+ "enum": [
4186
+ "Custom"
4187
+ ]
4188
+ },
4189
+ "statement": {
4190
+ "type": "string"
4191
+ }
4192
+ }
4193
+ }
4194
+ ]
4195
+ },
4196
+ {
4197
+ "type": "null"
4198
+ }
4199
+ ]
4200
+ },
4201
+ "surface": {
4202
+ "description": "Defines the surface upon which @module is enabled.",
4203
+ "type": [
4204
+ "string",
4205
+ "null"
4206
+ ],
4207
+ "enum": [
4208
+ "resolvers",
4209
+ "all"
4210
+ ]
4211
+ }
4212
+ },
4213
+ "additionalProperties": false
4214
+ },
4215
+ "noFutureProofEnums": {
4216
+ "description": "This option controls whether or not a catch-all entry is added to enum type definitions for values that may be added in the future. Enabling this means you will have to update your application whenever the GraphQL server schema adds new enum values to prevent it from breaking.",
4217
+ "default": false,
4218
+ "type": "boolean"
4219
+ },
4220
+ "optionalInputFields": {
4221
+ "title": "For Flow type generation",
4222
+ "description": "When set, generated input types will have the listed fields optional even if the schema defines them as required.",
4223
+ "default": [],
4224
+ "type": "array",
4225
+ "items": {
4226
+ "type": "string"
4227
+ }
4228
+ },
4229
+ "output": {
4230
+ "description": "A project without an output directory will put the generated files in a __generated__ directory next to the input file. All files in these directories should be generated by the Relay compiler, so that the compiler can cleanup extra files.",
4231
+ "default": null,
4232
+ "type": [
4233
+ "string",
4234
+ "null"
4235
+ ]
4236
+ },
4237
+ "persist": {
4238
+ "description": "If this option is set, the compiler will persist queries using this config.",
4239
+ "anyOf": [
4240
+ {
4241
+ "anyOf": [
4242
+ {
4243
+ "type": "object",
4244
+ "required": [
4245
+ "url"
4246
+ ],
4247
+ "properties": {
4248
+ "concurrency": {
4249
+ "default": null,
4250
+ "type": [
4251
+ "integer",
4252
+ "null"
4253
+ ],
4254
+ "format": "uint",
4255
+ "minimum": 0.0
4256
+ },
4257
+ "headers": {
4258
+ "description": "Additional headers to send",
4259
+ "default": {},
4260
+ "type": "object",
4261
+ "additionalProperties": {
4262
+ "type": "string"
4263
+ }
4264
+ },
4265
+ "includeQueryText": {
4266
+ "default": false,
4267
+ "type": "boolean"
4268
+ },
4269
+ "params": {
4270
+ "description": "The document will be in a POST parameter `text`. This map can contain additional parameters to send.",
4271
+ "default": {},
4272
+ "type": "object",
4273
+ "additionalProperties": {
4274
+ "type": "string"
4275
+ }
4276
+ },
4277
+ "url": {
4278
+ "description": "URL to send a POST request to to persist.",
4279
+ "type": "string"
4280
+ }
4281
+ },
4282
+ "additionalProperties": false
4283
+ },
4284
+ {
4285
+ "type": "object",
4286
+ "required": [
4287
+ "file"
4288
+ ],
4289
+ "properties": {
4290
+ "algorithm": {
4291
+ "default": "MD5",
4292
+ "type": "string",
4293
+ "enum": [
4294
+ "MD5",
4295
+ "SHA1",
4296
+ "SHA256"
4297
+ ]
4298
+ },
4299
+ "file": {
4300
+ "type": "string"
4301
+ },
4302
+ "include_query_text": {
4303
+ "default": false,
4304
+ "type": "boolean"
4305
+ }
4306
+ },
4307
+ "additionalProperties": false
4308
+ }
4309
+ ]
4310
+ },
4311
+ {
4312
+ "type": "null"
4313
+ }
4314
+ ]
4315
+ },
4316
+ "requireCustomScalarTypes": {
4317
+ "description": "Require all GraphQL scalar types mapping to be defined, will throw if a GraphQL scalar type doesn't have a JS type",
4318
+ "default": false,
4319
+ "type": "boolean"
4320
+ },
4321
+ "resolverContextType": {
4322
+ "description": "Indicates the type to import and use as the context for live resolvers.",
4323
+ "default": null,
4324
+ "anyOf": [
4325
+ {
4326
+ "anyOf": [
4327
+ {
4328
+ "description": "Specifies how Relay can import the Resolver context type from a path",
4329
+ "type": "object",
4330
+ "required": [
4331
+ "name",
4332
+ "path"
4333
+ ],
4334
+ "properties": {
4335
+ "name": {
4336
+ "description": "The name under which the type is exported from the module",
4337
+ "type": "string"
4338
+ },
4339
+ "path": {
4340
+ "description": "The path to the module relative to the project root",
4341
+ "type": "string"
4342
+ }
4343
+ }
4344
+ },
4345
+ {
4346
+ "description": "Specifies how Relay can import the Resolver context type from a named package",
4347
+ "type": "object",
4348
+ "required": [
4349
+ "name",
4350
+ "package"
4351
+ ],
4352
+ "properties": {
4353
+ "name": {
4354
+ "description": "The name under which the type is exported from the package",
4355
+ "type": "string"
4356
+ },
4357
+ "package": {
4358
+ "description": "The name of the package",
4359
+ "type": "string"
4360
+ }
4361
+ }
4362
+ }
4363
+ ]
4364
+ },
4365
+ {
4366
+ "type": "null"
4367
+ }
4368
+ ]
4369
+ },
4370
+ "resolversSchemaModule": {
4371
+ "description": "Configuration for resolvers_schema_module generation",
4372
+ "default": null,
4373
+ "type": [
4374
+ "object",
4375
+ "null"
4376
+ ],
4377
+ "properties": {
4378
+ "applyToNormalizationAst": {
4379
+ "default": false,
4380
+ "type": "boolean"
4381
+ },
4382
+ "path": {
4383
+ "default": "",
4384
+ "type": "string"
4385
+ }
4386
+ },
4387
+ "additionalProperties": false
4388
+ },
4389
+ "rollout": {
4390
+ "description": "A generic rollout state for larger codegen changes. The default is to pass, otherwise it should be a number between 0 and 100 as a percentage.",
4391
+ "default": null,
4392
+ "type": [
4393
+ "integer",
4394
+ "null"
4395
+ ],
4396
+ "format": "uint8",
4397
+ "minimum": 0.0
4398
+ },
4399
+ "schema": {
4400
+ "description": "Path to the schema.graphql or a directory containing a schema broken up in multiple *.graphql files. Exactly 1 of these options needs to be defined.",
4401
+ "type": [
4402
+ "string",
4403
+ "null"
4404
+ ]
4405
+ },
4406
+ "schemaConfig": {
4407
+ "default": {
4408
+ "connectionInterface": {
4409
+ "cursor": "cursor",
4410
+ "edges": "edges",
4411
+ "endCursor": "endCursor",
4412
+ "hasNextPage": "hasNextPage",
4413
+ "hasPreviousPage": "hasPreviousPage",
4414
+ "node": "node",
4415
+ "pageInfo": "pageInfo",
4416
+ "startCursor": "startCursor"
4417
+ },
4418
+ "deferStreamInterface": {
4419
+ "deferName": "defer",
4420
+ "ifArg": "if",
4421
+ "initialCountArg": "initialCount",
4422
+ "labelArg": "label",
4423
+ "streamName": "stream",
4424
+ "useCustomizedBatchArg": "useCustomizedBatch"
4425
+ },
4426
+ "nodeInterfaceIdField": "id",
4427
+ "nodeInterfaceIdVariableName": "id",
4428
+ "nonNodeIdFields": null,
4429
+ "unselectableDirectiveName": "unselectable"
4430
+ },
4431
+ "type": "object",
4432
+ "properties": {
4433
+ "connectionInterface": {
4434
+ "description": "Configuration where Relay should expect some fields in the schema.",
4435
+ "default": {
4436
+ "cursor": "cursor",
4437
+ "edges": "edges",
4438
+ "endCursor": "endCursor",
4439
+ "hasNextPage": "hasNextPage",
4440
+ "hasPreviousPage": "hasPreviousPage",
4441
+ "node": "node",
4442
+ "pageInfo": "pageInfo",
4443
+ "startCursor": "startCursor"
4444
+ },
4445
+ "type": "object",
4446
+ "required": [
4447
+ "cursor",
4448
+ "edges",
4449
+ "endCursor",
4450
+ "hasNextPage",
4451
+ "hasPreviousPage",
4452
+ "node",
4453
+ "pageInfo",
4454
+ "startCursor"
4455
+ ],
4456
+ "properties": {
4457
+ "cursor": {
4458
+ "type": "string"
4459
+ },
4460
+ "edges": {
4461
+ "type": "string"
4462
+ },
4463
+ "endCursor": {
4464
+ "type": "string"
4465
+ },
4466
+ "hasNextPage": {
4467
+ "type": "string"
4468
+ },
4469
+ "hasPreviousPage": {
4470
+ "type": "string"
4471
+ },
4472
+ "node": {
4473
+ "type": "string"
4474
+ },
4475
+ "pageInfo": {
4476
+ "type": "string"
4477
+ },
4478
+ "startCursor": {
4479
+ "type": "string"
4480
+ }
4481
+ },
4482
+ "additionalProperties": false
4483
+ },
4484
+ "deferStreamInterface": {
4485
+ "description": "Configuration where Relay should expect some fields in the schema.",
4486
+ "default": {
4487
+ "deferName": "defer",
4488
+ "ifArg": "if",
4489
+ "initialCountArg": "initialCount",
4490
+ "labelArg": "label",
4491
+ "streamName": "stream",
4492
+ "useCustomizedBatchArg": "useCustomizedBatch"
4493
+ },
4494
+ "type": "object",
4495
+ "required": [
4496
+ "deferName",
4497
+ "ifArg",
4498
+ "initialCountArg",
4499
+ "labelArg",
4500
+ "streamName",
4501
+ "useCustomizedBatchArg"
4502
+ ],
4503
+ "properties": {
4504
+ "deferName": {
4505
+ "description": "Wrapper struct for clarity rather than having StringKey everywhere.",
4506
+ "type": "string"
4507
+ },
4508
+ "ifArg": {
4509
+ "type": "string"
4510
+ },
4511
+ "initialCountArg": {
4512
+ "type": "string"
4513
+ },
4514
+ "labelArg": {
4515
+ "type": "string"
4516
+ },
4517
+ "streamName": {
4518
+ "description": "Wrapper struct for clarity rather than having StringKey everywhere.",
4519
+ "type": "string"
4520
+ },
4521
+ "useCustomizedBatchArg": {
4522
+ "type": "string"
4523
+ }
4524
+ },
4525
+ "additionalProperties": false
4526
+ },
4527
+ "nodeInterfaceIdField": {
4528
+ "description": "The name of the `id` field that exists on the `Node` interface.",
4529
+ "default": "id",
4530
+ "type": "string"
4531
+ },
4532
+ "nodeInterfaceIdVariableName": {
4533
+ "description": "The name of the variable expected by the `node` query.",
4534
+ "default": "id",
4535
+ "type": "string"
4536
+ },
4537
+ "nonNodeIdFields": {
4538
+ "description": "Configuration of Relay's validation for `id` fields outside of the `Node` interface.",
4539
+ "default": null,
4540
+ "type": [
4541
+ "object",
4542
+ "null"
4543
+ ],
4544
+ "properties": {
4545
+ "allowedIdTypes": {
4546
+ "description": "A map of parent type names to allowed type names for fields named `id`",
4547
+ "default": {},
4548
+ "type": "object",
4549
+ "additionalProperties": {
4550
+ "type": "string"
4551
+ }
4552
+ }
4553
+ },
4554
+ "additionalProperties": false
4555
+ },
4556
+ "unselectableDirectiveName": {
4557
+ "description": "The name of the directive indicating fields that cannot be selected",
4558
+ "default": "unselectable",
4559
+ "type": "string"
4560
+ }
4561
+ }
4562
+ },
4563
+ "schemaDir": {
4564
+ "type": [
4565
+ "string",
4566
+ "null"
4567
+ ]
4568
+ },
4569
+ "schemaExtensions": {
4570
+ "description": "Directory containing *.graphql files with schema extensions.",
4571
+ "default": [],
4572
+ "type": "array",
4573
+ "items": {
4574
+ "type": "string"
4575
+ }
4576
+ },
4577
+ "shardOutput": {
4578
+ "description": "If `output` is provided and `shard_output` is `true`, shard the files by putting them under `{output_dir}/{source_relative_path}`",
4579
+ "default": false,
4580
+ "type": "boolean"
4581
+ },
4582
+ "shardStripRegex": {
4583
+ "description": "Regex to match and strip parts of the `source_relative_path`",
4584
+ "default": null,
4585
+ "type": [
4586
+ "string",
4587
+ "null"
4588
+ ]
4589
+ },
4590
+ "testPathRegex": {
4591
+ "description": "Optional regex to restrict @relay_test_operation to directories matching this regex. Defaults to no limitations.",
4592
+ "default": null,
4593
+ "type": [
4594
+ "string",
4595
+ "null"
4596
+ ]
4597
+ },
4598
+ "typescriptExcludeUndefinedFromNullableUnion": {
4599
+ "description": "Keep the previous compiler behavior by outputting an union of the raw type and null, and not the **correct** behavior of an union with the raw type, null and undefined.",
4600
+ "default": false,
4601
+ "type": "boolean"
4602
+ },
4603
+ "useImportTypeSyntax": {
4604
+ "title": "For Typescript type generation",
4605
+ "description": "Whether to use the `import type` syntax introduced in Typescript version 3.8. This will prevent warnings from `importsNotUsedAsValues`.",
4606
+ "default": false,
4607
+ "type": "boolean"
4608
+ },
4609
+ "variableNamesComment": {
4610
+ "description": "Generates a `// @relayVariables name1 name2` header in generated operation files",
4611
+ "default": false,
4612
+ "type": "boolean"
4613
+ }
4614
+ },
4615
+ "additionalProperties": false
4616
+ }
4617
+ },
4618
+ "root": {
4619
+ "description": "Root directory relative to the config file. Defaults to the directory where the config is located.",
4620
+ "default": null,
4621
+ "type": [
4622
+ "string",
4623
+ "null"
4624
+ ]
4625
+ },
4626
+ "savedStateConfig": {
4627
+ "description": "Watchman saved state config.",
4628
+ "type": [
4629
+ "object",
4630
+ "null"
4631
+ ],
4632
+ "properties": {
4633
+ "mergebase": {
4634
+ "type": [
4635
+ "string",
4636
+ "null"
4637
+ ]
4638
+ },
4639
+ "mergebase-with": {
4640
+ "type": [
4641
+ "string",
4642
+ "null"
4643
+ ]
4644
+ },
4645
+ "saved-state": {
4646
+ "description": "Holds extended clock data that includes source control aware query metadata. <https://facebook.github.io/watchman/docs/scm-query.html>",
4647
+ "type": [
4648
+ "object",
4649
+ "null"
4650
+ ],
4651
+ "properties": {
4652
+ "commit-id": {
4653
+ "type": [
4654
+ "string",
4655
+ "null"
4656
+ ]
4657
+ },
4658
+ "config": true,
4659
+ "storage": {
4660
+ "type": [
4661
+ "string",
4662
+ "null"
4663
+ ]
4664
+ }
4665
+ }
4666
+ }
4667
+ }
4668
+ },
4669
+ "sources": {
4670
+ "description": "A mapping from directory paths (relative to the root) to a source set. If a path is a subdirectory of another path, the more specific path wins.",
4671
+ "type": "object",
4672
+ "additionalProperties": {
4673
+ "anyOf": [
4674
+ {
4675
+ "anyOf": [
4676
+ {
4677
+ "type": "null"
4678
+ },
4679
+ {
4680
+ "type": "string"
4681
+ }
4682
+ ]
4683
+ },
4684
+ {
4685
+ "type": "array",
4686
+ "items": {
4687
+ "anyOf": [
4688
+ {
4689
+ "type": "null"
4690
+ },
4691
+ {
4692
+ "type": "string"
4693
+ }
4694
+ ]
4695
+ }
4696
+ }
4697
+ ]
4698
+ }
4699
+ }
4700
+ },
4701
+ "additionalProperties": false
4702
+ }
4703
+ ]
4704
+ }