graphql 2.5.11 → 2.5.16

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.
@@ -60,11 +60,37 @@ module GraphQL
60
60
  DA_FETCH_KEYS_IID = 13
61
61
  DA_STR_VAL_NIL_IID = 14
62
62
 
63
+ REVERSE_DEBUG_NAME_LOOKUP = {
64
+ DA_OBJECT_IID => "object",
65
+ DA_RESULT_IID => "result",
66
+ DA_ARGUMENTS_IID => "arguments",
67
+ DA_FETCH_KEYS_IID => "fetch keys",
68
+ }
69
+
70
+ DEBUG_INSPECT_CATEGORY_IIDS = [15]
71
+ DA_DEBUG_INSPECT_CLASS_IID = 16
72
+ DEBUG_INSPECT_EVENT_NAME_IID = 17
73
+ DA_DEBUG_INSPECT_FOR_IID = 18
74
+
63
75
  # @param active_support_notifications_pattern [String, RegExp, false] A filter for `ActiveSupport::Notifications`, if it's present. Or `false` to skip subscribing.
64
76
  def initialize(active_support_notifications_pattern: nil, save_profile: false, **_rest)
65
77
  super
66
78
  @active_support_notifications_pattern = active_support_notifications_pattern
67
79
  @save_profile = save_profile
80
+
81
+ query = if @multiplex
82
+ @multiplex.queries.first
83
+ else
84
+ @query # could still be nil in some initializations
85
+ end
86
+
87
+ @detailed_trace = query&.schema&.detailed_trace || DetailedTrace
88
+ @create_debug_annotations = if (ctx = query&.context).nil? || (ctx_debug = ctx[:detailed_trace_debug]).nil?
89
+ @detailed_trace.debug?
90
+ else
91
+ ctx_debug
92
+ end
93
+
68
94
  Fiber[:graphql_flow_stack] = nil
69
95
  @sequence_id = object_id
70
96
  @pid = Process.pid
@@ -110,6 +136,10 @@ module GraphQL
110
136
  @objects_counter_id = :objects_counter.object_id
111
137
  @fibers_counter_id = :fibers_counter.object_id
112
138
  @fields_counter_id = :fields_counter.object_id
139
+ @counts_objects = [@objects_counter_id]
140
+ @counts_objects_and_fields = [@objects_counter_id, @fields_counter_id]
141
+ @counts_fibers = [@fibers_counter_id]
142
+ @counts_fibers_and_objects = [@fibers_counter_id, @objects_counter_id]
113
143
  @begin_validate = nil
114
144
  @begin_time = nil
115
145
  @packets = []
@@ -132,16 +162,19 @@ module GraphQL
132
162
  EventCategory.new(name: "ActiveSupport::Notifications", iid: ACTIVE_SUPPORT_NOTIFICATIONS_CATEGORY_IIDS.first),
133
163
  EventCategory.new(name: "Authorized", iid: AUTHORIZED_CATEGORY_IIDS.first),
134
164
  EventCategory.new(name: "Resolve Type", iid: RESOLVE_TYPE_CATEGORY_IIDS.first),
165
+ EventCategory.new(name: "Debug Inspect", iid: DEBUG_INSPECT_CATEGORY_IIDS.first),
135
166
  ],
136
167
  debug_annotation_names: [
137
- DebugAnnotationName.new(name: "object", iid: DA_OBJECT_IID),
138
- DebugAnnotationName.new(name: "arguments", iid: DA_ARGUMENTS_IID),
139
- DebugAnnotationName.new(name: "result", iid: DA_RESULT_IID),
140
- DebugAnnotationName.new(name: "fetch keys", iid: DA_FETCH_KEYS_IID),
168
+ *REVERSE_DEBUG_NAME_LOOKUP.map { |(iid, name)| DebugAnnotationName.new(name: name, iid: iid) },
169
+ DebugAnnotationName.new(name: "inspect instance of", iid: DA_DEBUG_INSPECT_CLASS_IID),
170
+ DebugAnnotationName.new(name: "inspecting for", iid: DA_DEBUG_INSPECT_FOR_IID)
141
171
  ],
142
172
  debug_annotation_string_values: [
143
173
  InternedString.new(str: "(nil)", iid: DA_STR_VAL_NIL_IID),
144
174
  ],
