@smartive/graphql-magic 9.1.2 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/.eslintrc +2 -10
  2. package/.github/workflows/release.yml +1 -1
  3. package/.gqmrc.json +6 -0
  4. package/CHANGELOG.md +2 -2
  5. package/README.md +1 -1
  6. package/dist/bin/gqm.cjs +684 -330
  7. package/dist/cjs/index.cjs +998 -554
  8. package/dist/esm/api/execute.js +1 -1
  9. package/dist/esm/api/execute.js.map +1 -1
  10. package/dist/esm/client/mutations.d.ts +2 -2
  11. package/dist/esm/client/mutations.js +5 -4
  12. package/dist/esm/client/mutations.js.map +1 -1
  13. package/dist/esm/client/queries.d.ts +12 -17
  14. package/dist/esm/client/queries.js +30 -50
  15. package/dist/esm/client/queries.js.map +1 -1
  16. package/dist/esm/context.d.ts +1 -2
  17. package/dist/esm/db/generate.d.ts +3 -3
  18. package/dist/esm/db/generate.js +31 -29
  19. package/dist/esm/db/generate.js.map +1 -1
  20. package/dist/esm/migrations/generate.d.ts +3 -4
  21. package/dist/esm/migrations/generate.js +114 -107
  22. package/dist/esm/migrations/generate.js.map +1 -1
  23. package/dist/esm/models/index.d.ts +1 -0
  24. package/dist/esm/models/index.js +1 -0
  25. package/dist/esm/models/index.js.map +1 -1
  26. package/dist/esm/models/model-definitions.d.ts +189 -0
  27. package/dist/esm/models/model-definitions.js +2 -0
  28. package/dist/esm/models/model-definitions.js.map +1 -0
  29. package/dist/esm/models/models.d.ts +128 -174
  30. package/dist/esm/models/models.js +411 -1
  31. package/dist/esm/models/models.js.map +1 -1
  32. package/dist/esm/models/mutation-hook.d.ts +2 -2
  33. package/dist/esm/models/utils.d.ts +35 -497
  34. package/dist/esm/models/utils.js +21 -144
  35. package/dist/esm/models/utils.js.map +1 -1
  36. package/dist/esm/permissions/check.d.ts +3 -3
  37. package/dist/esm/permissions/check.js +14 -7
  38. package/dist/esm/permissions/check.js.map +1 -1
  39. package/dist/esm/permissions/generate.js +6 -6
  40. package/dist/esm/permissions/generate.js.map +1 -1
  41. package/dist/esm/resolvers/filters.d.ts +8 -0
  42. package/dist/esm/resolvers/filters.js +28 -25
  43. package/dist/esm/resolvers/filters.js.map +1 -1
  44. package/dist/esm/resolvers/index.d.ts +1 -0
  45. package/dist/esm/resolvers/index.js +1 -0
  46. package/dist/esm/resolvers/index.js.map +1 -1
  47. package/dist/esm/resolvers/mutations.js +85 -21
  48. package/dist/esm/resolvers/mutations.js.map +1 -1
  49. package/dist/esm/resolvers/node.d.ts +13 -15
  50. package/dist/esm/resolvers/node.js +41 -36
  51. package/dist/esm/resolvers/node.js.map +1 -1
  52. package/dist/esm/resolvers/resolver.js +19 -49
  53. package/dist/esm/resolvers/resolver.js.map +1 -1
  54. package/dist/esm/resolvers/resolvers.d.ts +1 -8
  55. package/dist/esm/resolvers/resolvers.js +15 -7
  56. package/dist/esm/resolvers/resolvers.js.map +1 -1
  57. package/dist/esm/resolvers/selects.d.ts +3 -0
  58. package/dist/esm/resolvers/selects.js +50 -0
  59. package/dist/esm/resolvers/selects.js.map +1 -0
  60. package/dist/esm/resolvers/utils.d.ts +12 -4
  61. package/dist/esm/resolvers/utils.js +30 -22
  62. package/dist/esm/resolvers/utils.js.map +1 -1
  63. package/dist/esm/schema/generate.d.ts +4 -4
  64. package/dist/esm/schema/generate.js +122 -131
  65. package/dist/esm/schema/generate.js.map +1 -1
  66. package/dist/esm/schema/utils.d.ts +1 -1
  67. package/dist/esm/schema/utils.js +2 -1
  68. package/dist/esm/schema/utils.js.map +1 -1
  69. package/knexfile.ts +31 -0
  70. package/migrations/20230912185644_setup.ts +127 -0
  71. package/package.json +16 -14
  72. package/src/api/execute.ts +1 -1
  73. package/src/bin/gqm/gqm.ts +25 -23
  74. package/src/bin/gqm/parse-models.ts +5 -5
  75. package/src/bin/gqm/settings.ts +13 -4
  76. package/src/bin/gqm/static-eval.ts +5 -0
  77. package/src/bin/gqm/templates.ts +23 -3
  78. package/src/client/mutations.ts +11 -5
  79. package/src/client/queries.ts +43 -80
  80. package/src/context.ts +1 -2
  81. package/src/db/generate.ts +41 -41
  82. package/src/migrations/generate.ts +165 -146
  83. package/src/models/index.ts +1 -0
  84. package/src/models/model-definitions.ts +168 -0
  85. package/src/models/models.ts +510 -166
  86. package/src/models/mutation-hook.ts +2 -2
  87. package/src/models/utils.ts +53 -187
  88. package/src/permissions/check.ts +19 -11
  89. package/src/permissions/generate.ts +6 -6
  90. package/src/resolvers/filters.ts +44 -28
  91. package/src/resolvers/index.ts +1 -0
  92. package/src/resolvers/mutations.ts +98 -36
  93. package/src/resolvers/node.ts +79 -51
  94. package/src/resolvers/resolver.ts +20 -74
  95. package/src/resolvers/resolvers.ts +18 -7
  96. package/src/resolvers/selects.ts +77 -0
  97. package/src/resolvers/utils.ts +41 -25
  98. package/src/schema/generate.ts +106 -127
  99. package/src/schema/utils.ts +2 -1
  100. package/tests/api/__snapshots__/inheritance.spec.ts.snap +83 -0
  101. package/tests/api/inheritance.spec.ts +130 -0
  102. package/tests/generated/api/index.ts +1174 -0
  103. package/tests/generated/client/index.ts +1163 -0
  104. package/tests/generated/client/mutations.ts +109 -0
  105. package/tests/generated/db/index.ts +291 -0
  106. package/tests/generated/db/knex.ts +14 -0
  107. package/tests/generated/models.json +675 -0
  108. package/tests/generated/schema.graphql +325 -0
  109. package/tests/unit/__snapshots__/resolve.spec.ts.snap +23 -0
  110. package/tests/unit/queries.spec.ts +5 -5
  111. package/tests/unit/resolve.spec.ts +8 -8
  112. package/tests/utils/database/knex.ts +5 -13
  113. package/tests/utils/database/seed.ts +57 -18
  114. package/tests/utils/models.ts +62 -7
  115. package/tests/utils/server.ts +5 -5
  116. package/tsconfig.eslint.json +1 -0
  117. package/tests/unit/__snapshots__/generate.spec.ts.snap +0 -128
  118. package/tests/unit/generate.spec.ts +0 -8
  119. package/tests/utils/database/schema.ts +0 -64
  120. package/tests/utils/generate-migration.ts +0 -24
