jsonschema_rs 0.50.0-x86_64-linux → 0.50.1-x86_64-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: aa79853143644753b7aecaf3ab2012304f5ca0698e302722fef3b544a1bbd836
4
- data.tar.gz: 84bab5852e47637fe1ac0ba14320a08e48a65437c01019c95fd5a2db6b3dc22d
3
+ metadata.gz: 8861dd2c485eedf55d3c3b575974db005331c22f6f1e5ede8df8b21142ee2459
4
+ data.tar.gz: d0b281b6789291a0ef25d97616c5cbbae6b28c68ad12ffe5393cb0e3be594053
5
5
  SHA512:
6
- metadata.gz: 42c47b6c69ed6742d7a23d5ef1e45df119c195ff70aa2f3ebd97ec4e448d006a88374ad66d57701bdf5ce16710de1cd5572bb603772bdfe451bc9525c9c9c8f6
7
- data.tar.gz: fd9a061e686208d66ff65dd6b6c0848ef0d5499121ddc14f81730933e0dd545ac24717628e4e3af6504fe09bc309902eb4e824e9279098f8b15ceb78c9bd5dfe
6
+ metadata.gz: a0d67e487dd63731879bd4d3186541d782fbc79f6425e371e7af0dc757c4070c11462c46f7e4626232493e65ede4168b7749381e7974b7534a0e92db4e975501
7
+ data.tar.gz: 493bbe557a6981c4dbab51695c11f87052e92537f8fcd260123b4f62cd47c60633ab33d397a2b0ded34dffba1ae8072589a29f2d7d5b32522e0a6880a2c61e09
data/CHANGELOG.md CHANGED
@@ -2,6 +2,26 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.50.1] - 2026-08-22
6
+
7
+ ### Changed
8
+
9
+ - `CanonicalSchema#satisfiability` answers `:yes` for a string whose `pattern` or `format` a matching value can be built from.
10
+ - `CanonicalSchema#satisfiability` answers `:no` where a `format` takes no string of the length the schema asks for.
11
+
12
+ ### Fixed
13
+
14
+ - `CanonicalSchema#negate` taking apart a union that reads a definition through its own `if`, so a schema and its negation shared a value.
15
+ - `CanonicalSchema#subtract` dropping a Draft 4 array member an element demand partly takes.
16
+ - `CanonicalSchema#covers` answering `Yes` where a Draft 4 element demand refuses a member.
17
+ - A string schema whose `maxLength` is `0` keeping a `pattern`, `format`, or content facet unread, so the same constraints written in one object and written as an `allOf` reached different canonical forms.
18
+
19
+ ### Performance
20
+
21
+ - `not` over a wide object schema costs its branch count instead of its square.
22
+ - `not` over an object schema is linear in its property count, not quadratic.
23
+ - `not` over an object schema with `additionalProperties: false` no longer costs cubic time in its property count.
24
+
5
25
  ## [0.50.0] - 2026-08-20
6
26
 
7
27
  ### Added
@@ -422,7 +442,8 @@
422
442
 
423
443
  - Initial public release
424
444
 
425
- [Unreleased]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.50.0...HEAD
445
+ [Unreleased]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.50.1...HEAD
446
+ [0.50.1]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.50.0...ruby-v0.50.1
426
447
  [0.50.0]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.49.9...ruby-v0.50.0
427
448
  [0.49.9]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.49.8...ruby-v0.49.9
428
449
  [0.49.8]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.49.7...ruby-v0.49.8
data/README.md CHANGED
@@ -365,6 +365,8 @@ Compare a request schema new-against-old and a response schema old-against-new:
365
365
 
366
366
  `:no` on the difference proves nothing was lost. `:unknown` proves nothing either way.
367
367
 
368
+ `:unknown` is undecided, not negative, so the two questions have opposite safe tests: only `satisfiability == :no` proves a schema admits nothing, and only `covers == :yes` proves containment.
369
+
368
370
  `JSONSchema::Canonical::Containment`, `Satisfiability`, `Distinctness` and `Kind` hold these symbols as constants, each with an `ALL` list.
369
371
 
370
372
  Both operands must share one setup - the same draft, format policy, regular-expression engine and definitions - or `IncompatibleOperands` is raised. `UnsupportedOperand` means an operand is a `Raw` pass-through, and `UnsupportedResult` that the canonical form does not support the result. All three live under `JSONSchema::Canonical`.
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.50.0"
4
+ VERSION = "0.50.1"
5
5
  end
data/sig/jsonschema.rbs CHANGED
@@ -23,10 +23,12 @@ module JSONSchema
23
23
  # What an array requires of its elements: all distinct, some repeated, or neither.
24
24
  type distinctness = :unconstrained | :all_distinct | :some_repeated
25
25
 
26
- # Whether one schema admits every value another does.
26
+ # Whether one schema admits every value another does. Only `:yes` proves containment: test
27
+ # for `:yes`, and treat `:unknown` like `:no`.
27
28
  type containment = :yes | :no | :unknown
28
29
 
29
- # Whether any value satisfies a schema.
30
+ # Whether any value satisfies a schema. Only `:no` proves it admits nothing: test for `:no`,
31
+ # and treat `:unknown` like `:yes`.
30
32
  type satisfiability = :yes | :no | :unknown
31
33
 
32
34
  type view = TrueView | FalseView | MultiTypeView | TypedGroupView | StringView
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.50.0
4
+ version: 0.50.1
5
5
  platform: x86_64-linux
6
6
  authors:
7
7
  - Dmitry Dygalo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-20 00:00:00.000000000 Z
11
+ date: 2026-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bigdecimal