relay-compiler 18.0.0 → 18.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -540,6 +540,92 @@
540
540
  }
541
541
  ]
542
542
  },
543
+ "disable_deduping_common_structures_in_artifacts": {
544
+ "description": "Skip the optimization which extracts common JavaScript structures in generated artifacts into numbered variables and uses them by reference in each position in which they occur.\n\nThis optimization can make it hard to follow changes to generated code, so being able to disable it can be helpful for debugging.\n\nTo disable deduping for just one fragment or operation's generated artifacts:\n\n```json \"disable_deduping_common_structures_in_artifacts\": { { \"kind\": \"limited\", \"allowList\": [\"<operation_or_fragment_name>\"] } } ```",
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
+ },
543
629
  "disable_edge_type_name_validation_on_declerative_connection_directives": {
544
630
  "description": "Disable validation of the `edgeTypeName` argument on `@prependNode` and `@appendNode`.",
545
631
  "default": {
@@ -741,10 +827,6 @@
741
827
  "default": false,
742
828
  "type": "boolean"
743
829
  },
744
- "enable_relay_resolver_transform": {
745
- "default": false,
746
- "type": "boolean"
747
- },
748
830
  "enable_resolver_normalization_ast": {
749
831
  "description": "Fully build the normalization AST for Resolvers",
750
832
  "default": false,
@@ -841,6 +923,92 @@
841
923
  }
842
924
  ]
843
925
  },
926
+ "legacy_include_path_in_required_reader_nodes": {
927
+ "description": "The `path` field in `@required` Reader AST nodes is no longer used. But removing them in one diff is too large of a change to ship at once.\n\nThis flag will allow us to use the rollout FeatureFlag to remove them across a number of diffs.",
928
+ "default": {
929
+ "kind": "disabled"
930
+ },
931
+ "oneOf": [
932
+ {
933
+ "description": "Fully disabled: developers may not use this feature",
934
+ "type": "object",
935
+ "required": [
936
+ "kind"
937
+ ],
938
+ "properties": {
939
+ "kind": {
940
+ "type": "string",
941
+ "enum": [
942
+ "disabled"
943
+ ]
944
+ }
945
+ }
946
+ },
947
+ {
948
+ "description": "Fully enabled: developers may use this feature",
949
+ "type": "object",
950
+ "required": [
951
+ "kind"
952
+ ],
953
+ "properties": {
954
+ "kind": {
955
+ "type": "string",
956
+ "enum": [
957
+ "enabled"
958
+ ]
959
+ }
960
+ }
961
+ },
962
+ {
963
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
964
+ "type": "object",
965
+ "required": [
966
+ "allowlist",
967
+ "kind"
968
+ ],
969
+ "properties": {
970
+ "allowlist": {
971
+ "type": "array",
972
+ "items": {
973
+ "type": "string"
974
+ },
975
+ "uniqueItems": true
976
+ },
977
+ "kind": {
978
+ "type": "string",
979
+ "enum": [
980
+ "limited"
981
+ ]
982
+ }
983
+ }
984
+ },
985
+ {
986
+ "description": "Partially enabled: used for gradual rollout of the feature",
987
+ "type": "object",
988
+ "required": [
989
+ "kind",
990
+ "rollout"
991
+ ],
992
+ "properties": {
993
+ "kind": {
994
+ "type": "string",
995
+ "enum": [
996
+ "rollout"
997
+ ]
998
+ },
999
+ "rollout": {
1000
+ "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.",
1001
+ "type": [
1002
+ "integer",
1003
+ "null"
1004
+ ],
1005
+ "format": "uint8",
1006
+ "minimum": 0.0
1007
+ }
1008
+ }
1009
+ }
1010
+ ]
1011
+ },
844
1012
  "no_inline": {
845
1013
  "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
1014
  "default": {
@@ -927,6 +1095,92 @@
927
1095
  }
928
1096
  ]
929
1097
  },
1098
+ "omit_resolver_type_assertions_for_confirmed_types": {
1099
+ "description": "Skip generating resolver type assertions for resolvers which have been derived from TS/Flow types.",
1100
+ "default": {
1101
+ "kind": "disabled"
1102
+ },
1103
+ "oneOf": [
1104
+ {
1105
+ "description": "Fully disabled: developers may not use this feature",
1106
+ "type": "object",
1107
+ "required": [
1108
+ "kind"
1109
+ ],
1110
+ "properties": {
1111
+ "kind": {
1112
+ "type": "string",
1113
+ "enum": [
1114
+ "disabled"
1115
+ ]
1116
+ }
1117
+ }
1118
+ },
1119
+ {
1120
+ "description": "Fully enabled: developers may use this feature",
1121
+ "type": "object",
1122
+ "required": [
1123
+ "kind"
1124
+ ],
1125
+ "properties": {
1126
+ "kind": {
1127
+ "type": "string",
1128
+ "enum": [
1129
+ "enabled"
1130
+ ]
1131
+ }
1132
+ }
1133
+ },
1134
+ {
1135
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
1136
+ "type": "object",
1137
+ "required": [
1138
+ "allowlist",
1139
+ "kind"
1140
+ ],
1141
+ "properties": {
1142
+ "allowlist": {
1143
+ "type": "array",
1144
+ "items": {
1145
+ "type": "string"
1146
+ },
1147
+ "uniqueItems": true
1148
+ },
1149
+ "kind": {
1150
+ "type": "string",
1151
+ "enum": [
1152
+ "limited"
1153
+ ]
1154
+ }
1155
+ }
1156
+ },
1157
+ {
1158
+ "description": "Partially enabled: used for gradual rollout of the feature",
1159
+ "type": "object",
1160
+ "required": [
1161
+ "kind",
1162
+ "rollout"
1163
+ ],
1164
+ "properties": {
1165
+ "kind": {
1166
+ "type": "string",
1167
+ "enum": [
1168
+ "rollout"
1169
+ ]
1170
+ },
1171
+ "rollout": {
1172
+ "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.",
1173
+ "type": [
1174
+ "integer",
1175
+ "null"
1176
+ ],
1177
+ "format": "uint8",
1178
+ "minimum": 0.0
1179
+ }
1180
+ }
1181
+ }
1182
+ ]
1183
+ },
930
1184
  "prefer_fetchable_in_refetch_queries": {
931
1185
  "description": "Feature flag to prefer `fetch_MyType()` generatior over `node()` query generator in @refetchable transform",
932
1186
  "default": false,
@@ -1187,7 +1441,93 @@
1187
1441
  }
1188
1442
  }
1189
1443
  ]
