corvus_json_schema 0.1.0-x86_64-linux → 0.1.2-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 +4 -4
- data/README.md +1 -1
- data/VERSIONHISTORY.md +16 -0
- data/lib/corvus_json_schema/3.3/corvus_json_schema.so +0 -0
- data/lib/corvus_json_schema/3.4/corvus_json_schema.so +0 -0
- data/lib/corvus_json_schema/4.0/corvus_json_schema.so +0 -0
- data/lib/corvus_json_schema/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0af86116c2730b6869cd48f36caab989cf052bc72bf97999578a54e74bb5240a
|
|
4
|
+
data.tar.gz: c35e2596db9c8ad0d195507a2b5b08b8958bf49f5c2d93875e4a7290433f9d6e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a410a429c4708c9df42a3e246df1f6c3012a3083ba910c8038c5da37c31b30da4050dac8b2e03297677ac310766b93fd77bd3b183e8119bb335c8adc0bd379a0
|
|
7
|
+
data.tar.gz: a1f8751395b2d19dda3076dea5f8209cb9a49fadfc4ab62c2faf98327b7a1ca1107a67b653a3540985bf24b8f44df07657986313ca370dc297af07678e230f32
|
data/README.md
CHANGED
|
@@ -11,7 +11,7 @@ standalone evaluator.
|
|
|
11
11
|
validated without creating Ruby objects for it.
|
|
12
12
|
- **Precompiled**: native gems for Linux (x86_64 and aarch64, glibc and musl), macOS (x86_64 and arm64) and Windows
|
|
13
13
|
(x64), for Ruby 3.3, 3.4 and 4.0. On other platforms the source gem builds the extension, which needs a Rust
|
|
14
|
-
toolchain (1.
|
|
14
|
+
toolchain (1.89 or later) and libclang.
|
|
15
15
|
|
|
16
16
|
## Install
|
|
17
17
|
|
data/VERSIONHISTORY.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
The version history of the `corvus_json_schema` Ruby gem. It is versioned independently of the Corvus NuGet packages and of the [corvus-json-schema](../../src-rs/corvus-json-schema/VERSIONHISTORY.md) Rust crate it is built on.
|
|
4
4
|
|
|
5
|
+
## V0.1.2
|
|
6
|
+
|
|
7
|
+
V0.1.2 fixes a crash of the Ruby process for a schema whose `not` leads back to the schema it is in, by taking version 0.1.6 of the corvus-json-schema crate. There are no API changes. Versions 0.1.0 and 0.1.1 are affected.
|
|
8
|
+
|
|
9
|
+
### Bug fixes
|
|
10
|
+
|
|
11
|
+
- **A `not` that leads back to the schema it is in.** A schema can loop without consuming the instance. The gem abandons such an evaluation at `max_depth` (128 by default) and raises `CorvusJsonSchema::DepthError`. Evaluating `not` went around that guard. For a schema such as `{"not": {"$ref": "#"}}`, validating an instance that reached the `not` recursed in the native extension until the stack overflowed, which crashes the Ruby process. `valid?`, `valid_json?` and `evaluate` were all affected. A `not` is now under the guard, so they raise `CorvusJsonSchema::DepthError`. The fault is in the schema. No instance causes it for a schema without such a loop, so a program was exposed only if it compiled schemas it did not write. A schema that loops elsewhere under a `not` was not affected in this gem: it raised `CorvusJsonSchema::DepthError`, and still does.
|
|
12
|
+
|
|
13
|
+
## V0.1.1
|
|
14
|
+
|
|
15
|
+
V0.1.1 fixes wrong validation results for one form of pattern, by taking version 0.1.4 of the corvus-json-schema crate. There are no API changes. Version 0.1.0 is affected.
|
|
16
|
+
|
|
17
|
+
### Bug fixes
|
|
18
|
+
|
|
19
|
+
- **A pattern of the form `^(?=[^SET]+$)(?=(.*\w)).+$` with a character outside ASCII in its excluded set.** The crate matches this form without a regular expression engine and keeps the excluded set as one bit for each ASCII character. A member outside ASCII, such as `é` in `^(?=[^é]+$)(?=(.*\w)).+$`, was read one UTF-8 byte at a time, and set the bits of unrelated ASCII characters (`C` and `)` for `é`). A validator compiled from such a schema rejected valid strings (`"C1"`) and accepted invalid ones (`"é1"`), with no error. Such a pattern is now matched by the regular expression engine. A pattern of this form whose excluded set is all ASCII was never affected.
|
|
20
|
+
|
|
5
21
|
## V0.1.0
|
|
6
22
|
|
|
7
23
|
The first release: a native extension over the corvus-json-schema Rust crate (0.1.3), for drafts 4, 6, 7, 2019-09 and 2020-12. It reads Ruby values in place, validates JSON text without creating Ruby objects for it, and collects results (Basic, Detailed and Verbose) and annotations. It passes the whole JSON-Schema-Test-Suite, read in place, as JSON text and through a collector.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: corvus_json_schema
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.2
|
|
5
5
|
platform: x86_64-linux
|
|
6
6
|
authors:
|
|
7
7
|
- endjin
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-10-
|
|
11
|
+
date: 2026-10-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: 'JSON Schema validation for Ruby with the corvus-json-schema Rust crate:
|
|
14
14
|
drafts 4, 6, 7, 2019-09 and 2020-12, results and annotations, Ruby values read in
|