@@ -0,0 +1,675 @@
1
+ [
2
+ {
3
+ "name": "SomeEnum",
4
+ "kind": "enum",
5
+ "values": [
6
+ "A",
7
+ "B",
8
+ "C"
9
+ ]
10
+ },
11
+ {
12
+ "name": "Role",
13
+ "kind": "enum",
14
+ "values": [
15
+ "ADMIN",
16
+ "USER"
17
+ ]
18
+ },
19
+ {
20
+ "name": "SomeRawObject",
21
+ "kind": "object",
22
+ "fields": [
23
+ {
24
+ "name": "field",
25
+ "type": "String"
26
+ }
27
+ ]
28
+ },
29
+ {
30
+ "kind": "entity",
31
+ "name": "User",
32
+ "fields": [
33
+ {
34
+ "name": "id",
35
+ "type": "ID",
36
+ "nonNull": true,
37
+ "unique": true,
38
+ "primary": true,
39
+ "generated": true
40
+ },
41
+ {
42
+ "name": "username",
43
+ "type": "String"
44
+ },
45
+ {
46
+ "name": "role",
47
+ "kind": "enum",
48
+ "type": "Role"
49
+ }
50
+ ]
51
+ },
52
+ {
53
+ "kind": "entity",
54
+ "name": "AnotherObject",
55
+ "listQueriable": true,
56
+ "deletable": true,
57
+ "displayField": "name",
58
+ "fields": [
59
+ {
60
+ "name": "id",
61
+ "type": "ID",
62
+ "nonNull": true,
63
+ "unique": true,
64
+ "primary": true,
65
+ "generated": true
66
+ },
67
+ {
68
+ "type": "String",
69
+ "name": "name",
70
+ "orderable": true
71
+ },
72
+ {
73
+ "kind": "relation",
74
+ "type": "AnotherObject",
75
+ "name": "myself",
76
+ "toOne": true,
77
+ "reverse": "self",
78
+ "foreignKey": "myselfId"
79
+ },
80
+ {
81
+ "name": "deleted",
82
+ "type": "Boolean",
83
+ "nonNull": true,
84
+ "defaultValue": false,
85
+ "filterable": {
86
+ "default": false
87
+ },
88
+ "generated": true
89
+ },
90
+ {
91
+ "name": "deletedAt",
92
+ "type": "DateTime",
93
+ "orderable": true,
94
+ "generated": true
95
+ },
96
+ {
97
+ "name": "deletedBy",
98
+ "kind": "relation",
99
+ "type": "User",
100
+ "reverse": "deletedAnotherObjects",
101
+ "generated": true,
102
+ "foreignKey": "deletedById"
103
+ }
104
+ ]
105
+ },
106
+ {
107
+ "kind": "entity",
108
+ "name": "SomeObject",
109
+ "plural": "ManyObjects",
110
+ "description": "An object",
111
+ "queriable": true,
112
+ "listQueriable": true,
113
+ "creatable": true,
114
+ "updatable": true,
115
+ "deletable": true,
116
+ "fields": [
117
+ {
118
+ "name": "id",
119
+ "type": "ID",
120
+ "nonNull": true,
121
+ "unique": true,
122
+ "primary": true,
123
+ "generated": true
124
+ },
125
+ {
126
+ "name": "field",
127
+ "searchable": true,
128
+ "type": "String"
129
+ },
130
+ {
131
+ "name": "another",
132
+ "kind": "relation",
133
+ "type": "AnotherObject",
134
+ "filterable": true,
135
+ "updatable": true,
136
+ "nonNull": true,
137
+ "foreignKey": "anotherId"
138
+ },
139
+ {
140
+ "name": "float",
141
+ "type": "Float",
142
+ "scale": 1,
143
+ "precision": 1,
144
+ "nonNull": true
145
+ },
146
+ {
147
+ "kind": "enum",
148
+ "name": "list",
149
+ "type": "SomeEnum",
150
+ "nonNull": true,
151
+ "list": true,
152
+ "args": [
153
+ {
154
+ "name": "magic",
155
+ "type": "Boolean"
156
+ }
157
+ ]
158
+ },
159
+ {
160
+ "name": "xyz",
161
+ "type": "Int",
162
+ "description": "yay",
163
+ "nonNull": true,
164
+ "creatable": true,
165
+ "updatable": true,
166
+ "orderable": true
167
+ },
168
+ {
169
+ "name": "createdAt",
170
+ "type": "DateTime",
171
+ "nonNull": true,
172
+ "orderable": true,
173
+ "generated": true
174
+ },
175
+ {
176
+ "name": "createdBy",
177
+ "kind": "relation",
178
+ "type": "User",
179
+ "nonNull": true,
180
+ "reverse": "createdManyObjects",
181
+ "generated": true,
182
+ "foreignKey": "createdById"
183
+ },
184
+ {
185
+ "name": "updatedAt",
186
+ "type": "DateTime",
187
+ "nonNull": true,
188
+ "orderable": true,
189
+ "generated": true
190
+ },
191
+ {
192
+ "name": "updatedBy",
193
+ "kind": "relation",
194
+ "type": "User",
195
+ "nonNull": true,
196
+ "reverse": "updatedManyObjects",
197
+ "generated": true,
198
+ "foreignKey": "updatedById"
199
+ },
200
+ {
201
+ "name": "deleted",
202
+ "type": "Boolean",
203
+ "nonNull": true,
204
+ "defaultValue": false,
205
+ "filterable": {
206
+ "default": false
207
+ },
208
+ "generated": true
209
+ },
210
+ {
211
+ "name": "deletedAt",
212
+ "type": "DateTime",
213
+ "orderable": true,
214
+ "generated": true
215
+ },
216
+ {
217
+ "name": "deletedBy",
218
+ "kind": "relation",
219
+ "type": "User",
220
+ "reverse": "deletedManyObjects",
221
+ "generated": true,
222
+ "foreignKey": "deletedById"
223
+ }
224
+ ]
225
+ },
226
+ {
227
+ "kind": "entity",
228
+ "root": true,
229
+ "name": "Reaction",
230
+ "queriable": true,
231
+ "listQueriable": true,
232
+ "creatable": true,
233
+ "updatable": true,
234
+ "deletable": true,
235
+ "fields": [
236
+ {
237
+ "name": "id",
238
+ "type": "ID",
239
+ "nonNull": true,
240
+ "unique": true,
241
+ "primary": true,
242
+ "generated": true
243
+ },
244
+ {
245
+ "name": "type",
246
+ "kind": "enum",
247
+ "type": "ReactionType",
248
+ "nonNull": true,
249
+ "generated": true
250
+ },
251
+ {
252
+ "name": "parent",
253
+ "kind": "relation",
254
+ "reverse": "childReactions",
255
+ "type": "Reaction",
256
+ "foreignKey": "parentId"
257
+ },
258
+ {
259
+ "name": "content",
260
+ "type": "String",
261
+ "creatable": true,
262
+ "updatable": true
263
+ },
264
+ {
265
+ "name": "createdAt",
266
+ "type": "DateTime",
267
+ "nonNull": true,
268
+ "orderable": true,
269
+ "generated": true
270
+ },
271
+ {
272
+ "name": "createdBy",
273
+ "kind": "relation",
274
+ "type": "User",
275
+ "nonNull": true,
276
+ "reverse": "createdReactions",
277
+ "generated": true,
278
+ "foreignKey": "createdById"
279
+ },
280
+ {
281
+ "name": "updatedAt",
282
+ "type": "DateTime",
283
+ "nonNull": true,
284
+ "orderable": true,
285
+ "generated": true
286
+ },
287
+ {
288
+ "name": "updatedBy",
289
+ "kind": "relation",
290
+ "type": "User",
291
+ "nonNull": true,
292
+ "reverse": "updatedReactions",
293
+ "generated": true,
294
+ "foreignKey": "updatedById"
295
+ },
296
+ {
297
+ "name": "deleted",
298
+ "type": "Boolean",
299
+ "nonNull": true,
300
+ "defaultValue": false,
301
+ "filterable": {
302
+ "default": false
303
+ },
304
+ "generated": true
305
+ },
306
+ {
307
+ "name": "deletedAt",
308
+ "type": "DateTime",
309
+ "orderable": true,
310
+ "generated": true
311
+ },
312
+ {
313
+ "name": "deletedBy",
314
+ "kind": "relation",
315
+ "type": "User",
316
+ "reverse": "deletedReactions",
317
+ "generated": true,
318
+ "foreignKey": "deletedById"
319
+ }
320
+ ]
321
+ },
322
+ {
323
+ "kind": "entity",
324
+ "parent": "Reaction",
325
+ "name": "Review",
326
+ "fields": [
327
+ {
328
+ "name": "id",
329
+ "type": "ID",
330
+ "nonNull": true,
331
+ "unique": true,
332
+ "primary": true,
333
+ "generated": true,
334
+ "inherited": true
335
+ },
336
+ {
337
+ "name": "type",
338
+ "kind": "enum",
339
+ "type": "ReactionType",
340
+ "nonNull": true,
341
+ "generated": true,
342
+ "inherited": true
343
+ },
344
+ {
345
+ "name": "parent",
346
+ "kind": "relation",
347
+ "reverse": "childReviews",
348
+ "type": "Reaction",
349
+ "foreignKey": "parentId",
350
+ "inherited": true
351
+ },
352
+ {
353
+ "name": "content",
354
+ "type": "String",
355
+ "creatable": true,
356
+ "updatable": true,
357
+ "inherited": true
358
+ },
359
+ {
360
+ "name": "createdAt",
361
+ "type": "DateTime",
362
+ "nonNull": true,
363
+ "orderable": true,
364
+ "generated": true,
365
+ "inherited": true
366
+ },
367
+ {
368
+ "name": "createdBy",
369
+ "kind": "relation",
370
+ "type": "User",
371
+ "nonNull": true,
372
+ "reverse": "createdReviews",
373
+ "generated": true,
374
+ "foreignKey": "createdById",
375
+ "inherited": true
376
+ },
377
+ {
378
+ "name": "updatedAt",
379
+ "type": "DateTime",
380
+ "nonNull": true,
381
+ "orderable": true,
382
+ "generated": true,
383
+ "inherited": true
384
+ },
385
+ {
386
+ "name": "updatedBy",
387
+ "kind": "relation",
388
+ "type": "User",
389
+ "nonNull": true,
390
+ "reverse": "updatedReviews",
391
+ "generated": true,
392
+ "foreignKey": "updatedById",
393
+ "inherited": true
394
+ },
395
+ {
396
+ "name": "deleted",
397
+ "type": "Boolean",
398
+ "nonNull": true,
399
+ "defaultValue": false,
400
+ "filterable": {
401
+ "default": false
402
+ },
403
+ "generated": true,
404
+ "inherited": true
405
+ },
406
+ {
407
+ "name": "deletedAt",
408
+ "type": "DateTime",
409
+ "orderable": true,
410
+ "generated": true,
411
+ "inherited": true
412
+ },
413
+ {
414
+ "name": "deletedBy",
415
+ "kind": "relation",
416
+ "type": "User",
417
+ "reverse": "deletedReviews",
418
+ "generated": true,
419
+ "foreignKey": "deletedById",
420
+ "inherited": true
421
+ },
422
+ {
423
+ "name": "rating",
424
+ "type": "Float",
425
+ "comparable": true,
426
+ "creatable": true,
427
+ "updatable": true
428
+ }
429
+ ],
430
+ "queriable": true,
431
+ "listQueriable": true,
432
+ "creatable": true,
433
+ "updatable": true,
434
+ "deletable": true
435
+ },
436
+ {
437
+ "kind": "entity",
438
+ "parent": "Reaction",
439
+ "name": "Question",
440
+ "fields": [
441
+ {
442
+ "name": "id",
443
+ "type": "ID",
444
+ "nonNull": true,
445
+ "unique": true,
446
+ "primary": true,
447
+ "generated": true,
448
+ "inherited": true
449
+ },
450
+ {
451
+ "name": "type",
452
+ "kind": "enum",
453
+ "type": "ReactionType",
454
+ "nonNull": true,
455
+ "generated": true,
456
+ "inherited": true
457
+ },
458
+ {
459
+ "name": "parent",
460
+ "kind": "relation",
461
+ "reverse": "childQuestions",
462
+ "type": "Reaction",
463
+ "foreignKey": "parentId",
464
+ "inherited": true
465
+ },
466
+ {
467
+ "name": "content",
468
+ "type": "String",
469
+ "creatable": true,
470
+ "updatable": true,
471
+ "inherited": true
472
+ },
473
+ {
474
+ "name": "createdAt",
475
+ "type": "DateTime",
476
+ "nonNull": true,
477
+ "orderable": true,
478
+ "generated": true,
479
+ "inherited": true
480
+ },
481
+ {
482
+ "name": "createdBy",
483
+ "kind": "relation",
484
+ "type": "User",
485
+ "nonNull": true,
486
+ "reverse": "createdQuestions",
487
+ "generated": true,
488
+ "foreignKey": "createdById",
489
+ "inherited": true
490
+ },
491
+ {
492
+ "name": "updatedAt",
493
+ "type": "DateTime",
494
+ "nonNull": true,
495
+ "orderable": true,
496
+ "generated": true,
497
+ "inherited": true
498
+ },
499
+ {
500
+ "name": "updatedBy",
501
+ "kind": "relation",
502
+ "type": "User",
503
+ "nonNull": true,
504
+ "reverse": "updatedQuestions",
505
+ "generated": true,
506
+ "foreignKey": "updatedById",
507
+ "inherited": true
508
+ },
509
+ {
510
+ "name": "deleted",
511
+ "type": "Boolean",
512
+ "nonNull": true,
513
+ "defaultValue": false,
514
+ "filterable": {
515
+ "default": false
516
+ },
517
+ "generated": true,
518
+ "inherited": true
519
+ },
520
+ {
521
+ "name": "deletedAt",
522
+ "type": "DateTime",
523
+ "orderable": true,
524
+ "generated": true,
525
+ "inherited": true
526
+ },
527
+ {
528
+ "name": "deletedBy",
529
+ "kind": "relation",
530
+ "type": "User",
531
+ "reverse": "deletedQuestions",
532
+ "generated": true,
533
+ "foreignKey": "deletedById",
534
+ "inherited": true
535
+ }
536
+ ],
537
+ "queriable": true,
538
+ "listQueriable": true,
539
+ "creatable": true,
540
+ "updatable": true,
541
+ "deletable": true
542
+ },
543
+ {
544
+ "kind": "entity",
545
+ "parent": "Reaction",
546
+ "name": "Answer",
547
+ "fields": [
548
+ {
549
+ "name": "id",
550
+ "type": "ID",
551
+ "nonNull": true,
552
+ "unique": true,
553
+ "primary": true,
554
+ "generated": true,
555
+ "inherited": true
556
+ },
557
+ {
558
+ "name": "type",
559
+ "kind": "enum",
560
+ "type": "ReactionType",
561
+ "nonNull": true,
562
+ "generated": true,
563
+ "inherited": true
564
+ },
565
+ {
566
+ "name": "parent",
567
+ "kind": "relation",
568
+ "reverse": "childAnswers",
569
+ "type": "Reaction",
570
+ "foreignKey": "parentId",
571
+ "inherited": true
572
+ },
573
+ {
574
+ "name": "content",
575
+ "type": "String",
576
+ "creatable": true,
577
+ "updatable": true,
578
+ "inherited": true
579
+ },
580
+ {
581
+ "name": "createdAt",
582
+ "type": "DateTime",
583
+ "nonNull": true,
584
+ "orderable": true,
585
+ "generated": true,
586
+ "inherited": true
587
+ },
588
+ {
589
+ "name": "createdBy",
590
+ "kind": "relation",
591
+ "type": "User",
592
+ "nonNull": true,
593
+ "reverse": "createdAnswers",
594
+ "generated": true,
595
+ "foreignKey": "createdById",
596
+ "inherited": true
597
+ },
598
+ {
599
+ "name": "updatedAt",
600
+ "type": "DateTime",
601
+ "nonNull": true,
602
+ "orderable": true,
603
+ "generated": true,
604
+ "inherited": true
605
+ },
606
+ {
607
+ "name": "updatedBy",
608
+ "kind": "relation",
609
+ "type": "User",
610
+ "nonNull": true,
611
+ "reverse": "updatedAnswers",
612
+ "generated": true,
613
+ "foreignKey": "updatedById",
614
+ "inherited": true
615
+ },
616
+ {
617
+ "name": "deleted",
618
+ "type": "Boolean",
619
+ "nonNull": true,
620
+ "defaultValue": false,
621
+ "filterable": {
622
+ "default": false
623
+ },
624
+ "generated": true,
625
+ "inherited": true
626
+ },
627
+ {
628
+ "name": "deletedAt",
629
+ "type": "DateTime",
630
+ "orderable": true,
631
+ "generated": true,
632
+ "inherited": true
633
+ },
634
+ {
635
+ "name": "deletedBy",
636
+ "kind": "relation",
637
+ "type": "User",
638
+ "reverse": "deletedAnswers",
639
+ "generated": true,
640
+ "foreignKey": "deletedById",
641
+ "inherited": true
642
+ }
643
+ ],
644
+ "queriable": true,
645
+ "listQueriable": true,
646
+ "creatable": true,
647
+ "updatable": true,
648
+ "deletable": true
649
+ },
650
+ {
651
+ "kind": "scalar",
652
+ "name": "DateTime"
653
+ },
654
+ {
655
+ "kind": "scalar",
656
+ "name": "Upload"
657
+ },
658
+ {
659
+ "kind": "raw-enum",
660
+ "name": "Order",
661
+ "values": [
662
+ "ASC",
663
+ "DESC"
664
+ ]
665
+ },
666
+ {
667
+ "kind": "enum",
668
+ "name": "ReactionType",
669
+ "values": [
670
+ "Review",
671
+ "Question",
672
+ "Answer"
673
+ ]
674
+ }
675
+ ]