omniauth-identity 3.1.5 → 3.2.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.
@@ -41,80 +41,82 @@ module OmniAuth
41
41
  #
42
42
  # @param base [Class] the model class including this module
43
43
  # @return [void]
44
- def self.included(base)
45
- base.class_eval do
46
- # NOTE: Using the deprecated :validations_class_methods because it defines
47
- # validates_confirmation_of, while current :validation_helpers does not.
48
- # plugin :validation_helpers
49
- plugin(:validation_class_methods)
44
+ class << self
45
+ def included(base)
46
+ base.class_eval do
47
+ # NOTE: Using the deprecated :validations_class_methods because it defines
48
+ # validates_confirmation_of, while current :validation_helpers does not.
49
+ # plugin :validation_helpers
50
+ plugin(:validation_class_methods)
50
51
 
51
- include(::OmniAuth::Identity::Model)
52
- include(::OmniAuth::Identity::SecurePassword)
52
+ include(::OmniAuth::Identity::Model)
53
+ include(::OmniAuth::Identity::SecurePassword)
53
54
 
54
- # `validations: true` (default) would normally incur a dependency on ActiveModel.
55
- # Starting in v3.1 we check if ActiveModel is defined before we actually set validations.
56
- # If ActiveModel isn't defined, it may be unexpected that validations are not being set,
57
- # so this will result in a warning deprecation until release of v4,
58
- # at which point the default (for Sequel ORM only) will change to `validations: false`
59
- has_secure_password(validations: OmniAuth::Identity::Version.major < 4)
55
+ # `validations: true` (default) would normally incur a dependency on ActiveModel.
56
+ # Starting in v3.1 we check if ActiveModel is defined before we actually set validations.
57
+ # If ActiveModel isn't defined, it may be unexpected that validations are not being set,
58
+ # so this will result in a warning deprecation until release of v4,
59
+ # at which point the default (for Sequel ORM only) will change to `validations: false`
60
+ has_secure_password(validations: OmniAuth::Identity::Version.major < 4)
60
61
 
61
- class << self
62
- # @!method self.auth_key=(key)
63
- # Sets the authentication key for the model and adds uniqueness validation.
62
+ class << self
63
+ # @!method self.auth_key=(key)
64
+ # Sets the authentication key for the model and adds uniqueness validation.
65
+ #
66
+ # @param key [Symbol, String] the attribute to use as the authentication key
67
+ # @return [void]
68
+ # @example
69
+ # class User < Sequel::Model(:users)
70
+ # include OmniAuth::Identity::Models::Sequel
71
+ # self.auth_key = :email
72
+ # end
73
+ def auth_key=(key)
74
+ super
75
+ # Sequel version of validates_uniqueness_of! Does not incur ActiveRecord dependency!
76
+ validates_uniqueness_of(:key, case_sensitive: false)
77
+ end
78
+
79
+ # @!method self.locate(arguments)
80
+ # Finds a record by the given search criteria.
81
+ #
82
+ # Filtering is probably the most common dataset modifying action done in Sequel.
83
+ # Both the where and filter methods filter the dataset by modifying the dataset's WHERE clause.
84
+ # Both accept a wide variety of input formats.
85
+ # See: https://sequel.jeremyevans.net/rdoc/files/doc/querying_rdoc.html#label-Filters
86
+ #
87
+ # @param arguments [any] the search criteria
88
+ # @return [Sequel::Model, nil] the first matching record or nil
89
+ # @example
90
+ # User.locate(email: 'user@example.com')
91
+ def locate(arguments)
92
+ where(arguments).first
93
+ end
94
+ end
95
+
96
+ # @!method persisted?
97
+ # Checks if the record exists in the database.
64
98
  #
65
- # @param key [Symbol, String] the attribute to use as the authentication key
66
- # @return [void]
99
+ # @return [Boolean] true if the record exists, false otherwise
67
100
  # @example