1190
- }
1444
+ },
1445
+ "use_reader_module_imports": {
1446
+ "description": "Generate the `moduleImports` field in the Reader AST.",
1447
+ "default": {
1448
+ "kind": "disabled"
1449
+ },
1450
+ "oneOf": [
1451
+ {
1452
+ "description": "Fully disabled: developers may not use this feature",
1453
+ "type": "object",
1454
+ "required": [
1455
+ "kind"
1456
+ ],
1457
+ "properties": {
1458
+ "kind": {
1459
+ "type": "string",
1460
+ "enum": [
1461
+ "disabled"
1462
+ ]
1463
+ }
1464
+ }
1465
+ },
1466
+ {
1467
+ "description": "Fully enabled: developers may use this feature",
1468
+ "type": "object",
1469
+ "required": [
1470
+ "kind"
1471
+ ],
1472
+ "properties": {
1473
+ "kind": {
1474
+ "type": "string",
1475
+ "enum": [
1476
+ "enabled"
1477
+ ]
1478
+ }
1479
+ }
1480
+ },
1481
+ {
1482
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
1483
+ "type": "object",
1484
+ "required": [
1485
+ "allowlist",
1486
+ "kind"
1487
+ ],
1488
+ "properties": {
1489
+ "allowlist": {
1490
+ "type": "array",
1491
+ "items": {
1492
+ "type": "string"
1493
+ },
1494
+ "uniqueItems": true
1495
+ },
1496
+ "kind": {
1497
+ "type": "string",
1498
+ "enum": [
1499
+ "limited"
1500
+ ]
1501
+ }
1502
+ }
1503
+ },
1504
+ {
1505
+ "description": "Partially enabled: used for gradual rollout of the feature",
1506
+ "type": "object",
1507
+ "required": [
1508
+ "kind",
1509
+ "rollout"
1510
+ ],
1511
+ "properties": {
1512
+ "kind": {
1513
+ "type": "string",
1514
+ "enum": [
1515
+ "rollout"
1516
+ ]
1517
+ },
1518
+ "rollout": {
1519
+ "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.",
1520
+ "type": [
1521
+ "integer",
1522
+ "null"
1523
+ ],
1524
+ "format": "uint8",
1525
+ "minimum": 0.0
1526
+ }
1527
+ }
1528
+ }
1529
+ ]
1530
+ }
1191
1531
  },
1192
1532
  "additionalProperties": false
1193
1533
  },
@@ -1323,14 +1663,17 @@
1323
1663
  "default": null,
