jsonschema_rs 0.53.0 → 0.54.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fed2ed63bd89b16e2aad0bfd950e18ce4382d696d4dcf370be1edbf1514da84c
4
- data.tar.gz: 7a091bde575c3c227cb0cdc007814df574cdb313161ce444acc2722137a37283
3
+ metadata.gz: 27bec9b13d70e7366f6d93d9c710655874400eccca61a6df4c3cdd1bae323cfc
4
+ data.tar.gz: 01fc5d410731c6173a6d801aca87259f237bc2254722a08257c5440c82b2d5e7
5
5
  SHA512:
6
- metadata.gz: 488b7f23d40971e9a03bab4601df0ed4028a3d5b235dbc1108cd1efb3a8e579ef34c851d1dd44545ba138767e96c5930b0e6eb905b1b481d6cb30f11a44058eb
7
- data.tar.gz: b4d2fd08e257daef457e177ca39e0cd888618fdac88de6d4f723ff05e34ffd32581b9b0aada6230bbbed530f2a929a4808f3491e4d9d1560cd5542171153b142
6
+ metadata.gz: 0feb5dba5d11e450093f4060864d4bf173e1e70b951f58758c7a294a3e4e6af31430618c293b77ab977f7fd1563326f9eacdb6dd2f917a39f5884f6b7a70ee19
7
+ data.tar.gz: 112818ddf3adf09e39b40d6a92fe38cf059cfbc914ff3e6fef6c6f609d20a0c7451f49ccbeb9522129f0bc4866296fa2b6d68b8b683838cac48c4fa3eeee00fe
data/CHANGELOG.md CHANGED
@@ -2,6 +2,27 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.54.0] - 2026-09-06
6
+
7
+ ### Performance
8
+
9
+ - `validate` and `iter_errors` check each assertion keyword with the `is_valid` path and build an error only for a failing one.
10
+ - `evaluate` holds its output tree in one allocation instead of one per node.
11
+ - A `pattern` of `^\S*$` scans bytes instead of decoding every character.
12
+ - `validate` on `properties` beside a two-name `required` confirms both names in the pass that checks the properties, instead of looking each up first.
13
+ - A string `enum` compares an option's length and first and last eight bytes before its full text.
14
+ - A JSON Pointer segment is scanned for `~` and `/` eight bytes at a time before it is copied.
15
+ - Canonicalization cloning leaves per intersection and the definition map per settled target.
16
+
17
+ ### Changed
18
+
19
+ - Canonicalization of `unevaluated*` beside `dependentSchemas` or `if`/`then`/`else`, which kept the document `Raw`.
20
+ - Canonicalization of `not` over `patternProperties`, which kept the document `Raw`.
21
+
22
+ ### Fixed
23
+
24
+ - Canonicalization of `not` over an object with `properties`, `patternProperties` and `additionalProperties`, which applied `additionalProperties` to the keys listed in `properties`.
25
+
5
26
  ## [0.53.0] - 2026-09-02
6
27
 
7
28
  ### Fixed
@@ -504,7 +525,8 @@
504
525
 
505
526
  - Initial public release
506
527
 
507
- [Unreleased]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.53.0...HEAD
528
+ [Unreleased]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.54.0...HEAD
529
+ [0.54.0]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.53.0...ruby-v0.54.0
508
530
  [0.53.0]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.52.1...ruby-v0.53.0
509
531
  [0.52.1]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.52.0...ruby-v0.52.1
510
532
  [0.52.0]: https://github.com/Stranger6667/jsonschema/compare/ruby-v0.51.0...ruby-v0.52.0
data/Cargo.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "jsonschema-rb"
3
- version = "0.53.0"
3
+ version = "0.54.0"
4
4
  edition = "2021"
5
5
  authors = ["Dmitry Dygalo <dmitry@dygalo.dev>"]
6
6
  license = "MIT"
@@ -14,7 +14,7 @@ crate-type = ["cdylib"]
14
14
 
15
15
  [dependencies]
16
16
  strum = "0.28.0"
17
- jsonschema = { version = "0.53.0", default-features = false, features = ["magnus", "arbitrary-precision", "resolve-http", "resolve-file", "tls-ring", "macros", "idna"] }
17
+ jsonschema = { version = "0.54.0", default-features = false, features = ["magnus", "arbitrary-precision", "resolve-http", "resolve-file", "tls-ring", "macros", "idna"] }
18
18
  magnus = { version = "0.8", features = ["rb-sys"] }
19
19
  rb-sys = "0.9"
20
20
  serde = { workspace = true }
