lunchmoney 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +7 -0
  3. data/.github/FUNDING.yml +1 -0
  4. data/.github/workflows/check_pipeline.yml +2 -2
  5. data/.github/workflows/ci.yml +10 -2
  6. data/.github/workflows/release_pipeline.yml +1 -1
  7. data/.mdlrc +5 -0
  8. data/.rubocop.yml +1 -0
  9. data/.simplecov +30 -0
  10. data/.toys/.toys.rb +1 -0
  11. data/.toys/coverage.rb +5 -0
  12. data/.toys/mdl.rb +5 -0
  13. data/Gemfile +3 -0
  14. data/Gemfile.lock +64 -37
  15. data/LICENSE +1 -1
  16. data/README.md +7 -3
  17. data/lib/lunchmoney/objects/crypto.rb +6 -1
  18. data/lib/lunchmoney/objects/object.rb +3 -1
  19. data/lib/lunchmoney/version.rb +1 -1
  20. data/sorbet/rbi/annotations/activesupport.rbi +11 -0
  21. data/sorbet/rbi/gems/{activesupport@7.1.3.rbi → activesupport@7.1.3.2.rbi} +23 -23
  22. data/sorbet/rbi/gems/chef-utils@18.4.2.rbi +8 -0
  23. data/sorbet/rbi/gems/docile@1.4.0.rbi +376 -0
  24. data/sorbet/rbi/gems/dotenv@3.1.0.rbi +300 -0
  25. data/sorbet/rbi/gems/{i18n@1.14.1.rbi → i18n@1.14.4.rbi} +48 -43
  26. data/sorbet/rbi/gems/kramdown-parser-gfm@1.1.0.rbi +127 -0
  27. data/sorbet/rbi/gems/kramdown@2.4.0.rbi +3271 -0
  28. data/sorbet/rbi/gems/mdl@0.13.0.rbi +444 -0
  29. data/sorbet/rbi/gems/{minitest@5.22.2.rbi → minitest@5.22.3.rbi} +19 -18
  30. data/sorbet/rbi/gems/mixlib-cli@2.1.8.rbi +313 -0
  31. data/sorbet/rbi/gems/mixlib-config@3.0.27.rbi +580 -0
  32. data/sorbet/rbi/gems/mixlib-shellout@3.2.7.rbi +628 -0
  33. data/sorbet/rbi/gems/{prism@0.19.0.rbi → prism@0.24.0.rbi} +8266 -7109
  34. data/sorbet/rbi/gems/{rack@3.0.8.rbi → rack@3.0.10.rbi} +83 -83
  35. data/sorbet/rbi/gems/{rbi@0.1.6.rbi → rbi@0.1.9.rbi} +114 -13
  36. data/sorbet/rbi/gems/{rubocop-ast@1.30.0.rbi → rubocop-ast@1.31.2.rbi} +61 -50
  37. data/sorbet/rbi/gems/{rubocop-minitest@0.34.5.rbi → rubocop-minitest@0.35.0.rbi} +34 -0
  38. data/sorbet/rbi/gems/{rubocop-rails@2.23.1.rbi → rubocop-rails@2.24.1.rbi} +159 -147
  39. data/sorbet/rbi/gems/{rubocop-sorbet@0.7.7.rbi → rubocop-sorbet@0.8.0.rbi} +24 -42
  40. data/sorbet/rbi/gems/{rubocop@1.60.2.rbi → rubocop@1.62.1.rbi} +807 -646
  41. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +216 -0
  42. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +2148 -0
  43. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +238 -0
  44. data/sorbet/rbi/gems/{tapioca@0.12.0.rbi → tapioca@0.13.1.rbi} +83 -62
  45. data/sorbet/rbi/gems/{thor@1.3.0.rbi → thor@1.3.1.rbi} +89 -50
  46. data/sorbet/rbi/gems/tomlrb@2.0.3.rbi +8 -0
  47. data/sorbet/rbi/gems/{webmock@3.20.0.rbi → webmock@3.23.0.rbi} +25 -25
  48. data/sorbet/rbi/gems/{yard@0.9.34.rbi → yard@0.9.36.rbi} +194 -58
  49. data/sorbet/tapioca/require.rb +1 -0
  50. metadata +39 -23
  51. data/.DS_Store +0 -0
  52. data/.github/workflows/publish_gem.yml +0 -29
  53. data/sorbet/rbi/gems/dotenv@2.8.1.rbi +0 -234
  54. /data/sorbet/rbi/gems/{bigdecimal@3.1.6.rbi → bigdecimal@3.1.7.rbi} +0 -0
  55. /data/sorbet/rbi/gems/{drb@2.2.0.rbi → drb@2.2.1.rbi} +0 -0
  56. /data/sorbet/rbi/gems/{rubocop-shopify@2.14.0.rbi → rubocop-shopify@2.15.1.rbi} +0 -0
