ruby-paseto 0.1.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 (116) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +8 -0
  3. data/CODE_OF_CONDUCT.md +84 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +549 -0
  6. data/lib/paseto/asn1/algorithm_identifier.rb +17 -0
  7. data/lib/paseto/asn1/curve_private_key.rb +22 -0
  8. data/lib/paseto/asn1/ec_private_key.rb +27 -0
  9. data/lib/paseto/asn1/ecdsa_full_r.rb +26 -0
  10. data/lib/paseto/asn1/ecdsa_sig_value.rb +23 -0
  11. data/lib/paseto/asn1/ecdsa_signature.rb +49 -0
  12. data/lib/paseto/asn1/ed25519_identifier.rb +15 -0
  13. data/lib/paseto/asn1/named_curve.rb +17 -0
  14. data/lib/paseto/asn1/one_asymmetric_key.rb +32 -0
  15. data/lib/paseto/asn1/private_key.rb +17 -0
  16. data/lib/paseto/asn1/private_key_algorithm_identifier.rb +17 -0
  17. data/lib/paseto/asn1/public_key.rb +17 -0
  18. data/lib/paseto/asn1/subject_public_key_info.rb +28 -0
  19. data/lib/paseto/asn1.rb +101 -0
  20. data/lib/paseto/asymmetric_key.rb +100 -0
  21. data/lib/paseto/configuration/box.rb +23 -0
  22. data/lib/paseto/configuration/decode_configuration.rb +68 -0
  23. data/lib/paseto/configuration.rb +18 -0
  24. data/lib/paseto/interface/i_d.rb +23 -0
  25. data/lib/paseto/interface/key.rb +113 -0
  26. data/lib/paseto/interface/pbkd.rb +83 -0
  27. data/lib/paseto/interface/pie.rb +59 -0
  28. data/lib/paseto/interface/pke.rb +86 -0
  29. data/lib/paseto/interface/serializer.rb +19 -0
  30. data/lib/paseto/interface/version.rb +161 -0
  31. data/lib/paseto/interface/wrapper.rb +20 -0
  32. data/lib/paseto/operations/i_d.rb +48 -0
  33. data/lib/paseto/operations/id/i_dv3.rb +20 -0
  34. data/lib/paseto/operations/id/i_dv4.rb +20 -0
  35. data/lib/paseto/operations/pbkd/p_b_k_dv3.rb +85 -0
  36. data/lib/paseto/operations/pbkd/p_b_k_dv4.rb +94 -0
  37. data/lib/paseto/operations/pbkw.rb +73 -0
  38. data/lib/paseto/operations/pke/p_k_ev3.rb +97 -0
  39. data/lib/paseto/operations/pke/p_k_ev4.rb +95 -0
  40. data/lib/paseto/operations/pke.rb +57 -0
  41. data/lib/paseto/operations/wrap.rb +29 -0
  42. data/lib/paseto/paserk.rb +55 -0
  43. data/lib/paseto/paserk_types.rb +46 -0
  44. data/lib/paseto/protocol/version3.rb +100 -0
  45. data/lib/paseto/protocol/version4.rb +99 -0
  46. data/lib/paseto/result.rb +9 -0
  47. data/lib/paseto/serializer/optional_json.rb +30 -0
  48. data/lib/paseto/serializer/raw.rb +23 -0
  49. data/lib/paseto/sodium/curve_25519.rb +46 -0
  50. data/lib/paseto/sodium/safe_ed25519_loader.rb +19 -0
  51. data/lib/paseto/sodium/stream/base.rb +82 -0
  52. data/lib/paseto/sodium/stream/x_cha_cha20_xor.rb +31 -0
  53. data/lib/paseto/sodium.rb +5 -0
  54. data/lib/paseto/symmetric_key.rb +119 -0
  55. data/lib/paseto/token.rb +127 -0
  56. data/lib/paseto/token_types.rb +29 -0
  57. data/lib/paseto/util.rb +105 -0
  58. data/lib/paseto/v3/local.rb +63 -0
  59. data/lib/paseto/v3/public.rb +204 -0
  60. data/lib/paseto/v4/local.rb +56 -0
  61. data/lib/paseto/v4/public.rb +169 -0
  62. data/lib/paseto/validator.rb +154 -0
  63. data/lib/paseto/verifiers/footer.rb +30 -0
  64. data/lib/paseto/verifiers/payload.rb +42 -0
  65. data/lib/paseto/verify.rb +48 -0
  66. data/lib/paseto/version.rb +6 -0
  67. data/lib/paseto/versions.rb +25 -0
  68. data/lib/paseto/wrappers/pie/pie_v3.rb +72 -0
  69. data/lib/paseto/wrappers/pie/pie_v4.rb +72 -0
  70. data/lib/paseto/wrappers/pie.rb +71 -0
  71. data/lib/paseto.rb +99 -0
  72. data/paseto.gemspec +58 -0
  73. data/sorbet/config +3 -0
  74. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  75. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  76. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1083 -0
  77. data/sorbet/rbi/gems/docile@1.4.0.rbi +376 -0
  78. data/sorbet/rbi/gems/ffi@1.15.5.rbi +1994 -0
  79. data/sorbet/rbi/gems/io-console@0.5.11.rbi +8 -0
  80. data/sorbet/rbi/gems/irb@1.5.1.rbi +342 -0
  81. data/sorbet/rbi/gems/json@2.6.3.rbi +1541 -0
  82. data/sorbet/rbi/gems/multi_json@1.15.0.rbi +267 -0
  83. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  84. data/sorbet/rbi/gems/oj@3.13.23.rbi +603 -0
  85. data/sorbet/rbi/gems/openssl@3.0.1.rbi +1735 -0
  86. data/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  87. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +407 -0
  88. data/sorbet/rbi/gems/rake@13.0.6.rbi +3021 -0
  89. data/sorbet/rbi/gems/rbnacl@7.1.1.rbi +3218 -0
  90. data/sorbet/rbi/gems/regexp_parser@2.6.1.rbi +3481 -0
  91. data/sorbet/rbi/gems/reline@0.3.1.rbi +8 -0
  92. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4717 -0
  93. data/sorbet/rbi/gems/rspec-core@3.12.0.rbi +10887 -0
  94. data/sorbet/rbi/gems/rspec-expectations@3.12.0.rbi +8090 -0
  95. data/sorbet/rbi/gems/rspec-mocks@3.12.0.rbi +5300 -0
  96. data/sorbet/rbi/gems/rspec-support@3.12.0.rbi +1617 -0
  97. data/sorbet/rbi/gems/rspec@3.12.0.rbi +88 -0
  98. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +1239 -0
  99. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +219 -0
  100. data/sorbet/rbi/gems/simplecov@0.21.2.rbi +2135 -0
  101. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +8 -0
  102. data/sorbet/rbi/gems/thor@1.2.1.rbi +3956 -0
  103. data/sorbet/rbi/gems/timecop@0.9.6.rbi +350 -0
  104. data/sorbet/rbi/gems/unicode-display_width@2.3.0.rbi +48 -0
  105. data/sorbet/rbi/gems/webrick@1.7.0.rbi +2555 -0
  106. data/sorbet/rbi/gems/yard-sorbet@0.7.0.rbi +391 -0
  107. data/sorbet/rbi/gems/yard@0.9.28.rbi +17816 -0
  108. data/sorbet/rbi/gems/zeitwerk@2.6.6.rbi +950 -0
  109. data/sorbet/rbi/shims/multi_json.rbi +19 -0
  110. data/sorbet/rbi/shims/openssl.rbi +111 -0
  111. data/sorbet/rbi/shims/rbnacl.rbi +65 -0
  112. data/sorbet/rbi/shims/zeitwerk.rbi +6 -0
  113. data/sorbet/rbi/todo.rbi +7 -0
  114. data/sorbet/tapioca/config.yml +30 -0
  115. data/sorbet/tapioca/require.rb +12 -0
  116. metadata +376 -0
