Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions DEPENDENCIES
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
vendorpull https://github.com/sourcemeta/vendorpull 1dcbac42809cf87cb5b045106b863e17ad84ba02
core https://github.com/sourcemeta/core aa314809fdb59ed6fcb1b10b3087f32eebf708c5
blaze https://github.com/sourcemeta/blaze 5554d3106d7920b28b852e929f0a31d7805effe1
core https://github.com/sourcemeta/core 39431ca30471bb248effafb841f937962bf8291c
blaze https://github.com/sourcemeta/blaze b10fca7344e3a11048587a7b904e5710fbb448d3
bootstrap https://github.com/twbs/bootstrap 1a6fdfae6be09b09eaced8f0e442ca6f7680a61e
1 change: 0 additions & 1 deletion cmake/FindCore.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ if(NOT Core_FOUND)
set(SOURCEMETA_CORE_INSTALL OFF CACHE BOOL "disable installation")
endif()

set(SOURCEMETA_CORE_TIME OFF CACHE BOOL "disable")
set(SOURCEMETA_CORE_UUID OFF CACHE BOOL "disable")
set(SOURCEMETA_CORE_GZIP OFF CACHE BOOL "disable")
set(SOURCEMETA_CORE_MD5 OFF CACHE BOOL "disable")
Expand Down
4 changes: 2 additions & 2 deletions config.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ if(NOT JSONBINPACK_COMPONENTS)
endif()

include(CMakeFindDependencyMacro)
find_dependency(Core COMPONENTS numeric regex uri json jsonpointer jsonschema io)
find_dependency(Blaze COMPONENTS alterschema)
find_dependency(Core COMPONENTS numeric regex uri json jsonpointer io)
find_dependency(Blaze COMPONENTS foundation alterschema)