175
+ event_names: [
176
+ EventName.new(name: "#{(@detailed_trace.is_a?(Class) ? @detailed_trace : @detailed_trace.class).name}#inspect_object", iid: DEBUG_INSPECT_EVENT_NAME_IID)
177
+ ],
145
178
  ),
146
179
  trusted_packet_sequence_id: @sequence_id,
147
180
  sequence_flags: 2,
@@ -180,11 +213,9 @@ module GraphQL
180
213
  @packets << trace_packet(
181
214
  type: TrackEvent::Type::TYPE_SLICE_BEGIN,
182
215
  track_uuid: fid,
183
- name: "Multiplex",
184
- debug_annotations: [
185
- payload_to_debug("query_string", multiplex.queries.map(&:sanitized_query_string).join("\n\n"))
186
- ]
187
- )
216
+ name: "Multiplex"
217
+ ) { [ payload_to_debug("query_string", multiplex.queries.map(&:sanitized_query_string).join("\n\n")) ] }
218
+
188
219
  result = super
189
220
 
190
221
  @packets << trace_packet(
@@ -209,7 +240,7 @@ module GraphQL
209
240
  track_uuid: fid,
210
241
  name: query.context.current_path.join("."),
211
242
  category_iids: FIELD_EXECUTE_CATEGORY_IIDS,
212
- extra_counter_track_uuids: [@objects_counter_id],
243
+ extra_counter_track_uuids: @counts_objects,
213
244
  extra_counter_values: [count_allocations],
214
245
  )
215
246
  @packets << packet
@@ -218,19 +249,23 @@ module GraphQL
218
249
  end
219
250
 
220
251
  def end_execute_field(field, object, arguments, query, app_result)
252
+ end_ts = ts
221
253
  start_field = fiber_flow_stack.pop
222
- start_field.track_event = dup_with(start_field.track_event, {
223
- debug_annotations: [
224
- payload_to_debug(nil, object.object, iid: DA_OBJECT_IID, intern_value: true),
225
- payload_to_debug(nil, arguments, iid: DA_ARGUMENTS_IID),
226
- payload_to_debug(nil, app_result, iid: DA_RESULT_IID, intern_value: true)
227
- ]
228
- })
254
+ if @create_debug_annotations
255
+ start_field.track_event = dup_with(start_field.track_event,{
256
+ debug_annotations: [
257
+ payload_to_debug(nil, object.object, iid: DA_OBJECT_IID, intern_value: true),
258
+ payload_to_debug(nil, arguments, iid: DA_ARGUMENTS_IID),
259
+ payload_to_debug(nil, app_result, iid: DA_RESULT_IID, intern_value: true)
260
+ ]
261
+ })
262
+ end
229
263
 
230
264
  @packets << trace_packet(
265
+ timestamp: end_ts,
231
266
  type: TrackEvent::Type::TYPE_SLICE_END,
232
267
  track_uuid: fid,
233
- extra_counter_track_uuids: [@objects_counter_id, @fields_counter_id],
268
+ extra_counter_track_uuids: @counts_objects_and_fields,
234
269
  extra_counter_values: [count_allocations, count_fields],
235
270
  )
236
271
  super
@@ -240,22 +275,24 @@ module GraphQL
240
275
  @packets << trace_packet(
241
276
  type: TrackEvent::Type::TYPE_SLICE_BEGIN,
242
277
  track_uuid: fid,
243
- extra_counter_track_uuids: [@objects_counter_id],
278
+ extra_counter_track_uuids: @counts_objects,
244
279
  extra_counter_values: [count_allocations],
245
- name: "Analysis",
246
- debug_annotations: [
247
- payload_to_debug("analyzers_count", analyzers.size),
248
- payload_to_debug("analyzers", analyzers),
249
- ]
250
- )
280
+ name: "Analysis") {
281
+ [
282
+ payload_to_debug("analyzers_count", analyzers.size),
283
+ payload_to_debug("analyzers", analyzers),
284
+ ]
285
+ }
251
286
  super
252
287
  end
253
288
 
254
289
  def end_analyze_multiplex(m, analyzers)
290
+ end_ts = ts
255
291
  @packets << trace_packet(
292
+ timestamp: end_ts,
256
293
  type: TrackEvent::Type::TYPE_SLICE_END,
257
294
  track_uuid: fid,
258
- extra_counter_track_uuids: [@objects_counter_id],
295
+ extra_counter_track_uuids: @counts_objects,
259
296
  extra_counter_values: [count_allocations],
260
297
  )
