JSON-Schema-Modern

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            "Math::BigInt" : "1.999701",
            "Mojo::JSON" : "0",
            "Mojo::JSON::Pointer" : "0",
            "Mojo::Message::Response" : "0",
            "Mojo::URL" : "0",
            "Mojolicious" : "7.87",
            "Moo" : "0",
            "Moo::Role" : "0",
            "MooX::TypeTiny" : "0.002002",
            "Path::Tiny" : "0",
            "Ref::Util" : "0.100",
            "Safe::Isa" : "1.000008",
            "Scalar::Util" : "0",
            "Storable" : "0",
            "Sub::Install" : "0",
            "Types::Common::Numeric" : "0",
            "Types::Standard" : "1.016003",
            "autovivification" : "0",
            "builtin::compat" : "0.003003",
            "constant" : "0",
            "experimental" : "0.026",

META.json  view on Meta::CPAN

            "strict" : "0",
            "strictures" : "2",
            "warnings" : "0"
         },
         "suggests" : {
            "Class::XSAccessor" : "0",
            "Data::Validate::Domain" : "0.13",
            "DateTime::Format::RFC3339" : "0",
            "Email::Address::XS" : "1.04",
            "Net::IDN::Encode" : "0",
            "Ref::Util::XS" : "0",
            "Sereal" : "0",
            "Time::Moment" : "0",
            "Type::Tiny::XS" : "0"
         }
      },
      "test" : {
         "recommends" : {
            "CPAN::Meta" : "2.120900"
         },
         "requires" : {

META.yml  view on Meta::CPAN

  Math::BigInt: '1.999701'
  Mojo::JSON: '0'
  Mojo::JSON::Pointer: '0'
  Mojo::Message::Response: '0'
  Mojo::URL: '0'
  Mojolicious: '7.87'
  Moo: '0'
  Moo::Role: '0'
  MooX::TypeTiny: '0.002002'
  Path::Tiny: '0'
  Ref::Util: '0.100'
  Safe::Isa: '1.000008'
  Scalar::Util: '0'
  Storable: '0'
  Sub::Install: '0'
  Types::Common::Numeric: '0'
  Types::Standard: '1.016003'
  autovivification: '0'
  builtin::compat: '0.003003'
  constant: '0'
  experimental: '0.026'

dist.ini  view on Meta::CPAN

Math::BigInt = 1.999701   ; bdiv and bmod fixes
Email::Address::XS = 1.04 ; softened later
Sereal = 0                ; softened later
JSON::PP = 4.11           ; softened later
Cpanel::JSON::XS = 4.38   ; softened later
builtin::compat = 0.003003

[Prereqs / RuntimeSuggests]
Class::XSAccessor = 0
Type::Tiny::XS = 0
Ref::Util::XS = 0

[Prereqs::Soften]
to_relationship = suggests
copy_to = develop.requires
module = Time::Moment           ; required for format 'date-time', 'date'
module = DateTime::Format::RFC3339 ; required for edge cases for format 'date-time'
module = Data::Validate::Domain ; required for format 'hostname', 'idn-hostname'
module = Email::Address::XS     ; required for format 'email', 'idn-email'
module = Net::IDN::Encode       ; required for format 'idn-hostname'
module = Sereal                 ; required for serialization support

lib/JSON/Schema/Modern.pm  view on Meta::CPAN

no autovivification warn => qw(fetch store exists delete);
use if "$]" >= 5.022, experimental => 're_strict';
no if "$]" >= 5.031009, feature => 'indirect';
no if "$]" >= 5.033001, feature => 'multidimensional';
no if "$]" >= 5.033006, feature => 'bareword_filehandles';
no if "$]" >= 5.041009, feature => 'smartmatch';
no feature 'switch';
use Mojo::JSON ();  # for JSON_XS, MOJO_NO_JSON_XS environment variables
use Carp qw(croak carp);
use List::Util 1.55 qw(pairs first uniqint pairmap uniq any min);
use Ref::Util 0.100 qw(is_ref is_plain_hashref);
use builtin::compat qw(refaddr load_module);
use Mojo::URL;
use Safe::Isa;
use Path::Tiny;
use Storable 'dclone';
use File::ShareDir 'dist_dir';
use MooX::TypeTiny 0.002002;
use Types::Standard 1.016003 qw(Bool Int Str HasMethods Enum InstanceOf HashRef Dict CodeRef Optional Slurpy ArrayRef Undef ClassName Tuple Map);
use Digest::MD5 'md5';
use Feature::Compat::Try;

lib/JSON/Schema/Modern/Document.pm  view on Meta::CPAN

no autovivification warn => qw(fetch store exists delete);
use if "$]" >= 5.022, experimental => 're_strict';
no if "$]" >= 5.031009, feature => 'indirect';
no if "$]" >= 5.033001, feature => 'multidimensional';
no if "$]" >= 5.033006, feature => 'bareword_filehandles';
no if "$]" >= 5.041009, feature => 'smartmatch';
no feature 'switch';
use Mojo::URL;
use Carp 'croak';
use List::Util 1.29 'pairs';
use Ref::Util 0.100 'is_plain_hashref';
use builtin::compat 'refaddr';
use Safe::Isa 1.000008;
use MooX::TypeTiny;
use Types::Standard 1.016003 qw(InstanceOf HashRef Str Map Dict ArrayRef Enum ClassName Undef Slurpy Optional);
use Types::Common::Numeric 'PositiveOrZeroInt';
use namespace::clean;

extends 'Mojo::JSON::Pointer';

has schema => (

lib/JSON/Schema/Modern/Utilities.pm  view on Meta::CPAN

use experimental 'signatures';
no autovivification warn => qw(fetch store exists delete);
use if "$]" >= 5.022, experimental => 're_strict';
no if "$]" >= 5.031009, feature => 'indirect';
no if "$]" >= 5.033001, feature => 'multidimensional';
no if "$]" >= 5.033006, feature => 'bareword_filehandles';
no if "$]" >= 5.041009, feature => 'smartmatch';
no feature 'switch';
use B;
use Carp 'croak';
use Ref::Util 0.100 qw(is_ref is_plain_arrayref is_plain_hashref);
use builtin::compat qw(blessed created_as_number);
use Scalar::Util 'looks_like_number';
use Storable 'dclone';
use Feature::Compat::Try;
use Mojo::JSON ();
use JSON::PP ();
use namespace::clean;

use Exporter 'import';

lib/JSON/Schema/Modern/Vocabulary.pm  view on Meta::CPAN

use strictures 2;
use stable 0.031 'postderef';
use experimental 'signatures';
no autovivification warn => qw(fetch store exists delete);
use if "$]" >= 5.022, experimental => 're_strict';
no if "$]" >= 5.031009, feature => 'indirect';
no if "$]" >= 5.033001, feature => 'multidimensional';
no if "$]" >= 5.033006, feature => 'bareword_filehandles';
no if "$]" >= 5.041009, feature => 'smartmatch';
no feature 'switch';
use Ref::Util 0.100 'is_plain_arrayref';
use JSON::Schema::Modern::Utilities qw(jsonp assert_keyword_type abort);
use Carp ();
use namespace::clean;

our @CARP_NOT = qw(JSON::Schema::Modern);

requires qw(vocabulary keywords);

sub evaluation_order { 999 }  # override, if needed

lib/JSON/Schema/Modern/Vocabulary/Applicator.pm  view on Meta::CPAN

use stable 0.031 'postderef';
use experimental 0.026 qw(signatures args_array_with_signatures);
no autovivification warn => qw(fetch store exists delete);
use if "$]" >= 5.022, experimental => 're_strict';
no if "$]" >= 5.031009, feature => 'indirect';
no if "$]" >= 5.033001, feature => 'multidimensional';
no if "$]" >= 5.033006, feature => 'bareword_filehandles';
no if "$]" >= 5.041009, feature => 'smartmatch';
no feature 'switch';
use List::Util 1.45 qw(any uniqstr);
use Ref::Util 0.100 'is_plain_arrayref';
use Sub::Install;
use JSON::Schema::Modern::Utilities qw(is_type jsonp E A assert_keyword_type assert_pattern true is_elements_unique);
use JSON::Schema::Modern::Vocabulary::Unevaluated;
use namespace::clean;

with 'JSON::Schema::Modern::Vocabulary';

sub vocabulary ($class) {
  'https://json-schema.org/draft/2019-09/vocab/applicator' => 'draft2019-09',
  'https://json-schema.org/draft/2020-12/vocab/applicator' => 'draft2020-12';

lib/JSON/Schema/Modern/Vocabulary/Core.pm  view on Meta::CPAN

use strictures 2;
use stable 0.031 'postderef';
use experimental 'signatures';
no autovivification warn => qw(fetch store exists delete);
use if "$]" >= 5.022, experimental => 're_strict';
no if "$]" >= 5.031009, feature => 'indirect';
no if "$]" >= 5.033001, feature => 'multidimensional';
no if "$]" >= 5.033006, feature => 'bareword_filehandles';
no if "$]" >= 5.041009, feature => 'smartmatch';
no feature 'switch';
use Ref::Util 'is_plain_hashref';
use JSON::Schema::Modern::Utilities qw(is_type abort assert_keyword_type canonical_uri E assert_uri_reference assert_uri jsonp);
use namespace::clean;

with 'JSON::Schema::Modern::Vocabulary';

sub vocabulary ($class) {
  'https://json-schema.org/draft/2019-09/vocab/core' => 'draft2019-09',
  'https://json-schema.org/draft/2020-12/vocab/core' => 'draft2020-12';
}

lib/JSON/Schema/Modern/Vocabulary/FormatAnnotation.pm  view on Meta::CPAN

use if "$]" >= 5.022, experimental => 're_strict';
no if "$]" >= 5.031009, feature => 'indirect';
no if "$]" >= 5.033001, feature => 'multidimensional';
no if "$]" >= 5.033006, feature => 'bareword_filehandles';
no if "$]" >= 5.041009, feature => 'smartmatch';
no feature 'switch';
use Feature::Compat::Try;
use JSON::Schema::Modern::Utilities qw(A E assert_keyword_type get_type);
use JSON::Schema::Modern::Vocabulary::FormatAssertion;
use List::Util 'any';
use Ref::Util 0.100 'is_plain_arrayref';
use Scalar::Util 'looks_like_number';
use namespace::clean;

with 'JSON::Schema::Modern::Vocabulary';

sub vocabulary ($class) {
  'https://json-schema.org/draft/2019-09/vocab/format' => 'draft2019-09',
  'https://json-schema.org/draft/2020-12/vocab/format-annotation' => 'draft2020-12';
}

lib/JSON/Schema/Modern/Vocabulary/FormatAssertion.pm  view on Meta::CPAN

no autovivification warn => qw(fetch store exists delete);
use if "$]" >= 5.022, experimental => 're_strict';
no if "$]" >= 5.031009, feature => 'indirect';
no if "$]" >= 5.033001, feature => 'multidimensional';
no if "$]" >= 5.033006, feature => 'bareword_filehandles';
no if "$]" >= 5.041009, feature => 'smartmatch';
no feature 'switch';
use JSON::Schema::Modern::Utilities qw(get_type E A assert_keyword_type abort);
use Feature::Compat::Try;
use List::Util 'any';
use Ref::Util 0.100 'is_plain_arrayref';
use Scalar::Util 'looks_like_number';
use namespace::clean;

with 'JSON::Schema::Modern::Vocabulary';

sub vocabulary ($class) {
  'https://json-schema.org/draft/2020-12/vocab/format-assertion' => 'draft2020-12';
}

sub evaluation_order ($class) { 2 }

lib/JSON/Schema/Modern/Vocabulary/Validation.pm  view on Meta::CPAN

use stable 0.031 'postderef';
use experimental 'signatures';
no autovivification warn => qw(fetch store exists delete);
use if "$]" >= 5.022, experimental => 're_strict';
no if "$]" >= 5.031009, feature => 'indirect';
no if "$]" >= 5.033001, feature => 'multidimensional';
no if "$]" >= 5.033006, feature => 'bareword_filehandles';
no if "$]" >= 5.041009, feature => 'smartmatch';
no feature 'switch';
use List::Util 'any';
use Ref::Util 0.100 'is_plain_arrayref';
use Scalar::Util 'looks_like_number';
use JSON::Schema::Modern::Utilities qw(is_type get_type is_bignum is_equal is_elements_unique E assert_keyword_type assert_pattern jsonp sprintf_num);
use Math::BigFloat;
use namespace::clean;

with 'JSON::Schema::Modern::Vocabulary';

sub vocabulary ($class) {
  'https://json-schema.org/draft/2019-09/vocab/validation' => 'draft2019-09',
  'https://json-schema.org/draft/2020-12/vocab/validation' => 'draft2020-12';

t/00-report-prereqs.dd  view on Meta::CPAN

                                      'Math::BigInt' => '1.999701',
                                      'Mojo::JSON' => '0',
                                      'Mojo::JSON::Pointer' => '0',
                                      'Mojo::Message::Response' => '0',
                                      'Mojo::URL' => '0',
                                      'Mojolicious' => '7.87',
                                      'Moo' => '0',
                                      'Moo::Role' => '0',
                                      'MooX::TypeTiny' => '0.002002',
                                      'Path::Tiny' => '0',
                                      'Ref::Util' => '0.100',
                                      'Safe::Isa' => '1.000008',
                                      'Scalar::Util' => '0',
                                      'Storable' => '0',
                                      'Sub::Install' => '0',
                                      'Types::Common::Numeric' => '0',
                                      'Types::Standard' => '1.016003',
                                      'autovivification' => '0',
                                      'builtin::compat' => '0.003003',
                                      'constant' => '0',
                                      'experimental' => '0.026',

t/00-report-prereqs.dd  view on Meta::CPAN

                                      'strict' => '0',
                                      'strictures' => '2',
                                      'warnings' => '0'
                                    },
                      'suggests' => {
                                      'Class::XSAccessor' => '0',
                                      'Data::Validate::Domain' => '0.13',
                                      'DateTime::Format::RFC3339' => '0',
                                      'Email::Address::XS' => '1.04',
                                      'Net::IDN::Encode' => '0',
                                      'Ref::Util::XS' => '0',
                                      'Sereal' => '0',
                                      'Time::Moment' => '0',
                                      'Type::Tiny::XS' => '0'
                                    }
                    },
       'test' => {
                   'recommends' => {
                                     'CPAN::Meta' => '2.120900'
                                   },
                   'requires' => {



( run in 0.293 second using v1.01-cache-2.11-cpan-4d50c553e7e )