lunchmoney 1.4.1 → 1.5.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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build_and_publish_yard_docs.yml +2 -2
  3. data/.github/workflows/ci.yml +9 -10
  4. data/.github/workflows/rbi-updater.yml +1 -1
  5. data/.github/workflows/release_pipeline.yml +1 -1
  6. data/.rubocop.yml +1 -1
  7. data/.ruby-version +1 -1
  8. data/.toys/.toys.rb +8 -0
  9. data/Gemfile +1 -1
  10. data/Gemfile.lock +76 -60
  11. data/README.md +0 -2
  12. data/SECURITY.md +151 -0
  13. data/bin/check_vcr_version +94 -0
  14. data/lib/lunchmoney/api.rb +25 -38
  15. data/lib/lunchmoney/calls/assets.rb +10 -13
  16. data/lib/lunchmoney/calls/base.rb +59 -7
  17. data/lib/lunchmoney/calls/budgets.rb +22 -25
  18. data/lib/lunchmoney/calls/categories.rb +28 -36
  19. data/lib/lunchmoney/calls/crypto.rb +7 -9
  20. data/lib/lunchmoney/calls/plaid_accounts.rb +7 -9
  21. data/lib/lunchmoney/calls/recurring_expenses.rb +4 -5
  22. data/lib/lunchmoney/calls/tags.rb +3 -4
  23. data/lib/lunchmoney/calls/transactions.rb +28 -36
  24. data/lib/lunchmoney/calls/users.rb +3 -4
  25. data/lib/lunchmoney/configuration.rb +20 -0
  26. data/lib/lunchmoney/objects/object.rb +4 -9
  27. data/lib/lunchmoney/validators.rb +8 -6
  28. data/lib/lunchmoney/version.rb +1 -1
  29. data/lib/lunchmoney.rb +3 -3
  30. data/lunchmoney.gemspec +1 -1
  31. data/sorbet/rbi/annotations/activesupport.rbi +35 -0
  32. data/sorbet/rbi/dsl/active_support/callbacks.rbi +0 -2
  33. data/sorbet/rbi/gems/{activesupport@7.2.2.1.rbi → activesupport@8.0.2.1.rbi} +1369 -989
  34. data/sorbet/rbi/gems/{ast@2.4.2.rbi → ast@2.4.3.rbi} +4 -3
  35. data/sorbet/rbi/gems/{base64@0.2.0.rbi → base64@0.3.0.rbi} +76 -39
  36. data/sorbet/rbi/gems/{benchmark@0.4.0.rbi → benchmark@0.4.1.rbi} +50 -49
  37. data/sorbet/rbi/gems/bigdecimal@3.2.2.rbi +275 -0
  38. data/sorbet/rbi/gems/{dotenv@3.1.7.rbi → dotenv@3.1.8.rbi} +9 -9
  39. data/sorbet/rbi/gems/{drb@2.2.1.rbi → drb@2.2.3.rbi} +503 -188
  40. data/sorbet/rbi/gems/{faraday-net_http@3.4.0.rbi → faraday-net_http@3.4.1.rbi} +23 -23
  41. data/sorbet/rbi/gems/{faraday@2.12.2.rbi → faraday@2.13.4.rbi} +468 -141
  42. data/sorbet/rbi/gems/{hashdiff@1.1.2.rbi → hashdiff@1.2.0.rbi} +5 -3
  43. data/sorbet/rbi/gems/{json@2.10.2.rbi → json@2.13.2.rbi} +386 -175
  44. data/sorbet/rbi/gems/{kramdown@2.4.0.rbi → kramdown@2.5.1.rbi} +316 -234
  45. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +240 -0
  46. data/sorbet/rbi/gems/{logger@1.6.6.rbi → logger@1.7.0.rbi} +63 -40
  47. data/sorbet/rbi/gems/{parser@3.3.7.1.rbi → parser@3.3.9.0.rbi} +303 -291
  48. data/sorbet/rbi/gems/{rack@3.1.9.rbi → rack@3.2.1.rbi} +712 -547
  49. data/sorbet/rbi/gems/{rake@13.2.1.rbi → rake@13.3.0.rbi} +238 -227
  50. data/sorbet/rbi/gems/{rbi@0.3.1.rbi → rbi@0.3.6.rbi} +1084 -2521
  51. data/sorbet/rbi/gems/{rbs@3.9.0.rbi → rbs@4.0.0.dev.4.rbi} +1336 -419
  52. data/sorbet/rbi/gems/{regexp_parser@2.10.0.rbi → regexp_parser@2.11.2.rbi} +1044 -956
  53. data/sorbet/rbi/gems/require-hooks@0.2.2.rbi +110 -0
  54. data/sorbet/rbi/gems/{rexml@3.4.1.rbi → rexml@3.4.2.rbi} +302 -292
  55. data/sorbet/rbi/gems/{rubocop-ast@1.38.0.rbi → rubocop-ast@1.46.0.rbi} +802 -1016
  56. data/sorbet/rbi/gems/{rubocop-minitest@0.36.0.rbi → rubocop-minitest@0.38.2.rbi} +129 -93
  57. data/sorbet/rbi/gems/{rubocop-rails@2.29.1.rbi → rubocop-rails@2.33.3.rbi} +575 -230
  58. data/sorbet/rbi/gems/{rubocop-shopify@2.15.1.rbi → rubocop-shopify@2.17.1.rbi} +1 -0
  59. data/sorbet/rbi/gems/{rubocop-sorbet@0.8.7.rbi → rubocop-sorbet@0.10.5.rbi} +761 -83
  60. data/sorbet/rbi/gems/{rubocop@1.71.2.rbi → rubocop@1.80.1.rbi} +6543 -3097
  61. data/sorbet/rbi/gems/{spoom@1.6.1.rbi → spoom@1.7.6.rbi} +1179 -2621
  62. data/sorbet/rbi/gems/{tapioca@0.16.11.rbi → tapioca@0.17.7.rbi} +623 -745
  63. data/sorbet/rbi/gems/{thor@1.3.2.rbi → thor@1.4.0.rbi} +88 -67
  64. data/sorbet/rbi/gems/{unicode-display_width@3.1.4.rbi → unicode-display_width@3.1.5.rbi} +5 -5
  65. data/sorbet/rbi/gems/{vcr@6.3.1.rbi → vcr@6.3.1-ce35c236fe48899f02ddf780973b44cdb756c0ee.rbi} +140 -123
  66. metadata +42 -38
  67. data/sorbet/rbi/gems/bigdecimal@3.1.9.rbi +0 -78
  68. /data/sorbet/rbi/gems/{connection_pool@2.5.0.rbi → connection_pool@2.5.3.rbi} +0 -0
  69. /data/sorbet/rbi/gems/{language_server-protocol@3.17.0.4.rbi → language_server-protocol@3.17.0.5.rbi} +0 -0
  70. /data/sorbet/rbi/gems/{parallel@1.26.3.rbi → parallel@1.27.0.rbi} +0 -0