261
298
  super
@@ -265,50 +302,57 @@ module GraphQL
265
302
  @packets << trace_packet(
266
303
  type: TrackEvent::Type::TYPE_SLICE_BEGIN,
267
304
  track_uuid: fid,
268
- extra_counter_track_uuids: [@objects_counter_id],
305
+ extra_counter_track_uuids: @counts_objects,
269
306
  extra_counter_values: [count_allocations],
270
307
  name: "Parse"
271
308
  )
272
309
  result = super
310
+ end_ts = ts
273
311
  @packets << trace_packet(
312
+ timestamp: end_ts,
274
313
  type: TrackEvent::Type::TYPE_SLICE_END,
275
314
  track_uuid: fid,
276
- extra_counter_track_uuids: [@objects_counter_id],
315
+ extra_counter_track_uuids: @counts_objects,
277
316
  extra_counter_values: [count_allocations],
278
317
  )
279
318
  result
280
319
  end
281
320
 
282
321
  def begin_validate(query, validate)
283
- @packets << @begin_validate = trace_packet(
322
+ @begin_validate = trace_packet(
284
323
  type: TrackEvent::Type::TYPE_SLICE_BEGIN,
285
324
  track_uuid: fid,
286
- extra_counter_track_uuids: [@objects_counter_id],
325
+ extra_counter_track_uuids: @counts_objects,
287
326
  extra_counter_values: [count_allocations],
288
- name: "Validate",
289
- debug_annotations: [
290
- payload_to_debug("validate?", validate),
291
- ]
292
- )
327
+ name: "Validate") {
328
+ [payload_to_debug("validate?", validate)]
329
+ }
330
+
331
+ @packets << @begin_validate
293
332
  super
294
333
  end
295
334
 
296
335
  def end_validate(query, validate, validation_errors)
336
+ end_ts = ts
297
337
  @packets << trace_packet(
338
+ timestamp: end_ts,
298
339
  type: TrackEvent::Type::TYPE_SLICE_END,
299
340
  track_uuid: fid,
300
- extra_counter_track_uuids: [@objects_counter_id],
341
+ extra_counter_track_uuids: @counts_objects,
301
342
  extra_counter_values: [count_allocations],
302
343
  )
303
- @begin_validate.track_event = dup_with(
304
- @begin_validate.track_event,
305
- {
306
- debug_annotations: [
307
- @begin_validate.track_event.debug_annotations.first,
308
- payload_to_debug("valid?", validation_errors.empty?)
309
- ]
310
- }
311
- )
344
+
345
+ if @create_debug_annotations
346
+ new_bv_track_event = dup_with(
347
+ @begin_validate.track_event, {
348
+ debug_annotations: [
349
+ @begin_validate.track_event.debug_annotations.first,
350
+ payload_to_debug("valid?", validation_errors.empty?)
351
+ ]
352
+ }
353
+ )
354
+ @begin_validate.track_event = new_bv_track_event
355
+ end
312
356
  super
313
357
  end
314
358
 
@@ -318,7 +362,7 @@ module GraphQL
318
362
  track_uuid: fid,
319
363
  name: "Create Execution Fiber",
320
364
  category_iids: DATALOADER_CATEGORY_IIDS,
321
- extra_counter_track_uuids: [@fibers_counter_id, @objects_counter_id],
365
+ extra_counter_track_uuids: @counts_fibers_and_objects,
322
366
  extra_counter_values: [count_fibers(1), count_allocations]
323
367
  )
324
368
  @packets << track_descriptor_packet(@did, fid, "Exec Fiber ##{fid}")
@@ -331,7 +375,7 @@ module GraphQL
331
375
  track_uuid: fid,
332
376
  name: "Create Source Fiber",
333
377
  category_iids: DATALOADER_CATEGORY_IIDS,
334
- extra_counter_track_uuids: [@fibers_counter_id, @objects_counter_id],
378
+ extra_counter_track_uuids: @counts_fibers_and_objects,
335
379
  extra_counter_values: [count_fibers(1), count_allocations]
336
380
  )
337
381
  @packets << track_descriptor_packet(@did, fid, "Source Fiber ##{fid}")