@@ -123,15 +123,15 @@ module I18n::Backend::Base
123
123
  #
124
124
  # @raise [NotImplementedError]
125
125
  #
126
- # source://i18n//lib/i18n/backend/base.rb#94
126
+ # source://i18n//lib/i18n/backend/base.rb#96
127
127
  def available_locales; end
128
128
 
129
- # source://i18n//lib/i18n/backend/base.rb#102
129
+ # source://i18n//lib/i18n/backend/base.rb#104
130
130
  def eager_load!; end
131
131
 
132
132
  # @return [Boolean]
133
133
  #
134
- # source://i18n//lib/i18n/backend/base.rb#68
134
+ # source://i18n//lib/i18n/backend/base.rb#70
135
135
  def exists?(locale, key, options = T.unsafe(nil)); end
136
136
 
137
137
  # Accepts a list of paths to translation files. Loads translations from
@@ -147,10 +147,10 @@ module I18n::Backend::Base
147
147
  #
148
148
  # @raise [ArgumentError]
149
149
  #
150
- # source://i18n//lib/i18n/backend/base.rb#75
150
+ # source://i18n//lib/i18n/backend/base.rb#77
151
151
  def localize(locale, object, format = T.unsafe(nil), options = T.unsafe(nil)); end
152
152
 
153
- # source://i18n//lib/i18n/backend/base.rb#98
153
+ # source://i18n//lib/i18n/backend/base.rb#100
154
154
  def reload!; end
155
155
 
156
156
  # This method receives a locale, a data hash and options for storing translations.
@@ -174,7 +174,7 @@ module I18n::Backend::Base
174
174
  # ann: 'good', john: 'big'
175
175
  # #=> { people: { ann: "Ann is good", john: "John is big" } }
176
176
  #
177
- # source://i18n//lib/i18n/backend/base.rb#207
177
+ # source://i18n//lib/i18n/backend/base.rb#209
178
178
  def deep_interpolate(locale, data, values = T.unsafe(nil)); end
179
179
 
180
180
  # Evaluates defaults.
@@ -182,12 +182,12 @@ module I18n::Backend::Base
182
182
  # first translation that can be resolved. Otherwise it tries to resolve
183
183
  # the translation directly.
184
184
  #
185
- # source://i18n//lib/i18n/backend/base.rb#125
185
+ # source://i18n//lib/i18n/backend/base.rb#127
186
186
  def default(locale, object, subject, options = T.unsafe(nil)); end
187
187
 
188
188
  # @return [Boolean]
189
189
  #
190
- # source://i18n//lib/i18n/backend/base.rb#108
190
+ # source://i18n//lib/i18n/backend/base.rb#110
191
191
  def eager_loaded?; end
192
192
 
193
193
  # Interpolates values into a given subject.
@@ -201,7 +201,7 @@ module I18n::Backend::Base
201
201
  # method interpolates ["yes, %{user}", ["maybe no, %{user}, "no, %{user}"]], :user => "bartuz"
202
202
  # # => "["yes, bartuz",["maybe no, bartuz", "no, bartuz"]]"
203
203
  #
204
- # source://i18n//lib/i18n/backend/base.rb#191
204
+ # source://i18n//lib/i18n/backend/base.rb#193
205
205
  def interpolate(locale, subject, values = T.unsafe(nil)); end
206
206
 
207
207
  # Loads a single translations file by delegating to #load_rb or
@@ -211,41 +211,41 @@ module I18n::Backend::Base
211
211
  #
212
212
  # @raise [UnknownFileType]
213
213
  #
214
- # source://i18n//lib/i18n/backend/base.rb#230
214
+ # source://i18n//lib/i18n/backend/base.rb#232
215
215
  def load_file(filename); end
