├── .ackrc
├── .editorconfig
├── .gitattributes
├── .github
└── workflows
│ ├── ci.yml
│ ├── website-build.yml
│ └── website-deploy.yml
├── .gitignore
├── Brewfile
├── CMakeLists.txt
├── DEPENDENCIES
├── LICENSE
├── Makefile
├── README.markdown
├── assets
├── artwork.sketch
├── banner.png
├── example.png
└── timeline.sketch
├── cmake
└── FindCore.cmake
├── config.cmake.in
├── doxygen
├── Doxyfile.in
├── logo.png
└── todo.markdown
├── src
├── compiler
│ ├── CMakeLists.txt
│ ├── compiler.cc
│ ├── encoding.h
│ ├── include
│ │ └── sourcemeta
│ │ │ └── jsonbinpack
│ │ │ └── compiler.h
│ └── mapper
│ │ ├── enum_8_bit.h
│ │ ├── enum_8_bit_top_level.h
│ │ ├── enum_arbitrary.h
│ │ ├── enum_singleton.h
│ │ ├── integer_bounded_8_bit.h
│ │ ├── integer_bounded_greater_than_8_bit.h
│ │ ├── integer_bounded_multiplier_8_bit.h
│ │ ├── integer_bounded_multiplier_greater_than_8_bit.h
│ │ ├── integer_lower_bound.h
│ │ ├── integer_lower_bound_multiplier.h
│ │ ├── integer_unbound.h
│ │ ├── integer_unbound_multiplier.h
│ │ ├── integer_upper_bound.h
│ │ ├── integer_upper_bound_multiplier.h
│ │ └── number_arbitrary.h
├── numeric
│ ├── CMakeLists.txt
│ └── include
│ │ └── sourcemeta
│ │ └── jsonbinpack
│ │ ├── numeric.h
│ │ ├── numeric_integral.h
│ │ ├── numeric_real.h
│ │ └── numeric_zigzag.h
└── runtime
│ ├── CMakeLists.txt
│ ├── cache.cc
│ ├── decoder_any.cc
│ ├── decoder_array.cc
│ ├── decoder_common.cc
│ ├── decoder_integer.cc
│ ├── decoder_number.cc
│ ├── decoder_object.cc
│ ├── decoder_string.cc
│ ├── encoder_any.cc
│ ├── encoder_array.cc
│ ├── encoder_common.cc
│ ├── encoder_integer.cc
│ ├── encoder_number.cc
│ ├── encoder_object.cc
│ ├── encoder_string.cc
│ ├── include
│ └── sourcemeta
│ │ └── jsonbinpack
│ │ ├── runtime.h
│ │ ├── runtime_decoder.h
│ │ ├── runtime_encoder.h
│ │ ├── runtime_encoder_cache.h
│ │ ├── runtime_encoding.h
│ │ ├── runtime_input_stream.h
│ │ └── runtime_output_stream.h
│ ├── input_stream.cc
│ ├── loader.cc
│ ├── loader_v1_any.h
│ ├── loader_v1_array.h
│ ├── loader_v1_integer.h
│ ├── loader_v1_number.h
│ ├── loader_v1_string.h
│ ├── output_stream.cc
│ ├── unreachable.h
│ └── varint.h
├── test
├── compiler
│ ├── 2020_12_canonicalizer_any_test.cc
│ ├── 2020_12_canonicalizer_array_test.cc
│ ├── 2020_12_canonicalizer_boolean_test.cc
│ ├── 2020_12_canonicalizer_null_test.cc
│ ├── 2020_12_canonicalizer_number_test.cc
│ ├── 2020_12_canonicalizer_object_test.cc
│ ├── 2020_12_canonicalizer_string_test.cc
│ ├── 2020_12_compiler_any_test.cc
│ ├── 2020_12_compiler_integer_test.cc
│ ├── 2020_12_compiler_number_test.cc
│ ├── CMakeLists.txt
│ ├── canonicalizer_test.cc
│ └── compiler_test.cc
├── e2e
│ ├── CMakeLists.txt
│ ├── circleciblank
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── circlecimatrix
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── commitlint
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── commitlintbasic
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── epr
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── eslintrc
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── esmrc
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── geojson
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── githubfundingblank
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── githubworkflow
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── gruntcontribclean
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── imageoptimizerwebjob
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── jsonereversesort
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── jsonesort
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── jsonfeed
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── jsonresume
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── mixed-bounded-object
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── netcoreproject
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── nightwatch
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── openweathermap
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── openweatherroadrisk
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── ox-test
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── packagejson
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── packagejsonlintrc
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── runner.cc
│ ├── sapcloudsdkpipeline
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── travisnotifications
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── tslintbasic
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ ├── tslintextend
│ │ ├── document.json
│ │ └── schema-less
│ │ │ ├── canonical.json
│ │ │ ├── encoding.json
│ │ │ ├── output.bin
│ │ │ ├── schema.json
│ │ │ └── size.txt
│ └── tslintmulti
│ │ ├── document.json
│ │ └── schema-less
│ │ ├── canonical.json
│ │ ├── encoding.json
│ │ ├── output.bin
│ │ ├── schema.json
│ │ └── size.txt
├── numeric
│ ├── CMakeLists.txt
│ ├── closest_smallest_exponent_test.cc
│ ├── divide_ceil_test.cc
│ ├── divide_floor_test.cc
│ ├── uint_max_test.cc
│ └── zigzag_test.cc
├── packaging
│ ├── CMakeLists.txt
│ └── find_package
│ │ ├── CMakeLists.txt
│ │ └── hello.cc
└── runtime
│ ├── CMakeLists.txt
│ ├── decode_any_test.cc
│ ├── decode_array_test.cc
│ ├── decode_integer_test.cc
│ ├── decode_number_test.cc
│ ├── decode_object_test.cc
│ ├── decode_string_test.cc
│ ├── decode_test.cc
│ ├── decode_traits_test.cc
│ ├── decode_utils.h
│ ├── encode_any_test.cc
│ ├── encode_array_test.cc
│ ├── encode_cache_test.cc
│ ├── encode_integer_test.cc
│ ├── encode_number_test.cc
│ ├── encode_object_test.cc
│ ├── encode_real_test.cc
│ ├── encode_string_test.cc
│ ├── encode_test.cc
│ ├── encode_traits_test.cc
│ ├── encode_utils.h
│ ├── encoding_traits_test.cc
│ ├── input_stream_varint_test.cc
│ ├── output_stream_varint_test.cc
│ ├── v1_any_loader_test.cc
│ ├── v1_array_loader_test.cc
│ ├── v1_integer_loader_test.cc
│ ├── v1_loader_test.cc
│ ├── v1_number_loader_test.cc
│ └── v1_string_loader_test.cc
├── vendor
├── alterschema
│ ├── CMakeLists.txt
│ ├── LICENSE
│ ├── config.cmake.in
│ └── src
│ │ ├── engine
│ │ ├── CMakeLists.txt
│ │ ├── bundle.cc
│ │ ├── include
│ │ │ └── sourcemeta
│ │ │ │ └── alterschema
│ │ │ │ ├── engine.h
│ │ │ │ ├── engine_bundle.h
│ │ │ │ ├── engine_rule.h
│ │ │ │ └── engine_transformer.h
│ │ ├── rule.cc
│ │ └── transformer.cc
│ │ └── linter
│ │ ├── CMakeLists.txt
│ │ ├── antipattern
│ │ ├── const_with_type.h
│ │ ├── duplicate_enum_values.h
│ │ ├── duplicate_required_values.h
│ │ ├── enum_with_type.h
│ │ ├── exclusive_maximum_number_and_maximum.h
│ │ └── exclusive_minimum_number_and_minimum.h
│ │ ├── desugar
│ │ ├── boolean_true.h
│ │ ├── const_as_enum.h
│ │ ├── exclusive_maximum_integer_to_maximum.h
│ │ ├── exclusive_minimum_integer_to_minimum.h
│ │ ├── type_array_to_any_of_2020_12.h
│ │ ├── type_boolean_as_enum.h
│ │ └── type_null_as_enum.h
│ │ ├── implicit
│ │ ├── max_contains_covered_by_max_items.h
│ │ ├── min_items_given_min_contains.h
│ │ ├── min_items_implicit.h
│ │ ├── min_length_implicit.h
│ │ ├── min_properties_covered_by_required.h
│ │ ├── min_properties_implicit.h
│ │ ├── multiple_of_implicit.h
│ │ ├── properties_implicit.h
│ │ └── type_union_implicit.h
│ │ ├── include
│ │ └── sourcemeta
│ │ │ └── alterschema
│ │ │ └── linter.h
│ │ ├── linter.cc
│ │ ├── redundant
│ │ ├── additional_properties_default.h
│ │ ├── content_schema_default.h
│ │ ├── dependencies_default.h
│ │ ├── dependent_required_default.h
│ │ ├── items_array_default.h
│ │ ├── items_schema_default.h
│ │ ├── pattern_properties_default.h
│ │ ├── properties_default.h
│ │ ├── unevaluated_items_default.h
│ │ ├── unevaluated_properties_default.h
│ │ ├── unsatisfiable_max_contains.h
│ │ └── unsatisfiable_min_properties.h
│ │ ├── simplify
│ │ ├── dependencies_property_tautology.h
│ │ ├── dependent_required_tautology.h
│ │ ├── equal_numeric_bounds_to_enum.h
│ │ ├── maximum_real_for_integer.h
│ │ ├── minimum_real_for_integer.h
│ │ └── single_type_array.h
│ │ ├── superfluous
│ │ ├── content_media_type_without_encoding.h
│ │ ├── content_schema_without_media_type.h
│ │ ├── drop_non_array_keywords_applicator_2019_09.h
│ │ ├── drop_non_array_keywords_applicator_2020_12.h
│ │ ├── drop_non_array_keywords_content_2019_09.h
│ │ ├── drop_non_array_keywords_content_2020_12.h
│ │ ├── drop_non_array_keywords_draft0.h
│ │ ├── drop_non_array_keywords_draft1.h
│ │ ├── drop_non_array_keywords_draft2.h
│ │ ├── drop_non_array_keywords_draft3.h
│ │ ├── drop_non_array_keywords_draft4.h
│ │ ├── drop_non_array_keywords_draft6.h
│ │ ├── drop_non_array_keywords_draft7.h
│ │ ├── drop_non_array_keywords_format_2019_09.h
│ │ ├── drop_non_array_keywords_format_2020_12.h
│ │ ├── drop_non_array_keywords_unevaluated_2020_12.h
│ │ ├── drop_non_array_keywords_validation_2019_09.h
│ │ ├── drop_non_array_keywords_validation_2020_12.h
│ │ ├── drop_non_boolean_keywords_applicator_2019_09.h
│ │ ├── drop_non_boolean_keywords_applicator_2020_12.h
│ │ ├── drop_non_boolean_keywords_content_2019_09.h
│ │ ├── drop_non_boolean_keywords_content_2020_12.h
│ │ ├── drop_non_boolean_keywords_draft0.h
│ │ ├── drop_non_boolean_keywords_draft1.h
│ │ ├── drop_non_boolean_keywords_draft2.h
│ │ ├── drop_non_boolean_keywords_draft3.h
│ │ ├── drop_non_boolean_keywords_draft4.h
│ │ ├── drop_non_boolean_keywords_draft6.h
│ │ ├── drop_non_boolean_keywords_draft7.h
│ │ ├── drop_non_boolean_keywords_format_2019_09.h
│ │ ├── drop_non_boolean_keywords_format_2020_12.h
│ │ ├── drop_non_boolean_keywords_unevaluated_2020_12.h
│ │ ├── drop_non_boolean_keywords_validation_2019_09.h
│ │ ├── drop_non_boolean_keywords_validation_2020_12.h
│ │ ├── drop_non_null_keywords_applicator_2019_09.h
│ │ ├── drop_non_null_keywords_applicator_2020_12.h
│ │ ├── drop_non_null_keywords_content_2019_09.h
│ │ ├── drop_non_null_keywords_content_2020_12.h
│ │ ├── drop_non_null_keywords_draft0.h
│ │ ├── drop_non_null_keywords_draft1.h
│ │ ├── drop_non_null_keywords_draft2.h
│ │ ├── drop_non_null_keywords_draft3.h
│ │ ├── drop_non_null_keywords_draft4.h
│ │ ├── drop_non_null_keywords_draft6.h
│ │ ├── drop_non_null_keywords_draft7.h
│ │ ├── drop_non_null_keywords_format_2019_09.h
│ │ ├── drop_non_null_keywords_format_2020_12.h
│ │ ├── drop_non_null_keywords_unevaluated_2020_12.h
│ │ ├── drop_non_null_keywords_validation_2019_09.h
│ │ ├── drop_non_null_keywords_validation_2020_12.h
│ │ ├── drop_non_numeric_keywords_applicator_2019_09.h
│ │ ├── drop_non_numeric_keywords_applicator_2020_12.h
│ │ ├── drop_non_numeric_keywords_content_2019_09.h
│ │ ├── drop_non_numeric_keywords_content_2020_12.h
│ │ ├── drop_non_numeric_keywords_draft0.h
│ │ ├── drop_non_numeric_keywords_draft1.h
│ │ ├── drop_non_numeric_keywords_draft2.h
│ │ ├── drop_non_numeric_keywords_draft3.h
│ │ ├── drop_non_numeric_keywords_draft4.h
│ │ ├── drop_non_numeric_keywords_draft6.h
│ │ ├── drop_non_numeric_keywords_draft7.h
│ │ ├── drop_non_numeric_keywords_format_2019_09.h
│ │ ├── drop_non_numeric_keywords_format_2020_12.h
│ │ ├── drop_non_numeric_keywords_unevaluated_2020_12.h
│ │ ├── drop_non_numeric_keywords_validation_2019_09.h
│ │ ├── drop_non_numeric_keywords_validation_2020_12.h
│ │ ├── drop_non_object_keywords_applicator_2019_09.h
│ │ ├── drop_non_object_keywords_applicator_2020_12.h
│ │ ├── drop_non_object_keywords_content_2019_09.h
│ │ ├── drop_non_object_keywords_content_2020_12.h
│ │ ├── drop_non_object_keywords_draft0.h
│ │ ├── drop_non_object_keywords_draft1.h
│ │ ├── drop_non_object_keywords_draft2.h
│ │ ├── drop_non_object_keywords_draft3.h
│ │ ├── drop_non_object_keywords_draft4.h
│ │ ├── drop_non_object_keywords_draft6.h
│ │ ├── drop_non_object_keywords_draft7.h
│ │ ├── drop_non_object_keywords_format_2019_09.h
│ │ ├── drop_non_object_keywords_format_2020_12.h
│ │ ├── drop_non_object_keywords_unevaluated_2020_12.h
│ │ ├── drop_non_object_keywords_validation_2019_09.h
│ │ ├── drop_non_object_keywords_validation_2020_12.h
│ │ ├── drop_non_string_keywords_applicator_2019_09.h
│ │ ├── drop_non_string_keywords_applicator_2020_12.h
│ │ ├── drop_non_string_keywords_draft0.h
│ │ ├── drop_non_string_keywords_draft1.h
│ │ ├── drop_non_string_keywords_draft2.h
│ │ ├── drop_non_string_keywords_draft3.h
│ │ ├── drop_non_string_keywords_draft4.h
│ │ ├── drop_non_string_keywords_draft6.h
│ │ ├── drop_non_string_keywords_draft7.h
│ │ ├── drop_non_string_keywords_unevaluated_2020_12.h
│ │ ├── drop_non_string_keywords_validation_2019_09.h
│ │ ├── drop_non_string_keywords_validation_2020_12.h
│ │ ├── duplicate_allof_branches.h
│ │ ├── duplicate_anyof_branches.h
│ │ ├── else_without_if.h
│ │ ├── if_without_then_else.h
│ │ ├── max_contains_without_contains.h
│ │ ├── min_contains_without_contains.h
│ │ └── then_without_if.h
│ │ └── syntax_sugar
│ │ └── enum_to_const.h
├── bootstrap.mask
├── bootstrap
│ └── scss
│ │ ├── _accordion.scss
│ │ ├── _alert.scss
│ │ ├── _badge.scss
│ │ ├── _breadcrumb.scss
│ │ ├── _button-group.scss
│ │ ├── _buttons.scss
│ │ ├── _card.scss
│ │ ├── _carousel.scss
│ │ ├── _close.scss
│ │ ├── _containers.scss
│ │ ├── _dropdown.scss
│ │ ├── _forms.scss
│ │ ├── _functions.scss
│ │ ├── _grid.scss
│ │ ├── _helpers.scss
│ │ ├── _images.scss
│ │ ├── _list-group.scss
│ │ ├── _mixins.scss
│ │ ├── _modal.scss
│ │ ├── _nav.scss
│ │ ├── _navbar.scss
│ │ ├── _offcanvas.scss
│ │ ├── _pagination.scss
│ │ ├── _placeholders.scss
│ │ ├── _popover.scss
│ │ ├── _progress.scss
│ │ ├── _reboot.scss
│ │ ├── _root.scss
│ │ ├── _spinners.scss
│ │ ├── _tables.scss
│ │ ├── _toasts.scss
│ │ ├── _tooltip.scss
│ │ ├── _transitions.scss
│ │ ├── _type.scss
│ │ ├── _utilities.scss
│ │ ├── _variables.scss
│ │ ├── bootstrap-grid.scss
│ │ ├── bootstrap-reboot.scss
│ │ ├── bootstrap-utilities.scss
│ │ ├── bootstrap.scss
│ │ ├── forms
│ │ ├── _floating-labels.scss
│ │ ├── _form-check.scss
│ │ ├── _form-control.scss
│ │ ├── _form-range.scss
│ │ ├── _form-select.scss
│ │ ├── _form-text.scss
│ │ ├── _input-group.scss
│ │ ├── _labels.scss
│ │ └── _validation.scss
│ │ ├── helpers
│ │ ├── _clearfix.scss
│ │ ├── _colored-links.scss
│ │ ├── _position.scss
│ │ ├── _ratio.scss
│ │ ├── _stacks.scss
│ │ ├── _stretched-link.scss
│ │ ├── _text-truncation.scss
│ │ ├── _visually-hidden.scss
│ │ └── _vr.scss
│ │ ├── mixins
│ │ ├── _alert.scss
│ │ ├── _backdrop.scss
│ │ ├── _border-radius.scss
│ │ ├── _box-shadow.scss
│ │ ├── _breakpoints.scss
│ │ ├── _buttons.scss
│ │ ├── _caret.scss
│ │ ├── _clearfix.scss
│ │ ├── _color-scheme.scss
│ │ ├── _container.scss
│ │ ├── _deprecate.scss
│ │ ├── _forms.scss
│ │ ├── _gradients.scss
│ │ ├── _grid.scss
│ │ ├── _image.scss
│ │ ├── _list-group.scss
│ │ ├── _lists.scss
│ │ ├── _pagination.scss
│ │ ├── _reset-text.scss
│ │ ├── _resize.scss
│ │ ├── _table-variants.scss
│ │ ├── _text-truncate.scss
│ │ ├── _transition.scss
│ │ ├── _utilities.scss
│ │ └── _visually-hidden.scss
│ │ ├── utilities
│ │ └── _api.scss
│ │ └── vendor
│ │ └── _rfs.scss
├── core
│ ├── CMakeLists.txt
│ ├── LICENSE
│ ├── cmake
│ │ ├── FindBoostRegex.cmake
│ │ ├── FindGoogleBenchmark.cmake
│ │ ├── FindGoogleTest.cmake
│ │ ├── FindUriParser.cmake
│ │ ├── Findyaml.cmake
│ │ ├── Sourcemeta.cmake
│ │ └── common
│ │ │ ├── commands
│ │ │ └── copy-file.cmake
│ │ │ ├── compiler
│ │ │ ├── options.cmake
│ │ │ ├── sanitizer.cmake
│ │ │ └── simd.cmake
│ │ │ ├── defaults.cmake
│ │ │ ├── options
│ │ │ └── enum.cmake
│ │ │ ├── shim.cmake
│ │ │ ├── targets
│ │ │ ├── clang-format.cmake
│ │ │ ├── clang-format.config
│ │ │ ├── clang-tidy.cmake
│ │ │ ├── clang-tidy.config
│ │ │ ├── doxygen.cmake
│ │ │ ├── executable.cmake
│ │ │ ├── googlebenchmark.cmake
│ │ │ ├── googletest.cmake
│ │ │ ├── library.cmake
│ │ │ └── shellcheck.cmake
│ │ │ └── variables.cmake
│ ├── config.cmake.in
│ ├── src
│ │ ├── core
│ │ │ ├── json
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── grammar.h
│ │ │ │ ├── include
│ │ │ │ │ └── sourcemeta
│ │ │ │ │ │ └── core
│ │ │ │ │ │ ├── json.h
│ │ │ │ │ │ ├── json_array.h
│ │ │ │ │ │ ├── json_error.h
│ │ │ │ │ │ ├── json_hash.h
│ │ │ │ │ │ ├── json_object.h
│ │ │ │ │ │ └── json_value.h
│ │ │ │ ├── json.cc
│ │ │ │ ├── json_value.cc
│ │ │ │ ├── parser.h
│ │ │ │ └── stringify.h
│ │ │ ├── jsonl
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── grammar.h
│ │ │ │ ├── include
│ │ │ │ │ └── sourcemeta
│ │ │ │ │ │ └── core
│ │ │ │ │ │ ├── jsonl.h
│ │ │ │ │ │ └── jsonl_iterator.h
│ │ │ │ ├── iterator.cc
│ │ │ │ └── jsonl.cc
│ │ │ ├── jsonpointer
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── grammar.h
│ │ │ │ ├── include
│ │ │ │ │ └── sourcemeta
│ │ │ │ │ │ └── core
│ │ │ │ │ │ ├── jsonpointer.h
│ │ │ │ │ │ ├── jsonpointer_error.h
│ │ │ │ │ │ ├── jsonpointer_pointer.h
│ │ │ │ │ │ ├── jsonpointer_position.h
│ │ │ │ │ │ ├── jsonpointer_subpointer_walker.h
│ │ │ │ │ │ ├── jsonpointer_template.h
│ │ │ │ │ │ ├── jsonpointer_token.h
│ │ │ │ │ │ └── jsonpointer_walker.h
│ │ │ │ ├── jsonpointer.cc
│ │ │ │ ├── parser.h
│ │ │ │ ├── position.cc
│ │ │ │ └── stringify.h
│ │ │ ├── jsonschema
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── bundle.cc
│ │ │ │ ├── frame.cc
│ │ │ │ ├── include
│ │ │ │ │ └── sourcemeta
│ │ │ │ │ │ └── core
│ │ │ │ │ │ ├── jsonschema.h
│ │ │ │ │ │ ├── jsonschema_error.h
│ │ │ │ │ │ ├── jsonschema_frame.h
│ │ │ │ │ │ ├── jsonschema_resolver.h
│ │ │ │ │ │ ├── jsonschema_transform.h
│ │ │ │ │ │ ├── jsonschema_types.h
│ │ │ │ │ │ └── jsonschema_walker.h
│ │ │ │ ├── jsonschema.cc
│ │ │ │ ├── official_resolver.cmake
│ │ │ │ ├── official_resolver.in.cc
│ │ │ │ ├── official_walker.cc
│ │ │ │ ├── resolver.cc
│ │ │ │ ├── transformer.cc
│ │ │ │ └── walker.cc
│ │ │ ├── regex
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── include
│ │ │ │ │ └── sourcemeta
│ │ │ │ │ └── core
│ │ │ │ │ └── regex.h
│ │ │ ├── uri
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── escaping.cc
│ │ │ │ ├── include
│ │ │ │ │ └── sourcemeta
│ │ │ │ │ │ └── core
│ │ │ │ │ │ ├── uri.h
│ │ │ │ │ │ └── uri_error.h
│ │ │ │ └── uri.cc
│ │ │ └── yaml
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── include
│ │ │ │ └── sourcemeta
│ │ │ │ │ └── core
│ │ │ │ │ ├── yaml.h
│ │ │ │ │ └── yaml_error.h
│ │ │ │ └── yaml.cc
│ │ └── extension
│ │ │ └── alterschema
│ │ │ ├── CMakeLists.txt
│ │ │ ├── alterschema.cc
│ │ │ ├── antipattern
│ │ │ ├── const_with_type.h
│ │ │ ├── duplicate_enum_values.h
│ │ │ ├── duplicate_required_values.h
│ │ │ ├── enum_with_type.h
│ │ │ ├── exclusive_maximum_number_and_maximum.h
│ │ │ └── exclusive_minimum_number_and_minimum.h
│ │ │ ├── desugar
│ │ │ ├── boolean_true.h
│ │ │ ├── const_as_enum.h
│ │ │ ├── exclusive_maximum_integer_to_maximum.h
│ │ │ ├── exclusive_minimum_integer_to_minimum.h
│ │ │ ├── type_array_to_any_of_2020_12.h
│ │ │ ├── type_boolean_as_enum.h
│ │ │ └── type_null_as_enum.h
│ │ │ ├── implicit
│ │ │ ├── max_contains_covered_by_max_items.h
│ │ │ ├── min_items_given_min_contains.h
│ │ │ ├── min_items_implicit.h
│ │ │ ├── min_length_implicit.h
│ │ │ ├── min_properties_covered_by_required.h
│ │ │ ├── min_properties_implicit.h
│ │ │ ├── multiple_of_implicit.h
│ │ │ ├── properties_implicit.h
│ │ │ └── type_union_implicit.h
│ │ │ ├── include
│ │ │ └── sourcemeta
│ │ │ │ └── core
│ │ │ │ └── alterschema.h
│ │ │ ├── redundant
│ │ │ ├── additional_properties_default.h
│ │ │ ├── content_schema_default.h
│ │ │ ├── dependencies_default.h
│ │ │ ├── dependent_required_default.h
│ │ │ ├── items_array_default.h
│ │ │ ├── items_schema_default.h
│ │ │ ├── pattern_properties_default.h
│ │ │ ├── properties_default.h
│ │ │ ├── unevaluated_items_default.h
│ │ │ ├── unevaluated_properties_default.h
│ │ │ ├── unsatisfiable_max_contains.h
│ │ │ └── unsatisfiable_min_properties.h
│ │ │ ├── simplify
│ │ │ ├── dependencies_property_tautology.h
│ │ │ ├── dependent_required_tautology.h
│ │ │ ├── equal_numeric_bounds_to_enum.h
│ │ │ ├── maximum_real_for_integer.h
│ │ │ ├── minimum_real_for_integer.h
│ │ │ └── single_type_array.h
│ │ │ ├── superfluous
│ │ │ ├── content_media_type_without_encoding.h
│ │ │ ├── content_schema_without_media_type.h
│ │ │ ├── drop_non_array_keywords_applicator_2019_09.h
│ │ │ ├── drop_non_array_keywords_applicator_2020_12.h
│ │ │ ├── drop_non_array_keywords_content_2019_09.h
│ │ │ ├── drop_non_array_keywords_content_2020_12.h
│ │ │ ├── drop_non_array_keywords_draft0.h
│ │ │ ├── drop_non_array_keywords_draft1.h
│ │ │ ├── drop_non_array_keywords_draft2.h
│ │ │ ├── drop_non_array_keywords_draft3.h
│ │ │ ├── drop_non_array_keywords_draft4.h
│ │ │ ├── drop_non_array_keywords_draft6.h
│ │ │ ├── drop_non_array_keywords_draft7.h
│ │ │ ├── drop_non_array_keywords_format_2019_09.h
│ │ │ ├── drop_non_array_keywords_format_2020_12.h
│ │ │ ├── drop_non_array_keywords_unevaluated_2020_12.h
│ │ │ ├── drop_non_array_keywords_validation_2019_09.h
│ │ │ ├── drop_non_array_keywords_validation_2020_12.h
│ │ │ ├── drop_non_boolean_keywords_applicator_2019_09.h
│ │ │ ├── drop_non_boolean_keywords_applicator_2020_12.h
│ │ │ ├── drop_non_boolean_keywords_content_2019_09.h
│ │ │ ├── drop_non_boolean_keywords_content_2020_12.h
│ │ │ ├── drop_non_boolean_keywords_draft0.h
│ │ │ ├── drop_non_boolean_keywords_draft1.h
│ │ │ ├── drop_non_boolean_keywords_draft2.h
│ │ │ ├── drop_non_boolean_keywords_draft3.h
│ │ │ ├── drop_non_boolean_keywords_draft4.h
│ │ │ ├── drop_non_boolean_keywords_draft6.h
│ │ │ ├── drop_non_boolean_keywords_draft7.h
│ │ │ ├── drop_non_boolean_keywords_format_2019_09.h
│ │ │ ├── drop_non_boolean_keywords_format_2020_12.h
│ │ │ ├── drop_non_boolean_keywords_unevaluated_2020_12.h
│ │ │ ├── drop_non_boolean_keywords_validation_2019_09.h
│ │ │ ├── drop_non_boolean_keywords_validation_2020_12.h
│ │ │ ├── drop_non_null_keywords_applicator_2019_09.h
│ │ │ ├── drop_non_null_keywords_applicator_2020_12.h
│ │ │ ├── drop_non_null_keywords_content_2019_09.h
│ │ │ ├── drop_non_null_keywords_content_2020_12.h
│ │ │ ├── drop_non_null_keywords_draft0.h
│ │ │ ├── drop_non_null_keywords_draft1.h
│ │ │ ├── drop_non_null_keywords_draft2.h
│ │ │ ├── drop_non_null_keywords_draft3.h
│ │ │ ├── drop_non_null_keywords_draft4.h
│ │ │ ├── drop_non_null_keywords_draft6.h
│ │ │ ├── drop_non_null_keywords_draft7.h
│ │ │ ├── drop_non_null_keywords_format_2019_09.h
│ │ │ ├── drop_non_null_keywords_format_2020_12.h
│ │ │ ├── drop_non_null_keywords_unevaluated_2020_12.h
│ │ │ ├── drop_non_null_keywords_validation_2019_09.h
│ │ │ ├── drop_non_null_keywords_validation_2020_12.h
│ │ │ ├── drop_non_numeric_keywords_applicator_2019_09.h
│ │ │ ├── drop_non_numeric_keywords_applicator_2020_12.h
│ │ │ ├── drop_non_numeric_keywords_content_2019_09.h
│ │ │ ├── drop_non_numeric_keywords_content_2020_12.h
│ │ │ ├── drop_non_numeric_keywords_draft0.h
│ │ │ ├── drop_non_numeric_keywords_draft1.h
│ │ │ ├── drop_non_numeric_keywords_draft2.h
│ │ │ ├── drop_non_numeric_keywords_draft3.h
│ │ │ ├── drop_non_numeric_keywords_draft4.h
│ │ │ ├── drop_non_numeric_keywords_draft6.h
│ │ │ ├── drop_non_numeric_keywords_draft7.h
│ │ │ ├── drop_non_numeric_keywords_format_2019_09.h
│ │ │ ├── drop_non_numeric_keywords_format_2020_12.h
│ │ │ ├── drop_non_numeric_keywords_unevaluated_2020_12.h
│ │ │ ├── drop_non_numeric_keywords_validation_2019_09.h
│ │ │ ├── drop_non_numeric_keywords_validation_2020_12.h
│ │ │ ├── drop_non_object_keywords_applicator_2019_09.h
│ │ │ ├── drop_non_object_keywords_applicator_2020_12.h
│ │ │ ├── drop_non_object_keywords_content_2019_09.h
│ │ │ ├── drop_non_object_keywords_content_2020_12.h
│ │ │ ├── drop_non_object_keywords_draft0.h
│ │ │ ├── drop_non_object_keywords_draft1.h
│ │ │ ├── drop_non_object_keywords_draft2.h
│ │ │ ├── drop_non_object_keywords_draft3.h
│ │ │ ├── drop_non_object_keywords_draft4.h
│ │ │ ├── drop_non_object_keywords_draft6.h
│ │ │ ├── drop_non_object_keywords_draft7.h
│ │ │ ├── drop_non_object_keywords_format_2019_09.h
│ │ │ ├── drop_non_object_keywords_format_2020_12.h
│ │ │ ├── drop_non_object_keywords_unevaluated_2020_12.h
│ │ │ ├── drop_non_object_keywords_validation_2019_09.h
│ │ │ ├── drop_non_object_keywords_validation_2020_12.h
│ │ │ ├── drop_non_string_keywords_applicator_2019_09.h
│ │ │ ├── drop_non_string_keywords_applicator_2020_12.h
│ │ │ ├── drop_non_string_keywords_draft0.h
│ │ │ ├── drop_non_string_keywords_draft1.h
│ │ │ ├── drop_non_string_keywords_draft2.h
│ │ │ ├── drop_non_string_keywords_draft3.h
│ │ │ ├── drop_non_string_keywords_draft4.h
│ │ │ ├── drop_non_string_keywords_draft6.h
│ │ │ ├── drop_non_string_keywords_draft7.h
│ │ │ ├── drop_non_string_keywords_unevaluated_2020_12.h
│ │ │ ├── drop_non_string_keywords_validation_2019_09.h
│ │ │ ├── drop_non_string_keywords_validation_2020_12.h
│ │ │ ├── duplicate_allof_branches.h
│ │ │ ├── duplicate_anyof_branches.h
│ │ │ ├── else_without_if.h
│ │ │ ├── if_without_then_else.h
│ │ │ ├── max_contains_without_contains.h
│ │ │ ├── min_contains_without_contains.h
│ │ │ └── then_without_if.h
│ │ │ └── syntax_sugar
│ │ │ └── enum_to_const.h
│ └── vendor
│ │ ├── boost-regex.mask
│ │ ├── boost-regex
│ │ └── include
│ │ │ └── boost
│ │ │ ├── cregex.hpp
│ │ │ ├── regex.h
│ │ │ ├── regex.hpp
│ │ │ ├── regex
│ │ │ ├── concepts.hpp
│ │ │ ├── config.hpp
│ │ │ ├── config
│ │ │ │ ├── borland.hpp
│ │ │ │ └── cwchar.hpp
│ │ │ ├── icu.hpp
│ │ │ ├── mfc.hpp
│ │ │ ├── pattern_except.hpp
│ │ │ ├── pending
│ │ │ │ ├── object_cache.hpp
│ │ │ │ ├── static_mutex.hpp
│ │ │ │ └── unicode_iterator.hpp
│ │ │ ├── regex_traits.hpp
│ │ │ ├── user.hpp
│ │ │ ├── v4
│ │ │ │ ├── basic_regex.hpp
│ │ │ │ ├── basic_regex_creator.hpp
│ │ │ │ ├── basic_regex_parser.hpp
│ │ │ │ ├── c_regex_traits.hpp
│ │ │ │ ├── char_regex_traits.hpp
│ │ │ │ ├── cpp_regex_traits.hpp
│ │ │ │ ├── cregex.hpp
│ │ │ │ ├── error_type.hpp
│ │ │ │ ├── icu.hpp
│ │ │ │ ├── indexed_bit_flag.hpp
│ │ │ │ ├── iterator_category.hpp
│ │ │ │ ├── iterator_traits.hpp
│ │ │ │ ├── match_flags.hpp
│ │ │ │ ├── match_results.hpp
│ │ │ │ ├── mem_block_cache.hpp
│ │ │ │ ├── object_cache.hpp
│ │ │ │ ├── pattern_except.hpp
│ │ │ │ ├── perl_matcher.hpp
│ │ │ │ ├── perl_matcher_common.hpp
│ │ │ │ ├── perl_matcher_non_recursive.hpp
│ │ │ │ ├── perl_matcher_recursive.hpp
│ │ │ │ ├── primary_transform.hpp
│ │ │ │ ├── protected_call.hpp
│ │ │ │ ├── regbase.hpp
│ │ │ │ ├── regex.hpp
│ │ │ │ ├── regex_format.hpp
│ │ │ │ ├── regex_fwd.hpp
│ │ │ │ ├── regex_grep.hpp
│ │ │ │ ├── regex_iterator.hpp
│ │ │ │ ├── regex_match.hpp
│ │ │ │ ├── regex_merge.hpp
│ │ │ │ ├── regex_raw_buffer.hpp
│ │ │ │ ├── regex_replace.hpp
│ │ │ │ ├── regex_search.hpp
│ │ │ │ ├── regex_split.hpp
│ │ │ │ ├── regex_token_iterator.hpp
│ │ │ │ ├── regex_traits.hpp
│ │ │ │ ├── regex_traits_defaults.hpp
│ │ │ │ ├── regex_workaround.hpp
│ │ │ │ ├── states.hpp
│ │ │ │ ├── sub_match.hpp
│ │ │ │ ├── syntax_type.hpp
│ │ │ │ ├── u32regex_iterator.hpp
│ │ │ │ ├── u32regex_token_iterator.hpp
│ │ │ │ ├── unicode_iterator.hpp
│ │ │ │ └── w32_regex_traits.hpp
│ │ │ └── v5
│ │ │ │ ├── basic_regex.hpp
│ │ │ │ ├── basic_regex_creator.hpp
│ │ │ │ ├── basic_regex_parser.hpp
│ │ │ │ ├── c_regex_traits.hpp
│ │ │ │ ├── char_regex_traits.hpp
│ │ │ │ ├── cpp_regex_traits.hpp
│ │ │ │ ├── cregex.hpp
│ │ │ │ ├── error_type.hpp
│ │ │ │ ├── icu.hpp
│ │ │ │ ├── iterator_category.hpp
│ │ │ │ ├── iterator_traits.hpp
│ │ │ │ ├── match_flags.hpp
│ │ │ │ ├── match_results.hpp
│ │ │ │ ├── mem_block_cache.hpp
│ │ │ │ ├── object_cache.hpp
│ │ │ │ ├── pattern_except.hpp
│ │ │ │ ├── perl_matcher.hpp
│ │ │ │ ├── perl_matcher_common.hpp
│ │ │ │ ├── perl_matcher_non_recursive.hpp
│ │ │ │ ├── primary_transform.hpp
│ │ │ │ ├── regbase.hpp
│ │ │ │ ├── regex.hpp
│ │ │ │ ├── regex_format.hpp
│ │ │ │ ├── regex_fwd.hpp
│ │ │ │ ├── regex_grep.hpp
│ │ │ │ ├── regex_iterator.hpp
│ │ │ │ ├── regex_match.hpp
│ │ │ │ ├── regex_merge.hpp
│ │ │ │ ├── regex_raw_buffer.hpp
│ │ │ │ ├── regex_replace.hpp
│ │ │ │ ├── regex_search.hpp
│ │ │ │ ├── regex_split.hpp
│ │ │ │ ├── regex_token_iterator.hpp
│ │ │ │ ├── regex_traits.hpp
│ │ │ │ ├── regex_traits_defaults.hpp
│ │ │ │ ├── regex_workaround.hpp
│ │ │ │ ├── states.hpp
│ │ │ │ ├── sub_match.hpp
│ │ │ │ ├── syntax_type.hpp
│ │ │ │ ├── u32regex_iterator.hpp
│ │ │ │ ├── u32regex_token_iterator.hpp
│ │ │ │ ├── unicode_iterator.hpp
│ │ │ │ └── w32_regex_traits.hpp
│ │ │ └── regex_fwd.hpp
│ │ ├── googlebenchmark
│ │ ├── CMakeLists.txt
│ │ ├── LICENSE
│ │ ├── cmake
│ │ │ ├── AddCXXCompilerFlag.cmake
│ │ │ ├── CXXFeatureCheck.cmake
│ │ │ ├── Config.cmake.in
│ │ │ ├── GetGitVersion.cmake
│ │ │ ├── GoogleTest.cmake
│ │ │ ├── GoogleTest.cmake.in
│ │ │ ├── Modules
│ │ │ │ ├── FindLLVMAr.cmake
│ │ │ │ ├── FindLLVMNm.cmake
│ │ │ │ ├── FindLLVMRanLib.cmake
│ │ │ │ └── FindPFM.cmake
│ │ │ ├── benchmark.pc.in
│ │ │ ├── benchmark_main.pc.in
│ │ │ ├── gnu_posix_regex.cpp
│ │ │ ├── llvm-toolchain.cmake
│ │ │ ├── posix_regex.cpp
│ │ │ ├── pthread_affinity.cpp
│ │ │ ├── split_list.cmake
│ │ │ ├── std_regex.cpp
│ │ │ ├── steady_clock.cpp
│ │ │ └── thread_safety_attributes.cpp
│ │ ├── include
│ │ │ └── benchmark
│ │ │ │ ├── benchmark.h
│ │ │ │ └── export.h
│ │ └── src
│ │ │ ├── CMakeLists.txt
│ │ │ ├── arraysize.h
│ │ │ ├── benchmark.cc
│ │ │ ├── benchmark_api_internal.cc
│ │ │ ├── benchmark_api_internal.h
│ │ │ ├── benchmark_main.cc
│ │ │ ├── benchmark_name.cc
│ │ │ ├── benchmark_register.cc
│ │ │ ├── benchmark_register.h
│ │ │ ├── benchmark_runner.cc
│ │ │ ├── benchmark_runner.h
│ │ │ ├── check.cc
│ │ │ ├── check.h
│ │ │ ├── colorprint.cc
│ │ │ ├── colorprint.h
│ │ │ ├── commandlineflags.cc
│ │ │ ├── commandlineflags.h
│ │ │ ├── complexity.cc
│ │ │ ├── complexity.h
│ │ │ ├── console_reporter.cc
│ │ │ ├── counter.cc
│ │ │ ├── counter.h
│ │ │ ├── csv_reporter.cc
│ │ │ ├── cycleclock.h
│ │ │ ├── internal_macros.h
│ │ │ ├── json_reporter.cc
│ │ │ ├── log.h
│ │ │ ├── mutex.h
│ │ │ ├── perf_counters.cc
│ │ │ ├── perf_counters.h
│ │ │ ├── re.h
│ │ │ ├── reporter.cc
│ │ │ ├── statistics.cc
│ │ │ ├── statistics.h
│ │ │ ├── string_util.cc
│ │ │ ├── string_util.h
│ │ │ ├── sysinfo.cc
│ │ │ ├── thread_manager.h
│ │ │ ├── thread_timer.h
│ │ │ ├── timers.cc
│ │ │ └── timers.h
│ │ ├── googletest
│ │ ├── CMakeLists.txt
│ │ ├── LICENSE
│ │ ├── googlemock
│ │ │ ├── CMakeLists.txt
│ │ │ ├── cmake
│ │ │ │ ├── gmock.pc.in
│ │ │ │ └── gmock_main.pc.in
│ │ │ ├── include
│ │ │ │ └── gmock
│ │ │ │ │ ├── gmock-actions.h
│ │ │ │ │ ├── gmock-cardinalities.h
│ │ │ │ │ ├── gmock-function-mocker.h
│ │ │ │ │ ├── gmock-matchers.h
│ │ │ │ │ ├── gmock-more-actions.h
│ │ │ │ │ ├── gmock-more-matchers.h
│ │ │ │ │ ├── gmock-nice-strict.h
│ │ │ │ │ ├── gmock-spec-builders.h
│ │ │ │ │ ├── gmock.h
│ │ │ │ │ └── internal
│ │ │ │ │ ├── custom
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── gmock-generated-actions.h
│ │ │ │ │ ├── gmock-matchers.h
│ │ │ │ │ └── gmock-port.h
│ │ │ │ │ ├── gmock-internal-utils.h
│ │ │ │ │ ├── gmock-port.h
│ │ │ │ │ └── gmock-pp.h
│ │ │ └── src
│ │ │ │ ├── gmock-all.cc
│ │ │ │ ├── gmock-cardinalities.cc
│ │ │ │ ├── gmock-internal-utils.cc
│ │ │ │ ├── gmock-matchers.cc
│ │ │ │ ├── gmock-spec-builders.cc
│ │ │ │ ├── gmock.cc
│ │ │ │ └── gmock_main.cc
│ │ └── googletest
│ │ │ ├── CMakeLists.txt
│ │ │ ├── cmake
│ │ │ ├── Config.cmake.in
│ │ │ ├── gtest.pc.in
│ │ │ ├── gtest_main.pc.in
│ │ │ ├── internal_utils.cmake
│ │ │ └── libgtest.la.in
│ │ │ ├── include
│ │ │ └── gtest
│ │ │ │ ├── gtest-assertion-result.h
│ │ │ │ ├── gtest-death-test.h
│ │ │ │ ├── gtest-matchers.h
│ │ │ │ ├── gtest-message.h
│ │ │ │ ├── gtest-param-test.h
│ │ │ │ ├── gtest-printers.h
│ │ │ │ ├── gtest-spi.h
│ │ │ │ ├── gtest-test-part.h
│ │ │ │ ├── gtest-typed-test.h
│ │ │ │ ├── gtest.h
│ │ │ │ ├── gtest_pred_impl.h
│ │ │ │ ├── gtest_prod.h
│ │ │ │ └── internal
│ │ │ │ ├── custom
│ │ │ │ ├── README.md
│ │ │ │ ├── gtest-port.h
│ │ │ │ ├── gtest-printers.h
│ │ │ │ └── gtest.h
│ │ │ │ ├── gtest-death-test-internal.h
│ │ │ │ ├── gtest-filepath.h
│ │ │ │ ├── gtest-internal.h
│ │ │ │ ├── gtest-param-util.h
│ │ │ │ ├── gtest-port-arch.h
│ │ │ │ ├── gtest-port.h
│ │ │ │ ├── gtest-string.h
│ │ │ │ └── gtest-type-util.h
│ │ │ └── src
│ │ │ ├── gtest-all.cc
│ │ │ ├── gtest-assertion-result.cc
│ │ │ ├── gtest-death-test.cc
│ │ │ ├── gtest-filepath.cc
│ │ │ ├── gtest-internal-inl.h
│ │ │ ├── gtest-matchers.cc
│ │ │ ├── gtest-port.cc
│ │ │ ├── gtest-printers.cc
│ │ │ ├── gtest-test-part.cc
│ │ │ ├── gtest-typed-test.cc
│ │ │ ├── gtest.cc
│ │ │ └── gtest_main.cc
│ │ ├── jsonschema-2019-09
│ │ ├── hyper-schema.json
│ │ ├── links.json
│ │ ├── meta
│ │ │ ├── applicator.json
│ │ │ ├── content.json
│ │ │ ├── core.json
│ │ │ ├── format.json
│ │ │ ├── hyper-schema.json
│ │ │ ├── meta-data.json
│ │ │ └── validation.json
│ │ ├── output
│ │ │ ├── hyper-schema.json
│ │ │ └── schema.json
│ │ └── schema.json
│ │ ├── jsonschema-2020-12
│ │ ├── hyper-schema.json
│ │ ├── links.json
│ │ ├── meta
│ │ │ ├── applicator.json
│ │ │ ├── content.json
│ │ │ ├── core.json
│ │ │ ├── format-annotation.json
│ │ │ ├── format-assertion.json
│ │ │ ├── hyper-schema.json
│ │ │ ├── meta-data.json
│ │ │ ├── unevaluated.json
│ │ │ └── validation.json
│ │ ├── output
│ │ │ └── schema.json
│ │ └── schema.json
│ │ ├── jsonschema-draft0
│ │ ├── hyper-schema.json
│ │ ├── json-ref.json
│ │ ├── links.json
│ │ └── schema.json
│ │ ├── jsonschema-draft1
│ │ ├── hyper-schema.json
│ │ ├── json-ref.json
│ │ ├── links.json
│ │ └── schema.json
│ │ ├── jsonschema-draft2
│ │ ├── hyper-schema.json
│ │ ├── json-ref.json
│ │ ├── links.json
│ │ └── schema.json
│ │ ├── jsonschema-draft3
│ │ ├── hyper-schema.json
│ │ ├── json-ref.json
│ │ ├── links.json
│ │ └── schema.json
│ │ ├── jsonschema-draft4
│ │ ├── hyper-schema.json
│ │ ├── links.json
│ │ └── schema.json
│ │ ├── jsonschema-draft6
│ │ ├── hyper-schema.json
│ │ ├── links.json
│ │ └── schema.json
│ │ ├── jsonschema-draft7
│ │ ├── hyper-schema-output.json
│ │ ├── hyper-schema.json
│ │ ├── links.json
│ │ └── schema.json
│ │ ├── uriparser
│ │ ├── COPYING
│ │ ├── include
│ │ │ └── uriparser
│ │ │ │ ├── Uri.h
│ │ │ │ ├── UriBase.h
│ │ │ │ ├── UriDefsAnsi.h
│ │ │ │ ├── UriDefsConfig.h
│ │ │ │ ├── UriDefsUnicode.h
│ │ │ │ └── UriIp4.h
│ │ └── src
│ │ │ ├── UriCommon.c
│ │ │ ├── UriCommon.h
│ │ │ ├── UriCompare.c
│ │ │ ├── UriConfig.h.in
│ │ │ ├── UriEscape.c
│ │ │ ├── UriFile.c
│ │ │ ├── UriIp4.c
│ │ │ ├── UriIp4Base.c
│ │ │ ├── UriIp4Base.h
│ │ │ ├── UriMemory.c
│ │ │ ├── UriMemory.h
│ │ │ ├── UriNormalize.c
│ │ │ ├── UriNormalizeBase.c
│ │ │ ├── UriNormalizeBase.h
│ │ │ ├── UriParse.c
│ │ │ ├── UriParseBase.c
│ │ │ ├── UriParseBase.h
│ │ │ ├── UriQuery.c
│ │ │ ├── UriRecompose.c
│ │ │ ├── UriResolve.c
│ │ │ └── UriShorten.c
│ │ ├── yaml.mask
│ │ └── yaml
│ │ ├── License
│ │ ├── include
│ │ └── yaml.h
│ │ └── src
│ │ ├── api.c
│ │ ├── dumper.c
│ │ ├── emitter.c
│ │ ├── loader.c
│ │ ├── parser.c
│ │ ├── reader.c
│ │ ├── scanner.c
│ │ ├── writer.c
│ │ └── yaml_private.h
├── noa
│ ├── CMakeLists.txt
│ ├── LICENSE
│ ├── cmake
│ │ ├── FindBoostRegex.cmake
│ │ ├── FindGoogleBenchmark.cmake
│ │ ├── FindGoogleTest.cmake
│ │ ├── noa.cmake
│ │ └── noa
│ │ │ ├── commands
│ │ │ └── copy-file.cmake
│ │ │ ├── compiler
│ │ │ ├── options.cmake
│ │ │ └── sanitizer.cmake
│ │ │ ├── defaults.cmake
│ │ │ ├── options
│ │ │ └── enum.cmake
│ │ │ ├── shim.cmake
│ │ │ ├── targets
│ │ │ ├── clang-format.cmake
│ │ │ ├── clang-format.config
│ │ │ ├── clang-tidy.cmake
│ │ │ ├── clang-tidy.config
│ │ │ ├── doxygen.cmake
│ │ │ ├── executable.cmake
│ │ │ ├── googlebenchmark.cmake
│ │ │ ├── googletest.cmake
│ │ │ ├── library.cmake
│ │ │ └── shellcheck.cmake
│ │ │ └── variables.cmake
│ ├── config.cmake.in
│ ├── src
│ │ ├── flat_map
│ │ │ ├── CMakeLists.txt
│ │ │ └── include
│ │ │ │ └── sourcemeta
│ │ │ │ └── noa
│ │ │ │ └── flat_map.h
│ │ ├── hash
│ │ │ ├── CMakeLists.txt
│ │ │ └── include
│ │ │ │ └── sourcemeta
│ │ │ │ └── noa
│ │ │ │ └── hash.h
│ │ └── regex
│ │ │ ├── CMakeLists.txt
│ │ │ └── include
│ │ │ └── sourcemeta
│ │ │ └── noa
│ │ │ └── regex.h
│ └── vendor
│ │ ├── boost-regex
│ │ └── include
│ │ │ └── boost
│ │ │ ├── cregex.hpp
│ │ │ ├── regex.h
│ │ │ ├── regex.hpp
│ │ │ ├── regex
│ │ │ ├── concepts.hpp
│ │ │ ├── config.hpp
│ │ │ ├── config
│ │ │ │ ├── borland.hpp
│ │ │ │ └── cwchar.hpp
│ │ │ ├── icu.hpp
│ │ │ ├── mfc.hpp
│ │ │ ├── pattern_except.hpp
│ │ │ ├── pending
│ │ │ │ ├── object_cache.hpp
│ │ │ │ ├── static_mutex.hpp
│ │ │ │ └── unicode_iterator.hpp
│ │ │ ├── regex_traits.hpp
│ │ │ ├── user.hpp
│ │ │ ├── v4
│ │ │ │ ├── basic_regex.hpp
│ │ │ │ ├── basic_regex_creator.hpp
│ │ │ │ ├── basic_regex_parser.hpp
│ │ │ │ ├── c_regex_traits.hpp
│ │ │ │ ├── char_regex_traits.hpp
│ │ │ │ ├── cpp_regex_traits.hpp
│ │ │ │ ├── cregex.hpp
│ │ │ │ ├── error_type.hpp
│ │ │ │ ├── icu.hpp
│ │ │ │ ├── indexed_bit_flag.hpp
│ │ │ │ ├── iterator_category.hpp
│ │ │ │ ├── iterator_traits.hpp
│ │ │ │ ├── match_flags.hpp
│ │ │ │ ├── match_results.hpp
│ │ │ │ ├── mem_block_cache.hpp
│ │ │ │ ├── object_cache.hpp
│ │ │ │ ├── pattern_except.hpp
│ │ │ │ ├── perl_matcher.hpp
│ │ │ │ ├── perl_matcher_common.hpp
│ │ │ │ ├── perl_matcher_non_recursive.hpp
│ │ │ │ ├── perl_matcher_recursive.hpp
│ │ │ │ ├── primary_transform.hpp
│ │ │ │ ├── protected_call.hpp
│ │ │ │ ├── regbase.hpp
│ │ │ │ ├── regex.hpp
│ │ │ │ ├── regex_format.hpp
│ │ │ │ ├── regex_fwd.hpp
│ │ │ │ ├── regex_grep.hpp
│ │ │ │ ├── regex_iterator.hpp
│ │ │ │ ├── regex_match.hpp
│ │ │ │ ├── regex_merge.hpp
│ │ │ │ ├── regex_raw_buffer.hpp
│ │ │ │ ├── regex_replace.hpp
│ │ │ │ ├── regex_search.hpp
│ │ │ │ ├── regex_split.hpp
│ │ │ │ ├── regex_token_iterator.hpp
│ │ │ │ ├── regex_traits.hpp
│ │ │ │ ├── regex_traits_defaults.hpp
│ │ │ │ ├── regex_workaround.hpp
│ │ │ │ ├── states.hpp
│ │ │ │ ├── sub_match.hpp
│ │ │ │ ├── syntax_type.hpp
│ │ │ │ ├── u32regex_iterator.hpp
│ │ │ │ ├── u32regex_token_iterator.hpp
│ │ │ │ ├── unicode_iterator.hpp
│ │ │ │ └── w32_regex_traits.hpp
│ │ │ └── v5
│ │ │ │ ├── basic_regex.hpp
│ │ │ │ ├── basic_regex_creator.hpp
│ │ │ │ ├── basic_regex_parser.hpp
│ │ │ │ ├── c_regex_traits.hpp
│ │ │ │ ├── char_regex_traits.hpp
│ │ │ │ ├── cpp_regex_traits.hpp
│ │ │ │ ├── cregex.hpp
│ │ │ │ ├── error_type.hpp
│ │ │ │ ├── icu.hpp
│ │ │ │ ├── iterator_category.hpp
│ │ │ │ ├── iterator_traits.hpp
│ │ │ │ ├── match_flags.hpp
│ │ │ │ ├── match_results.hpp
│ │ │ │ ├── mem_block_cache.hpp
│ │ │ │ ├── object_cache.hpp
│ │ │ │ ├── pattern_except.hpp
│ │ │ │ ├── perl_matcher.hpp
│ │ │ │ ├── perl_matcher_common.hpp
│ │ │ │ ├── perl_matcher_non_recursive.hpp
│ │ │ │ ├── primary_transform.hpp
│ │ │ │ ├── regbase.hpp
│ │ │ │ ├── regex.hpp
│ │ │ │ ├── regex_format.hpp
│ │ │ │ ├── regex_fwd.hpp
│ │ │ │ ├── regex_grep.hpp
│ │ │ │ ├── regex_iterator.hpp
│ │ │ │ ├── regex_match.hpp
│ │ │ │ ├── regex_merge.hpp
│ │ │ │ ├── regex_raw_buffer.hpp
│ │ │ │ ├── regex_replace.hpp
│ │ │ │ ├── regex_search.hpp
│ │ │ │ ├── regex_split.hpp
│ │ │ │ ├── regex_token_iterator.hpp
│ │ │ │ ├── regex_traits.hpp
│ │ │ │ ├── regex_traits_defaults.hpp
│ │ │ │ ├── regex_workaround.hpp
│ │ │ │ ├── states.hpp
│ │ │ │ ├── sub_match.hpp
│ │ │ │ ├── syntax_type.hpp
│ │ │ │ ├── u32regex_iterator.hpp
│ │ │ │ ├── u32regex_token_iterator.hpp
│ │ │ │ ├── unicode_iterator.hpp
│ │ │ │ └── w32_regex_traits.hpp
│ │ │ └── regex_fwd.hpp
│ │ ├── googlebenchmark
│ │ ├── CMakeLists.txt
│ │ ├── LICENSE
│ │ ├── cmake
│ │ │ ├── AddCXXCompilerFlag.cmake
│ │ │ ├── CXXFeatureCheck.cmake
│ │ │ ├── Config.cmake.in
│ │ │ ├── GetGitVersion.cmake
│ │ │ ├── GoogleTest.cmake
│ │ │ ├── GoogleTest.cmake.in
│ │ │ ├── Modules
│ │ │ │ ├── FindLLVMAr.cmake
│ │ │ │ ├── FindLLVMNm.cmake
│ │ │ │ ├── FindLLVMRanLib.cmake
│ │ │ │ └── FindPFM.cmake
│ │ │ ├── benchmark.pc.in
│ │ │ ├── benchmark_main.pc.in
│ │ │ ├── gnu_posix_regex.cpp
│ │ │ ├── llvm-toolchain.cmake
│ │ │ ├── posix_regex.cpp
│ │ │ ├── pthread_affinity.cpp
│ │ │ ├── split_list.cmake
│ │ │ ├── std_regex.cpp
│ │ │ ├── steady_clock.cpp
│ │ │ └── thread_safety_attributes.cpp
│ │ ├── include
│ │ │ └── benchmark
│ │ │ │ ├── benchmark.h
│ │ │ │ └── export.h
│ │ └── src
│ │ │ ├── CMakeLists.txt
│ │ │ ├── arraysize.h
│ │ │ ├── benchmark.cc
│ │ │ ├── benchmark_api_internal.cc
│ │ │ ├── benchmark_api_internal.h
│ │ │ ├── benchmark_main.cc
│ │ │ ├── benchmark_name.cc
│ │ │ ├── benchmark_register.cc
│ │ │ ├── benchmark_register.h
│ │ │ ├── benchmark_runner.cc
│ │ │ ├── benchmark_runner.h
│ │ │ ├── check.cc
│ │ │ ├── check.h
│ │ │ ├── colorprint.cc
│ │ │ ├── colorprint.h
│ │ │ ├── commandlineflags.cc
│ │ │ ├── commandlineflags.h
│ │ │ ├── complexity.cc
│ │ │ ├── complexity.h
│ │ │ ├── console_reporter.cc
│ │ │ ├── counter.cc
│ │ │ ├── counter.h
│ │ │ ├── csv_reporter.cc
│ │ │ ├── cycleclock.h
│ │ │ ├── internal_macros.h
│ │ │ ├── json_reporter.cc
│ │ │ ├── log.h
│ │ │ ├── mutex.h
│ │ │ ├── perf_counters.cc
│ │ │ ├── perf_counters.h
│ │ │ ├── re.h
│ │ │ ├── reporter.cc
│ │ │ ├── statistics.cc
│ │ │ ├── statistics.h
│ │ │ ├── string_util.cc
│ │ │ ├── string_util.h
│ │ │ ├── sysinfo.cc
│ │ │ ├── thread_manager.h
│ │ │ ├── thread_timer.h
│ │ │ ├── timers.cc
│ │ │ └── timers.h
│ │ ├── googletest
│ │ ├── CMakeLists.txt
│ │ ├── LICENSE
│ │ ├── googlemock
│ │ │ ├── CMakeLists.txt
│ │ │ ├── cmake
│ │ │ │ ├── gmock.pc.in
│ │ │ │ └── gmock_main.pc.in
│ │ │ ├── include
│ │ │ │ └── gmock
│ │ │ │ │ ├── gmock-actions.h
│ │ │ │ │ ├── gmock-cardinalities.h
│ │ │ │ │ ├── gmock-function-mocker.h
│ │ │ │ │ ├── gmock-matchers.h
│ │ │ │ │ ├── gmock-more-actions.h
│ │ │ │ │ ├── gmock-more-matchers.h
│ │ │ │ │ ├── gmock-nice-strict.h
│ │ │ │ │ ├── gmock-spec-builders.h
│ │ │ │ │ ├── gmock.h
│ │ │ │ │ └── internal
│ │ │ │ │ ├── custom
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── gmock-generated-actions.h
│ │ │ │ │ ├── gmock-matchers.h
│ │ │ │ │ └── gmock-port.h
│ │ │ │ │ ├── gmock-internal-utils.h
│ │ │ │ │ ├── gmock-port.h
│ │ │ │ │ └── gmock-pp.h
│ │ │ └── src
│ │ │ │ ├── gmock-all.cc
│ │ │ │ ├── gmock-cardinalities.cc
│ │ │ │ ├── gmock-internal-utils.cc
│ │ │ │ ├── gmock-matchers.cc
│ │ │ │ ├── gmock-spec-builders.cc
│ │ │ │ ├── gmock.cc
│ │ │ │ └── gmock_main.cc
│ │ └── googletest
│ │ │ ├── CMakeLists.txt
│ │ │ ├── cmake
│ │ │ ├── Config.cmake.in
│ │ │ ├── gtest.pc.in
│ │ │ ├── gtest_main.pc.in
│ │ │ ├── internal_utils.cmake
│ │ │ └── libgtest.la.in
│ │ │ ├── include
│ │ │ └── gtest
│ │ │ │ ├── gtest-assertion-result.h
│ │ │ │ ├── gtest-death-test.h
│ │ │ │ ├── gtest-matchers.h
│ │ │ │ ├── gtest-message.h
│ │ │ │ ├── gtest-param-test.h
│ │ │ │ ├── gtest-printers.h
│ │ │ │ ├── gtest-spi.h
│ │ │ │ ├── gtest-test-part.h
│ │ │ │ ├── gtest-typed-test.h
│ │ │ │ ├── gtest.h
│ │ │ │ ├── gtest_pred_impl.h
│ │ │ │ ├── gtest_prod.h
│ │ │ │ └── internal
│ │ │ │ ├── custom
│ │ │ │ ├── README.md
│ │ │ │ ├── gtest-port.h
│ │ │ │ ├── gtest-printers.h
│ │ │ │ └── gtest.h
│ │ │ │ ├── gtest-death-test-internal.h
│ │ │ │ ├── gtest-filepath.h
│ │ │ │ ├── gtest-internal.h
│ │ │ │ ├── gtest-param-util.h
│ │ │ │ ├── gtest-port-arch.h
│ │ │ │ ├── gtest-port.h
│ │ │ │ ├── gtest-string.h
│ │ │ │ └── gtest-type-util.h
│ │ │ └── src
│ │ │ ├── gtest-all.cc
│ │ │ ├── gtest-assertion-result.cc
│ │ │ ├── gtest-death-test.cc
│ │ │ ├── gtest-filepath.cc
│ │ │ ├── gtest-internal-inl.h
│ │ │ ├── gtest-matchers.cc
│ │ │ ├── gtest-port.cc
│ │ │ ├── gtest-printers.cc
│ │ │ ├── gtest-test-part.cc
│ │ │ ├── gtest-typed-test.cc
│ │ │ ├── gtest.cc
│ │ │ └── gtest_main.cc
│ │ └── vendorpull
│ │ ├── LICENSE
│ │ └── pull
└── vendorpull
│ ├── LICENSE
│ └── pull
└── vendorpull.mask
/.ackrc:
--------------------------------------------------------------------------------
1 | --ignore-dir=vendor
2 | --ignore-dir=build
3 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # editorconfig.org
2 | root = true
3 |
4 | [*]
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | charset = utf-8
9 | trim_trailing_whitespace = true
10 | insert_final_newline = true
11 |
12 | [Makefile]
13 | indent_style = tab
14 |
15 | [*.mk]
16 | indent_style = tab
17 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | /vendor/** linguist-generated=true
2 | *.bin binary diff=hex
3 | * -text
4 |
--------------------------------------------------------------------------------
/.github/workflows/website-build.yml:
--------------------------------------------------------------------------------
1 | name: website
2 | on:
3 | pull_request:
4 |
5 | concurrency:
6 | group: website-build-${{ github.ref }}
7 | cancel-in-progress: true
8 |
9 | jobs:
10 | build:
11 | runs-on: ubuntu-latest
12 | steps:
13 | - name: Checkout
14 | uses: actions/checkout@v3
15 | - run: sudo apt update
16 | - run: sudo apt-get install --yes doxygen
17 | - run: >
18 | cmake -S . -B ./build
19 | -DCMAKE_BUILD_TYPE:STRING=Release
20 | -DJSONBINPACK_NUMERIC:BOOL=OFF
21 | -DJSONBINPACK_RUNTIME:BOOL=OFF
22 | -DJSONBINPACK_COMPILER:BOOL=OFF
23 | -DJSONBINPACK_TESTS:BOOL=OFF
24 | -DJSONBINPACK_DOCS:BOOL=ON
25 | - run: cmake --build ./build --config Release --target doxygen
26 |
--------------------------------------------------------------------------------
/Brewfile:
--------------------------------------------------------------------------------
1 | brew "cmake"
2 | brew "gcc@13"
3 |
--------------------------------------------------------------------------------
/DEPENDENCIES:
--------------------------------------------------------------------------------
1 | vendorpull https://github.com/sourcemeta/vendorpull 70342aaf458e6cb80baeb5b718901075fc42ede6
2 | core https://github.com/sourcemeta/core 1aa4a617548bf482420e8757ecd10308cddae7a2
3 | bootstrap https://github.com/twbs/bootstrap 1a6fdfae6be09b09eaced8f0e442ca6f7680a61e
4 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | This software is dual-licensed: you can redistribute it and/or modify it under
2 | the terms of the GNU Affero General Public License as published by the Free
3 | Software Foundation, either version 3 of the License, or (at your option) any
4 | later version. For the terms of this license, see
5 | .
6 |
7 | You are free to use this software under the terms of the GNU Affero General
8 | Public License WITHOUT ANY WARRANTY; without even the implied warranty of
9 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 |
11 | Alternatively, you can use this software under a commercial license, as set out
12 | in .
13 |
--------------------------------------------------------------------------------
/assets/artwork.sketch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/assets/artwork.sketch
--------------------------------------------------------------------------------
/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/assets/banner.png
--------------------------------------------------------------------------------
/assets/example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/assets/example.png
--------------------------------------------------------------------------------
/assets/timeline.sketch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/assets/timeline.sketch
--------------------------------------------------------------------------------
/cmake/FindCore.cmake:
--------------------------------------------------------------------------------
1 | if(NOT Core_FOUND)
2 | if(JSONBINPACK_INSTALL)
3 | set(SOURCEMETA_CORE_INSTALL ON CACHE BOOL "enable installation")
4 | else()
5 | set(SOURCEMETA_CORE_INSTALL OFF CACHE BOOL "disable installation")
6 | endif()
7 |
8 | set(SOURCEMETA_CORE_JSONL OFF CACHE BOOL "disable JSONL support")
9 | set(SOURCEMETA_CORE_YAML OFF CACHE BOOL "disable YAML support")
10 | set(SOURCEMETA_CORE_CONTRIB_GOOGLETEST ${JSONBINPACK_TESTS} CACHE BOOL "GoogleTest")
11 | set(SOURCEMETA_CORE_CONTRIB_GOOGLEBENCHMARK OFF CACHE BOOL "GoogleBenchmark")
12 | add_subdirectory("${PROJECT_SOURCE_DIR}/vendor/core")
13 | include(Sourcemeta)
14 | set(Core_FOUND ON)
15 | endif()
16 |
--------------------------------------------------------------------------------
/doxygen/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/doxygen/logo.png
--------------------------------------------------------------------------------
/src/compiler/encoding.h:
--------------------------------------------------------------------------------
1 | #ifndef SOURCEMETA_JSONBINPACK_COMPILER_ENCODING_H_
2 | #define SOURCEMETA_JSONBINPACK_COMPILER_ENCODING_H_
3 |
4 | #include
5 | #include
6 |
7 | namespace sourcemeta::jsonbinpack {
8 |
9 | constexpr auto ENCODING_V1{"tag:sourcemeta.com,2024:jsonbinpack/encoding/v1"};
10 |
11 | inline auto make_resolver(const sourcemeta::core::SchemaResolver &fallback)
12 | -> auto {
13 | return [&fallback](std::string_view identifier)
14 | -> std::optional {
15 | if (identifier == ENCODING_V1) {
16 | return sourcemeta::core::parse_json(R"JSON({
17 | "$id": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
18 | "$schema": "https://json-schema.org/draft/2020-12/schema",
19 | "$vocabulary": {
20 | "https://json-schema.org/draft/2020-12/vocab/core": true,
21 | "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1": true
22 | }
23 | })JSON");
24 | } else {
25 | return fallback(identifier);
26 | }
27 | };
28 | }
29 |
30 | } // namespace sourcemeta::jsonbinpack
31 |
32 | #endif
33 |
--------------------------------------------------------------------------------
/src/numeric/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | sourcemeta_library(NAMESPACE sourcemeta PROJECT jsonbinpack NAME numeric
2 | FOLDER "JSON BinPack/Numeric"
3 | PRIVATE_HEADERS integral.h real.h zigzag.h)
4 |
5 | if(JSONBINPACK_INSTALL)
6 | sourcemeta_library_install(NAMESPACE sourcemeta PROJECT jsonbinpack NAME numeric)
7 | endif()
8 |
--------------------------------------------------------------------------------
/src/numeric/include/sourcemeta/jsonbinpack/numeric.h:
--------------------------------------------------------------------------------
1 | #ifndef SOURCEMETA_JSONBINPACK_NUMERIC_H_
2 | #define SOURCEMETA_JSONBINPACK_NUMERIC_H_
3 |
4 | /// @defgroup numeric Numeric
5 | /// @brief A comprehensive numeric library for JSON BinPack
6 | ///
7 | /// This functionality is included as follows:
8 | ///
9 | /// ```cpp
10 | /// #include
11 | /// ```
12 |
13 | #include
14 | #include
15 | #include
16 |
17 | #endif
18 |
--------------------------------------------------------------------------------
/src/numeric/include/sourcemeta/jsonbinpack/numeric_zigzag.h:
--------------------------------------------------------------------------------
1 | #ifndef SOURCEMETA_JSONBINPACK_NUMERIC_ZIGZAG_H_
2 | #define SOURCEMETA_JSONBINPACK_NUMERIC_ZIGZAG_H_
3 |
4 | #include // std::abs
5 | #include // std::uint64_t, std::int64_t
6 |
7 | namespace sourcemeta::jsonbinpack {
8 |
9 | /// @ingroup numeric
10 | constexpr auto zigzag_encode(const std::int64_t value) noexcept
11 | -> std::uint64_t {
12 | if (value >= 0) {
13 | return static_cast(value * 2);
14 | }
15 |
16 | return (static_cast(std::abs(value)) * 2) - 1;
17 | }
18 |
19 | /// @ingroup numeric
20 | constexpr auto zigzag_decode(const std::uint64_t value) noexcept
21 | -> std::int64_t {
22 | if (value % 2 == 0) {
23 | return static_cast(value / 2);
24 | }
25 |
26 | return -(static_cast((value + 1) / 2));
27 | }
28 |
29 | } // namespace sourcemeta::jsonbinpack
30 |
31 | #endif
32 |
--------------------------------------------------------------------------------
/src/runtime/decoder_number.cc:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include // std::pow
4 | #include // std::int64_t, std::uint64_t
5 |
6 | namespace sourcemeta::jsonbinpack {
7 |
8 | auto Decoder::DOUBLE_VARINT_TUPLE(const struct DOUBLE_VARINT_TUPLE &)
9 | -> sourcemeta::core::JSON {
10 | const std::int64_t digits{this->get_varint_zigzag()};
11 | const std::uint64_t point{this->get_varint()};
12 | const double divisor{std::pow(10, static_cast(point))};
13 | return sourcemeta::core::JSON{static_cast(digits) / divisor};
14 | }
15 |
16 | } // namespace sourcemeta::jsonbinpack
17 |
--------------------------------------------------------------------------------
/src/runtime/encoder_number.cc:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | #include // assert
5 | #include // std::uint64_t
6 |
7 | namespace sourcemeta::jsonbinpack {
8 |
9 | auto Encoder::DOUBLE_VARINT_TUPLE(const sourcemeta::core::JSON &document,
10 | const struct DOUBLE_VARINT_TUPLE &) -> void {
11 | assert(document.is_real());
12 | const auto value{document.to_real()};
13 | std::uint64_t point_position;
14 | const std::int64_t integral{
15 | real_digits(value, &point_position)};
16 | this->put_varint_zigzag(integral);
17 | this->put_varint(point_position);
18 | }
19 |
20 | } // namespace sourcemeta::jsonbinpack
21 |
--------------------------------------------------------------------------------
/src/runtime/encoder_object.cc:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include // assert
4 |
5 | namespace sourcemeta::jsonbinpack {
6 |
7 | auto Encoder::FIXED_TYPED_ARBITRARY_OBJECT(
8 | const sourcemeta::core::JSON &document,
9 | const struct FIXED_TYPED_ARBITRARY_OBJECT &options) -> void {
10 | assert(document.is_object());
11 | assert(document.size() == options.size);
12 |
13 | for (const auto &entry : document.as_object()) {
14 | this->write(sourcemeta::core::JSON{entry.first}, *(options.key_encoding));
15 | this->write(entry.second, *(options.encoding));
16 | }
17 | }
18 |
19 | auto Encoder::VARINT_TYPED_ARBITRARY_OBJECT(
20 | const sourcemeta::core::JSON &document,
21 | const struct VARINT_TYPED_ARBITRARY_OBJECT &options) -> void {
22 | assert(document.is_object());
23 | const auto size{document.size()};
24 | this->put_varint(size);
25 |
26 | for (const auto &entry : document.as_object()) {
27 | this->write(sourcemeta::core::JSON{entry.first}, *(options.key_encoding));
28 | this->write(entry.second, *(options.encoding));
29 | }
30 | }
31 |
32 | } // namespace sourcemeta::jsonbinpack
33 |
--------------------------------------------------------------------------------
/src/runtime/loader_v1_number.h:
--------------------------------------------------------------------------------
1 | #ifndef SOURCEMETA_JSONBINPACK_RUNTIME_LOADER_V1_NUMBER_H_
2 | #define SOURCEMETA_JSONBINPACK_RUNTIME_LOADER_V1_NUMBER_H_
3 |
4 | #include
5 |
6 | #include
7 |
8 | namespace sourcemeta::jsonbinpack::v1 {
9 |
10 | auto DOUBLE_VARINT_TUPLE(const sourcemeta::core::JSON &) -> Encoding {
11 | return sourcemeta::jsonbinpack::DOUBLE_VARINT_TUPLE{};
12 | }
13 |
14 | } // namespace sourcemeta::jsonbinpack::v1
15 |
16 | #endif
17 |
--------------------------------------------------------------------------------
/src/runtime/unreachable.h:
--------------------------------------------------------------------------------
1 | #ifndef SOURCEMETA_JSONBINPACK_RUNTIME_UNREACHABLE_H_
2 | #define SOURCEMETA_JSONBINPACK_RUNTIME_UNREACHABLE_H_
3 |
4 | #include // assert
5 |
6 | // Until we are on C++23 and can use std::unreachable
7 | // See https://en.cppreference.com/w/cpp/utility/unreachable
8 | [[noreturn]] inline void unreachable() {
9 | assert(false);
10 | #if defined(_MSC_VER) && !defined(__clang__)
11 | __assume(false);
12 | #else
13 | __builtin_unreachable();
14 | #endif
15 | }
16 |
17 | #endif
18 |
--------------------------------------------------------------------------------
/test/compiler/2020_12_compiler_number_test.cc:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include
4 | #include
5 |
6 | TEST(JSONBinPack_Compiler_Number_2020_12, arbitrary) {
7 | auto schema = sourcemeta::core::parse_json(R"JSON({
8 | "$schema": "https://json-schema.org/draft/2020-12/schema",
9 | "type": "number"
10 | })JSON");
11 |
12 | sourcemeta::jsonbinpack::compile(schema,
13 | sourcemeta::core::schema_official_walker,
14 | sourcemeta::core::schema_official_resolver);
15 |
16 | const auto expected = sourcemeta::core::parse_json(R"JSON({
17 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
18 | "binpackEncoding": "DOUBLE_VARINT_TUPLE",
19 | "binpackOptions": {}
20 | })JSON");
21 |
22 | EXPECT_EQ(schema, expected);
23 | }
24 |
--------------------------------------------------------------------------------
/test/compiler/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | sourcemeta_googletest(NAMESPACE sourcemeta PROJECT jsonbinpack NAME compiler
2 | FOLDER "JSON BinPack/Compiler"
3 | SOURCES
4 | canonicalizer_test.cc compiler_test.cc
5 |
6 | 2020_12_canonicalizer_any_test.cc
7 | 2020_12_canonicalizer_array_test.cc
8 | 2020_12_canonicalizer_boolean_test.cc
9 | 2020_12_canonicalizer_null_test.cc
10 | 2020_12_canonicalizer_number_test.cc
11 | 2020_12_canonicalizer_object_test.cc
12 | 2020_12_canonicalizer_string_test.cc
13 |
14 | 2020_12_compiler_any_test.cc
15 | 2020_12_compiler_integer_test.cc
16 | 2020_12_compiler_number_test.cc)
17 |
18 | target_link_libraries(sourcemeta_jsonbinpack_compiler_unit
19 | PRIVATE sourcemeta::jsonbinpack::compiler)
20 | target_link_libraries(sourcemeta_jsonbinpack_compiler_unit
21 | PRIVATE sourcemeta::core::json)
22 | target_link_libraries(sourcemeta_jsonbinpack_compiler_unit
23 | PRIVATE sourcemeta::core::jsonschema)
24 |
--------------------------------------------------------------------------------
/test/e2e/circleciblank/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 2.0
3 | }
4 |
--------------------------------------------------------------------------------
/test/e2e/circleciblank/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/circleciblank/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/circleciblank/schema-less/output.bin:
--------------------------------------------------------------------------------
1 | version7
--------------------------------------------------------------------------------
/test/e2e/circleciblank/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/circleciblank/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 11
2 |
--------------------------------------------------------------------------------
/test/e2e/circlecimatrix/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 2.1,
3 | "workflows": {
4 | "test": {
5 | "jobs": [
6 | {
7 | "m1": {
8 | "matrix": {
9 | "parameters": {
10 | "a": [1, 2, 3]
11 | }
12 | }
13 | }
14 | }
15 | ]
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/test/e2e/circlecimatrix/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/circlecimatrix/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/circlecimatrix/schema-less/output.bin:
--------------------------------------------------------------------------------
1 | version/*
2 | workflowstestjobsm1matrixparametersa$%
--------------------------------------------------------------------------------
/test/e2e/circlecimatrix/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/circlecimatrix/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 66
2 |
--------------------------------------------------------------------------------
/test/e2e/commitlint/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "scope-case": [2, "always", ["lower-case"]],
4 | "subject-case": [2, "always", ["lower-case"]]
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/e2e/commitlint/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/commitlint/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/commitlint/schema-less/output.bin:
--------------------------------------------------------------------------------
1 | rulesscope-case$9alwaysYlower-case
subject-case$8"X
--------------------------------------------------------------------------------
/test/e2e/commitlint/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/commitlint/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 60
2 |
--------------------------------------------------------------------------------
/test/e2e/commitlintbasic/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "defaultIgnores": false
3 | }
4 |
--------------------------------------------------------------------------------
/test/e2e/commitlintbasic/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/commitlintbasic/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/commitlintbasic/schema-less/output.bin:
--------------------------------------------------------------------------------
1 | defaultIgnores
--------------------------------------------------------------------------------
/test/e2e/commitlintbasic/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/commitlintbasic/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 17
2 |
--------------------------------------------------------------------------------
/test/e2e/epr/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "site": "https://eample.com",
3 | "maxAge": 31536000,
4 | "reportUrl": "https://example.com",
5 | "defaultNavBehavior": "block",
6 | "defaultResBehavior": "block",
7 | "rules": [
8 | { "path": "/", "types": [ "navigation" ], "allowData": false },
9 | { "regex": "^/\\d+$", "types": [ "navigation" ], "allowData": false },
10 | { "path": "/image", "types": [ "image" ], "allowData": true },
11 | { "regex": "^/(scoreboard|random|favorites|recentvisits|create)$", "types": [ "navigation" ], "allowData": false },
12 | { "regex": "^/(recent|popular|metrics|template|search)$", "types": [ "navigation" ], "allowData": true }
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/test/e2e/epr/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/epr/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/epr/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/epr/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/epr/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/epr/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 321
2 |
--------------------------------------------------------------------------------
/test/e2e/eslintrc/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/eslintrc/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/eslintrc/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/eslintrc/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/eslintrc/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/eslintrc/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 969
2 |
--------------------------------------------------------------------------------
/test/e2e/esmrc/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "cjs": false,
3 | "mainFields": [
4 | "main",
5 | "app"
6 | ],
7 | "mode": "strict",
8 | "force": true,
9 | "cache": false,
10 | "sourceMap": true
11 | }
12 |
--------------------------------------------------------------------------------
/test/e2e/esmrc/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/esmrc/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/esmrc/schema-less/output.bin:
--------------------------------------------------------------------------------
1 | ;cjsmainFields)main!appmode9strictforcecache
2 | sourceMap
--------------------------------------------------------------------------------
/test/e2e/esmrc/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/esmrc/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 64
2 |
--------------------------------------------------------------------------------
/test/e2e/geojson/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "MultiPolygon",
3 | "coordinates": [
4 | [
5 | [
6 | [102.0, 2.0],
7 | [103.0, 2.0],
8 | [103.0, 3.0],
9 | [102.0, 3.0],
10 | [102.0, 2.0]
11 | ]
12 | ],
13 | [
14 | [
15 | [100.0, 0.0],
16 | [101.0, 0.0],
17 | [101.0, 1.0],
18 | [100.0, 1.0],
19 | [100.0, 0.0]
20 | ],
21 | [
22 | [100.2, 0.2],
23 | [100.2, 0.8],
24 | [100.8, 0.8],
25 | [100.8, 0.2],
26 | [100.2, 0.2]
27 | ]
28 | ]
29 | ]
30 | }
31 |
--------------------------------------------------------------------------------
/test/e2e/geojson/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/geojson/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/geojson/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/geojson/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/geojson/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/geojson/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 127
2 |
--------------------------------------------------------------------------------
/test/e2e/githubfundingblank/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "github": "EbookFoundation",
3 | "patreon": null,
4 | "open_collective": null,
5 | "ko_fi": null,
6 | "tidelift": null,
7 | "community_bridge": null,
8 | "liberapay": null,
9 | "issuehunt": null,
10 | "otechie": null,
11 | "custom": null
12 | }
13 |
--------------------------------------------------------------------------------
/test/e2e/githubfundingblank/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/githubfundingblank/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/githubfundingblank/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/githubfundingblank/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/githubfundingblank/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/githubfundingblank/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 124
2 |
--------------------------------------------------------------------------------
/test/e2e/githubworkflow/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Test on Pull",
3 | "on": [
4 | "push"
5 | ],
6 | "jobs": {
7 | "build": {
8 | "runs-on": "ubuntu-latest",
9 | "env": {
10 | "build-suite-dir": "./build-suite"
11 | },
12 | "steps": [
13 | {
14 | "uses": "actions/checkout@v1"
15 | },
16 | {
17 | "uses": "actions/setup-node@v1",
18 | "with": {
19 | "node-version": "10.x"
20 | }
21 | },
22 | {
23 | "name": "starting directory",
24 | "run": "ls"
25 | },
26 | {
27 | "name": "build directory",
28 | "run": "ls",
29 | "working-directory": "${{env.build-suite-dir}}"
30 | }
31 | ]
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/test/e2e/githubworkflow/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/githubworkflow/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/githubworkflow/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/githubworkflow/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/githubworkflow/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/githubworkflow/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 277
2 |
--------------------------------------------------------------------------------
/test/e2e/gruntcontribclean/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "foo": [ "path" ],
3 | "main": {
4 | "files": { },
5 | "src": [ "path" ]
6 | },
7 | "options": {
8 | "force": true,
9 | "no-write": true
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/test/e2e/gruntcontribclean/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/gruntcontribclean/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/gruntcontribclean/schema-less/output.bin:
--------------------------------------------------------------------------------
1 | #foo)pathmainfilessrc(optionsforce no-write
--------------------------------------------------------------------------------
/test/e2e/gruntcontribclean/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/gruntcontribclean/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 57
2 |
--------------------------------------------------------------------------------
/test/e2e/imageoptimizerwebjob/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "optimizations": [
3 | {
4 | "includes": [ "node_modules" ],
5 | "excludes": [ "ost" ],
6 | "lossy": true
7 | }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/test/e2e/imageoptimizerwebjob/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/imageoptimizerwebjob/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/imageoptimizerwebjob/schema-less/output.bin:
--------------------------------------------------------------------------------
1 | optimizations# includesinode_modules excludes!ostlossy
--------------------------------------------------------------------------------
/test/e2e/imageoptimizerwebjob/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/imageoptimizerwebjob/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 61
2 |
--------------------------------------------------------------------------------
/test/e2e/jsonereversesort/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "$let": {
3 | "x": [10,30,10,10,10]
4 | },
5 | "in": {
6 | "$reverse": {
7 | "$sort": { "$eval": "x" },
8 | "by(x)": "x"
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/test/e2e/jsonereversesort/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/jsonereversesort/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/jsonereversesort/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/jsonereversesort/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/jsonereversesort/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/jsonereversesort/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 52
2 |
--------------------------------------------------------------------------------
/test/e2e/jsonesort/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "$sort": [1,2,1,3,1],
3 | "by(x)": "x"
4 | }
5 |
--------------------------------------------------------------------------------
/test/e2e/jsonesort/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/jsonesort/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/jsonesort/schema-less/output.bin:
--------------------------------------------------------------------------------
1 | $sort4%by(x)x
--------------------------------------------------------------------------------
/test/e2e/jsonesort/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/jsonesort/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 21
2 |
--------------------------------------------------------------------------------
/test/e2e/jsonfeed/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "https://jsonfeed.org/version/1",
3 | "user_comment": "This is a microblog feed. You can add this to your feed reader using the following URL: https://example.org/feed.json",
4 | "title": "Brent Simmons’s Microblog",
5 | "home_page_url": "https://example.org/",
6 | "feed_url": "https://example.org/feed.json",
7 | "author": {
8 | "name": "Brent Simmons",
9 | "url": "http://example.org/",
10 | "avatar": "https://example.org/avatar.png"
11 | },
12 | "items": [
13 | {
14 | "id": "2347259",
15 | "url": "https://example.org/2347259",
16 | "content_text": "Cats are neat. \n\nhttps://example.org/cats",
17 | "date_published": "2016-02-09T14:22:00-07:00"
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/test/e2e/jsonfeed/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/jsonfeed/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/jsonfeed/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/jsonfeed/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/jsonfeed/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/jsonfeed/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 514
2 |
--------------------------------------------------------------------------------
/test/e2e/jsonresume/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/jsonresume/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/jsonresume/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/jsonresume/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/jsonresume/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/jsonresume/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 2619
2 |
--------------------------------------------------------------------------------
/test/e2e/mixed-bounded-object/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "foo": "bar",
3 | "baz": {
4 | "qux": [ 1, 2 ]
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/e2e/mixed-bounded-object/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/mixed-bounded-object/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/mixed-bounded-object/schema-less/output.bin:
--------------------------------------------------------------------------------
1 | foo!barbazqux
--------------------------------------------------------------------------------
/test/e2e/mixed-bounded-object/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/mixed-bounded-object/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 21
2 |
--------------------------------------------------------------------------------
/test/e2e/netcoreproject/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/netcoreproject/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/netcoreproject/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/netcoreproject/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/netcoreproject/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/netcoreproject/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 748
2 |
--------------------------------------------------------------------------------
/test/e2e/nightwatch/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/nightwatch/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/nightwatch/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/nightwatch/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/nightwatch/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/nightwatch/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 1085
2 |
--------------------------------------------------------------------------------
/test/e2e/openweathermap/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "coord": {
3 | "lon": -122.08,
4 | "lat": 37.39
5 | },
6 | "weather": [
7 | {
8 | "id": 800,
9 | "main": "Clear",
10 | "description": "clear sky",
11 | "icon": "01d"
12 | }
13 | ],
14 | "base": "stations",
15 | "main": {
16 | "temp": 282.55,
17 | "feels_like": 281.86,
18 | "temp_min": 280.37,
19 | "temp_max": 284.26,
20 | "pressure": 1023,
21 | "humidity": 100
22 | },
23 | "visibility": 16093,
24 | "wind": {
25 | "speed": 1.5,
26 | "deg": 350
27 | },
28 | "clouds": {
29 | "all": 1
30 | },
31 | "dt": 1560350645,
32 | "sys": {
33 | "type": 1,
34 | "id": 5122,
35 | "message": 0.0139,
36 | "country": "US",
37 | "sunrise": 1560343627,
38 | "sunset": 1560396563
39 | },
40 | "timezone": -25200,
41 | "id": 420006353,
42 | "name": "Mountain View",
43 | "cod": 200
44 | }
45 |
--------------------------------------------------------------------------------
/test/e2e/openweathermap/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/openweathermap/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/openweathermap/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/openweathermap/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/openweathermap/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/openweathermap/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 349
2 |
--------------------------------------------------------------------------------
/test/e2e/openweatherroadrisk/document.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "dt": 1602702000,
4 | "coord": [
5 | 7.27,
6 | 44.04
7 | ],
8 | "weather": {
9 | "temp": 278.44,
10 | "wind_speed": 2.27,
11 | "wind_deg": 7,
12 | "precipitation_intensity": 0.38,
13 | "dew_point": 276.13
14 | },
15 | "alerts": [
16 | {
17 | "sender_name": "METEO-FRANCE",
18 | "event": "Moderate thunderstorm warning",
19 | "event_level": 2
20 | }
21 | ]
22 | },
23 | {
24 | "dt": 1602702400,
25 | "coord": [
26 | 7.37,
27 | 45.04
28 | ],
29 | "weather": {
30 | "temp": 282.44,
31 | "wind_speed": 1.84,
32 | "wind_deg": 316,
33 | "dew_point": 275.99
34 | },
35 | "alerts": [
36 |
37 | ]
38 | }
39 | ]
40 |
--------------------------------------------------------------------------------
/test/e2e/openweatherroadrisk/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/openweatherroadrisk/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/openweatherroadrisk/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/openweatherroadrisk/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/openweatherroadrisk/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/openweatherroadrisk/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 254
2 |
--------------------------------------------------------------------------------
/test/e2e/ox-test/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "tags": [],
3 | "tz": -25200,
4 | "days": [ 1, 1, 2, 1 ],
5 | "coord": [ -90.0715, 29.9510 ],
6 | "data": [
7 | { "name": "ox03", "staff": true },
8 | {
9 | "name": null,
10 | "staff": false,
11 | "extra": { "info": "" }
12 | },
13 | { "name": "ox03", "staff": true },
14 | {}
15 | ]
16 | }
17 |
--------------------------------------------------------------------------------
/test/e2e/ox-test/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/ox-test/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/ox-test/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/ox-test/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/ox-test/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/ox-test/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 94
2 |
--------------------------------------------------------------------------------
/test/e2e/packagejson/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/packagejson/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/packagejson/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/packagejson/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/packagejson/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/packagejson/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 1957
2 |
--------------------------------------------------------------------------------
/test/e2e/packagejsonlintrc/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/packagejsonlintrc/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/packagejsonlintrc/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/packagejsonlintrc/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/packagejsonlintrc/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/packagejsonlintrc/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 791
2 |
--------------------------------------------------------------------------------
/test/e2e/sapcloudsdkpipeline/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "general": null,
3 | "stages": null,
4 | "steps": null
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/sapcloudsdkpipeline/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/sapcloudsdkpipeline/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/sapcloudsdkpipeline/schema-less/output.bin:
--------------------------------------------------------------------------------
1 | #generalstagessteps
--------------------------------------------------------------------------------
/test/e2e/sapcloudsdkpipeline/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/sapcloudsdkpipeline/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 25
2 |
--------------------------------------------------------------------------------
/test/e2e/travisnotifications/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "notifications": {
3 | "campfire": {
4 | "secure": "sdfusdhfsdofguhdfgubdsifgudfbgs3453durghssecurestringidsuag34522irueg="
5 | },
6 | "irc": {
7 | "secure": "sdfusdhfsdofguhdfgubdsifgudfbgs3453durghssecurestringidsuag34522irueg="
8 | },
9 | "flowdock": {
10 | "secure": "sdfusdhfsdofguhdfgubdsifgudfbgs3453durghssecurestringidsuag34522irueg="
11 | },
12 | "hipchat": {
13 | "secure": "sdfusdhfsdofguhdfgubdsifgudfbgs3453durghssecurestringidsuag34522irueg="
14 | },
15 | "slack": {
16 | "secure": "sdfusdhfsdofguhdfgubdsifgudfbgs3453durghssecurestringidsuag34522irueg="
17 | },
18 | "webhooks": {
19 | "secure": "sdfusdhfsdofguhdfgubdsifgudfbgs3453durghssecurestringidsuag34522irueg="
20 | },
21 | "email": {
22 | "secure": "sdfusdhfsdofguhdfgubdsifgudfbgs3453durghssecurestringidsuag34522irueg="
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/test/e2e/travisnotifications/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/travisnotifications/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/travisnotifications/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/travisnotifications/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/travisnotifications/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/travisnotifications/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 185
2 |
--------------------------------------------------------------------------------
/test/e2e/tslintbasic/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "ordered-imports": {
4 | "options": {
5 | "grouped-imports": true
6 | }
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/test/e2e/tslintbasic/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/tslintbasic/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/tslintbasic/schema-less/output.bin:
--------------------------------------------------------------------------------
1 | rulesordered-importsoptionsgrouped-imports
--------------------------------------------------------------------------------
/test/e2e/tslintbasic/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/tslintbasic/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 51
2 |
--------------------------------------------------------------------------------
/test/e2e/tslintextend/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["tslint-config-unional", "tslint-config-standard"]
3 | }
4 |
--------------------------------------------------------------------------------
/test/e2e/tslintextend/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/tslintextend/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/tslintextend/schema-less/output.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sourcemeta/jsonbinpack/c0503bd6f27f2bcbfe547d923713161d771ca0c4/test/e2e/tslintextend/schema-less/output.bin
--------------------------------------------------------------------------------
/test/e2e/tslintextend/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/tslintextend/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 55
2 |
--------------------------------------------------------------------------------
/test/e2e/tslintmulti/document.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "no-any": [true],
4 | "radix": [true],
5 | "ordered-imports": {
6 | "options": {
7 | "grouped-imports": true
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/test/e2e/tslintmulti/schema-less/canonical.json:
--------------------------------------------------------------------------------
1 | {
2 | "anyOf": [
3 | {
4 | "enum": [ null ]
5 | },
6 | {
7 | "enum": [ false, true ]
8 | },
9 | {
10 | "type": "object",
11 | "minProperties": 0,
12 | "properties": {}
13 | },
14 | {
15 | "type": "array",
16 | "minItems": 0
17 | },
18 | {
19 | "type": "string",
20 | "minLength": 0
21 | },
22 | {
23 | "type": "number",
24 | "multipleOf": 1
25 | },
26 | {
27 | "type": "integer",
28 | "multipleOf": 1
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/test/e2e/tslintmulti/schema-less/encoding.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
3 | "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
4 | "binpackOptions": {}
5 | }
6 |
--------------------------------------------------------------------------------
/test/e2e/tslintmulti/schema-less/output.bin:
--------------------------------------------------------------------------------
1 | rules#no-anyradixordered-importsoptionsgrouped-imports
--------------------------------------------------------------------------------
/test/e2e/tslintmulti/schema-less/schema.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/test/e2e/tslintmulti/schema-less/size.txt:
--------------------------------------------------------------------------------
1 | 68
2 |
--------------------------------------------------------------------------------
/test/numeric/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | sourcemeta_googletest(NAMESPACE sourcemeta PROJECT jsonbinpack NAME numeric
2 | FOLDER "JSON BinPack/Numeric"
3 | SOURCES
4 | zigzag_test.cc
5 | closest_smallest_exponent_test.cc
6 | divide_ceil_test.cc
7 | divide_floor_test.cc
8 | uint_max_test.cc)
9 |
10 | target_link_libraries(sourcemeta_jsonbinpack_numeric_unit
11 | PRIVATE sourcemeta::jsonbinpack::numeric)
12 |
--------------------------------------------------------------------------------
/test/numeric/closest_smallest_exponent_test.cc:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include
4 |
5 | TEST(JSONBinPack_numeric, closest_smallest_exponent_2_2_1_2) {
6 | EXPECT_EQ(sourcemeta::jsonbinpack::closest_smallest_exponent(2, 2, 1, 2), 1);
7 | }
8 |
9 | TEST(JSONBinPack_numeric, closest_smallest_exponent_20_2_1_6) {
10 | EXPECT_EQ(sourcemeta::jsonbinpack::closest_smallest_exponent(20, 2, 1, 6), 4);
11 | }
12 |
13 | TEST(JSONBinPack_numeric, closest_smallest_exponent_20_3_1_6) {
14 | EXPECT_EQ(sourcemeta::jsonbinpack::closest_smallest_exponent(20, 3, 1, 6), 2);
15 | }
16 |
--------------------------------------------------------------------------------
/test/numeric/uint_max_test.cc:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include
4 |
5 | TEST(JSONBinPack_numeric, uint_max_8) {
6 | EXPECT_EQ(sourcemeta::jsonbinpack::uint_max<8>,
7 | std::numeric_limits::max());
8 | }
9 |
10 | TEST(JSONBinPack_numeric, uint_max_5) {
11 | EXPECT_EQ(sourcemeta::jsonbinpack::uint_max<5>, 31);
12 | }
13 |
14 | TEST(JSONBinPack_numeric, uint_max_3) {
15 | EXPECT_EQ(sourcemeta::jsonbinpack::uint_max<3>, 7);
16 | }
17 |
18 | TEST(JSONBinPack_numeric, uint_max_2) {
19 | EXPECT_EQ(sourcemeta::jsonbinpack::uint_max<2>, 3);
20 | }
21 |
--------------------------------------------------------------------------------
/test/packaging/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # TODO: Get install path from a variable?
2 | add_test(NAME packaging.find_package_configure COMMAND
3 | "${CMAKE_COMMAND}"
4 | -S "${CMAKE_CURRENT_SOURCE_DIR}/find_package"
5 | -B "${CMAKE_CURRENT_BINARY_DIR}/find_package"
6 | "-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}"
7 | "-DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH};${PROJECT_SOURCE_DIR}/build/dist"
8 | "-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}")
9 | add_test(NAME packaging.find_package_build COMMAND
10 | "${CMAKE_COMMAND}"
11 | --build "${CMAKE_CURRENT_BINARY_DIR}/find_package"
12 | --config "${CMAKE_BUILD_TYPE}")
13 | set_tests_properties(packaging.find_package_build
14 | PROPERTIES DEPENDS packaging.find_package_configure)
15 |
--------------------------------------------------------------------------------
/test/packaging/find_package/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.18)
2 | project(jsonbinpack_hello VERSION 0.0.1 LANGUAGES CXX)
3 | set(CMAKE_CXX_STANDARD 20)
4 | set(CMAKE_CXX_STANDARD_REQUIRED ON)
5 | set(CMAKE_CXX_EXTENSIONS OFF)
6 | find_package(JSONBinPack REQUIRED)
7 | add_executable(jsonbinpack_hello hello.cc)
8 | target_link_libraries(jsonbinpack_hello PRIVATE sourcemeta::jsonbinpack::runtime)
9 | target_link_libraries(jsonbinpack_hello PRIVATE sourcemeta::jsonbinpack::compiler)
10 |
--------------------------------------------------------------------------------
/test/packaging/find_package/hello.cc:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | #include
5 | #include
6 |
7 | #include // EXIT_SUCCESS
8 | #include // std::cout
9 |
10 | auto main() -> int {
11 | sourcemeta::core::JSON schema = sourcemeta::core::parse_json(R"JSON({
12 | "$schema": "https://json-schema.org/draft/2020-12/schema",
13 | "type": "integer",
14 | "minimum": -100,
15 | "maximum": 100
16 | })JSON");
17 |
18 | sourcemeta::jsonbinpack::compile(schema,
19 | sourcemeta::core::schema_official_walker,
20 | sourcemeta::core::schema_official_resolver);
21 |
22 | const sourcemeta::jsonbinpack::Encoding encoding{
23 | sourcemeta::jsonbinpack::load(schema)};
24 | sourcemeta::jsonbinpack::Encoder encoder{std::cout};
25 |
26 | const sourcemeta::core::JSON instance{5};
27 | encoder.write(instance, encoding);
28 |
29 | std::cout << std::endl;
30 | return EXIT_SUCCESS;
31 | }
32 |
--------------------------------------------------------------------------------
/test/runtime/decode_utils.h:
--------------------------------------------------------------------------------
1 | #ifndef SOURCEMETA_JSONBINPACK_TEST_RUNTIME_DECODE_UTILS_H_
2 | #define SOURCEMETA_JSONBINPACK_TEST_RUNTIME_DECODE_UTILS_H_
3 |
4 | #include
5 |
6 | #include // std::uint8_t
7 | #include // std::initializer_list
8 | #include // std::basic_ostringstream, std::basic_istringstream
9 |
10 | static auto bytes_to_string(std::initializer_list bytes)
11 | -> sourcemeta::core::JSON::String {
12 | std::basic_ostringstream
14 | output{};
15 | for (const auto byte : bytes) {
16 | output.put(static_cast(byte));
17 | }
18 | return output.str();
19 | }
20 |
21 | class InputByteStream
22 | : public std::basic_istringstream {
23 | public:
24 | InputByteStream(std::initializer_list bytes)
25 | : std::basic_istringstream{
26 | bytes_to_string(bytes)} {}
27 | };
28 |
29 | #endif
30 |
--------------------------------------------------------------------------------
/test/runtime/encode_test.cc:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include "encode_utils.h"
4 | #include
5 | #include
6 |
7 | TEST(JSONBinPack_Encoder, generic_encode_BOUNDED_MULTIPLE_8BITS_ENUM_FIXED) {
8 | using namespace sourcemeta::jsonbinpack;
9 | const sourcemeta::core::JSON document{-5};
10 | OutputByteStream stream{};
11 | Encoder encoder{stream};
12 | BOUNDED_MULTIPLE_8BITS_ENUM_FIXED options{-5, -1, 1};
13 | encoder.write(document, options);
14 | EXPECT_BYTES(stream, {0x00});
15 | }
16 |
17 | TEST(JSONBinPack_Encoder, ANY_PACKED_TYPE_TAG_BYTE_PREFIX_many) {
18 | using namespace sourcemeta::jsonbinpack;
19 | OutputByteStream stream{};
20 | Encoder encoder{stream};
21 | ANY_PACKED_TYPE_TAG_BYTE_PREFIX options;
22 | encoder.write(sourcemeta::core::JSON{1}, options);
23 | encoder.write(sourcemeta::core::JSON{2}, options);
24 | encoder.write(sourcemeta::core::JSON{3}, options);
25 | EXPECT_BYTES(stream, {0x15, 0x1d, 0x25});
26 | }
27 |
--------------------------------------------------------------------------------
/test/runtime/encoding_traits_test.cc:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | #include
5 | #include
6 |
7 | TEST(JSONBinPack_Encoding, encoding_movable) {
8 | using namespace sourcemeta::jsonbinpack;
9 | EXPECT_TRUE(std::is_move_constructible_v);
10 | }
11 |
12 | TEST(JSONBinPack_Encoding, encoding_no_nothrow_movable) {
13 | using namespace sourcemeta::jsonbinpack;
14 | EXPECT_FALSE(std::is_nothrow_move_constructible_v);
15 | }
16 |
17 | TEST(JSONBinPack_Encoding, encoding_copyable) {
18 | using namespace sourcemeta::jsonbinpack;
19 | EXPECT_TRUE(std::is_copy_constructible_v);
20 | }
21 |
--------------------------------------------------------------------------------
/test/runtime/v1_loader_test.cc:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include
4 | #include
5 |
6 | TEST(JSONBinPack_Loader_v1, invalid_encoding_name) {
7 | const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({
8 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
9 | "binpackEncoding": "FOO_BAR",
10 | "binpackOptions": {}
11 | })JSON");
12 |
13 | EXPECT_THROW(sourcemeta::jsonbinpack::load(input),
14 | sourcemeta::jsonbinpack::EncodingError);
15 | }
16 |
--------------------------------------------------------------------------------
/test/runtime/v1_number_loader_test.cc:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include
4 | #include
5 |
6 | #include
7 |
8 | TEST(JSONBinPack_Loader_v1, DOUBLE_VARINT_TUPLE) {
9 | const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({
10 | "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1",
11 | "binpackEncoding": "DOUBLE_VARINT_TUPLE",
12 | "binpackOptions": {}
13 | })JSON");
14 |
15 | const auto result{sourcemeta::jsonbinpack::load(input)};
16 | using namespace sourcemeta::jsonbinpack;
17 | EXPECT_TRUE(std::holds_alternative(result));
18 | }
19 |
--------------------------------------------------------------------------------
/vendor/alterschema/LICENSE:
--------------------------------------------------------------------------------
1 | This software is dual-licensed: you can redistribute it and/or modify it under
2 | the terms of the GNU Affero General Public License as published by the Free
3 | Software Foundation, either version 3 of the License, or (at your option) any
4 | later version. For the terms of this license, see
5 | .
6 |
7 | You are free to use this software under the terms of the GNU Affero General
8 | Public License WITHOUT ANY WARRANTY; without even the implied warranty of
9 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 |
11 | Alternatively, you can use this software under a commercial license, as set out
12 | in .
13 |
--------------------------------------------------------------------------------
/vendor/alterschema/config.cmake.in:
--------------------------------------------------------------------------------
1 | @PACKAGE_INIT@
2 |
3 | # Support both casing styles
4 | list(APPEND ALTERSCHEMA_COMPONENTS ${AlterSchema_FIND_COMPONENTS})
5 | list(APPEND ALTERSCHEMA_COMPONENTS ${alterschema_FIND_COMPONENTS})
6 | if(NOT ALTERSCHEMA_COMPONENTS)
7 | list(APPEND ALTERSCHEMA_COMPONENTS engine)
8 | list(APPEND ALTERSCHEMA_COMPONENTS linter)
9 | endif()
10 |
11 | include(CMakeFindDependencyMacro)
12 |
13 | foreach(component ${ALTERSCHEMA_COMPONENTS})
14 | if(component STREQUAL "engine")
15 | find_dependency(JSONToolkit COMPONENTS uri json jsonpointer jsonschema)
16 | include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_alterschema_engine.cmake")
17 | elseif(component STREQUAL "linter")
18 | include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_alterschema_linter.cmake")
19 | else()
20 | message(FATAL_ERROR "Unknown AlterSchema component: ${component}")
21 | endif()
22 | endforeach()
23 |
24 | check_required_components("@PROJECT_NAME@")
25 |
--------------------------------------------------------------------------------
/vendor/alterschema/src/engine/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | noa_library(NAMESPACE sourcemeta PROJECT alterschema NAME engine
2 | FOLDER "AlterSchema/Engine"
3 | PRIVATE_HEADERS bundle.h rule.h transformer.h
4 | SOURCES bundle.cc rule.cc transformer.cc)
5 |
6 | if(ALTERSCHEMA_INSTALL)
7 | noa_library_install(NAMESPACE sourcemeta PROJECT alterschema NAME engine)
8 | endif()
9 |
10 | target_link_libraries(sourcemeta_alterschema_engine PUBLIC
11 | sourcemeta::jsontoolkit::json)
12 | target_link_libraries(sourcemeta_alterschema_engine PUBLIC
13 | sourcemeta::jsontoolkit::jsonpointer)
14 | target_link_libraries(sourcemeta_alterschema_engine PUBLIC
15 | sourcemeta::jsontoolkit::jsonschema)
16 |
--------------------------------------------------------------------------------
/vendor/alterschema/src/engine/include/sourcemeta/alterschema/engine.h:
--------------------------------------------------------------------------------
1 | #ifndef SOURCEMETA_ALTERSCHEMA_ENGINE_H_
2 | #define SOURCEMETA_ALTERSCHEMA_ENGINE_H_
3 |
4 | /// @defgroup engine Engine
5 | /// @brief A general-purpose extensible schema transformation engine.
6 | ///
7 | /// This functionality is included as follows:
8 | ///
9 | /// ```cpp
10 | /// #include
11 | /// ```
12 |
13 | #include
14 | #include
15 | #include
16 |
17 | #endif
18 |
--------------------------------------------------------------------------------
/vendor/alterschema/src/linter/desugar/boolean_true.h:
--------------------------------------------------------------------------------
1 | class BooleanTrue final : public Rule {
2 | public:
3 | BooleanTrue()
4 | : Rule{"boolean_true",
5 | "The boolean schema `true` is syntax sugar for the empty schema"} {
6 | };
7 |
8 | [[nodiscard]] auto condition(const sourcemeta::jsontoolkit::JSON &schema,
9 | const std::string &,
10 | const std::set &,
11 | const sourcemeta::jsontoolkit::Pointer &) const
12 | -> bool override {
13 | return schema.is_boolean() && schema.to_boolean();
14 | }
15 |
16 | auto transform(Transformer &transformer) const -> void override {
17 | transformer.replace(sourcemeta::jsontoolkit::JSON::make_object());
18 | }
19 | };
20 |
--------------------------------------------------------------------------------
/vendor/alterschema/src/linter/superfluous/content_schema_without_media_type.h:
--------------------------------------------------------------------------------
1 | class ContentSchemaWithoutMediaType final : public Rule {
2 | public:
3 | ContentSchemaWithoutMediaType()
4 | : Rule{"content_schema_without_media_type",
5 | "The `contentSchema` keyword is meaningless without the presence "
6 | "of the `contentMediaType` keyword"} {};
7 |
8 | [[nodiscard]] auto condition(const sourcemeta::jsontoolkit::JSON &schema,
9 | const std::string &,
10 | const std::set &vocabularies,
11 | const sourcemeta::jsontoolkit::Pointer &) const
12 | -> bool override {
13 | return contains_any(
14 | vocabularies,
15 | {"https://json-schema.org/draft/2020-12/vocab/content",
16 | "https://json-schema.org/draft/2019-09/vocab/content"}) &&
17 | schema.is_object() && schema.defines("contentSchema") &&
18 | !schema.defines("contentMediaType");
19 | }
20 |
21 | auto transform(Transformer &transformer) const -> void override {
22 | transformer.erase("contentSchema");
23 | }
24 | };
25 |
--------------------------------------------------------------------------------
/vendor/alterschema/src/linter/superfluous/else_without_if.h:
--------------------------------------------------------------------------------
1 | class ElseWithoutIf final : public Rule {
2 | public:
3 | ElseWithoutIf()
4 | : Rule{"else_without_if", "The `else` keyword is meaningless "
5 | "without the presence of the `if` keyword"} {};
6 |
7 | [[nodiscard]] auto condition(const sourcemeta::jsontoolkit::JSON &schema,
8 | const std::string &,
9 | const std::set &vocabularies,
10 | const sourcemeta::jsontoolkit::Pointer &) const
11 | -> bool override {
12 | return contains_any(
13 | vocabularies,
14 | {"https://json-schema.org/draft/2020-12/vocab/applicator",
15 | "https://json-schema.org/draft/2019-09/vocab/applicator",
16 | "http://json-schema.org/draft-07/schema#"}) &&
17 | schema.is_object() && schema.defines("else") &&
18 | !schema.defines("if");
19 | }
20 |
21 | auto transform(Transformer &transformer) const -> void override {
22 | transformer.erase("else");
23 | }
24 | };
25 |
--------------------------------------------------------------------------------
/vendor/alterschema/src/linter/superfluous/if_without_then_else.h:
--------------------------------------------------------------------------------
1 | class IfWithoutThenElse final : public Rule {
2 | public:
3 | IfWithoutThenElse()
4 | : Rule{"if_without_then_else",
5 | "The `if` keyword is meaningless "
6 | "without the presence of the `then` or `else` keywords"} {};
7 |
8 | [[nodiscard]] auto condition(const sourcemeta::jsontoolkit::JSON &schema,
9 | const std::string &,
10 | const std::set &vocabularies,
11 | const sourcemeta::jsontoolkit::Pointer &) const
12 | -> bool override {
13 | return contains_any(
14 | vocabularies,
15 | {"https://json-schema.org/draft/2020-12/vocab/applicator",
16 | "https://json-schema.org/draft/2019-09/vocab/applicator",
17 | "http://json-schema.org/draft-07/schema#"}) &&
18 | schema.is_object() && schema.defines("if") &&
19 | !schema.defines("then") && !schema.defines("else");
20 | }
21 |
22 | auto transform(Transformer &transformer) const -> void override {
23 | transformer.erase("if");
24 | }
25 | };
26 |
--------------------------------------------------------------------------------
/vendor/alterschema/src/linter/superfluous/max_contains_without_contains.h:
--------------------------------------------------------------------------------
1 | class MaxContainsWithoutContains final : public Rule {
2 | public:
3 | MaxContainsWithoutContains()
4 | : Rule{"max_contains_without_contains",
5 | "The `maxContains` keyword is meaningless "
6 | "without the presence of the `contains` keyword"} {};
7 |
8 | [[nodiscard]] auto condition(const sourcemeta::jsontoolkit::JSON &schema,
9 | const std::string &,
10 | const std::set &vocabularies,
11 | const sourcemeta::jsontoolkit::Pointer &) const
12 | -> bool override {
13 | return contains_any(
14 | vocabularies,
15 | {"https://json-schema.org/draft/2020-12/vocab/validation",
16 | "https://json-schema.org/draft/2019-09/vocab/validation"}) &&
17 | schema.is_object() && schema.defines("maxContains") &&
18 | !schema.defines("contains");
19 | }
20 |
21 | auto transform(Transformer &transformer) const -> void override {
22 | transformer.erase("maxContains");
23 | }
24 | };
25 |
--------------------------------------------------------------------------------
/vendor/alterschema/src/linter/superfluous/min_contains_without_contains.h:
--------------------------------------------------------------------------------
1 | class MinContainsWithoutContains final : public Rule {
2 | public:
3 | MinContainsWithoutContains()
4 | : Rule{"min_contains_without_contains",
5 | "The `minContains` keyword is meaningless "
6 | "without the presence of the `contains` keyword"} {};
7 |
8 | [[nodiscard]] auto condition(const sourcemeta::jsontoolkit::JSON &schema,
9 | const std::string &,
10 | const std::set &vocabularies,
11 | const sourcemeta::jsontoolkit::Pointer &) const
12 | -> bool override {
13 | return contains_any(
14 | vocabularies,
15 | {"https://json-schema.org/draft/2020-12/vocab/validation",
16 | "https://json-schema.org/draft/2019-09/vocab/validation"}) &&
17 | schema.is_object() && schema.defines("minContains") &&
18 | !schema.defines("contains");
19 | }
20 |
21 | auto transform(Transformer &transformer) const -> void override {
22 | transformer.erase("minContains");
23 | }
24 | };
25 |
--------------------------------------------------------------------------------
/vendor/alterschema/src/linter/superfluous/then_without_if.h:
--------------------------------------------------------------------------------
1 | class ThenWithoutIf final : public Rule {
2 | public:
3 | ThenWithoutIf()
4 | : Rule{"then_without_if", "The `then` keyword is meaningless "
5 | "without the presence of the `if` keyword"} {};
6 |
7 | [[nodiscard]] auto condition(const sourcemeta::jsontoolkit::JSON &schema,
8 | const std::string &,
9 | const std::set &vocabularies,
10 | const sourcemeta::jsontoolkit::Pointer &) const
11 | -> bool override {
12 | return contains_any(
13 | vocabularies,
14 | {"https://json-schema.org/draft/2020-12/vocab/applicator",
15 | "https://json-schema.org/draft/2019-09/vocab/applicator",
16 | "http://json-schema.org/draft-07/schema#"}) &&
17 | schema.is_object() && schema.defines("then") &&
18 | !schema.defines("if");
19 | }
20 |
21 | auto transform(Transformer &transformer) const -> void override {
22 | transformer.erase("then");
23 | }
24 | };
25 |
--------------------------------------------------------------------------------
/vendor/bootstrap.mask:
--------------------------------------------------------------------------------
1 | .github
2 | build
3 | dist
4 | nuget
5 | site
6 | js
7 | .babelrc.js
8 | .browserslistrc
9 | .bundlewatch.config.json
10 | .cspell.json
11 | .editorconfig
12 | .eslintignore
13 | .eslintrc.json
14 | .gitattributes
15 | .stylelintignore
16 | .stylelintrc
17 | CODE_OF_CONDUCT.md
18 | LICENSE
19 | README.md
20 | SECURITY.md
21 | composer.json
22 | config.yml
23 | package-lock.json
24 | package.js
25 | package.json
26 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/_badge.scss:
--------------------------------------------------------------------------------
1 | // Base class
2 | //
3 | // Requires one of the contextual, color modifier classes for `color` and
4 | // `background-color`.
5 |
6 | .badge {
7 | display: inline-block;
8 | padding: $badge-padding-y $badge-padding-x;
9 | @include font-size($badge-font-size);
10 | font-weight: $badge-font-weight;
11 | line-height: 1;
12 | color: $badge-color;
13 | text-align: center;
14 | white-space: nowrap;
15 | vertical-align: baseline;
16 | @include border-radius($badge-border-radius);
17 | @include gradient-bg();
18 |
19 | // Empty badges collapse automatically
20 | &:empty {
21 | display: none;
22 | }
23 | }
24 |
25 | // Quick fix for badges in buttons
26 | .btn .badge {
27 | position: relative;
28 | top: -1px;
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/_breadcrumb.scss:
--------------------------------------------------------------------------------
1 | .breadcrumb {
2 | display: flex;
3 | flex-wrap: wrap;
4 | padding: $breadcrumb-padding-y $breadcrumb-padding-x;
5 | margin-bottom: $breadcrumb-margin-bottom;
6 | @include font-size($breadcrumb-font-size);
7 | list-style: none;
8 | background-color: $breadcrumb-bg;
9 | @include border-radius($breadcrumb-border-radius);
10 | }
11 |
12 | .breadcrumb-item {
13 | // The separator between breadcrumbs (by default, a forward-slash: "/")
14 | + .breadcrumb-item {
15 | padding-left: $breadcrumb-item-padding-x;
16 |
17 | &::before {
18 | float: left; // Suppress inline spacings and underlining of the separator
19 | padding-right: $breadcrumb-item-padding-x;
20 | color: $breadcrumb-divider-color;
21 | content: var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
22 | }
23 | }
24 |
25 | &.active {
26 | color: $breadcrumb-active-color;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/_forms.scss:
--------------------------------------------------------------------------------
1 | @import "forms/labels";
2 | @import "forms/form-text";
3 | @import "forms/form-control";
4 | @import "forms/form-select";
5 | @import "forms/form-check";
6 | @import "forms/form-range";
7 | @import "forms/floating-labels";
8 | @import "forms/input-group";
9 | @import "forms/validation";
10 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/_grid.scss:
--------------------------------------------------------------------------------
1 | // Row
2 | //
3 | // Rows contain your columns.
4 |
5 | @if $enable-grid-classes {
6 | .row {
7 | @include make-row();
8 |
9 | > * {
10 | @include make-col-ready();
11 | }
12 | }
13 | }
14 |
15 | @if $enable-cssgrid {
16 | .grid {
17 | display: grid;
18 | grid-template-rows: repeat(var(--#{$variable-prefix}rows, 1), 1fr);
19 | grid-template-columns: repeat(var(--#{$variable-prefix}columns, #{$grid-columns}), 1fr);
20 | gap: var(--#{$variable-prefix}gap, #{$grid-gutter-width});
21 |
22 | @include make-cssgrid();
23 | }
24 | }
25 |
26 |
27 | // Columns
28 | //
29 | // Common styles for small and large grid columns
30 |
31 | @if $enable-grid-classes {
32 | @include make-grid-columns();
33 | }
34 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/_helpers.scss:
--------------------------------------------------------------------------------
1 | @import "helpers/clearfix";
2 | @import "helpers/colored-links";
3 | @import "helpers/ratio";
4 | @import "helpers/position";
5 | @import "helpers/stacks";
6 | @import "helpers/visually-hidden";
7 | @import "helpers/stretched-link";
8 | @import "helpers/text-truncation";
9 | @import "helpers/vr";
10 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Toggles
2 | //
3 | // Used in conjunction with global variables to enable certain theme features.
4 |
5 | // Vendor
6 | @import "vendor/rfs";
7 |
8 | // Deprecate
9 | @import "mixins/deprecate";
10 |
11 | // Helpers
12 | @import "mixins/breakpoints";
13 | @import "mixins/color-scheme";
14 | @import "mixins/image";
15 | @import "mixins/resize";
16 | @import "mixins/visually-hidden";
17 | @import "mixins/reset-text";
18 | @import "mixins/text-truncate";
19 |
20 | // Utilities
21 | @import "mixins/utilities";
22 |
23 | // Components
24 | @import "mixins/alert";
25 | @import "mixins/backdrop";
26 | @import "mixins/buttons";
27 | @import "mixins/caret";
28 | @import "mixins/pagination";
29 | @import "mixins/lists";
30 | @import "mixins/list-group";
31 | @import "mixins/forms";
32 | @import "mixins/table-variants";
33 |
34 | // Skins
35 | @import "mixins/border-radius";
36 | @import "mixins/box-shadow";
37 | @import "mixins/gradients";
38 | @import "mixins/transition";
39 |
40 | // Layout
41 | @import "mixins/clearfix";
42 | @import "mixins/container";
43 | @import "mixins/grid";
44 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/_placeholders.scss:
--------------------------------------------------------------------------------
1 | .placeholder {
2 | display: inline-block;
3 | min-height: 1em;
4 | vertical-align: middle;
5 | cursor: wait;
6 | background-color: currentColor;
7 | opacity: $placeholder-opacity-max;
8 |
9 | &.btn::before {
10 | display: inline-block;
11 | content: "";
12 | }
13 | }
14 |
15 | // Sizing
16 | .placeholder-xs {
17 | min-height: .6em;
18 | }
19 |
20 | .placeholder-sm {
21 | min-height: .8em;
22 | }
23 |
24 | .placeholder-lg {
25 | min-height: 1.2em;
26 | }
27 |
28 | // Animation
29 | .placeholder-glow {
30 | .placeholder {
31 | animation: placeholder-glow 2s ease-in-out infinite;
32 | }
33 | }
34 |
35 | @keyframes placeholder-glow {
36 | 50% {
37 | opacity: $placeholder-opacity-min;
38 | }
39 | }
40 |
41 | .placeholder-wave {
42 | mask-image: linear-gradient(130deg, $black 55%, rgba(0, 0, 0, (1 - $placeholder-opacity-min)) 75%, $black 95%);
43 | mask-size: 200% 100%;
44 | animation: placeholder-wave 2s linear infinite;
45 | }
46 |
47 | @keyframes placeholder-wave {
48 | 100% {
49 | mask-position: -200% 0%;
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/_transitions.scss:
--------------------------------------------------------------------------------
1 | .fade {
2 | @include transition($transition-fade);
3 |
4 | &:not(.show) {
5 | opacity: 0;
6 | }
7 | }
8 |
9 | // scss-docs-start collapse-classes
10 | .collapse {
11 | &:not(.show) {
12 | display: none;
13 | }
14 | }
15 |
16 | .collapsing {
17 | height: 0;
18 | overflow: hidden;
19 | @include transition($transition-collapse);
20 |
21 | &.collapse-horizontal {
22 | width: 0;
23 | height: auto;
24 | @include transition($transition-collapse-width);
25 | }
26 | }
27 | // scss-docs-end collapse-classes
28 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/bootstrap-reboot.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Reboot v5.1.3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7 | */
8 |
9 | @import "functions";
10 | @import "variables";
11 | @import "mixins";
12 | @import "root";
13 | @import "reboot";
14 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/bootstrap-utilities.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Utilities v5.1.3 (https://getbootstrap.com/)
3 | * Copyright 2011-2021 The Bootstrap Authors
4 | * Copyright 2011-2021 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6 | */
7 |
8 | // Configuration
9 | @import "functions";
10 | @import "variables";
11 | @import "mixins";
12 | @import "utilities";
13 |
14 | // Helpers
15 | @import "helpers";
16 |
17 | // Utilities
18 | @import "utilities/api";
19 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/forms/_form-text.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Form text
3 | //
4 |
5 | .form-text {
6 | margin-top: $form-text-margin-top;
7 | @include font-size($form-text-font-size);
8 | font-style: $form-text-font-style;
9 | font-weight: $form-text-font-weight;
10 | color: $form-text-color;
11 | }
12 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/forms/_validation.scss:
--------------------------------------------------------------------------------
1 | // Form validation
2 | //
3 | // Provide feedback to users when form field values are valid or invalid. Works
4 | // primarily for client-side validation via scoped `:invalid` and `:valid`
5 | // pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for
6 | // server-side validation.
7 |
8 | // scss-docs-start form-validation-states-loop
9 | @each $state, $data in $form-validation-states {
10 | @include form-validation-state($state, $data...);
11 | }
12 | // scss-docs-end form-validation-states-loop
13 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/helpers/_clearfix.scss:
--------------------------------------------------------------------------------
1 | .clearfix {
2 | @include clearfix();
3 | }
4 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/helpers/_colored-links.scss:
--------------------------------------------------------------------------------
1 | @each $color, $value in $theme-colors {
2 | .link-#{$color} {
3 | color: $value;
4 |
5 | @if $link-shade-percentage != 0 {
6 | &:hover,
7 | &:focus {
8 | color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage));
9 | }
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/helpers/_position.scss:
--------------------------------------------------------------------------------
1 | // Shorthand
2 |
3 | .fixed-top {
4 | position: fixed;
5 | top: 0;
6 | right: 0;
7 | left: 0;
8 | z-index: $zindex-fixed;
9 | }
10 |
11 | .fixed-bottom {
12 | position: fixed;
13 | right: 0;
14 | bottom: 0;
15 | left: 0;
16 | z-index: $zindex-fixed;
17 | }
18 |
19 | // Responsive sticky top
20 | @each $breakpoint in map-keys($grid-breakpoints) {
21 | @include media-breakpoint-up($breakpoint) {
22 | $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
23 |
24 | .sticky#{$infix}-top {
25 | position: sticky;
26 | top: 0;
27 | z-index: $zindex-sticky;
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/helpers/_ratio.scss:
--------------------------------------------------------------------------------
1 | // Credit: Nicolas Gallagher and SUIT CSS.
2 |
3 | .ratio {
4 | position: relative;
5 | width: 100%;
6 |
7 | &::before {
8 | display: block;
9 | padding-top: var(--#{$variable-prefix}aspect-ratio);
10 | content: "";
11 | }
12 |
13 | > * {
14 | position: absolute;
15 | top: 0;
16 | left: 0;
17 | width: 100%;
18 | height: 100%;
19 | }
20 | }
21 |
22 | @each $key, $ratio in $aspect-ratios {
23 | .ratio-#{$key} {
24 | --#{$variable-prefix}aspect-ratio: #{$ratio};
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/helpers/_stacks.scss:
--------------------------------------------------------------------------------
1 | // scss-docs-start stacks
2 | .hstack {
3 | display: flex;
4 | flex-direction: row;
5 | align-items: center;
6 | align-self: stretch;
7 | }
8 |
9 | .vstack {
10 | display: flex;
11 | flex: 1 1 auto;
12 | flex-direction: column;
13 | align-self: stretch;
14 | }
15 | // scss-docs-end stacks
16 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/helpers/_stretched-link.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Stretched link
3 | //
4 |
5 | .stretched-link {
6 | &::#{$stretched-link-pseudo-element} {
7 | position: absolute;
8 | top: 0;
9 | right: 0;
10 | bottom: 0;
11 | left: 0;
12 | z-index: $stretched-link-z-index;
13 | content: "";
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/helpers/_text-truncation.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Text truncation
3 | //
4 |
5 | .text-truncate {
6 | @include text-truncate();
7 | }
8 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/helpers/_visually-hidden.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Visually hidden
3 | //
4 |
5 | .visually-hidden,
6 | .visually-hidden-focusable:not(:focus):not(:focus-within) {
7 | @include visually-hidden();
8 | }
9 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/helpers/_vr.scss:
--------------------------------------------------------------------------------
1 | .vr {
2 | display: inline-block;
3 | align-self: stretch;
4 | width: 1px;
5 | min-height: 1em;
6 | background-color: currentColor;
7 | opacity: $hr-opacity;
8 | }
9 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_alert.scss:
--------------------------------------------------------------------------------
1 | // scss-docs-start alert-variant-mixin
2 | @mixin alert-variant($background, $border, $color) {
3 | color: $color;
4 | @include gradient-bg($background);
5 | border-color: $border;
6 |
7 | .alert-link {
8 | color: shade-color($color, 20%);
9 | }
10 | }
11 | // scss-docs-end alert-variant-mixin
12 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_backdrop.scss:
--------------------------------------------------------------------------------
1 | // Shared between modals and offcanvases
2 | @mixin overlay-backdrop($zindex, $backdrop-bg, $backdrop-opacity) {
3 | position: fixed;
4 | top: 0;
5 | left: 0;
6 | z-index: $zindex;
7 | width: 100vw;
8 | height: 100vh;
9 | background-color: $backdrop-bg;
10 |
11 | // Fade for backdrop
12 | &.fade { opacity: 0; }
13 | &.show { opacity: $backdrop-opacity; }
14 | }
15 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_box-shadow.scss:
--------------------------------------------------------------------------------
1 | @mixin box-shadow($shadow...) {
2 | @if $enable-shadows {
3 | $result: ();
4 |
5 | @each $value in $shadow {
6 | @if $value != null {
7 | $result: append($result, $value, "comma");
8 | }
9 | @if $value == none and length($shadow) > 1 {
10 | @warn "The keyword 'none' must be used as a single argument.";
11 | }
12 | }
13 |
14 | @if (length($result) > 0) {
15 | box-shadow: $result;
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_clearfix.scss:
--------------------------------------------------------------------------------
1 | // scss-docs-start clearfix
2 | @mixin clearfix() {
3 | &::after {
4 | display: block;
5 | clear: both;
6 | content: "";
7 | }
8 | }
9 | // scss-docs-end clearfix
10 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_color-scheme.scss:
--------------------------------------------------------------------------------
1 | // scss-docs-start mixin-color-scheme
2 | @mixin color-scheme($name) {
3 | @media (prefers-color-scheme: #{$name}) {
4 | @content;
5 | }
6 | }
7 | // scss-docs-end mixin-color-scheme
8 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_container.scss:
--------------------------------------------------------------------------------
1 | // Container mixins
2 |
3 | @mixin make-container($gutter: $container-padding-x) {
4 | width: 100%;
5 | padding-right: var(--#{$variable-prefix}gutter-x, #{$gutter});
6 | padding-left: var(--#{$variable-prefix}gutter-x, #{$gutter});
7 | margin-right: auto;
8 | margin-left: auto;
9 | }
10 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_deprecate.scss:
--------------------------------------------------------------------------------
1 | // Deprecate mixin
2 | //
3 | // This mixin can be used to deprecate mixins or functions.
4 | // `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to
5 | // some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap)
6 | @mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) {
7 | @if ($enable-deprecation-messages != false and $ignore-warning != true) {
8 | @warn "#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}.";
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_image.scss:
--------------------------------------------------------------------------------
1 | // Image Mixins
2 | // - Responsive image
3 | // - Retina image
4 |
5 |
6 | // Responsive image
7 | //
8 | // Keep images from scaling beyond the width of their parents.
9 |
10 | @mixin img-fluid {
11 | // Part 1: Set a maximum relative to the parent
12 | max-width: 100%;
13 | // Part 2: Override the height to auto, otherwise images will be stretched
14 | // when setting a width and height attribute on the img element.
15 | height: auto;
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_list-group.scss:
--------------------------------------------------------------------------------
1 | // List Groups
2 |
3 | // scss-docs-start list-group-mixin
4 | @mixin list-group-item-variant($state, $background, $color) {
5 | .list-group-item-#{$state} {
6 | color: $color;
7 | background-color: $background;
8 |
9 | &.list-group-item-action {
10 | &:hover,
11 | &:focus {
12 | color: $color;
13 | background-color: shade-color($background, 10%);
14 | }
15 |
16 | &.active {
17 | color: $white;
18 | background-color: $color;
19 | border-color: $color;
20 | }
21 | }
22 | }
23 | }
24 | // scss-docs-end list-group-mixin
25 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_lists.scss:
--------------------------------------------------------------------------------
1 | // Lists
2 |
3 | // Unstyled keeps list items block level, just removes default browser padding and list-style
4 | @mixin list-unstyled {
5 | padding-left: 0;
6 | list-style: none;
7 | }
8 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_pagination.scss:
--------------------------------------------------------------------------------
1 | // Pagination
2 |
3 | // scss-docs-start pagination-mixin
4 | @mixin pagination-size($padding-y, $padding-x, $font-size, $border-radius) {
5 | .page-link {
6 | padding: $padding-y $padding-x;
7 | @include font-size($font-size);
8 | }
9 |
10 | .page-item {
11 | @if $pagination-margin-start == (-$pagination-border-width) {
12 | &:first-child {
13 | .page-link {
14 | @include border-start-radius($border-radius);
15 | }
16 | }
17 |
18 | &:last-child {
19 | .page-link {
20 | @include border-end-radius($border-radius);
21 | }
22 | }
23 | } @else {
24 | //Add border-radius to all pageLinks in case they have left margin
25 | .page-link {
26 | @include border-radius($border-radius);
27 | }
28 | }
29 | }
30 | }
31 | // scss-docs-end pagination-mixin
32 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_reset-text.scss:
--------------------------------------------------------------------------------
1 | @mixin reset-text {
2 | font-family: $font-family-base;
3 | // We deliberately do NOT reset font-size or overflow-wrap / word-wrap.
4 | font-style: normal;
5 | font-weight: $font-weight-normal;
6 | line-height: $line-height-base;
7 | text-align: left; // Fallback for where `start` is not supported
8 | text-align: start;
9 | text-decoration: none;
10 | text-shadow: none;
11 | text-transform: none;
12 | letter-spacing: normal;
13 | word-break: normal;
14 | word-spacing: normal;
15 | white-space: normal;
16 | line-break: auto;
17 | }
18 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_resize.scss:
--------------------------------------------------------------------------------
1 | // Resize anything
2 |
3 | @mixin resizable($direction) {
4 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
5 | resize: $direction; // Options: horizontal, vertical, both
6 | }
7 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_table-variants.scss:
--------------------------------------------------------------------------------
1 | // scss-docs-start table-variant
2 | @mixin table-variant($state, $background) {
3 | .table-#{$state} {
4 | $color: color-contrast(opaque($body-bg, $background));
5 | $hover-bg: mix($color, $background, percentage($table-hover-bg-factor));
6 | $striped-bg: mix($color, $background, percentage($table-striped-bg-factor));
7 | $active-bg: mix($color, $background, percentage($table-active-bg-factor));
8 |
9 | --#{$variable-prefix}table-bg: #{$background};
10 | --#{$variable-prefix}table-striped-bg: #{$striped-bg};
11 | --#{$variable-prefix}table-striped-color: #{color-contrast($striped-bg)};
12 | --#{$variable-prefix}table-active-bg: #{$active-bg};
13 | --#{$variable-prefix}table-active-color: #{color-contrast($active-bg)};
14 | --#{$variable-prefix}table-hover-bg: #{$hover-bg};
15 | --#{$variable-prefix}table-hover-color: #{color-contrast($hover-bg)};
16 |
17 | color: $color;
18 | border-color: mix($color, $background, percentage($table-border-factor));
19 | }
20 | }
21 | // scss-docs-end table-variant
22 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_text-truncate.scss:
--------------------------------------------------------------------------------
1 | // Text truncate
2 | // Requires inline-block or block for proper styling
3 |
4 | @mixin text-truncate() {
5 | overflow: hidden;
6 | text-overflow: ellipsis;
7 | white-space: nowrap;
8 | }
9 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_transition.scss:
--------------------------------------------------------------------------------
1 | // stylelint-disable property-disallowed-list
2 | @mixin transition($transition...) {
3 | @if length($transition) == 0 {
4 | $transition: $transition-base;
5 | }
6 |
7 | @if length($transition) > 1 {
8 | @each $value in $transition {
9 | @if $value == null or $value == none {
10 | @warn "The keyword 'none' or 'null' must be used as a single argument.";
11 | }
12 | }
13 | }
14 |
15 | @if $enable-transitions {
16 | @if nth($transition, 1) != null {
17 | transition: $transition;
18 | }
19 |
20 | @if $enable-reduced-motion and nth($transition, 1) != null and nth($transition, 1) != none {
21 | @media (prefers-reduced-motion: reduce) {
22 | transition: none;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/vendor/bootstrap/scss/mixins/_visually-hidden.scss:
--------------------------------------------------------------------------------
1 | // stylelint-disable declaration-no-important
2 |
3 | // Hide content visually while keeping it accessible to assistive technologies
4 | //
5 | // See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
6 | // See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/
7 |
8 | @mixin visually-hidden() {
9 | position: absolute !important;
10 | width: 1px !important;
11 | height: 1px !important;
12 | padding: 0 !important;
13 | margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686
14 | overflow: hidden !important;
15 | clip: rect(0, 0, 0, 0) !important;
16 | white-space: nowrap !important;
17 | border: 0 !important;
18 | }
19 |
20 | // Use to only display content when it's focused, or one of its child elements is focused
21 | // (i.e. when focus is within the element/container that the class was applied to)
22 | //
23 | // Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
24 |
25 | @mixin visually-hidden-focusable() {
26 | &:not(:focus):not(:focus-within) {
27 | @include visually-hidden();
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/core/LICENSE:
--------------------------------------------------------------------------------
1 | This software is dual-licensed: you can redistribute it and/or modify it under
2 | the terms of the GNU Affero General Public License as published by the Free
3 | Software Foundation, either version 3 of the License, or (at your option) any
4 | later version. For the terms of this license, see
5 | .
6 |
7 | You are free to use this software under the terms of the GNU Affero General
8 | Public License WITHOUT ANY WARRANTY; without even the implied warranty of
9 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 |
11 | Alternatively, you can use this software under a commercial license, as set out
12 | in .
13 |
--------------------------------------------------------------------------------
/vendor/core/cmake/FindGoogleBenchmark.cmake:
--------------------------------------------------------------------------------
1 | if(NOT Benchmark_FOUND)
2 | set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "enable testing of the benchmark library")
3 | add_subdirectory("${PROJECT_SOURCE_DIR}/vendor/googlebenchmark")
4 | set(Benchmark_FOUND ON)
5 | endif()
6 |
--------------------------------------------------------------------------------
/vendor/core/cmake/FindGoogleTest.cmake:
--------------------------------------------------------------------------------
1 | if(NOT GoogleTest_FOUND)
2 | set(BUILD_GMOCK ON CACHE BOOL "enable googlemock")
3 | set(INSTALL_GTEST OFF CACHE BOOL "disable installation")
4 | add_subdirectory("${PROJECT_SOURCE_DIR}/vendor/googletest")
5 | set(GoogleTest_FOUND ON)
6 | endif()
7 |
--------------------------------------------------------------------------------
/vendor/core/cmake/common/commands/copy-file.cmake:
--------------------------------------------------------------------------------
1 | function(sourcemeta_command_copy_file)
2 | cmake_parse_arguments(SOURCEMETA_COMMAND_COPY_FILE "" "FROM;TO" "" ${ARGN})
3 |
4 | if(NOT SOURCEMETA_COMMAND_COPY_FILE_FROM)
5 | message(FATAL_ERROR "You must pass the file to copy using the FROM option")
6 | endif()
7 | if(NOT SOURCEMETA_COMMAND_COPY_FILE_TO)
8 | message(FATAL_ERROR "You must pass the destination to copy to using the TO option")
9 | endif()
10 |
11 | add_custom_command(
12 | OUTPUT "${SOURCEMETA_COMMAND_COPY_FILE_TO}"
13 | COMMAND "${CMAKE_COMMAND}" -E copy "${SOURCEMETA_COMMAND_COPY_FILE_FROM}" "${SOURCEMETA_COMMAND_COPY_FILE_TO}"
14 | MAIN_DEPENDENCY "${SOURCEMETA_COMMAND_COPY_FILE_FROM}"
15 | DEPENDS "${SOURCEMETA_COMMAND_COPY_FILE_FROM}"
16 | COMMENT "Copying ${SOURCEMETA_COMMAND_COPY_FILE_FROM} ot ${SOURCEMETA_COMMAND_COPY_FILE_TO}")
17 | endfunction()
18 |
--------------------------------------------------------------------------------
/vendor/core/cmake/common/shim.cmake:
--------------------------------------------------------------------------------
1 | # The PROJECT_IS_TOP_LEVEL handy variable is only
2 | # available on CMake >=3.21.
3 | if(NOT DEFINED PROJECT_IS_TOP_LEVEL AND "${CMAKE_PROJECT_NAME}" STREQUAL "${PROJECT_NAME}")
4 | set(PROJECT_IS_TOP_LEVEL YES)
5 | endif()
6 |
--------------------------------------------------------------------------------
/vendor/core/cmake/common/targets/clang-format.config:
--------------------------------------------------------------------------------
1 | ---
2 | BasedOnStyle: LLVM
3 | IndentCaseLabels: true
4 |
--------------------------------------------------------------------------------
/vendor/core/cmake/common/targets/clang-tidy.config:
--------------------------------------------------------------------------------
1 | ---
2 | # See https://clang.llvm.org/extra/clang-tidy/index.html
3 | # First disable all default checks (with -*)
4 | Checks: '-*,bugprone-*,clang-analyzer-*,clang-diagnostic-*,modernize-*,concurrency-*,cppcoreguidelines-*,performance-*,portability-*,objc-*,misc-*,-misc-no-recursion,-bugprone-easily-swappable-parameters'
5 | WarningsAsErrors: '*'
6 | HeaderFilterRegex: ''
7 | FormatStyle: none
8 | CheckOptions:
9 | # See https://clang.llvm.org/extra/clang-tidy/checks/misc/include-cleaner.html
10 | # Otherwise ClangTidy wants us to directly include private headers from our modules
11 | - key: misc-include-cleaner.MissingIncludes
12 | value: 'false'
13 |
--------------------------------------------------------------------------------
/vendor/core/cmake/common/targets/doxygen.cmake:
--------------------------------------------------------------------------------
1 | function(sourcemeta_target_doxygen)
2 | cmake_parse_arguments(SOURCEMETA_TARGET_DOXYGEN "" "CONFIG;OUTPUT" "" ${ARGN})
3 |
4 | if(NOT SOURCEMETA_TARGET_DOXYGEN_CONFIG)
5 | message(FATAL_ERROR "You must pass an input config file using the CONFIG option")
6 | endif()
7 | if(NOT SOURCEMETA_TARGET_DOXYGEN_OUTPUT)
8 | message(FATAL_ERROR "You must pass an output directory using the OUTPUT option")
9 | endif()
10 |
11 | find_package(Doxygen)
12 | if(DOXYGEN_FOUND)
13 | set(DOXYGEN_IN "${SOURCEMETA_TARGET_DOXYGEN_CONFIG}")
14 | set(DOXYGEN_OUT "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
15 | configure_file("${DOXYGEN_IN}" "${DOXYGEN_OUT}" @ONLY)
16 | add_custom_target(doxygen
17 | WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
18 | VERBATIM
19 | COMMAND "${CMAKE_COMMAND}" -E make_directory "${SOURCEMETA_TARGET_DOXYGEN_OUTPUT}"
20 | COMMAND "${DOXYGEN_EXECUTABLE}" "${DOXYGEN_OUT}")
21 | else()
22 | add_custom_target(doxygen VERBATIM
23 | COMMAND "${CMAKE_COMMAND}" -E echo "Could not locate Doxygen"
24 | COMMAND "${CMAKE_COMMAND}" -E false)
25 | endif()
26 | endfunction()
27 |
--------------------------------------------------------------------------------
/vendor/core/cmake/common/targets/googletest.cmake:
--------------------------------------------------------------------------------
1 | function(sourcemeta_googletest)
2 | cmake_parse_arguments(SOURCEMETA_GOOGLETEST ""
3 | "NAMESPACE;PROJECT;NAME;VARIANT" "SOURCES" ${ARGN})
4 |
5 | if(SOURCEMETA_GOOGLETEST_VARIANT)
6 | set(TARGET_VARIANT "${SOURCEMETA_GOOGLETEST_VARIANT}_unit")
7 | else()
8 | set(TARGET_VARIANT "unit")
9 | endif()
10 |
11 | sourcemeta_executable(
12 | NAMESPACE "${SOURCEMETA_GOOGLETEST_NAMESPACE}"
13 | PROJECT "${SOURCEMETA_GOOGLETEST_PROJECT}"
14 | NAME "${SOURCEMETA_GOOGLETEST_NAME}"
15 | VARIANT "${TARGET_VARIANT}"
16 | SOURCES "${SOURCEMETA_GOOGLETEST_SOURCES}"
17 | OUTPUT TARGET_NAME)
18 |
19 | target_link_libraries("${TARGET_NAME}"
20 | PRIVATE GTest::gtest GTest::gmock GTest::gtest_main)
21 | add_test(NAME "${SOURCEMETA_GOOGLETEST_PROJECT}.${SOURCEMETA_GOOGLETEST_NAME}"
22 | COMMAND "${TARGET_NAME}" --gtest_brief=1)
23 | endfunction()
24 |
--------------------------------------------------------------------------------
/vendor/core/cmake/common/variables.cmake:
--------------------------------------------------------------------------------
1 | # Get the list of languages defined in the project
2 | get_property(SOURCEMETA_LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
3 |
4 | # Compiler detection (C++)
5 | # TODO: Detect compilers on programming languages other than C++
6 | if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
7 | set(SOURCEMETA_COMPILER_LLVM ON)
8 | elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
9 | set(SOURCEMETA_COMPILER_GCC ON)
10 | elseif(MSVC)
11 | set(SOURCEMETA_COMPILER_MSVC ON)
12 | endif()
13 |
14 | if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
15 | set(SOURCEMETA_OS_MACOS ON)
16 | # It seems that in some cases, `LINUX` is not set on GNU/Linux on WSL
17 | elseif(LINUX OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
18 | set(SOURCEMETA_OS_LINUX ON)
19 | elseif(WIN32)
20 | set(SOURCEMETA_OS_WINDOWS ON)
21 | elseif(${CMAKE_SYSTEM_NAME} MATCHES ".*BSD")
22 | set(SOURCEMETA_OS_BSD ON)
23 | endif()
24 |
--------------------------------------------------------------------------------
/vendor/core/src/core/json/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME json
2 | PRIVATE_HEADERS array.h error.h object.h value.h hash.h
3 | SOURCES grammar.h parser.h stringify.h json.cc json_value.cc)
4 |
5 | if(SOURCEMETA_CORE_INSTALL)
6 | sourcemeta_library_install(NAMESPACE sourcemeta PROJECT core NAME json)
7 | endif()
8 |
--------------------------------------------------------------------------------
/vendor/core/src/core/jsonl/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME jsonl
2 | PRIVATE_HEADERS iterator.h
3 | SOURCES jsonl.cc iterator.cc grammar.h)
4 |
5 | if(SOURCEMETA_CORE_INSTALL)
6 | sourcemeta_library_install(NAMESPACE sourcemeta PROJECT core NAME jsonl)
7 | endif()
8 |
9 | target_link_libraries(sourcemeta_core_jsonl PUBLIC
10 | sourcemeta::core::json)
11 |
--------------------------------------------------------------------------------
/vendor/core/src/core/jsonl/grammar.h:
--------------------------------------------------------------------------------
1 | #ifndef SOURCEMETA_CORE_JSONL_GRAMMAR_H_
2 | #define SOURCEMETA_CORE_JSONL_GRAMMAR_H_
3 |
4 | namespace sourcemeta::core::internal {
5 | template
6 | static constexpr CharT token_jsonl_line_feed{'\u000A'};
7 |
8 | // Whitespace is any sequence of one or more of the following code points:
9 | // character tabulation (U+0009), line feed (U+000A), carriage return (U+000D),
10 | // and space (U+0020).
11 | // See
12 | // https://www.ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf
13 | template
14 | static constexpr CharT token_jsonl_whitespace_tabulation{'\u0009'};
15 | template
16 | static constexpr CharT token_jsonl_whitespace_carriage_return{'\u000D'};
17 | template
18 | static constexpr CharT token_jsonl_whitespace_space{'\u0020'};
19 |
20 | } // namespace sourcemeta::core::internal
21 |
22 | #endif
23 |
--------------------------------------------------------------------------------
/vendor/core/src/core/jsonl/jsonl.cc:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | #include // std::basic_istream
5 |
6 | namespace sourcemeta::core {
7 |
8 | JSONL::JSONL(std::basic_istream &stream)
9 | : data{stream} {}
10 |
11 | auto JSONL::begin() -> JSONL::const_iterator { return {&this->data}; }
12 | auto JSONL::end() -> JSONL::const_iterator { return {nullptr}; }
13 | auto JSONL::cbegin() -> JSONL::const_iterator { return {&this->data}; }
14 | auto JSONL::cend() -> JSONL::const_iterator { return {nullptr}; }
15 |
16 | } // namespace sourcemeta::core
17 |
--------------------------------------------------------------------------------
/vendor/core/src/core/jsonpointer/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME jsonpointer
2 | PRIVATE_HEADERS pointer.h position.h error.h token.h
3 | walker.h subpointer_walker.h template.h
4 | SOURCES jsonpointer.cc stringify.h parser.h grammar.h position.cc)
5 |
6 | if(SOURCEMETA_CORE_INSTALL)
7 | sourcemeta_library_install(NAMESPACE sourcemeta PROJECT core NAME jsonpointer)
8 | endif()
9 |
10 | target_link_libraries(sourcemeta_core_jsonpointer PUBLIC
11 | sourcemeta::core::uri)
12 | target_link_libraries(sourcemeta_core_jsonpointer PUBLIC
13 | sourcemeta::core::json)
14 | target_link_libraries(sourcemeta_core_jsonpointer PUBLIC
15 | sourcemeta::core::regex)
16 |
--------------------------------------------------------------------------------
/vendor/core/src/core/jsonpointer/include/sourcemeta/core/jsonpointer_error.h:
--------------------------------------------------------------------------------
1 | #ifndef SOURCEMETA_CORE_JSONPOINTER_ERROR_H_
2 | #define SOURCEMETA_CORE_JSONPOINTER_ERROR_H_
3 |
4 | #ifndef SOURCEMETA_CORE_JSONPOINTER_EXPORT
5 | #include
6 | #endif
7 |
8 | #include
9 |
10 | #include // std::uint64_t
11 |
12 | namespace sourcemeta::core {
13 |
14 | /// @ingroup jsonpointer
15 | /// This class represents a parsing error.
16 | class SOURCEMETA_CORE_JSONPOINTER_EXPORT PointerParseError
17 | // TODO: It makes no sense for a JSON Pointer error to inherit from a JSON
18 | // error. Make them independent
19 | : public JSONParseError {
20 | public:
21 | /// Create a parsing error
22 | PointerParseError(const std::uint64_t column) : JSONParseError{1, column} {}
23 |
24 | [[nodiscard]] auto what() const noexcept -> const char * override {
25 | return "The input is not a valid JSON Pointer";
26 | }
27 | };
28 |
29 | } // namespace sourcemeta::core
30 |
31 | #endif
32 |
--------------------------------------------------------------------------------
/vendor/core/src/core/jsonschema/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | set(OFFICIAL_RESOLVER_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/official_resolver.in.cc")
2 | set(OFFICIAL_RESOLVER_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/official_resolver.cc")
3 | include(./official_resolver.cmake)
4 |
5 | sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME jsonschema
6 | PRIVATE_HEADERS resolver.h walker.h frame.h error.h types.h transform.h
7 | SOURCES jsonschema.cc official_walker.cc frame.cc
8 | resolver.cc walker.cc bundle.cc transformer.cc
9 | "${CMAKE_CURRENT_BINARY_DIR}/official_resolver.cc")
10 |
11 | if(SOURCEMETA_CORE_INSTALL)
12 | sourcemeta_library_install(NAMESPACE sourcemeta PROJECT core NAME jsonschema)
13 | endif()
14 |
15 | target_link_libraries(sourcemeta_core_jsonschema PUBLIC
16 | sourcemeta::core::json)
17 | target_link_libraries(sourcemeta_core_jsonschema PUBLIC
18 | sourcemeta::core::jsonpointer)
19 | target_link_libraries(sourcemeta_core_jsonschema PRIVATE
20 | sourcemeta::core::uri)
21 |
--------------------------------------------------------------------------------
/vendor/core/src/core/regex/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME regex)
2 |
3 | if(SOURCEMETA_CORE_INSTALL)
4 | sourcemeta_library_install(NAMESPACE sourcemeta PROJECT core NAME regex)
5 | endif()
6 |
7 | target_link_libraries(sourcemeta_core_regex INTERFACE Boost::regex)
8 |
--------------------------------------------------------------------------------
/vendor/core/src/core/uri/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME uri
2 | PRIVATE_HEADERS error.h
3 | SOURCES uri.cc escaping.cc)
4 |
5 | if(SOURCEMETA_CORE_INSTALL)
6 | sourcemeta_library_install(NAMESPACE sourcemeta PROJECT core NAME uri)
7 | endif()
8 |
9 | target_link_libraries(sourcemeta_core_uri
10 | PRIVATE uriparser::uriparser)
11 |
--------------------------------------------------------------------------------
/vendor/core/src/core/yaml/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME yaml
2 | PRIVATE_HEADERS error.h
3 | SOURCES yaml.cc)
4 |
5 | if(SOURCEMETA_CORE_INSTALL)
6 | sourcemeta_library_install(NAMESPACE sourcemeta PROJECT core NAME yaml)
7 | endif()
8 |
9 | target_link_libraries(sourcemeta_core_yaml PRIVATE yaml)
10 | target_link_libraries(sourcemeta_core_yaml PUBLIC sourcemeta::core::json)
11 |
--------------------------------------------------------------------------------
/vendor/core/src/extension/alterschema/desugar/boolean_true.h:
--------------------------------------------------------------------------------
1 | class BooleanTrue final : public SchemaTransformRule {
2 | public:
3 | BooleanTrue()
4 | : SchemaTransformRule{
5 | "boolean_true",
6 | "The boolean schema `true` is syntax sugar for the empty schema"} {
7 | };
8 |
9 | [[nodiscard]] auto condition(const sourcemeta::core::JSON &schema,
10 | const sourcemeta::core::JSON &,
11 | const sourcemeta::core::Vocabularies &,
12 | const sourcemeta::core::SchemaFrame &,
13 | const sourcemeta::core::SchemaFrame::Location &,
14 | const sourcemeta::core::SchemaWalker &,
15 | const sourcemeta::core::SchemaResolver &) const
16 | -> sourcemeta::core::SchemaTransformRule::Result override {
17 | return schema.is_boolean() && schema.to_boolean();
18 | }
19 |
20 | auto transform(JSON &schema) const -> void override {
21 | schema.into(sourcemeta::core::JSON::make_object());
22 | }
23 | };
24 |
--------------------------------------------------------------------------------
/vendor/core/vendor/boost-regex.mask:
--------------------------------------------------------------------------------
1 | build/
2 | doc/
3 | example/
4 | meta/
5 | performance/
6 | src/
7 | test/
8 | tools/
9 | CMakeLists.txt
10 | index.html
11 | README.md
12 | readme.txt
13 |
--------------------------------------------------------------------------------
/vendor/core/vendor/boost-regex/include/boost/cregex.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 1998-2002
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org/libs/regex for most recent version.
14 | * FILE cregex.cpp
15 | * VERSION see
16 | * DESCRIPTION: Declares POSIX API functions
17 | * + boost::RegEx high level wrapper.
18 | */
19 |
20 | #ifndef BOOST_RE_CREGEX_HPP
21 | #define BOOST_RE_CREGEX_HPP
22 |
23 | #ifndef BOOST_REGEX_CONFIG_HPP
24 | #include
25 | #endif
26 |
27 | #ifdef BOOST_REGEX_CXX03
28 | #include
29 | #else
30 | #include
31 | #endif
32 |
33 | #endif /* include guard */
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/vendor/core/vendor/boost-regex/include/boost/regex.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 1998-2002
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org/libs/regex for documentation.
14 | * FILE regex.cpp
15 | * VERSION see
16 | * DESCRIPTION: Declares boost::basic_regex<> and associated
17 | * functions and classes. This header is the main
18 | * entry point for the template regex code.
19 | */
20 |
21 |
22 | /* start with C compatibility API */
23 |
24 | #ifndef BOOST_RE_REGEX_HPP
25 | #define BOOST_RE_REGEX_HPP
26 |
27 | #ifndef BOOST_REGEX_CONFIG_HPP
28 | #include
29 | #endif
30 |
31 | #ifdef BOOST_REGEX_CXX03
32 | #include
33 | #else
34 | #include
35 | #endif
36 |
37 | #endif // include
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/vendor/core/vendor/boost-regex/include/boost/regex/icu.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2020
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org for most recent version.
14 | * FILE icu.hpp
15 | * VERSION see
16 | * DESCRIPTION: Unicode regular expressions on top of the ICU Library.
17 | */
18 |
19 | #ifndef BOOST_REGEX_ICU_HPP
20 | #define BOOST_REGEX_ICU_HPP
21 |
22 | #include
23 |
24 | #ifdef BOOST_REGEX_CXX03
25 | #include
26 | #else
27 | #include
28 | #endif
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/vendor/core/vendor/boost-regex/include/boost/regex/pattern_except.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 1998-2002
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org for most recent version.
14 | * FILE pattern_except.hpp
15 | * VERSION see
16 | * DESCRIPTION: Declares pattern-matching exception classes.
17 | */
18 |
19 | #ifndef BOOST_RE_PAT_EXCEPT_HPP
20 | #define BOOST_RE_PAT_EXCEPT_HPP
21 |
22 | #ifndef BOOST_REGEX_CONFIG_HPP
23 | #include
24 | #endif
25 |
26 | #ifdef BOOST_REGEX_CXX03
27 | #include
28 | #else
29 | #include
30 | #endif
31 |
32 | #endif
33 |
--------------------------------------------------------------------------------
/vendor/core/vendor/boost-regex/include/boost/regex/pending/object_cache.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2004
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org for most recent version.
14 | * FILE object_cache.hpp
15 | * VERSION see
16 | * DESCRIPTION: Implements a generic object cache.
17 | */
18 |
19 | #ifndef BOOST_REGEX_OBJECT_CACHE_HPP
20 | #define BOOST_REGEX_OBJECT_CACHE_HPP
21 |
22 | #include
23 | #ifdef BOOST_REGEX_CXX03
24 | #include
25 | #else
26 | #include
27 | #endif
28 |
29 | #endif
30 |
--------------------------------------------------------------------------------
/vendor/core/vendor/boost-regex/include/boost/regex/pending/unicode_iterator.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2020
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org for most recent version.
14 | * FILE unicode_iterator.hpp
15 | * VERSION see
16 | * DESCRIPTION: Iterator adapters for converting between different Unicode encodings.
17 | */
18 |
19 | #ifndef BOOST_REGEX_PENDING_UNICODE_ITERATOR_HPP
20 | #define BOOST_REGEX_PENDING_UNICODE_ITERATOR_HPP
21 |
22 | #include
23 |
24 | #if defined(BOOST_REGEX_CXX03)
25 | #include
26 | #else
27 | #include
28 | #endif
29 |
30 |
31 | #endif // BOOST_REGEX_PENDING_UNICODE_ITERATOR_HPP
32 |
33 |
--------------------------------------------------------------------------------
/vendor/core/vendor/boost-regex/include/boost/regex/regex_traits.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 1998-2002
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org for most recent version.
14 | * FILE regex_traits.hpp
15 | * VERSION see
16 | * DESCRIPTION: Declares regular expression traits classes.
17 | */
18 |
19 | #ifndef BOOST_REGEX_TRAITS_HPP
20 | #define BOOST_REGEX_TRAITS_HPP
21 |
22 | #ifndef BOOST_REGEX_CONFIG_HPP
23 | # include
24 | #endif
25 |
26 | # ifndef BOOST_REGEX_TRAITS_HPP_INCLUDED
27 | #ifdef BOOST_REGEX_CXX03
28 | # include
29 | #else
30 | # include
31 | #endif
32 | # endif
33 |
34 | #endif // include
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/vendor/core/vendor/boost-regex/include/boost/regex/v5/iterator_traits.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 1998-2002
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org for most recent version.
14 | * FILE iterator_traits.cpp
15 | * VERSION see
16 | * DESCRIPTION: Declares iterator traits workarounds.
17 | */
18 |
19 | #ifndef BOOST_REGEX_V5_ITERATOR_TRAITS_HPP
20 | #define BOOST_REGEX_V5_ITERATOR_TRAITS_HPP
21 |
22 | namespace boost{
23 | namespace BOOST_REGEX_DETAIL_NS{
24 |
25 | template
26 | struct regex_iterator_traits : public std::iterator_traits {};
27 |
28 | } // namespace BOOST_REGEX_DETAIL_NS
29 | } // namespace boost
30 |
31 | #endif
32 |
33 |
--------------------------------------------------------------------------------
/vendor/core/vendor/boost-regex/include/boost/regex_fwd.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 1998-2002
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org/libs/regex for documentation.
14 | * FILE regex_fwd.cpp
15 | * VERSION see
16 | * DESCRIPTION: Forward declares boost::basic_regex<> and
17 | * associated typedefs.
18 | */
19 |
20 | #ifndef BOOST_REGEX_FWD_HPP
21 | #define BOOST_REGEX_FWD_HPP
22 |
23 | #ifndef BOOST_REGEX_CONFIG_HPP
24 | #include
25 | #endif
26 |
27 | #ifdef BOOST_REGEX_CXX03
28 | #include
29 | #else
30 | #include
31 | #endif
32 |
33 | #endif
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/Config.cmake.in:
--------------------------------------------------------------------------------
1 | @PACKAGE_INIT@
2 |
3 | include (CMakeFindDependencyMacro)
4 |
5 | find_dependency (Threads)
6 |
7 | if (@BENCHMARK_ENABLE_LIBPFM@)
8 | find_dependency (PFM)
9 | endif()
10 |
11 | include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake")
12 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/GetGitVersion.cmake:
--------------------------------------------------------------------------------
1 | # - Returns a version string from Git tags
2 | #
3 | # This function inspects the annotated git tags for the project and returns a string
4 | # into a CMake variable
5 | #
6 | # get_git_version()
7 | #
8 | # - Example
9 | #
10 | # include(GetGitVersion)
11 | # get_git_version(GIT_VERSION)
12 | #
13 | # Requires CMake 2.8.11+
14 | find_package(Git)
15 |
16 | if(__get_git_version)
17 | return()
18 | endif()
19 | set(__get_git_version INCLUDED)
20 |
21 | function(get_git_version var)
22 | if(GIT_EXECUTABLE)
23 | execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --match "v[0-9]*.[0-9]*.[0-9]*" --abbrev=8 --dirty
24 | WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
25 | RESULT_VARIABLE status
26 | OUTPUT_VARIABLE GIT_VERSION
27 | ERROR_QUIET)
28 | if(status)
29 | set(GIT_VERSION "v0.0.0")
30 | endif()
31 | else()
32 | set(GIT_VERSION "v0.0.0")
33 | endif()
34 |
35 | set(${var} ${GIT_VERSION} PARENT_SCOPE)
36 | endfunction()
37 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/Modules/FindLLVMAr.cmake:
--------------------------------------------------------------------------------
1 | include(FeatureSummary)
2 |
3 | find_program(LLVMAR_EXECUTABLE
4 | NAMES llvm-ar
5 | DOC "The llvm-ar executable"
6 | )
7 |
8 | include(FindPackageHandleStandardArgs)
9 | find_package_handle_standard_args(LLVMAr
10 | DEFAULT_MSG
11 | LLVMAR_EXECUTABLE)
12 |
13 | SET_PACKAGE_PROPERTIES(LLVMAr PROPERTIES
14 | URL https://llvm.org/docs/CommandGuide/llvm-ar.html
15 | DESCRIPTION "create, modify, and extract from archives"
16 | )
17 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/Modules/FindLLVMNm.cmake:
--------------------------------------------------------------------------------
1 | include(FeatureSummary)
2 |
3 | find_program(LLVMNM_EXECUTABLE
4 | NAMES llvm-nm
5 | DOC "The llvm-nm executable"
6 | )
7 |
8 | include(FindPackageHandleStandardArgs)
9 | find_package_handle_standard_args(LLVMNm
10 | DEFAULT_MSG
11 | LLVMNM_EXECUTABLE)
12 |
13 | SET_PACKAGE_PROPERTIES(LLVMNm PROPERTIES
14 | URL https://llvm.org/docs/CommandGuide/llvm-nm.html
15 | DESCRIPTION "list LLVM bitcode and object file’s symbol table"
16 | )
17 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/Modules/FindLLVMRanLib.cmake:
--------------------------------------------------------------------------------
1 | include(FeatureSummary)
2 |
3 | find_program(LLVMRANLIB_EXECUTABLE
4 | NAMES llvm-ranlib
5 | DOC "The llvm-ranlib executable"
6 | )
7 |
8 | include(FindPackageHandleStandardArgs)
9 | find_package_handle_standard_args(LLVMRanLib
10 | DEFAULT_MSG
11 | LLVMRANLIB_EXECUTABLE)
12 |
13 | SET_PACKAGE_PROPERTIES(LLVMRanLib PROPERTIES
14 | DESCRIPTION "generate index for LLVM archive"
15 | )
16 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/Modules/FindPFM.cmake:
--------------------------------------------------------------------------------
1 | # If successful, the following variables will be defined:
2 | # PFM_FOUND.
3 | # PFM_LIBRARIES
4 | # PFM_INCLUDE_DIRS
5 | # the following target will be defined:
6 | # PFM::libpfm
7 |
8 | include(FeatureSummary)
9 | include(FindPackageHandleStandardArgs)
10 |
11 | set_package_properties(PFM PROPERTIES
12 | URL http://perfmon2.sourceforge.net/
13 | DESCRIPTION "A helper library to develop monitoring tools"
14 | PURPOSE "Used to program specific performance monitoring events")
15 |
16 | find_library(PFM_LIBRARY NAMES pfm)
17 | find_path(PFM_INCLUDE_DIR NAMES perfmon/pfmlib.h)
18 |
19 | find_package_handle_standard_args(PFM REQUIRED_VARS PFM_LIBRARY PFM_INCLUDE_DIR)
20 |
21 | if (PFM_FOUND AND NOT TARGET PFM::libpfm)
22 | add_library(PFM::libpfm UNKNOWN IMPORTED)
23 | set_target_properties(PFM::libpfm PROPERTIES
24 | IMPORTED_LOCATION "${PFM_LIBRARY}"
25 | INTERFACE_INCLUDE_DIRECTORIES "${PFM_INCLUDE_DIR}")
26 | endif()
27 |
28 | mark_as_advanced(PFM_LIBRARY PFM_INCLUDE_DIR)
29 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/benchmark.pc.in:
--------------------------------------------------------------------------------
1 | prefix=@CMAKE_INSTALL_PREFIX@
2 | exec_prefix=${prefix}
3 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@
4 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
5 |
6 | Name: @PROJECT_NAME@
7 | Description: Google microbenchmark framework
8 | Version: @VERSION@
9 |
10 | Libs: -L${libdir} -lbenchmark
11 | Libs.private: -lpthread @BENCHMARK_PRIVATE_LINK_LIBRARIES@
12 | Cflags: -I${includedir}
13 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/benchmark_main.pc.in:
--------------------------------------------------------------------------------
1 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@
2 |
3 | Name: @PROJECT_NAME@
4 | Description: Google microbenchmark framework (with main() function)
5 | Version: @VERSION@
6 | Requires: benchmark
7 | Libs: -L${libdir} -lbenchmark_main
8 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/gnu_posix_regex.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | int main() {
4 | std::string str = "test0159";
5 | regex_t re;
6 | int ec = regcomp(&re, "^[a-z]+[0-9]+$", REG_EXTENDED | REG_NOSUB);
7 | if (ec != 0) {
8 | return ec;
9 | }
10 | return regexec(&re, str.c_str(), 0, nullptr, 0) ? -1 : 0;
11 | }
12 |
13 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/llvm-toolchain.cmake:
--------------------------------------------------------------------------------
1 | find_package(LLVMAr REQUIRED)
2 | set(CMAKE_AR "${LLVMAR_EXECUTABLE}" CACHE FILEPATH "" FORCE)
3 |
4 | find_package(LLVMNm REQUIRED)
5 | set(CMAKE_NM "${LLVMNM_EXECUTABLE}" CACHE FILEPATH "" FORCE)
6 |
7 | find_package(LLVMRanLib REQUIRED)
8 | set(CMAKE_RANLIB "${LLVMRANLIB_EXECUTABLE}" CACHE FILEPATH "" FORCE)
9 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/posix_regex.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | int main() {
4 | std::string str = "test0159";
5 | regex_t re;
6 | int ec = regcomp(&re, "^[a-z]+[0-9]+$", REG_EXTENDED | REG_NOSUB);
7 | if (ec != 0) {
8 | return ec;
9 | }
10 | int ret = regexec(&re, str.c_str(), 0, nullptr, 0) ? -1 : 0;
11 | regfree(&re);
12 | return ret;
13 | }
14 |
15 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/pthread_affinity.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | int main() {
3 | cpu_set_t set;
4 | CPU_ZERO(&set);
5 | for (int i = 0; i < CPU_SETSIZE; ++i) {
6 | CPU_SET(i, &set);
7 | CPU_CLR(i, &set);
8 | }
9 | pthread_t self = pthread_self();
10 | int ret;
11 | ret = pthread_getaffinity_np(self, sizeof(set), &set);
12 | if (ret != 0) return ret;
13 | ret = pthread_setaffinity_np(self, sizeof(set), &set);
14 | if (ret != 0) return ret;
15 | return 0;
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/split_list.cmake:
--------------------------------------------------------------------------------
1 | macro(split_list listname)
2 | string(REPLACE ";" " " ${listname} "${${listname}}")
3 | endmacro()
4 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/std_regex.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | int main() {
4 | const std::string str = "test0159";
5 | std::regex re;
6 | re = std::regex("^[a-z]+[0-9]+$",
7 | std::regex_constants::extended | std::regex_constants::nosubs);
8 | return std::regex_search(str, re) ? 0 : -1;
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/steady_clock.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | int main() {
4 | typedef std::chrono::steady_clock Clock;
5 | Clock::time_point tp = Clock::now();
6 | ((void)tp);
7 | }
8 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/cmake/thread_safety_attributes.cpp:
--------------------------------------------------------------------------------
1 | #define HAVE_THREAD_SAFETY_ATTRIBUTES
2 | #include "../src/mutex.h"
3 |
4 | int main() {}
5 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/src/benchmark_main.cc:
--------------------------------------------------------------------------------
1 | // Copyright 2018 Google Inc. All rights reserved.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | #include "benchmark/benchmark.h"
16 |
17 | BENCHMARK_EXPORT int main(int, char**);
18 | BENCHMARK_MAIN();
19 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/src/check.cc:
--------------------------------------------------------------------------------
1 | #include "check.h"
2 |
3 | namespace benchmark {
4 | namespace internal {
5 |
6 | static AbortHandlerT* handler = &std::abort;
7 |
8 | BENCHMARK_EXPORT AbortHandlerT*& GetAbortHandler() { return handler; }
9 |
10 | } // namespace internal
11 | } // namespace benchmark
12 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googlebenchmark/src/colorprint.h:
--------------------------------------------------------------------------------
1 | #ifndef BENCHMARK_COLORPRINT_H_
2 | #define BENCHMARK_COLORPRINT_H_
3 |
4 | #include
5 | #include
6 | #include
7 |
8 | namespace benchmark {
9 | enum LogColor {
10 | COLOR_DEFAULT,
11 | COLOR_RED,
12 | COLOR_GREEN,
13 | COLOR_YELLOW,
14 | COLOR_BLUE,
15 | COLOR_MAGENTA,
16 | COLOR_CYAN,
17 | COLOR_WHITE
18 | };
19 |
20 | std::string FormatString(const char* msg, va_list args);
21 | std::string FormatString(const char* msg, ...);
22 |
23 | void ColorPrintf(std::ostream& out, LogColor color, const char* fmt,
24 | va_list args);
25 | void ColorPrintf(std::ostream& out, LogColor color, const char* fmt, ...);
26 |
27 | // Returns true if stdout appears to be a terminal that supports colored
28 | // output, false otherwise.
29 | bool IsColorTerminal();
30 |
31 | } // end namespace benchmark
32 |
33 | #endif // BENCHMARK_COLORPRINT_H_
34 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googletest/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Note: CMake support is community-based. The maintainers do not use CMake
2 | # internally.
3 |
4 | cmake_minimum_required(VERSION 3.13)
5 |
6 | project(googletest-distribution)
7 | set(GOOGLETEST_VERSION 1.14.0)
8 |
9 | if(NOT CYGWIN AND NOT MSYS AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL QNX)
10 | set(CMAKE_CXX_EXTENSIONS OFF)
11 | endif()
12 |
13 | enable_testing()
14 |
15 | include(CMakeDependentOption)
16 | include(GNUInstallDirs)
17 |
18 | # Note that googlemock target already builds googletest.
19 | option(BUILD_GMOCK "Builds the googlemock subproject" ON)
20 | option(INSTALL_GTEST "Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)" ON)
21 | option(GTEST_HAS_ABSL "Use Abseil and RE2. Requires Abseil and RE2 to be separately added to the build." OFF)
22 |
23 | if(GTEST_HAS_ABSL)
24 | if(NOT TARGET absl::base)
25 | find_package(absl REQUIRED)
26 | endif()
27 | if(NOT TARGET re2::re2)
28 | find_package(re2 REQUIRED)
29 | endif()
30 | endif()
31 |
32 | if(BUILD_GMOCK)
33 | add_subdirectory( googlemock )
34 | else()
35 | add_subdirectory( googletest )
36 | endif()
37 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googletest/googlemock/cmake/gmock.pc.in:
--------------------------------------------------------------------------------
1 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@
2 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
3 |
4 | Name: gmock
5 | Description: GoogleMock (without main() function)
6 | Version: @PROJECT_VERSION@
7 | URL: https://github.com/google/googletest
8 | Requires: gtest = @PROJECT_VERSION@
9 | Libs: -L${libdir} -lgmock @CMAKE_THREAD_LIBS_INIT@
10 | Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@
11 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googletest/googlemock/cmake/gmock_main.pc.in:
--------------------------------------------------------------------------------
1 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@
2 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
3 |
4 | Name: gmock_main
5 | Description: GoogleMock (with main() function)
6 | Version: @PROJECT_VERSION@
7 | URL: https://github.com/google/googletest
8 | Requires: gmock = @PROJECT_VERSION@
9 | Libs: -L${libdir} -lgmock_main @CMAKE_THREAD_LIBS_INIT@
10 | Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@
11 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googletest/googlemock/include/gmock/internal/custom/README.md:
--------------------------------------------------------------------------------
1 | # Customization Points
2 |
3 | The custom directory is an injection point for custom user configurations.
4 |
5 | ## Header `gmock-port.h`
6 |
7 | The following macros can be defined:
8 |
9 | ### Flag related macros:
10 |
11 | * `GMOCK_DECLARE_bool_(name)`
12 | * `GMOCK_DECLARE_int32_(name)`
13 | * `GMOCK_DECLARE_string_(name)`
14 | * `GMOCK_DEFINE_bool_(name, default_val, doc)`
15 | * `GMOCK_DEFINE_int32_(name, default_val, doc)`
16 | * `GMOCK_DEFINE_string_(name, default_val, doc)`
17 | * `GMOCK_FLAG_GET(flag_name)`
18 | * `GMOCK_FLAG_SET(flag_name, value)`
19 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h:
--------------------------------------------------------------------------------
1 | // IWYU pragma: private, include "gmock/gmock.h"
2 | // IWYU pragma: friend gmock/.*
3 |
4 | #ifndef GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_GMOCK_GENERATED_ACTIONS_H_
5 | #define GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_GMOCK_GENERATED_ACTIONS_H_
6 |
7 | #endif // GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_GMOCK_GENERATED_ACTIONS_H_
8 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googletest/googletest/cmake/Config.cmake.in:
--------------------------------------------------------------------------------
1 | @PACKAGE_INIT@
2 | include(CMakeFindDependencyMacro)
3 | if (@GTEST_HAS_PTHREAD@)
4 | set(THREADS_PREFER_PTHREAD_FLAG @THREADS_PREFER_PTHREAD_FLAG@)
5 | find_dependency(Threads)
6 | endif()
7 | if (@GTEST_HAS_ABSL@)
8 | find_dependency(absl)
9 | find_dependency(re2)
10 | endif()
11 |
12 | include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake")
13 | check_required_components("@project_name@")
14 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googletest/googletest/cmake/gtest.pc.in:
--------------------------------------------------------------------------------
1 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@
2 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
3 |
4 | Name: gtest
5 | Description: GoogleTest (without main() function)
6 | Version: @PROJECT_VERSION@
7 | URL: https://github.com/google/googletest
8 | Libs: -L${libdir} -lgtest @CMAKE_THREAD_LIBS_INIT@
9 | Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@
10 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googletest/googletest/cmake/gtest_main.pc.in:
--------------------------------------------------------------------------------
1 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@
2 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
3 |
4 | Name: gtest_main
5 | Description: GoogleTest (with main() function)
6 | Version: @PROJECT_VERSION@
7 | URL: https://github.com/google/googletest
8 | Requires: gtest = @PROJECT_VERSION@
9 | Libs: -L${libdir} -lgtest_main @CMAKE_THREAD_LIBS_INIT@
10 | Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@
11 |
--------------------------------------------------------------------------------
/vendor/core/vendor/googletest/googletest/cmake/libgtest.la.in:
--------------------------------------------------------------------------------
1 | # libgtest.la - a libtool library file
2 | # Generated by libtool (GNU libtool) 2.4.6
3 |
4 | # Please DO NOT delete this file!
5 | # It is necessary for linking the library.
6 |
7 | # Names of this library.
8 | library_names='libgtest.so'
9 |
10 | # Is this an already installed library?
11 | installed=yes
12 |
13 | # Should we warn about portability when linking against -modules?
14 | shouldnotlink=no
15 |
16 | # Files to dlopen/dlpreopen
17 | dlopen=''
18 | dlpreopen=''
19 |
20 | # Directory that this library needs to be installed in:
21 | libdir='@CMAKE_INSTALL_FULL_LIBDIR@'
22 |
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-2019-09/hyper-schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json-schema.org/draft/2019-09/hyper-schema",
3 | "$id": "https://json-schema.org/draft/2019-09/hyper-schema",
4 | "$vocabulary": {
5 | "https://json-schema.org/draft/2019-09/vocab/core": true,
6 | "https://json-schema.org/draft/2019-09/vocab/applicator": true,
7 | "https://json-schema.org/draft/2019-09/vocab/validation": true,
8 | "https://json-schema.org/draft/2019-09/vocab/meta-data": true,
9 | "https://json-schema.org/draft/2019-09/vocab/format": false,
10 | "https://json-schema.org/draft/2019-09/vocab/content": true,
11 | "https://json-schema.org/draft/2019-09/vocab/hyper-schema": true
12 | },
13 | "$recursiveAnchor": true,
14 |
15 | "title": "JSON Hyper-Schema",
16 | "allOf": [
17 | {"$ref": "https://json-schema.org/draft/2019-09/schema"},
18 | {"$ref": "https://json-schema.org/draft/2019-09/meta/hyper-schema"}
19 | ],
20 | "links": [
21 | {
22 | "rel": "self",
23 | "href": "{+%24id}"
24 | }
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-2019-09/meta/content.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json-schema.org/draft/2019-09/schema",
3 | "$id": "https://json-schema.org/draft/2019-09/meta/content",
4 | "$vocabulary": {
5 | "https://json-schema.org/draft/2019-09/vocab/content": true
6 | },
7 | "$recursiveAnchor": true,
8 |
9 | "title": "Content vocabulary meta-schema",
10 |
11 | "type": ["object", "boolean"],
12 | "properties": {
13 | "contentMediaType": { "type": "string" },
14 | "contentEncoding": { "type": "string" },
15 | "contentSchema": { "$recursiveRef": "#" }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-2019-09/meta/format.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json-schema.org/draft/2019-09/schema",
3 | "$id": "https://json-schema.org/draft/2019-09/meta/format",
4 | "$vocabulary": {
5 | "https://json-schema.org/draft/2019-09/vocab/format": true
6 | },
7 | "$recursiveAnchor": true,
8 |
9 | "title": "Format vocabulary meta-schema",
10 | "type": ["object", "boolean"],
11 | "properties": {
12 | "format": { "type": "string" }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-2019-09/meta/hyper-schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json-schema.org/draft/2019-09/hyper-schema",
3 | "$id": "https://json-schema.org/draft/2019-09/meta/hyper-schema",
4 | "$vocabulary": {
5 | "https://json-schema.org/draft/2019-09/vocab/hyper-schema": true
6 | },
7 | "$recursiveAnchor": true,
8 |
9 | "title": "JSON Hyper-Schema Vocabulary Schema",
10 | "type": ["object", "boolean"],
11 | "properties": {
12 | "base": {
13 | "type": "string",
14 | "format": "uri-template"
15 | },
16 | "links": {
17 | "type": "array",
18 | "items": {
19 | "$ref": "https://json-schema.org/draft/2019-09/links"
20 | }
21 | }
22 | },
23 | "links": [
24 | {
25 | "rel": "self",
26 | "href": "{+%24id}"
27 | }
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-2019-09/meta/meta-data.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json-schema.org/draft/2019-09/schema",
3 | "$id": "https://json-schema.org/draft/2019-09/meta/meta-data",
4 | "$vocabulary": {
5 | "https://json-schema.org/draft/2019-09/vocab/meta-data": true
6 | },
7 | "$recursiveAnchor": true,
8 |
9 | "title": "Meta-data vocabulary meta-schema",
10 |
11 | "type": ["object", "boolean"],
12 | "properties": {
13 | "title": {
14 | "type": "string"
15 | },
16 | "description": {
17 | "type": "string"
18 | },
19 | "default": true,
20 | "deprecated": {
21 | "type": "boolean",
22 | "default": false
23 | },
24 | "readOnly": {
25 | "type": "boolean",
26 | "default": false
27 | },
28 | "writeOnly": {
29 | "type": "boolean",
30 | "default": false
31 | },
32 | "examples": {
33 | "type": "array",
34 | "items": true
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-2020-12/meta/content.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json-schema.org/draft/2020-12/schema",
3 | "$id": "https://json-schema.org/draft/2020-12/meta/content",
4 | "$vocabulary": {
5 | "https://json-schema.org/draft/2020-12/vocab/content": true
6 | },
7 | "$dynamicAnchor": "meta",
8 |
9 | "title": "Content vocabulary meta-schema",
10 |
11 | "type": ["object", "boolean"],
12 | "properties": {
13 | "contentEncoding": { "type": "string" },
14 | "contentMediaType": { "type": "string" },
15 | "contentSchema": { "$dynamicRef": "#meta" }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-2020-12/meta/format-annotation.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json-schema.org/draft/2020-12/schema",
3 | "$id": "https://json-schema.org/draft/2020-12/meta/format-annotation",
4 | "$vocabulary": {
5 | "https://json-schema.org/draft/2020-12/vocab/format-annotation": true
6 | },
7 | "$dynamicAnchor": "meta",
8 |
9 | "title": "Format vocabulary meta-schema for annotation results",
10 | "type": ["object", "boolean"],
11 | "properties": {
12 | "format": { "type": "string" }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-2020-12/meta/format-assertion.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json-schema.org/draft/2020-12/schema",
3 | "$id": "https://json-schema.org/draft/2020-12/meta/format-assertion",
4 | "$vocabulary": {
5 | "https://json-schema.org/draft/2020-12/vocab/format-assertion": true
6 | },
7 | "$dynamicAnchor": "meta",
8 |
9 | "title": "Format vocabulary meta-schema for assertion results",
10 | "type": ["object", "boolean"],
11 | "properties": {
12 | "format": { "type": "string" }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-2020-12/meta/hyper-schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json-schema.org/draft/2020-12/hyper-schema",
3 | "$id": "https://json-schema.org/draft/2020-12/meta/hyper-schema",
4 | "$vocabulary": {
5 | "https://json-schema.org/draft/2019-09/vocab/hyper-schema": true
6 | },
7 | "$dynamicAnchor": "meta",
8 |
9 | "title": "JSON Hyper-Schema Vocabulary Schema",
10 | "type": ["object", "boolean"],
11 | "properties": {
12 | "base": {
13 | "type": "string",
14 | "format": "uri-template"
15 | },
16 | "links": {
17 | "type": "array",
18 | "items": {
19 | "$ref": "https://json-schema.org/draft/2020-12/links"
20 | }
21 | }
22 | },
23 | "links": [
24 | {
25 | "rel": "self",
26 | "href": "{+%24id}"
27 | }
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-2020-12/meta/meta-data.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json-schema.org/draft/2020-12/schema",
3 | "$id": "https://json-schema.org/draft/2020-12/meta/meta-data",
4 | "$vocabulary": {
5 | "https://json-schema.org/draft/2020-12/vocab/meta-data": true
6 | },
7 | "$dynamicAnchor": "meta",
8 |
9 | "title": "Meta-data vocabulary meta-schema",
10 |
11 | "type": ["object", "boolean"],
12 | "properties": {
13 | "title": {
14 | "type": "string"
15 | },
16 | "description": {
17 | "type": "string"
18 | },
19 | "default": true,
20 | "deprecated": {
21 | "type": "boolean",
22 | "default": false
23 | },
24 | "readOnly": {
25 | "type": "boolean",
26 | "default": false
27 | },
28 | "writeOnly": {
29 | "type": "boolean",
30 | "default": false
31 | },
32 | "examples": {
33 | "type": "array",
34 | "items": true
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-2020-12/meta/unevaluated.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json-schema.org/draft/2020-12/schema",
3 | "$id": "https://json-schema.org/draft/2020-12/meta/unevaluated",
4 | "$vocabulary": {
5 | "https://json-schema.org/draft/2020-12/vocab/unevaluated": true
6 | },
7 | "$dynamicAnchor": "meta",
8 |
9 | "title": "Unevaluated applicator vocabulary meta-schema",
10 | "type": ["object", "boolean"],
11 | "properties": {
12 | "unevaluatedItems": { "$dynamicRef": "#meta" },
13 | "unevaluatedProperties": { "$dynamicRef": "#meta" }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-draft0/json-ref.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema" : "http://json-schema.org/draft-00/hyper-schema#",
3 | "id" : "http://json-schema.org/draft-00/json-ref#",
4 |
5 | "items" : {"$ref" : "#"},
6 | "additionalProperties" : {"$ref" : "#"},
7 |
8 | "links" : [
9 | {
10 | "href" : "{$ref}",
11 | "rel" : "full"
12 | },
13 |
14 | {
15 | "href" : "{$schema}",
16 | "rel" : "describedby"
17 | },
18 |
19 | {
20 | "href" : "{id}",
21 | "rel" : "self"
22 | }
23 | ],
24 |
25 | "fragmentResolution" : "dot-delimited"
26 | }
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-draft0/links.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema" : "http://json-schema.org/draft-00/hyper-schema#",
3 | "id" : "http://json-schema.org/draft-00/links#",
4 | "type" : "object",
5 |
6 | "properties" : {
7 | "href" : {
8 | "type" : "string"
9 | },
10 |
11 | "rel" : {
12 | "type" : "string"
13 | },
14 |
15 | "method" : {
16 | "type" : "string",
17 | "default" : "GET",
18 | "optional" : true
19 | },
20 |
21 | "enctype" : {
22 | "type" : "string",
23 | "requires" : "method",
24 | "optional" : true
25 | },
26 |
27 | "properties" : {
28 | "type" : "object",
29 | "additionalProperties" : {"$ref" : "http://json-schema.org/draft-00/hyper-schema#"},
30 | "optional" : true
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-draft1/json-ref.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema" : "http://json-schema.org/draft-01/hyper-schema#",
3 | "id" : "http://json-schema.org/draft-01/json-ref#",
4 |
5 | "items" : {"$ref" : "#"},
6 | "additionalProperties" : {"$ref" : "#"},
7 |
8 | "links" : [
9 | {
10 | "href" : "{$ref}",
11 | "rel" : "full"
12 | },
13 |
14 | {
15 | "href" : "{$schema}",
16 | "rel" : "describedby"
17 | },
18 |
19 | {
20 | "href" : "{id}",
21 | "rel" : "self"
22 | }
23 | ],
24 |
25 | "fragmentResolution" : "dot-delimited"
26 | }
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-draft1/links.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema" : "http://json-schema.org/draft-01/hyper-schema#",
3 | "id" : "http://json-schema.org/draft-01/links#",
4 | "type" : "object",
5 |
6 | "properties" : {
7 | "href" : {
8 | "type" : "string"
9 | },
10 |
11 | "rel" : {
12 | "type" : "string"
13 | },
14 |
15 | "method" : {
16 | "type" : "string",
17 | "default" : "GET",
18 | "optional" : true
19 | },
20 |
21 | "enctype" : {
22 | "type" : "string",
23 | "requires" : "method",
24 | "optional" : true
25 | },
26 |
27 | "properties" : {
28 | "type" : "object",
29 | "additionalProperties" : {"$ref" : "http://json-schema.org/draft-01/hyper-schema#"},
30 | "optional" : true
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-draft2/json-ref.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema" : "http://json-schema.org/draft-02/hyper-schema#",
3 | "id" : "http://json-schema.org/draft-02/json-ref#",
4 |
5 | "items" : {"$ref" : "#"},
6 | "additionalProperties" : {"$ref" : "#"},
7 |
8 | "links" : [
9 | {
10 | "href" : "{$ref}",
11 | "rel" : "full"
12 | },
13 |
14 | {
15 | "href" : "{$schema}",
16 | "rel" : "describedby"
17 | },
18 |
19 | {
20 | "href" : "{id}",
21 | "rel" : "self"
22 | }
23 | ],
24 |
25 | "fragmentResolution" : "dot-delimited"
26 | }
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-draft2/links.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema" : "http://json-schema.org/draft-02/hyper-schema#",
3 | "id" : "http://json-schema.org/draft-02/links#",
4 | "type" : "object",
5 |
6 | "properties" : {
7 | "href" : {
8 | "type" : "string"
9 | },
10 |
11 | "rel" : {
12 | "type" : "string"
13 | },
14 |
15 | "targetSchema" : {"$ref" : "http://json-schema.org/draft-02/hyper-schema#"},
16 |
17 | "method" : {
18 | "type" : "string",
19 | "default" : "GET",
20 | "optional" : true
21 | },
22 |
23 | "enctype" : {
24 | "type" : "string",
25 | "requires" : "method",
26 | "optional" : true
27 | },
28 |
29 | "properties" : {
30 | "type" : "object",
31 | "additionalProperties" : {"$ref" : "http://json-schema.org/draft-02/hyper-schema#"},
32 | "optional" : true
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-draft3/json-ref.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema" : "http://json-schema.org/draft-03/hyper-schema#",
3 | "id" : "http://json-schema.org/draft-03/json-ref#",
4 |
5 | "additionalItems" : {"$ref" : "#"},
6 | "additionalProperties" : {"$ref" : "#"},
7 |
8 | "links" : [
9 | {
10 | "href" : "{id}",
11 | "rel" : "self"
12 | },
13 |
14 | {
15 | "href" : "{$ref}",
16 | "rel" : "full"
17 | },
18 |
19 | {
20 | "href" : "{$schema}",
21 | "rel" : "describedby"
22 | }
23 | ],
24 |
25 | "fragmentResolution" : "dot-delimited"
26 | }
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-draft3/links.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema" : "http://json-schema.org/draft-03/hyper-schema#",
3 | "id" : "http://json-schema.org/draft-03/links#",
4 | "type" : "object",
5 |
6 | "properties" : {
7 | "href" : {
8 | "type" : "string",
9 | "required" : true,
10 | "format" : "link-description-object-template"
11 | },
12 |
13 | "rel" : {
14 | "type" : "string",
15 | "required" : true
16 | },
17 |
18 | "targetSchema" : {"$ref" : "http://json-schema.org/draft-03/hyper-schema#"},
19 |
20 | "method" : {
21 | "type" : "string",
22 | "default" : "GET"
23 | },
24 |
25 | "enctype" : {
26 | "type" : "string",
27 | "requires" : "method"
28 | },
29 |
30 | "properties" : {
31 | "type" : "object",
32 | "additionalProperties" : {"$ref" : "http://json-schema.org/draft-03/hyper-schema#"}
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/vendor/core/vendor/jsonschema-draft4/links.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema" : "http://json-schema.org/draft-04/hyper-schema#",
3 | "id" : "http://json-schema.org/draft-04/links#",
4 | "type" : "object",
5 |
6 | "properties" : {
7 | "rel" : {
8 | "type" : "string"
9 | },
10 |
11 | "href" : {
12 | "type" : "string"
13 | },
14 |
15 | "template" : {
16 | "type" : "string"
17 | },
18 |
19 | "targetSchema" : {"$ref" : "http://json-schema.org/draft-04/hyper-schema#"},
20 |
21 | "method" : {
22 | "type" : "string",
23 | "default" : "GET"
24 | },
25 |
26 | "enctype" : {
27 | "type" : "string"
28 | },
29 |
30 | "properties" : {
31 | "type" : "object",
32 | "additionalProperties" : {"$ref" : "http://json-schema.org/draft-04/hyper-schema#"}
33 | }
34 | },
35 |
36 | "required" : ["rel", "href"],
37 |
38 | "dependencies" : {
39 | "enctype" : ["method"]
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/vendor/core/vendor/yaml.mask:
--------------------------------------------------------------------------------
1 | cmake/
2 | doc/
3 | docker/
4 | examples/
5 | include/Makefile.am
6 | regression-inputs/
7 | src/Makefile.am
8 | tests/
9 | .appveyor.yml
10 | .indent.pro
11 | .makefile
12 | .travis.yml
13 | announcement.msg
14 | bootstrap
15 | Changes
16 | CMakeLists.txt
17 | configure.ac
18 | Makefile.am
19 | ReadMe.md
20 | yaml-0.1.pc.in
21 | yamlConfig.cmake.in
22 |
--------------------------------------------------------------------------------
/vendor/noa/LICENSE:
--------------------------------------------------------------------------------
1 | This software is dual-licensed: you can redistribute it and/or modify it under
2 | the terms of the GNU Affero General Public License as published by the Free
3 | Software Foundation, either version 3 of the License, or (at your option) any
4 | later version. For the terms of this license, see
5 | .
6 |
7 | You are free to use this software under the terms of the GNU Affero General
8 | Public License WITHOUT ANY WARRANTY; without even the implied warranty of
9 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 |
11 | Alternatively, you can use this software under a commercial license, as set out
12 | in .
13 |
--------------------------------------------------------------------------------
/vendor/noa/cmake/FindGoogleBenchmark.cmake:
--------------------------------------------------------------------------------
1 | if(NOT Benchmark_FOUND)
2 | set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Enable testing of the benchmark library.")
3 | add_subdirectory("${PROJECT_SOURCE_DIR}/vendor/googlebenchmark")
4 | set(Benchmark_FOUND ON)
5 | endif()
6 |
--------------------------------------------------------------------------------
/vendor/noa/cmake/FindGoogleTest.cmake:
--------------------------------------------------------------------------------
1 | if(NOT GoogleTest_FOUND)
2 | set(BUILD_GMOCK ON CACHE BOOL "enable googlemock")
3 | set(INSTALL_GTEST OFF CACHE BOOL "disable installation")
4 | add_subdirectory("${PROJECT_SOURCE_DIR}/vendor/googletest")
5 | set(GoogleTest_FOUND ON)
6 | endif()
7 |
--------------------------------------------------------------------------------
/vendor/noa/cmake/noa.cmake:
--------------------------------------------------------------------------------
1 | set(NOA_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/noa")
2 | include("${NOA_DIRECTORY}/shim.cmake")
3 | include("${NOA_DIRECTORY}/variables.cmake")
4 | include("${NOA_DIRECTORY}/defaults.cmake")
5 | include("${NOA_DIRECTORY}/compiler/sanitizer.cmake")
6 | include("${NOA_DIRECTORY}/compiler/options.cmake")
7 | include("${NOA_DIRECTORY}/options/enum.cmake")
8 | include("${NOA_DIRECTORY}/commands/copy-file.cmake")
9 | include("${NOA_DIRECTORY}/targets/library.cmake")
10 | include("${NOA_DIRECTORY}/targets/executable.cmake")
11 | include("${NOA_DIRECTORY}/targets/clang-format.cmake")
12 | include("${NOA_DIRECTORY}/targets/clang-tidy.cmake")
13 | include("${NOA_DIRECTORY}/targets/shellcheck.cmake")
14 | include("${NOA_DIRECTORY}/targets/doxygen.cmake")
15 | include("${NOA_DIRECTORY}/targets/googletest.cmake")
16 | include("${NOA_DIRECTORY}/targets/googlebenchmark.cmake")
17 |
--------------------------------------------------------------------------------
/vendor/noa/cmake/noa/commands/copy-file.cmake:
--------------------------------------------------------------------------------
1 | function(noa_command_copy_file)
2 | cmake_parse_arguments(NOA_COMMAND_COPY_FILE "" "FROM;TO" "" ${ARGN})
3 |
4 | if(NOT NOA_COMMAND_COPY_FILE_FROM)
5 | message(FATAL_ERROR "You must pass the file to copy using the FROM option")
6 | endif()
7 | if(NOT NOA_COMMAND_COPY_FILE_TO)
8 | message(FATAL_ERROR "You must pass the destination to copy to using the TO option")
9 | endif()
10 |
11 | add_custom_command(
12 | OUTPUT "${NOA_COMMAND_COPY_FILE_TO}"
13 | COMMAND "${CMAKE_COMMAND}" -E copy "${NOA_COMMAND_COPY_FILE_FROM}" "${NOA_COMMAND_COPY_FILE_TO}"
14 | MAIN_DEPENDENCY "${NOA_COMMAND_COPY_FILE_FROM}"
15 | DEPENDS "${NOA_COMMAND_COPY_FILE_FROM}"
16 | COMMENT "Copying ${NOA_COMMAND_COPY_FILE_FROM} ot ${NOA_COMMAND_COPY_FILE_TO}")
17 | endfunction()
18 |
--------------------------------------------------------------------------------
/vendor/noa/cmake/noa/shim.cmake:
--------------------------------------------------------------------------------
1 | # The PROJECT_IS_TOP_LEVEL handy variable is only
2 | # available on CMake >=3.21.
3 | if(NOT DEFINED PROJECT_IS_TOP_LEVEL AND "${CMAKE_PROJECT_NAME}" STREQUAL "${PROJECT_NAME}")
4 | set(PROJECT_IS_TOP_LEVEL YES)
5 | endif()
6 |
--------------------------------------------------------------------------------
/vendor/noa/cmake/noa/targets/clang-format.config:
--------------------------------------------------------------------------------
1 | ---
2 | BasedOnStyle: LLVM
3 | IndentCaseLabels: true
4 |
--------------------------------------------------------------------------------
/vendor/noa/cmake/noa/targets/clang-tidy.config:
--------------------------------------------------------------------------------
1 | ---
2 | # See https://clang.llvm.org/extra/clang-tidy/index.html
3 | # First disable all default checks (with -*)
4 | Checks: '-*,bugprone-*,clang-analyzer-*,clang-diagnostic-*,modernize-*,concurrency-*,cppcoreguidelines-*,performance-*,portability-*,objc-*,misc-*,-misc-no-recursion,-bugprone-easily-swappable-parameters'
5 | WarningsAsErrors: '*'
6 | HeaderFilterRegex: ''
7 | FormatStyle: none
8 |
--------------------------------------------------------------------------------
/vendor/noa/cmake/noa/targets/doxygen.cmake:
--------------------------------------------------------------------------------
1 | function(noa_target_doxygen)
2 | cmake_parse_arguments(NOA_TARGET_DOXYGEN "" "CONFIG;OUTPUT" "" ${ARGN})
3 |
4 | if(NOT NOA_TARGET_DOXYGEN_CONFIG)
5 | message(FATAL_ERROR "You must pass an input config file using the CONFIG option")
6 | endif()
7 | if(NOT NOA_TARGET_DOXYGEN_OUTPUT)
8 | message(FATAL_ERROR "You must pass an output directory using the OUTPUT option")
9 | endif()
10 |
11 | find_package(Doxygen)
12 | if(DOXYGEN_FOUND)
13 | set(DOXYGEN_IN "${NOA_TARGET_DOXYGEN_CONFIG}")
14 | set(DOXYGEN_OUT "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
15 | configure_file("${DOXYGEN_IN}" "${DOXYGEN_OUT}" @ONLY)
16 | add_custom_target(doxygen
17 | WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
18 | VERBATIM
19 | COMMAND "${CMAKE_COMMAND}" -E make_directory "${NOA_TARGET_DOXYGEN_OUTPUT}"
20 | COMMAND "${DOXYGEN_EXECUTABLE}" "${DOXYGEN_OUT}")
21 | else()
22 | add_custom_target(doxygen VERBATIM
23 | COMMAND "${CMAKE_COMMAND}" -E echo "Could not locate Doxygen"
24 | COMMAND "${CMAKE_COMMAND}" -E false)
25 | endif()
26 | endfunction()
27 |
--------------------------------------------------------------------------------
/vendor/noa/cmake/noa/targets/googletest.cmake:
--------------------------------------------------------------------------------
1 | function(noa_googletest)
2 | cmake_parse_arguments(NOA_GOOGLETEST ""
3 | "NAMESPACE;PROJECT;NAME;FOLDER;VARIANT" "SOURCES" ${ARGN})
4 |
5 | if(NOA_GOOGLETEST_VARIANT)
6 | set(TARGET_VARIANT "${NOA_GOOGLETEST_VARIANT}_unit")
7 | else()
8 | set(TARGET_VARIANT "unit")
9 | endif()
10 |
11 | noa_executable(
12 | NAMESPACE "${NOA_GOOGLETEST_NAMESPACE}"
13 | PROJECT "${NOA_GOOGLETEST_PROJECT}"
14 | NAME "${NOA_GOOGLETEST_NAME}"
15 | FOLDER "${NOA_GOOGLETEST_FOLDER}"
16 | VARIANT "${TARGET_VARIANT}"
17 | SOURCES "${NOA_GOOGLETEST_SOURCES}"
18 | OUTPUT TARGET_NAME)
19 |
20 | target_link_libraries("${TARGET_NAME}"
21 | PRIVATE GTest::gtest GTest::gmock GTest::gtest_main)
22 | add_test(NAME "${NOA_GOOGLETEST_PROJECT}.${NOA_GOOGLETEST_NAME}"
23 | COMMAND "${TARGET_NAME}" --gtest_brief=1)
24 | endfunction()
25 |
--------------------------------------------------------------------------------
/vendor/noa/cmake/noa/variables.cmake:
--------------------------------------------------------------------------------
1 | # Get the list of languages defined in the project
2 | get_property(NOA_LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
3 |
4 | # Compiler detection (C++)
5 | # TODO: Detect compilers on programming languages other than C++
6 | if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
7 | set(NOA_COMPILER_LLVM ON)
8 | elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
9 | set(NOA_COMPILER_GCC ON)
10 | elseif(MSVC)
11 | set(NOA_COMPILER_MSVC ON)
12 | endif()
13 |
--------------------------------------------------------------------------------
/vendor/noa/config.cmake.in:
--------------------------------------------------------------------------------
1 | @PACKAGE_INIT@
2 |
3 | # Support both casing styles
4 | list(APPEND NOA_COMPONENTS ${Noa_FIND_COMPONENTS})
5 | list(APPEND NOA_COMPONENTS ${noa_FIND_COMPONENTS})
6 | if(NOT NOA_COMPONENTS)
7 | list(APPEND NOA_COMPONENTS hash)
8 | list(APPEND NOA_COMPONENTS flat_map)
9 | list(APPEND NOA_COMPONENTS regex)
10 | endif()
11 |
12 | include(CMakeFindDependencyMacro)
13 |
14 | foreach(component ${NOA_COMPONENTS})
15 | if(component STREQUAL "hash")
16 | include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_noa_hash.cmake")
17 | elseif(component STREQUAL "flat_map")
18 | include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_noa_flat_map.cmake")
19 | elseif(component STREQUAL "regex")
20 | find_dependency(BoostRegex)
21 | include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_noa_regex.cmake")
22 | else()
23 | message(FATAL_ERROR "Unknown Noa component: ${component}")
24 | endif()
25 | endforeach()
26 |
27 | check_required_components("@PROJECT_NAME@")
28 |
--------------------------------------------------------------------------------
/vendor/noa/src/flat_map/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | noa_library(NAMESPACE sourcemeta PROJECT noa NAME flat_map FOLDER "Noa/Flat Map")
2 |
3 | if(NOA_INSTALL)
4 | noa_library_install(NAMESPACE sourcemeta PROJECT noa NAME flat_map)
5 | endif()
6 |
--------------------------------------------------------------------------------
/vendor/noa/src/hash/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | noa_library(NAMESPACE sourcemeta PROJECT noa NAME hash FOLDER "Noa/Hash")
2 |
3 | if(NOA_INSTALL)
4 | noa_library_install(NAMESPACE sourcemeta PROJECT noa NAME hash)
5 | endif()
6 |
--------------------------------------------------------------------------------
/vendor/noa/src/hash/include/sourcemeta/noa/hash.h:
--------------------------------------------------------------------------------
1 | #ifndef SOURCEMETA_NOA_HASH_H_
2 | #define SOURCEMETA_NOA_HASH_H_
3 |
4 | /// @defgroup hash Hash
5 |
6 | namespace sourcemeta::noa {
7 |
8 | // @ingroup hash
9 | template struct StandardHash {
10 | using hash_type = std::size_t;
11 | inline auto operator()(const T &value) const -> hash_type {
12 | return this->hasher(value);
13 | }
14 |
15 | inline auto is_perfect(const hash_type &) const noexcept -> bool {
16 | return false;
17 | }
18 |
19 | private:
20 | std::hash hasher;
21 | };
22 |
23 | } // namespace sourcemeta::noa
24 |
25 | #endif
26 |
--------------------------------------------------------------------------------
/vendor/noa/src/regex/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | noa_library(NAMESPACE sourcemeta PROJECT noa NAME regex
2 | FOLDER "Noa/Regex")
3 |
4 | if(NOA_INSTALL)
5 | noa_library_install(NAMESPACE sourcemeta PROJECT noa NAME regex)
6 | endif()
7 |
8 | target_link_libraries(sourcemeta_noa_regex INTERFACE Boost::regex)
9 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/boost-regex/include/boost/cregex.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 1998-2002
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org/libs/regex for most recent version.
14 | * FILE cregex.cpp
15 | * VERSION see
16 | * DESCRIPTION: Declares POSIX API functions
17 | * + boost::RegEx high level wrapper.
18 | */
19 |
20 | #ifndef BOOST_RE_CREGEX_HPP
21 | #define BOOST_RE_CREGEX_HPP
22 |
23 | #ifndef BOOST_REGEX_CONFIG_HPP
24 | #include
25 | #endif
26 |
27 | #ifdef BOOST_REGEX_CXX03
28 | #include
29 | #else
30 | #include
31 | #endif
32 |
33 | #endif /* include guard */
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/boost-regex/include/boost/regex.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 1998-2002
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org/libs/regex for documentation.
14 | * FILE regex.cpp
15 | * VERSION see
16 | * DESCRIPTION: Declares boost::basic_regex<> and associated
17 | * functions and classes. This header is the main
18 | * entry point for the template regex code.
19 | */
20 |
21 |
22 | /* start with C compatibility API */
23 |
24 | #ifndef BOOST_RE_REGEX_HPP
25 | #define BOOST_RE_REGEX_HPP
26 |
27 | #ifndef BOOST_REGEX_CONFIG_HPP
28 | #include
29 | #endif
30 |
31 | #ifdef BOOST_REGEX_CXX03
32 | #include
33 | #else
34 | #include
35 | #endif
36 |
37 | #endif // include
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/boost-regex/include/boost/regex/icu.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2020
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org for most recent version.
14 | * FILE icu.hpp
15 | * VERSION see
16 | * DESCRIPTION: Unicode regular expressions on top of the ICU Library.
17 | */
18 |
19 | #ifndef BOOST_REGEX_ICU_HPP
20 | #define BOOST_REGEX_ICU_HPP
21 |
22 | #include
23 |
24 | #ifdef BOOST_REGEX_CXX03
25 | #include
26 | #else
27 | #include
28 | #endif
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/boost-regex/include/boost/regex/pattern_except.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 1998-2002
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org for most recent version.
14 | * FILE pattern_except.hpp
15 | * VERSION see
16 | * DESCRIPTION: Declares pattern-matching exception classes.
17 | */
18 |
19 | #ifndef BOOST_RE_PAT_EXCEPT_HPP
20 | #define BOOST_RE_PAT_EXCEPT_HPP
21 |
22 | #ifndef BOOST_REGEX_CONFIG_HPP
23 | #include
24 | #endif
25 |
26 | #ifdef BOOST_REGEX_CXX03
27 | #include
28 | #else
29 | #include
30 | #endif
31 |
32 | #endif
33 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/boost-regex/include/boost/regex/pending/object_cache.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2004
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org for most recent version.
14 | * FILE object_cache.hpp
15 | * VERSION see
16 | * DESCRIPTION: Implements a generic object cache.
17 | */
18 |
19 | #ifndef BOOST_REGEX_OBJECT_CACHE_HPP
20 | #define BOOST_REGEX_OBJECT_CACHE_HPP
21 |
22 | #include
23 | #ifdef BOOST_REGEX_CXX03
24 | #include
25 | #else
26 | #include
27 | #endif
28 |
29 | #endif
30 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/boost-regex/include/boost/regex/pending/unicode_iterator.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2020
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org for most recent version.
14 | * FILE unicode_iterator.hpp
15 | * VERSION see
16 | * DESCRIPTION: Iterator adapters for converting between different Unicode encodings.
17 | */
18 |
19 | #ifndef BOOST_REGEX_PENDING_UNICODE_ITERATOR_HPP
20 | #define BOOST_REGEX_PENDING_UNICODE_ITERATOR_HPP
21 |
22 | #include
23 |
24 | #if defined(BOOST_REGEX_CXX03)
25 | #include
26 | #else
27 | #include
28 | #endif
29 |
30 |
31 | #endif // BOOST_REGEX_PENDING_UNICODE_ITERATOR_HPP
32 |
33 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/boost-regex/include/boost/regex/regex_traits.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 1998-2002
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org for most recent version.
14 | * FILE regex_traits.hpp
15 | * VERSION see
16 | * DESCRIPTION: Declares regular expression traits classes.
17 | */
18 |
19 | #ifndef BOOST_REGEX_TRAITS_HPP
20 | #define BOOST_REGEX_TRAITS_HPP
21 |
22 | #ifndef BOOST_REGEX_CONFIG_HPP
23 | # include
24 | #endif
25 |
26 | # ifndef BOOST_REGEX_TRAITS_HPP_INCLUDED
27 | #ifdef BOOST_REGEX_CXX03
28 | # include
29 | #else
30 | # include
31 | #endif
32 | # endif
33 |
34 | #endif // include
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/boost-regex/include/boost/regex/v5/iterator_traits.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 1998-2002
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org for most recent version.
14 | * FILE iterator_traits.cpp
15 | * VERSION see
16 | * DESCRIPTION: Declares iterator traits workarounds.
17 | */
18 |
19 | #ifndef BOOST_REGEX_V5_ITERATOR_TRAITS_HPP
20 | #define BOOST_REGEX_V5_ITERATOR_TRAITS_HPP
21 |
22 | namespace boost{
23 | namespace BOOST_REGEX_DETAIL_NS{
24 |
25 | template
26 | struct regex_iterator_traits : public std::iterator_traits {};
27 |
28 | } // namespace BOOST_REGEX_DETAIL_NS
29 | } // namespace boost
30 |
31 | #endif
32 |
33 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/boost-regex/include/boost/regex_fwd.hpp:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 1998-2002
4 | * John Maddock
5 | *
6 | * Use, modification and distribution are subject to the
7 | * Boost Software License, Version 1.0. (See accompanying file
8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 | *
10 | */
11 |
12 | /*
13 | * LOCATION: see http://www.boost.org/libs/regex for documentation.
14 | * FILE regex_fwd.cpp
15 | * VERSION see
16 | * DESCRIPTION: Forward declares boost::basic_regex<> and
17 | * associated typedefs.
18 | */
19 |
20 | #ifndef BOOST_REGEX_FWD_HPP
21 | #define BOOST_REGEX_FWD_HPP
22 |
23 | #ifndef BOOST_REGEX_CONFIG_HPP
24 | #include
25 | #endif
26 |
27 | #ifdef BOOST_REGEX_CXX03
28 | #include
29 | #else
30 | #include
31 | #endif
32 |
33 | #endif
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/Config.cmake.in:
--------------------------------------------------------------------------------
1 | @PACKAGE_INIT@
2 |
3 | include (CMakeFindDependencyMacro)
4 |
5 | find_dependency (Threads)
6 |
7 | if (@BENCHMARK_ENABLE_LIBPFM@)
8 | find_dependency (PFM)
9 | endif()
10 |
11 | include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake")
12 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/GetGitVersion.cmake:
--------------------------------------------------------------------------------
1 | # - Returns a version string from Git tags
2 | #
3 | # This function inspects the annotated git tags for the project and returns a string
4 | # into a CMake variable
5 | #
6 | # get_git_version()
7 | #
8 | # - Example
9 | #
10 | # include(GetGitVersion)
11 | # get_git_version(GIT_VERSION)
12 | #
13 | # Requires CMake 2.8.11+
14 | find_package(Git)
15 |
16 | if(__get_git_version)
17 | return()
18 | endif()
19 | set(__get_git_version INCLUDED)
20 |
21 | function(get_git_version var)
22 | if(GIT_EXECUTABLE)
23 | execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --match "v[0-9]*.[0-9]*.[0-9]*" --abbrev=8 --dirty
24 | WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
25 | RESULT_VARIABLE status
26 | OUTPUT_VARIABLE GIT_VERSION
27 | ERROR_QUIET)
28 | if(status)
29 | set(GIT_VERSION "v0.0.0")
30 | endif()
31 | else()
32 | set(GIT_VERSION "v0.0.0")
33 | endif()
34 |
35 | set(${var} ${GIT_VERSION} PARENT_SCOPE)
36 | endfunction()
37 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/Modules/FindLLVMAr.cmake:
--------------------------------------------------------------------------------
1 | include(FeatureSummary)
2 |
3 | find_program(LLVMAR_EXECUTABLE
4 | NAMES llvm-ar
5 | DOC "The llvm-ar executable"
6 | )
7 |
8 | include(FindPackageHandleStandardArgs)
9 | find_package_handle_standard_args(LLVMAr
10 | DEFAULT_MSG
11 | LLVMAR_EXECUTABLE)
12 |
13 | SET_PACKAGE_PROPERTIES(LLVMAr PROPERTIES
14 | URL https://llvm.org/docs/CommandGuide/llvm-ar.html
15 | DESCRIPTION "create, modify, and extract from archives"
16 | )
17 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/Modules/FindLLVMNm.cmake:
--------------------------------------------------------------------------------
1 | include(FeatureSummary)
2 |
3 | find_program(LLVMNM_EXECUTABLE
4 | NAMES llvm-nm
5 | DOC "The llvm-nm executable"
6 | )
7 |
8 | include(FindPackageHandleStandardArgs)
9 | find_package_handle_standard_args(LLVMNm
10 | DEFAULT_MSG
11 | LLVMNM_EXECUTABLE)
12 |
13 | SET_PACKAGE_PROPERTIES(LLVMNm PROPERTIES
14 | URL https://llvm.org/docs/CommandGuide/llvm-nm.html
15 | DESCRIPTION "list LLVM bitcode and object file’s symbol table"
16 | )
17 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/Modules/FindLLVMRanLib.cmake:
--------------------------------------------------------------------------------
1 | include(FeatureSummary)
2 |
3 | find_program(LLVMRANLIB_EXECUTABLE
4 | NAMES llvm-ranlib
5 | DOC "The llvm-ranlib executable"
6 | )
7 |
8 | include(FindPackageHandleStandardArgs)
9 | find_package_handle_standard_args(LLVMRanLib
10 | DEFAULT_MSG
11 | LLVMRANLIB_EXECUTABLE)
12 |
13 | SET_PACKAGE_PROPERTIES(LLVMRanLib PROPERTIES
14 | DESCRIPTION "generate index for LLVM archive"
15 | )
16 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/Modules/FindPFM.cmake:
--------------------------------------------------------------------------------
1 | # If successful, the following variables will be defined:
2 | # PFM_FOUND.
3 | # PFM_LIBRARIES
4 | # PFM_INCLUDE_DIRS
5 | # the following target will be defined:
6 | # PFM::libpfm
7 |
8 | include(FeatureSummary)
9 | include(FindPackageHandleStandardArgs)
10 |
11 | set_package_properties(PFM PROPERTIES
12 | URL http://perfmon2.sourceforge.net/
13 | DESCRIPTION "A helper library to develop monitoring tools"
14 | PURPOSE "Used to program specific performance monitoring events")
15 |
16 | find_library(PFM_LIBRARY NAMES pfm)
17 | find_path(PFM_INCLUDE_DIR NAMES perfmon/pfmlib.h)
18 |
19 | find_package_handle_standard_args(PFM REQUIRED_VARS PFM_LIBRARY PFM_INCLUDE_DIR)
20 |
21 | if (PFM_FOUND AND NOT TARGET PFM::libpfm)
22 | add_library(PFM::libpfm UNKNOWN IMPORTED)
23 | set_target_properties(PFM::libpfm PROPERTIES
24 | IMPORTED_LOCATION "${PFM_LIBRARY}"
25 | INTERFACE_INCLUDE_DIRECTORIES "${PFM_INCLUDE_DIR}")
26 | endif()
27 |
28 | mark_as_advanced(PFM_LIBRARY PFM_INCLUDE_DIR)
29 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/benchmark.pc.in:
--------------------------------------------------------------------------------
1 | prefix=@CMAKE_INSTALL_PREFIX@
2 | exec_prefix=${prefix}
3 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@
4 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
5 |
6 | Name: @PROJECT_NAME@
7 | Description: Google microbenchmark framework
8 | Version: @VERSION@
9 |
10 | Libs: -L${libdir} -lbenchmark
11 | Libs.private: -lpthread @BENCHMARK_PRIVATE_LINK_LIBRARIES@
12 | Cflags: -I${includedir}
13 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/benchmark_main.pc.in:
--------------------------------------------------------------------------------
1 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@
2 |
3 | Name: @PROJECT_NAME@
4 | Description: Google microbenchmark framework (with main() function)
5 | Version: @VERSION@
6 | Requires: benchmark
7 | Libs: -L${libdir} -lbenchmark_main
8 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/gnu_posix_regex.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | int main() {
4 | std::string str = "test0159";
5 | regex_t re;
6 | int ec = regcomp(&re, "^[a-z]+[0-9]+$", REG_EXTENDED | REG_NOSUB);
7 | if (ec != 0) {
8 | return ec;
9 | }
10 | return regexec(&re, str.c_str(), 0, nullptr, 0) ? -1 : 0;
11 | }
12 |
13 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/llvm-toolchain.cmake:
--------------------------------------------------------------------------------
1 | find_package(LLVMAr REQUIRED)
2 | set(CMAKE_AR "${LLVMAR_EXECUTABLE}" CACHE FILEPATH "" FORCE)
3 |
4 | find_package(LLVMNm REQUIRED)
5 | set(CMAKE_NM "${LLVMNM_EXECUTABLE}" CACHE FILEPATH "" FORCE)
6 |
7 | find_package(LLVMRanLib REQUIRED)
8 | set(CMAKE_RANLIB "${LLVMRANLIB_EXECUTABLE}" CACHE FILEPATH "" FORCE)
9 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/posix_regex.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | int main() {
4 | std::string str = "test0159";
5 | regex_t re;
6 | int ec = regcomp(&re, "^[a-z]+[0-9]+$", REG_EXTENDED | REG_NOSUB);
7 | if (ec != 0) {
8 | return ec;
9 | }
10 | int ret = regexec(&re, str.c_str(), 0, nullptr, 0) ? -1 : 0;
11 | regfree(&re);
12 | return ret;
13 | }
14 |
15 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/pthread_affinity.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | int main() {
3 | cpu_set_t set;
4 | CPU_ZERO(&set);
5 | for (int i = 0; i < CPU_SETSIZE; ++i) {
6 | CPU_SET(i, &set);
7 | CPU_CLR(i, &set);
8 | }
9 | pthread_t self = pthread_self();
10 | int ret;
11 | ret = pthread_getaffinity_np(self, sizeof(set), &set);
12 | if (ret != 0) return ret;
13 | ret = pthread_setaffinity_np(self, sizeof(set), &set);
14 | if (ret != 0) return ret;
15 | return 0;
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/split_list.cmake:
--------------------------------------------------------------------------------
1 | macro(split_list listname)
2 | string(REPLACE ";" " " ${listname} "${${listname}}")
3 | endmacro()
4 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/std_regex.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | int main() {
4 | const std::string str = "test0159";
5 | std::regex re;
6 | re = std::regex("^[a-z]+[0-9]+$",
7 | std::regex_constants::extended | std::regex_constants::nosubs);
8 | return std::regex_search(str, re) ? 0 : -1;
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/steady_clock.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | int main() {
4 | typedef std::chrono::steady_clock Clock;
5 | Clock::time_point tp = Clock::now();
6 | ((void)tp);
7 | }
8 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/cmake/thread_safety_attributes.cpp:
--------------------------------------------------------------------------------
1 | #define HAVE_THREAD_SAFETY_ATTRIBUTES
2 | #include "../src/mutex.h"
3 |
4 | int main() {}
5 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/src/benchmark_main.cc:
--------------------------------------------------------------------------------
1 | // Copyright 2018 Google Inc. All rights reserved.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | #include "benchmark/benchmark.h"
16 |
17 | BENCHMARK_EXPORT int main(int, char**);
18 | BENCHMARK_MAIN();
19 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/src/check.cc:
--------------------------------------------------------------------------------
1 | #include "check.h"
2 |
3 | namespace benchmark {
4 | namespace internal {
5 |
6 | static AbortHandlerT* handler = &std::abort;
7 |
8 | BENCHMARK_EXPORT AbortHandlerT*& GetAbortHandler() { return handler; }
9 |
10 | } // namespace internal
11 | } // namespace benchmark
12 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googlebenchmark/src/colorprint.h:
--------------------------------------------------------------------------------
1 | #ifndef BENCHMARK_COLORPRINT_H_
2 | #define BENCHMARK_COLORPRINT_H_
3 |
4 | #include
5 | #include
6 | #include
7 |
8 | namespace benchmark {
9 | enum LogColor {
10 | COLOR_DEFAULT,
11 | COLOR_RED,
12 | COLOR_GREEN,
13 | COLOR_YELLOW,
14 | COLOR_BLUE,
15 | COLOR_MAGENTA,
16 | COLOR_CYAN,
17 | COLOR_WHITE
18 | };
19 |
20 | std::string FormatString(const char* msg, va_list args);
21 | std::string FormatString(const char* msg, ...);
22 |
23 | void ColorPrintf(std::ostream& out, LogColor color, const char* fmt,
24 | va_list args);
25 | void ColorPrintf(std::ostream& out, LogColor color, const char* fmt, ...);
26 |
27 | // Returns true if stdout appears to be a terminal that supports colored
28 | // output, false otherwise.
29 | bool IsColorTerminal();
30 |
31 | } // end namespace benchmark
32 |
33 | #endif // BENCHMARK_COLORPRINT_H_
34 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googletest/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Note: CMake support is community-based. The maintainers do not use CMake
2 | # internally.
3 |
4 | cmake_minimum_required(VERSION 3.13)
5 |
6 | project(googletest-distribution)
7 | set(GOOGLETEST_VERSION 1.14.0)
8 |
9 | if(NOT CYGWIN AND NOT MSYS AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL QNX)
10 | set(CMAKE_CXX_EXTENSIONS OFF)
11 | endif()
12 |
13 | enable_testing()
14 |
15 | include(CMakeDependentOption)
16 | include(GNUInstallDirs)
17 |
18 | # Note that googlemock target already builds googletest.
19 | option(BUILD_GMOCK "Builds the googlemock subproject" ON)
20 | option(INSTALL_GTEST "Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)" ON)
21 | option(GTEST_HAS_ABSL "Use Abseil and RE2. Requires Abseil and RE2 to be separately added to the build." OFF)
22 |
23 | if(GTEST_HAS_ABSL)
24 | if(NOT TARGET absl::base)
25 | find_package(absl REQUIRED)
26 | endif()
27 | if(NOT TARGET re2::re2)
28 | find_package(re2 REQUIRED)
29 | endif()
30 | endif()
31 |
32 | if(BUILD_GMOCK)
33 | add_subdirectory( googlemock )
34 | else()
35 | add_subdirectory( googletest )
36 | endif()
37 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googletest/googlemock/cmake/gmock.pc.in:
--------------------------------------------------------------------------------
1 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@
2 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
3 |
4 | Name: gmock
5 | Description: GoogleMock (without main() function)
6 | Version: @PROJECT_VERSION@
7 | URL: https://github.com/google/googletest
8 | Requires: gtest = @PROJECT_VERSION@
9 | Libs: -L${libdir} -lgmock @CMAKE_THREAD_LIBS_INIT@
10 | Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@
11 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googletest/googlemock/cmake/gmock_main.pc.in:
--------------------------------------------------------------------------------
1 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@
2 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
3 |
4 | Name: gmock_main
5 | Description: GoogleMock (with main() function)
6 | Version: @PROJECT_VERSION@
7 | URL: https://github.com/google/googletest
8 | Requires: gmock = @PROJECT_VERSION@
9 | Libs: -L${libdir} -lgmock_main @CMAKE_THREAD_LIBS_INIT@
10 | Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@
11 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googletest/googlemock/include/gmock/internal/custom/README.md:
--------------------------------------------------------------------------------
1 | # Customization Points
2 |
3 | The custom directory is an injection point for custom user configurations.
4 |
5 | ## Header `gmock-port.h`
6 |
7 | The following macros can be defined:
8 |
9 | ### Flag related macros:
10 |
11 | * `GMOCK_DECLARE_bool_(name)`
12 | * `GMOCK_DECLARE_int32_(name)`
13 | * `GMOCK_DECLARE_string_(name)`
14 | * `GMOCK_DEFINE_bool_(name, default_val, doc)`
15 | * `GMOCK_DEFINE_int32_(name, default_val, doc)`
16 | * `GMOCK_DEFINE_string_(name, default_val, doc)`
17 | * `GMOCK_FLAG_GET(flag_name)`
18 | * `GMOCK_FLAG_SET(flag_name, value)`
19 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h:
--------------------------------------------------------------------------------
1 | // IWYU pragma: private, include "gmock/gmock.h"
2 | // IWYU pragma: friend gmock/.*
3 |
4 | #ifndef GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_GMOCK_GENERATED_ACTIONS_H_
5 | #define GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_GMOCK_GENERATED_ACTIONS_H_
6 |
7 | #endif // GOOGLEMOCK_INCLUDE_GMOCK_INTERNAL_CUSTOM_GMOCK_GENERATED_ACTIONS_H_
8 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googletest/googletest/cmake/Config.cmake.in:
--------------------------------------------------------------------------------
1 | @PACKAGE_INIT@
2 | include(CMakeFindDependencyMacro)
3 | if (@GTEST_HAS_PTHREAD@)
4 | set(THREADS_PREFER_PTHREAD_FLAG @THREADS_PREFER_PTHREAD_FLAG@)
5 | find_dependency(Threads)
6 | endif()
7 | if (@GTEST_HAS_ABSL@)
8 | find_dependency(absl)
9 | find_dependency(re2)
10 | endif()
11 |
12 | include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake")
13 | check_required_components("@project_name@")
14 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googletest/googletest/cmake/gtest.pc.in:
--------------------------------------------------------------------------------
1 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@
2 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
3 |
4 | Name: gtest
5 | Description: GoogleTest (without main() function)
6 | Version: @PROJECT_VERSION@
7 | URL: https://github.com/google/googletest
8 | Libs: -L${libdir} -lgtest @CMAKE_THREAD_LIBS_INIT@
9 | Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@
10 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googletest/googletest/cmake/gtest_main.pc.in:
--------------------------------------------------------------------------------
1 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@
2 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
3 |
4 | Name: gtest_main
5 | Description: GoogleTest (with main() function)
6 | Version: @PROJECT_VERSION@
7 | URL: https://github.com/google/googletest
8 | Requires: gtest = @PROJECT_VERSION@
9 | Libs: -L${libdir} -lgtest_main @CMAKE_THREAD_LIBS_INIT@
10 | Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@
11 |
--------------------------------------------------------------------------------
/vendor/noa/vendor/googletest/googletest/cmake/libgtest.la.in:
--------------------------------------------------------------------------------
1 | # libgtest.la - a libtool library file
2 | # Generated by libtool (GNU libtool) 2.4.6
3 |
4 | # Please DO NOT delete this file!
5 | # It is necessary for linking the library.
6 |
7 | # Names of this library.
8 | library_names='libgtest.so'
9 |
10 | # Is this an already installed library?
11 | installed=yes
12 |
13 | # Should we warn about portability when linking against -modules?
14 | shouldnotlink=no
15 |
16 | # Files to dlopen/dlpreopen
17 | dlopen=''
18 | dlpreopen=''
19 |
20 | # Directory that this library needs to be installed in:
21 | libdir='@CMAKE_INSTALL_FULL_LIBDIR@'
22 |
--------------------------------------------------------------------------------
/vendorpull.mask:
--------------------------------------------------------------------------------
1 | DEPENDENCIES
2 | doxygen
3 | assets
4 | Makefile
5 | README.markdown
6 | test
7 | vendor/vendorpull
8 | vendor/bootstrap
9 | vendor/core
10 | www
11 | .editorconfig
12 | .ackrc
13 | .gitattributes
14 | .cirrus.yml
15 | Brewfile
16 | Brewfile.lock.json
17 |
--------------------------------------------------------------------------------