@@ -4,6 +4,7 @@
4
4
  # This is an autogenerated file for types exported from the `ast` gem.
5
5
  # Please instead update this file by running `bin/tapioca gem ast`.
6
6
 
7
+
7
8
  # {AST} is a library for manipulating abstract syntax trees.
8
9
  #
9
10
  # It embraces immutability; each AST node is inherently frozen at
@@ -159,7 +160,7 @@ class AST::Node
159
160
 
160
161
  # Returns the precomputed hash value for this node
161
162
  #
162
- # @return [Fixnum]
163
+ # @return [Integer]
163
164
  #
164
165
  # source://ast//lib/ast/node.rb#61
165
166
  def hash; end
@@ -556,8 +557,8 @@ end
556
557
  # to define deeply nested ASTs from Ruby code, for example, in
557
558
  # tests. It should be used like this:
558
559
  #
559
- # describe YourLanguage::AST do
560
- # include Sexp
560
+ # describe YourLanguage do
561
+ # include ::AST::Sexp
561
562
  #
562
563
  # it "should correctly parse expressions" do
563
564
  # YourLanguage.parse("1 + 2 * 3").should ==
@@ -4,9 +4,10 @@
4
4
  # This is an autogenerated file for types exported from the `base64` gem.
5
5
  # Please instead update this file by running `bin/tapioca gem base64`.