68
- # class User < Sequel::Model(:users)
69
- # include OmniAuth::Identity::Models::Sequel
70
- # self.auth_key = :email
71
- # end
72
- def auth_key=(key)
73
- super
74
- # Sequel version of validates_uniqueness_of! Does not incur ActiveRecord dependency!
75
- validates_uniqueness_of(:key, case_sensitive: false)
101
+ # user = User.new
102
+ # user.persisted? # => false
103
+ # user.save
104
+ # user.persisted? # => true
105
+ def persisted?
106
+ exists?
76
107
  end
77
108
 
78
- # @!method self.locate(arguments)
79
- # Finds a record by the given search criteria.
80
- #
81
- # Filtering is probably the most common dataset modifying action done in Sequel.
82
- # Both the where and filter methods filter the dataset by modifying the dataset's WHERE clause.
83
- # Both accept a wide variety of input formats.
84
- # See: https://sequel.jeremyevans.net/rdoc/files/doc/querying_rdoc.html#label-Filters
109
+ # @!method save
110
+ # Saves the record to the database.
85
111
  #
86
- # @param arguments [any] the search criteria
87
- # @return [Sequel::Model, nil] the first matching record or nil
112
+ # @return [Boolean] true if saved successfully, false otherwise
88
113
  # @example
89
- # User.locate(email: 'user@example.com')
90
- def locate(arguments)
91
- where(arguments).first
114
+ # user = User.new(email: 'user@example.com', password: 'password')
115
+ # user.save # => true
116
+ def save
117
+ super
92
118
  end
93
119
  end
94
-
95
- # @!method persisted?
96
- # Checks if the record exists in the database.
97
- #
98
- # @return [Boolean] true if the record exists, false otherwise
99
- # @example
100
- # user = User.new
101
- # user.persisted? # => false
102
- # user.save
103
- # user.persisted? # => true
104
- def persisted?
105
- exists?
106
- end
107
-
108
- # @!method save
109
- # Saves the record to the database.
110
- #
111
- # @return [Boolean] true if saved successfully, false otherwise
112
- # @example
113
- # user = User.new(email: 'user@example.com', password: 'password')
114
- # user.save # => true
115
- def save
116
- super
117
- end
118
120
  end
119
121
  end
120
122
  end
@@ -22,16 +22,6 @@ module OmniAuth
22
22
  # user = User.new(password: 'secret')
23
23
  # user.authenticate('secret') # => user
24
24
  module SecurePassword
25
- # Called when this module is included in a model class.
26
- #
27
- # Extends the base class with ClassMethods unless it already responds to has_secure_password.
28
- #
29
- # @param base [Class] the model class including this module
30
- # @return [void]
31
- def self.included(base)
32
- base.extend(ClassMethods) unless base.respond_to?(:has_secure_password)
33
- end
34
-
35
25
  # @!attribute [r] MAX_PASSWORD_LENGTH_ALLOWED
36
26
  # BCrypt hash function can handle maximum 72 bytes, and if we pass
37
27
  # password of length more than 72 bytes it ignores extra characters.
@@ -39,13 +29,25 @@ module OmniAuth
39
29
  # @return [Integer] The maximum allowed password length in bytes.
40
30
  MAX_PASSWORD_LENGTH_ALLOWED = BCrypt::Engine::MAX_SECRET_BYTESIZE
41
31
 
32
+ MIN_COST_MUTEX = Mutex.new
33
+ private_constant :MIN_COST_MUTEX
34
+
42
35
  class << self
36
+ def included(base)
37
+ base.extend(ClassMethods) unless base.respond_to?(:has_secure_password)
38
+ end
39
+
43
40
  # @!attribute [rw] min_cost
44
41
  # Controls whether to use minimum cost for BCrypt hashing (for testing).
45
42
  # @return [true, false]
46
- attr_accessor :min_cost # :nodoc:
43
+ def min_cost # :nodoc:
44
+ MIN_COST_MUTEX.synchronize { @min_cost.nil? ? false : @min_cost }
45
+ end
46
+
47
+ def min_cost=(value) # :nodoc:
48
+ MIN_COST_MUTEX.synchronize { @min_cost = value }
49
+ end
47
50
  end