216
216
 
217
217
  # Loads a JSON translations file. The data must have locales as
218
218
  # toplevel keys.
219
219
  #
220
- # source://i18n//lib/i18n/backend/base.rb#266
220
+ # source://i18n//lib/i18n/backend/base.rb#268
221
221
  def load_json(filename); end
222
222
 
223
223
  # Loads a plain Ruby translations file. eval'ing the file must yield
224
224
  # a Hash containing translation data with locales as toplevel keys.
225
225
  #
226
- # source://i18n//lib/i18n/backend/base.rb#244
226
+ # source://i18n//lib/i18n/backend/base.rb#246
227
227
  def load_rb(filename); end
228
228
 
229
229
  # Loads a YAML translations file. The data must have locales as
230
230
  # toplevel keys.
231
231
  #
232
- # source://i18n//lib/i18n/backend/base.rb#251
232
+ # source://i18n//lib/i18n/backend/base.rb#253
233
233
  def load_yaml(filename); end
234
234
 
235
235
  # Loads a YAML translations file. The data must have locales as
236
236
  # toplevel keys.
237
237
  #
238
- # source://i18n//lib/i18n/backend/base.rb#251
238
+ # source://i18n//lib/i18n/backend/base.rb#253
239
239
  def load_yml(filename); end
240
240
 
241
241
  # The method which actually looks up for the translation in the store.
242
242
  #
243
243
  # @raise [NotImplementedError]
244
244
  #
245
- # source://i18n//lib/i18n/backend/base.rb#113
245
+ # source://i18n//lib/i18n/backend/base.rb#115
246
246
  def lookup(locale, key, scope = T.unsafe(nil), options = T.unsafe(nil)); end
247
247
 
248
- # source://i18n//lib/i18n/backend/base.rb#298
248
+ # source://i18n//lib/i18n/backend/base.rb#300
249
249
  def pluralization_key(entry, count); end
250
250
 
251
251
  # Picks a translation from a pluralized mnemonic subkey according to English
@@ -259,7 +259,7 @@ module I18n::Backend::Base
259
259
  #
260
260
  # @raise [InvalidPluralizationData]
261
261
  #
262
- # source://i18n//lib/i18n/backend/base.rb#172
262
+ # source://i18n//lib/i18n/backend/base.rb#174
263
263
  def pluralize(locale, entry, count); end
264
264
 
265
265
  # Resolves a translation.
@@ -267,7 +267,7 @@ module I18n::Backend::Base
267
267
  # given options. If it is a Proc then it will be evaluated. All other
268
268
  # subjects will be returned directly.
269
269
  #
270
- # source://i18n//lib/i18n/backend/base.rb#147
270
+ # source://i18n//lib/i18n/backend/base.rb#149
271
271
  def resolve(locale, object, subject, options = T.unsafe(nil)); end
272
272
 
273
273
  # Resolves a translation.
@@ -275,15 +275,15 @@ module I18n::Backend::Base
275
275
  # given options. If it is a Proc then it will be evaluated. All other
276
276
  # subjects will be returned directly.
277
277
  #
278
- # source://i18n//lib/i18n/backend/base.rb#147
278
+ # source://i18n//lib/i18n/backend/base.rb#149
279
279
  def resolve_entry(locale, object, subject, options = T.unsafe(nil)); end
280
280
 
281
281
  # @return [Boolean]
282
282
  #
283
- # source://i18n//lib/i18n/backend/base.rb#117
283
+ # source://i18n//lib/i18n/backend/base.rb#119
284
284
  def subtrees?; end
285
285
 
286
- # source://i18n//lib/i18n/backend/base.rb#279
286
+ # source://i18n//lib/i18n/backend/base.rb#281
287
287
  def translate_localization_format(locale, object, format, options); end
288
288
  end
289
289
 
@@ -603,15 +603,15 @@ end
603
603
 
604
604
  # source://i18n//lib/i18n/backend/interpolation_compiler.rb#20
605
605
  module I18n::Backend::InterpolationCompiler
606
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#99
606
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#97
607
607
  def interpolate(locale, string, values); end
608
608
 
609
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#109
609
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#107
610
610
  def store_translations(locale, data, options = T.unsafe(nil)); end