@@ -385,7 +429,7 @@ module GraphQL
385
429
  track_uuid: fid,
386
430
  name: "Fiber Exit",
387
431
  category_iids: DATALOADER_CATEGORY_IIDS,
388
- extra_counter_track_uuids: [@fibers_counter_id],
432
+ extra_counter_track_uuids: @counts_fibers,
389
433
  extra_counter_values: [count_fibers(-1)],
390
434
  )
391
435
  super
@@ -415,31 +459,34 @@ module GraphQL
415
459
  fds = @flow_ids[source]
416
460
  fds_copy = fds.dup
417
461
  fds.clear
462
+
418
463
  packet = trace_packet(
419
464
  type: TrackEvent::Type::TYPE_SLICE_BEGIN,
420
465
  track_uuid: fid,
421
466
  name_iid: @source_name_iids[source.class],
422
467
  category_iids: DATALOADER_CATEGORY_IIDS,
423
468
  flow_ids: fds_copy,
424
- extra_counter_track_uuids: [@objects_counter_id],
425
- extra_counter_values: [count_allocations],
426
- debug_annotations: [
427
- payload_to_debug(nil, source.pending.values, iid: DA_FETCH_KEYS_IID, intern_value: true),
428
- *(source.instance_variables - [:@pending, :@fetching, :@results, :@dataloader]).map { |iv|
429
- payload_to_debug(iv.to_s, source.instance_variable_get(iv), intern_value: true)
430
- }
431
- ]
432
- )
469
+ extra_counter_track_uuids: @counts_objects,
470
+ extra_counter_values: [count_allocations]) {
471
+ [
472
+ payload_to_debug(nil, source.pending.values, iid: DA_FETCH_KEYS_IID, intern_value: true),
473
+ *(source.instance_variables - [:@pending, :@fetching, :@results, :@dataloader]).map { |iv|
474
+ payload_to_debug(iv.to_s, source.instance_variable_get(iv), intern_value: true)
475
+ }
476
+ ]
477
+ }
433
478
  @packets << packet
434
479
  fiber_flow_stack << packet
435
480
  super
436
481
  end
437
482
 
438
483
  def end_dataloader_source(source)
484
+ end_ts = ts
439
485
  @packets << trace_packet(
486
+ timestamp: end_ts,
440
487
  type: TrackEvent::Type::TYPE_SLICE_END,
441
488
  track_uuid: fid,
442
- extra_counter_track_uuids: [@objects_counter_id],
489
+ extra_counter_track_uuids: @counts_objects,
443
490
  extra_counter_values: [count_allocations],
444
491
  )
445
492
  fiber_flow_stack.pop
@@ -451,7 +498,7 @@ module GraphQL
451
498
  type: TrackEvent::Type::TYPE_SLICE_BEGIN,
452
499
  track_uuid: fid,
453
500
  category_iids: AUTHORIZED_CATEGORY_IIDS,
454
- extra_counter_track_uuids: [@objects_counter_id],
501
+ extra_counter_track_uuids: @counts_objects,
455
502
  extra_counter_values: [count_allocations],
456
503
  name_iid: @auth_name_iids[type],
457
504
  )
@@ -461,14 +508,18 @@ module GraphQL
461
508
  end
462
509
 
463
510
  def end_authorized(type, obj, ctx, is_authorized)
511
+ end_ts = ts
464
512
  @packets << trace_packet(
513
+ timestamp: end_ts,
465
514
  type: TrackEvent::Type::TYPE_SLICE_END,
466
515
  track_uuid: fid,
467
- extra_counter_track_uuids: [@objects_counter_id],
516
+ extra_counter_track_uuids: @counts_objects,
468
517
  extra_counter_values: [count_allocations],
469
518
  )
470
519
  beg_auth = fiber_flow_stack.pop
471
- beg_auth.track_event = dup_with(beg_auth.track_event, { debug_annotations: [payload_to_debug("authorized?", is_authorized)] })
520
+ if @create_debug_annotations
521
+ beg_auth.track_event = dup_with(beg_auth.track_event, { debug_annotations: [payload_to_debug("authorized?", is_authorized)] })
522
+ end
472
523
  super
473
524
  end
474
525
 
@@ -477,7 +528,7 @@ module GraphQL
477
528
  type: TrackEvent::Type::TYPE_SLICE_BEGIN,
478
529
  track_uuid: fid,
