checkoff 0.257.0 → 0.260.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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/lib/checkoff/attachments.rb +14 -15
  3. data/lib/checkoff/cli.rb +7 -12
  4. data/lib/checkoff/clients.rb +0 -2
  5. data/lib/checkoff/custom_fields.rb +13 -26
  6. data/lib/checkoff/internal/asana_event_enrichment.rb +11 -13
  7. data/lib/checkoff/internal/asana_event_filter.rb +1 -1
  8. data/lib/checkoff/internal/config_loader.rb +0 -2
  9. data/lib/checkoff/internal/logging.rb +0 -2
  10. data/lib/checkoff/internal/project_hashes.rb +5 -4
  11. data/lib/checkoff/internal/search_url/custom_field_param_converter.rb +9 -9
  12. data/lib/checkoff/internal/search_url/custom_field_variant.rb +7 -0
  13. data/lib/checkoff/internal/search_url/date_param_converter.rb +13 -4
  14. data/lib/checkoff/internal/search_url/parser.rb +2 -7
  15. data/lib/checkoff/internal/search_url/simple_param_converter.rb +11 -5
  16. data/lib/checkoff/internal/section_selector_evaluator.rb +1 -1
  17. data/lib/checkoff/internal/selector_classes/common/function_evaluator.rb +5 -2
  18. data/lib/checkoff/internal/selector_classes/common.rb +13 -31
  19. data/lib/checkoff/internal/selector_classes/function_evaluator.rb +20 -4
  20. data/lib/checkoff/internal/selector_classes/project/function_evaluator.rb +11 -2
  21. data/lib/checkoff/internal/selector_classes/project.rb +5 -13
  22. data/lib/checkoff/internal/selector_classes/section/function_evaluator.rb +8 -5
  23. data/lib/checkoff/internal/selector_classes/section.rb +2 -5
  24. data/lib/checkoff/internal/selector_classes/task/function_evaluator.rb +2 -2
  25. data/lib/checkoff/internal/selector_classes/task.rb +24 -23
  26. data/lib/checkoff/internal/selector_evaluator.rb +8 -9
  27. data/lib/checkoff/internal/task_hashes.rb +17 -9
  28. data/lib/checkoff/internal/task_timing.rb +0 -4
  29. data/lib/checkoff/internal/thread_local.rb +0 -2
  30. data/lib/checkoff/monkeypatches/resource_marshalling.rb +3 -3
  31. data/lib/checkoff/my_tasks.rb +1 -4
  32. data/lib/checkoff/portfolios.rb +0 -1
  33. data/lib/checkoff/project_selectors.rb +1 -1
  34. data/lib/checkoff/projects.rb +19 -8
  35. data/lib/checkoff/resources.rb +14 -3
  36. data/lib/checkoff/sections.rb +13 -19
  37. data/lib/checkoff/subtasks.rb +1 -2
  38. data/lib/checkoff/tags.rb +3 -4
  39. data/lib/checkoff/task_searches.rb +1 -8
  40. data/lib/checkoff/task_selectors.rb +25 -12
  41. data/lib/checkoff/tasks.rb +8 -16
  42. data/lib/checkoff/timelines.rb +5 -10
  43. data/lib/checkoff/timing.rb +1 -2
  44. data/lib/checkoff/version.rb +1 -1
  45. data/lib/checkoff/workspaces.rb +1 -7
  46. data/rbi/checkoff.rbi +122 -179
  47. data/sig/checkoff.rbs +83 -181
  48. metadata +2 -2
data/sig/checkoff.rbs CHANGED
@@ -127,7 +127,7 @@ module Checkoff
127
127
  String workspace_name,
128
128
  (String | Symbol) project_name,
129
129
  (String | Symbol)? section_name,
130
- (String | Symbol)? task_name,
130
+ String? task_name,
131
131
  ?config: (Checkoff::Internal::EnvFallbackConfigLoader | ::Hash[untyped, untyped]),
132
132
  ?projects: Checkoff::Projects,
133
133
  ?sections: Checkoff::Sections,
@@ -288,8 +288,6 @@ module Checkoff
288
288
  ) -> ::Enumerable[Asana::Resources::Task]
289
289
 
290
290
  # sord warn - Asana::Resources::Tag wasn't able to be resolved to a constant in this project
291
- # @sg-ignore nil check above is not flow-sensitive
292
- #
293
291
  # _@param_ `workspace_name`
294
292
  #
295
293
  # _@param_ `tag_name`
@@ -351,7 +349,7 @@ module Checkoff
351
349
  #
352
350
  # _@param_ `asana_task`