foreach(component ${JSONBINPACK_COMPONENTS})
if(component STREQUAL "runtime")
Expand Down
2 changes: 1 addition & 1 deletion src/compiler/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,6 @@ target_link_libraries(sourcemeta_jsonbinpack_compiler PUBLIC
target_link_libraries(sourcemeta_jsonbinpack_compiler PRIVATE
sourcemeta::core::jsonpointer)
target_link_libraries(sourcemeta_jsonbinpack_compiler PUBLIC
sourcemeta::core::jsonschema)
sourcemeta::blaze::foundation)
target_link_libraries(sourcemeta_jsonbinpack_compiler PRIVATE
sourcemeta::blaze::alterschema)
10 changes: 5 additions & 5 deletions src/compiler/compiler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ static auto transformer_callback_noop(
namespace sourcemeta::jsonbinpack {

auto canonicalize(sourcemeta::core::JSON &schema,
const sourcemeta::core::SchemaWalker &walker,
const sourcemeta::core::SchemaResolver &resolver,
const sourcemeta::blaze::SchemaWalker &walker,
const sourcemeta::blaze::SchemaResolver &resolver,
const std::string_view default_dialect) -> void {
sourcemeta::blaze::SchemaTransformer canonicalizer;
sourcemeta::blaze::add(canonicalizer,
Expand Down Expand Up @@ -59,8 +59,8 @@ auto make_encoding(sourcemeta::core::JSON &document,
#include "mapper/number_arbitrary.h"

auto compile(sourcemeta::core::JSON &schema,
const sourcemeta::core::SchemaWalker &walker,
const sourcemeta::core::SchemaResolver &resolver,
const sourcemeta::blaze::SchemaWalker &walker,
const sourcemeta::blaze::SchemaResolver &resolver,
const std::string_view default_dialect) -> void {
canonicalize(schema, walker, resolver, default_dialect);

Expand Down Expand Up @@ -93,7 +93,7 @@ auto compile(sourcemeta::core::JSON &schema,
assert(mapper_result.first);

// The "any" encoding is always the last resort
const auto dialect{sourcemeta::core::dialect(schema)};
const auto dialect{sourcemeta::blaze::dialect(schema)};
if (dialect.empty() || dialect != ENCODING_V1) {
make_encoding(schema, "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
sourcemeta::core::JSON::make_object());
Expand Down
4 changes: 2 additions & 2 deletions src/compiler/encoding.h
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
#ifndef SOURCEMETA_JSONBINPACK_COMPILER_ENCODING_H_
#define SOURCEMETA_JSONBINPACK_COMPILER_ENCODING_H_

#include <sourcemeta/blaze/foundation.h>
#include <sourcemeta/core/json.h>
#include <sourcemeta/core/jsonschema.h>

namespace sourcemeta::jsonbinpack {

constexpr auto ENCODING_V1{"tag:sourcemeta.com,2024:jsonbinpack/encoding/v1"};

inline auto make_resolver(const sourcemeta::core::SchemaResolver &fallback)
inline auto make_resolver(const sourcemeta::blaze::SchemaResolver &fallback)
-> auto {
return [&fallback](std::string_view identifier)
-> std::optional<sourcemeta::core::JSON> {
Expand Down
22 changes: 11 additions & 11 deletions src/compiler/include/sourcemeta/jsonbinpack/compiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
/// #include <sourcemeta/jsonbinpack/compiler.h>
/// ```

#include <sourcemeta/blaze/foundation.h>
#include <sourcemeta/core/json.h>
#include <sourcemeta/core/jsonschema.h>

#include <string_view> // std::string_view

Expand All @@ -29,7 +29,7 @@ namespace sourcemeta::jsonbinpack {
/// ```cpp
/// #include <sourcemeta/binpack/compiler.h>
/// #include <sourcemeta/core/json.h>
/// #include <sourcemeta/core/jsonschema.h>
/// #include <sourcemeta/blaze/foundation.h>
///
/// #include <iostream>
///
Expand All @@ -39,16 +39,16 @@ namespace sourcemeta::jsonbinpack {
/// })JSON")};
///
/// sourcemeta::jsonbinpack::compile(
/// schema, sourcemeta::core::schema_walker,
/// sourcemeta::core::schema_resolver);
/// schema, sourcemeta::blaze::schema_walker,
/// sourcemeta::blaze::schema_resolver);
///
/// sourcemeta::core::prettify(schema, std::cout);
/// std::cout << std::endl;
/// ```
SOURCEMETA_JSONBINPACK_COMPILER_EXPORT
auto compile(sourcemeta::core::JSON &schema,
const sourcemeta::core::SchemaWalker &walker,
const sourcemeta::core::SchemaResolver &resolver,
const sourcemeta::blaze::SchemaWalker &walker,
const sourcemeta::blaze::SchemaResolver &resolver,
std::string_view default_dialect = "") -> void;

/// @ingroup compiler
Expand All @@ -61,7 +61,7 @@ auto compile(sourcemeta::core::JSON &schema,
/// ```cpp
/// #include <sourcemeta/binpack/compiler.h>
/// #include <sourcemeta/core/json.h>
/// #include <sourcemeta/core/jsonschema.h>
/// #include <sourcemeta/blaze/foundation.h>
///
/// #include <iostream>
///
Expand All @@ -71,16 +71,16 @@ auto compile(sourcemeta::core::JSON &schema,
/// })JSON")};
///
/// sourcemeta::jsonbinpack::canonicalize(
/// schema, sourcemeta::core::schema_walker,
/// sourcemeta::core::schema_resolver);
/// schema, sourcemeta::blaze::schema_walker,
/// sourcemeta::blaze::schema_resolver);
///
/// sourcemeta::core::prettify(schema, std::cout);
/// std::cout << std::endl;
/// ```
SOURCEMETA_JSONBINPACK_COMPILER_EXPORT
auto canonicalize(sourcemeta::core::JSON &schema,
const sourcemeta::core::SchemaWalker &walker,
const sourcemeta::core::SchemaResolver &resolver,
const sourcemeta::blaze::SchemaWalker &walker,
const sourcemeta::blaze::SchemaResolver &resolver,
std::string_view default_dialect = "") -> void;

} // namespace sourcemeta::jsonbinpack
Expand Down
12 changes: 6 additions & 6 deletions src/compiler/mapper/enum_8_bit.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ class Enum8Bit final : public sourcemeta::blaze::SchemaTransformRule {
[[nodiscard]] auto
condition(const sourcemeta::core::JSON &schema,
const sourcemeta::core::JSON &,
const sourcemeta::core::Vocabularies &vocabularies,
const sourcemeta::core::SchemaFrame &,
const sourcemeta::core::SchemaFrame::Location &location,
const sourcemeta::core::SchemaWalker &,
const sourcemeta::core::SchemaResolver &) const
const sourcemeta::blaze::Vocabularies &vocabularies,
const sourcemeta::blaze::SchemaFrame &,
const sourcemeta::blaze::SchemaFrame::Location &location,
const sourcemeta::blaze::SchemaWalker &,
const sourcemeta::blaze::SchemaResolver &) const
-> sourcemeta::blaze::SchemaTransformRule::Result override {
return location.dialect == "https://json-schema.org/draft/2020-12/schema" &&
vocabularies.contains(sourcemeta::core::Vocabularies::Known::
vocabularies.contains(sourcemeta::blaze::Vocabularies::Known::
JSON_Schema_2020_12_Validation) &&
schema.is_object() && schema.defines("enum") &&
schema.at("enum").is_array() && !location.pointer.empty() &&
Expand Down
12 changes: 6 additions & 6 deletions src/compiler/mapper/enum_8_bit_top_level.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ class Enum8BitTopLevel final : public sourcemeta::blaze::SchemaTransformRule {
[[nodiscard]] auto
condition(const sourcemeta::core::JSON &schema,
const sourcemeta::core::JSON &,
const sourcemeta::core::Vocabularies &vocabularies,
const sourcemeta::core::SchemaFrame &,
const sourcemeta::core::SchemaFrame::Location &location,
const sourcemeta::core::SchemaWalker &,
const sourcemeta::core::SchemaResolver &) const
const sourcemeta::blaze::Vocabularies &vocabularies,
const sourcemeta::blaze::SchemaFrame &,
const sourcemeta::blaze::SchemaFrame::Location &location,
const sourcemeta::blaze::SchemaWalker &,
const sourcemeta::blaze::SchemaResolver &) const
-> sourcemeta::blaze::SchemaTransformRule::Result override {
return location.dialect == "https://json-schema.org/draft/2020-12/schema" &&
vocabularies.contains(sourcemeta::core::Vocabularies::Known::
vocabularies.contains(sourcemeta::blaze::Vocabularies::Known::
JSON_Schema_2020_12_Validation) &&
schema.is_object() && schema.defines("enum") &&
schema.at("enum").is_array() && location.pointer.empty() &&
Expand Down
12 changes: 6 additions & 6 deletions src/compiler/mapper/enum_arbitrary.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ class EnumArbitrary final : public sourcemeta::blaze::SchemaTransformRule {
[[nodiscard]] auto
condition(const sourcemeta::core::JSON &schema,
const sourcemeta::core::JSON &,
const sourcemeta::core::Vocabularies &vocabularies,
const sourcemeta::core::SchemaFrame &,
const sourcemeta::core::SchemaFrame::Location &location,
const sourcemeta::core::SchemaWalker &,
const sourcemeta::core::SchemaResolver &) const
const sourcemeta::blaze::Vocabularies &vocabularies,
const sourcemeta::blaze::SchemaFrame &,
const sourcemeta::blaze::SchemaFrame::Location &location,
const sourcemeta::blaze::SchemaWalker &,
const sourcemeta::blaze::SchemaResolver &) const
-> sourcemeta::blaze::SchemaTransformRule::Result override {
return location.dialect == "https://json-schema.org/draft/2020-12/schema" &&
vocabularies.contains(sourcemeta::core::Vocabularies::Known::
vocabularies.contains(sourcemeta::blaze::Vocabularies::Known::
JSON_Schema_2020_12_Validation) &&
schema.is_object() && schema.defines("enum") &&
schema.at("enum").is_array() && !location.pointer.empty() &&
Expand Down
12 changes: 6 additions & 6 deletions src/compiler/mapper/enum_singleton.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ class EnumSingleton final : public sourcemeta::blaze::SchemaTransformRule {
[[nodiscard]] auto
condition(const sourcemeta::core::JSON &schema,
const sourcemeta::core::JSON &,
const sourcemeta::core::Vocabularies &vocabularies,
const sourcemeta::core::SchemaFrame &,
const sourcemeta::core::SchemaFrame::Location &location,
const sourcemeta::core::SchemaWalker &,
const sourcemeta::core::SchemaResolver &) const
const sourcemeta::blaze::Vocabularies &vocabularies,
const sourcemeta::blaze::SchemaFrame &,
const sourcemeta::blaze::SchemaFrame::Location &location,
const sourcemeta::blaze::SchemaWalker &,
const sourcemeta::blaze::SchemaResolver &) const
-> sourcemeta::blaze::SchemaTransformRule::Result override {
return location.dialect == "https://json-schema.org/draft/2020-12/schema" &&
vocabularies.contains(sourcemeta::core::Vocabularies::Known::
vocabularies.contains(sourcemeta::blaze::Vocabularies::Known::
JSON_Schema_2020_12_Validation) &&
schema.is_object() && schema.defines("enum") &&
schema.at("enum").is_array() && schema.at("enum").size() == 1;
Expand Down
12 changes: 6 additions & 6 deletions src/compiler/mapper/integer_bounded_8_bit.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ class IntegerBounded8Bit final : public sourcemeta::blaze::SchemaTransformRule {
[[nodiscard]] auto
condition(const sourcemeta::core::JSON &schema,
const sourcemeta::core::JSON &,
const sourcemeta::core::Vocabularies &vocabularies,
const sourcemeta::core::SchemaFrame &,
const sourcemeta::core::SchemaFrame::Location &location,
const sourcemeta::core::SchemaWalker &,
const sourcemeta::core::SchemaResolver &) const
const sourcemeta::blaze::Vocabularies &vocabularies,
const sourcemeta::blaze::SchemaFrame &,
const sourcemeta::blaze::SchemaFrame::Location &location,
const sourcemeta::blaze::SchemaWalker &,
const sourcemeta::blaze::SchemaResolver &) const
-> sourcemeta::blaze::SchemaTransformRule::Result override {
return location.dialect == "https://json-schema.org/draft/2020-12/schema" &&
vocabularies.contains(sourcemeta::core::Vocabularies::Known::
vocabularies.contains(sourcemeta::blaze::Vocabularies::Known::
JSON_Schema_2020_12_Validation) &&
schema.is_object() && schema.defines("type") &&
schema.at("type").to_string() == "integer" &&
Expand Down
12 changes: 6 additions & 6 deletions src/compiler/mapper/integer_bounded_greater_than_8_bit.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ class IntegerBoundedGreaterThan8Bit final
[[nodiscard]] auto
condition(const sourcemeta::core::JSON &schema,
const sourcemeta::core::JSON &,
const sourcemeta::core::Vocabularies &vocabularies,
const sourcemeta::core::SchemaFrame &,
const sourcemeta::core::SchemaFrame::Location &location,
const sourcemeta::core::SchemaWalker &,
const sourcemeta::core::SchemaResolver &) const
const sourcemeta::blaze::Vocabularies &vocabularies,
const sourcemeta::blaze::SchemaFrame &,
const sourcemeta::blaze::SchemaFrame::Location &location,
const sourcemeta::blaze::SchemaWalker &,
const sourcemeta::blaze::SchemaResolver &) const
-> sourcemeta::blaze::SchemaTransformRule::Result override {
return location.dialect == "https://json-schema.org/draft/2020-12/schema" &&
vocabularies.contains(sourcemeta::core::Vocabularies::Known::
vocabularies.contains(sourcemeta::blaze::Vocabularies::Known::
JSON_Schema_2020_12_Validation) &&
schema.is_object() && schema.defines("type") &&
schema.at("type").to_string() == "integer" &&
Expand Down
12 changes: 6 additions & 6 deletions src/compiler/mapper/integer_bounded_multiplier_8_bit.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ class IntegerBoundedMultiplier8Bit final
[[nodiscard]] auto
condition(const sourcemeta::core::JSON &schema,
const sourcemeta::core::JSON &,
const sourcemeta::core::Vocabularies &vocabularies,
const sourcemeta::core::SchemaFrame &,
const sourcemeta::core::SchemaFrame::Location &location,
const sourcemeta::core::SchemaWalker &,
const sourcemeta::core::SchemaResolver &) const
const sourcemeta::blaze::Vocabularies &vocabularies,
const sourcemeta::blaze::SchemaFrame &,
const sourcemeta::blaze::SchemaFrame::Location &location,
const sourcemeta::blaze::SchemaWalker &,
const sourcemeta::blaze::SchemaResolver &) const
-> sourcemeta::blaze::SchemaTransformRule::Result override {
if (location.dialect != "https://json-schema.org/draft/2020-12/schema" ||
!vocabularies.contains(sourcemeta::core::Vocabularies::Known::
!vocabularies.contains(sourcemeta::blaze::Vocabularies::Known::
JSON_Schema_2020_12_Validation) ||
!schema.is_object() || !schema.defines("type") ||
schema.at("type").to_string() != "integer" ||
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ class IntegerBoundedMultiplierGreaterThan8Bit final
[[nodiscard]] auto
condition(const sourcemeta::core::JSON &schema,
const sourcemeta::core::JSON &,
const sourcemeta::core::Vocabularies &vocabularies,
const sourcemeta::core::SchemaFrame &,
const sourcemeta::core::SchemaFrame::Location &location,
const sourcemeta::core::SchemaWalker &,
const sourcemeta::core::SchemaResolver &) const
const sourcemeta::blaze::Vocabularies &vocabularies,
const sourcemeta::blaze::SchemaFrame &,
const sourcemeta::blaze::SchemaFrame::Location &location,
const sourcemeta::blaze::SchemaWalker &,
const sourcemeta::blaze::SchemaResolver &) const
-> sourcemeta::blaze::SchemaTransformRule::Result override {
if (location.dialect != "https://json-schema.org/draft/2020-12/schema" ||
!vocabularies.contains(sourcemeta::core::Vocabularies::Known::
!vocabularies.contains(sourcemeta::blaze::Vocabularies::Known::
JSON_Schema_2020_12_Validation) ||
!schema.is_object() || !schema.defines("type") ||
schema.at("type").to_string() != "integer" ||
Expand Down
12 changes: 6 additions & 6 deletions src/compiler/mapper/integer_lower_bound.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ class IntegerLowerBound final : public sourcemeta::blaze::SchemaTransformRule {
[[nodiscard]] auto
condition(const sourcemeta::core::JSON &schema,
const sourcemeta::core::JSON &,
const sourcemeta::core::Vocabularies &vocabularies,
const sourcemeta::core::SchemaFrame &,
const sourcemeta::core::SchemaFrame::Location &location,
const sourcemeta::core::SchemaWalker &,
const sourcemeta::core::SchemaResolver &) const
const sourcemeta::blaze::Vocabularies &vocabularies,
const sourcemeta::blaze::SchemaFrame &,
const sourcemeta::blaze::SchemaFrame::Location &location,
const sourcemeta::blaze::SchemaWalker &,
const sourcemeta::blaze::SchemaResolver &) const
-> sourcemeta::blaze::SchemaTransformRule::Result override {
return location.dialect == "https://json-schema.org/draft/2020-12/schema" &&
vocabularies.contains(sourcemeta::core::Vocabularies::Known::
vocabularies.contains(sourcemeta::blaze::Vocabularies::Known::
JSON_Schema_2020_12_Validation) &&
schema.is_object() && schema.defines("type") &&
schema.at("type").to_string() == "integer" &&
Expand Down
12 changes: 6 additions & 6 deletions src/compiler/mapper/integer_lower_bound_multiplier.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ class IntegerLowerBoundMultiplier final
[[nodiscard]] auto
condition(const sourcemeta::core::JSON &schema,
const sourcemeta::core::JSON &,
const sourcemeta::core::Vocabularies &vocabularies,
const sourcemeta::core::SchemaFrame &,
const sourcemeta::core::SchemaFrame::Location &location,
const sourcemeta::core::SchemaWalker &,
const sourcemeta::core::SchemaResolver &) const
const sourcemeta::blaze::Vocabularies &vocabularies,
const sourcemeta::blaze::SchemaFrame &,
const sourcemeta::blaze::SchemaFrame::Location &location,
const sourcemeta::blaze::SchemaWalker &,
const sourcemeta::blaze::SchemaResolver &) const
-> sourcemeta::blaze::SchemaTransformRule::Result override {
return location.dialect == "https://json-schema.org/draft/2020-12/schema" &&
vocabularies.contains(sourcemeta::core::Vocabularies::Known::
vocabularies.contains(sourcemeta::blaze::Vocabularies::Known::
JSON_Schema_2020_12_Validation) &&
schema.is_object() && schema.defines("type") &&
schema.at("type").to_string() == "integer" &&
Expand Down
Loading
Loading