1324
1664
  "anyOf": [
1325
1665
  {
1666
+ "description": "Configuration for how the Relay Compiler should persist GraphQL queries.",
1326
1667
  "anyOf": [
1327
1668
  {
1669
+ "description": "This variant represents a remote persistence configuration, where GraphQL queries are sent to a remote endpoint for persistence.",
1328
1670
  "type": "object",
1329
1671
  "required": [
1330
1672
  "url"
1331
1673
  ],
1332
1674
  "properties": {
1333
1675
  "concurrency": {
1676
+ "description": "Number of concurrent requests that can be made to the server.",
1334
1677
  "default": null,
1335
1678
  "type": [
1336
1679
  "integer",
@@ -1340,7 +1683,7 @@
1340
1683
  "minimum": 0.0
1341
1684
  },
1342
1685
  "headers": {
1343
- "description": "Additional headers to send",
1686
+ "description": "Additional headers to include in the POST request.",
1344
1687
  "default": {},
1345
1688
  "type": "object",
1346
1689
  "additionalProperties": {
@@ -1348,11 +1691,12 @@
1348
1691
  }
1349
1692
  },
1350
1693
  "includeQueryText": {
1694
+ "description": "Whether to include the query text in the persisted document.",
1351
1695
  "default": false,
1352
1696
  "type": "boolean"
1353
1697
  },
1354
1698
  "params": {
1355
- "description": "The document will be in a POST parameter `text`. This map can contain additional parameters to send.",
1699
+ "description": "Additional parameters to include in the POST request.\n\nThe main document will be in a POST parameter `text`. This map can contain additional parameters to send.",
1356
1700
  "default": {},
1357
1701
  "type": "object",
1358
1702
  "additionalProperties": {
@@ -1360,19 +1704,21 @@
1360
1704
  }
1361
1705
  },
1362
1706
  "url": {
1363
- "description": "URL to send a POST request to to persist.",
1707
+ "description": "URL that the document should be persisted to via a POST request.",
1364
1708
  "type": "string"
1365
1709
  }
1366
1710
  },
1367
1711
  "additionalProperties": false
1368
1712
  },
1369
1713
  {
1714
+ "description": "This variant represents a local persistence configuration, where GraphQL queries are persisted to a local JSON file.\n\nWhen this variant is used, the compiler will attempt to read the local file as a hash map, add new queries to the map, and then serialize and write the resulting map to the configured path.",
1370
1715
  "type": "object",
1371
1716
  "required": [
1372
1717
  "file"
1373
1718
  ],
1374
1719
  "properties": {
1375
1720
  "algorithm": {
1721
+ "description": "The algorithm to use for hashing the operation text.",
1376
1722
  "default": "MD5",
1377
1723
  "type": "string",
1378
1724
  "enum": [
@@ -1382,9 +1728,11 @@
1382
1728
  ]
1383
1729
  },
1384
1730
  "file": {
1731
+ "description": "The file path where the persisted documents will be written.",
1385
1732
  "type": "string"
1386
1733
  },
1387
1734
  "include_query_text": {
1735
+ "description": "Whether to include the query text in the persisted document.",
1388
1736
  "default": false,
1389
1737
  "type": "boolean"
1390
1738
  }
@@ -1716,6 +2064,9 @@
1716
2064
  "compact_query_text": {
1717
2065
  "kind": "disabled"
1718
2066
  },
2067
+ "disable_deduping_common_structures_in_artifacts": {
2068
+ "kind": "disabled"
2069
+ },
1719
2070
  "disable_edge_type_name_validation_on_declerative_connection_directives": {
1720
2071
  "kind": "disabled"
1721
2072
  },
@@ -1728,15 +2079,20 @@
1728
2079
  "enable_exec_time_resolvers_directive": false,
1729
2080
  "enable_fragment_argument_transform": false,
1730
2081
  "enable_relay_resolver_mutations": false,
1731
- "enable_relay_resolver_transform": false,
1732
2082
  "enable_resolver_normalization_ast": false,
1733
2083
  "enable_strict_custom_scalars": false,
1734
2084
  "enforce_fragment_alias_where_ambiguous": {
1735
2085
  "kind": "disabled"
1736
2086
  },
2087
+ "legacy_include_path_in_required_reader_nodes": {
2088
+ "kind": "disabled"
2089
+ },
1737
2090
  "no_inline": {
1738
2091
  "kind": "disabled"
1739
2092
  },
2093
+ "omit_resolver_type_assertions_for_confirmed_types": {
2094
+ "kind": "disabled"
2095
+ },
1740
2096
  "prefer_fetchable_in_refetch_queries": false,
1741
2097
  "relay_resolver_enable_interface_output_type": {
1742
2098
  "kind": "disabled"
@@ -1746,6 +2102,9 @@
1746
2102
  },
1747
2103
  "text_artifacts": {
1748
2104
  "kind": "disabled"
2105
+ },
2106
+ "use_reader_module_imports": {
2107
+ "kind": "disabled"
1749
2108
  }
1750
2109
  },
1751
2110
  "type": "object",
@@ -2179,6 +2538,92 @@
2179
2538
  }
2180
2539
  ]
2181
2540
  },
2541
+ "disable_deduping_common_structures_in_artifacts": {
2542
+ "description": "Skip the optimization which extracts common JavaScript structures in generated artifacts into numbered variables and uses them by reference in each position in which they occur.\n\nThis optimization can make it hard to follow changes to generated code, so being able to disable it can be helpful for debugging.\n\nTo disable deduping for just one fragment or operation's generated artifacts:\n\n```json \"disable_deduping_common_structures_in_artifacts\": { { \"kind\": \"limited\", \"allowList\": [\"<operation_or_fragment_name>\"] } } ```",
2543
+ "default": {
2544
+ "kind": "disabled"
2545
+ },
2546
+ "oneOf": [
2547
+ {
2548
+ "description": "Fully disabled: developers may not use this feature",
2549
+ "type": "object",
2550
+ "required": [
2551
+ "kind"
2552
+ ],
2553
+ "properties": {
2554
+ "kind": {
2555
+ "type": "string",
2556
+ "enum": [
2557
+ "disabled"
2558
+ ]
2559
+ }
2560
+ }
2561
+ },
2562
+ {
2563
+ "description": "Fully enabled: developers may use this feature",
2564
+ "type": "object",
2565
+ "required": [
2566
+ "kind"
2567
+ ],
2568
+ "properties": {
2569
+ "kind": {
2570
+ "type": "string",
2571
+ "enum": [
2572
+ "enabled"
2573
+ ]
2574
+ }
2575
+ }
2576
+ },
2577
+ {
2578
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
2579
+ "type": "object",
2580
+ "required": [
2581
+ "allowlist",
2582
+ "kind"
2583
+ ],
2584
+ "properties": {
2585
+ "allowlist": {
2586
+ "type": "array",
2587
+ "items": {
2588
+ "type": "string"
2589
+ },
2590
+ "uniqueItems": true
2591
+ },
2592
+ "kind": {
2593
+ "type": "string",
2594
+ "enum": [
2595
+ "limited"
2596
+ ]
2597
+ }
2598
+ }
2599
+ },
2600
+ {
2601
+ "description": "Partially enabled: used for gradual rollout of the feature",
2602
+ "type": "object",
2603
+ "required": [
2604
+ "kind",
2605
+ "rollout"
2606
+ ],
2607
+ "properties": {
2608
+ "kind": {
2609
+ "type": "string",
2610
+ "enum": [
2611
+ "rollout"
2612
+ ]
2613
+ },
2614
+ "rollout": {
2615
+ "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.",
2616
+ "type": [
2617
+ "integer",
2618
+ "null"
2619
+ ],
2620
+ "format": "uint8",
2621
+ "minimum": 0.0
2622
+ }
2623
+ }
2624
+ }
2625
+ ]
2626
+ },
2182
2627
  "disable_edge_type_name_validation_on_declerative_connection_directives": {
2183
2628
  "description": "Disable validation of the `edgeTypeName` argument on `@prependNode` and `@appendNode`.",
2184
2629
  "default": {
@@ -2380,10 +2825,6 @@
2380
2825
  "default": false,
2381
2826
  "type": "boolean"
2382
2827
  },
2383
- "enable_relay_resolver_transform": {
2384
- "default": false,
2385
- "type": "boolean"
2386
- },
2387
2828
  "enable_resolver_normalization_ast": {
2388
2829
  "description": "Fully build the normalization AST for Resolvers",
2389
2830
  "default": false,
@@ -2480,8 +2921,8 @@
2480
2921
  }
2481
2922
  ]
2482
2923
  },
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.",
2924
+ "legacy_include_path_in_required_reader_nodes": {
2925
+ "description": "The `path` field in `@required` Reader AST nodes is no longer used. But removing them in one diff is too large of a change to ship at once.\n\nThis flag will allow us to use the rollout FeatureFlag to remove them across a number of diffs.",
2485
2926
  "default": {
2486
2927
  "kind": "disabled"
2487
2928
  },
@@ -2566,12 +3007,8 @@
2566
3007
  }
2567
3008
  ]
2568
3009
  },
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": {
3010
+ "no_inline": {
3011
+ "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.",
2575
3012
  "default": {
2576
3013
  "kind": "disabled"
2577
3014
  },
@@ -2656,7 +3093,8 @@
2656
3093
  }
2657
3094
  ]
2658
3095
  },
2659
- "skip_printing_nulls": {
3096
+ "omit_resolver_type_assertions_for_confirmed_types": {
3097
+ "description": "Skip generating resolver type assertions for resolvers which have been derived from TS/Flow types.",
2660
3098
  "default": {
2661
3099
  "kind": "disabled"
2662
3100
  },
@@ -2741,8 +3179,12 @@
2741
3179
  }
2742
3180
  ]
2743
3181
  },
2744
- "text_artifacts": {
2745
- "description": "Enable generation of text artifacts used to generate full query strings later.",
3182
+ "prefer_fetchable_in_refetch_queries": {
3183
+ "description": "Feature flag to prefer `fetch_MyType()` generatior over `node()` query generator in @refetchable transform",
3184
+ "default": false,
3185
+ "type": "boolean"
3186
+ },
3187
+ "relay_resolver_enable_interface_output_type": {
2746
3188
  "default": {
2747
3189
  "kind": "disabled"
2748
3190
  },
@@ -2826,47 +3268,307 @@
2826
3268
  }
2827
3269
  }