48
- self.min_cost = false
49
51
 
50
52
  # Class-level methods for secure password functionality.
51
53
  module ClassMethods
@@ -1,13 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Contains version information for the OmniAuth Identity gem.
4
- module OmniAuth
3
+ module Omniauth
5
4
  module Identity
6
5
  module Version
7
- # @!attribute [r] VERSION
8
- # The current version of the omniauth-identity gem.
9
- # @return [String]
10
- VERSION = "3.1.5"
6
+ VERSION = "3.2.0"
11
7
  end
8
+ VERSION = Version::VERSION # Traditional Constant Location
9
+ end
10
+ end
11
+
12
+ module OmniAuth
13
+ module Identity
14
+ Version = Omniauth::Identity::Version unless const_defined?(:Version, false)
15
+ VERSION = Version::VERSION unless const_defined?(:VERSION, false)
12
16
  end
13
17
  end
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # TODO[v4]: Remove this deprecation with v4 release.
4
+ require "version_gem"
5
+
4
6
  unless defined?(OmniAuth::Identity::Version::VERSION)
5
7
  # external gems
6
8
  require "version_gem"
@@ -65,3 +67,12 @@ module OmniAuth
65
67
  end
66
68
  end
67
69
  end
70
+ require_relative "identity/version"
71
+
72
+ OmniAuth::Identity::Version.class_eval do
73
+ extend VersionGem::Basic
74
+ end
75
+
76
+ Omniauth::Identity::Version.class_eval do
77
+ extend VersionGem::Basic
78
+ end
@@ -0,0 +1,8 @@
1
+ module Omniauth
2
+ module Identity
3
+ module Version
4
+ VERSION: String
5
+ end
6
+ VERSION: String
7
+ end
8
+ end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,12 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-identity
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.5
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
- - Peter Boling
8
- - Andrew Roberts
9
- - Michael Bleigh
7
+ - "|7eter l-|. l3oling"
10
8
  bindir: exe
11
9
  cert_chain:
12
10
  - |
@@ -39,6 +37,26 @@ cert_chain:
39
37
  -----END CERTIFICATE-----
40
38
  date: 1980-01-02 00:00:00.000000000 Z
41
39
  dependencies:
40
+ - !ruby/object:Gem::Dependency
41
+ name: auth-sanitizer
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0.2'
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 0.2.0
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '0.2'
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 0.2.0
42
60
  - !ruby/object:Gem::Dependency
43
61
  name: bcrypt
44
62
  requirement: !ruby/object:Gem::Requirement
@@ -107,28 +125,34 @@ dependencies:
107
125
  requirements:
108
126
  - - "~>"
109
127
  - !ruby/object:Gem::Version
110
- version: '1.1'
128
+ version: '2.0'
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 2.0.8
111
132
  type: :development
112
133
  prerelease: false
113
134
  version_requirements: !ruby/object:Gem::Requirement
114
135
  requirements:
115
136
  - - "~>"
116
137
  - !ruby/object:Gem::Version
117
- version: '1.1'
138
+ version: '2.0'
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: 2.0.8
118
142
  - !ruby/object:Gem::Dependency
119
143
  name: bundler-audit
120
144
  requirement: !ruby/object:Gem::Requirement
121
145
  requirements:
122
146
  - - "~>"
123
147
  - !ruby/object:Gem::Version
124
- version: 0.9.2
148
+ version: 0.9.3
125
149
  type: :development
126
150
  prerelease: false
127
151
  version_requirements: !ruby/object:Gem::Requirement
128
152
  requirements:
129
153
  - - "~>"
130
154
  - !ruby/object:Gem::Version
131
- version: 0.9.2
155
+ version: 0.9.3
132
156
  - !ruby/object:Gem::Dependency
133
157
  name: rake
134
158
  requirement: !ruby/object:Gem::Requirement
@@ -164,117 +188,135 @@ dependencies:
164
188
  - !ruby/object:Gem::Version
165
189
  version: 1.0.4
166
190
  - !ruby/object:Gem::Dependency