353
351
  def initialize: (
354
- ?config: (::Hash[untyped, untyped] | Checkoff::Internal::EnvFallbackConfigLoader),
352
+ ?config: (::Hash[Symbol, Object] | Checkoff::Internal::EnvFallbackConfigLoader),
355
353
  ?client: Asana::Client,
356
354
  ?workspaces: Checkoff::Workspaces,
357
355
  ?sections: Checkoff::Sections,
@@ -444,9 +442,6 @@ module Checkoff
444
442
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
445
443
  # Add a task
446
444
  #
447
- # @sg-ignore @asana_task.create return type could not be inferred — calling a class method
448
- # through a Class<T>-typed ivar is a known Solargraph dispatch limitation
449
- #
450
445
  # _@param_ `name`
451
446
  #
452
447
  # _@param_ `workspace_gid`
@@ -494,13 +489,11 @@ module Checkoff
494
489
 
495
490
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
496
491
  # _@param_ `task_data`
497
- def h_to_task: (::Hash[untyped, untyped] task_data) -> Asana::Resources::Task
492
+ def h_to_task: (::Hash[String, Object] task_data) -> Asana::Resources::Task
498
493
 
499
494
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
500
495
  # True if the task is in a project which is in the given portfolio
501
496
  #
502
- # @sg-ignore Checkoff::Tasks#in_portfolio_named? return type could not be inferred
503
- #
504
497
  # _@param_ `task`
505
498
  #
506
499
  # _@param_ `portfolio_name`
@@ -544,9 +537,6 @@ module Checkoff
544
537
 
545
538
  def projects: () -> Checkoff::Projects
546
539
 
547
- # @sg-ignore @config.fetch return type could not be inferred — @config is intentionally
548
- # dual-typed [Hash, EnvFallbackConfigLoader] throughout this codebase; Solargraph can't
549
- # unify #fetch across that union
550
540
  def default_assignee_gid: () -> String
551
541
 
552
542
  def logger: () -> ::Logger
@@ -566,7 +556,6 @@ module Checkoff
566
556
  # _@param_ `message`
567
557
  def finer: (?Object? message) -> void
568
558
 
569
- # @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
570
559
  def log_level: () -> Symbol
571
560
 
572
561
  # sord warn - Asana::Client wasn't able to be resolved to a constant in this project
@@ -656,7 +645,6 @@ module Checkoff
656
645
  # _@param_ `message`
657
646
  def finer: (?Object? message) -> void
658
647
 
659
- # @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
660
648
  def log_level: () -> Symbol
661
649
 
662
650
  attr_reader projects: Checkoff::Projects
@@ -692,7 +680,7 @@ module Checkoff
692
680
  # _@param_ `date_or_time`
693
681
  #
694
682
  # _@param_ `period` — Valid values: :this_week, :now_or_before, :indefinite, [:less_than_n_days_ago, Integer]
695
- def in_period?: ((Date | Time)? date_or_time, (Symbol | [Symbol, Integer]) period) -> bool
683
+ def in_period?: ((Date | Time)? date_or_time, (Symbol | ::Array[(Symbol | Integer)]) period) -> bool
696
684
 
697
685
  # _@param_ `date_or_time`
698
686
  #
@@ -731,8 +719,6 @@ module Checkoff
731
719
  # _@param_ `num_days`
732
720
  def n_days_from_now: (Integer num_days) -> ActiveSupport::TimeWithZone
733
721
 
734
- # @sg-ignore Checkoff::Timing#n_days_from_today return type could not be inferred
735
- #
736
722
  # _@param_ `num_days`
737
723
  def n_days_from_today: (Integer num_days) -> Date
738
724
 
@@ -769,7 +755,6 @@ module Checkoff
769
755
  # _@param_ `message`
770
756
  def finer: (?Object? message) -> void
771
757
 
772
- # @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
773
758
  def log_level: () -> Symbol
774
759
  end
775
760
 
@@ -844,13 +829,13 @@ module Checkoff
844
829
  class Projects
845
830
  include Logging
846
831
  extend CacheMethod::ClassMethods
847
- MINUTE: untyped
848
- HOUR: untyped
849
- DAY: untyped
850
- REALLY_LONG_CACHE_TIME: untyped
851
- LONG_CACHE_TIME: untyped
852
- MEDIUM_CACHE_TIME: untyped
853
- SHORT_CACHE_TIME: untyped
832
+ MINUTE: Integer
833
+ HOUR: Integer
834
+ DAY: Integer
835
+ REALLY_LONG_CACHE_TIME: Integer
836
+ LONG_CACHE_TIME: Integer
837
+ MEDIUM_CACHE_TIME: Integer
838
+ SHORT_CACHE_TIME: Integer
854
839
 
855
840
  # sord warn - Asana::Client wasn't able to be resolved to a constant in this project
856
841
  # _@param_ `config`
@@ -878,6 +863,12 @@ module Checkoff
878
863
 
879
864
  # Default options used in Asana API to pull tasks
880
865
  #
866
+ # Keys are :per_page (Integer), :options (a Hash whose :fields is an
867
+ # Array<String>) and, when only_uncompleted is set, :completed_since
868
+ # (String). The value type is genuinely per-key, which a single YARD
869
+ # Hash value type cannot express.
870
+ # Callers who want the field list should call #task_fields directly.
871
+ #
881
872
  # _@param_ `extra_fields`
882
873
  #
883
874
  # _@param_ `only_uncompleted`
@@ -902,8 +893,6 @@ module Checkoff
902
893
  def project: ((String | Symbol) workspace_name, (String | Symbol) project_name, ?extra_fields: ::Array[String]) -> Asana::Resources::Project?
903
894
 
904
895
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
905
- # @sg-ignore nil check above is not flow-sensitive
906
- #
907
896
  # _@param_ `workspace_name`
908
897
  #
909
898
  # _@param_ `project_name` — - :my_tasks or a project name
@@ -954,8 +943,8 @@ module Checkoff
954
943
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
955
944
  # _@param_ `project_obj`
956
945
  #
957
- # _@param_ `project` — - :not_specified, :my_tasks or a project name
958
- def project_to_h: (Asana::Resources::Project project_obj, ?project: (String | Symbol)) -> ::Hash[untyped, untyped]
946
+ # _@param_ `project` — - a String is a project name
947
+ def project_to_h: (Asana::Resources::Project project_obj, ?project: (String | Symbol)?) -> ::Hash[String, Object]
959
948
 
960
949
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
961
950
  # Indicates a project is ready for a person to work on it. This
@@ -968,7 +957,7 @@ module Checkoff
968
957
  # _@param_ `project`
969
958
  #
970
959
  # _@param_ `period` — See Checkoff::Timing#in_period? - :now_or_before,:this_week
971
- def project_ready?: (Asana::Resources::Project project, ?period: (Symbol | [Symbol, Integer])) -> bool
960
+ def project_ready?: (Asana::Resources::Project project, ?period: (Symbol | ::Array[(Symbol | Integer)])) -> bool
972
961
 
973
962
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
974
963
  # _@param_ `project`
@@ -976,7 +965,7 @@ module Checkoff
976
965
  # _@param_ `field_name`
977
966
  #
978
967
  # _@param_ `period` — See Checkoff::Timing#in_period? - :now_or_before,:this_week
979
- def in_period?: (Asana::Resources::Project project, (Symbol | ::Array[untyped]) field_name, (Symbol | [Symbol, Integer]) period) -> bool
968
+ def in_period?: (Asana::Resources::Project project, (Symbol | ::Array[untyped]) field_name, (Symbol | ::Array[(Symbol | Integer)]) period) -> bool
980
969
 
981
970
  def as_cache_key: () -> ::Hash[untyped, untyped]
982
971
 
@@ -1004,7 +993,6 @@ module Checkoff
1004
993
  # _@param_ `message`
1005
994
  def finer: (?Object? message) -> void
1006
995
 
1007
- # @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
1008
996
  def log_level: () -> Symbol
1009
997
 
1010
998
  attr_reader timing: Checkoff::Timing
@@ -1022,11 +1010,11 @@ module Checkoff
1022
1010
  include Logging
1023
1011
  extend CacheMethod::ClassMethods
1024
1012
  extend Forwardable
1025
- MINUTE: untyped
1026
- HOUR: untyped
1027
- REALLY_LONG_CACHE_TIME: untyped
1028
- LONG_CACHE_TIME: untyped
1029
- SHORT_CACHE_TIME: untyped
1013
+ MINUTE: Integer
1014
+ HOUR: Integer
1015
+ REALLY_LONG_CACHE_TIME: Integer
1016
+ LONG_CACHE_TIME: Integer
1017
+ SHORT_CACHE_TIME: Integer
1030
1018
 
1031
1019
  # sord warn - Asana::Client wasn't able to be resolved to a constant in this project
1032
1020
  # _@param_ `config`
@@ -1111,7 +1099,6 @@ module Checkoff
1111
1099
  ) -> ::Enumerable[Asana::Resources::Task]