2828
3270
  ]
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": [
3271
+ },
3272
+ "skip_printing_nulls": {
3273
+ "default": {
3274
+ "kind": "disabled"
3275
+ },
3276
+ "oneOf": [
2842
3277
  {
2843
- "type": "null"
3278
+ "description": "Fully disabled: developers may not use this feature",
3279
+ "type": "object",
3280
+ "required": [
3281
+ "kind"
3282
+ ],
3283
+ "properties": {
3284
+ "kind": {
3285
+ "type": "string",
3286
+ "enum": [
3287
+ "disabled"
3288
+ ]
3289
+ }
3290
+ }
2844
3291
  },
2845
3292
  {
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": [
3293
+ "description": "Fully enabled: developers may use this feature",
3294
+ "type": "object",
3295
+ "required": [
3296
+ "kind"
3297
+ ],
3298
+ "properties": {
3299
+ "kind": {
3300
+ "type": "string",
3301
+ "enum": [
3302
+ "enabled"
3303
+ ]
3304
+ }
3305
+ }
3306
+ },
3307
+ {
3308
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3309
+ "type": "object",
3310
+ "required": [
3311
+ "allowlist",
3312
+ "kind"
3313
+ ],
3314
+ "properties": {
3315
+ "allowlist": {
3316
+ "type": "array",
3317
+ "items": {
3318
+ "type": "string"
3319
+ },
3320
+ "uniqueItems": true
3321
+ },
3322
+ "kind": {
3323
+ "type": "string",
3324
+ "enum": [
3325
+ "limited"
3326
+ ]
3327
+ }
3328
+ }
3329
+ },
3330
+ {
3331
+ "description": "Partially enabled: used for gradual rollout of the feature",
3332
+ "type": "object",
3333
+ "required": [
3334
+ "kind",
3335
+ "rollout"
3336
+ ],
3337
+ "properties": {
3338
+ "kind": {
3339
+ "type": "string",
3340
+ "enum": [
3341
+ "rollout"
3342
+ ]
3343
+ },
3344
+ "rollout": {
3345
+ "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.",
3346
+ "type": [
3347
+ "integer",
3348
+ "null"
3349
+ ],
3350
+ "format": "uint8",
3351
+ "minimum": 0.0
3352
+ }
3353
+ }
3354
+ }
3355
+ ]
3356
+ },
3357
+ "text_artifacts": {
3358
+ "description": "Enable generation of text artifacts used to generate full query strings later.",
3359
+ "default": {
3360
+ "kind": "disabled"
3361
+ },
3362
+ "oneOf": [
3363
+ {
3364
+ "description": "Fully disabled: developers may not use this feature",
3365
+ "type": "object",
3366
+ "required": [
3367
+ "kind"
3368
+ ],
3369
+ "properties": {
3370
+ "kind": {
3371
+ "type": "string",
3372
+ "enum": [
3373
+ "disabled"
3374
+ ]
3375
+ }
3376
+ }
3377
+ },
3378
+ {
3379
+ "description": "Fully enabled: developers may use this feature",
3380
+ "type": "object",
3381
+ "required": [
3382
+ "kind"
3383
+ ],
3384
+ "properties": {
3385
+ "kind": {
3386
+ "type": "string",
3387
+ "enum": [
3388
+ "enabled"
3389
+ ]
3390
+ }
3391
+ }
3392
+ },
3393
+ {
3394
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3395
+ "type": "object",
3396
+ "required": [
3397
+ "allowlist",
3398
+ "kind"
3399
+ ],
3400
+ "properties": {
3401
+ "allowlist": {
3402
+ "type": "array",
3403
+ "items": {
3404
+ "type": "string"
3405
+ },
3406
+ "uniqueItems": true
3407
+ },
3408
+ "kind": {
3409
+ "type": "string",
3410
+ "enum": [
3411
+ "limited"
3412
+ ]
3413
+ }
3414
+ }
3415
+ },
3416
+ {
3417
+ "description": "Partially enabled: used for gradual rollout of the feature",
3418
+ "type": "object",
3419
+ "required": [
3420
+ "kind",
3421
+ "rollout"
3422
+ ],
3423
+ "properties": {
3424
+ "kind": {
3425
+ "type": "string",
3426
+ "enum": [
3427
+ "rollout"
3428
+ ]
3429
+ },
3430
+ "rollout": {
3431
+ "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.",
3432
+ "type": [
3433
+ "integer",
3434
+ "null"
3435
+ ],
3436
+ "format": "uint8",
3437
+ "minimum": 0.0
3438
+ }
3439
+ }
3440
+ }
3441
+ ]
3442
+ },
3443
+ "use_reader_module_imports": {
3444
+ "description": "Generate the `moduleImports` field in the Reader AST.",
3445
+ "default": {
3446
+ "kind": "disabled"
3447
+ },
3448
+ "oneOf": [
3449
+ {
3450
+ "description": "Fully disabled: developers may not use this feature",
3451
+ "type": "object",
3452
+ "required": [
3453
+ "kind"
3454
+ ],
3455
+ "properties": {
3456
+ "kind": {
3457
+ "type": "string",
3458
+ "enum": [
3459
+ "disabled"
3460
+ ]
3461
+ }
3462
+ }
3463
+ },
3464
+ {
3465
+ "description": "Fully enabled: developers may use this feature",
3466
+ "type": "object",
3467
+ "required": [
3468
+ "kind"
3469
+ ],
3470
+ "properties": {
3471
+ "kind": {
3472
+ "type": "string",
3473
+ "enum": [
3474
+ "enabled"
3475
+ ]
3476
+ }
3477
+ }
3478
+ },
3479
+ {
3480
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3481
+ "type": "object",
3482
+ "required": [
3483
+ "allowlist",
3484
+ "kind"
3485
+ ],
3486
+ "properties": {
3487
+ "allowlist": {
3488
+ "type": "array",
3489
+ "items": {
3490
+ "type": "string"
3491
+ },
3492
+ "uniqueItems": true
3493
+ },
3494
+ "kind": {
3495
+ "type": "string",
3496
+ "enum": [
3497
+ "limited"
3498
+ ]
3499
+ }
3500
+ }
3501
+ },
3502
+ {
3503
+ "description": "Partially enabled: used for gradual rollout of the feature",
3504
+ "type": "object",
3505
+ "required": [
3506
+ "kind",
3507
+ "rollout"
3508
+ ],
3509
+ "properties": {
3510
+ "kind": {
3511
+ "type": "string",
3512
+ "enum": [
3513
+ "rollout"
3514
+ ]
3515
+ },
3516
+ "rollout": {
3517
+ "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.",
3518
+ "type": [
3519
+ "integer",
3520
+ "null"
3521
+ ],
3522
+ "format": "uint8",
3523
+ "minimum": 0.0
3524
+ }
3525
+ }
3526
+ }
3527
+ ]
3528
+ }
3529
+ },
3530
+ "additionalProperties": false
3531
+ },
3532
+ "generatedSources": {
3533
+ "description": "Similar to sources but not affected by excludes.",
3534
+ "default": {},
3535
+ "type": "object",
3536
+ "additionalProperties": {
3537
+ "description": "Set of project names.",
3538
+ "type": "array",
3539
+ "items": {
3540
+ "description": "Represents the name of a project in the Relay configuration.",
3541
+ "anyOf": [
3542
+ {
3543
+ "description": "No project name is specified.",
3544
+ "type": "null"
3545
+ },
3546
+ {
3547
+ "description": "A project name.\n\nThis should match one the keys in the `projects` map in the Relay compiler config.",
3548
+ "type": "string"
3549
+ }
3550
+ ]
3551
+ }
3552
+ }
3553
+ },
3554
+ "header": {
3555
+ "default": [],
3556
+ "type": "array",
3557
+ "items": {
3558
+ "type": "string"
3559
+ }
3560
+ },
3561
+ "isDevVariableName": {
3562
+ "description": "Then name of the global __DEV__ variable to use in generated artifacts",
3563
+ "type": [
3564
+ "string",
3565
+ "null"
3566
+ ]
3567
+ },
3568
+ "name": {
3569
+ "description": "Optional name for this config, might be used for logging or custom extra artifact generator code.",
3570
+ "default": null,
3571
+ "type": [
2870
3572
  "string",
2871
3573
  "null"
2872
3574
  ]
@@ -2892,150 +3594,421 @@
2892
3594
  "default": null,
2893
3595
  "anyOf": [
2894
3596
  {
3597
+ "description": "Represents the name of a project in the Relay configuration.",
2895
3598
  "anyOf": [
2896
3599
  {
3600
+ "description": "No project name is specified.",
2897
3601
  "type": "null"
2898
3602
  },
2899
3603
  {
2900
- "type": "string"
3604
+ "description": "A project name.\n\nThis should match one the keys in the `projects` map in the Relay compiler config.",
3605
+ "type": "string"
3606
+ }
3607
+ ]
3608
+ },
3609
+ {
3610
+ "type": "null"
3611
+ }
3612
+ ]
3613
+ },
3614
+ "codegenCommand": {
3615
+ "default": null,
3616
+ "type": [
3617
+ "string",
3618
+ "null"
3619
+ ]
3620
+ },
3621
+ "customErrorType": {
3622
+ "description": "A map from GraphQL error name to import path, example: {\"name:: \"MyErrorName\", \"path\": \"../src/MyError\"}",
3623
+ "type": [
3624
+ "object",
3625
+ "null"
3626
+ ],
3627
+ "required": [
3628
+ "name",
3629
+ "path"
3630
+ ],
3631
+ "properties": {
3632
+ "name": {
3633
+ "type": "string"
3634
+ },
3635
+ "path": {
3636
+ "type": "string"
3637
+ }
3638
+ }
3639
+ },
3640
+ "customScalarTypes": {
3641
+ "description": "A map from GraphQL scalar types to a custom JS type, example: { \"Url\": \"String\" } { \"Url\": {\"name:: \"MyURL\", \"path\": \"../src/MyUrlTypes\"} }",
3642
+ "default": {},
3643
+ "type": "object",
3644
+ "additionalProperties": {
3645
+ "anyOf": [
3646
+ {
3647
+ "type": "string"
3648
+ },
3649
+ {
3650
+ "type": "object",
3651
+ "required": [
3652
+ "name",
3653
+ "path"
3654
+ ],
3655
+ "properties": {
3656
+ "name": {
3657
+ "type": "string"
3658
+ },
3659
+ "path": {
3660
+ "type": "string"
3661
+ }
3662
+ }
3663
+ }
3664
+ ]
3665
+ }
3666
+ },
3667
+ "diagnosticReportConfig": {
3668
+ "description": "Configuration for all diagnostic reporting in the compiler",
3669
+ "default": {
3670
+ "criticalLevel": "error"
3671
+ },
3672
+ "type": "object",
3673
+ "required": [
3674
+ "criticalLevel"
3675
+ ],
3676
+ "properties": {
3677
+ "criticalLevel": {
3678
+ "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.",
3679
+ "oneOf": [
3680
+ {
3681
+ "description": "Report only errors",
3682
+ "type": "string",
3683
+ "enum": [
3684
+ "error"
3685
+ ]
3686
+ },
3687
+ {
3688
+ "description": "Report diagnostics up to warnings",
3689
+ "type": "string",
3690
+ "enum": [
3691
+ "warning"
3692
+ ]
3693
+ },
3694
+ {
3695
+ "description": "Report diagnostics up to informational diagnostics",
3696
+ "type": "string",
3697
+ "enum": [
3698
+ "info"
3699
+ ]
3700
+ },
3701
+ {
3702
+ "description": "Report diagnostics up to hints",
3703
+ "type": "string",
3704
+ "enum": [
3705
+ "hint"
3706
+ ]
3707
+ }
3708
+ ]
3709
+ }
3710
+ }
3711
+ },
3712
+ "eagerEsModules": {
3713
+ "description": "This option enables emitting es modules artifacts.",
3714
+ "default": false,
3715
+ "type": "boolean"
3716
+ },
3717
+ "enumModuleSuffix": {
3718
+ "title": "For Flow type generation",
3719
+ "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\".",
3720
+ "type": [
3721
+ "string",
3722
+ "null"
3723
+ ]
3724
+ },
3725
+ "excludesExtensions": {
3726
+ "description": "Some projects may need to exclude files with certain extensions.",
3727
+ "type": [
3728
+ "array",
3729
+ "null"
3730
+ ],
3731
+ "items": {
3732
+ "type": "string"
3733
+ }
3734
+ },
3735
+ "extra": {
3736
+ "description": "A placeholder for allowing extra information in the config file",
3737
+ "default": null
3738
+ },
3739
+ "extraArtifactsOutput": {
3740
+ "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",
3741
+ "type": [
3742
+ "string",
3743
+ "null"
3744
+ ]
3745
+ },
3746
+ "featureFlags": {
3747
+ "default": null,
3748
+ "type": [
3749
+ "object",
3750
+ "null"
3751
+ ],
3752
+ "properties": {
3753
+ "actor_change_support": {
3754
+ "default": {
3755
+ "kind": "disabled"
3756
+ },
3757
+ "oneOf": [
3758
+ {
3759
+ "description": "Fully disabled: developers may not use this feature",
3760
+ "type": "object",
3761
+ "required": [
3762
+ "kind"
3763
+ ],
3764
+ "properties": {
3765
+ "kind": {
3766
+ "type": "string",
3767
+ "enum": [
3768
+ "disabled"
3769
+ ]
3770
+ }
3771
+ }
3772
+ },
3773
+ {
3774
+ "description": "Fully enabled: developers may use this feature",
3775
+ "type": "object",
3776
+ "required": [
3777
+ "kind"
3778
+ ],
3779
+ "properties": {
3780
+ "kind": {
3781
+ "type": "string",
3782
+ "enum": [
3783
+ "enabled"
3784
+ ]
3785
+ }
3786
+ }
3787
+ },
3788
+ {
3789
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3790
+ "type": "object",
3791
+ "required": [
3792
+ "allowlist",
3793
+ "kind"
3794
+ ],
3795
+ "properties": {
3796
+ "allowlist": {
3797
+ "type": "array",
3798
+ "items": {
3799
+ "type": "string"
3800
+ },
3801
+ "uniqueItems": true
3802
+ },
3803
+ "kind": {
3804
+ "type": "string",
3805
+ "enum": [
3806
+ "limited"
3807
+ ]
3808
+ }
3809
+ }
3810
+ },
3811
+ {
3812
+ "description": "Partially enabled: used for gradual rollout of the feature",
3813
+ "type": "object",
3814
+ "required": [
3815
+ "kind",
3816
+ "rollout"
3817
+ ],
3818
+ "properties": {
3819
+ "kind": {
3820
+ "type": "string",
3821
+ "enum": [
3822
+ "rollout"
3823
+ ]
3824
+ },
3825
+ "rollout": {
3826
+ "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.",
3827
+ "type": [
3828
+ "integer",
3829
+ "null"
3830
+ ],
3831
+ "format": "uint8",
3832
+ "minimum": 0.0
3833
+ }
3834
+ }
2901
3835
  }
2902
3836
  ]
2903
3837
  },
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"
3838
+ "allow_required_in_mutation_response": {
3839
+ "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.",
3840
+ "default": {
3841
+ "kind": "disabled"
2943
3842
  },
2944
- {
2945
- "type": "object",
2946
- "required": [
2947
- "name",
2948
- "path"
2949
- ],
2950
- "properties": {
2951
- "name": {
2952
- "type": "string"
2953
- },
2954
- "path": {
2955
- "type": "string"
3843
+ "oneOf": [
3844
+ {
3845
+ "description": "Fully disabled: developers may not use this feature",
3846
+ "type": "object",
3847
+ "required": [
3848
+ "kind"
3849
+ ],
3850
+ "properties": {
3851
+ "kind": {
3852
+ "type": "string",
3853
+ "enum": [
3854
+ "disabled"
3855
+ ]
3856
+ }
3857
+ }
3858
+ },
3859
+ {
3860
+ "description": "Fully enabled: developers may use this feature",
3861
+ "type": "object",
3862
+ "required": [
3863
+ "kind"
3864
+ ],
3865
+ "properties": {
3866
+ "kind": {
3867
+ "type": "string",
3868
+ "enum": [
3869
+ "enabled"
3870
+ ]
3871
+ }
3872
+ }
3873
+ },
3874
+ {
3875
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3876
+ "type": "object",
3877
+ "required": [
3878
+ "allowlist",
3879
+ "kind"
3880
+ ],
3881
+ "properties": {
3882
+ "allowlist": {
3883
+ "type": "array",
3884
+ "items": {
3885
+ "type": "string"
3886
+ },
3887
+ "uniqueItems": true
3888
+ },
3889
+ "kind": {
3890
+ "type": "string",
3891
+ "enum": [
3892
+ "limited"
3893
+ ]
3894
+ }
3895
+ }
3896
+ },
3897
+ {
3898
+ "description": "Partially enabled: used for gradual rollout of the feature",
3899
+ "type": "object",
3900
+ "required": [
3901
+ "kind",
3902
+ "rollout"
3903
+ ],
3904
+ "properties": {
3905
+ "kind": {
3906
+ "type": "string",
3907
+ "enum": [
3908
+ "rollout"
3909
+ ]
3910
+ },
3911
+ "rollout": {
3912
+ "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.",
3913
+ "type": [
3914
+ "integer",
3915
+ "null"
3916
+ ],
3917
+ "format": "uint8",
3918
+ "minimum": 0.0
3919
+ }
2956
3920
  }
2957
3921
  }
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.",
3922
+ ]
3923
+ },
3924
+ "allow_resolver_non_nullable_return_type": {
3925
+ "description": "Allow non-nullable return types from resolvers.",
3926
+ "default": {
3927
+ "kind": "disabled"
3928
+ },
2974
3929
  "oneOf": [
2975
3930
  {
2976
- "description": "Report only errors",
2977
- "type": "string",
2978
- "enum": [
2979
- "error"
2980
- ]
3931
+ "description": "Fully disabled: developers may not use this feature",
3932
+ "type": "object",
3933
+ "required": [
3934
+ "kind"
3935
+ ],
3936
+ "properties": {
3937
+ "kind": {
3938
+ "type": "string",
3939
+ "enum": [
3940
+ "disabled"
3941
+ ]
3942
+ }
3943
+ }
2981
3944
  },
2982
3945
  {
2983
- "description": "Report diagnostics up to warnings",
2984
- "type": "string",
2985
- "enum": [
2986
- "warning"
2987
- ]
3946
+ "description": "Fully enabled: developers may use this feature",
3947
+ "type": "object",
3948
+ "required": [
3949
+ "kind"
3950
+ ],
3951
+ "properties": {
3952
+ "kind": {
3953
+ "type": "string",
3954
+ "enum": [
3955
+ "enabled"
3956
+ ]
3957
+ }
3958
+ }
2988
3959
  },
2989
3960
  {
2990
- "description": "Report diagnostics up to informational diagnostics",
2991
- "type": "string",
2992
- "enum": [
2993
- "info"
2994
- ]
3961
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
3962
+ "type": "object",
3963
+ "required": [
3964
+ "allowlist",
3965
+ "kind"
3966
+ ],
3967
+ "properties": {
3968
+ "allowlist": {
3969
+ "type": "array",
3970
+ "items": {
3971
+ "type": "string"
3972
+ },
3973
+ "uniqueItems": true
3974
+ },
3975
+ "kind": {
3976
+ "type": "string",
3977
+ "enum": [
3978
+ "limited"
3979
+ ]
3980
+ }
3981
+ }
2995
3982
  },
2996
3983
  {
2997
- "description": "Report diagnostics up to hints",
2998
- "type": "string",
2999
- "enum": [
3000
- "hint"
3001
- ]
3984
+ "description": "Partially enabled: used for gradual rollout of the feature",
3985
+ "type": "object",
3986
+ "required": [
3987
+ "kind",
3988
+ "rollout"
3989
+ ],
3990
+ "properties": {
3991
+ "kind": {
3992
+ "type": "string",
3993
+ "enum": [
3994
+ "rollout"
3995
+ ]
3996
+ },
3997
+ "rollout": {
3998
+ "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.",
3999
+ "type": [
4000
+ "integer",
4001
+ "null"
4002
+ ],
4003
+ "format": "uint8",
4004
+ "minimum": 0.0
4005
+ }
4006
+ }
3002
4007
  }
3003
4008
  ]
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": {
4009
+ },
4010
+ "allow_resolvers_in_mutation_response": {
4011
+ "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.",
3039
4012
  "default": {
3040
4013
  "kind": "disabled"
3041
4014
  },
@@ -3120,8 +4093,8 @@
3120
4093
  }
3121
4094
  ]
3122
4095
  },
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.",
4096
+ "compact_query_text": {
4097
+ "description": "Print queries in compact form",
3125
4098
  "default": {
3126
4099
  "kind": "disabled"
3127
4100
  },
@@ -3206,8 +4179,8 @@
3206
4179
  }
3207
4180
  ]
3208
4181
  },
3209
- "allow_resolver_non_nullable_return_type": {
3210
- "description": "Allow non-nullable return types from resolvers.",
4182
+ "disable_deduping_common_structures_in_artifacts": {
4183
+ "description": "Skip the optimization which extracts common JavaScript structures in generated artifacts into numbered variables and uses them by reference in each position in which they occur.\n\nThis optimization can make it hard to follow changes to generated code, so being able to disable it can be helpful for debugging.\n\nTo disable deduping for just one fragment or operation's generated artifacts:\n\n```json \"disable_deduping_common_structures_in_artifacts\": { { \"kind\": \"limited\", \"allowList\": [\"<operation_or_fragment_name>\"] } } ```",
3211
4184
  "default": {
3212
4185
  "kind": "disabled"
3213
4186
  },
@@ -3292,8 +4265,8 @@
3292
4265
  }
3293
4266
  ]
3294
4267
  },
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.",
4268
+ "disable_edge_type_name_validation_on_declerative_connection_directives": {
4269
+ "description": "Disable validation of the `edgeTypeName` argument on `@prependNode` and `@appendNode`.",
3297
4270
  "default": {
3298
4271
  "kind": "disabled"
3299
4272
  },
@@ -3378,8 +4351,8 @@
3378
4351
  }