167
- name: activerecord
191
+ name: appraisal2
168
192
  requirement: !ruby/object:Gem::Requirement
169
193
  requirements:
194
+ - - "~>"
195
+ - !ruby/object:Gem::Version
196
+ version: '3.0'
170
197
  - - ">="
171
198
  - !ruby/object:Gem::Version
172
- version: '5'
199
+ version: 3.0.7
173
200
  type: :development
174
201
  prerelease: false
175
202
  version_requirements: !ruby/object:Gem::Requirement
176
203
  requirements:
204
+ - - "~>"
205
+ - !ruby/object:Gem::Version
206
+ version: '3.0'
177
207
  - - ">="
178
208
  - !ruby/object:Gem::Version
179
- version: '5'
209
+ version: 3.0.7
180
210
  - !ruby/object:Gem::Dependency
181
- name: anonymous_active_record
211
+ name: kettle-test
182
212
  requirement: !ruby/object:Gem::Requirement
183
213
  requirements:
184
214
  - - "~>"
185
215
  - !ruby/object:Gem::Version
186
- version: '1.0'
216
+ version: '2.0'
187
217
  - - ">="
188
218
  - !ruby/object:Gem::Version
189
- version: 1.0.9
219
+ version: 2.0.3
190
220
  type: :development
191
221
  prerelease: false
192
222
  version_requirements: !ruby/object:Gem::Requirement
193
223
  requirements:
194
224
  - - "~>"
195
225
  - !ruby/object:Gem::Version
196
- version: '1.0'
226
+ version: '2.0'
197
227
  - - ">="
198
228
  - !ruby/object:Gem::Version
199
- version: 1.0.9
229
+ version: 2.0.3
200
230
  - !ruby/object:Gem::Dependency
201
- name: appraisal2
231
+ name: turbo_tests2
202
232
  requirement: !ruby/object:Gem::Requirement
203
233
  requirements:
204
234
  - - "~>"
205
235
  - !ruby/object:Gem::Version
206
- version: '3.0'
236
+ version: '3.1'
237
+ - - ">="
238
+ - !ruby/object:Gem::Version
239
+ version: 3.1.1
207
240
  type: :development
208
241
  prerelease: false
209
242
  version_requirements: !ruby/object:Gem::Requirement
210
243
  requirements:
211
244
  - - "~>"
212
245
  - !ruby/object:Gem::Version
213
- version: '3.0'
246
+ version: '3.1'
247
+ - - ">="
248
+ - !ruby/object:Gem::Version
249
+ version: 3.1.1
214
250
  - !ruby/object:Gem::Dependency
215
- name: kettle-test
251
+ name: ruby-progressbar
216
252
  requirement: !ruby/object:Gem::Requirement
217
253
  requirements:
218
254
  - - "~>"
219
255
  - !ruby/object:Gem::Version
220
- version: '1.0'
256
+ version: '1.13'
221
257
  type: :development
222
258
  prerelease: false
223
259
  version_requirements: !ruby/object:Gem::Requirement
224
260
  requirements:
225
261
  - - "~>"
226
262
  - !ruby/object:Gem::Version
227
- version: '1.0'
263
+ version: '1.13'
228
264
  - !ruby/object:Gem::Dependency
229
- name: rack-test
265
+ name: stone_checksums
230
266
  requirement: !ruby/object:Gem::Requirement
231
267
  requirements:
232
268
  - - "~>"
233
269
  - !ruby/object:Gem::Version
234
- version: '1'
270
+ version: '1.0'
271
+ - - ">="
272
+ - !ruby/object:Gem::Version
273
+ version: 1.0.3
235
274
  type: :development
236
275
  prerelease: false
237
276
  version_requirements: !ruby/object:Gem::Requirement
238
277
  requirements:
239
278
  - - "~>"
240
279
  - !ruby/object:Gem::Version
241
- version: '1'
280
+ version: '1.0'
281
+ - - ">="
282
+ - !ruby/object:Gem::Version
283
+ version: 1.0.3
242
284
  - !ruby/object:Gem::Dependency