@@ -0,0 +1,350 @@
1
+ # typed: false
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `timecop` gem.
5
+ # Please instead update this file by running `bin/tapioca gem timecop`.
6
+
7
+ # source://timecop//lib/timecop/time_extensions.rb#31
8
+ class Date
9
+ include ::Comparable
10
+
11
+ class << self
12
+ # source://timecop//lib/timecop/time_extensions.rb#104
13
+ def closest_wday(wday); end
14
+
15
+ # source://timecop//lib/timecop/time_extensions.rb#33
16
+ def mock_date; end
17
+
18
+ # source://timecop//lib/timecop/time_extensions.rb#100
19
+ def mocked_time_stack_item; end
20
+
21
+ # source://timecop//lib/timecop/time_extensions.rb#78
22
+ def parse(*args); end
23
+
24
+ # source://timecop//lib/timecop/time_extensions.rb#78
25
+ def parse_with_mock_date(*args); end
26
+
27
+ # source://timecop//lib/timecop/time_extensions.rb#47
28
+ def strptime(str = T.unsafe(nil), fmt = T.unsafe(nil), start = T.unsafe(nil)); end
29
+
30
+ # source://timecop//lib/timecop/time_extensions.rb#47
31
+ def strptime_with_mock_date(str = T.unsafe(nil), fmt = T.unsafe(nil), start = T.unsafe(nil)); end
32
+
33
+ # source://timecop//lib/timecop/time_extensions.rb#39
34
+ def today; end
35
+
36
+ # source://timecop//lib/timecop/time_extensions.rb#39
37
+ def today_with_mock_date; end
38
+ end
39
+ end
40
+
41
+ # source://date/3.2.2/date.rb#7
42
+ Date::VERSION = T.let(T.unsafe(nil), String)
43
+
44
+ # source://timecop//lib/timecop/time_extensions.rb#113
45
+ class DateTime < ::Date
46
+ class << self
47
+ # source://timecop//lib/timecop/time_extensions.rb#115
48
+ def mock_time; end
49
+
50
+ # source://timecop//lib/timecop/time_extensions.rb#150
51
+ def mocked_time_stack_item; end
52
+
53
+ # source://timecop//lib/timecop/time_extensions.rb#119
54
+ def now; end
55
+
56
+ # source://timecop//lib/timecop/time_extensions.rb#119
57
+ def now_with_mock_time; end
58
+
59
+ # source://timecop//lib/timecop/time_extensions.rb#127
60
+ def parse(*args); end
61
+
62
+ # source://timecop//lib/timecop/time_extensions.rb#127
63
+ def parse_with_mock_date(*args); end
64
+ end
65
+ end
66
+
67
+ # source://timecop//lib/timecop/time_extensions.rb#4
68
+ class Time
69
+ include ::Comparable
70
+
71
+ class << self
72
+ # source://timecop//lib/timecop/time_extensions.rb#6
73
+ def mock_time; end
74
+
75
+ # source://timecop//lib/timecop/time_extensions.rb#21
76
+ def new(*args, **_arg1); end
77
+
78
+ # source://timecop//lib/timecop/time_extensions.rb#21
79
+ def new_with_mock_time(*args, **_arg1); end
80
+
81
+ # source://timecop//lib/timecop/time_extensions.rb#13
82
+ def now; end
83
+
84
+ # source://timecop//lib/timecop/time_extensions.rb#13
85
+ def now_with_mock_time; end
86
+ end
87
+ end
88
+
89
+ # Timecop
90
+ # * Wrapper class for manipulating the extensions to the Time, Date, and DateTime objects
91
+ # * Allows us to "freeze" time in our Ruby applications.
92
+ # * Optionally allows time travel to simulate a running clock, such time is not technically frozen.
93
+ #
94
+ # This is very useful when your app's functionality is dependent on time (e.g.
95
+ # anything that might expire). This will allow us to alter the return value of
96
+ # Date.today, Time.now, and DateTime.now, such that our application code _never_ has to change.
97
+ #
98
+ # source://timecop//lib/timecop/time_stack_item.rb#1
99
+ class Timecop
100
+ include ::Singleton
101
+ extend ::Singleton::SingletonClassMethods
102
+
103
+ # @return [Timecop] a new instance of Timecop
104
+ #
105
+ # source://timecop//lib/timecop/timecop.rb#174
106
+ def initialize; end
107
+
108
+ # source://timecop//lib/timecop/timecop.rb#141
109
+ def baseline; end
110
+
111
+ # source://timecop//lib/timecop/timecop.rb#136
112
+ def baseline=(b); end
113
+
114
+ # source://timecop//lib/timecop/timecop.rb#209
115
+ def return(&block); end
116
+
117
+ # source://timecop//lib/timecop/timecop.rb#224
118
+ def return_to_baseline; end
119
+
120
+ # source://timecop//lib/timecop/timecop.rb#149
121
+ def set_baseline(b); end
122
+
123
+ # source://timecop//lib/timecop/timecop.rb#166
124
+ def set_stack(s); end
125
+
126
+ # source://timecop//lib/timecop/timecop.rb#157
127
+ def stack; end
128
+
129
+ # source://timecop//lib/timecop/timecop.rb#185
130
+ def thread_safe; end
131
+
132
+ # source://timecop//lib/timecop/timecop.rb#180
133
+ def thread_safe=(t); end
134
+
135
+ # @raise [SafeModeException]
136
+ #
137
+ # source://timecop//lib/timecop/timecop.rb#189
138
+ def travel(mock_type, *args, &block); end
139
+
140
+ # source://timecop//lib/timecop/timecop.rb#219
141
+ def unmock!; end
142
+
143
+ class << self
144
+ # source://timecop//lib/timecop/timecop.rb#78
145
+ def baseline; end
146
+
147
+ # source://timecop//lib/timecop/timecop.rb#82
148
+ def baseline=(baseline); end
149
+
150
+ # Allows you to run a block of code and "fake" a time throughout the execution of that block.
151
+ # This is particularly useful for writing test methods where the passage of time is critical to the business
152
+ # logic being tested. For example:
153
+ #
154
+ # joe = User.find(1)
155
+ # joe.purchase_home()
156
+ # assert !joe.mortgage_due?
157
+ # Timecop.freeze(2008, 10, 5) do
158
+ # assert joe.mortgage_due?
159
+ # end
160
+ #
161
+ # freeze and travel will respond to several different arguments:
162
+ # 1. Timecop.freeze(time_inst)
163
+ # 2. Timecop.freeze(datetime_inst)
164
+ # 3. Timecop.freeze(date_inst)
165
+ # 4. Timecop.freeze(offset_in_seconds)
166
+ # 5. Timecop.freeze(year, month, day, hour=0, minute=0, second=0)
167
+ # 6. Timecop.freeze() # Defaults to Time.now
168
+ #
169
+ # When a block is also passed, Time.now, DateTime.now and Date.today are all reset to their
170
+ # previous values after the block has finished executing. This allows us to nest multiple
171
+ # calls to Timecop.travel and have each block maintain it's concept of "now."
172
+ #
173
+ # * Note: Timecop.freeze will actually freeze time. This can cause unanticipated problems if
174
+ # benchmark or other timing calls are executed, which implicitly expect Time to actually move
175
+ # forward.
176
+ #
177
+ # * Rails Users: Be especially careful when setting this in your development environment in a
178
+ # rails project. Generators will load your environment, including the migration generator,
179
+ # which will lead to files being generated with the timestamp set by the Timecop.freeze call
180
+ # in your dev environment
181
+ #
182
+ # Returns the value of the block if one is given, or the mocked time.
183
+ #
184
+ # source://timecop//lib/timecop/timecop.rb#51
185
+ def freeze(*args, &block); end
186
+
187
+ # Returns whether or not Timecop is currently frozen/travelled
188
+ #
189
+ # @return [Boolean]
190
+ #
191
+ # source://timecop//lib/timecop/timecop.rb#125
192
+ def frozen?; end
193
+
194
+ # Reverts back to system's Time.now, Date.today and DateTime.now (if it exists) permamently when
195
+ # no block argument is given, or temporarily reverts back to the system's time temporarily for
196
+ # the given block.
197
+ #
198
+ # source://timecop//lib/timecop/timecop.rb#89
199
+ def return(&block); end
200
+
201
+ # source://timecop//lib/timecop/timecop.rb#99
202
+ def return_to_baseline; end
203
+
204
+ # source://timecop//lib/timecop/timecop.rb#108
205
+ def safe_mode=(safe); end
206
+
207
+ # @return [Boolean]
208
+ #
209
+ # source://timecop//lib/timecop/timecop.rb#112
210
+ def safe_mode?; end
211
+
212
+ # Allows you to run a block of code and "scale" a time throughout the execution of that block.
213
+ # The first argument is a scaling factor, for example:
214
+ # Timecop.scale(2) do
215
+ # ... time will 'go' twice as fast here
216
+ # end
217
+ # See Timecop#freeze for exact usage of the other arguments
218
+ #
219
+ # Returns the value of the block if one is given, or the mocked time.
220
+ #
221
+ # source://timecop//lib/timecop/timecop.rb#74
222
+ def scale(*args, &block); end
223
+
224
+ # source://timecop//lib/timecop/timecop.rb#120
225
+ def thread_safe; end
226
+
227
+ # source://timecop//lib/timecop/timecop.rb#116
228
+ def thread_safe=(t); end
229
+
230
+ # source://timecop//lib/timecop/timecop.rb#104
231
+ def top_stack_item; end
232
+
233
+ # Allows you to run a block of code and "fake" a time throughout the execution of that block.
234
+ # See Timecop#freeze for a sample of how to use (same exact usage syntax)
235
+ #
236
+ # * Note: Timecop.travel will not freeze time (as opposed to Timecop.freeze). This is a particularly
237
+ # good candidate for use in environment files in rails projects.
238
+ #
239
+ # Returns the value of the block if one is given, or the mocked time.
240
+ #
241
+ # source://timecop//lib/timecop/timecop.rb#62
242
+ def travel(*args, &block); end
243
+
244
+ # Reverts back to system's Time.now, Date.today and DateTime.now (if it exists) permamently when
245
+ # no block argument is given, or temporarily reverts back to the system's time temporarily for
246
+ # the given block.
247
+ #
248
+ # source://timecop//lib/timecop/timecop.rb#89
249
+ def unfreeze(&block); end
250
+
251
+ private
252
+
253
+ def allocate; end
254
+
255
+ # source://singleton/0.1.1/singleton.rb#123
256
+ def instance; end
257
+
258
+ def new(*_arg0); end
259
+
260
+ # source://timecop//lib/timecop/timecop.rb#130
261
+ def send_travel(mock_type, *args, &block); end
262
+ end
263
+ end
264
+
265
+ # source://timecop//lib/timecop/timecop.rb#232
266
+ class Timecop::SafeModeException < ::StandardError
267
+ # @return [SafeModeException] a new instance of SafeModeException
268
+ #
269
+ # source://timecop//lib/timecop/timecop.rb#233
270
+ def initialize; end
271
+ end
272
+
273
+ # A data class for carrying around "time movement" objects. Makes it easy to keep track of the time
274
+ # movements on a simple stack.
275
+ #
276
+ # source://timecop//lib/timecop/time_stack_item.rb#4
277
+ class Timecop::TimeStackItem
278
+ # @return [TimeStackItem] a new instance of TimeStackItem
279
+ #
280
+ # source://timecop//lib/timecop/time_stack_item.rb#7
281
+ def initialize(mock_type, *args); end
282
+
283
+ # source://timecop//lib/timecop/time_stack_item.rb#77
284
+ def date(date_klass = T.unsafe(nil)); end
285
+
286
+ # source://timecop//lib/timecop/time_stack_item.rb#81
287
+ def datetime(datetime_klass = T.unsafe(nil)); end
288
+
289
+ # source://timecop//lib/timecop/time_stack_item.rb#25
290
+ def day; end
291
+
292
+ # source://timecop//lib/timecop/time_stack_item.rb#29
293
+ def hour; end
294
+
295
+ # source://timecop//lib/timecop/time_stack_item.rb#33
296
+ def min; end
297
+
298
+ # source://timecop//lib/timecop/time_stack_item.rb#5
299
+ def mock_type; end
300
+
301
+ # source://timecop//lib/timecop/time_stack_item.rb#21
302
+ def month; end
303
+
304
+ # source://timecop//lib/timecop/time_stack_item.rb#73
305
+ def scaled_time; end
306
+
307
+ # source://timecop//lib/timecop/time_stack_item.rb#53
308
+ def scaling_factor; end
309
+
310
+ # source://timecop//lib/timecop/time_stack_item.rb#37
311
+ def sec; end
312
+
313
+ # source://timecop//lib/timecop/time_stack_item.rb#57
314
+ def time(time_klass = T.unsafe(nil)); end
315
+
316
+ # source://timecop//lib/timecop/time_stack_item.rb#45
317
+ def travel_offset; end
318
+
319
+ # source://timecop//lib/timecop/time_stack_item.rb#49
320
+ def travel_offset_days; end
321
+
322
+ # source://timecop//lib/timecop/time_stack_item.rb#41
323
+ def utc_offset; end
324
+
325
+ # source://timecop//lib/timecop/time_stack_item.rb#17
326
+ def year; end
327
+
328
+ private
329
+
330
+ # source://timecop//lib/timecop/time_stack_item.rb#128
331
+ def compute_travel_offset; end
332
+
333
+ # source://timecop//lib/timecop/time_stack_item.rb#100
334
+ def parse_time(*args); end
335
+
336
+ # source://timecop//lib/timecop/time_stack_item.rb#92
337
+ def rational_to_utc_offset(rational); end
338
+
339
+ # source://timecop//lib/timecop/time_stack_item.rb#136
340
+ def time_klass; end
341
+
342
+ # source://timecop//lib/timecop/time_stack_item.rb#132
343
+ def times_are_equal_within_epsilon(t1, t2, epsilon_in_seconds); end
344
+
345
+ # source://timecop//lib/timecop/time_stack_item.rb#96
346
+ def utc_offset_to_rational(utc_offset); end
347
+ end
348
+
349
+ # source://timecop//lib/timecop/version.rb#2
350
+ Timecop::VERSION = T.let(T.unsafe(nil), String)
@@ -0,0 +1,48 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `unicode-display_width` gem.
5
+ # Please instead update this file by running `bin/tapioca gem unicode-display_width`.
6
+
7
+ # source://unicode-display_width//lib/unicode/display_width/constants.rb#3
8
+ module Unicode; end
9
+
10
+ # source://unicode-display_width//lib/unicode/display_width/constants.rb#4
11
+ class Unicode::DisplayWidth
12
+ # @return [DisplayWidth] a new instance of DisplayWidth
13
+ #
14
+ # source://unicode-display_width//lib/unicode/display_width.rb#46
15
+ def initialize(ambiguous: T.unsafe(nil), overwrite: T.unsafe(nil), emoji: T.unsafe(nil)); end
16
+
17
+ # source://unicode-display_width//lib/unicode/display_width.rb#52
18
+ def get_config(**kwargs); end
19
+
20
+ # source://unicode-display_width//lib/unicode/display_width.rb#60
21
+ def of(string, **kwargs); end
22
+
23
+ class << self
24
+ # source://unicode-display_width//lib/unicode/display_width.rb#28
25
+ def emoji_extra_width_of(string, ambiguous = T.unsafe(nil), overwrite = T.unsafe(nil), _ = T.unsafe(nil)); end
26
+
27
+ # source://unicode-display_width//lib/unicode/display_width.rb#10
28
+ def of(string, ambiguous = T.unsafe(nil), overwrite = T.unsafe(nil), options = T.unsafe(nil)); end
29
+ end
30
+ end
31
+
32
+ # source://unicode-display_width//lib/unicode/display_width/constants.rb#7
33
+ Unicode::DisplayWidth::DATA_DIRECTORY = T.let(T.unsafe(nil), String)
34
+
35
+ # source://unicode-display_width//lib/unicode/display_width.rb#8
36
+ Unicode::DisplayWidth::DEPTHS = T.let(T.unsafe(nil), Array)
37
+
38
+ # source://unicode-display_width//lib/unicode/display_width/index.rb#11
39
+ Unicode::DisplayWidth::INDEX = T.let(T.unsafe(nil), Array)
40
+
41
+ # source://unicode-display_width//lib/unicode/display_width/constants.rb#8
42
+ Unicode::DisplayWidth::INDEX_FILENAME = T.let(T.unsafe(nil), String)
43
+
44
+ # source://unicode-display_width//lib/unicode/display_width/constants.rb#6
45
+ Unicode::DisplayWidth::UNICODE_VERSION = T.let(T.unsafe(nil), String)
46
+
47
+ # source://unicode-display_width//lib/unicode/display_width/constants.rb#5
48
+ Unicode::DisplayWidth::VERSION = T.let(T.unsafe(nil), String)