1112
1100
 
1113
1101
  # Pulls just names of tasks from a given section.
1114
- # @sg-ignore
1115
1102
  #
1116
1103
  # _@param_ `workspace_name`
1117
1104
  #
@@ -1121,8 +1108,6 @@ module Checkoff
1121
1108
  def section_task_names: (String workspace_name, (String | Symbol) project_name, String? section_name) -> ::Array[String]
1122
1109
 
1123
1110
  # sord warn - Asana::Resources::Section wasn't able to be resolved to a constant in this project
1124
- # @sg-ignore section() is nil-checked below
1125
- #
1126
1111
  # _@param_ `workspace_name`
1127
1112
  #
1128
1113
  # _@param_ `project_name`
@@ -1203,8 +1188,6 @@ module Checkoff
1203
1188
  def file_task_by_section: (::Hash[String?, ::Array[Asana::Resources::Task]] by_section, Asana::Resources::Task task, String project_gid) -> void
1204
1189
 
1205
1190
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
1206
- # @sg-ignore projects.project may be nil but is raised below
1207
- #
1208
1191
  # _@param_ `workspace_name`
1209
1192
  #
1210
1193
  # _@param_ `project_name`
@@ -1227,7 +1210,6 @@ module Checkoff
1227
1210
  # _@param_ `message`
1228
1211
  def finer: (?Object? message) -> void
1229
1212
 
1230
- # @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
1231
1213
  def log_level: () -> Symbol
1232
1214
 
1233
1215
  attr_reader projects: Checkoff::Projects
@@ -1294,8 +1276,6 @@ module Checkoff
1294
1276
  # expected to move to the new-style way of representing sections
1295
1277
  # as memberships with a separate API within a task.
1296
1278
  #
1297
- # @sg-ignore Checkoff::Subtasks#subtask_section? return type could not be inferred
1298
- #
1299
1279
  # _@param_ `subtask`
1300
1280
  def subtask_section?: (Asana::Resources::Task subtask) -> bool?
1301
1281
 
@@ -1373,6 +1353,11 @@ module Checkoff
1373
1353
 
1374
1354
  def self.run: () -> void
1375
1355
 
1356
+ # _@param_ `resource_type`
1357
+ #
1358
+ # _@param_ `gid`
1359
+ def fetch_gid_by_type: (String resource_type, String gid) -> Asana::Resources::Resource?
1360
+
1376
1361
  attr_reader workspaces: Checkoff::Workspaces
1377
1362
 
1378
1363
  attr_reader projects: Checkoff::Projects
@@ -1445,7 +1430,7 @@ module Checkoff
1445
1430
  # _@param_ `task_data`
1446
1431
  #
1447
1432
  # _@param_ `section`
1448
- def task_data_dependent_on_previous_section_last_milestone?: (::Hash[untyped, untyped] task_data, Asana::Resources::Section section) -> bool
1433
+ def task_data_dependent_on_previous_section_last_milestone?: (::Hash[String, Object] task_data, Asana::Resources::Section section) -> bool
1449
1434
 
1450
1435
  def self.run: () -> void
1451
1436
 
@@ -1485,8 +1470,6 @@ module Checkoff
1485
1470
  ) -> void
1486
1471
 
1487
1472
  # sord warn - Asana::Resources::Portfolio wasn't able to be resolved to a constant in this project
1488
- # @sg-ignore nil check above is not flow-sensitive
1489
- #
1490
1473
  # _@param_ `workspace_name`
1491
1474
  #
1492
1475
  # _@param_ `portfolio_name`
@@ -1548,7 +1531,7 @@ module Checkoff
1548
1531
  # _@param_ `client`
1549
1532
  #
1550
1533
  # _@param_ `asana_workspace`
1551
- def initialize: (?config: (::Hash[untyped, untyped] | Checkoff::Internal::EnvFallbackConfigLoader), ?client: Asana::Client, ?asana_workspace: singleton(Asana::Resources::Workspace)) -> void
1534
+ def initialize: (?config: (::Hash[Symbol, Object] | Checkoff::Internal::EnvFallbackConfigLoader), ?client: Asana::Client, ?asana_workspace: singleton(Asana::Resources::Workspace)) -> void
1552
1535
 
1553
1536
  # sord warn - Asana::Resources::Workspace wasn't able to be resolved to a constant in this project
1554
1537
  # Pulls an Asana workspace object
@@ -1557,19 +1540,12 @@ module Checkoff
1557
1540
  def workspace: ((String | Symbol) workspace_name) -> Asana::Resources::Workspace?
1558
1541
 
1559
1542
  # sord warn - Asana::Resources::Workspace wasn't able to be resolved to a constant in this project
1560
- # @sg-ignore @asana_workspace.find_by_id return type could not be inferred — calling a
1561
- # class method through a Class<T>-typed ivar is a known Solargraph dispatch limitation
1562
1543
  def default_workspace: () -> Asana::Resources::Workspace
1563
1544
 
1564
1545
  # sord warn - Asana::Resources::Workspace wasn't able to be resolved to a constant in this project
1565
- # @sg-ignore workspace() is nil-checked below
1566
- #
1567
1546
  # _@param_ `workspace_name`
1568
1547
  def workspace_or_raise: ((String | Symbol) workspace_name) -> Asana::Resources::Workspace
1569
1548
 
1570
- # @sg-ignore @config.fetch return type could not be inferred — @config is intentionally
1571
- # dual-typed [Hash, EnvFallbackConfigLoader] throughout this codebase; Solargraph can't
1572
- # unify #fetch across that union
1573
1549
  def default_workspace_gid: () -> String
1574
1550
 
1575
1551
  # sord warn - Asana::Client wasn't able to be resolved to a constant in this project