611
611
 
612
612
  protected
613
613
 
614
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#115
614
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#113
615
615
  def compile_all_strings_in(data); end
616
616
  end
617
617
 
@@ -619,58 +619,55 @@ end
619
619
  module I18n::Backend::InterpolationCompiler::Compiler
620
620
  extend ::I18n::Backend::InterpolationCompiler::Compiler
621
621
 
622
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#27
622
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#26
623
623
  def compile_if_an_interpolation(string); end
624
624
 
625
625
  # @return [Boolean]
626
626
  #
627
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#39
627
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#38
628
628
  def interpolated_str?(str); end
629
629
 
630
630
  protected
631
631
 
632
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#60
632
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#58
633
633
  def compile_interpolation_token(key); end
634
634
 
635
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#49
635
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#48
636
636
  def compiled_interpolation_body(str); end
637
637
 
638
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#73
638
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#71
639
639
  def direct_key(key); end
640
640
 
641
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#93
641
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#91
642
642
  def escape_key_sym(key); end
643
643
 
644
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#89
644
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#87
645
645
  def escape_plain_str(str); end
646
646
 
647
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#55
648
- def handle_interpolation_token(interpolation, matchdata); end
647
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#54
648
+ def handle_interpolation_token(token); end
649
649
 
650
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#69
650
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#67
651
651
  def interpolate_key(key); end
652
652
 
653
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#64
653
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#62
654
654
  def interpolate_or_raise_missing(key); end
655
655
 
656
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#81
656
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#79
657
657
  def missing_key(key); end
658
658
 
659
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#77
659
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#75
660
660
  def nil_key(key); end
661
661
 
662
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#85
662
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#83
663
663
  def reserved_key(key); end
664
664
 
665
665
  # tokenize("foo %{bar} baz %%{buz}") # => ["foo ", "%{bar}", " baz ", "%%{buz}"]
666
666
  #
667
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#45
667
+ # source://i18n//lib/i18n/backend/interpolation_compiler.rb#44
668
668
  def tokenize(str); end
669
669
  end
670
670
 
671
- # source://i18n//lib/i18n/backend/interpolation_compiler.rb#25
672
- I18n::Backend::InterpolationCompiler::Compiler::INTERPOLATION_SYNTAX_PATTERN = T.let(T.unsafe(nil), Regexp)
673
-
674
671
  # source://i18n//lib/i18n/backend/interpolation_compiler.rb#24
675
672
  I18n::Backend::InterpolationCompiler::Compiler::TOKENIZER = T.let(T.unsafe(nil), Regexp)
676
673
 
@@ -2011,12 +2008,20 @@ class I18n::Locale::Fallbacks < ::Hash
2011
2008
  # source://i18n//lib/i18n/locale/fallbacks.rb#55
2012
2009
  def defaults=(defaults); end
2013
2010
 
2011
+ # @return [Boolean]
2012
+ #
2013
+ # source://i18n//lib/i18n/locale/fallbacks.rb#82
2014
+ def empty?; end
2015
+
2016
+ # source://i18n//lib/i18n/locale/fallbacks.rb#86
2017
+ def inspect; end
2018
+
2014
2019
  # source://i18n//lib/i18n/locale/fallbacks.rb#67
2015
2020
  def map(*args, &block); end
2016
2021
 
2017
2022
  protected
2018
2023
 
2019
- # source://i18n//lib/i18n/locale/fallbacks.rb#84
2024
+ # source://i18n//lib/i18n/locale/fallbacks.rb#92
2020
2025
  def compute(tags, include_defaults = T.unsafe(nil), exclude = T.unsafe(nil)); end
2021
2026
  end
2022
2027
 