@@ -693,9 +693,9 @@ dependencies = [
693
693
 
694
694
  [[package]]
695
695
  name = "jsonschema"
696
- version = "0.53.0"
696
+ version = "0.54.0"
697
697
  source = "registry+https://github.com/rust-lang/crates.io-index"
698
- checksum = "ca2ea2207f8ccb34b6d4d041fe9deb08fff3cbc43750012caa2c3d1e860188e4"
698
+ checksum = "7070bf0681439ff992bb94947cb3a361f57c880561c1e9e90ddb5941c7ec2d04"
699
699
  dependencies = [
700
700
  "ahash",
701
701
  "bytecount",
@@ -726,9 +726,9 @@ dependencies = [
726
726
 
727
727
  [[package]]
728
728
  name = "jsonschema-macros"
729
- version = "0.53.0"
729
+ version = "0.54.0"
730
730
  source = "registry+https://github.com/rust-lang/crates.io-index"
731
- checksum = "fca63b539fd065bf6dd1e2250eb8f043d192f1e26871938328677dec94f47891"
731
+ checksum = "09bf2cff6a323e13ecc331d319d8062dc07992c12e6db20b3d6284730f3efd23"
732
732
  dependencies = [
733
733
  "jsonschema-macros-core",
734
734
  "proc-macro2",
@@ -736,9 +736,9 @@ dependencies = [
736
736
 
737
737
  [[package]]
738
738
  name = "jsonschema-macros-core"
739
- version = "0.53.0"
739
+ version = "0.54.0"
740
740
  source = "registry+https://github.com/rust-lang/crates.io-index"
741
- checksum = "aa86fa71ef7b974d3081f13900de1c10371c6df55670031e2e123f0aa738c69e"
741
+ checksum = "d7d537fa1bbdc3aa5be9343fecad25202c73e501535d9a0f9879d0c2c9c3a328"
742
742
  dependencies = [
743
743
  "fancy-regex",
744
744
  "indexmap",
@@ -755,7 +755,7 @@ dependencies = [
755
755
 
756
756
  [[package]]
757
757
  name = "jsonschema-rb-ext"
758
- version = "0.53.0"
758
+ version = "0.54.0"
759
759
  dependencies = [
760
760
  "jsonschema",
761
761
  "magnus",
@@ -769,18 +769,18 @@ dependencies = [
769
769
 
770
770
  [[package]]
771
771
  name = "jsonschema-regex"
772
- version = "0.53.0"
772
+ version = "0.54.0"
773
773
  source = "registry+https://github.com/rust-lang/crates.io-index"
774
- checksum = "5426a01d944d044c9c5e459f603419d1b539358f5496b1041df45a7a86d2d38f"
774
+ checksum = "b6525f2f72c37c1a09f59a6d0d33f60ecf8beabd00be92fe8d49555cae15289c"
775
775
  dependencies = [
776
776
  "regex-syntax",
777
777
  ]
778
778
 
779
779
  [[package]]
780
780
  name = "jsonschema-value"
781
- version = "0.53.0"
781
+ version = "0.54.0"
782
782
  source = "registry+https://github.com/rust-lang/crates.io-index"
783
- checksum = "65b6ec7deaeaab6320efc3084d8a9e91d5b4985ee36ffffef45dbff9516ff7a8"
783
+ checksum = "4309c6b52390b1ebdd2053e513e9f23d4bb18d0c3c2df8142eded3eb188a85bf"
784
784
  dependencies = [
785
785
  "ahash",
786
786
  "bytecount",
@@ -1135,9 +1135,9 @@ dependencies = [
1135
1135
 
1136
1136
  [[package]]
1137
1137
  name = "referencing"
1138
- version = "0.53.0"
1138
+ version = "0.54.0"
1139
1139
  source = "registry+https://github.com/rust-lang/crates.io-index"
1140
- checksum = "fb406ba984c08d1b91781d7507d103296cf6dec3256c33c388b468957f4b43bb"
1140
+ checksum = "0304d4734d208eaf24528093715e2cb5260c977b1be1eb81cd487f601e3ff35d"
1141
1141
  dependencies = [
1142
1142
  "ahash",
1143
1143
  "fluent-uri",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "jsonschema-rb-ext"
3
- version = "0.53.0"
3
+ version = "0.54.0"
4
4
  edition = "2021"
5
5
  publish = false
6
6
 
@@ -10,10 +10,10 @@ name = "jsonschema_rb"
10
10
  path = "../../src/lib.rs"
11
11
 
12
12
  [dependencies]
13
- jsonschema = { version = "0.53.0", default-features = false, features = ["magnus", "arbitrary-precision", "resolve-http", "resolve-file", "tls-ring", "macros", "idna"] }
13
+ jsonschema = { version = "0.54.0", default-features = false, features = ["magnus", "arbitrary-precision", "resolve-http", "resolve-file", "tls-ring", "macros", "idna"] }
14
14
  magnus = { version = "0.8", features = ["rb-sys"] }
15
15
  rb-sys = "0.9"
16
- referencing = "0.53.0"
16
+ referencing = "0.54.0"
17
17
  serde = { version = "1", features = ["derive"] }
18
18
  serde_json = { version = "1", features = ["arbitrary_precision"] }
19
19
  strum = "0.28.0"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JSONSchema
4
- VERSION = "0.53.0"
4
+ VERSION = "0.54.0"
5
5
  end
data/src/canonical.rs CHANGED
@@ -1004,9 +1004,9 @@ impl ObjectView {
1004
1004
 
1005
1005
  fn additional_properties(ruby: &Ruby, rb_self: &Self) -> Value {
1006
1006
  match &rb_self.additional_properties {
1007
- Some(shield) => ruby
1007
+ Some(additional) => ruby
1008
1008
  .obj_wrap(RbCanonicalSchema {
1009
- inner: shield.clone(),
1009
+ inner: additional.clone(),
1010
1010
  })
1011
1011
  .as_value(),
1012
1012
  None => ruby.qnil().as_value(),
@@ -1185,7 +1185,7 @@ impl AllOfView {
1185
1185
  }
1186
1186
  }
1187
1187
 
1188
- /// The complement of `schema`, preserving a symbolic ref under `not`, conditionals, and `oneOf`.
1188
+ /// The negation of `schema`, preserving a symbolic ref under `not`, conditionals, and `oneOf`.
1189
1189
  #[derive(magnus::TypedData)]
1190
1190
  #[magnus(class = "JSONSchema::Canonical::NotView", free_immediately)]
1191
1191
  pub struct NotView {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsonschema_rs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.53.0
4
+ version: 0.54.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Dygalo