checkoff 0.228.0 → 0.229.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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/checkoff.gemspec +6 -6
  3. data/lib/checkoff/cli.rb +71 -1
  4. data/lib/checkoff/clients.rb +1 -1
  5. data/lib/checkoff/custom_fields.rb +3 -3
  6. data/lib/checkoff/events.rb +3 -3
  7. data/lib/checkoff/internal/asana_event_enrichment.rb +13 -14
  8. data/lib/checkoff/internal/config_loader.rb +4 -2
  9. data/lib/checkoff/internal/logging.rb +3 -0
  10. data/lib/checkoff/internal/project_selector_evaluator.rb +5 -2
  11. data/lib/checkoff/internal/project_timing.rb +0 -2
  12. data/lib/checkoff/internal/search_url/custom_field_param_converter.rb +12 -12
  13. data/lib/checkoff/internal/search_url/custom_field_variant.rb +19 -18
  14. data/lib/checkoff/internal/search_url/date_param_converter.rb +9 -9
  15. data/lib/checkoff/internal/search_url/parser.rb +20 -30
  16. data/lib/checkoff/internal/search_url/results_merger.rb +4 -6
  17. data/lib/checkoff/internal/search_url/simple_param_converter.rb +19 -11
  18. data/lib/checkoff/internal/section_selector_evaluator.rb +7 -3
  19. data/lib/checkoff/internal/selector_classes/common/function_evaluator.rb +3 -2
  20. data/lib/checkoff/internal/selector_classes/common.rb +5 -6
  21. data/lib/checkoff/internal/selector_classes/function_evaluator.rb +2 -3
  22. data/lib/checkoff/internal/selector_classes/project/function_evaluator.rb +3 -2
  23. data/lib/checkoff/internal/selector_classes/section/function_evaluator.rb +2 -2
  24. data/lib/checkoff/internal/selector_classes/section.rb +2 -2
  25. data/lib/checkoff/internal/selector_classes/task/function_evaluator.rb +3 -2
  26. data/lib/checkoff/internal/selector_classes/task.rb +1 -2
  27. data/lib/checkoff/internal/selector_evaluator.rb +2 -2
  28. data/lib/checkoff/internal/task_hashes.rb +3 -3
  29. data/lib/checkoff/internal/task_selector_evaluator.rb +3 -0
  30. data/lib/checkoff/internal/task_timing.rb +0 -2
  31. data/lib/checkoff/internal/thread_local.rb +5 -4
  32. data/lib/checkoff/my_tasks.rb +4 -4
  33. data/lib/checkoff/portfolios.rb +1 -1
  34. data/lib/checkoff/project_selectors.rb +4 -4
  35. data/lib/checkoff/projects.rb +6 -6
  36. data/lib/checkoff/resources.rb +5 -3
  37. data/lib/checkoff/section_selectors.rb +4 -4
  38. data/lib/checkoff/sections.rb +18 -15
  39. data/lib/checkoff/subtasks.rb +2 -2
  40. data/lib/checkoff/tags.rb +7 -3
  41. data/lib/checkoff/task_searches.rb +9 -9
  42. data/lib/checkoff/task_selectors.rb +10 -6
  43. data/lib/checkoff/tasks.rb +5 -5
  44. data/lib/checkoff/timelines.rb +0 -1
  45. data/lib/checkoff/timing.rb +5 -4
  46. data/lib/checkoff/version.rb +1 -1
  47. data/lib/checkoff/workspaces.rb +1 -1
  48. data/rbi/checkoff.rbi +342 -305
  49. data/sig/checkoff.rbs +327 -279
  50. metadata +6 -6
data/sig/checkoff.rbs CHANGED
@@ -59,6 +59,8 @@ module Asana
59
59
  include Asana::Resources
60
60
 
61
61
  class Client
62
+ def tags: () -> Asana::ProxiedResourceClasses::Tag
63
+
62
64
  def tasks: () -> Asana::ProxiedResourceClasses::Task
63
65
 
64
66
  def workspaces: () -> Asana::ProxiedResourceClasses::Workspace
@@ -75,16 +77,14 @@ module Asana
75
77
 
76
78
  def custom_fields: () -> Asana::ProxiedResourceClasses::CustomField
77
79
 
78
- def tags: () -> Asana::ProxiedResourceClasses::Tag
79
-
80
80
  # sord warn - Asana::HttpClient::Response wasn't able to be resolved to a constant in this project
81
- # Public: Performs a GET request against an arbitrary Asana URL. Allows for
81
+ # Performs a GET request against an arbitrary Asana URL. Allows for
82
82
  # the user to interact with the API in ways that haven't been
83
83
  # reflected/foreseen in this library.
84
84
  #
85
- # _@param_ `url` — the URL to GET
86
- #
87
85
  # _@param_ `args` — the request I/O options
86
+ #
87
+ # _@param_ `url`
88
88
  def get: (String url, **Object args) -> Asana::HttpClient::Response
89
89
  end
90
90
 
@@ -123,6 +123,8 @@ module Asana
123
123
  workspace: String,
124
124
  name: String
125
125
  ) -> Asana::Resources::Task
126
+
127
+ def assignee_section: () -> (::Hash[untyped, untyped] | Asana::Resources::Section)
126
128
  end
127
129
 
128
130
  class Section
@@ -177,6 +179,21 @@ module Asana
177
179
  def get_custom_fields_for_workspace: (?workspace_gid: String, ?options: ::Hash[untyped, untyped]) -> ::Enumerable[Asana::Resources::CustomField]
178
180
  end
179
181
 
182
+ class Tag
183
+ # sord warn - Asana::Resources::Tag wasn't able to be resolved to a constant in this project
184
+ # Get tags in a workspace
185
+ #
186
+ # > offset - [str] Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. 'Note: You can only pass in an offset that was returned to you via a previously paginated request.'
187
+ # > limit - [int] Results per page. The number of objects to return per page. The value must be between 1 and 100.
188
+ # > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
189
+ # > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
190
+ #
191
+ # _@param_ `workspace_gid` — (required) Globally unique identifier for the workspace or organization.
192
+ #
193
+ # _@param_ `options` — the request I/O options
194
+ def get_tags_for_workspace: (workspace_gid: String, ?options: ::Hash[untyped, untyped]) -> ::Enumerable[Asana::Resources::Tag]
195
+ end
196
+
180
197
  class Task
181
198
  # Get subtasks from a task
182
199
  #
@@ -377,21 +394,36 @@ module Asana
377
394
  # _@param_ `options` — the request I/O options.
378
395
  def me: (?options: ::Hash[untyped, untyped]) -> Asana::Resources::User
379
396
  end
397
+ end
398
+ end
380
399
 
381
- class Tag
382
- # sord warn - Asana::Resources::Tag wasn't able to be resolved to a constant in this project
383
- # Get tags in a workspace
384
- #
385
- # > offset - [str] Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. 'Note: You can only pass in an offset that was returned to you via a previously paginated request.'
386
- # > limit - [int] Results per page. The number of objects to return per page. The value must be between 1 and 100.
387
- # > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
388
- # > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
389
- #
390
- # _@param_ `workspace_gid` — (required) Globally unique identifier for the workspace or organization.
391
- #
392
- # _@param_ `options` — the request I/O options
393
- def get_tags_for_workspace: (workspace_gid: String, ?options: ::Hash[untyped, untyped]) -> ::Enumerable[Asana::Resources::Tag]
394
- end
400
+ module T
401
+ # sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
402
+ # sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
403
+ # _@param_ `type`
404
+ def self.nilable: ((T::Types::Base | singleton(Object)) _type) -> T::Types::Base
405
+
406
+ # sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
407
+ # _@param_ `obj`
408
+ #
409
+ # _@param_ `type`
410
+ def self.let: (BasicObject obj, (T::Types::Base | singleton(Object)) _type) -> BasicObject
411
+
412
+ # sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
413
+ def self.untyped: () -> T::Types::Base
414
+
415
+ # sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
416
+ # sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
417
+ # _@param_ `type`
418
+ def nilable: ((T::Types::Base | singleton(Object)) _type) -> T::Types::Base
419
+
420
+ # _@param_ `o`
421
+ #
422
+ # _@param_ `type`
423
+ def let: (T o, singleton(T) _type) -> T
424
+
425
+ class Struct
426
+ extend T::Props::ClassMethods
395
427
  end
396
428
  end
397
429
 
@@ -401,34 +433,76 @@ module Checkoff
401
433
 
402
434
  # Move tasks from one place to another
403
435
  class MvSubcommand
404
- def validate_and_assign_from_location: (untyped from_workspace_arg, untyped from_project_arg, untyped from_section_arg) -> untyped
436
+ # _@param_ `from_workspace_arg`
437
+ #
438
+ # _@param_ `from_project_arg`
439
+ #
440
+ # _@param_ `from_section_arg`
441
+ def validate_and_assign_from_location: ((Symbol | String) from_workspace_arg, (Symbol | String) from_project_arg, String? from_section_arg) -> void
405
442
 
406
- def create_to_project_name: (untyped to_project_arg) -> untyped
443
+ # _@param_ `to_project_arg`
444
+ def create_to_project_name: ((Symbol | String) to_project_arg) -> (String | Symbol)
407
445
 
408
- def create_to_section_name: (untyped to_section_arg) -> untyped
446
+ # _@param_ `to_section_arg` :source_section
447
+ def create_to_section_name: ((Symbol | String)? to_section_arg) -> void
409
448
 