3379
4352
  ]
3380
4353
  },
3381
- "compact_query_text": {
3382
- "description": "Print queries in compact form",
4354
+ "disable_full_argument_type_validation": {
4355
+ "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.",
3383
4356
  "default": {
3384
4357
  "kind": "disabled"
3385
4358
  },
@@ -3464,8 +4437,47 @@
3464
4437
  }
3465
4438
  ]
3466
4439
  },
3467
- "disable_edge_type_name_validation_on_declerative_connection_directives": {
3468
- "description": "Disable validation of the `edgeTypeName` argument on `@prependNode` and `@appendNode`.",
4440
+ "disable_resolver_reader_ast": {
4441
+ "description": "Mirror of `enable_resolver_normalization_ast` excludes resolver metadata from reader ast",
4442
+ "default": false,
4443
+ "type": "boolean"
4444
+ },
4445
+ "disable_schema_validation": {
4446
+ "description": "Disable validating the composite schema (server, client schema extensions, Relay Resolvers) after its built.",
4447
+ "default": false,
4448
+ "type": "boolean"
4449
+ },
4450
+ "enable_3d_branch_arg_generation": {
4451
+ "default": false,
4452
+ "type": "boolean"
4453
+ },
4454
+ "enable_exec_time_resolvers_directive": {
4455
+ "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",
4456
+ "default": false,
4457
+ "type": "boolean"
4458
+ },
4459
+ "enable_fragment_argument_transform": {
4460
+ "description": "Add support for parsing and transforming variable definitions on fragment definitions and arguments on fragment spreads.",
4461
+ "default": false,
4462
+ "type": "boolean"
4463
+ },
4464
+ "enable_relay_resolver_mutations": {
4465
+ "description": "Allow relay resolvers to extend the Mutation type",
4466
+ "default": false,
4467
+ "type": "boolean"
4468
+ },
4469
+ "enable_resolver_normalization_ast": {
4470
+ "description": "Fully build the normalization AST for Resolvers",
4471
+ "default": false,
4472
+ "type": "boolean"
4473
+ },
4474
+ "enable_strict_custom_scalars": {
4475
+ "description": "Perform strict validations when custom scalar types are used",
4476
+ "default": false,
4477
+ "type": "boolean"
4478
+ },
4479
+ "enforce_fragment_alias_where_ambiguous": {
4480
+ "description": "Enforce that you must add `@alias` to a fragment if it may not match, due to type mismatch or `@skip`/`@include`",
3469
4481
  "default": {
3470
4482
  "kind": "disabled"
3471
4483
  },
@@ -3550,8 +4562,8 @@
3550
4562
  }
3551
4563
  ]