6
6
 
7
+
7
8
  # \Module \Base64 provides methods for:
8
9
  #
9
- # - Encoding a binary string (containing non-ASCII characters)
10
+ # - \Encoding a binary string (containing non-ASCII characters)
10
11
  # as a string of printable ASCII characters.
11
12
  # - Decoding such an encoded string.
12
13
  #
@@ -31,7 +32,7 @@
31
32
  #
32
33
  # require 'base64'
33
34
  #
34
- # == Encoding Character Sets
35
+ # == \Encoding Character Sets
35
36
  #
36
37
  # A \Base64-encoded string consists only of characters from a 64-character set:
37
38
  #
@@ -144,7 +145,7 @@
144
145
  # Base64.strict_decode64("MDEyMzQ1Njc=") # => "01234567"
145
146
  # Base64.strict_decode64("MDEyMzQ1Njc==") # Raises ArgumentError
146
147
  #
147
- # \Method Base64.urlsafe_decode64 allows padding in +str+,
148
+ # \Method Base64.urlsafe_decode64 allows padding in the encoded string,
148
149
  # which if present, must be correct:
149
150
  # see {Padding}[Base64.html#module-Base64-label-Padding], above:
150
151
  #
@@ -189,28 +190,34 @@
189
190
  module Base64
190
191
  private
191
192
 
193
+ # :call-seq:
194
+ # Base64.decode(encoded_string) -> decoded_string
195
+ #
192
196
  # Returns a string containing the decoding of an RFC-2045-compliant
193
- # \Base64-encoded string +str+:
197
+ # \Base64-encoded string +encoded_string+:
194
198
  #
195
199
  # s = "VGhpcyBpcyBsaW5lIDEKVGhpcyBpcyBsaW5lIDIK\n"
196
200
  # Base64.decode64(s) # => "This is line 1\nThis is line 2\n"
197
201
  #
198
- # Non-\Base64 characters in +str+ are ignored;
202
+ # Non-\Base64 characters in +encoded_string+ are ignored;
199
203
  # see {Encoding Character Set}[Base64.html#module-Base64-label-Encoding+Character+Sets] above:
200
204
  # these include newline characters and characters <tt>-</tt> and <tt>/</tt>:
201
205
  #
202
206
  # Base64.decode64("\x00\n-_") # => ""
203
207
  #
204
- # Padding in +str+ (even if incorrect) is ignored:
208
+ # Padding in +encoded_string+ (even if incorrect) is ignored:
205
209
  #
206
210
  # Base64.decode64("MDEyMzQ1Njc") # => "01234567"
207
211
  # Base64.decode64("MDEyMzQ1Njc=") # => "01234567"
208
212
  # Base64.decode64("MDEyMzQ1Njc==") # => "01234567"
209
213
  #
210
- # source://base64//lib/base64.rb#241
214
+ # source://base64//lib/base64.rb#247
211
215
  def decode64(str); end
212
216
 
213
- # Returns a string containing the RFC-2045-compliant \Base64-encoding of +bin+.
217
+ # :call-seq:
218
+ # Base64.encode64(string) -> encoded_string
219
+ #
220
+ # Returns a string containing the RFC-2045-compliant \Base64-encoding of +string+.
214
221
  #
215
222
  # Per RFC 2045, the returned string may contain the URL-unsafe characters
216
223
  # <tt>+</tt> or <tt>/</tt>;
@@ -239,16 +246,19 @@ module Base64
239
246
  # s = "This is line 1\nThis is line 2\n"
240
247
  # Base64.encode64(s) # => "VGhpcyBpcyBsaW5lIDEKVGhpcyBpcyBsaW5lIDIK\n"
241
248
  #
242
- # source://base64//lib/base64.rb#219
249
+ # source://base64//lib/base64.rb#222
243
250
  def encode64(bin); end
244
251
 
252
+ # :call-seq:
253
+ # Base64.strict_decode64(encoded_string) -> decoded_string
254
+ #
245
255
  # Returns a string containing the decoding of an RFC-2045-compliant
246
- # \Base64-encoded string +str+:
256
+ # \Base64-encoded string +encoded_string+:
247
257
  #
