jsonschema_rs 0.49.3-aarch64-linux → 0.49.5-aarch64-linux

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 796c242552855def82fe580ddaed469ed1508ba95eda4a23e1ea9edca8e09c96
4
- data.tar.gz: ad4e6ac809720c63cb559c0ec510895a333ee624a34d9ce6343b404a86326d56
3
+ metadata.gz: 4769283677c6dd78d9fee5a261b092dc3c1988f0b5c3719294a6d35b47b8f3e7
4
+ data.tar.gz: 5f722cec6c6a475dc6e30db09e64c9c226bfa51858204ddd04177f1d64c91713
5
5
  SHA512:
6
- metadata.gz: adf3ea5c89f305349c4165a941b81dca11df5ef4ee46e8e84e141b743ca1683a2b165ea78fbf3270b297df7ea2f7c0ff5eb5899be99992aebd026a231e22323b
7
- data.tar.gz: 9ce46a4892e3472a370e2b39cfa6c22d9250395fb153b8c8280c9aafbdae3dfd5c4eba717793dd357f508807c72ac01ae2e0e73039532ce84dcaf0b2cbbaae63
6
+ metadata.gz: 4084ff4aaf896f59841e10c18967244a4d77342a5bc44e88f68ae0f579c7affc2ef2d136d6c2233f894a9d0162a977880c1492ec744662734063dadaecc26da6
7
+ data.tar.gz: 5c5ea50c3291595e8e8b80e0214b6bd2e780e1aaa8b5404593550c5cbfa3462b08af998d2f97e9f0a1be17b7772e4c1ab0aa6be87ca8b5e95ac053646bd4342e
data/CHANGELOG.md CHANGED
@@ -2,6 +2,48 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.49.5] - 2026-08-05
6
+
7
+ ### Added
8
+
9
+ - Canonicalization of `not` an integer schema under Draft 4, which the number leaf carries as barred integers.
10
+ - Canonicalization of `not` a `multipleOf`, which numeric leaves carry as barred divisors.
11
+ - Canonicalization of `not` an integer schema, where a barred divisor of one spells the non-integer numbers.
12
+ - Canonicalization of `not` a `pattern`, which string leaves carry as barred patterns.
13
+ - Canonicalization of `not` a typed value set under Draft 4, such as `{"type": "integer", "enum": [1, 2]}`.
14
+ - `CanonicalSchema#is_subset_of`, whether the other schema admits every value this one admits.
15
+ - Canonicalization of a reference cycle carrying no assertion, which admits every value.
16
+
17
+ ### Fixed
18
+
19
+ - `CanonicalSchema#is_subset_of` failing to prove a union of array branches a subset of itself.
20
+ - Two spellings of one number canonicalizing to different texts when the fraction exceeds the expansion cap.
21
+ - Numeric bounds and `multipleOf` comparing values through a lossy `f64` conversion, such as `1e-400` passing `{"maximum": 0}`.
22
+
23
+ ## [0.49.4] - 2026-08-04
24
+
25
+ ### Added
26
+
27
+ - Canonicalization of `not` a string format, which the string leaf carries as barred formats.
28
+ - Canonicalization of `not` an existential demand, which an array fails exactly when no element matches.
29
+ - Canonicalization of `not` a string value set, which the string leaf carries as excluded values.
30
+ - Canonicalization of `unevaluatedItems` beside `contains`, where the elements it matches are evaluated and the tail admits either.
31
+ - Canonicalization of `unevaluated*` beside `anyOf` or `oneOf`, where every branch evaluating the same keys or indexes pins what is left over.
32
+ - Canonicalization of `not` an array element schema, which an array fails exactly when one element violates it.
33
+ - `CanonicalSchema#intersect`, the values both schemas admit.
34
+ - `CanonicalSchema#negate`, the values a schema rejects.
35
+ - `CanonicalSchema#definition`, one reference target by URI.
36
+
37
+ ### Fixed
38
+
39
+ - An integer past `i64` admitted by a fractional bound `f64` rounds it onto, such as `-10000000000000000000000000` under `{"maximum": -10000000000000000000000000.1}`.
40
+ - An integer past `2^53` admitted by a bound `f64` rounds onto it, such as `9007199254740992` under `{"minimum": 9007199254740993}`.
41
+ - A `contains` subschema beside both `minContains` and `maxContains` overwriting a sibling keyword of the same name, such as `items`.
42
+
43
+ ### Performance
44
+
45
+ - `CanonicalSchema` hashing and equality cost the node instead of the whole document.
46
+
5
47
  ## [0.49.3] - 2026-08-02