410
- def validate_and_assign_to_location: (untyped to_workspace_arg, untyped to_project_arg, untyped to_section_arg) -> untyped
449
+ # _@param_ `to_workspace_arg`
450
+ #
451
+ # _@param_ `to_project_arg`
452
+ #
453
+ # _@param_ `to_section_arg` — :source_section
454
+ def validate_and_assign_to_location: ((Symbol | String) to_workspace_arg, (Symbol | String) to_project_arg, (Symbol | String)? to_section_arg) -> void
411
455
 
456
+ # _@param_ `from_workspace_arg`
457
+ #
458
+ # _@param_ `from_project_arg`
459
+ #
460
+ # _@param_ `from_section_arg`
461
+ #
462
+ # _@param_ `to_workspace_arg`
463
+ #
464
+ # _@param_ `to_project_arg`
465
+ #
466
+ # _@param_ `to_section_arg` — :source_section
467
+ #
468
+ # _@param_ `config`
469
+ #
470
+ # _@param_ `projects`
471
+ #
472
+ # _@param_ `sections`
473
+ #
474
+ # _@param_ `logger`
412
475
  def initialize: (
413
- from_workspace_arg: untyped,
414
- from_project_arg: untyped,
415
- from_section_arg: untyped,
416
- to_workspace_arg: untyped,
417
- to_project_arg: untyped,
418
- to_section_arg: untyped,
419
- ?config: untyped,
420
- ?projects: untyped,
421
- ?sections: untyped,
422
- ?logger: untyped
476
+ from_workspace_arg: (Symbol | String),
477
+ from_project_arg: (Symbol | String),
478
+ from_section_arg: String?,
479
+ to_workspace_arg: (Symbol | String),
480
+ to_project_arg: (Symbol | String),
481
+ to_section_arg: (Symbol | String)?,
482
+ ?config: (Checkoff::Internal::EnvFallbackConfigLoader | ::Hash[untyped, untyped]),
483
+ ?projects: Checkoff::Projects,
484
+ ?sections: Checkoff::Sections,
485
+ ?logger: IO
423
486
  ) -> void
424
487
 
425
- def move_tasks: (untyped tasks, untyped to_project, untyped to_section) -> untyped
488
+ # _@param_ `tasks`
489
+ #
490
+ # _@param_ `to_project`
491
+ #
492
+ # _@param_ `to_section`
493
+ def move_tasks: (::Enumerable[Asana::Resources::Task] tasks, Asana::Resources::Project to_project, Asana::Resources::Section to_section) -> void
426
494
 
427
- def fetch_tasks: (untyped from_workspace_name, untyped from_project_name, untyped from_section_name) -> untyped
495
+ # _@param_ `from_workspace_name`
496
+ #
497
+ # _@param_ `from_project_name`
498
+ #
499
+ # _@param_ `from_section_name`
500
+ def fetch_tasks: (String from_workspace_name, (String | Symbol) from_project_name, (String | Symbol) from_section_name) -> ::Enumerable[Asana::Resources::Task]
428
501
 
429
- def run: () -> untyped
502
+ def run: () -> void
430
503
 
431
- def project_arg_to_name: (untyped project_arg) -> untyped
504
+ # _@param_ `project_arg`
505
+ def project_arg_to_name: (String project_arg) -> (Symbol | String)
432
506
 
433
507
  # Returns the value of attribute from_workspace_name.
434
508
  attr_reader from_workspace_name: untyped
@@ -457,36 +531,73 @@ module Checkoff
457
531
 
458
532
  # CLI subcommand that shows tasks in JSON form
459
533
  class ViewSubcommand
534
+ # _@param_ `workspace_name`
535
+ #
536
+ # _@param_ `project_name`
537
+ #
538
+ # _@param_ `section_name`
539
+ #
540
+ # _@param_ `task_name`
541
+ #
542
+ # _@param_ `config`
543
+ #
544
+ # _@param_ `projects`
545
+ #
546
+ # _@param_ `sections`
547
+ #
548
+ # _@param_ `tasks`
549
+ #
550
+ # _@param_ `stderr`
460
551
  def initialize: (
461
- untyped workspace_name,
462
- untyped project_name,
463
- untyped section_name,
464
- untyped task_name,
465
- ?config: untyped,
466
- ?projects: untyped,
467
- ?sections: untyped,
468
- ?tasks: untyped,
469
- ?stderr: untyped
552
+ String workspace_name,
553
+ (String | Symbol) project_name,
554
+ (String | Symbol)? section_name,
555
+ (String | Symbol)? task_name,
556
+ ?config: (Checkoff::Internal::EnvFallbackConfigLoader | ::Hash[untyped, untyped]),
557
+ ?projects: Checkoff::Projects,
558
+ ?sections: Checkoff::Sections,
559
+ ?tasks: Checkoff::Tasks,
560
+ ?stderr: IO
470
561
  ) -> void
471
562
 
472
- def run: () -> untyped
563
+ def run: () -> void
473
564
 
474
- def validate_and_assign_project_name: (untyped project_name) -> untyped
565
+ # _@param_ `project_name`
566
+ def validate_and_assign_project_name: (String project_name) -> (String | Symbol)
475
567
 
476
- def run_on_project: (untyped workspace, untyped project) -> untyped
568
+ # _@param_ `workspace`
569
+ #
570
+ # _@param_ `project`
571
+ def run_on_project: ((String | Symbol) workspace, (String | Symbol) project) -> String
477
572
 
478
- def run_on_section: (untyped workspace, untyped project, untyped section) -> untyped
573
+ # _@param_ `workspace`
574
+ #
575
+ # _@param_ `project`
576
+ #
577
+ # _@param_ `section`
578
+ def run_on_section: ((String | Symbol) workspace, (String | Symbol) project, (String | Symbol)? section) -> String
479
579
 
580
+ # _@param_ `workspace`
581
+ #
582
+ # _@param_ `project`
583
+ #
584
+ # _@param_ `section`
585
+ #
586
+ # _@param_ `task_name`
480
587
  def run_on_task: (
481
- untyped workspace,
482
- untyped project,
483
- untyped section,
484
- untyped task_name
485
- ) -> untyped
486
-
487
- def task_to_hash: (untyped task) -> untyped
588
+ (String | Symbol) workspace,
589
+ (String | Symbol) project,
590
+ (String | Symbol)? section,
591
+ String task_name
592
+ ) -> String
593
+
594
+ # sord warn - undefined is probably not a type, but using anyway
595
+ # sord warn - undefined wasn't able to be resolved to a constant in this project
596
+ # _@param_ `task`
597
+ def task_to_hash: (Asana::Resources::Task task) -> ::Hash[Symbol, undefined]
488
598
 
489
- def tasks_to_hash: (untyped tasks) -> untyped
599
+ # _@param_ `tasks`
600
+ def tasks_to_hash: (::Enumerable[Asana::Resources::Task] tasks) -> ::Array[::Hash[untyped, untyped]]
490
601
 
491
602
  # Returns the value of attribute workspace_name.
492
603
  attr_reader workspace_name: untyped
@@ -512,15 +623,24 @@ module Checkoff
512
623
 
513
624
  # CLI subcommand that creates a task
514
625
  class QuickaddSubcommand
626
+ # _@param_ `workspace_name`
627
+ #
628
+ # _@param_ `task_name`
629
+ #
630
+ # _@param_ `config`
631
+ #
632
+ # _@param_ `workspaces`
633
+ #
634
+ # _@param_ `tasks`
515
635
  def initialize: (
516
- untyped workspace_name,
517
- untyped task_name,
518
- ?config: untyped,
519
- ?workspaces: untyped,
520
- ?tasks: untyped
636
+ String workspace_name,
637
+ String task_name,
638
+ ?config: (Internal::EnvFallbackConfigLoader | ::Hash[untyped, untyped]),
639
+ ?workspaces: Checkoff::Workspaces,
640
+ ?tasks: Checkoff::Tasks
521
641
  ) -> void
522
642
 
523
- def run: () -> untyped
643
+ def run: () -> void
524
644
 
525
645
  # Returns the value of attribute workspace_name.
526
646
  attr_reader workspace_name: untyped
@@ -554,7 +674,7 @@ module Checkoff
554
674
  #
555
675
  # _@param_ `workspaces`
556
676
  def initialize: (
557
- ?config: Checkoff::Internal::EnvFallbackConfigLoader,
677
+ ?config: (Checkoff::Internal::EnvFallbackConfigLoader | ::Hash[untyped, untyped]),
558
678
  ?clients: Checkoff::Clients,
559
679
  ?client: Asana::Client,
560
680
  ?projects: Checkoff::Projects,
@@ -575,6 +695,20 @@ module Checkoff
575
695
  ?extra_fields: ::Array[String]
576
696
  ) -> ::Enumerable[Asana::Resources::Task]
577
697
 
698
+ # _@param_ `workspace_name`
699
+ #
700
+ # _@param_ `tag_gid`
701
+ #
702
+ # _@param_ `only_uncompleted`
703
+ #
704
+ # _@param_ `extra_fields`
705
+ def tasks_by_tag_gid: (
706
+ String workspace_name,
707
+ String tag_gid,
708
+ ?only_uncompleted: bool,
709
+ ?extra_fields: ::Array[String]
710
+ ) -> ::Enumerable[Asana::Resources::Task]
711
+
578
712
  # sord warn - Asana::Resources::Tag wasn't able to be resolved to a constant in this project
579
713
  # _@param_ `workspace_name`
580
714
  #
@@ -602,20 +736,6 @@ module Checkoff
602
736
 
603
737
  def self.run: () -> void
604
738
 
605
- # _@param_ `workspace_name`
606
- #
607
- # _@param_ `tag_gid`
608
- #
609
- # _@param_ `only_uncompleted`
610
- #
611
- # _@param_ `extra_fields`
612
- def tasks_by_tag_gid: (
613
- String workspace_name,
614
- String tag_gid,
615
- ?only_uncompleted: bool,
616
- ?extra_fields: ::Array[String]
617
- ) -> ::Enumerable[Asana::Resources::Task]
618
-
619
739
  attr_reader workspaces: Checkoff::Workspaces