@@ -1686,7 +1662,6 @@ module Checkoff
1686
1662
  # _@param_ `message`
1687
1663
  def finer: (?Object? message) -> void
1688
1664
 
1689
- # @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
1690
1665
  def log_level: () -> Symbol
1691
1666
 
1692
1667
  attr_reader workspaces: Checkoff::Workspaces
@@ -1721,8 +1696,6 @@ module Checkoff
1721
1696
  ) -> void
1722
1697
 
1723
1698
  # sord warn - Asana::Resources::CustomField wasn't able to be resolved to a constant in this project
1724
- # @sg-ignore nil check above is not flow-sensitive
1725
- #
1726
1699
  # _@param_ `workspace_name`
1727
1700
  #
1728
1701
  # _@param_ `custom_field_name`
@@ -1743,10 +1716,6 @@ module Checkoff
1743
1716
 
1744
1717
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
1745
1718
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
1746
- # @sg-ignore Declared return type Array<String> does not match inferred type Array,Array<Array> —
1747
- # fixing cleanly needs binding enum_value.fetch('name') to a typed local; leaving for a
1748
- # follow-up code PR to keep this one annotation-only.
1749
- #
1750
1719
  # _@param_ `resource`
1751
1720
  #
1752
1721
  # _@param_ `custom_field_name`
@@ -1757,37 +1726,37 @@ module Checkoff
1757
1726
  # _@param_ `resource`
1758
1727
  #
1759
1728
  # _@param_ `custom_field_name`
1760
- def resource_custom_field_by_name: ((Asana::Resources::Task | Asana::Resources::Project) resource, String custom_field_name) -> ::Hash[untyped, untyped]?
1729
+ def resource_custom_field_by_name: ((Asana::Resources::Task | Asana::Resources::Project) resource, String custom_field_name) -> ::Hash[String, Object]?
1761
1730
 
1762
1731
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
1763
1732
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
1764
- # @sg-ignore nil check above is not flow-sensitive
1765
- #
1766
1733
  # _@param_ `resource`
1767
1734
  #
1768
1735
  # _@param_ `custom_field_name`
1769
- def resource_custom_field_by_name_or_raise: ((Asana::Resources::Task | Asana::Resources::Project) resource, String custom_field_name) -> ::Hash[untyped, untyped]
1736
+ def resource_custom_field_by_name_or_raise: ((Asana::Resources::Task | Asana::Resources::Project) resource, String custom_field_name) -> ::Hash[String, Object]
1770
1737
 
1771
1738
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
1772
1739
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
1773
- # @sg-ignore nil check above is not flow-sensitive
1774
- #
1775
1740
  # _@param_ `resource`
1776
1741
  #
1777
1742
  # _@param_ `custom_field_gid`
1778
- def resource_custom_field_by_gid_or_raise: ((Asana::Resources::Project | Asana::Resources::Task) resource, String custom_field_gid) -> ::Hash[untyped, untyped]
1743
+ def resource_custom_field_by_gid_or_raise: ((Asana::Resources::Project | Asana::Resources::Task) resource, String custom_field_gid) -> ::Hash[String, Object]
1779
1744
 
1780
- # @sg-ignore Declared return type Array<Hash> does not match inferred type Array,Hash,Array<Hash> —
1781
- # fixing cleanly needs restructuring the case/when to bind each branch to a typed local; leaving
1782
- # for a follow-up code PR to keep this one annotation-only.
1745
+ # sord warn - "\"resource_subtype\"" does not appear to be a type
1746
+ # sord warn - "String} & Hash{\"enum_value\"" does not appear to be a type
1747
+ # sord warn - "Hash} & Hash{\"multi_enum_values\"" does not appear to be a type
1748
+ # sord warn - "\"gid\"" does not appear to be a type
1749
+ # sord warn - "String} & Hash{\"name\"" does not appear to be a type
1750
+ # rubocop:disable Layout/LineLength, YARD/TagTypeSyntax
1751
+ # rubocop:enable Layout/LineLength, YARD/TagTypeSyntax
1783
1752
  #
1784
1753
  # _@param_ `custom_field`
1785
- def resource_custom_field_enum_values: (::Hash[String, (::Hash[untyped, untyped] | ::Array[::Hash[untyped, untyped]])] custom_field) -> ::Array[::Hash[untyped, untyped]]
1754
+ def resource_custom_field_enum_values: (::Hash[untyped, (untyped | (untyped | ::Array[::Hash[untyped, untyped]]))] custom_field) -> ::Array[::Hash[untyped, (untyped | String)]]
1786
1755
 
1787
1756
  # _@param_ `custom_field`
1788
1757
  #
1789
1758
  # _@param_ `enum_value`
1790
- def find_gids: (::Hash[untyped, untyped] custom_field, ::Hash[String, String]? enum_value) -> ::Array[String]
1759
+ def find_gids: (::Hash[String, Object] custom_field, ::Hash[String, String]? enum_value) -> ::Array[String]
1791
1760
 
1792
1761
  def self.run: () -> void
1793
1762
 
@@ -1909,9 +1878,6 @@ module Checkoff
1909
1878
  # _@param_ `extra_fields`
1910
1879
  def iterated_raw_task_search: (::Hash[String, Object] api_params, workspace_gid: String, extra_fields: ::Array[String]) -> ::Enumerable[Asana::Resources::Task]
1911
1880
 
1912
- # @sg-ignore return type could not be inferred — bracket access on a Hash{Symbol=>undefined}
1913
- # local doesn't narrow even with a T.cast on the return expression
1914
- #
1915
1881
  # _@param_ `extra_fields`
1916
1882
  def calculate_api_options: (::Array[String] extra_fields) -> ::Hash[Symbol, ::Array[String]]
1917
1883
 
@@ -1934,7 +1900,6 @@ module Checkoff
1934
1900
  # _@param_ `message`
1935
1901
  def finer: (?Object? message) -> void
1936
1902
 
1937
- # @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
1938
1903
  def log_level: () -> Symbol
1939
1904
 
1940
1905
  attr_reader task_selectors: Checkoff::TaskSelectors
@@ -1978,19 +1943,19 @@ module Checkoff
1978
1943
  # _@param_ `task`
1979
1944
  #
1980
1945
  # _@param_ `task_selector` — Filter based on task details. Examples: [:tag, 'foo'] [:not, [:tag, 'foo']] [:tag, 'foo']