@@ -0,0 +1,127 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `kramdown-parser-gfm` gem.
5
+ # Please instead update this file by running `bin/tapioca gem kramdown-parser-gfm`.
6
+
7
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm/options.rb#10
8
+ module Kramdown
9
+ class << self
10
+ # source://kramdown/2.4.0/lib/kramdown/document.rb#49
11
+ def data_dir; end
12
+ end
13
+ end
14
+
15
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm/options.rb#11
16
+ module Kramdown::Options
17
+ class << self
18
+ # source://kramdown/2.4.0/lib/kramdown/options.rb#72
19
+ def defaults; end
20
+
21
+ # source://kramdown/2.4.0/lib/kramdown/options.rb#51
22
+ def define(name, type, default, desc, &block); end
23
+
24
+ # source://kramdown/2.4.0/lib/kramdown/options.rb#67
25
+ def defined?(name); end
26
+
27
+ # source://kramdown/2.4.0/lib/kramdown/options.rb#62
28
+ def definitions; end
29
+
30
+ # source://kramdown/2.4.0/lib/kramdown/options.rb#82
31
+ def merge(hash); end
32
+
33
+ # source://kramdown/2.4.0/lib/kramdown/options.rb#96
34
+ def parse(name, data); end
35
+
36
+ # source://kramdown/2.4.0/lib/kramdown/options.rb#141
37
+ def simple_array_validator(val, name, size = T.unsafe(nil)); end
38
+
39
+ # source://kramdown/2.4.0/lib/kramdown/options.rb#158
40
+ def simple_hash_validator(val, name); end
41
+
42
+ # source://kramdown/2.4.0/lib/kramdown/options.rb#122
43
+ def str_to_sym(data); end
44
+ end
45
+ end
46
+
47
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#16
48
+ module Kramdown::Parser; end
49
+
50
+ # This class provides a parser implementation for the GFM dialect of Markdown.
51
+ #
52
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#19
53
+ class Kramdown::Parser::GFM < ::Kramdown::Parser::Kramdown
54
+ # @return [GFM] a new instance of GFM
55
+ #
56
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#25
57
+ def initialize(source, options); end
58
+
59
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#108
60
+ def generate_gfm_header_id(text); end
61
+
62
+ # Returns the value of attribute paragraph_end.
63
+ #
64
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#23
65
+ def paragraph_end; end
66
+
67
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#55
68
+ def parse; end
69
+
70
+ # Copied from kramdown/parser/kramdown/header.rb, removed the first line
71
+ #
72
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#125
73
+ def parse_atx_header_gfm_quirk; end
74
+
75
+ # To handle task-lists we override the parse method for lists, converting matching text into
76
+ # checkbox input elements where necessary (as well as applying classes to the ul/ol and li
77
+ # elements).
78
+ #
79
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#163
80
+ def parse_list; end
81
+
82
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#142
83
+ def parse_strikethrough_gfm; end
84
+
85
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#60
86
+ def update_elements(element); end
87
+
88
+ # Update the raw text for automatic ID generation.
89
+ #
90
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#77
91
+ def update_raw_text(item); end
92
+
93
+ private
94
+
95
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#200
96
+ def update_text_type(element, child); end
97
+ end
98
+
99
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#120
100
+ Kramdown::Parser::GFM::ATX_HEADER_START = T.let(T.unsafe(nil), Regexp)
101
+
102
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#190
103
+ Kramdown::Parser::GFM::ESCAPED_CHARS_GFM = T.let(T.unsafe(nil), Regexp)
104
+
105
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#135
106
+ Kramdown::Parser::GFM::FENCED_CODEBLOCK_MATCH = T.let(T.unsafe(nil), Regexp)
107
+
108
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#134
109
+ Kramdown::Parser::GFM::FENCED_CODEBLOCK_START = T.let(T.unsafe(nil), Regexp)
110
+
111
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#158
112
+ Kramdown::Parser::GFM::LIST_TYPES = T.let(T.unsafe(nil), Array)
113
+
114
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#106
115
+ Kramdown::Parser::GFM::NON_WORD_RE = T.let(T.unsafe(nil), Regexp)
116
+
117
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#193
118
+ Kramdown::Parser::GFM::PARAGRAPH_END_GFM = T.let(T.unsafe(nil), Regexp)
119
+
120
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#138
121
+ Kramdown::Parser::GFM::STRIKETHROUGH_DELIM = T.let(T.unsafe(nil), Regexp)
122
+
123
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#139
124
+ Kramdown::Parser::GFM::STRIKETHROUGH_MATCH = T.let(T.unsafe(nil), Regexp)
125
+
126
+ # source://kramdown-parser-gfm//lib/kramdown/parser/gfm.rb#21
127
+ Kramdown::Parser::GFM::VERSION = T.let(T.unsafe(nil), String)