248
258
  # s = "VGhpcyBpcyBsaW5lIDEKVGhpcyBpcyBsaW5lIDIK"
249
259
  # Base64.strict_decode64(s) # => "This is line 1\nThis is line 2\n"
250
260
  #
251
- # Non-\Base64 characters in +str+ not allowed;
261
+ # Non-\Base64 characters in +encoded_string+ are not allowed;
252
262
  # see {Encoding Character Set}[Base64.html#module-Base64-label-Encoding+Character+Sets] above:
253
263
  # these include newline characters and characters <tt>-</tt> and <tt>/</tt>:
254
264
  #
@@ -256,16 +266,19 @@ module Base64
256
266
  # Base64.strict_decode64('-') # Raises ArgumentError
257
267
  # Base64.strict_decode64('_') # Raises ArgumentError
258
268
  #
259
- # Padding in +str+, if present, must be correct:
269
+ # Padding in +encoded_string+, if present, must be correct:
260
270
  #
261
271
  # Base64.strict_decode64("MDEyMzQ1Njc") # Raises ArgumentError
262
272
  # Base64.strict_decode64("MDEyMzQ1Njc=") # => "01234567"
263
273
  # Base64.strict_decode64("MDEyMzQ1Njc==") # Raises ArgumentError
264
274
  #
265
- # source://base64//lib/base64.rb#297
275
+ # source://base64//lib/base64.rb#309
266
276
  def strict_decode64(str); end
267
277
 
268
- # Returns a string containing the RFC-2045-compliant \Base64-encoding of +bin+.
278
+ # :call-seq:
279
+ # Base64.strict_encode64(string) -> encoded_string
280
+ #
281
+ # Returns a string containing the RFC-2045-compliant \Base64-encoding of +string+.
269
282
  #
270
283
  # Per RFC 2045, the returned string may contain the URL-unsafe characters
271
284
  # <tt>+</tt> or <tt>/</tt>;
@@ -293,29 +306,35 @@ module Base64
293
306
  # s = "This is line 1\nThis is line 2\n"
294
307
  # Base64.strict_encode64(s) # => "VGhpcyBpcyBsaW5lIDEKVGhpcyBpcyBsaW5lIDIK"
295
308
  #
296
- # source://base64//lib/base64.rb#273
309
+ # source://base64//lib/base64.rb#282
297
310
  def strict_encode64(bin); end
298
311
 
299
- # Returns the decoding of an RFC-4648-compliant \Base64-encoded string +str+:
312
+ # :call-seq:
313
+ # Base64.urlsafe_decode64(encoded_string) -> decoded_string
314
+ #
315
+ # Returns the decoding of an RFC-4648-compliant \Base64-encoded string +encoded_string+:
300
316
  #
301
- # +str+ may not contain non-Base64 characters;
317
+ # +encoded_string+ may not contain non-Base64 characters;
302
318
  # see {Encoding Character Set}[Base64.html#module-Base64-label-Encoding+Character+Sets] above:
303
319
  #
304
320
  # Base64.urlsafe_decode64('+') # Raises ArgumentError.
305
321
  # Base64.urlsafe_decode64('/') # Raises ArgumentError.
306
322
  # Base64.urlsafe_decode64("\n") # Raises ArgumentError.
307
323
  #
308
- # Padding in +str+, if present, must be correct:
324
+ # Padding in +encoded_string+, if present, must be correct:
309
325
  # see {Padding}[Base64.html#module-Base64-label-Padding], above:
310
326
  #
311
327
  # Base64.urlsafe_decode64("MDEyMzQ1Njc") # => "01234567"
312
328
  # Base64.urlsafe_decode64("MDEyMzQ1Njc=") # => "01234567"
313
329
  # Base64.urlsafe_decode64("MDEyMzQ1Njc==") # Raises ArgumentError.
314
330
  #
315
- # source://base64//lib/base64.rb#351
331
+ # source://base64//lib/base64.rb#369
316
332
  def urlsafe_decode64(str); end
317
333
 
318
- # Returns the RFC-4648-compliant \Base64-encoding of +bin+.
334
+ # :call-seq:
335
+ # Base64.urlsafe_encode64(string) -> encoded_string
336
+ #
337
+ # Returns the RFC-4648-compliant \Base64-encoding of +string+.
319
338
  #