1981
- def filter_via_task_selector: (Asana::Resources::Task task, (Symbol | ::Array[(Symbol | Integer | ::Array[untyped])]) task_selector) -> bool
1946
+ def filter_via_task_selector: (Asana::Resources::Task task, (Symbol | ::Array[(Symbol | String | Integer | ::Array[untyped])]) task_selector) -> bool
1982
1947
 
1983
- # @sg-ignore
1984
1948
  def self.project_name: () -> String
1985
1949
 
1986
- # @sg-ignore
1987
1950
  def self.workspace_name: () -> String
1988
1951
 
1989
- # @sg-ignore
1990
1952
  def self.task_selector: () -> [Symbol, ::Array[untyped]]
1991
1953
 
1992
1954
  def self.run: () -> void
1993
1955
 
1956
+ # _@param_ `parsed` — result of JSON.parse on a task selector
1957
+ def self.validate_task_selector: (Object parsed) -> [String, ::Array[untyped]]
1958
+
1994
1959
  attr_reader tasks: Checkoff::Tasks
1995
1960
 
1996
1961
  attr_reader timelines: Checkoff::Timelines
@@ -2035,7 +2000,7 @@ module Checkoff
2035
2000
  # _@param_ `project`
2036
2001
  #
2037
2002
  # _@param_ `project_selector` — Filter based on project details. Examples: [:tag, 'foo'] [:not, [:tag, 'foo']] [:tag, 'foo']
2038
- def filter_via_project_selector: (Asana::Resources::Project project, [Symbol, ::Array[untyped]] project_selector) -> bool
2003
+ def filter_via_project_selector: (Asana::Resources::Project project, ::Array[(Symbol | String | ::Array[untyped])] project_selector) -> bool
2039
2004
 
2040
2005
  def self.run: () -> void
2041
2006
 
@@ -2112,7 +2077,7 @@ module Checkoff
2112
2077
  # _@param_ `task_data`
2113
2078
  #
2114
2079
  # _@param_ `client`
2115
- def h_to_task: (::Hash[untyped, untyped] task_data, client: Asana::Client) -> Asana::Resources::Task
2080
+ def h_to_task: (::Hash[String, Object] task_data, client: Asana::Client) -> Asana::Resources::Task
2116
2081
 
2117
2082
  # _@param_ `task_hash`
2118
2083
  def unwrap_custom_fields: (::Hash[untyped, untyped] task_hash) -> void
@@ -2130,14 +2095,17 @@ module Checkoff
2130
2095
  #
2131
2096
  # _@param_ `key`
2132
2097
  def unwrap_memberships: (
2133
- ::Hash[untyped, untyped] task_hash,
2098
+ ::Hash[String, Object] task_hash,
2134
2099
  ::Array[::Hash[untyped, untyped]] memberships,
2135
2100
  String resource,
2136
2101
  String key
2137
2102
  ) -> void
2138
2103
 
2139
2104
  # _@param_ `task_hash`
2140
- def unwrap_all_memberships: (::Hash[untyped, untyped] task_hash) -> void
2105
+ def unwrap_all_memberships: (::Hash[String, Object] task_hash) -> void
2106
+
2107
+ # _@param_ `task_hash`
2108
+ def assignee_hash: (::Hash[String, (String | ::Hash[untyped, untyped] | ::Array[untyped])] task_hash) -> ::Hash[String, Object]
2141
2109
  end
2142
2110
 
2143
2111
  # Utility methods for working with task dates and times
@@ -2158,16 +2126,10 @@ module Checkoff
2158
2126
  ) -> void
2159
2127
 
2160
2128
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
2161
- # @sg-ignore return type could not be inferred — #to_time called via &. on a Date|Time
2162
- # union receiver
2163
- #
2164
2129
  # _@param_ `task`
2165
2130
  def start_time: (Asana::Resources::Task task) -> Time?
2166
2131
 
2167
2132
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
2168
- # @sg-ignore return type could not be inferred — #to_time called via &. on a Date|Time
2169
- # union receiver
2170
- #
2171
2133
  # _@param_ `task`
2172
2134
  def due_time: (Asana::Resources::Task task) -> Time?
2173
2135
 
@@ -2200,9 +2162,6 @@ module Checkoff
2200
2162
  class ThreadLocal
2201
2163
  # sord warn - T wasn't able to be resolved to a constant in this project
2202
2164
  # sord warn - T wasn't able to be resolved to a constant in this project
2203
- # @sg-ignore return type could not be inferred — Solargraph's generic/yield-return
2204
- # inference gap for #with_thread_local_variable
2205
- #
2206
2165
  # _@param_ `name`
2207
2166
  #
2208
2167
  # _@param_ `value`
@@ -2219,8 +2178,6 @@ module Checkoff
2219
2178
  # _@param_ `yaml_filename`
2220
2179
  def initialize: (::Hash[Symbol, untyped] config, Symbol sym, String yaml_filename) -> void
2221
2180
 
2222
- # @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
2223
- #
2224
2181
  # _@param_ `key`
2225
2182
  def []: (Symbol key) -> Object
2226
2183
 
@@ -2252,8 +2209,8 @@ module Checkoff
2252
2209
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
2253
2210
  # _@param_ `project_obj`
2254
2211
  #
2255
- # _@param_ `project` — - :not_specified, :my_tasks
2256
- def project_to_h: (Asana::Resources::Project project_obj, ?project: (String | Symbol)) -> ::Hash[untyped, untyped]
2212
+ # _@param_ `project` — - a String is a project name
2213
+ def project_to_h: (Asana::Resources::Project project_obj, ?project: (String | Symbol)?) -> ::Hash[String, Object]
2257
2214
 
2258
2215
  # _@param_ `project_hash`
2259
2216
  def unwrap_custom_fields: (::Hash[untyped, untyped] project_hash) -> void
@@ -2343,6 +2300,9 @@ module Checkoff
2343
2300
  # _@param_ `param_name`
2344
2301
  def fetch_solo_param: (String param_name) -> String
2345
2302
 
2303
+ # Implemented by every subclass.
2304
+ def convert: () -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2305
+
2346
2306
  attr_reader gid: String
2347
2307
 
2348
2308
  attr_reader remaining_params: ::Hash[String, ::Array[String]]
@@ -2417,7 +2377,6 @@ module Checkoff
2417
2377
  # _@param_ `date_url_params` — the simple params
2418
2378
  def initialize: (date_url_params: ::Hash[String, ::Array[String]]) -> void