243
- name: rspec-pending_for
285
+ name: gitmoji-regex
244
286
  requirement: !ruby/object:Gem::Requirement
245
287
  requirements:
246
288
  - - "~>"
247
289
  - !ruby/object:Gem::Version
248
- version: '0.0'
290
+ version: '2.0'
249
291
  - - ">="
250
292
  - !ruby/object:Gem::Version
251
- version: 0.0.17
293
+ version: 2.0.1
252
294
  type: :development
253
295
  prerelease: false
254
296
  version_requirements: !ruby/object:Gem::Requirement
255
297
  requirements:
256
298
  - - "~>"
257
299
  - !ruby/object:Gem::Version
258
- version: '0.0'
300
+ version: '2.0'
259
301
  - - ">="
260
302
  - !ruby/object:Gem::Version
261
- version: 0.0.17
303
+ version: 2.0.1
262
304
  - !ruby/object:Gem::Dependency
263
- name: ruby-progressbar
305
+ name: activerecord
264
306
  requirement: !ruby/object:Gem::Requirement
265
307
  requirements:
266
- - - "~>"
308
+ - - ">="
267
309
  - !ruby/object:Gem::Version
268
- version: '1.13'
310
+ version: '5'
269
311
  type: :development
270
312
  prerelease: false
271
313
  version_requirements: !ruby/object:Gem::Requirement
272
314
  requirements:
273
- - - "~>"
315
+ - - ">="
274
316
  - !ruby/object:Gem::Version
275
- version: '1.13'
317
+ version: '5'
276
318
  - !ruby/object:Gem::Dependency
277
- name: stone_checksums
319
+ name: anonymous_active_record
278
320
  requirement: !ruby/object:Gem::Requirement
279
321
  requirements:
280
322
  - - "~>"
@@ -282,7 +324,7 @@ dependencies:
282
324
  version: '1.0'
283
325
  - - ">="
284
326
  - !ruby/object:Gem::Version
285
- version: 1.0.2
327
+ version: 1.0.9
286
328
  type: :development
287
329
  prerelease: false
288
330
  version_requirements: !ruby/object:Gem::Requirement
@@ -292,47 +334,41 @@ dependencies:
292
334
  version: '1.0'
293
335
  - - ">="
294
336
  - !ruby/object:Gem::Version
295
- version: 1.0.2
337
+ version: 1.0.9
296
338
  - !ruby/object:Gem::Dependency
297
- name: gitmoji-regex
339
+ name: rack-test
298
340
  requirement: !ruby/object:Gem::Requirement
299
341
  requirements:
300
342
  - - "~>"
301
343
  - !ruby/object:Gem::Version
302
- version: '1.0'
303
- - - ">="
304
- - !ruby/object:Gem::Version
305
- version: 1.0.3
344
+ version: '1'
306
345
  type: :development
307
346
  prerelease: false
308
347
  version_requirements: !ruby/object:Gem::Requirement
309
348
  requirements:
310
349
  - - "~>"
311
350
  - !ruby/object:Gem::Version
312
- version: '1.0'
313
- - - ">="
314
- - !ruby/object:Gem::Version
315
- version: 1.0.3
351
+ version: '1'
316
352
  - !ruby/object:Gem::Dependency
317
- name: backports
353
+ name: rspec-pending_for
318
354
  requirement: !ruby/object:Gem::Requirement
319
355
  requirements:
320
356
  - - "~>"
321
357
  - !ruby/object:Gem::Version
322
- version: '3.25'
358
+ version: '0.0'
323
359
  - - ">="
324
360
  - !ruby/object:Gem::Version
325
- version: 3.25.1
361
+ version: 0.0.17
326
362
  type: :development
327
363
  prerelease: false
328
364
  version_requirements: !ruby/object:Gem::Requirement
329
365
  requirements:
330
366
  - - "~>"
331
367
  - !ruby/object:Gem::Version
332
- version: '3.25'
368
+ version: '0.0'
333
369
  - - ">="
334
370
  - !ruby/object:Gem::Version