479
530
  category_iids: RESOLVE_TYPE_CATEGORY_IIDS,
480
- extra_counter_track_uuids: [@objects_counter_id],
531
+ extra_counter_track_uuids: @counts_objects,
481
532
  extra_counter_values: [count_allocations],
482
533
  name_iid: @resolve_type_name_iids[type],
483
534
  )
@@ -487,14 +538,18 @@ module GraphQL
487
538
  end
488
539
 
489
540
  def end_resolve_type(type, value, context, resolved_type)
541
+ end_ts = ts
490
542
  @packets << trace_packet(
543
+ timestamp: end_ts,
491
544
  type: TrackEvent::Type::TYPE_SLICE_END,
492
545
  track_uuid: fid,
493
- extra_counter_track_uuids: [@objects_counter_id],
546
+ extra_counter_track_uuids: @counts_objects,
494
547
  extra_counter_values: [count_allocations],
495
548
  )
496
549
  rt_begin = fiber_flow_stack.pop
497
- rt_begin.track_event = dup_with(rt_begin.track_event, { debug_annotations: [payload_to_debug("resolved_type", resolved_type, intern_value: true)] })
550
+ if @create_debug_annotations
551
+ rt_begin.track_event = dup_with(rt_begin.track_event, { debug_annotations: [payload_to_debug("resolved_type", resolved_type, intern_value: true)] })
552
+ end
498
553
  super
499
554
  end
500
555
 
@@ -546,7 +601,6 @@ module GraphQL
546
601
  def payload_to_debug(k, v, iid: nil, intern_value: false)
547
602
  if iid.nil?
548
603
  iid = @interned_da_name_ids[k]
549
- k = nil
550
604
  end
551
605
  case v
552
606
  when String
@@ -578,15 +632,41 @@ module GraphQL
578
632
  when Symbol
579
633
  debug_annotation(iid, :string_value, v.inspect)
580
634
  when Array
581
- debug_annotation(iid, :array_values, v.map { |v2| payload_to_debug(nil, v2, intern_value: intern_value) }.compact)
635
+ debug_annotation(iid, :array_values, v.each_with_index.map { |v2, idx| payload_to_debug((k ? "#{k}.#{idx}" : String(idx)), v2, intern_value: intern_value) }.compact)
582
636
  when Hash
583
637
  debug_annotation(iid, :dict_entries, v.map { |k2, v2| payload_to_debug(k2, v2, intern_value: intern_value) }.compact)
584
638
  else
585
- debug_str = if defined?(ActiveRecord::Relation) && v.is_a?(ActiveRecord::Relation)
586
- "#{v.class}, .to_sql=#{v.to_sql.inspect}"
587
- else
588
- v.inspect
639
+ class_name_iid = @interned_da_string_values[v.class.name]
640
+ da = [
641
+ debug_annotation(DA_DEBUG_INSPECT_CLASS_IID, :string_value_iid, class_name_iid),
642
+ ]
643
+ if k
644
+ k_str_value_iid = @interned_da_string_values[k]
645
+ da << debug_annotation(DA_DEBUG_INSPECT_FOR_IID, :string_value_iid, k_str_value_iid)
646
+ elsif iid
647
+ k = REVERSE_DEBUG_NAME_LOOKUP[iid] || @interned_da_name_ids.key(iid)
648
+ if k.nil?
649
+ da << debug_annotation(DA_DEBUG_INSPECT_FOR_IID, :string_value_iid, DA_STR_VAL_NIL_IID)
650
+ else
651
+ k_str_value_iid = @interned_da_string_values[k]
652
+ da << debug_annotation(DA_DEBUG_INSPECT_FOR_IID, :string_value_iid, k_str_value_iid)
653
+ end
589
654
  end
655
+
656
+ @packets << trace_packet(
657
+ type: TrackEvent::Type::TYPE_SLICE_BEGIN,
658
+ track_uuid: fid,
659
+ name_iid: DEBUG_INSPECT_EVENT_NAME_IID,
660
+ category_iids: DEBUG_INSPECT_CATEGORY_IIDS,
661
+ extra_counter_track_uuids: @counts_objects,
662
+ extra_counter_values: [count_allocations],
663
+ debug_annotations: da,
664
+ )
665
+ debug_str = @detailed_trace.inspect_object(v)
666
+ @packets << trace_packet(
667
+ type: TrackEvent::Type::TYPE_SLICE_END,
668
+ track_uuid: fid,
669
+ )
590
670
  if intern_value