2419
2379
 
2420
- # @sg-ignore
2421
2380
  def convert: () -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2422
2381
 
2423
2382
  # _@param_ `prefix`
@@ -2443,8 +2402,6 @@ module Checkoff
2443
2402
  # _@return_ — See https://developers.asana.com/docs/search-tasks-in-a-workspace
2444
2403
  def handle_within_next: (String prefix) -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2445
2404
 
2446
- # @sg-ignore
2447
- #
2448
2405
  # _@param_ `param_key`
2449
2406
  def get_single_param: (String param_key) -> String
2450
2407
 
@@ -2454,6 +2411,9 @@ module Checkoff
2454
2411
  # _@param_ `prefix`
2455
2412
  def validate_unit_is_day!: (String prefix) -> void
2456
2413
 
2414
+ # _@param_ `out`
2415
+ def ensure_matched!: ([::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]? _out) -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2416
+
2457
2417
  attr_reader date_url_params: ::Hash[String, ::Array[String]]
2458
2418
  end
2459
2419
 
@@ -2484,7 +2444,6 @@ module Checkoff
2484
2444
  # _@param_ `verb`
2485
2445
  def convert_from_projects_and_sections: (String verb) -> ::Array[String]
2486
2446
 
2487
- # @sg-ignore abstract method always raises; declared type documents the override contract, not this body
2488
2447
  def convert: () -> ::Array[String]
2489
2448
 
2490
2449
  attr_reader key: String
@@ -2570,14 +2529,13 @@ module Checkoff
2570
2529
  def convert: () -> ::Hash[String, String]
2571
2530
 
2572
2531
  # https://developers.asana.com/docs/search-tasks-in-a-workspace
2573
- # @sg-ignore
2574
2532
  #
2575
2533
  # _@param_ `key` — the name of the search url param
2576
2534
  #
2577
2535
  # _@param_ `values` — the values of the search url param
2578
2536
  #
2579
- # _@return_ — the converted params
2580
- def convert_arg: (String key, ::Array[String] values) -> ::Hash[String, String]
2537
+ # _@return_ — the converted params, as an alternating key/value flat array
2538
+ def convert_arg: (String key, ::Array[String] values) -> ::Array[String]
2581
2539
 
2582
2540
  attr_reader simple_url_params: ::Hash[String, ::Array[String]]
2583
2541
  end
@@ -2594,15 +2552,11 @@ module Checkoff
2594
2552
 
2595
2553
  def by_custom_field: () -> ::Hash[String, ::Hash[untyped, untyped]]
2596
2554
 
2597
- # @sg-ignore
2598
- #
2599
2555
  # _@param_ `gid`
2600
2556
  #
2601
2557
  # _@param_ `single_custom_field_params`
2602
2558
  def convert_single_custom_field_params: (String gid, ::Hash[String, ::Array[String]] single_custom_field_params) -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2603
2559
 
2604
- # @sg-ignore
2605
- #
2606
2560
  # _@param_ `key`
2607
2561
  def gid_from_custom_field_key: (String key) -> String
2608
2562
 
@@ -2645,7 +2599,7 @@ module Checkoff
2645
2599
  # _@param_ `asana_event`
2646
2600
  #
2647
2601
  # _@param_ `failures`
2648
- def filter_matches_asana_event?: (::Hash[untyped, untyped] filter, ::Hash[untyped, untyped] asana_event, ::Array[String] failures) -> bool
2602
+ def filter_matches_asana_event?: (::Hash[String, (String | ::Array[String])] filter, ::Hash[untyped, untyped] asana_event, ::Array[String] failures) -> bool
2649
2603
 
2650
2604
  # _@param_ `key`
2651
2605
  #
@@ -2679,7 +2633,6 @@ module Checkoff
2679
2633
  # _@param_ `message`
2680
2634
  def finer: (?Object? message) -> void
2681
2635
 
2682
- # @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
2683
2636
  def log_level: () -> Symbol
2684
2637
  end
2685
2638
 
@@ -2771,7 +2724,6 @@ module Checkoff
2771
2724
  # _@param_ `message`
2772
2725
  def finer: (?Object? message) -> void
2773
2726
 
2774
- # @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
2775
2727
  def log_level: () -> Symbol
2776
2728
 
2777
2729
  attr_reader projects: Checkoff::Projects
@@ -2792,22 +2744,21 @@ module Checkoff
2792
2744
  # Base class to evaluate Asana resource selectors against an Asana resource
2793
2745
  class SelectorEvaluator
2794
2746
  # _@param_ `selector`
2795
- def evaluate: ((Symbol | ::Array[(Symbol | Integer | ::Array[untyped])]) selector) -> (bool | Object | ::Array[untyped])?
2747
+ def evaluate: ((Symbol | ::Array[(Symbol | String | Integer | ::Array[untyped])]) selector) -> (bool | Object | ::Array[untyped])?
2796
2748
 
2797
2749
  def initializer_kwargs: () -> ::Hash[untyped, untyped]
2798
2750
 
2799
- # @sg-ignore
2800
2751
  def function_evaluators: () -> ::Array[singleton(Checkoff::SelectorClasses::FunctionEvaluator)]
2801
2752
 
2802
2753
  # _@param_ `selector`
2803
2754
  #
2804
2755
  # _@param_ `evaluator`
2805
- def evaluate_args: (::Array[untyped] selector, Checkoff::SelectorClasses::FunctionEvaluator evaluator) -> ::Array[untyped]
2756
+ def evaluate_args: ((Symbol | ::Array[untyped]) selector, Checkoff::SelectorClasses::FunctionEvaluator evaluator) -> ::Array[untyped]
2806
2757
 
2807
2758
  # _@param_ `selector`
2808
2759
  #
2809
2760
  # _@param_ `evaluator`
2810
- def try_this_evaluator: (::Array[untyped] selector, Checkoff::SelectorClasses::FunctionEvaluator evaluator) -> (bool | Object)?
2761
+ def try_this_evaluator: ((Symbol | ::Array[untyped]) selector, Checkoff::SelectorClasses::FunctionEvaluator evaluator) -> (bool | Object)?
2811
2762
 
2812
2763
  attr_reader item: Asana::Resources::Resource
2813
2764
  end
@@ -2834,8 +2785,6 @@ module Checkoff
2834
2785
  def evaluate_arg?: (Integer _index) -> bool
2835
2786
 