320
339
  # Per RFC 4648, the returned string will not contain the URL-unsafe characters
321
340
  # <tt>+</tt> or <tt>/</tt>,
@@ -342,32 +361,38 @@ module Base64
342
361
  # Base64.urlsafe_encode64('*' * 46)
343
362
  # # => "KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg=="
344
363
  #
345
- # source://base64//lib/base64.rb#328
364
+ # source://base64//lib/base64.rb#343
346
365
  def urlsafe_encode64(bin, padding: T.unsafe(nil)); end
347
366
 
348
367
  class << self
368
+ # :call-seq:
369
+ # Base64.decode(encoded_string) -> decoded_string
370
+ #
349
371
  # Returns a string containing the decoding of an RFC-2045-compliant
350
- # \Base64-encoded string +str+:
372
+ # \Base64-encoded string +encoded_string+:
351
373
  #
352
374
  # s = "VGhpcyBpcyBsaW5lIDEKVGhpcyBpcyBsaW5lIDIK\n"
353
375
  # Base64.decode64(s) # => "This is line 1\nThis is line 2\n"
354
376
  #
355
- # Non-\Base64 characters in +str+ are ignored;
377
+ # Non-\Base64 characters in +encoded_string+ are ignored;
356
378
  # see {Encoding Character Set}[Base64.html#module-Base64-label-Encoding+Character+Sets] above:
357
379
  # these include newline characters and characters <tt>-</tt> and <tt>/</tt>:
358
380
  #
359
381
  # Base64.decode64("\x00\n-_") # => ""
360
382
  #
361
- # Padding in +str+ (even if incorrect) is ignored:
383
+ # Padding in +encoded_string+ (even if incorrect) is ignored:
362
384
  #
363
385
  # Base64.decode64("MDEyMzQ1Njc") # => "01234567"
364
386
  # Base64.decode64("MDEyMzQ1Njc=") # => "01234567"
365
387
  # Base64.decode64("MDEyMzQ1Njc==") # => "01234567"
366
388
  #
367
- # source://base64//lib/base64.rb#241
389
+ # source://base64//lib/base64.rb#247
368
390
  def decode64(str); end
369
391
 
370
- # Returns a string containing the RFC-2045-compliant \Base64-encoding of +bin+.
392
+ # :call-seq:
393
+ # Base64.encode64(string) -> encoded_string
394
+ #
395
+ # Returns a string containing the RFC-2045-compliant \Base64-encoding of +string+.
371
396
  #
372
397
  # Per RFC 2045, the returned string may contain the URL-unsafe characters
373
398
  # <tt>+</tt> or <tt>/</tt>;
@@ -396,16 +421,19 @@ module Base64
396
421
  # s = "This is line 1\nThis is line 2\n"
397
422
  # Base64.encode64(s) # => "VGhpcyBpcyBsaW5lIDEKVGhpcyBpcyBsaW5lIDIK\n"
398
423
  #
399
- # source://base64//lib/base64.rb#219
424
+ # source://base64//lib/base64.rb#222
400
425
  def encode64(bin); end
401
426
 
427
+ # :call-seq:
428
+ # Base64.strict_decode64(encoded_string) -> decoded_string
429
+ #
402
430
  # Returns a string containing the decoding of an RFC-2045-compliant
403
- # \Base64-encoded string +str+:
431
+ # \Base64-encoded string +encoded_string+:
404
432
  #
405
433
  # s = "VGhpcyBpcyBsaW5lIDEKVGhpcyBpcyBsaW5lIDIK"
406
434
  # Base64.strict_decode64(s) # => "This is line 1\nThis is line 2\n"
407
435
  #
408
- # Non-\Base64 characters in +str+ not allowed;
436
+ # Non-\Base64 characters in +encoded_string+ are not allowed;
409
437
  # see {Encoding Character Set}[Base64.html#module-Base64-label-Encoding+Character+Sets] above:
410
438
  # these include newline characters and characters <tt>-</tt> and <tt>/</tt>:
411
439
  #