6
48
 
7
49
  ### Added
@@ -262,7 +304,9 @@
262
304
 
263
305
  - Initial public release
264
306
 
265
- [Unreleased]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.49.3...HEAD
307
+ [Unreleased]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.49.5...HEAD
308
+ [0.49.5]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.49.4...ruby-v0.49.5
309
+ [0.49.4]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.49.3...ruby-v0.49.4
266
310
  [0.49.3]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.49.2...ruby-v0.49.3
267
311
  [0.49.2]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.49.1...ruby-v0.49.2
268
312
  [0.49.1]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.49.0...ruby-v0.49.1
Binary file
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JSONSchema
4
- VERSION = "0.49.3"
4
+ VERSION = "0.49.5"
5
5
  end
data/sig/jsonschema.rbs CHANGED
@@ -32,12 +32,22 @@ module JSONSchema
32
32
  class InvalidPattern < CanonicalizationError
33
33
  end
34
34
 
35
+ class IncompatibleOperands < CanonicalizationError
36
+ end
37
+
38
+ class UnmodeledOperand < CanonicalizationError
39
+ end
40
+
35
41
  # A schema reduced to canonical form: schemas accepting the same values share one form.
36
42
  class CanonicalSchema
37
43
  def to_json_schema: () -> untyped
38
44
  def draft: () -> JSONSchema::draft
39
45
  def kind: () -> kind
40
46
  def view: () -> view
47
+ def intersect: (CanonicalSchema other) -> CanonicalSchema
48
+ def is_subset_of: (CanonicalSchema other) -> bool?
49
+ def negate: () -> CanonicalSchema?
50
+ def definition: (String uri) -> CanonicalSchema?
41
51
  def definitions: () -> Hash[String, CanonicalSchema]
42
52
  def satisfiable?: () -> bool
43
53
  def inspect: () -> String
@@ -74,9 +84,12 @@ module JSONSchema
74
84
  def min_length: () -> Integer?
75
85
  def max_length: () -> Integer?
76
86
  def patterns: () -> Array[String]
87
+ def excluded_patterns: () -> Array[String]
77
88
  def formats: () -> Array[String]
89
+ def excluded_formats: () -> Array[String]
78
90
  def content_media_types: () -> Array[String]
79
91
  def content_encodings: () -> Array[String]
92
+ def excluded: () -> Array[String]
80
93
  def inspect: () -> String
81
94
  def deconstruct_keys: (untyped keys) -> Hash[Symbol, untyped]
82
95
  end
@@ -88,6 +101,8 @@ module JSONSchema
88
101
  def maximum: () -> (Integer | Float)?
89
102
  def exclusive_maximum: () -> bool
90
103
  def multiple_of: () -> Array[Integer | Float]
104
+ def not_multiple_of: () -> Array[Integer | Float]
105
+ def excludes_integers: () -> bool
91
106
  def inspect: () -> String
92
107
  def deconstruct_keys: (untyped keys) -> Hash[Symbol, untyped]
93
108
  end
@@ -97,6 +112,7 @@ module JSONSchema
97
112
  def minimum: () -> Integer?
98
113
  def maximum: () -> Integer?
99
114
  def multiple_of: () -> Array[Integer | Float]
115
+ def not_multiple_of: () -> Array[Integer | Float]
100
116
  def inspect: () -> String
101
117
  def deconstruct_keys: (untyped keys) -> Hash[Symbol, untyped]
102
118
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsonschema_rs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.49.3
4
+ version: 0.49.5
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Dmitry Dygalo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-02 00:00:00.000000000 Z
11
+ date: 2026-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bigdecimal