jsi-dev 0.0.0.pre.kramdown

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +8 -0
  3. data/CHANGELOG.md +101 -0
  4. data/LICENSE.md +613 -0
  5. data/README.md +303 -0
  6. data/docs/glossary.md +281 -0
  7. data/jsi.gemspec +30 -0
  8. data/lib/jsi/base/node.rb +373 -0
  9. data/lib/jsi/base.rb +738 -0
  10. data/lib/jsi/jsi_coder.rb +92 -0
  11. data/lib/jsi/metaschema.rb +6 -0
  12. data/lib/jsi/metaschema_node/bootstrap_schema.rb +126 -0
  13. data/lib/jsi/metaschema_node.rb +262 -0
  14. data/lib/jsi/ptr.rb +314 -0
  15. data/lib/jsi/schema/application/child_application/contains.rb +25 -0
  16. data/lib/jsi/schema/application/child_application/draft04.rb +21 -0
  17. data/lib/jsi/schema/application/child_application/draft06.rb +28 -0
  18. data/lib/jsi/schema/application/child_application/draft07.rb +28 -0
  19. data/lib/jsi/schema/application/child_application/items.rb +18 -0
  20. data/lib/jsi/schema/application/child_application/properties.rb +25 -0
  21. data/lib/jsi/schema/application/child_application.rb +13 -0
  22. data/lib/jsi/schema/application/draft04.rb +8 -0
  23. data/lib/jsi/schema/application/draft06.rb +8 -0
  24. data/lib/jsi/schema/application/draft07.rb +8 -0
  25. data/lib/jsi/schema/application/inplace_application/dependencies.rb +28 -0
  26. data/lib/jsi/schema/application/inplace_application/draft04.rb +25 -0
  27. data/lib/jsi/schema/application/inplace_application/draft06.rb +26 -0
  28. data/lib/jsi/schema/application/inplace_application/draft07.rb +32 -0
  29. data/lib/jsi/schema/application/inplace_application/ifthenelse.rb +20 -0
  30. data/lib/jsi/schema/application/inplace_application/ref.rb +18 -0
  31. data/lib/jsi/schema/application/inplace_application/someof.rb +44 -0
  32. data/lib/jsi/schema/application/inplace_application.rb +14 -0
  33. data/lib/jsi/schema/application.rb +12 -0
  34. data/lib/jsi/schema/draft04.rb +13 -0
  35. data/lib/jsi/schema/draft06.rb +13 -0
  36. data/lib/jsi/schema/draft07.rb +13 -0
  37. data/lib/jsi/schema/issue.rb +36 -0
  38. data/lib/jsi/schema/ref.rb +183 -0
  39. data/lib/jsi/schema/schema_ancestor_node.rb +122 -0
  40. data/lib/jsi/schema/validation/array.rb +69 -0
  41. data/lib/jsi/schema/validation/const.rb +20 -0
  42. data/lib/jsi/schema/validation/contains.rb +25 -0
  43. data/lib/jsi/schema/validation/dependencies.rb +49 -0
  44. data/lib/jsi/schema/validation/draft04/minmax.rb +91 -0
  45. data/lib/jsi/schema/validation/draft04.rb +110 -0
  46. data/lib/jsi/schema/validation/draft06.rb +120 -0
  47. data/lib/jsi/schema/validation/draft07.rb +157 -0
  48. data/lib/jsi/schema/validation/enum.rb +25 -0
  49. data/lib/jsi/schema/validation/ifthenelse.rb +46 -0
  50. data/lib/jsi/schema/validation/items.rb +54 -0
  51. data/lib/jsi/schema/validation/not.rb +20 -0
  52. data/lib/jsi/schema/validation/numeric.rb +121 -0
  53. data/lib/jsi/schema/validation/object.rb +45 -0
  54. data/lib/jsi/schema/validation/pattern.rb +34 -0
  55. data/lib/jsi/schema/validation/properties.rb +101 -0
  56. data/lib/jsi/schema/validation/property_names.rb +32 -0
  57. data/lib/jsi/schema/validation/ref.rb +40 -0
  58. data/lib/jsi/schema/validation/required.rb +27 -0
  59. data/lib/jsi/schema/validation/someof.rb +90 -0
  60. data/lib/jsi/schema/validation/string.rb +47 -0
  61. data/lib/jsi/schema/validation/type.rb +49 -0
  62. data/lib/jsi/schema/validation.rb +49 -0
  63. data/lib/jsi/schema.rb +792 -0
  64. data/lib/jsi/schema_classes.rb +357 -0
  65. data/lib/jsi/schema_registry.rb +190 -0
  66. data/lib/jsi/schema_set.rb +219 -0
  67. data/lib/jsi/simple_wrap.rb +26 -0
  68. data/lib/jsi/util/private/attr_struct.rb +130 -0
  69. data/lib/jsi/util/private/memo_map.rb +75 -0
  70. data/lib/jsi/util/private.rb +202 -0
  71. data/lib/jsi/util/typelike.rb +225 -0
  72. data/lib/jsi/util.rb +227 -0
  73. data/lib/jsi/validation/error.rb +34 -0
  74. data/lib/jsi/validation/result.rb +212 -0
  75. data/lib/jsi/validation.rb +15 -0
  76. data/lib/jsi/version.rb +5 -0
  77. data/lib/jsi.rb +105 -0
  78. data/lib/schemas/json-schema.org/draft-04/schema.rb +169 -0
  79. data/lib/schemas/json-schema.org/draft-06/schema.rb +171 -0
  80. data/lib/schemas/json-schema.org/draft-07/schema.rb +198 -0
  81. data/readme.rb +138 -0
  82. data/{resources}/schemas/json-schema.org/draft-04/schema.json +149 -0
  83. data/{resources}/schemas/json-schema.org/draft-06/schema.json +154 -0
  84. data/{resources}/schemas/json-schema.org/draft-07/schema.json +168 -0
  85. metadata +155 -0
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module JSI
4
+ module Validation
5
+ autoload :Error, 'jsi/validation/error'
6
+
7
+ autoload :Result, 'jsi/validation/result'
8
+ autoload :FullResult, 'jsi/validation/result'
9
+ autoload :ValidityResult, 'jsi/validation/result'
10
+
11
+ VALID = ValidityResult.new(true).freeze
12
+
13
+ INVALID = ValidityResult.new(false).freeze
14
+ end
15
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module JSI
4
+ VERSION = "0.0.0-kramdown".freeze
5
+ end
data/lib/jsi.rb ADDED
@@ -0,0 +1,105 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "jsi/version"
4
+ require "pp"
5
+ require "set"
6
+ require "json"
7
+ require "pathname"
8
+ require "bigdecimal"
9
+ require "addressable/uri"
10
+
11
+ module JSI
12
+ # generally put in code paths that are not expected to be valid control flow paths.
13
+ # rather a NotImplementedCorrectlyError. but that's too long.
14
+ #
15
+ # if you've found this class because JSI has raised this error, please open an issue with the backtrace
16
+ # and any context you can provide at https://github.com/notEthan/jsi/issues
17
+ class Bug < NotImplementedError
18
+ end
19
+
20
+ # @private TODO remove, any ruby without this is already long EOL
21
+ FrozenError = Object.const_defined?(:FrozenError) ? ::FrozenError : Class.new(StandardError)
22
+
23
+ # @private
24
+ ROOT_PATH = Pathname.new(__FILE__).dirname.parent.expand_path
25
+
26
+ # @private
27
+ RESOURCES_PATH = ROOT_PATH.join('{resources}')
28
+
29
+ # @private
30
+ SCHEMAS_PATH = RESOURCES_PATH.join('schemas')
31
+
32
+ autoload :Util, 'jsi/util'
33
+ autoload :Ptr, 'jsi/ptr'
34
+ autoload :Schema, 'jsi/schema'
35
+ autoload :SchemaSet, 'jsi/schema_set'
36
+ autoload :Base, 'jsi/base'
37
+ autoload :Metaschema, 'jsi/metaschema'
38
+ autoload :MetaschemaNode, 'jsi/metaschema_node'
39
+ autoload :SchemaModule, 'jsi/schema_classes'
40
+ autoload :SchemaClasses, 'jsi/schema_classes'
41
+ autoload :SchemaRegistry, 'jsi/schema_registry'
42
+ autoload :Validation, 'jsi/validation'
43
+ autoload :JSICoder, 'jsi/jsi_coder'
44
+
45
+ autoload :JSONSchemaDraft04, 'schemas/json-schema.org/draft-04/schema'
46
+ autoload :JSONSchemaDraft06, 'schemas/json-schema.org/draft-06/schema'
47
+ autoload :JSONSchemaDraft07, 'schemas/json-schema.org/draft-07/schema'
48
+ autoload :JSONSchemaOrgDraft04, 'schemas/json-schema.org/draft-04/schema'
49
+ autoload :JSONSchemaOrgDraft06, 'schemas/json-schema.org/draft-06/schema'
50
+ autoload :JSONSchemaOrgDraft07, 'schemas/json-schema.org/draft-07/schema'
51
+
52
+ autoload :SimpleWrap, 'jsi/simple_wrap'
53
+
54
+ # Instantiates the given schema content as a JSI Schema, passing all params to
55
+ # {JSI.new_schema}, and returns its {Schema#jsi_schema_module JSI Schema Module}.
56
+ #
57
+ # @return (see JSI::Schema::DescribesSchema#new_schema_module)
58
+ def self.new_schema_module(schema_content, **kw, &block)
59
+ new_schema(schema_content, **kw, &block).jsi_schema_module
60
+ end
61
+
62
+ # Instantiates the given document as a JSI Metaschema.
63
+ #
64
+ # @param metaschema_document an object to be instantiated as a JSI Metaschema
65
+ # @param schema_implementation_modules (see MetaschemaNode#initialize)
66
+ # @return [JSI::MetaschemaNode + JSI::DescribesSchema + JSI::Schema]
67
+ def self.new_metaschema(metaschema_document,
68
+ schema_implementation_modules:
69
+ )
70
+ MetaschemaNode.new(metaschema_document,
71
+ schema_implementation_modules: schema_implementation_modules,
72
+ )
73
+ end
74
+
75
+ # Instantiates the given document as a JSI Metaschema, passing all params to
76
+ # {new_metaschema}, and returns its {Schema#jsi_schema_module JSI Schema Module}.
77
+ #
78
+ # @return [Module + JSI::SchemaModule::DescribesSchemaModule + JSI::SchemaModule]
79
+ def self.new_metaschema_module(metaschema_document, **kw)
80
+ new_metaschema(metaschema_document, **kw).jsi_schema_module
81
+ end
82
+
83
+ # `JSI.schema_registry` is the default {JSI::SchemaRegistry} in which schemas are registered and from
84
+ # which they resolve references.
85
+ #
86
+ # @return [JSI::SchemaRegistry]
87
+ def self.schema_registry
88
+ @schema_registry
89
+ end
90
+
91
+ # @param schema_registry [JSI::SchemaRegistry]
92
+ def self.schema_registry=(schema_registry)
93
+ @schema_registry = schema_registry
94
+ end
95
+
96
+ DEFAULT_SCHEMA_REGISTRY = SchemaRegistry.new.tap do |schema_registry|
97
+ schema_registry.autoload_uri("http://json-schema.org/draft-04/schema") { JSI::JSONSchemaDraft04.schema }
98
+ schema_registry.autoload_uri("http://json-schema.org/draft-06/schema") { JSI::JSONSchemaDraft06.schema }
99
+ schema_registry.autoload_uri("http://json-schema.org/draft-07/schema") { JSI::JSONSchemaDraft07.schema }
100
+ end.freeze
101
+
102
+ self.schema_registry = DEFAULT_SCHEMA_REGISTRY.dup
103
+
104
+ Schema # trigger autoload, ensure JSI methods (new_schema etc) defined in schema.rb load
105
+ end
@@ -0,0 +1,169 @@
1
+ # frozen_string_literal: true
2
+
3
+ module JSI
4
+ metaschema_document = ::JSON.parse(SCHEMAS_PATH.join('json-schema.org/draft-04/schema.json').read)
5
+ JSONSchemaDraft04 = JSI.new_metaschema_module(metaschema_document,
6
+ schema_implementation_modules: [JSI::Schema::Draft04],
7
+ )
8
+
9
+ # in draft 4, boolean schemas are not described in the root, but on anyOf schemas on
10
+ # properties/additionalProperties and properties/additionalItems.
11
+ # these still describe schemas, despite not being described by the metaschema.
12
+ also_describe_schemas =
13
+ JSONSchemaDraft04.schema["properties"]["additionalProperties"]["anyOf"] +
14
+ JSONSchemaDraft04.schema["properties"]["additionalItems"]["anyOf"]
15
+ also_describe_schemas.each do |schema|
16
+ schema.describes_schema!([JSI::Schema::Draft04])
17
+ end
18
+
19
+ # the JSI schema module for `http://json-schema.org/draft-04/schema`
20
+ module JSONSchemaDraft04
21
+ # @!parse extend JSI::SchemaModule::DescribesSchemaModule
22
+ # @!parse include JSI::Schema::Draft04
23
+
24
+
25
+ Id = properties['id']
26
+ Xschema = properties['$schema']
27
+ Title = properties['title']
28
+ Description = properties['description']
29
+ Default = properties['default']
30
+ MultipleOf = properties['multipleOf']
31
+ Maximum = properties['maximum']
32
+ ExclusiveMaximum = properties['exclusiveMaximum']
33
+ Minimum = properties['minimum']
34
+ ExclusiveMinimum = properties['exclusiveMinimum']
35
+ MaxLength = properties['maxLength']
36
+ MinLength = properties['minLength']
37
+ Pattern = properties['pattern']
38
+ AdditionalItems = properties['additionalItems']
39
+ Items = properties['items']
40
+ MaxItems = properties['maxItems']
41
+ MinItems = properties['minItems']
42
+ UniqueItems = properties['uniqueItems']
43
+ MaxProperties = properties['maxProperties']
44
+ MinProperties = properties['minProperties']
45
+ Required = properties['required']
46
+ AdditionalProperties = properties['additionalProperties']
47
+ Definitions = properties['definitions']
48
+ Properties = properties['properties']
49
+ PatternProperties = properties['patternProperties']
50
+ Dependencies = properties['dependencies']
51
+ Enum = properties['enum']
52
+ Type = properties['type']
53
+ Format = properties['format']
54
+ AllOf = properties['allOf']
55
+ AnyOf = properties['anyOf']
56
+ OneOf = properties['oneOf']
57
+ Not = properties['not']
58
+
59
+ SchemaArray = definitions['schemaArray']
60
+ PositiveInteger = definitions['positiveInteger']
61
+ PositiveIntegerDefault0 = definitions['positiveIntegerDefault0']
62
+ SimpleType = definitions['simpleTypes']
63
+ StringArray = definitions['stringArray']
64
+
65
+ module Id
66
+ end
67
+ module Xschema
68
+ end
69
+ module Title
70
+ end
71
+ module Description
72
+ end
73
+ module Default
74
+ end
75
+ module MultipleOf
76
+ end
77
+ module Maximum
78
+ end
79
+ module ExclusiveMaximum
80
+ end
81
+ module Minimum
82
+ end
83
+ module ExclusiveMinimum
84
+ end
85
+ module MaxLength
86
+ end
87
+ module MinLength
88
+ end
89
+ module Pattern
90
+ end
91
+ module AdditionalItems
92
+ end
93
+ module Items
94
+ end
95
+ module MaxItems
96
+ end
97
+ module MinItems
98
+ end
99
+ module UniqueItems
100
+ end
101
+ module MaxProperties
102
+ end
103
+ module MinProperties
104
+ end
105
+ module Required
106
+ end
107
+ module AdditionalProperties
108
+ end
109
+ module Definitions
110
+ end
111
+ module Properties
112
+ end
113
+ module PatternProperties
114
+ end
115
+ module Dependencies
116
+ end
117
+ module Enum
118
+ end
119
+ module Type
120
+ end
121
+ module Format
122
+ end
123
+ module AllOf
124
+ end
125
+ module AnyOf
126
+ end
127
+ module OneOf
128
+ end
129
+ module Not
130
+ end
131
+
132
+ module SchemaArray
133
+ end
134
+ module PositiveInteger
135
+ end
136
+ module PositiveIntegerDefault0
137
+ end
138
+ module SimpleType
139
+ end
140
+ module StringArray
141
+ end
142
+
143
+ AdditionalItems::Boolean = AdditionalItems.anyOf[0]
144
+ AdditionalProperties::Boolean = AdditionalProperties.anyOf[0]
145
+ Dependencies::Dependency = Dependencies.additionalProperties
146
+ Type::Array = Type.anyOf[1]
147
+ PositiveIntegerDefault0::Default0 = PositiveIntegerDefault0.allOf[1]
148
+ StringItem = StringArray.items
149
+
150
+ module AdditionalItems::Boolean
151
+ end
152
+ module AdditionalProperties::Boolean
153
+ end
154
+ module Dependencies::Dependency
155
+ end
156
+ module Type::Array
157
+ end
158
+ module PositiveIntegerDefault0::Default0
159
+ end
160
+ module StringItem
161
+ end
162
+ end
163
+
164
+ JSONSchemaOrgDraft04 = JSONSchemaDraft04
165
+
166
+ # @deprecated after v0.7.0, alias of {JSONSchemaDraft04}
167
+ module JSONSchemaOrgDraft04
168
+ end
169
+ end
@@ -0,0 +1,171 @@
1
+ # frozen_string_literal: true
2
+
3
+ module JSI
4
+ metaschema_document = ::JSON.parse(SCHEMAS_PATH.join('json-schema.org/draft-06/schema.json').read)
5
+ JSONSchemaDraft06 = JSI.new_metaschema_module(metaschema_document,
6
+ schema_implementation_modules: [JSI::Schema::Draft06],
7
+ )
8
+
9
+ # the JSI schema module for `http://json-schema.org/draft-06/schema`
10
+ module JSONSchemaDraft06
11
+ # @!parse extend JSI::SchemaModule::DescribesSchemaModule
12
+ # @!parse include JSI::Schema::Draft06
13
+
14
+
15
+ Id = properties['$id']
16
+ Xschema = properties['$schema']
17
+ Ref = properties['$ref']
18
+ Title = properties['title']
19
+ Description = properties['description']
20
+ Default = properties['default']
21
+ Examples = properties['examples']
22
+ MultipleOf = properties['multipleOf']
23
+ Maximum = properties['maximum']
24
+ ExclusiveMaximum = properties['exclusiveMaximum']
25
+ Minimum = properties['minimum']
26
+ ExclusiveMinimum = properties['exclusiveMinimum']
27
+ MaxLength = properties['maxLength']
28
+ MinLength = properties['minLength']
29
+ Pattern = properties['pattern']
30
+ AdditionalItems = properties['additionalItems']
31
+ Items = properties['items']
32
+ MaxItems = properties['maxItems']
33
+ MinItems = properties['minItems']
34
+ UniqueItems = properties['uniqueItems']
35
+ Contains = properties['contains']
36
+ MaxProperties = properties['maxProperties']
37
+ MinProperties = properties['minProperties']
38
+ Required = properties['required']
39
+ AdditionalProperties = properties['additionalProperties']
40
+ Definitions = properties['definitions']
41
+ Properties = properties['properties']
42
+ PatternProperties = properties['patternProperties']
43
+ Dependencies = properties['dependencies']
44
+ PropertyNames = properties['propertyNames']
45
+ Const = properties['const']
46
+ Enum = properties['enum']
47
+ Type = properties['type']
48
+ Format = properties['format']
49
+ AllOf = properties['allOf']
50
+ AnyOf = properties['anyOf']
51
+ OneOf = properties['oneOf']
52
+ Not = properties['not']
53
+
54
+ SchemaArray = definitions['schemaArray']
55
+ NonNegativeInteger = definitions['nonNegativeInteger']
56
+ NonNegativeIntegerDefault0 = definitions['nonNegativeIntegerDefault0']
57
+ SimpleType = definitions['simpleTypes']
58
+ StringArray = definitions['stringArray']
59
+
60
+ module Id
61
+ end
62
+ module Xschema
63
+ end
64
+ module Ref
65
+ end
66
+ module Title
67
+ end
68
+ module Description
69
+ end
70
+ module Default
71
+ end
72
+ module Examples
73
+ end
74
+ module MultipleOf
75
+ end
76
+ module Maximum
77
+ end
78
+ module ExclusiveMaximum
79
+ end
80
+ module Minimum
81
+ end
82
+ module ExclusiveMinimum
83
+ end
84
+ module MaxLength
85
+ end
86
+ module MinLength
87
+ end
88
+ module Pattern
89
+ end
90
+ module AdditionalItems
91
+ end
92
+ module Items
93
+ end
94
+ module MaxItems
95
+ end
96
+ module MinItems
97
+ end
98
+ module UniqueItems
99
+ end
100
+ module Contains
101
+ end
102
+ module MaxProperties
103
+ end
104
+ module MinProperties
105
+ end
106
+ module Required
107
+ end
108
+ module AdditionalProperties
109
+ end
110
+ module Definitions
111
+ end
112
+ module Properties
113
+ end
114
+ module PatternProperties
115
+ end
116
+ module Dependencies
117
+ end
118
+ module PropertyNames
119
+ end
120
+ module Const
121
+ end
122
+ module Enum
123
+ end
124
+ module Type
125
+ end
126
+ module Format
127
+ end
128
+ module AllOf
129
+ end
130
+ module AnyOf
131
+ end
132
+ module OneOf
133
+ end
134
+ module Not
135
+ end
136
+
137
+ module SchemaArray
138
+ end
139
+ module NonNegativeInteger
140
+ end
141
+ module NonNegativeIntegerDefault0
142
+ end
143
+ module SimpleType
144
+ end
145
+ module StringArray
146
+ end
147
+
148
+ Example = Examples.items
149
+ Dependencies::Dependency = Dependencies.additionalProperties
150
+ Type::Array = Type.anyOf[1]
151
+ NonNegativeIntegerDefault0::Default0 = NonNegativeIntegerDefault0.allOf[1]
152
+ StringItem = StringArray.items
153
+
154
+ module Example
155
+ end
156
+ module Dependencies::Dependency
157
+ end
158
+ module Type::Array
159
+ end
160
+ module NonNegativeIntegerDefault0::Default0
161
+ end
162
+ module StringItem
163
+ end
164
+ end
165
+
166
+ JSONSchemaOrgDraft06 = JSONSchemaDraft06
167
+
168
+ # @deprecated after v0.7.0, alias of {JSONSchemaDraft06}
169
+ module JSONSchemaOrgDraft06
170
+ end
171
+ end
@@ -0,0 +1,198 @@
1
+ # frozen_string_literal: true
2
+
3
+ module JSI
4
+ metaschema_document = ::JSON.parse(SCHEMAS_PATH.join('json-schema.org/draft-07/schema.json').read)
5
+ JSONSchemaDraft07 = JSI.new_metaschema_module(metaschema_document,
6
+ schema_implementation_modules: [JSI::Schema::Draft07],
7
+ )
8
+
9
+ # the JSI schema module for `http://json-schema.org/draft-07/schema`
10
+ module JSONSchemaDraft07
11
+ # @!parse extend JSI::SchemaModule::DescribesSchemaModule
12
+ # @!parse include JSI::Schema::Draft07
13
+
14
+
15
+ Id = properties['$id']
16
+ Xschema = properties['$schema']
17
+ Ref = properties['$ref']
18
+ Comment = properties['$comment']
19
+ Title = properties['title']
20
+ Description = properties['description']
21
+ Default = properties['default']
22
+ ReadOnly = properties['readOnly']
23
+ Examples = properties['examples']
24
+ MultipleOf = properties['multipleOf']
25
+ Maximum = properties['maximum']
26
+ ExclusiveMaximum = properties['exclusiveMaximum']
27
+ Minimum = properties['minimum']
28
+ ExclusiveMinimum = properties['exclusiveMinimum']
29
+ MaxLength = properties['maxLength']
30
+ MinLength = properties['minLength']
31
+ Pattern = properties['pattern']
32
+ AdditionalItems = properties['additionalItems']
33
+ Items = properties['items']
34
+ MaxItems = properties['maxItems']
35
+ MinItems = properties['minItems']
36
+ UniqueItems = properties['uniqueItems']
37
+ Contains = properties['contains']
38
+ MaxProperties = properties['maxProperties']
39
+ MinProperties = properties['minProperties']
40
+ Required = properties['required']
41
+ AdditionalProperties = properties['additionalProperties']
42
+ Definitions = properties['definitions']
43
+ Properties = properties['properties']
44
+ PatternProperties = properties['patternProperties']
45
+ Dependencies = properties['dependencies']
46
+ PropertyNames = properties['propertyNames']
47
+ Const = properties['const']
48
+ Enum = properties['enum']
49
+ Type = properties['type']
50
+ Format = properties['format']
51
+ ContentMediaType = properties['contentMediaType']
52
+ ContentEncoding = properties['contentEncoding']
53
+ If = properties['if']
54
+ Then = properties['then']
55
+ Else = properties['else']
56
+ AllOf = properties['allOf']
57
+ AnyOf = properties['anyOf']
58
+ OneOf = properties['oneOf']
59
+ Not = properties['not']
60
+
61
+ SchemaArray = definitions['schemaArray']
62
+ NonNegativeInteger = definitions['nonNegativeInteger']
63
+ NonNegativeIntegerDefault0 = definitions['nonNegativeIntegerDefault0']
64
+ SimpleType = definitions['simpleTypes']
65
+ StringArray = definitions['stringArray']
66
+
67
+ module Id
68
+ end
69
+ module Xschema
70
+ end
71
+ module Ref
72
+ end
73
+ module Comment
74
+ end
75
+ module Title
76
+ end
77
+ module Description
78
+ end
79
+ module Default
80
+ end
81
+ module ReadOnly
82
+ end
83
+ module Examples
84
+ end
85
+ module MultipleOf
86
+ end
87
+ module Maximum
88
+ end
89
+ module ExclusiveMaximum
90
+ end
91
+ module Minimum
92
+ end
93
+ module ExclusiveMinimum
94
+ end
95
+ module MaxLength
96
+ end
97
+ module MinLength
98
+ end
99
+ module Pattern
100
+ end
101
+ module AdditionalItems
102
+ end
103
+ module Items
104
+ end
105
+ module MaxItems
106
+ end
107
+ module MinItems
108
+ end
109
+ module UniqueItems
110
+ end
111
+ module Contains
112
+ end
113
+ module MaxProperties
114
+ end
115
+ module MinProperties
116
+ end
117
+ module Required
118
+ end
119
+ module AdditionalProperties
120
+ end
121
+ module Definitions
122
+ end
123
+ module Properties
124
+ end
125
+ module PatternProperties
126
+ end
127
+ module Dependencies
128
+ end
129
+ module PropertyNames
130
+ end
131
+ module Const
132
+ end
133
+ module Enum
134
+ end
135
+ module Type
136
+ end
137
+ module Format
138
+ end
139
+ module ContentMediaType
140
+ end
141
+ module ContentEncoding
142
+ end
143
+ module If
144
+ end
145
+ module Then
146
+ end
147
+ module Else
148
+ end
149
+ module AllOf
150
+ end
151
+ module AnyOf
152
+ end
153
+ module OneOf
154
+ end
155
+ module Not
156
+ end
157
+
158
+ module SchemaArray
159
+ end
160
+ module NonNegativeInteger
161
+ end
162
+ module NonNegativeIntegerDefault0
163
+ end
164
+ module SimpleType
165
+ end
166
+ module StringArray
167
+ end
168
+
169
+ Example = Examples.items
170
+ PatternPropertyPattern = PatternProperties.propertyNames
171
+ Dependencies::Dependency = Dependencies.additionalProperties
172
+ Enum::Item = Enum.items
173
+ Type::Array = Type.anyOf[1]
174
+ NonNegativeIntegerDefault0::Default0 = NonNegativeIntegerDefault0.allOf[1]
175
+ StringItem = StringArray.items
176
+
177
+ module Example
178
+ end
179
+ module PatternPropertyPattern
180
+ end
181
+ module Dependencies::Dependency
182
+ end
183
+ module Enum::Item
184
+ end
185
+ module Type::Array
186
+ end
187
+ module NonNegativeIntegerDefault0::Default0
188
+ end
189
+ module StringItem
190
+ end
191
+ end
192
+
193
+ JSONSchemaOrgDraft07 = JSONSchemaDraft07
194
+
195
+ # @deprecated after v0.7.0, alias of {JSONSchemaDraft07}
196
+ module JSONSchemaOrgDraft07
197
+ end
198
+ end