591
671
  str_iid = @interned_da_string_values[debug_str]
592
672
  debug_annotation(iid, :string_value_iid, str_iid)
@@ -622,10 +702,14 @@ module GraphQL
622
702
  Fiber[:graphql_flow_stack] ||= []
623
703
  end
624
704
 
625
- def trace_packet(event_attrs)
705
+ def trace_packet(timestamp: ts, **event_attrs)
706
+ if @create_debug_annotations && block_given?
707
+ event_attrs[:debug_annotations] = yield
708
+ end
709
+ track_event = TrackEvent.new(event_attrs)
626
710
  TracePacket.new(
627
- timestamp: ts,
628
- track_event: TrackEvent.new(event_attrs),
711
+ timestamp: timestamp,
712
+ track_event: track_event,
629
713
  trusted_packet_sequence_id: @sequence_id,
630
714
  sequence_flags: 2,
631
715
  interned_data: new_interned_data
@@ -690,9 +774,9 @@ module GraphQL
690
774
 
691
775
  def subscribe_to_active_support_notifications(pattern)
692
776
  @as_subscriber = ActiveSupport::Notifications.monotonic_subscribe(pattern) do |name, start, finish, id, payload|
693
- metadata = payload.map { |k, v| payload_to_debug(k, v, intern_value: true) }
694
- metadata.compact!
695
- te = if metadata.empty?
777
+ metadata = @create_debug_annotations ? payload.map { |k, v| payload_to_debug(String(k), v, intern_value: true) } : nil
778
+ metadata&.compact!
779
+ te = if metadata.nil? || metadata.empty?
696
780
  TrackEvent.new(
697
781
  type: TrackEvent::Type::TYPE_SLICE_BEGIN,
698
782
  track_uuid: fid,
@@ -721,7 +805,7 @@ module GraphQL
721
805
  type: TrackEvent::Type::TYPE_SLICE_END,
722
806
  track_uuid: fid,
723
807
  name: name,
724
- extra_counter_track_uuids: [@objects_counter_id],
808
+ extra_counter_track_uuids: @counts_objects,
725
809
  extra_counter_values: [count_allocations]
726
810
  ),
727
811
  trusted_packet_sequence_id: @sequence_id,
@@ -41,7 +41,9 @@ module GraphQL
41
41
  if query.selected_operation_name
42
42
  span.set_data('graphql.operation.name', query.selected_operation_name)
43
43
  end
44
- span.set_data('graphql.operation.type', query.selected_operation.operation_type)
44
+ if query.selected_operation
45
+ span.set_data('graphql.operation.type', query.selected_operation.operation_type)
46
+ end
45
47
  end
46
48
  end
47
49
 
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module GraphQL
3
- VERSION = "2.5.11"
3
+ VERSION = "2.5.16"
4
4
  end
data/lib/graphql.rb CHANGED
@@ -4,7 +4,7 @@ require "json"
4
4
  require "set"
5
5
  require "singleton"
6
6
  require "forwardable"
7
- require "fiber/storage"
7
+ require "fiber/storage" if RUBY_VERSION < "3.2.0"
8
8
  require "graphql/autoload"
9
9
 
10
10
  module GraphQL
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.11
4
+ version: 2.5.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Mosolgo
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-07-09 00:00:00.000000000 Z
10
+ date: 2025-12-10 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: base64
@@ -729,6 +729,7 @@ files:
729
729
  - lib/graphql/subscriptions/serialize.rb
730
730
  - lib/graphql/testing.rb
731
731
  - lib/graphql/testing/helpers.rb
732
+ - lib/graphql/testing/mock_action_cable.rb
732
733
  - lib/graphql/tracing.rb
733
734
  - lib/graphql/tracing/active_support_notifications_trace.rb
734
735
  - lib/graphql/tracing/active_support_notifications_tracing.rb
@@ -817,7 +818,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
817
818
  - !ruby/object:Gem::Version
818
819
  version: '0'
819
820
  requirements: []
820
- rubygems_version: 3.6.8
821
+ rubygems_version: 3.6.2
821
822
  specification_version: 4
822
823
  summary: A GraphQL language and runtime for Ruby
823
824
  test_files: []