335
- version: 3.25.1
371
+ version: 0.0.17
336
372
  description: "\U0001FAF5 Traditional username/password based authentication system
337
373
  for OmniAuth"
338
374
  email:
@@ -345,9 +381,8 @@ extra_rdoc_files:
345
381
  - CODE_OF_CONDUCT.md
346
382
  - CONTRIBUTING.md
347
383
  - FUNDING.md
348
- - LICENSE.txt
384
+ - LICENSE.md
349
385
  - README.md
350
- - REEK
351
386
  - RUBOCOP.md
352
387
  - SECURITY.md
353
388
  files:
@@ -356,11 +391,11 @@ files:
356
391
  - CODE_OF_CONDUCT.md
357
392
  - CONTRIBUTING.md
358
393
  - FUNDING.md
359
- - LICENSE.txt
394
+ - LICENSE.md
360
395
  - README.md
361
- - REEK
362
396
  - RUBOCOP.md
363
397
  - SECURITY.md
398
+ - certs/pboling.pem
364
399
  - lib/omniauth-identity.rb
365
400
  - lib/omniauth/identity.rb
366
401
  - lib/omniauth/identity/model.rb
@@ -373,15 +408,16 @@ files:
373
408
  - lib/omniauth/identity/secure_password.rb
374
409
  - lib/omniauth/identity/version.rb
375
410
  - lib/omniauth/strategies/identity.rb
411
+ - sig/omniauth/identity/version.rbs
376
412
  homepage: https://github.com/omniauth/omniauth-identity
377
413
  licenses:
378
414
  - MIT
379
415
  metadata:
380
- homepage_uri: https://omniauth-identity.galtzo.com/
381
- source_code_uri: https://github.com/omniauth/omniauth-identity/tree/v3.1.5
382
- changelog_uri: https://github.com/omniauth/omniauth-identity/blob/v3.1.5/CHANGELOG.md
416
+ homepage_uri: https://omniauth-identity.galtzo.com
417
+ source_code_uri: https://github.com/omniauth/omniauth-identity/tree/v3.2.0
418
+ changelog_uri: https://github.com/omniauth/omniauth-identity/blob/v3.2.0/CHANGELOG.md
383
419
  bug_tracker_uri: https://github.com/omniauth/omniauth-identity/issues
384
- documentation_uri: https://www.rubydoc.info/gems/omniauth-identity/3.1.5
420
+ documentation_uri: https://www.rubydoc.info/gems/omniauth-identity/3.2.0
385
421
  funding_uri: https://github.com/sponsors/pboling
386
422
  wiki_uri: https://github.com/omniauth/omniauth-identity/wiki
387
423
  news_uri: https://www.railsbling.com/tags/omniauth-identity
@@ -411,7 +447,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
411
447
  - !ruby/object:Gem::Version
412
448
  version: '0'
413
449
  requirements: []
414
- rubygems_version: 3.7.2
450
+ rubygems_version: 4.0.10
415
451
  specification_version: 4
416
452
  summary: "\U0001FAF5 Traditional username/password based authentication system for
417
453
  OmniAuth"
metadata.gz.sig CHANGED
Binary file
data/LICENSE.txt DELETED
@@ -1,24 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2021, 2024-2025 Peter H. Boling, and omniauth-identity contributors
4
- Copyright (c) 2020 Peter H. Boling, Andrew Roberts, and Jellybooks Ltd.
5
- Copyright (c) 2010-2015 Michael Bleigh, and Intridea, Inc.
6
-
7
- Permission is hereby granted, free of charge, to any person obtaining
8
- a copy of this software and associated documentation files (the
9
- "Software"), to deal in the Software without restriction, including
10
- without limitation the rights to use, copy, modify, merge, publish,
11
- distribute, sublicense, and/or sell copies of the Software, and to
12
- permit persons to whom the Software is furnished to do so, subject to
13
- the following conditions:
14
-
15
- The above copyright notice and this permission notice shall be
16
- included in all copies or substantial portions of the Software.
17
-
18
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/REEK DELETED
File without changes