2836
2787
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
2837
- # @sg-ignore
2838
- #
2839
2788
  # _@param_ `task`
2840
2789
  #
2841
2790
  # _@param_ `section_name_prefix`
@@ -2850,8 +2799,6 @@ module Checkoff
2850
2799
  def evaluate_arg?: (Integer _index) -> bool
2851
2800
 
2852
2801
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
2853
- # @sg-ignore
2854
- #
2855
2802
  # _@param_ `task`
2856
2803
  #
2857
2804
  # _@param_ `section_name`
@@ -2866,8 +2813,6 @@ module Checkoff
2866
2813
  def evaluate_arg?: (Integer _index) -> bool
2867
2814
 
2868
2815
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
2869
- # @sg-ignore
2870
- #
2871
2816
  # _@param_ `task`
2872
2817
  #
2873
2818
  # _@param_ `project_name`
@@ -2896,8 +2841,6 @@ module Checkoff
2896
2841
  def evaluate_arg?: (Integer _index) -> bool
2897
2842
 
2898
2843
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
2899
- # @sg-ignore
2900
- #
2901
2844
  # _@param_ `task`
2902
2845
  #
2903
2846
  # _@param_ `tag_name`
@@ -2945,9 +2888,6 @@ module Checkoff
2945
2888
  def matches?: () -> bool
2946
2889
 
2947
2890
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
2948
- # @sg-ignore Checkoff::SelectorClasses::Task::UnassignedPFunctionEvaluator#evaluate
2949
- # return type could not be inferred
2950
- #
2951
2891
  # _@param_ `task`
2952
2892
  def evaluate: (Asana::Resources::Task task) -> bool
2953
2893
  end
@@ -2959,9 +2899,6 @@ module Checkoff
2959
2899
  def matches?: () -> bool
2960
2900
 
2961
2901
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
2962
- # @sg-ignore Checkoff::SelectorClasses::Task::DueDateSetPFunctionEvaluator#evaluate
2963
- # return type could not be inferred
2964
- #
2965
2902
  # _@param_ `task`
2966
2903
  def evaluate: (Asana::Resources::Task task) -> bool
2967
2904
  end
@@ -3048,9 +2985,6 @@ module Checkoff
3048
2985
  def evaluate_arg?: (Integer _index) -> bool
3049
2986
 
3050
2987
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
3051
- # @sg-ignore Checkoff::SelectorClasses::Task::MilestonePFunctionEvaluator#evaluate
3052
- # return type could not be inferred
3053
- #
3054
2988
  # _@param_ `task`
3055
2989
  def evaluate: (Asana::Resources::Task task) -> bool
3056
2990
  end
@@ -3082,7 +3016,7 @@ module Checkoff
3082
3016
  #
3083
3017
  # _@param_ `_kwargs`