620
740
 
621
741
  attr_reader projects: Checkoff::Projects
@@ -652,7 +772,7 @@ module Checkoff
652
772
  #
653
773
  # _@param_ `asana_task`
654
774
  def initialize: (
655
- ?config: Checkoff::Internal::EnvFallbackConfigLoader,
775
+ ?config: (::Hash[untyped, untyped] | Checkoff::Internal::EnvFallbackConfigLoader),
656
776
  ?client: Asana::Client,
657
777
  ?workspaces: Checkoff::Workspaces,
658
778
  ?sections: Checkoff::Sections,
@@ -775,9 +895,9 @@ module Checkoff
775
895
  # <regular keys from API response>
776
896
  # +
777
897
  # unwrapped:
778
- # membership_by_section_gid: Hash<String, Hash (membership)>
779
- # membership_by_project_gid: Hash<String, Hash (membership)>
780
- # membership_by_project_name: Hash<String, Hash (membership)>
898
+ # membership_by_section_gid: Hash{String => Hash (membership)>
899
+ # membership_by_project_gid: Hash{String => Hash (membership)>
900
+ # membership_by_project_name: Hash{String => Hash (membership)>
781
901
  # task: String (name)
782
902
  #
783
903
  # _@param_ `task`
@@ -832,6 +952,7 @@ module Checkoff
832
952
  # @sg-ignore
833
953
  def default_assignee_gid: () -> String
834
954
 
955
+ # @sg-ignore
835
956
  def logger: () -> ::Logger
836
957
 
837
958
  # _@param_ `message`
@@ -888,7 +1009,7 @@ module Checkoff
888
1009
  #
889
1010
  # _@param_ `asana_event_enrichment`
890
1011
  def initialize: (
891
- ?config: Checkoff::Internal::EnvFallbackConfigLoader,
1012
+ ?config: (Checkoff::Internal::EnvFallbackConfigLoader | ::Hash[untyped, untyped]),
892
1013
  ?workspaces: Checkoff::Workspaces,
893
1014
  ?tasks: Checkoff::Tasks,
894
1015
  ?sections: Checkoff::Sections,
@@ -912,20 +1033,15 @@ module Checkoff
912
1033
  # _@param_ `asana_event`
913
1034
  def enrich_event: (::Hash[untyped, untyped] asana_event) -> ::Hash[untyped, untyped]
914
1035
 
915
- # sord warn - "[String" does not appear to be a type
916
- # sord warn - "Array<String>]" does not appear to be a type
917
- # sord warn - Invalid hash, must have exactly two types: "Hash<String,[String,Array<String>]>".
918
- # sord warn - "[String" does not appear to be a type
919
- # sord warn - "Array<String>]" does not appear to be a type
920
- # sord warn - Invalid hash, must have exactly two types: "Hash<String,[String,Array<String>]>".
921
1036
  # _@param_ `filter`
922
- def enrich_filter: (untyped filter) -> untyped
1037
+ def enrich_filter: (::Hash[String, (String | ::Array[String])] filter) -> ::Hash[String, (String | ::Array[String])]
923
1038
 
924
1039
  # _@param_ `webhook_subscription` — Hash of the request made to webhook POST endpoint - https://app.asana.com/api/1.0/webhooks https://developers.asana.com/reference/createwebhook
925
1040
  def enrich_webhook_subscription!: (::Hash[untyped, untyped] webhook_subscription) -> void
926
1041
 
927
1042
  def self.run: () -> void
928
1043
 
1044
+ # @sg-ignore
929
1045
  def logger: () -> ::Logger
930
1046
 
931
1047
  # _@param_ `message`
@@ -978,7 +1094,7 @@ module Checkoff
978
1094
  # _@param_ `date_or_time`
979
1095
  #
980
1096
  # _@param_ `period` — Valid values: :this_week, :now_or_before, :indefinite, [:less_than_n_days_ago, Integer]
981
- def in_period?: ((Date | Time)? date_or_time, (Symbol | ::Array[[Symbol, Integer]]) period) -> bool
1097
+ def in_period?: ((Date | Time)? date_or_time, (Symbol | [Symbol, Integer]) period) -> bool
982
1098
 
983
1099
  # _@param_ `date_or_time`
984
1100
  #
@@ -1036,6 +1152,7 @@ module Checkoff
1036
1152
 
1037
1153
  def self.run: () -> void
1038
1154
 
1155
+ # @sg-ignore
1039
1156
  def logger: () -> ::Logger
1040
1157
 
1041
1158
  # _@param_ `message`
@@ -1069,7 +1186,7 @@ module Checkoff
1069
1186
  # _@param_ `config`
1070
1187
  #
1071
1188
  # _@param_ `asana_client_class`
1072
- def initialize: (?config: Checkoff::Internal::EnvFallbackConfigLoader, ?asana_client_class: singleton(Asana::Client)) -> void
1189
+ def initialize: (?config: (::Hash[untyped, untyped] | Checkoff::Internal::EnvFallbackConfigLoader), ?asana_client_class: singleton(Asana::Client)) -> void
1073
1190
 
1074
1191
  def client: () -> Asana::Client
1075
1192
 
@@ -1087,7 +1204,7 @@ module Checkoff
1087
1204
  # _@param_ `client`
1088
1205
  #
1089
1206
  # _@param_ `projects`
1090
- def initialize: (?config: Checkoff::Internal::EnvFallbackConfigLoader, ?client: Asana::Client, ?projects: Checkoff::Projects) -> void
1207
+ def initialize: (?config: (Checkoff::Internal::EnvFallbackConfigLoader | ::Hash[untyped, untyped]), ?client: Asana::Client, ?projects: Checkoff::Projects) -> void
1091
1208
 
1092
1209
  # Given a 'My Tasks' project object, pull all tasks, then provide
1093
1210
  # a Hash of tasks with section name -> task list of the
@@ -1140,7 +1257,7 @@ module Checkoff
1140
1257
  #
1141
1258
  # _@param_ `timing`
1142
1259
  def initialize: (
1143
- ?config: Checkoff::Internal::EnvFallbackConfigLoader,
1260
+ ?config: (Checkoff::Internal::EnvFallbackConfigLoader | ::Hash[untyped, untyped]),
1144
1261
  ?client: Asana::Client,
1145
1262
  ?workspaces: Checkoff::Workspaces,
1146
1263
  ?project_hashes: Checkoff::Internal::ProjectHashes,
@@ -1151,12 +1268,14 @@ module Checkoff
1151
1268
  # _@param_ `extra_fields`
1152
1269
  def task_fields: (?extra_fields: ::Array[String]) -> ::Array[String]
1153
1270
 
1271
+ # sord warn - undefined is probably not a type, but using anyway
1272
+ # sord warn - undefined wasn't able to be resolved to a constant in this project
1154
1273
  # Default options used in Asana API to pull tasks
1155
1274
  #
1156
1275
  # _@param_ `extra_fields`
1157
1276
  #
1158
1277
  # _@param_ `only_uncompleted`
1159
- def task_options: (?extra_fields: ::Array[String], ?only_uncompleted: bool) -> ::Hash[Symbol, Object]
1278
+ def task_options: (?extra_fields: ::Array[String], ?only_uncompleted: bool) -> ::Hash[Symbol, undefined]
1160
1279
 
1161
1280
  # _@param_ `extra_project_fields`
1162
1281
  def project_fields: (?extra_project_fields: ::Array[String]) -> ::Array[String]
@@ -1230,14 +1349,14 @@ module Checkoff
1230
1349
  # _@param_ `project`
1231
1350
  #
1232
1351
  # _@param_ `period` — See Checkoff::Timing#in_period? - :now_or_before,:this_week
1233
- def project_ready?: (Asana::Resources::Project project, ?period: (Symbol | ::Array[untyped])) -> bool
1352
+ def project_ready?: (Asana::Resources::Project project, ?period: (Symbol | [Symbol, Integer])) -> bool
1234
1353
 
1235
1354
  # _@param_ `project`
1236
1355
  #
1237
1356
  # _@param_ `field_name`
1238
1357
  #
1239
1358
  # _@param_ `period` — See Checkoff::Timing#in_period? - :now_or_before,:this_week
1240
- def in_period?: (Asana::Resources::Project project, (Symbol | ::Array[untyped]) field_name, (Symbol | ::Array[untyped]) period) -> bool
1359
+ def in_period?: (Asana::Resources::Project project, (Symbol | ::Array[untyped]) field_name, (Symbol | [Symbol, Integer]) period) -> bool
1241
1360
 
1242
1361
  def as_cache_key: () -> ::Hash[untyped, untyped]
1243
1362
 
@@ -1246,6 +1365,7 @@ module Checkoff
1246
1365
  # _@param_ `workspace_name`
1247
1366
  def my_tasks: (String workspace_name) -> Asana::Resources::Project
1248
1367
 
1368
+ # @sg-ignore
1249
1369
  def logger: () -> ::Logger
1250
1370
 
1251
1371
  # _@param_ `message`
@@ -1296,7 +1416,7 @@ module Checkoff
1296
1416
  #
1297
1417
  # _@param_ `time`
1298
1418
  def initialize: (
1299
- ?config: Checkoff::Internal::EnvFallbackConfigLoader,
1419
+ ?config: (Checkoff::Internal::EnvFallbackConfigLoader | ::Hash[untyped, untyped]),
1300
1420
  ?client: Asana::Client,
1301
1421
  ?projects: Checkoff::Projects,
1302
1422
  ?workspaces: Checkoff::Workspaces,
@@ -1319,9 +1439,6 @@ module Checkoff
1319
1439
  # _@param_ `extra_fields`
1320
1440
  def sections_by_project_gid: (String project_gid, ?extra_fields: ::Array[String]) -> ::Enumerable[Asana::Resources::Section]
1321
1441
 
1322
- # sord warn - "[String" does not appear to be a type
1323
- # sord warn - "nil]" does not appear to be a type
1324
- # sord warn - Invalid hash, must have exactly two types: "Hash{[String, nil] => Enumerable<Asana::Resources::Task>}".
1325
1442
  # Given a workspace name and project name, then provide a Hash of
1326
1443
  # tasks with section name -> task list of the uncompleted tasks
1327
1444
  #
@@ -1337,7 +1454,7 @@ module Checkoff
1337
1454
  (String | Symbol) project_name,
1338
1455
  ?only_uncompleted: bool,
1339
1456
  ?extra_fields: ::Array[String]
1340
- ) -> untyped
1457
+ ) -> ::Hash[String?, ::Enumerable[Asana::Resources::Task]]
1341
1458
 
1342
1459
  # _@param_ `section_gid`
1343
1460
  #
@@ -1366,6 +1483,7 @@ module Checkoff
1366
1483
  ) -> ::Enumerable[Asana::Resources::Task]
1367
1484
 
1368
1485
  # Pulls just names of tasks from a given section.
1486
+ # @sg-ignore
1369
1487
  #
1370
1488
  # _@param_ `workspace_name`
1371
1489
  #
@@ -1423,9 +1541,6 @@ module Checkoff
1423
1541
  # _@param_ `response`
1424
1542
  def parse: (Asana::HttpClient::Response response) -> ::Array[(::Hash[untyped, untyped] | ::Hash[untyped, untyped])]
1425
1543
 
1426
- # sord warn - "[String" does not appear to be a type
1427
- # sord warn - "nil]" does not appear to be a type
1428
- # sord warn - Invalid hash, must have exactly two types: "Hash<[String,nil], Enumerable<Asana::Resources::Task>>".
1429
1544
  # Given a project object, pull all tasks, then provide a Hash of
1430
1545
  # tasks with section name -> task list of the uncompleted tasks
1431
1546
  #
@@ -1434,33 +1549,28 @@ module Checkoff
1434
1549
  # _@param_ `only_uncompleted`
1435
1550
  #
1436
1551
  # _@param_ `extra_fields`
1437
- def tasks_by_section_for_project: (Asana::Resources::Project project, ?only_uncompleted: bool, ?extra_fields: ::Array[String]) -> untyped
1552
+ def tasks_by_section_for_project: (Asana::Resources::Project project, ?only_uncompleted: bool, ?extra_fields: ::Array[String]) -> ::Hash[String?, ::Enumerable[Asana::Resources::Task]]
1438
1553
 
1439
- # sord warn - "[String" does not appear to be a type
1440
- # sord warn - "nil]" does not appear to be a type
1441
- # sord warn - Invalid hash, must have exactly two types: "Hash<[String,nil], Enumerable<Asana::Resources::Task>>".
1442
1554
  # Given a list of tasks, pull a Hash of tasks with section name -> task list
1443
1555
  #
1444
1556
  # _@param_ `tasks`
1445
1557
  #
1446
1558
  # _@param_ `project_gid`
1447
- def by_section: (::Enumerable[Asana::Resources::Task] tasks, String project_gid) -> untyped
1559
+ def by_section: (::Enumerable[Asana::Resources::Task] tasks, String project_gid) -> ::Hash[String?, ::Enumerable[Asana::Resources::Task]]
1448
1560
 
1449
- # sord warn - "[String" does not appear to be a type
1450
- # sord warn - "nil]" does not appear to be a type
1451
- # sord warn - Invalid hash, must have exactly two types: "Hash{[String, nil] => Enumerable<Asana::Resources::Task>}".
1452
1561
  # _@param_ `by_section`
1453
1562
  #
1454
1563
  # _@param_ `task`
1455
1564
  #
1456
1565
  # _@param_ `project_gid`
1457
- def file_task_by_section: (untyped by_section, Asana::Resources::Task task, String project_gid) -> void
1566
+ def file_task_by_section: (::Hash[String?, ::Array[Asana::Resources::Task]] by_section, Asana::Resources::Task task, String project_gid) -> void
1458
1567
 
1459
1568
  # _@param_ `workspace_name`
1460
1569
  #
1461
1570
  # _@param_ `project_name`
1462
1571
  def project_or_raise: (String workspace_name, (String | Symbol) project_name) -> Asana::Resources::Project
1463
1572
 
1573
+ # @sg-ignore
1464
1574
  def logger: () -> ::Logger
1465
1575
 
1466
1576
  # _@param_ `message`
@@ -1512,13 +1622,10 @@ module Checkoff
1512
1622
  # _@param_ `task`
1513
1623
  def all_subtasks_completed?: (Asana::Resources::Task task) -> bool
1514
1624
 
1515
- # sord warn - "[nil" does not appear to be a type
1516
- # sord warn - "String]" does not appear to be a type
1517
- # sord warn - Invalid hash, must have exactly two types: "Hash<[nil,String], Enumerable<Asana::Resources::Task>>".
1518
1625
  # pulls a Hash of subtasks broken out by section
1519
1626
  #
1520
1627
  # _@param_ `tasks`
1521
- def by_section: (::Enumerable[Asana::Resources::Task] tasks) -> untyped
1628
+ def by_section: (::Enumerable[Asana::Resources::Task] tasks) -> ::Hash[String?, ::Enumerable[Asana::Resources::Task]]
1522
1629
 
1523
1630
  # Returns all subtasks, including section headers
1524
1631
  #
@@ -1548,7 +1655,7 @@ module Checkoff
1548
1655
  # _@param_ `by_section`
1549
1656
  #
1550
1657
  # _@param_ `task`
1551
- def file_task_by_section: (String? current_section, ::Hash[untyped, untyped] by_section, Asana::Resources::Task task) -> ::Array[[String, ::Hash[untyped, untyped]]]
1658
+ def file_task_by_section: (String? current_section, ::Hash[untyped, untyped] by_section, Asana::Resources::Task task) -> [String, ::Hash[untyped, untyped]]
1552
1659
 
1553
1660
  attr_reader projects: Checkoff::Projects
1554
1661
 
@@ -1598,7 +1705,7 @@ module Checkoff
1598
1705
  # _@param_ `gid`
1599
1706
  #
1600
1707
  # _@param_ `resource_type`
1601
- def resource_by_gid: (String gid, ?resource_type: String?) -> ::Array[[untyped, untyped, untyped, untyped]]
1708
+ def resource_by_gid: (String gid, ?resource_type: String?) -> [untyped, untyped, untyped, untyped]
1602
1709
 
1603
1710
  # _@param_ `gid`
1604
1711
  def fetch_task_gid: (String gid) -> Asana::Resources::Task?
@@ -1658,8 +1765,6 @@ module Checkoff
1658
1765
  # _@param_ `task`
1659
1766
  #
1660
1767
  # _@param_ `limit_to_portfolio_gid`
1661
- #
1662
- # _@param_ `project_name`
1663
1768
  def task_dependent_on_previous_section_last_milestone?: (Asana::Resources::Task task, ?limit_to_portfolio_gid: String?) -> bool
1664
1769
 
1665
1770
  # _@param_ `task`
@@ -1689,8 +1794,8 @@ module Checkoff
1689
1794
 
1690
1795
  # Pull portfolios from Asana
1691
1796
  class Portfolios
1692
- extend CacheMethod::ClassMethods
1693
1797
  extend T::Sig
1798
+ extend CacheMethod::ClassMethods
1694
1799
  MINUTE: untyped
1695
1800
  HOUR: untyped
1696
1801
  DAY: untyped
@@ -1708,7 +1813,7 @@ module Checkoff
1708
1813
  #
1709
1814
  # _@param_ `projects`
1710
1815
  def initialize: (
1711
- ?config: Checkoff::Internal::EnvFallbackConfigLoader,
1816
+ ?config: (Checkoff::Internal::EnvFallbackConfigLoader | ::Hash[untyped, untyped]),
1712
1817
  ?clients: Checkoff::Clients,
1713
1818
  ?client: Asana::Client,
1714
1819
  ?projects: Checkoff::Projects,
@@ -1770,7 +1875,7 @@ module Checkoff
1770
1875
  # _@param_ `client`
1771
1876
  #
1772
1877
  # _@param_ `asana_workspace`
1773
- def initialize: (?config: Checkoff::Internal::EnvFallbackConfigLoader, ?client: Asana::Client, ?asana_workspace: singleton(Asana::Resources::Workspace)) -> void
1878
+ def initialize: (?config: (::Hash[untyped, untyped] | Checkoff::Internal::EnvFallbackConfigLoader), ?client: Asana::Client, ?asana_workspace: singleton(Asana::Resources::Workspace)) -> void
1774
1879
 
1775
1880
  # Pulls an Asana workspace object
1776
1881
  # @sg-ignore
@@ -1885,6 +1990,7 @@ module Checkoff
1885
1990
 
1886
1991
  def self.run: () -> void
1887
1992
 
1993
+ # @sg-ignore
1888
1994
  def logger: () -> ::Logger
1889
1995
 
1890
1996
  # _@param_ `message`
@@ -1928,7 +2034,7 @@ module Checkoff
1928
2034
  #
1929
2035
  # _@param_ `client`
1930
2036
  def initialize: (
1931
- ?config: Checkoff::Internal::EnvFallbackConfigLoader,
2037
+ ?config: (::Hash[untyped, untyped] | Checkoff::Internal::EnvFallbackConfigLoader),
1932
2038
  ?clients: Checkoff::Clients,
1933
2039
  ?client: Asana::Client,
1934
2040
  ?workspaces: Checkoff::Workspaces
@@ -1960,10 +2066,10 @@ module Checkoff
1960
2066
 
1961
2067
  # @sg-ignore
1962
2068
  #
1963
- # _@param_ `project`
2069
+ # _@param_ `resource`
1964
2070
  #
1965
2071
  # _@param_ `custom_field_name`
1966
- def resource_custom_field_by_name: (untyped resource, String custom_field_name) -> ::Hash[untyped, untyped]?
2072
+ def resource_custom_field_by_name: ((Asana::Resources::Task | Asana::Resources::Project) resource, String custom_field_name) -> ::Hash[untyped, untyped]?
1967
2073
 
1968
2074
  # _@param_ `resource`
1969
2075
  #
@@ -1975,13 +2081,10 @@ module Checkoff
1975
2081
  # _@param_ `custom_field_gid`
1976
2082
  def resource_custom_field_by_gid_or_raise: ((Asana::Resources::Project | Asana::Resources::Task) resource, String custom_field_gid) -> ::Hash[untyped, untyped]
1977
2083
 
1978
- # sord warn - "[Hash" does not appear to be a type
1979
- # sord warn - "Array<Hash>]" does not appear to be a type
1980
- # sord warn - Invalid hash, must have exactly two types: "Hash{String => [Hash,Array<Hash>]}".
1981
2084
  # @sg-ignore
1982
2085
  #
1983
2086
  # _@param_ `custom_field`
1984
- def resource_custom_field_enum_values: (untyped custom_field) -> ::Array[::Hash[untyped, untyped]]
2087
+ def resource_custom_field_enum_values: (::Hash[String, (::Hash[untyped, untyped] | ::Array[::Hash[untyped, untyped]])] custom_field) -> ::Array[::Hash[untyped, untyped]]
1985
2088
 
1986
2089
  # _@param_ `custom_field`
1987
2090
  #
@@ -2065,7 +2168,7 @@ module Checkoff
2065
2168
  ::Hash[String, Object] api_params,
2066
2169
  workspace_gid: String,
2067
2170
  ?extra_fields: ::Array[String],
2068
- ?task_selector: ::Array[untyped],
2171
+ ?task_selector: (Symbol | ::Array[(Symbol | Integer | ::Array[untyped])]),
2069
2172
  ?fetch_all: bool
2070
2173
  ) -> ::Enumerable[Asana::Resources::Task]
2071
2174
 
@@ -2100,15 +2203,18 @@ module Checkoff
2100
2203
  # _@param_ `url`
2101
2204
  #
2102
2205
  # _@param_ `extra_fields`
2103
- #
2104
- # _@param_ `fetch_all` — Ensure all results are provided by manually paginating
2105
2206
  def iterated_raw_task_search: (::Hash[String, Object] api_params, workspace_gid: String, extra_fields: ::Array[String]) -> ::Enumerable[Asana::Resources::Task]
2106
2207
 
2208
+ # sord warn - undefined is probably not a type, but using anyway
2209
+ # sord warn - undefined wasn't able to be resolved to a constant in this project
2210
+ # @sg-ignore
2211
+ #
2107
2212
  # _@param_ `extra_fields`
2108
- def calculate_api_options: (::Array[String] extra_fields) -> ::Hash[String, Object]
2213
+ def calculate_api_options: (::Array[String] extra_fields) -> ::Hash[Symbol, undefined]
2109
2214
 
2110
2215
  def self.run: () -> void
2111
2216
 
2217
+ # @sg-ignore
2112
2218
  def logger: () -> ::Logger
2113
2219
 
2114
2220
  # _@param_ `message`
@@ -2156,18 +2262,20 @@ module Checkoff
2156
2262
  # _@param_ `tasks`
2157
2263
  #
2158
2264
  # _@param_ `timelines`
2265
+ #
2266
+ # _@param_ `custom_fields`
2159
2267
  def initialize: (
2160
2268
  ?config: (::Hash[untyped, untyped] | Checkoff::Internal::EnvFallbackConfigLoader),
2161
2269
  ?client: Asana::Client,
2162
2270
  ?tasks: Checkoff::Tasks,
2163
2271
  ?timelines: Checkoff::Timelines,
2164
- ?custom_fields: untyped
2272
+ ?custom_fields: Checkoff::CustomFields
2165
2273
  ) -> void
2166
2274
 
2167
2275
  # _@param_ `task`
2168
2276
  #
2169
2277
  # _@param_ `task_selector` — Filter based on task details. Examples: [:tag, 'foo'] [:not, [:tag, 'foo']] [:tag, 'foo']
2170
- def filter_via_task_selector: (Asana::Resources::Task task, ::Array[[Symbol, ::Array[untyped]]] task_selector) -> bool
2278
+ def filter_via_task_selector: (Asana::Resources::Task task, (Symbol | ::Array[(Symbol | Integer | ::Array[untyped])]) task_selector) -> bool
2171
2279
 
2172
2280
  # @sg-ignore
2173
2281
  def self.project_name: () -> String
@@ -2175,7 +2283,8 @@ module Checkoff
2175
2283
  # @sg-ignore
2176
2284
  def self.workspace_name: () -> String
2177
2285
 
2178
- def self.task_selector: () -> ::Array[untyped]
2286
+ # @sg-ignore
2287
+ def self.task_selector: () -> [Symbol, ::Array[untyped]]
2179
2288
 
2180
2289
  def self.run: () -> void
2181
2290
 
@@ -2221,7 +2330,7 @@ module Checkoff
2221
2330
  # _@param_ `project`
2222
2331
  #
2223
2332
  # _@param_ `project_selector` — Filter based on project details. Examples: [:tag, 'foo'] [:not, [:tag, 'foo']] [:tag, 'foo']
2224
- def filter_via_project_selector: (Asana::Resources::Project project, ::Array[[Symbol, ::Array[untyped]]] project_selector) -> bool
2333
+ def filter_via_project_selector: (Asana::Resources::Project project, [Symbol, ::Array[untyped]] project_selector) -> bool
2225
2334
 
2226
2335
  def self.run: () -> void
2227
2336
 
@@ -2268,7 +2377,7 @@ module Checkoff
2268
2377
  # _@param_ `section`
2269
2378
  #
2270
2379
  # _@param_ `section_selector` — Filter based on section details. Examples: [:tag, 'foo'] [:not, [:tag, 'foo']] [:tag, 'foo']
2271
- def filter_via_section_selector: (Asana::Resources::Section section, ::Array[[Symbol, ::Array[untyped]]] section_selector) -> bool
2380
+ def filter_via_section_selector: (Asana::Resources::Section section, [Symbol, ::Array[untyped]] section_selector) -> bool
2272
2381
 
2273
2382
  def self.run: () -> void
2274
2383
 
@@ -2296,11 +2405,10 @@ module Checkoff
2296
2405
  # _@param_ `task_hash`
2297
2406
  def unwrap_custom_fields: (::Hash[untyped, untyped] task_hash) -> void
2298
2407
 
2299
- # sord warn - Invalid hash, must have exactly two types: "Hash<String, Hash, Array>".
2300
2408
  # _@param_ `task_hash`
2301
2409
  #
2302
2410
  # _@param_ `memberships`
2303
- def add_user_task_list: (untyped task_hash, ::Array[::Hash[untyped, untyped]] memberships) -> void
2411
+ def add_user_task_list: (::Hash[String, (String | ::Hash[untyped, untyped] | ::Array[untyped])] task_hash, ::Array[::Hash[untyped, untyped]] memberships) -> void
2304
2412
 
2305
2413
  # _@param_ `task_hash`
2306
2414
  #
@@ -2345,15 +2453,11 @@ module Checkoff
2345
2453
  # @sg-ignore
2346
2454
  #
2347
2455
  # _@param_ `task`
2348
- #
2349
- # _@param_ `field_name`
2350
2456
  def start_date_or_time: (Asana::Resources::Task task) -> (Date | Time)?
2351
2457
 
2352
2458
  # @sg-ignore
2353
2459
  #
2354
2460
  # _@param_ `task`
2355
- #
2356
- # _@param_ `field_name`
2357
2461
  def due_date_or_time: (Asana::Resources::Task task) -> (Date | Time)?
2358
2462
 
2359
2463
  # _@param_ `task`
@@ -2379,18 +2483,20 @@ module Checkoff
2379
2483
  # _@param_ `name`
2380
2484
  #
2381
2485
  # _@param_ `value`
2382
- def with_thread_local_variable: (Symbol name, (Object | bool) value) -> (Object | bool)
2486
+ def with_thread_local_variable: (Symbol name, (Object | bool) value) ?{ () -> T } -> T
2383
2487
  end
2384
2488
 
2385
2489
  # Use the provided config from a YAML file, and fall back to env
2386
2490
  # variable if it's not populated for a key'
2387
2491
  class EnvFallbackConfigLoader
2492
+ # sord warn - undefined is probably not a type, but using anyway
2493
+ # sord warn - undefined wasn't able to be resolved to a constant in this project
2388
2494
  # _@param_ `config`
2389
2495
  #
2390
2496
  # _@param_ `sym`
2391
2497
  #
2392
2498
  # _@param_ `yaml_filename`
2393
- def initialize: (::Hash[Symbol, Object] config, Symbol sym, String yaml_filename) -> void
2499
+ def initialize: (::Hash[Symbol, undefined] config, Symbol sym, String yaml_filename) -> void
2394
2500
 
2395
2501
  # _@param_ `key`
2396
2502
  def []: (Symbol key) -> Object
@@ -2404,13 +2510,13 @@ module Checkoff
2404
2510
 
2405
2511
  # Load configuration file
2406
2512
  class ConfigLoader
2407
- def self.load: (untyped sym) -> EnvFallbackConfigLoader
2513
+ # _@param_ `sym`
2514
+ def self.load: (Symbol sym) -> EnvFallbackConfigLoader
2408
2515
 
2409
- # sord warn - "[String" does not appear to be a type
2410
- # sord warn - "Symbol]" does not appear to be a type
2411
- # sord warn - Invalid hash, must have exactly two types: "Hash<[String, Symbol], Object>".
2516
+ # sord warn - undefined is probably not a type, but using anyway
2517
+ # sord warn - undefined wasn't able to be resolved to a constant in this project
2412
2518
  # _@param_ `sym`
2413
- def self.load_yaml_file: (Symbol sym) -> untyped
2519
+ def self.load_yaml_file: (Symbol sym) -> ::Hash[Symbol, undefined]
2414
2520
 
2415
2521
  # _@param_ `sym`
2416
2522
  def self.yaml_filename: (Symbol sym) -> String
@@ -2450,15 +2556,11 @@ module Checkoff
2450
2556
  # @sg-ignore
2451
2557
  #
2452
2558
  # _@param_ `project`
2453
- #
2454
- # _@param_ `field_name`
2455
2559
  def start_date: (Asana::Resources::Project project) -> Date?
2456
2560
 
2457
2561
  # @sg-ignore
2458
2562
  #
2459
2563
  # _@param_ `project`
2460
- #
2461
- # _@param_ `field_name`
2462
2564
  def due_date: (Asana::Resources::Project project) -> Date?
2463
2565
 
2464
2566
  # _@param_ `project`
@@ -2482,39 +2584,28 @@ module Checkoff
2482
2584
  def initialize: (?::Hash[untyped, untyped] _deps) -> void
2483
2585
 
2484
2586
  # _@param_ `url`
2485
- def convert_params: (String url) -> [::Hash[String, String], ::Hash[String, String]]
2587
+ def convert_params: (String url) -> [::Hash[String, String], ::Array[untyped]]
2486
2588
 
2487
- # sord warn - "[Symbol" does not appear to be a type
2488
- # sord warn - "Array]" does not appear to be a type
2489
2589
  # _@param_ `date_url_params`
2490
- def convert_date_params: (::Hash[String, ::Array[String]] date_url_params) -> [::Hash[String, String], ::Array[(untyped | untyped)]]
2590
+ def convert_date_params: (::Hash[String, ::Array[String]] date_url_params) -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2491
2591
 
2492
2592
  # _@param_ `simple_url_params`
2493
2593
  def convert_simple_params: (::Hash[String, ::Array[String]] simple_url_params) -> ::Hash[String, String]
2494
2594
 
2495
- # sord warn - "[Symbol" does not appear to be a type
2496
- # sord warn - "Array]" does not appear to be a type
2497
2595
  # _@param_ `custom_field_params`
2498
- def convert_custom_field_params: (::Hash[String, ::Array[String]] custom_field_params) -> [::Hash[String, String], ::Array[(untyped | untyped)]]
2596
+ def convert_custom_field_params: (::Hash[String, ::Array[String]] custom_field_params) -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2499
2597
 
2500
2598
  # _@param_ `url_params`
2501
- def partition_url_params: (::Hash[String, String] url_params) -> [::Hash[String, String], ::Hash[String, String], ::Hash[String, String]]
2599
+ def partition_url_params: (::Hash[String, String] url_params) -> [::Hash[String, ::Array[String]], ::Hash[String, ::Array[String]], ::Hash[String, ::Array[String]]]
2502
2600
  end
2503
2601
 
2504
2602
  # Merge task selectors and search API arguments
2505
2603
  class ResultsMerger
2506
- # sord warn - "[Hash<String, String>]" does not appear to be a type
2507
2604
  # _@param_ `args`
2508
- #
2509
- # _@return_ — Hash<String, String>
2510
- def self.merge_args: (*::Array[untyped] args) -> ::Hash[String, String]
2605
+ def self.merge_args: (*::Array[::Hash[String, String]] args) -> ::Hash[String, String]
2511
2606
 
2512
- # sord warn - "[Symbol" does not appear to be a type
2513
- # sord warn - "Array]" does not appear to be a type
2514
- # sord warn - "[Symbol" does not appear to be a type
2515
- # sord warn - "Array]" does not appear to be a type
2516
2607
  # _@param_ `task_selectors`
2517
- def self.merge_task_selectors: (*::Array[::Array[(untyped | untyped)]] task_selectors) -> ::Array[(untyped | untyped)]
2608
+ def self.merge_task_selectors: (*::Array[(Symbol | ::Array[untyped])] task_selectors) -> [Symbol, ::Array[untyped], ::Array[untyped]]
2518
2609
  end
2519
2610
 
2520
2611
  # https://developers.asana.com/docs/search-tasks-in-a-workspace
@@ -2524,76 +2615,78 @@ module Checkoff
2524
2615
  # _@param_ `gid`
2525
2616
  #
2526
2617
  # _@param_ `remaining_params`
2527
- def initialize: (String gid, ::Hash[untyped, untyped] remaining_params) -> void
2618
+ def initialize: (String gid, ::Hash[String, ::Array[String]] remaining_params) -> void
2528
2619
 
2529
2620
  def ensure_no_remaining_params!: () -> void
2530
2621
 
2622
+ # @sg-ignore
2623
+ #
2531
2624
  # _@param_ `param_name`
2532
2625
  def fetch_solo_param: (String param_name) -> String
2533
2626
 
2534
2627
  attr_reader gid: String
2535
2628
 
2536
- attr_reader remaining_params: ::Hash[untyped, untyped]
2629
+ attr_reader remaining_params: ::Hash[String, ::Array[String]]
2537
2630
  end
2538
2631
 
2539
2632
  # custom_field_#{gid}.variant = 'less_than'
2540
2633
  class LessThan < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
2541
- def convert: () -> ::Array[[::Hash[untyped, untyped], ::Array[untyped]]]
2634
+ def convert: () -> [::Hash[String, String], ::Array[(::Array[String] | String)]]
2542
2635
  end
2543
2636
 
2544
2637
  # custom_field_#{gid}.variant = 'greater_than'
2545
2638
  class GreaterThan < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
2546
- def convert: () -> ::Array[[::Hash[untyped, untyped], ::Array[untyped]]]
2639
+ def convert: () -> [::Hash[String, String], ::Array[(::Array[String] | String)]]
2547
2640
  end
2548
2641
 
2549
2642
  # custom_field_#{gid}.variant = 'equals'
2550
2643
  class Equals < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
2551
- def convert: () -> ::Array[[::Hash[untyped, untyped], ::Array[untyped]]]
2644
+ def convert: () -> [::Hash[String, String], ::Array[(::Array[String] | String)]]
2552
2645
  end
2553
2646
 
2554
2647
  # This is used in the UI for select fields
2555
2648
  #
2556
2649
  # custom_field_#{gid}.variant = 'is_not'
2557
2650
  class IsNot < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
2558
- def convert: () -> ::Array[[::Hash[untyped, untyped], ::Array[untyped]]]
2651
+ def convert: () -> [::Hash[String, String], ::Array[(::Array[String] | String | ::Array[untyped])]]
2559
2652
  end
2560
2653
 
2561
2654
  # This is used in the UI for multi-select fields
2562
2655
  #
2563
2656
  # custom_field_#{gid}.variant = 'doesnt_contain_any'
2564
2657
  class DoesntContainAny < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
2565
- def convert: () -> ::Array[[::Hash[untyped, untyped], ::Array[untyped]]]
2658
+ def convert: () -> [::Hash[String, String], ::Array[(::Array[String] | String | ::Array[untyped])]]
2566
2659
  end
2567
2660
 
2568
2661
  # This is used in the UI for multi-select fields
2569
2662
  #
2570
2663
  # custom_field_#{gid}.variant = 'contains_any'
2571
2664
  class ContainsAny < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
2572
- def convert: () -> ::Array[[::Hash[untyped, untyped], ::Array[untyped]]]
2665
+ def convert: () -> [::Hash[String, String], ::Array[(::Array[String] | String | ::Array[untyped])]]
2573
2666
  end
2574
2667
 
2575
2668
  # This is used in the UI for multi-select fields
2576
2669
  #
2577
2670
  # custom_field_#{gid}.variant = 'contains_all'
2578
2671
  class ContainsAll < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
2579
- def convert: () -> ::Array[[::Hash[untyped, untyped], ::Array[untyped]]]
2672
+ def convert: () -> [::Hash[String, String], ::Array[(::Array[String] | String | ::Array[untyped])]]
2580
2673
  end
2581
2674
 
2582
2675
  # custom_field_#{gid}.variant = 'no_value'
2583
2676
  class NoValue < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
2584
- def convert: () -> ::Array[[::Hash[untyped, untyped], ::Array[untyped]]]
2677
+ def convert: () -> [::Hash[String, String], ::Array[(::Array[String] | String | ::Array[untyped] | Symbol)]]
2585
2678
  end
2586
2679
 
2587
2680
  # custom_field_#{gid}.variant = 'any_value'
2588
2681
  #
2589
2682
  # Not used for multi-select fields
2590
2683
  class AnyValue < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
2591
- def convert: () -> ::Array[[::Hash[untyped, untyped], ::Array[untyped]]]
2684
+ def convert: () -> [::Hash[String, String], ::Array[(::Array[String] | String | ::Array[untyped])]]
2592
2685
  end
2593
2686
 
2594
2687
  # custom_field_#{gid}.variant = 'is'
2595
2688
  class Is < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
2596
- def convert: () -> ::Array[[::Hash[untyped, untyped], ::Array[untyped]]]
2689
+ def convert: () -> [::Hash[String, String], ::Array[(::Array[String] | String | ::Array[untyped])]]
2597
2690
  end
2598
2691
  end
2599
2692
 
@@ -2605,45 +2698,31 @@ module Checkoff
2605
2698
  # _@param_ `date_url_params` — the simple params
2606
2699
  def initialize: (date_url_params: ::Hash[String, ::Array[String]]) -> void
2607
2700
 
2608
- # sord warn - "[Symbol" does not appear to be a type
2609
- # sord warn - "Array]" does not appear to be a type
2610
2701
  # @sg-ignore
2611
- def convert: () -> [::Hash[String, String], ::Array[(untyped | untyped)]]
2702
+ def convert: () -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2612
2703
 
2613
- # sord warn - "[Symbol" does not appear to be a type
2614
- # sord warn - "Array]" does not appear to be a type
2615
- # @sg-ignore
2616
- #
2617
2704
  # _@param_ `prefix`
2618
- def convert_for_prefix: (String prefix) -> [::Hash[String, String], ::Array[(untyped | untyped)]]
2705
+ def convert_for_prefix: (String prefix) -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2619
2706
 
2620
- # sord warn - "[Symbol" does not appear to be a type
2621
- # sord warn - "Array]" does not appear to be a type
2622
2707
  # _@param_ `prefix`
2623
2708
  #
2624
2709
  # _@return_ — See https://developers.asana.com/docs/search-tasks-in-a-workspace
2625
- def handle_through_next: (String prefix) -> [::Hash[String, String], ::Array[(untyped | untyped)]]
2710
+ def handle_through_next: (String prefix) -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2626
2711
 
2627
- # sord warn - "[Symbol" does not appear to be a type
2628
- # sord warn - "Array]" does not appear to be a type
2629
2712
  # _@param_ `prefix`
2630
2713
  #
2631
2714
  # _@return_ — See https://developers.asana.com/docs/search-tasks-in-a-workspace
2632
- def handle_between: (String prefix) -> [::Hash[String, String], ::Array[(untyped | untyped)]]
2715
+ def handle_between: (String prefix) -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2633
2716
 
2634
- # sord warn - "[Symbol" does not appear to be a type
2635
- # sord warn - "Array]" does not appear to be a type
2636
2717
  # _@param_ `prefix`
2637
2718
  #
2638
2719
  # _@return_ — See https://developers.asana.com/docs/search-tasks-in-a-workspace
2639
- def handle_within_last: (String prefix) -> [::Hash[String, String], ::Array[(untyped | untyped)]]
2720
+ def handle_within_last: (String prefix) -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2640
2721
 
2641
- # sord warn - "[Symbol" does not appear to be a type
2642
- # sord warn - "Array]" does not appear to be a type
2643
2722
  # _@param_ `prefix`
2644
2723
  #
2645
2724
  # _@return_ — See https://developers.asana.com/docs/search-tasks-in-a-workspace
2646
- def handle_within_next: (String prefix) -> [::Hash[String, String], ::Array[(untyped | untyped)]]
2725
+ def handle_within_next: (String prefix) -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2647
2726
 
2648
2727
  # _@param_ `param_key`
2649
2728
  def get_single_param: (String param_key) -> String
@@ -2708,7 +2787,7 @@ module Checkoff
2708
2787
 
2709
2788
  # Handle 'completion' search url param
2710
2789
  class Completion < Checkoff::Internal::SearchUrl::SimpleParam::SimpleParam
2711
- def convert: () -> ::Array[String]
2790
+ def convert: () -> ::Array[(String | bool)]
2712
2791
  end
2713
2792
 
2714
2793
  # Handle 'not_tags.ids' search url param
@@ -2718,9 +2797,7 @@ module Checkoff
2718
2797
 
2719
2798
  # handle 'subtask' search url param
2720
2799
  class Subtask < Checkoff::Internal::SearchUrl::SimpleParam::SimpleParam
2721
- # sord warn - "[String" does not appear to be a type
2722
- # sord warn - "Boolean]" does not appear to be a type
2723
- def convert: () -> ::Array[(untyped | untyped)]
2800
+ def convert: () -> ::Array[(String | bool)]
2724
2801
  end
2725
2802
 
2726
2803
  # Handle 'any_tags.ids' search url param
@@ -2776,21 +2853,17 @@ module Checkoff
2776
2853
  # _@param_ `custom_field_params`
2777
2854
  def initialize: (custom_field_params: ::Hash[String, ::Array[String]]) -> void
2778
2855
 
2779
- # sord warn - "[Symbol" does not appear to be a type
2780
- # sord warn - "Array]" does not appear to be a type
2781
- def convert: () -> [::Hash[String, String], ::Array[(untyped | untyped)]]
2856
+ def convert: () -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2782
2857
 
2783
2858
  # @sg-ignore
2784
2859
  def by_custom_field: () -> ::Hash[String, ::Hash[untyped, untyped]]
2785
2860
 
2786
- # sord warn - "[Symbol" does not appear to be a type
2787
- # sord warn - "Array]" does not appear to be a type
2788
2861
  # @sg-ignore
2789
2862
  #
2790
2863
  # _@param_ `gid`
2791
2864
  #
2792
2865
  # _@param_ `single_custom_field_params`
2793
- def convert_single_custom_field_params: (String gid, ::Hash[String, ::Array[String]] single_custom_field_params) -> [::Hash[String, String], ::Array[(untyped | untyped)]]
2866
+ def convert_single_custom_field_params: (String gid, ::Hash[String, ::Array[String]] single_custom_field_params) -> [::Hash[String, String], ::Array[(Symbol | ::Array[untyped])]]
2794
2867
 
2795
2868
  # _@param_ `key`
2796
2869
  def gid_from_custom_field_key: (String key) -> String
@@ -2853,6 +2926,7 @@ module Checkoff
2853
2926
  # _@param_ `fields`
2854
2927
  def uncached_fetch_task: (String key, ::Hash[untyped, untyped] asana_event, ::Array[String] fields) -> Asana::Resources::Task?
2855
2928
 
2929
+ # @sg-ignore
2856
2930
  def logger: () -> ::Logger
2857
2931
 
2858
2932
  # _@param_ `message`
@@ -2894,8 +2968,6 @@ module Checkoff
2894
2968
  # _@param_ `clients`
2895
2969
  #
2896
2970
  # _@param_ `client`
2897
- #
2898
- # _@param_ `asana_event_enrichment`
2899
2971
  def initialize: (
2900
2972
  ?config: (::Hash[untyped, untyped] | Checkoff::Internal::EnvFallbackConfigLoader),
2901
2973
  ?workspaces: Checkoff::Workspaces,
@@ -2913,17 +2985,11 @@ module Checkoff
2913
2985
  # _@param_ `asana_event`
2914
2986
  def enrich_event: (::Hash[untyped, untyped] asana_event) -> ::Hash[untyped, untyped]
2915
2987
 
2916
- # sord warn - "[String" does not appear to be a type
2917
- # sord warn - "Array<String>]" does not appear to be a type
2918
- # sord warn - Invalid hash, must have exactly two types: "Hash<String,[String,Array<String>]>".
2919
- # sord warn - "[String" does not appear to be a type
2920
- # sord warn - "Array<String>]" does not appear to be a type
2921
- # sord warn - Invalid hash, must have exactly two types: "Hash<String,[String,Array<String>]>".
2922
2988
  # _@param_ `filter`
2923
- def enrich_filter: (untyped filter) -> untyped
2989
+ def enrich_filter: (::Hash[String, (String | ::Array[String])] filter) -> ::Hash[String, (String | ::Array[String])]
2924
2990
 
2925
2991
  # _@param_ `webhook_subscription` — Hash of the request made to webhook POST endpoint - https://app.asana.com/api/1.0/webhooks https://developers.asana.com/reference/createwebhook
2926
- def enrich_webhook_subscription!: (::Hash[untyped, untyped] webhook_subscription) -> void
2992
+ def enrich_webhook_subscription!: (::Hash[untyped, untyped]? webhook_subscription) -> void
2927
2993
 
2928
2994
  # sord warn - "[String" does not appear to be a type
2929
2995
  # sord warn - "nil]" does not appear to be a type
@@ -2935,19 +3001,16 @@ module Checkoff
2935
3001
  # _@param_ `gid`
2936
3002
  #
2937
3003
  # _@param_ `resource_type`
2938
- def enrich_gid: (String gid, ?resource_type: String?) -> ::Array[[untyped, untyped, untyped, untyped]]
3004
+ def enrich_gid: (String gid, ?resource_type: String?) -> [untyped, untyped, untyped, untyped]
2939
3005
 
2940
3006
  # _@param_ `filter`
2941
- def enrich_filter_parent_gid!: (::Hash[String, String] filter) -> String?
3007
+ def enrich_filter_parent_gid!: (::Hash[String, (String | ::Array[String])] filter) -> String?
2942
3008
 
2943
3009
  # _@param_ `filter`
2944
- def enrich_filter_resource!: (::Hash[String, String] filter) -> void
3010
+ def enrich_filter_resource!: (::Hash[String, (String | ::Array[String])] filter) -> void
2945
3011
 
2946
- # sord warn - "[String" does not appear to be a type
2947
- # sord warn - "Array<String>]" does not appear to be a type
2948
- # sord warn - Invalid hash, must have exactly two types: "Hash{String => [String,Array<String>]}".
2949
3012
  # _@param_ `filter`
2950
- def enrich_filter_section!: (untyped filter) -> void
3013
+ def enrich_filter_section!: (::Hash[String, (String | ::Array[String])] filter) -> void
2951
3014
 
2952
3015
  # sord warn - "'resource'" does not appear to be a type
2953
3016
  # _@param_ `asana_event`
@@ -2957,6 +3020,7 @@ module Checkoff
2957
3020
  # _@param_ `asana_event`
2958
3021
  def enrich_event_resource!: (::Hash[untyped, ::Hash[untyped, untyped]] asana_event) -> void
2959
3022
 
3023
+ # @sg-ignore
2960
3024
  def logger: () -> ::Logger
2961
3025
 
2962
3026
  # _@param_ `message`
@@ -2994,7 +3058,7 @@ module Checkoff
2994
3058
  # Base class to evaluate Asana resource selectors against an Asana resource
2995
3059
  class SelectorEvaluator
2996
3060
  # _@param_ `selector`
2997
- def evaluate: (::Array[untyped] selector) -> (bool | Object)?
3061
+ def evaluate: ((Symbol | ::Array[(Symbol | Integer | ::Array[untyped])]) selector) -> (bool | Object | ::Array[untyped])?
2998
3062
 
2999
3063
  def initializer_kwargs: () -> ::Hash[untyped, untyped]
3000
3064
 
@@ -3193,13 +3257,9 @@ module Checkoff
3193
3257
 
3194
3258
  def matches?: () -> bool
3195
3259
 
3196
- # only projects in this portfolio will be evaluated.
3197
- #
3198
3260
  # _@param_ `task`
3199
3261
  #
3200
- # _@param_ `project_name`
3201
- #
3202
- # _@param_ `limit_to_portfolio_gid` — If specified,
3262
+ # _@param_ `limit_to_portfolio_gid` — If specified, only projects in this portfolio will be evaluated.
3203
3263
  def evaluate: (Asana::Resources::Task task, ?limit_to_portfolio_gid: String?) -> bool
3204
3264
  end
3205
3265
 
@@ -3264,15 +3324,17 @@ module Checkoff
3264
3324
  # _@param_ `timelines`
3265
3325
  #
3266
3326
  # _@param_ `custom_fields`
3327
+ #
3328
+ # _@param_ `_kwargs`
3267
3329
  def initialize: (
3268
- selector: (::Array[[Symbol, ::Array[untyped]]] | String),
3330
+ selector: ([Symbol, ::Array[untyped]] | String),
3269
3331
  tasks: Checkoff::Tasks,
3270
3332
  timelines: Checkoff::Timelines,
3271
3333
  custom_fields: Checkoff::CustomFields,
3272
- **untyped _kwargs
3334
+ **::Hash[untyped, untyped] _kwargs
3273
3335
  ) -> void
3274
3336
 
3275
- attr_reader selector: ::Array[[Symbol, ::Array[untyped]]]
3337
+ attr_reader selector: [Symbol, ::Array[untyped]]
3276
3338
  end
3277
3339
  end
3278
3340
 
@@ -3425,12 +3487,12 @@ module Checkoff
3425
3487
 
3426
3488
  def evaluate_arg?: (Integer _index) -> bool
3427
3489
 
3428
- # @sg-ignore
3429
- #
3490
+ # sord warn - boolish is probably not a type, but using anyway
3491
+ # sord warn - boolish wasn't able to be resolved to a constant in this project
3430
3492
  # _@param_ `resource`
3431
3493
  #
3432
3494
  # _@param_ `prefix`
3433
- def evaluate: ((Asana::Resources::Task | Asana::Resources::Project) resource, String prefix) -> bool
3495
+ def evaluate: ((Asana::Resources::Task | Asana::Resources::Project) resource, String prefix) -> boolish
3434
3496
  end
3435
3497
 
3436
3498
  # String literals
@@ -3448,9 +3510,11 @@ module Checkoff
3448
3510
  # _@param_ `selector`
3449
3511
  #
3450
3512
  # _@param_ `custom_fields`
3451
- def initialize: (selector: (::Array[[Symbol, ::Array[untyped]]] | String), custom_fields: Checkoff::CustomFields, **untyped _kwargs) -> void
3513
+ #
3514
+ # _@param_ `_kwargs`
3515
+ def initialize: (selector: ([Symbol, ::Array[untyped]] | String), custom_fields: Checkoff::CustomFields, **::Hash[untyped, untyped] _kwargs) -> void
3452
3516
 
3453
- attr_reader selector: ::Array[[Symbol, ::Array[untyped]]]
3517
+ attr_reader selector: ([Symbol, ::Array[untyped]] | String)
3454
3518
  end
3455
3519
  end
3456
3520
 
@@ -3508,15 +3572,17 @@ module Checkoff
3508
3572
  # _@param_ `portfolios`
3509
3573
  #
3510
3574
  # _@param_ `workspaces`
3575
+ #
3576
+ # _@param_ `_kwargs`
3511
3577
  def initialize: (
3512
- selector: (::Array[[Symbol, ::Array[untyped]]] | String),
3578
+ selector: ([Symbol, ::Array[untyped]] | String),
3513
3579
  projects: Checkoff::Projects,
3514
3580
  portfolios: Checkoff::Portfolios,
3515
3581
  workspaces: Checkoff::Workspaces,
3516
- **untyped _kwargs
3582
+ **::Hash[untyped, untyped] _kwargs
3517
3583
  ) -> void
3518
3584
 
3519
- attr_reader selector: ::Array[[Symbol, ::Array[untyped]]]
3585
+ attr_reader selector: [Symbol, ::Array[untyped]]
3520
3586
  end
3521
3587
  end
3522
3588
 
@@ -3556,13 +3622,13 @@ module Checkoff
3556
3622
  #
3557
3623
  # _@param_ `kwargs`
3558
3624
  def initialize: (
3559
- selector: (::Array[[Symbol, ::Array[untyped]]] | String),
3625
+ selector: ([Symbol, ::Array[untyped]] | String),
3560
3626
  sections: Checkoff::Sections,
3561
3627
  client: Asana::Client,
3562
3628
  **::Hash[untyped, untyped] kwargs
3563
3629
  ) -> void
3564
3630
 
3565
- attr_reader selector: ::Array[[Symbol, ::Array[untyped]]]
3631
+ attr_reader selector: [Symbol, ::Array[untyped]]
3566
3632
 
3567
3633
  attr_reader client: Asana::Client
3568
3634
  end
@@ -3572,8 +3638,6 @@ module Checkoff
3572
3638
  class FunctionEvaluator
3573
3639
  include Logging
3574
3640
 
3575
- # @sg-ignore
3576
- #
3577
3641
  # _@param_ `_index`
3578
3642
  def evaluate_arg?: (Integer _index) -> bool
3579
3643
 
@@ -3592,6 +3656,7 @@ module Checkoff
3592
3656
  # _@param_ `fn_name`
3593
3657
  def fn?: (Object object, Symbol fn_name) -> bool
3594
3658
 
3659
+ # @sg-ignore
3595
3660
  def logger: () -> ::Logger
3596
3661
 
3597
3662
  # _@param_ `message`
@@ -3689,7 +3754,7 @@ module Checkoff
3689
3754
  class SectionSelectorEvaluator < Checkoff::SelectorEvaluator
3690
3755
  COMMON_FUNCTION_EVALUATORS: untyped
3691
3756
  SECTION_FUNCTION_EVALUATORS: untyped
3692
- FUNCTION_EVALUTORS: untyped
3757
+ FUNCTION_EVALUATORS: untyped
3693
3758
 
3694
3759
  # _@param_ `section`
3695
3760
  #
@@ -3700,13 +3765,15 @@ module Checkoff
3700
3765
  # _@param_ `sections`
3701
3766
  #
3702
3767
  # _@param_ `custom_fields`
3768
+ #
3769
+ # _@param_ `_kwargs`
3703
3770
  def initialize: (
3704
- section: Asana::Resources::Project,
3771
+ section: Asana::Resources::Section,
3705
3772
  client: Asana::Client,
3706
3773
  ?projects: Checkoff::Projects,
3707
3774
  ?sections: Checkoff::Sections,
3708
3775
  ?custom_fields: Checkoff::CustomFields,
3709
- **untyped _kwargs
3776
+ **::Hash[untyped, untyped] _kwargs
3710
3777
  ) -> void
3711
3778
 
3712
3779
  def function_evaluators: () -> ::Array[singleton(Checkoff::SelectorClasses::Project::FunctionEvaluator)]
@@ -3727,6 +3794,7 @@ end
3727
3794
 
3728
3795
  # include this to add ability to log at different levels
3729
3796
  module Logging
3797
+ # @sg-ignore
3730
3798
  def logger: () -> ::Logger
3731
3799
 
3732
3800
  # _@param_ `message`
@@ -3746,24 +3814,4 @@ module Logging
3746
3814
 
3747
3815
  # @sg-ignore
3748
3816
  def log_level: () -> Symbol
3749
- end
3750
-
3751
- module T
3752
- # sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
3753
- # sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
3754
- # _@param_ `type`
3755
- def self.nilable: ((T::Types::Base | singleton(Object)) _type) -> T::Types::Base
3756
-
3757
- # sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
3758
- # _@param_ `obj`
3759
- #
3760
- # _@param_ `type`
3761
- def self.let: (BasicObject obj, (T::Types::Base | singleton(Object)) _type) -> BasicObject
3762
-
3763
- # sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
3764
- def self.untyped: () -> T::Types::Base
3765
-
3766
- class Struct
3767
- extend T::Props::ClassMethods
3768
- end
3769
3817
  end