3552
4564
  },
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.",
4565
+ "legacy_include_path_in_required_reader_nodes": {
4566
+ "description": "The `path` field in `@required` Reader AST nodes is no longer used. But removing them in one diff is too large of a change to ship at once.\n\nThis flag will allow us to use the rollout FeatureFlag to remove them across a number of diffs.",
3555
4567
  "default": {
3556
4568
  "kind": "disabled"
3557
4569
  },
@@ -3636,51 +4648,8 @@
3636
4648
  }
3637
4649
  ]
3638
4650
  },
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`",
4651
+ "no_inline": {
4652
+ "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.",
3684
4653
  "default": {
3685
4654
  "kind": "disabled"
3686
4655
  },
@@ -3765,8 +4734,8 @@
3765
4734
  }
3766
4735
  ]
3767
4736
  },
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.",
4737
+ "omit_resolver_type_assertions_for_confirmed_types": {
4738
+ "description": "Skip generating resolver type assertions for resolvers which have been derived from TS/Flow types.",
3770
4739
  "default": {
3771
4740
  "kind": "disabled"
3772
4741
  },
@@ -4111,6 +5080,92 @@
4111
5080
  }
4112
5081
  }
4113
5082
  ]
5083
+ },
5084
+ "use_reader_module_imports": {
5085
+ "description": "Generate the `moduleImports` field in the Reader AST.",
5086
+ "default": {
5087
+ "kind": "disabled"
5088
+ },
5089
+ "oneOf": [
5090
+ {
5091
+ "description": "Fully disabled: developers may not use this feature",
5092
+ "type": "object",
5093
+ "required": [
5094
+ "kind"
5095
+ ],
5096
+ "properties": {
5097
+ "kind": {
5098
+ "type": "string",
5099
+ "enum": [
5100
+ "disabled"
5101
+ ]
5102
+ }
5103
+ }
5104
+ },
5105
+ {
5106
+ "description": "Fully enabled: developers may use this feature",
5107
+ "type": "object",
5108
+ "required": [
5109
+ "kind"
5110
+ ],
5111
+ "properties": {
5112
+ "kind": {
5113
+ "type": "string",
5114
+ "enum": [
5115
+ "enabled"
5116
+ ]
5117
+ }
5118
+ }
5119
+ },
5120
+ {
5121
+ "description": "Partially enabled: developers may only use this feature on the listed items (fragments, fields, types).",
5122
+ "type": "object",
5123
+ "required": [
5124
+ "allowlist",
5125
+ "kind"
5126
+ ],
5127
+ "properties": {
5128
+ "allowlist": {
5129
+ "type": "array",
5130
+ "items": {
5131
+ "type": "string"
5132
+ },
5133
+ "uniqueItems": true
5134
+ },
5135
+ "kind": {
5136
+ "type": "string",
5137
+ "enum": [
5138
+ "limited"
5139
+ ]
5140
+ }
5141
+ }
5142
+ },
5143
+ {
5144
+ "description": "Partially enabled: used for gradual rollout of the feature",
5145
+ "type": "object",
5146
+ "required": [
5147
+ "kind",
5148
+ "rollout"
5149
+ ],
5150
+ "properties": {
5151
+ "kind": {
5152
+ "type": "string",
5153
+ "enum": [
5154
+ "rollout"
5155
+ ]
5156
+ },
5157
+ "rollout": {
5158
+ "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.",
5159
+ "type": [
5160
+ "integer",
5161
+ "null"
5162
+ ],
5163
+ "format": "uint8",
5164
+ "minimum": 0.0
5165
+ }
5166
+ }
5167
+ }
5168
+ ]
4114
5169
  }
4115
5170
  },
4116
5171
  "additionalProperties": false
@@ -4238,14 +5293,17 @@
4238
5293
  "description": "If this option is set, the compiler will persist queries using this config.",
4239
5294
  "anyOf": [
4240
5295
  {
5296
+ "description": "Configuration for how the Relay Compiler should persist GraphQL queries.",
4241
5297
  "anyOf": [
4242
5298
  {
5299
+ "description": "This variant represents a remote persistence configuration, where GraphQL queries are sent to a remote endpoint for persistence.",
4243
5300
  "type": "object",
4244
5301
  "required": [
4245
5302
  "url"
4246
5303
  ],
4247
5304
  "properties": {
4248
5305
  "concurrency": {
5306
+ "description": "Number of concurrent requests that can be made to the server.",
4249
5307
  "default": null,
4250
5308
  "type": [
4251
5309
  "integer",
@@ -4255,7 +5313,7 @@
4255
5313
  "minimum": 0.0
4256
5314
  },
4257
5315
  "headers": {
4258
- "description": "Additional headers to send",
5316
+ "description": "Additional headers to include in the POST request.",
4259
5317
  "default": {},
4260
5318
  "type": "object",
4261
5319
  "additionalProperties": {
@@ -4263,11 +5321,12 @@
4263
5321
  }
4264
5322
  },
4265
5323
  "includeQueryText": {
5324
+ "description": "Whether to include the query text in the persisted document.",
4266
5325
  "default": false,
4267
5326
  "type": "boolean"
4268
5327
  },
4269
5328
  "params": {
4270
- "description": "The document will be in a POST parameter `text`. This map can contain additional parameters to send.",
5329
+ "description": "Additional parameters to include in the POST request.\n\nThe main document will be in a POST parameter `text`. This map can contain additional parameters to send.",
4271
5330
  "default": {},
4272
5331
  "type": "object",
4273
5332
  "additionalProperties": {
@@ -4275,19 +5334,21 @@
4275
5334
  }
4276
5335
  },
4277
5336
  "url": {
4278
- "description": "URL to send a POST request to to persist.",
5337
+ "description": "URL that the document should be persisted to via a POST request.",
4279
5338
  "type": "string"
4280
5339
  }
4281
5340
  },
4282
5341
  "additionalProperties": false
4283
5342
  },
4284
5343
  {
5344
+ "description": "This variant represents a local persistence configuration, where GraphQL queries are persisted to a local JSON file.\n\nWhen this variant is used, the compiler will attempt to read the local file as a hash map, add new queries to the map, and then serialize and write the resulting map to the configured path.",
4285
5345
  "type": "object",
4286
5346
  "required": [
4287
5347
  "file"
4288
5348
  ],
4289
5349
  "properties": {
4290
5350
  "algorithm": {
5351
+ "description": "The algorithm to use for hashing the operation text.",
4291
5352
  "default": "MD5",
4292
5353
  "type": "string",
4293
5354
  "enum": [
@@ -4297,9 +5358,11 @@
4297
5358
  ]
4298
5359
  },
4299
5360
  "file": {
5361
+ "description": "The file path where the persisted documents will be written.",
4300
5362
  "type": "string"
4301
5363
  },
4302
5364
  "include_query_text": {
5365
+ "description": "Whether to include the query text in the persisted document.",
4303
5366
  "default": false,
4304
5367
  "type": "boolean"
4305
5368
  }
@@ -4574,6 +5637,14 @@
4574
5637
  "type": "string"
4575
5638
  }
4576
5639
  },
5640
+ "schemaName": {
5641
+ "description": "Schema name, if differs from project name. If schema name is unset, the project name will be used as schema name.",
5642
+ "default": null,
5643
+ "type": [
5644
+ "string",
5645
+ "null"
5646
+ ]
5647
+ },
4577
5648
  "shardOutput": {
4578
5649
  "description": "If `output` is provided and `shard_output` is `true`, shard the files by putting them under `{output_dir}/{source_relative_path}`",
4579
5650
  "default": false,
@@ -4672,11 +5743,14 @@
4672
5743
  "additionalProperties": {
4673
5744
  "anyOf": [
4674
5745
  {
5746
+ "description": "Represents the name of a project in the Relay configuration.",
4675
5747
  "anyOf": [
4676
5748
  {
5749
+ "description": "No project name is specified.",
4677
5750
  "type": "null"
4678
5751
  },
4679
5752
  {
5753
+ "description": "A project name.\n\nThis should match one the keys in the `projects` map in the Relay compiler config.",
4680
5754
  "type": "string"
4681
5755
  }
4682
5756
  ]
@@ -4684,11 +5758,14 @@
4684
5758
  {
4685
5759
  "type": "array",
4686
5760
  "items": {
5761
+ "description": "Represents the name of a project in the Relay configuration.",
4687
5762
  "anyOf": [
4688
5763
  {
5764
+ "description": "No project name is specified.",
4689
5765
  "type": "null"
4690
5766
  },
4691
5767
  {
5768
+ "description": "A project name.\n\nThis should match one the keys in the `projects` map in the Relay compiler config.",
4692
5769
  "type": "string"
4693
5770
  }
4694
5771
  ]