@@ -413,16 +441,19 @@ module Base64
413
441
  # Base64.strict_decode64('-') # Raises ArgumentError
414
442
  # Base64.strict_decode64('_') # Raises ArgumentError
415
443
  #
416
- # Padding in +str+, if present, must be correct:
444
+ # Padding in +encoded_string+, if present, must be correct:
417
445
  #
418
446
  # Base64.strict_decode64("MDEyMzQ1Njc") # Raises ArgumentError
419
447
  # Base64.strict_decode64("MDEyMzQ1Njc=") # => "01234567"
420
448
  # Base64.strict_decode64("MDEyMzQ1Njc==") # Raises ArgumentError
421
449
  #
422
- # source://base64//lib/base64.rb#297
450
+ # source://base64//lib/base64.rb#309
423
451
  def strict_decode64(str); end
424
452
 
425
- # Returns a string containing the RFC-2045-compliant \Base64-encoding of +bin+.
453
+ # :call-seq:
454
+ # Base64.strict_encode64(string) -> encoded_string
455
+ #
456
+ # Returns a string containing the RFC-2045-compliant \Base64-encoding of +string+.
426
457
  #
427
458
  # Per RFC 2045, the returned string may contain the URL-unsafe characters
428
459
  # <tt>+</tt> or <tt>/</tt>;
@@ -450,29 +481,35 @@ module Base64
450
481
  # s = "This is line 1\nThis is line 2\n"
451
482
  # Base64.strict_encode64(s) # => "VGhpcyBpcyBsaW5lIDEKVGhpcyBpcyBsaW5lIDIK"
452
483
  #
453
- # source://base64//lib/base64.rb#273
484
+ # source://base64//lib/base64.rb#282
454
485
  def strict_encode64(bin); end
455
486
 
456
- # Returns the decoding of an RFC-4648-compliant \Base64-encoded string +str+:
487
+ # :call-seq:
488
+ # Base64.urlsafe_decode64(encoded_string) -> decoded_string
489
+ #
490
+ # Returns the decoding of an RFC-4648-compliant \Base64-encoded string +encoded_string+:
457
491
  #
458
- # +str+ may not contain non-Base64 characters;
492
+ # +encoded_string+ may not contain non-Base64 characters;
459
493
  # see {Encoding Character Set}[Base64.html#module-Base64-label-Encoding+Character+Sets] above:
460
494
  #
461
495
  # Base64.urlsafe_decode64('+') # Raises ArgumentError.
462
496
  # Base64.urlsafe_decode64('/') # Raises ArgumentError.
463
497
  # Base64.urlsafe_decode64("\n") # Raises ArgumentError.
464
498
  #
465
- # Padding in +str+, if present, must be correct:
499
+ # Padding in +encoded_string+, if present, must be correct:
466
500
  # see {Padding}[Base64.html#module-Base64-label-Padding], above:
467
501
  #
468
502
  # Base64.urlsafe_decode64("MDEyMzQ1Njc") # => "01234567"
469
503
  # Base64.urlsafe_decode64("MDEyMzQ1Njc=") # => "01234567"
470
504
  # Base64.urlsafe_decode64("MDEyMzQ1Njc==") # Raises ArgumentError.
471
505
  #
472
- # source://base64//lib/base64.rb#351
506
+ # source://base64//lib/base64.rb#369
473
507
  def urlsafe_decode64(str); end
474
508
 
475
- # Returns the RFC-4648-compliant \Base64-encoding of +bin+.
509
+ # :call-seq:
510
+ # Base64.urlsafe_encode64(string) -> encoded_string
511
+ #
512
+ # Returns the RFC-4648-compliant \Base64-encoding of +string+.
476
513
  #
477
514
  # Per RFC 4648, the returned string will not contain the URL-unsafe characters
478
515
  # <tt>+</tt> or <tt>/</tt>,
@@ -499,7 +536,7 @@ module Base64
499
536
  # Base64.urlsafe_encode64('*' * 46)
500
537
  # # => "KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg=="
501
538
  #
502
- # source://base64//lib/base64.rb#328
539
+ # source://base64//lib/base64.rb#343
503
540
  def urlsafe_encode64(bin, padding: T.unsafe(nil)); end
504
541
  end
505
542
  end