3084
3018
  def initialize: (
3085
- selector: ([Symbol, ::Array[untyped]] | String),
3019
+ selector: (::Array[(Symbol | ::Array[untyped])] | Symbol),
3086
3020
  tasks: Checkoff::Tasks,
3087
3021
  timelines: Checkoff::Timelines,
3088
3022
  custom_fields: Checkoff::CustomFields,
@@ -3095,7 +3029,7 @@ module Checkoff
3095
3029
 
3096
3030
  attr_reader custom_fields: Checkoff::CustomFields
3097
3031
 
3098
- attr_reader selector: [Symbol, ::Array[untyped]]
3032
+ attr_reader selector: (::Array[(Symbol | ::Array[untyped])] | Symbol)
3099
3033
  end
3100
3034
  end
3101
3035
 
@@ -3198,10 +3132,6 @@ module Checkoff
3198
3132
 
3199
3133
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
3200
3134
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
3201
- # @sg-ignore
3202
- # @sg-ignore
3203
- # @sg-ignore
3204
- #
3205
3135
  # _@param_ `resource`
3206
3136
  #
3207
3137
  # _@param_ `custom_field_gid`
@@ -3218,9 +3148,6 @@ module Checkoff
3218
3148
 
3219
3149
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
3220
3150
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
3221
- # @sg-ignore
3222
- # @sg-ignore
3223
- #
3224
3151
  # _@param_ `resource`
3225
3152
  #
3226
3153
  # _@param_ `custom_field_gid`
@@ -3239,9 +3166,6 @@ module Checkoff
3239
3166
 
3240
3167
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
3241
3168
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
3242
- # @sg-ignore
3243
- # @sg-ignore
3244
- #
3245
3169
  # _@param_ `resource`
3246
3170
  #
3247
3171
  # _@param_ `custom_field_name`
@@ -3280,9 +3204,6 @@ module Checkoff
3280
3204
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
3281
3205
  # sord warn - boolish is probably not a type, but using anyway
3282
3206
  # sord warn - boolish wasn't able to be resolved to a constant in this project
3283
- # @sg-ignore Checkoff::SelectorClasses::Common::NameStartsWithPFunctionEvaluator#evaluate
3284
- # return type could not be inferred
3285
- #
3286
3207
  # _@param_ `resource`
3287
3208
  #
3288
3209
  # _@param_ `prefix`
@@ -3295,8 +3216,6 @@ module Checkoff
3295
3216
 
3296
3217
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
3297
3218
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
3298
- # @sg-ignore
3299
- #
3300
3219
  # _@param_ `_resource`
3301
3220
  def evaluate: ((Asana::Resources::Task | Asana::Resources::Project) _resource) -> String
3302
3221
  end
@@ -3308,9 +3227,9 @@ module Checkoff
3308
3227
  # _@param_ `custom_fields`
3309
3228
  #
3310
3229
  # _@param_ `_kwargs`
3311
- def initialize: (selector: ([Symbol, ::Array[untyped]] | String), custom_fields: Checkoff::CustomFields, **::Hash[untyped, untyped] _kwargs) -> void
3230
+ def initialize: (selector: (::Array[(Symbol | ::Array[untyped])] | Symbol), custom_fields: Checkoff::CustomFields, **::Hash[untyped, untyped] _kwargs) -> void
3312
3231
 
3313
- attr_reader selector: ([Symbol, ::Array[untyped]] | String)
3232
+ attr_reader selector: (::Array[(Symbol | ::Array[untyped])] | Symbol)
3314
3233
 
3315
3234
  attr_reader custom_fields: Checkoff::CustomFields
3316
3235
  end
@@ -3325,8 +3244,6 @@ module Checkoff
3325
3244
  def matches?: () -> bool
3326
3245
 
3327
3246
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
3328
- # @sg-ignore
3329
- #
3330
3247
  # _@param_ `resource`
3331
3248
  def evaluate: (Asana::Resources::Project resource) -> String?
3332
3249
  end
@@ -3338,8 +3255,6 @@ module Checkoff
3338
3255
  def matches?: () -> bool
3339
3256
 
3340
3257
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
3341
- # @sg-ignore
3342
- #
3343
3258
  # _@param_ `project`
3344
3259
  #
3345
3260
  # _@param_ `period` — - :now_or_before or :this_week
@@ -3353,10 +3268,6 @@ module Checkoff
3353
3268
  def matches?: () -> bool
3354
3269
 
3355
3270
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
3356
- # @sg-ignore
3357
- #
3358
- # @sg-ignore
3359
- #
3360
3271
  # _@param_ `project`
3361
3272
  #
3362
3273
  # _@param_ `portfolio_name`
@@ -3384,14 +3295,14 @@ module Checkoff
3384
3295
  #
3385
3296
  # _@param_ `_kwargs`
3386
3297
  def initialize: (
3387
- selector: ([Symbol, ::Array[untyped]] | String),
3298
+ selector: (::Array[(Symbol | ::Array[untyped])] | Symbol),
3388
3299
  projects: Checkoff::Projects,
3389
3300
  portfolios: Checkoff::Portfolios,
3390
3301
  workspaces: Checkoff::Workspaces,
3391
3302
  **::Hash[untyped, untyped] _kwargs
3392
3303
  ) -> void
3393
3304
 
3394
- attr_reader selector: [Symbol, ::Array[untyped]]
3305
+ attr_reader selector: (::Array[(Symbol | ::Array[untyped])] | Symbol)
3395
3306
 
3396
3307
  attr_reader projects: Checkoff::Projects
3397
3308
 
@@ -3410,8 +3321,6 @@ module Checkoff
3410
3321
  def matches?: () -> bool
3411
3322
 
3412
3323
  # sord warn - Asana::Resources::Section wasn't able to be resolved to a constant in this project
3413
- # @sg-ignore
3414
- #
3415
3324
  # _@param_ `section`
3416
3325
  def evaluate: (Asana::Resources::Section section) -> bool
3417
3326
  end
@@ -3423,8 +3332,6 @@ module Checkoff
3423
3332
  def matches?: () -> bool
3424
3333
 
3425
3334
  # sord warn - Asana::Resources::Section wasn't able to be resolved to a constant in this project
3426
- # @sg-ignore
3427
- #
3428
3335
  # _@param_ `section`
3429
3336
  def evaluate: (Asana::Resources::Section section) -> bool
3430
3337
  end
@@ -3440,13 +3347,13 @@ module Checkoff
3440
3347
  #
3441
3348
  # _@param_ `kwargs`
3442
3349
  def initialize: (
3443
- selector: ([Symbol, ::Array[untyped]] | String),
3350
+ selector: (::Array[(Symbol | ::Array[untyped])] | Symbol),
3444
3351
  sections: Checkoff::Sections,
3445
3352
  client: Asana::Client,
3446
3353
  **::Hash[untyped, untyped] kwargs
3447
3354
  ) -> void
3448
3355
 
3449
- attr_reader selector: [Symbol, ::Array[untyped]]
3356
+ attr_reader selector: (::Array[(Symbol | ::Array[untyped])] | Symbol)
3450
3357
 
3451
3358
  # sord warn - Asana::Client wasn't able to be resolved to a constant in this project
3452
3359
  attr_reader client: Asana::Client
@@ -3462,12 +3369,9 @@ module Checkoff
3462
3369
  # _@param_ `_index`
3463
3370
  def evaluate_arg?: (Integer _index) -> bool
3464
3371
 
3465
- # @sg-ignore return type could not be inferred — abstract method body is only `raise`
3466
3372
  def matches?: () -> bool
3467
3373
 
3468
3374
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
3469
- # @sg-ignore return type could not be inferred — abstract method body is only `raise`
3470
- #
3471
3375
  # _@param_ `_task`
3472
3376
  #
3473
3377
  # _@param_ `_args`
@@ -3476,7 +3380,7 @@ module Checkoff
3476
3380
  # _@param_ `object`
3477
3381
  #
3478
3382
  # _@param_ `fn_name`
3479
- def fn?: (Object object, Symbol fn_name) -> bool
3383
+ def fn?: ((::Array[(Symbol | ::Array[untyped])] | Symbol) object, Symbol fn_name) -> bool
3480
3384
 
3481
3385
  # Concrete subclasses each declare their own initialize with their
3482
3386
  # specific keyword args (and set @selector themselves before calling
@@ -3508,7 +3412,6 @@ module Checkoff
3508
3412
  # _@param_ `message`
3509
3413
  def finer: (?Object? message) -> void
3510
3414
 
3511
- # @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
3512
3415
  def log_level: () -> Symbol
3513
3416
  end
3514
3417
  end
@@ -3620,8 +3523,8 @@ module Checkoff
3620
3523
 
3621
3524
  def initializer_kwargs: () -> ::Hash[untyped, untyped]
3622
3525
 
3623
- # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
3624
- attr_reader item: Asana::Resources::Project
3526
+ # sord warn - Asana::Resources::Section wasn't able to be resolved to a constant in this project
3527
+ attr_reader item: Asana::Resources::Section
3625
3528
 
3626
3529
  attr_reader sections: Checkoff::Sections
3627
3530
 
@@ -3653,7 +3556,6 @@ module Logging
3653
3556
  # _@param_ `message`
3654
3557
  def finer: (?Object? message) -> void
3655
3558
 
3656
- # @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
3657
3559
  def log_level: () -> Symbol
3658
3560
  end
3659
3561
 
@@ -3673,10 +3575,10 @@ module Asana
3673
3575
  # Public: The base resource class which provides some sugar over common
3674
3576
  # resource functionality.
3675
3577
  class Resource
3676
- def marshal_dump: () -> ::Hash[untyped, untyped]
3578
+ def marshal_dump: () -> ::Hash[String, Object]
3677
3579
 
3678
3580
  # _@param_ `data`
3679
- def marshal_load: (::Hash[untyped, untyped] data) -> void
3581
+ def marshal_load: (::Hash[String, Object] data) -> void
3680
3582
  end
3681
3583
  end
3682
3584
  end